mirror of
https://github.com/e107inc/e107.git
synced 2025-03-14 01:19:44 +01:00
Vendor folder upgrades:
- Upgrading hybridauth/hybridauth (v3.8.0 => v3.8.2) - Upgrading guzzlehttp/psr7 (1.8.5 => 1.9.0) - Upgrading matthiasmullie/minify (1.3.68 => 1.3.70) - Upgrading phpmailer/phpmailer (v6.6.0 => v6.7.1)
This commit is contained in:
parent
25a8b68753
commit
5f84a8253e
79
composer.lock
generated
79
composer.lock
generated
@ -8,16 +8,16 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.8.5",
|
||||
"version": "1.9.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268"
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/337e3ad8e5716c15f9657bd214d16cc5e69df268",
|
||||
"reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -38,7 +38,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@ -98,7 +98,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.8.5"
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.9.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -114,20 +114,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2022-03-20T21:51:18+00:00"
|
||||
"time": "2022-06-20T21:43:03+00:00"
|
||||
},
|
||||
{
|
||||
"name": "hybridauth/hybridauth",
|
||||
"version": "v3.8.0",
|
||||
"version": "v3.8.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/hybridauth/hybridauth.git",
|
||||
"reference": "c76bea6638376394c74a52791dd637fef4deaf08"
|
||||
"reference": "0d6e31482c544e5ed2bdc83bd3c033054129c482"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/c76bea6638376394c74a52791dd637fef4deaf08",
|
||||
"reference": "c76bea6638376394c74a52791dd637fef4deaf08",
|
||||
"url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/0d6e31482c544e5ed2bdc83bd3c033054129c482",
|
||||
"reference": "0d6e31482c544e5ed2bdc83bd3c033054129c482",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -174,9 +174,9 @@
|
||||
"support": {
|
||||
"gitter": "https://gitter.im/hybridauth/hybridauth",
|
||||
"issues": "https://github.com/hybridauth/hybridauth/issues",
|
||||
"source": "https://github.com/hybridauth/hybridauth/tree/v3.8.0"
|
||||
"source": "https://github.com/hybridauth/hybridauth/tree/v3.8.2"
|
||||
},
|
||||
"time": "2022-04-08T09:49:25+00:00"
|
||||
"time": "2022-08-18T19:48:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ifsnop/mysqldump-php",
|
||||
@ -323,16 +323,16 @@
|
||||
},
|
||||
{
|
||||
"name": "matthiasmullie/minify",
|
||||
"version": "1.3.68",
|
||||
"version": "1.3.70",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/matthiasmullie/minify.git",
|
||||
"reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297"
|
||||
"reference": "2807d9f9bece6877577ad44acb5c801bb3ae536b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297",
|
||||
"reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297",
|
||||
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/2807d9f9bece6877577ad44acb5c801bb3ae536b",
|
||||
"reference": "2807d9f9bece6877577ad44acb5c801bb3ae536b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -341,9 +341,10 @@
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2.0",
|
||||
"matthiasmullie/scrapbook": "dev-master",
|
||||
"phpunit/phpunit": ">=4.8"
|
||||
"friendsofphp/php-cs-fixer": ">=2.0",
|
||||
"matthiasmullie/scrapbook": ">=1.3",
|
||||
"phpunit/phpunit": ">=4.8",
|
||||
"squizlabs/php_codesniffer": ">=3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
||||
@ -366,12 +367,12 @@
|
||||
{
|
||||
"name": "Matthias Mullie",
|
||||
"email": "minify@mullie.eu",
|
||||
"homepage": "http://www.mullie.eu",
|
||||
"homepage": "https://www.mullie.eu",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
||||
"homepage": "http://www.minifier.org",
|
||||
"homepage": "https://github.com/matthiasmullie/minify",
|
||||
"keywords": [
|
||||
"JS",
|
||||
"css",
|
||||
@ -381,7 +382,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/matthiasmullie/minify/issues",
|
||||
"source": "https://github.com/matthiasmullie/minify/tree/1.3.68"
|
||||
"source": "https://github.com/matthiasmullie/minify/tree/1.3.70"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -389,7 +390,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-04-19T08:28:56+00:00"
|
||||
"time": "2022-12-09T12:56:44+00:00"
|
||||
},
|
||||
{
|
||||
"name": "matthiasmullie/path-converter",
|
||||
@ -446,16 +447,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.6.0",
|
||||
"version": "v6.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1"
|
||||
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55",
|
||||
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -465,22 +466,24 @@
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
|
||||
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
"yoast/phpunit-polyfills": "^1.0.0"
|
||||
"squizlabs/php_codesniffer": "^3.7.1",
|
||||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
|
||||
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
|
||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||
"psr/log": "For optional PSR-3 debug logging",
|
||||
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
|
||||
"thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
@ -512,7 +515,7 @@
|
||||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.0"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -520,7 +523,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2022-02-28T15:31:21+00:00"
|
||||
"time": "2022-12-08T13:30:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/http-message",
|
||||
|
89
e107_handlers/vendor/composer/installed.json
vendored
89
e107_handlers/vendor/composer/installed.json
vendored
@ -2,17 +2,17 @@
|
||||
"packages": [
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.8.5",
|
||||
"version_normalized": "1.8.5.0",
|
||||
"version": "1.9.0",
|
||||
"version_normalized": "1.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268"
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/337e3ad8e5716c15f9657bd214d16cc5e69df268",
|
||||
"reference": "337e3ad8e5716c15f9657bd214d16cc5e69df268",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"reference": "e98e3e6d4f86621a9b75f623996e6bbdeb4b9318",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -30,11 +30,11 @@
|
||||
"suggest": {
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"time": "2022-03-20T21:51:18+00:00",
|
||||
"time": "2022-06-20T21:43:03+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
@ -95,7 +95,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/guzzle/psr7/issues",
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.8.5"
|
||||
"source": "https://github.com/guzzle/psr7/tree/1.9.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -115,17 +115,17 @@
|
||||
},
|
||||
{
|
||||
"name": "hybridauth/hybridauth",
|
||||
"version": "v3.8.0",
|
||||
"version_normalized": "3.8.0.0",
|
||||
"version": "v3.8.2",
|
||||
"version_normalized": "3.8.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/hybridauth/hybridauth.git",
|
||||
"reference": "c76bea6638376394c74a52791dd637fef4deaf08"
|
||||
"reference": "0d6e31482c544e5ed2bdc83bd3c033054129c482"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/c76bea6638376394c74a52791dd637fef4deaf08",
|
||||
"reference": "c76bea6638376394c74a52791dd637fef4deaf08",
|
||||
"url": "https://api.github.com/repos/hybridauth/hybridauth/zipball/0d6e31482c544e5ed2bdc83bd3c033054129c482",
|
||||
"reference": "0d6e31482c544e5ed2bdc83bd3c033054129c482",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -139,7 +139,7 @@
|
||||
"firebase/php-jwt": "Needed to support Apple provider",
|
||||
"phpseclib/phpseclib": "Needed to support Apple provider"
|
||||
},
|
||||
"time": "2022-04-08T09:49:25+00:00",
|
||||
"time": "2022-08-18T19:48:17+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@ -174,7 +174,7 @@
|
||||
"support": {
|
||||
"gitter": "https://gitter.im/hybridauth/hybridauth",
|
||||
"issues": "https://github.com/hybridauth/hybridauth/issues",
|
||||
"source": "https://github.com/hybridauth/hybridauth/tree/v3.8.0"
|
||||
"source": "https://github.com/hybridauth/hybridauth/tree/v3.8.2"
|
||||
},
|
||||
"install-path": "../hybridauth/hybridauth"
|
||||
},
|
||||
@ -325,17 +325,17 @@
|
||||
},
|
||||
{
|
||||
"name": "matthiasmullie/minify",
|
||||
"version": "1.3.68",
|
||||
"version_normalized": "1.3.68.0",
|
||||
"version": "1.3.70",
|
||||
"version_normalized": "1.3.70.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/matthiasmullie/minify.git",
|
||||
"reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297"
|
||||
"reference": "2807d9f9bece6877577ad44acb5c801bb3ae536b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297",
|
||||
"reference": "c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297",
|
||||
"url": "https://api.github.com/repos/matthiasmullie/minify/zipball/2807d9f9bece6877577ad44acb5c801bb3ae536b",
|
||||
"reference": "2807d9f9bece6877577ad44acb5c801bb3ae536b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -344,14 +344,15 @@
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"friendsofphp/php-cs-fixer": "~2.0",
|
||||
"matthiasmullie/scrapbook": "dev-master",
|
||||
"phpunit/phpunit": ">=4.8"
|
||||
"friendsofphp/php-cs-fixer": ">=2.0",
|
||||
"matthiasmullie/scrapbook": ">=1.3",
|
||||
"phpunit/phpunit": ">=4.8",
|
||||
"squizlabs/php_codesniffer": ">=3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
||||
},
|
||||
"time": "2022-04-19T08:28:56+00:00",
|
||||
"time": "2022-12-09T12:56:44+00:00",
|
||||
"bin": [
|
||||
"bin/minifycss",
|
||||
"bin/minifyjs"
|
||||
@ -371,12 +372,12 @@
|
||||
{
|
||||
"name": "Matthias Mullie",
|
||||
"email": "minify@mullie.eu",
|
||||
"homepage": "http://www.mullie.eu",
|
||||
"homepage": "https://www.mullie.eu",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
||||
"homepage": "http://www.minifier.org",
|
||||
"homepage": "https://github.com/matthiasmullie/minify",
|
||||
"keywords": [
|
||||
"JS",
|
||||
"css",
|
||||
@ -386,7 +387,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/matthiasmullie/minify/issues",
|
||||
"source": "https://github.com/matthiasmullie/minify/tree/1.3.68"
|
||||
"source": "https://github.com/matthiasmullie/minify/tree/1.3.70"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -454,17 +455,17 @@
|
||||
},
|
||||
{
|
||||
"name": "phpmailer/phpmailer",
|
||||
"version": "v6.6.0",
|
||||
"version_normalized": "6.6.0.0",
|
||||
"version": "v6.7.1",
|
||||
"version_normalized": "6.7.1.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/PHPMailer/PHPMailer.git",
|
||||
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1"
|
||||
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||
"reference": "e43bac82edc26ca04b36143a48bde1c051cfd5b1",
|
||||
"url": "https://api.github.com/repos/PHPMailer/PHPMailer/zipball/49cd7ea3d2563f028d7811f06864a53b1f15ff55",
|
||||
"reference": "49cd7ea3d2563f028d7811f06864a53b1f15ff55",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -474,24 +475,26 @@
|
||||
"php": ">=5.5.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
|
||||
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
"yoast/phpunit-polyfills": "^1.0.0"
|
||||
"squizlabs/php_codesniffer": "^3.7.1",
|
||||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
|
||||
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
|
||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||
"psr/log": "For optional PSR-3 debug logging",
|
||||
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)",
|
||||
"thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication"
|
||||
},
|
||||
"time": "2022-02-28T15:31:21+00:00",
|
||||
"time": "2022-12-08T13:30:06+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
@ -523,7 +526,7 @@
|
||||
"description": "PHPMailer is a full-featured email creation and transfer class for PHP",
|
||||
"support": {
|
||||
"issues": "https://github.com/PHPMailer/PHPMailer/issues",
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.6.0"
|
||||
"source": "https://github.com/PHPMailer/PHPMailer/tree/v6.7.1"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@ -637,6 +640,6 @@
|
||||
"install-path": "../ralouphie/getallheaders"
|
||||
}
|
||||
],
|
||||
"dev": false,
|
||||
"dev": true,
|
||||
"dev-package-names": []
|
||||
}
|
||||
|
30
e107_handlers/vendor/composer/installed.php
vendored
30
e107_handlers/vendor/composer/installed.php
vendored
@ -5,9 +5,9 @@
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../../',
|
||||
'aliases' => array(),
|
||||
'reference' => '8ec6e3a0dd960847abbcec86c6efcaa288f47099',
|
||||
'reference' => '3f73b9cccafe3f7137ec2372de00b6322c496fbf',
|
||||
'name' => 'e107inc/e107',
|
||||
'dev' => false,
|
||||
'dev' => true,
|
||||
),
|
||||
'versions' => array(
|
||||
'e107inc/e107' => array(
|
||||
@ -16,25 +16,25 @@
|
||||
'type' => 'project',
|
||||
'install_path' => __DIR__ . '/../../../',
|
||||
'aliases' => array(),
|
||||
'reference' => '8ec6e3a0dd960847abbcec86c6efcaa288f47099',
|
||||
'reference' => '3f73b9cccafe3f7137ec2372de00b6322c496fbf',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'guzzlehttp/psr7' => array(
|
||||
'pretty_version' => '1.8.5',
|
||||
'version' => '1.8.5.0',
|
||||
'pretty_version' => '1.9.0',
|
||||
'version' => '1.9.0.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../guzzlehttp/psr7',
|
||||
'aliases' => array(),
|
||||
'reference' => '337e3ad8e5716c15f9657bd214d16cc5e69df268',
|
||||
'reference' => 'e98e3e6d4f86621a9b75f623996e6bbdeb4b9318',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'hybridauth/hybridauth' => array(
|
||||
'pretty_version' => 'v3.8.0',
|
||||
'version' => '3.8.0.0',
|
||||
'pretty_version' => 'v3.8.2',
|
||||
'version' => '3.8.2.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../hybridauth/hybridauth',
|
||||
'aliases' => array(),
|
||||
'reference' => 'c76bea6638376394c74a52791dd637fef4deaf08',
|
||||
'reference' => '0d6e31482c544e5ed2bdc83bd3c033054129c482',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'ifsnop/mysqldump-php' => array(
|
||||
@ -56,12 +56,12 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'matthiasmullie/minify' => array(
|
||||
'pretty_version' => '1.3.68',
|
||||
'version' => '1.3.68.0',
|
||||
'pretty_version' => '1.3.70',
|
||||
'version' => '1.3.70.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../matthiasmullie/minify',
|
||||
'aliases' => array(),
|
||||
'reference' => 'c00fb02f71b2ef0a5f53fe18c5a8b9aa30f48297',
|
||||
'reference' => '2807d9f9bece6877577ad44acb5c801bb3ae536b',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'matthiasmullie/path-converter' => array(
|
||||
@ -74,12 +74,12 @@
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'phpmailer/phpmailer' => array(
|
||||
'pretty_version' => 'v6.6.0',
|
||||
'version' => '6.6.0.0',
|
||||
'pretty_version' => 'v6.7.1',
|
||||
'version' => '6.7.1.0',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../phpmailer/phpmailer',
|
||||
'aliases' => array(),
|
||||
'reference' => 'e43bac82edc26ca04b36143a48bde1c051cfd5b1',
|
||||
'reference' => '49cd7ea3d2563f028d7811f06864a53b1f15ff55',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
'psr/http-message' => array(
|
||||
|
@ -3,12 +3,18 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 1.9.0 - 2022-06-20
|
||||
|
||||
### Added
|
||||
|
||||
- Added `UriComparator::isCrossOrigin` method
|
||||
|
||||
## 1.8.5 - 2022-03-20
|
||||
|
||||
### Fixed
|
||||
|
24
e107_handlers/vendor/guzzlehttp/psr7/README.md
vendored
24
e107_handlers/vendor/guzzlehttp/psr7/README.md
vendored
@ -1,6 +1,6 @@
|
||||
# PSR-7 Message Implementation
|
||||
|
||||
This repository contains a full [PSR-7](http://www.php-fig.org/psr/psr-7/)
|
||||
This repository contains a full [PSR-7](https://www.php-fig.org/psr/psr-7/)
|
||||
message implementation, several stream decorators, and some helpful
|
||||
functionality like query string parsing.
|
||||
|
||||
@ -659,7 +659,7 @@ manually but instead is used indirectly via `Psr\Http\Message\UriInterface::__to
|
||||
|
||||
`public static function fromParts(array $parts): UriInterface`
|
||||
|
||||
Creates a URI from a hash of [`parse_url`](http://php.net/manual/en/function.parse-url.php) components.
|
||||
Creates a URI from a hash of [`parse_url`](https://www.php.net/manual/en/function.parse-url.php) components.
|
||||
|
||||
|
||||
### `GuzzleHttp\Psr7\Uri::withQueryValue`
|
||||
@ -684,6 +684,16 @@ associative array of key => value.
|
||||
Creates a new URI with a specific query string value removed. Any existing query string values that exactly match the
|
||||
provided key are removed.
|
||||
|
||||
## Cross-Origin Detection
|
||||
|
||||
`GuzzleHttp\Psr7\UriComparator` provides methods to determine if a modified URL should be considered cross-origin.
|
||||
|
||||
### `GuzzleHttp\Psr7\UriComparator::isCrossOrigin`
|
||||
|
||||
`public static function isCrossOrigin(UriInterface $original, UriInterface $modified): bool`
|
||||
|
||||
Determines if a modified URL should be considered cross-origin with respect to an original URL.
|
||||
|
||||
## Reference Resolution
|
||||
|
||||
`GuzzleHttp\Psr7\UriResolver` provides methods to resolve a URI reference in the context of a base URI according
|
||||
@ -809,14 +819,24 @@ This of course assumes they will be resolved against the same base URI. If this
|
||||
equivalence or difference of relative references does not mean anything.
|
||||
|
||||
|
||||
## Version Guidance
|
||||
|
||||
| Version | Status | PHP Version |
|
||||
|---------|----------------|------------------|
|
||||
| 1.x | Security fixes | >=5.4,<8.1 |
|
||||
| 2.x | Latest | ^7.2.5 \|\| ^8.0 |
|
||||
|
||||
|
||||
## Security
|
||||
|
||||
If you discover a security vulnerability within this package, please send an email to security@tidelift.com. All security vulnerabilities will be promptly addressed. Please do not disclose security-related issues publicly until a fix has been announced. Please see [Security Policy](https://github.com/guzzle/psr7/security/policy) for more information.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Guzzle is made available under the MIT License (MIT). Please see [License File](LICENSE) for more information.
|
||||
|
||||
|
||||
## For Enterprise
|
||||
|
||||
Available as part of the Tidelift Subscription
|
||||
|
@ -63,7 +63,7 @@
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.7-dev"
|
||||
"dev-master": "1.9-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
|
55
e107_handlers/vendor/guzzlehttp/psr7/src/UriComparator.php
vendored
Normal file
55
e107_handlers/vendor/guzzlehttp/psr7/src/UriComparator.php
vendored
Normal file
@ -0,0 +1,55 @@
|
||||
<?php
|
||||
|
||||
namespace GuzzleHttp\Psr7;
|
||||
|
||||
use Psr\Http\Message\UriInterface;
|
||||
|
||||
/**
|
||||
* Provides methods to determine if a modified URL should be considered cross-origin.
|
||||
*
|
||||
* @author Graham Campbell
|
||||
*/
|
||||
final class UriComparator
|
||||
{
|
||||
/**
|
||||
* Determines if a modified URL should be considered cross-origin with
|
||||
* respect to an original URL.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isCrossOrigin(UriInterface $original, UriInterface $modified)
|
||||
{
|
||||
if (\strcasecmp($original->getHost(), $modified->getHost()) !== 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ($original->getScheme() !== $modified->getScheme()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (self::computePort($original) !== self::computePort($modified)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
private static function computePort(UriInterface $uri)
|
||||
{
|
||||
$port = $uri->getPort();
|
||||
|
||||
if (null !== $port) {
|
||||
return $port;
|
||||
}
|
||||
|
||||
return 'https' === $uri->getScheme() ? 443 : 80;
|
||||
}
|
||||
|
||||
private function __construct()
|
||||
{
|
||||
// cannot be instantiated
|
||||
}
|
||||
}
|
@ -1,3 +1,8 @@
|
||||
[](https://github.com/hybridauth/hybridauth/stargazers)
|
||||
[](https://github.com/hybridauth/hybridauth/issues)
|
||||
|
||||
[](https://supportukrainenow.org/)
|
||||
|
||||
## [Hybridauth](https://hybridauth.github.io/) 3.8
|
||||
|
||||
[](https://travis-ci.org/hybridauth/hybridauth) [](https://scrutinizer-ci.com/g/hybridauth/hybridauth/?branch=master) [](https://packagist.org/packages/hybridauth/hybridauth) [](https://gitter.im/hybridauth/hybridauth?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
|
@ -252,7 +252,7 @@ abstract class OpenID extends AbstractAdapter implements AdapterInterface
|
||||
*/
|
||||
protected function fetchUserGender(User\Profile $userProfile, $gender)
|
||||
{
|
||||
$gender = strtolower($gender);
|
||||
$gender = strtolower((string)$gender);
|
||||
|
||||
if ('f' == $gender) {
|
||||
$gender = 'female';
|
||||
|
@ -7,12 +7,12 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
use Hybridauth\Adapter\OpenID;
|
||||
|
||||
/**
|
||||
* AOL OpenID provider adapter.
|
||||
*/
|
||||
class AOLOpenID extends OpenIDAdapter
|
||||
class AOLOpenID extends OpenID
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
@ -7,8 +7,9 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Exception\InvalidArgumentException;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Composer\InstalledVersions;
|
||||
use Exception;
|
||||
use Firebase\JWT\ExpiredException;
|
||||
use Hybridauth\Exception\InvalidApplicationCredentialsException;
|
||||
use Hybridauth\Exception\UnexpectedValueException;
|
||||
|
||||
@ -19,8 +20,8 @@ use Hybridauth\User;
|
||||
use phpseclib\Crypt\RSA;
|
||||
use phpseclib\Math\BigInteger;
|
||||
|
||||
use \Firebase\JWT\JWT;
|
||||
use \Firebase\JWT\JWK;
|
||||
use Firebase\JWT\JWT;
|
||||
use Firebase\JWT\Key;
|
||||
|
||||
/**
|
||||
* Apple OAuth2 provider adapter.
|
||||
@ -117,7 +118,7 @@ class Apple extends OAuth2
|
||||
$keys = $this->config->get('keys');
|
||||
$keys['secret'] = $this->getSecret();
|
||||
$this->config->set('keys', $keys);
|
||||
return parent::configure();
|
||||
parent::configure();
|
||||
}
|
||||
|
||||
/**
|
||||
@ -177,7 +178,7 @@ class Apple extends OAuth2
|
||||
// validate the token signature and get the payload
|
||||
$publicKeys = $this->apiRequest('keys');
|
||||
|
||||
\Firebase\JWT\JWT::$leeway = 120;
|
||||
JWT::$leeway = 120;
|
||||
|
||||
$error = false;
|
||||
$payload = null;
|
||||
@ -195,18 +196,20 @@ class Apple extends OAuth2
|
||||
);
|
||||
$pem = $rsa->getPublicKey();
|
||||
|
||||
$payload = JWT::decode($id_token, $pem, ['RS256']);
|
||||
$payload = ($this->getJwtVersion() < '6.2') ?
|
||||
JWT::decode($id_token, $pem, ['RS256']) :
|
||||
JWT::decode($id_token, new Key($pem, 'RS256'));
|
||||
break;
|
||||
} catch (\Exception $e) {
|
||||
} catch (Exception $e) {
|
||||
$error = $e->getMessage();
|
||||
if ($e instanceof \Firebase\JWT\ExpiredException) {
|
||||
if ($e instanceof ExpiredException) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($error && !$payload) {
|
||||
throw new \Exception($error);
|
||||
throw new Exception($error);
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,4 +296,9 @@ class Apple extends OAuth2
|
||||
|
||||
return $secret;
|
||||
}
|
||||
|
||||
private function getJwtVersion()
|
||||
{
|
||||
return InstalledVersions::getVersion('firebase/php-jwt');
|
||||
}
|
||||
}
|
||||
|
@ -1,83 +0,0 @@
|
||||
<?php
|
||||
/*!
|
||||
* Hybridauth
|
||||
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
|
||||
* (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
|
||||
*/
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OAuth2;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Hybridauth\Data\Collection;
|
||||
use Hybridauth\User\Profile;
|
||||
|
||||
/**
|
||||
* Mailru OAuth2 provider adapter.
|
||||
*/
|
||||
class Mailru extends OAuth2
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiBaseUrl = 'http://www.appsmail.ru/platform/api';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $authorizeUrl = 'https://connect.mail.ru/oauth/authorize';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $accessTokenUrl = 'https://connect.mail.ru/oauth/token';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiDocumentation = ''; // Not available
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getUserProfile()
|
||||
{
|
||||
$params = [
|
||||
'app_id' => $this->clientId,
|
||||
'method' => 'users.getInfo',
|
||||
'secure' => 1,
|
||||
'session_key' => $this->getStoredData('access_token'),
|
||||
];
|
||||
$sign = md5(http_build_query($params, null, '') . $this->clientSecret);
|
||||
|
||||
$param = [
|
||||
'app_id' => $this->clientId,
|
||||
'method' => 'users.getInfo',
|
||||
'secure' => 1,
|
||||
'session_key' => $this->getStoredData('access_token'),
|
||||
'sig' => $sign,
|
||||
];
|
||||
|
||||
$response = $this->apiRequest('', 'GET', $param);
|
||||
|
||||
$data = new Collection($response[0]);
|
||||
|
||||
if (!$data->exists('uid')) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$userProfile = new Profile();
|
||||
|
||||
$userProfile->identifier = $data->get('uid');
|
||||
$userProfile->email = $data->get('email');
|
||||
$userProfile->firstName = $data->get('first_name');
|
||||
$userProfile->lastName = $data->get('last_name');
|
||||
$userProfile->displayName = $data->get('nick');
|
||||
$userProfile->photoURL = $data->get('pic');
|
||||
$userProfile->profileURL = $data->get('link');
|
||||
$userProfile->gender = $data->get('sex');
|
||||
$userProfile->age = $data->get('age');
|
||||
|
||||
return $userProfile;
|
||||
}
|
||||
}
|
@ -1,110 +0,0 @@
|
||||
<?php
|
||||
/*!
|
||||
* Hybridauth
|
||||
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
|
||||
* (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
|
||||
*/
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OAuth2;
|
||||
use Hybridauth\Data;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Hybridauth\User;
|
||||
|
||||
/**
|
||||
* Odnoklassniki OAuth2 provider adapter.
|
||||
*/
|
||||
class Odnoklassniki extends OAuth2
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiBaseUrl = 'https://api.ok.ru/';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $authorizeUrl = 'https://connect.ok.ru/oauth/authorize';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $accessTokenUrl = 'https://api.ok.ru/oauth/token.do';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiDocumentation = 'https://apiok.ru/en/ext/oauth/';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function initialize()
|
||||
{
|
||||
parent::initialize();
|
||||
|
||||
if ($this->isRefreshTokenAvailable()) {
|
||||
$this->tokenRefreshParameters += [
|
||||
'client_id' => $this->clientId,
|
||||
'client_secret' => $this->clientSecret
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getUserProfile()
|
||||
{
|
||||
$fields = array(
|
||||
'uid', 'locale', 'first_name', 'last_name', 'name', 'gender', 'age', 'birthday',
|
||||
'has_email', 'current_status', 'current_status_id', 'current_status_date', 'online',
|
||||
'photo_id', 'pic_1', 'pic_2', 'pic1024x768', 'location', 'email'
|
||||
);
|
||||
|
||||
$sig = md5(
|
||||
'application_key=' . $this->config->get('keys')['key'] .
|
||||
'fields=' . implode(',', $fields) .
|
||||
'method=users.getCurrentUser' .
|
||||
md5($this->getStoredData('access_token') . $this->config->get('keys')['secret'])
|
||||
);
|
||||
|
||||
$parameters = [
|
||||
'access_token' => $this->getStoredData('access_token'),
|
||||
'application_key' => $this->config->get('keys')['key'],
|
||||
'method' => 'users.getCurrentUser',
|
||||
'fields' => implode(',', $fields),
|
||||
'sig' => $sig,
|
||||
];
|
||||
|
||||
$response = $this->apiRequest('fb.do', 'GET', $parameters);
|
||||
|
||||
$data = new Data\Collection($response);
|
||||
|
||||
if (!$data->exists('uid')) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$userProfile = new User\Profile();
|
||||
|
||||
|
||||
$userProfile->identifier = $data->get('uid');
|
||||
$userProfile->email = $data->get('email');
|
||||
$userProfile->firstName = $data->get('first_name');
|
||||
$userProfile->lastName = $data->get('last_name');
|
||||
$userProfile->displayName = $data->get('name');
|
||||
$userProfile->photoURL = $data->get('pic1024x768');
|
||||
$userProfile->profileURL = 'http://ok.ru/profile/' . $data->get('uid');
|
||||
|
||||
// Handle birthday.
|
||||
if ($data->get('birthday')) {
|
||||
$bday = explode('-', $data->get('birthday'));
|
||||
$userProfile->birthDay = (int)$bday[0];
|
||||
$userProfile->birthMonth = (int)$bday[1];
|
||||
$userProfile->birthYear = (int)$bday[2];
|
||||
}
|
||||
|
||||
return $userProfile;
|
||||
}
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
use Hybridauth\Adapter;
|
||||
|
||||
/**
|
||||
* Generic OpenID providers adapter.
|
||||
@ -39,6 +39,6 @@ use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
* echo $e->getMessage() ;
|
||||
* }
|
||||
*/
|
||||
class OpenID extends OpenIDAdapter
|
||||
class OpenID extends Adapter\OpenID
|
||||
{
|
||||
}
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
use Hybridauth\Adapter\OpenID;
|
||||
use Hybridauth\HttpClient;
|
||||
|
||||
/**
|
||||
* PayPal OpenID provider adapter.
|
||||
*/
|
||||
class PaypalOpenID extends OpenIDAdapter
|
||||
class PaypalOpenID extends OpenID
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
@ -7,12 +7,12 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
use Hybridauth\Adapter\OpenID;
|
||||
|
||||
/**
|
||||
* StackExchange OpenID provider adapter.
|
||||
*/
|
||||
class StackExchangeOpenID extends OpenIDAdapter
|
||||
class StackExchangeOpenID extends OpenID
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OpenID as OpenIDAdapter;
|
||||
use Hybridauth\Adapter\OpenID;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Hybridauth\Data;
|
||||
use Hybridauth\User;
|
||||
@ -32,7 +32,7 @@ use Hybridauth\User;
|
||||
* echo $e->getMessage() ;
|
||||
* }
|
||||
*/
|
||||
class Steam extends OpenIDAdapter
|
||||
class Steam extends OpenID
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
|
@ -1,216 +0,0 @@
|
||||
<?php
|
||||
/*!
|
||||
* Hybridauth
|
||||
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
|
||||
* (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
|
||||
*/
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OAuth2;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Hybridauth\Data\Collection;
|
||||
use Hybridauth\User\Profile;
|
||||
use Hybridauth\Data;
|
||||
use Hybridauth\User;
|
||||
|
||||
/**
|
||||
* Vkontakte OAuth2 provider adapter.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* $config = [
|
||||
* 'callback' => Hybridauth\HttpClient\Util::getCurrentUrl(),
|
||||
* 'keys' => [
|
||||
* 'id' => '', // App ID
|
||||
* 'secret' => '' // Secure key
|
||||
* ],
|
||||
* ];
|
||||
*
|
||||
* $adapter = new Hybridauth\Provider\Vkontakte($config);
|
||||
*
|
||||
* try {
|
||||
* if (!$adapter->isConnected()) {
|
||||
* $adapter->authenticate();
|
||||
* }
|
||||
*
|
||||
* $userProfile = $adapter->getUserProfile();
|
||||
* } catch (\Exception $e) {
|
||||
* print $e->getMessage() ;
|
||||
* }
|
||||
*/
|
||||
class Vkontakte extends OAuth2
|
||||
{
|
||||
const API_VERSION = '5.95';
|
||||
|
||||
const URL = 'https://vk.com/';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiBaseUrl = 'https://api.vk.com/method/';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $authorizeUrl = 'https://api.vk.com/oauth/authorize';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $accessTokenUrl = 'https://api.vk.com/oauth/token';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $scope = 'email,offline';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiDocumentation = ''; // Not available
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function initialize()
|
||||
{
|
||||
parent::initialize();
|
||||
|
||||
// The VK API requires version and access_token from authenticated users
|
||||
// for each endpoint.
|
||||
$accessToken = $this->getStoredData($this->accessTokenName);
|
||||
$this->apiRequestParameters[$this->accessTokenName] = $accessToken;
|
||||
$this->apiRequestParameters['v'] = static::API_VERSION;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function validateAccessTokenExchange($response)
|
||||
{
|
||||
$data = parent::validateAccessTokenExchange($response);
|
||||
|
||||
// Need to store email for later use.
|
||||
$this->storeData('email', $data->get('email'));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function hasAccessTokenExpired($time = null)
|
||||
{
|
||||
if ($time === null) {
|
||||
$time = time();
|
||||
}
|
||||
|
||||
// If we are using offline scope, $expired will be false.
|
||||
$expired = $this->getStoredData('expires_in')
|
||||
? $this->getStoredData('expires_at') <= $time
|
||||
: false;
|
||||
|
||||
return $expired;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getUserProfile()
|
||||
{
|
||||
$photoField = 'photo_' . ($this->config->get('photo_size') ?: 'max_orig');
|
||||
|
||||
$response = $this->apiRequest('users.get', 'GET', [
|
||||
'fields' => 'screen_name,sex,education,bdate,has_photo,' . $photoField,
|
||||
]);
|
||||
|
||||
if (property_exists($response, 'error')) {
|
||||
throw new UnexpectedApiResponseException($response->error->error_msg);
|
||||
}
|
||||
|
||||
$data = new Collection($response->response[0]);
|
||||
|
||||
if (!$data->exists('id')) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$userProfile = new Profile();
|
||||
|
||||
$userProfile->identifier = $data->get('id');
|
||||
$userProfile->email = $this->getStoredData('email');
|
||||
$userProfile->firstName = $data->get('first_name');
|
||||
$userProfile->lastName = $data->get('last_name');
|
||||
$userProfile->displayName = $data->get('screen_name');
|
||||
$userProfile->photoURL = $data->get('has_photo') === 1 ? $data->get($photoField) : '';
|
||||
|
||||
// Handle b-date.
|
||||
if ($data->get('bdate')) {
|
||||
$bday = explode('.', $data->get('bdate'));
|
||||
$userProfile->birthDay = (int)$bday[0];
|
||||
$userProfile->birthMonth = (int)$bday[1];
|
||||
$userProfile->birthYear = (int)$bday[2];
|
||||
}
|
||||
|
||||
$userProfile->data = [
|
||||
'education' => $data->get('education'),
|
||||
];
|
||||
|
||||
$screen_name = static::URL . ($data->get('screen_name') ?: 'id' . $data->get('id'));
|
||||
$userProfile->profileURL = $screen_name;
|
||||
|
||||
switch ($data->get('sex')) {
|
||||
case 1:
|
||||
$userProfile->gender = 'female';
|
||||
break;
|
||||
|
||||
case 2:
|
||||
$userProfile->gender = 'male';
|
||||
break;
|
||||
}
|
||||
|
||||
return $userProfile;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getUserContacts()
|
||||
{
|
||||
$response = $this->apiRequest('friends.get', 'GET', [
|
||||
'fields' => 'uid,name,photo_200_orig',
|
||||
]);
|
||||
|
||||
$data = new Data\Collection($response);
|
||||
if (!$data->exists('response')) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$contacts = [];
|
||||
if (!$data->filter('response')->filter('items')->isEmpty()) {
|
||||
foreach ($data->filter('response')->filter('items')->toArray() as $item) {
|
||||
$contacts[] = $this->fetchUserContact($item);
|
||||
}
|
||||
}
|
||||
|
||||
return $contacts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse the user contact.
|
||||
*
|
||||
* @param array $item
|
||||
*
|
||||
* @return \Hybridauth\User\Contact
|
||||
*/
|
||||
protected function fetchUserContact($item)
|
||||
{
|
||||
$userContact = new User\Contact();
|
||||
$data = new Data\Collection($item);
|
||||
|
||||
$userContact->identifier = $data->get('id');
|
||||
$userContact->displayName = sprintf('%s %s', $data->get('first_name'), $data->get('last_name'));
|
||||
$userContact->profileURL = static::URL . ($data->get('screen_name') ?: 'id' . $data->get('id'));
|
||||
$userContact->photoURL = $data->get('photo_200_orig');
|
||||
|
||||
return $userContact;
|
||||
}
|
||||
}
|
@ -1,85 +0,0 @@
|
||||
<?php
|
||||
/*!
|
||||
* Hybridauth
|
||||
* https://hybridauth.github.io | https://github.com/hybridauth/hybridauth
|
||||
* (c) 2017 Hybridauth authors | https://hybridauth.github.io/license.html
|
||||
*/
|
||||
|
||||
namespace Hybridauth\Provider;
|
||||
|
||||
use Hybridauth\Adapter\OAuth2;
|
||||
use Hybridauth\Exception\Exception;
|
||||
use Hybridauth\Exception\UnexpectedApiResponseException;
|
||||
use Hybridauth\Data;
|
||||
use Hybridauth\User;
|
||||
|
||||
/**
|
||||
* Yandex OAuth2 provider adapter.
|
||||
*/
|
||||
class Yandex extends OAuth2
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiBaseUrl = 'https://login.yandex.ru/info';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $authorizeUrl = 'https://oauth.yandex.ru/authorize';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $accessTokenUrl = 'https://oauth.yandex.ru/token';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected $apiDocumentation
|
||||
= 'https://yandex.com/dev/oauth/doc/dg/concepts/about-docpage/';
|
||||
|
||||
/**
|
||||
* Load the user profile from the IDp api client
|
||||
*
|
||||
* @throws Exception
|
||||
*/
|
||||
public function getUserProfile()
|
||||
{
|
||||
$this->scope = implode(',', []);
|
||||
|
||||
$response = $this->apiRequest($this->apiBaseUrl, 'GET', ['format' => 'json']);
|
||||
|
||||
if (!isset($response->id)) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$data = new Data\Collection($response);
|
||||
|
||||
if (!$data->exists('id')) {
|
||||
throw new UnexpectedApiResponseException('Provider API returned an unexpected response.');
|
||||
}
|
||||
|
||||
$userProfile = new User\Profile();
|
||||
$userProfile->identifier = $data->get('id');
|
||||
$userProfile->firstName = $data->get('first_name');
|
||||
$userProfile->lastName = $data->get('last_name');
|
||||
$userProfile->displayName = $data->get('display_name');
|
||||
$userProfile->photoURL
|
||||
= 'https://avatars.yandex.net/get-yapic/' .
|
||||
$data->get('default_avatar_id') . '/islands-200';
|
||||
$userProfile->gender = $data->get('sex');
|
||||
$userProfile->email = $data->get('default_email');
|
||||
$userProfile->emailVerified = $data->get('default_email');
|
||||
|
||||
if ($data->get('birthday')) {
|
||||
list($birthday_year, $birthday_month, $birthday_day)
|
||||
= explode('-', $response->birthday);
|
||||
$userProfile->birthDay = (int)$birthday_day;
|
||||
$userProfile->birthMonth = (int)$birthday_month;
|
||||
$userProfile->birthYear = (int)$birthday_year;
|
||||
}
|
||||
|
||||
return $userProfile;
|
||||
}
|
||||
}
|
@ -1,59 +0,0 @@
|
||||
# How to contribute
|
||||
|
||||
|
||||
## Issues
|
||||
|
||||
When [filing bugs](https://github.com/matthiasmullie/minify/issues/new),
|
||||
try to be as thorough as possible:
|
||||
* What version did you use?
|
||||
* What did you try to do? ***Please post the relevant parts of your code.***
|
||||
* What went wrong? ***Please include error messages, if any.***
|
||||
* What was the expected result?
|
||||
|
||||
|
||||
## Pull requests
|
||||
|
||||
Bug fixes and general improvements to the existing codebase are always welcome.
|
||||
New features are also welcome, but will be judged on an individual basis. If
|
||||
you'd rather not risk wasting your time implementing a new feature only to see
|
||||
it turned down, please start the discussion by
|
||||
[opening an issue](https://github.com/matthiasmullie/minify/issues/new).
|
||||
|
||||
Don't forget to add your changes to the [changelog](CHANGELOG.md).
|
||||
|
||||
|
||||
### Testing
|
||||
|
||||
Please include tests for every change or addition to the code.
|
||||
To run the complete test suite:
|
||||
|
||||
```sh
|
||||
vendor/bin/phpunit
|
||||
```
|
||||
|
||||
When submitting a new pull request, please make sure that that the test suite
|
||||
passes (Travis CI will run it & report back on your pull request.)
|
||||
|
||||
To run the tests on Windows, run `tests/convert_symlinks_to_windows_style.sh`
|
||||
from the command line in order to convert Linux-style test symlinks to
|
||||
Windows-style.
|
||||
|
||||
|
||||
### Coding standards
|
||||
|
||||
All code must follow [PSR-2](http://www.php-fig.org/psr/psr-2/). Just make sure
|
||||
to run php-cs-fixer before submitting the code, it'll take care of the
|
||||
formatting for you:
|
||||
|
||||
```sh
|
||||
vendor/bin/php-cs-fixer fix src
|
||||
vendor/bin/php-cs-fixer fix tests
|
||||
```
|
||||
|
||||
Document the code thoroughly!
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Note that minify is MIT-licensed, which basically allows anyone to do
|
||||
anything they like with it, without restriction.
|
@ -1,14 +0,0 @@
|
||||
ARG version=cli
|
||||
FROM php:$version
|
||||
|
||||
COPY . /var/www
|
||||
WORKDIR /var/www
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y zip unzip libzip-dev git
|
||||
RUN docker-php-ext-install zip
|
||||
RUN docker-php-ext-install pcntl
|
||||
RUN pecl install xdebug || pecl install xdebug-2.7.2 || pecl install -f xdebug-2.5.5 && docker-php-ext-enable xdebug
|
||||
RUN curl -sS https://getcomposer.org/installer | php
|
||||
RUN mv composer.phar /usr/local/bin/composer
|
||||
RUN composer install
|
@ -3,12 +3,12 @@
|
||||
"type": "library",
|
||||
"description": "CSS & JavaScript minifier, in PHP. Removes whitespace, strips comments, combines files (incl. @import statements and small assets in CSS files), and optimizes/shortens a few common programming patterns.",
|
||||
"keywords": ["minify", "minifier", "css", "js", "javascript"],
|
||||
"homepage": "http://www.minifier.org",
|
||||
"homepage": "https://github.com/matthiasmullie/minify",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Matthias Mullie",
|
||||
"homepage": "http://www.mullie.eu",
|
||||
"homepage": "https://www.mullie.eu",
|
||||
"email": "minify@mullie.eu",
|
||||
"role": "Developer"
|
||||
}
|
||||
@ -19,9 +19,10 @@
|
||||
"matthiasmullie/path-converter": "~1.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"matthiasmullie/scrapbook": "dev-master",
|
||||
"friendsofphp/php-cs-fixer": ">=2.0",
|
||||
"matthiasmullie/scrapbook": ">=1.3",
|
||||
"phpunit/phpunit": ">=4.8",
|
||||
"friendsofphp/php-cs-fixer": "~2.0"
|
||||
"squizlabs/php_codesniffer": ">=3.0"
|
||||
},
|
||||
"suggest": {
|
||||
"psr/cache-implementation": "Cache implementation to use with Minify::cache"
|
||||
@ -31,6 +32,11 @@
|
||||
"MatthiasMullie\\Minify\\": "src/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"MatthiasMullie\\Minify\\Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"bin": [
|
||||
"bin/minifycss",
|
||||
"bin/minifyjs"
|
||||
|
@ -1,52 +0,0 @@
|
||||
version: '2.1'
|
||||
services:
|
||||
php:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
volumes:
|
||||
- ./src:/var/www/src
|
||||
- ./data:/var/www/data
|
||||
- ./tests:/var/www/tests
|
||||
- ./build:/var/www/build
|
||||
- ./phpunit.xml.dist:/var/www/phpunit.xml.dist
|
||||
'8.1':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 8.1-cli
|
||||
'8.0':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 8.0-cli
|
||||
'7.4':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 7.4-cli
|
||||
'7.3':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 7.3-cli
|
||||
'7.2':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 7.2-cli
|
||||
'7.1':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 7.1-cli
|
||||
'7.0':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 7.0-cli
|
||||
'5.6':
|
||||
extends: php
|
||||
build:
|
||||
args:
|
||||
version: 5.6-cli
|
10
e107_handlers/vendor/matthiasmullie/minify/ruleset.xml
vendored
Normal file
10
e107_handlers/vendor/matthiasmullie/minify/ruleset.xml
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<ruleset>
|
||||
<rule ref="PSR12" />
|
||||
|
||||
<file>./src</file>
|
||||
<file>./tests</file>
|
||||
|
||||
<arg name="extensions" value="php" />
|
||||
<arg name="encoding" value="UTF-8" />
|
||||
</ruleset>
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* CSS Minifier
|
||||
* CSS Minifier.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
@ -12,15 +13,14 @@
|
||||
namespace MatthiasMullie\Minify;
|
||||
|
||||
use MatthiasMullie\Minify\Exceptions\FileImportException;
|
||||
use MatthiasMullie\PathConverter\ConverterInterface;
|
||||
use MatthiasMullie\PathConverter\Converter;
|
||||
use MatthiasMullie\PathConverter\ConverterInterface;
|
||||
|
||||
/**
|
||||
* CSS minifier
|
||||
* CSS minifier.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
* @package Minify
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
* @author Tijs Verkoyen <minify@verkoyen.eu>
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
@ -97,7 +97,7 @@ class CSS extends Minify
|
||||
}
|
||||
|
||||
// add to top
|
||||
$content = implode(';', $matches[2]).';'.trim($content, ';');
|
||||
$content = implode(';', $matches[2]) . ';' . trim($content, ';');
|
||||
}
|
||||
|
||||
return $content;
|
||||
@ -106,8 +106,8 @@ class CSS extends Minify
|
||||
/**
|
||||
* Combine CSS from import statements.
|
||||
*
|
||||
* @import's will be loaded and their content merged into the original file,
|
||||
* to save HTTP requests.
|
||||
* Import statements will be loaded and their content merged into the original
|
||||
* file, to save HTTP requests.
|
||||
*
|
||||
* @param string $source The file to combine imports for
|
||||
* @param string $content The CSS content to combine imports for
|
||||
@ -204,7 +204,7 @@ class CSS extends Minify
|
||||
// loop the matches
|
||||
foreach ($matches as $match) {
|
||||
// get the path for the file that will be imported
|
||||
$importPath = dirname($source).'/'.$match['path'];
|
||||
$importPath = dirname($source) . '/' . $match['path'];
|
||||
|
||||
// only replace the import with the content if we can grab the
|
||||
// content of the file
|
||||
@ -215,7 +215,7 @@ class CSS extends Minify
|
||||
// check if current file was not imported previously in the same
|
||||
// import chain.
|
||||
if (in_array($importPath, $parents)) {
|
||||
throw new FileImportException('Failed to import file "'.$importPath.'": circular reference detected.');
|
||||
throw new FileImportException('Failed to import file "' . $importPath . '": circular reference detected.');
|
||||
}
|
||||
|
||||
// grab referenced file & minify it (which may include importing
|
||||
@ -227,7 +227,7 @@ class CSS extends Minify
|
||||
|
||||
// check if this is only valid for certain media
|
||||
if (!empty($match['media'])) {
|
||||
$importContent = '@media '.$match['media'].'{'.$importContent.'}';
|
||||
$importContent = '@media ' . $match['media'] . '{' . $importContent . '}';
|
||||
}
|
||||
|
||||
// add to replacement array
|
||||
@ -266,7 +266,7 @@ class CSS extends Minify
|
||||
|
||||
// get the path for the file that will be imported
|
||||
$path = $match[2];
|
||||
$path = dirname($source).'/'.$path;
|
||||
$path = dirname($source) . '/' . $path;
|
||||
|
||||
// only replace the import with the content if we're able to get
|
||||
// the content of the file, and it's relatively small
|
||||
@ -277,7 +277,7 @@ class CSS extends Minify
|
||||
|
||||
// build replacement
|
||||
$search[] = $match[0];
|
||||
$replace[] = 'url('.$this->importExtensions[$extension].';base64,'.$importContent.')';
|
||||
$replace[] = 'url(' . $this->importExtensions[$extension] . ';base64,' . $importContent . ')';
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,7 +293,7 @@ class CSS extends Minify
|
||||
* Perform CSS optimizations.
|
||||
*
|
||||
* @param string[optional] $path Path to write the data to
|
||||
* @param string[] $parents Parent paths, for circular reference checks
|
||||
* @param string[] $parents Parent paths, for circular reference checks
|
||||
*
|
||||
* @return string The minified data
|
||||
*/
|
||||
@ -469,9 +469,9 @@ class CSS extends Minify
|
||||
// build replacement
|
||||
$search[] = $match[0];
|
||||
if ($type === 'url') {
|
||||
$replace[] = 'url('.$url.')';
|
||||
$replace[] = 'url(' . $url . ')';
|
||||
} elseif ($type === 'import') {
|
||||
$replace[] = '@import "'.$url.'"';
|
||||
$replace[] = '@import "' . $url . '"';
|
||||
}
|
||||
}
|
||||
|
||||
@ -530,7 +530,7 @@ class CSS extends Minify
|
||||
);
|
||||
|
||||
return preg_replace_callback(
|
||||
'/(?<=[: ])('.implode('|', array_keys($colors)).')(?=[; }])/i',
|
||||
'/(?<=[: ])(' . implode('|', array_keys($colors)) . ')(?=[; }])/i',
|
||||
function ($match) use ($colors) {
|
||||
return $colors[strtoupper($match[0])];
|
||||
},
|
||||
@ -553,10 +553,10 @@ class CSS extends Minify
|
||||
);
|
||||
|
||||
$callback = function ($match) use ($weights) {
|
||||
return $match[1].$weights[$match[2]];
|
||||
return $match[1] . $weights[$match[2]];
|
||||
};
|
||||
|
||||
return preg_replace_callback('/(font-weight\s*:\s*)('.implode('|', array_keys($weights)).')(?=[;}])/', $callback, $content);
|
||||
return preg_replace_callback('/(font-weight\s*:\s*)(' . implode('|', array_keys($weights)) . ')(?=[;}])/', $callback, $content);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -588,19 +588,19 @@ class CSS extends Minify
|
||||
// practice, Webkit (especially Safari) seems to stumble over at least
|
||||
// 0%, potentially other units as well. Only stripping 'px' for now.
|
||||
// @see https://github.com/matthiasmullie/minify/issues/60
|
||||
$content = preg_replace('/'.$before.'(-?0*(\.0+)?)(?<=0)px'.$after.'/', '\\1', $content);
|
||||
$content = preg_replace('/' . $before . '(-?0*(\.0+)?)(?<=0)px' . $after . '/', '\\1', $content);
|
||||
|
||||
// strip 0-digits (.0 -> 0)
|
||||
$content = preg_replace('/'.$before.'\.0+'.$units.'?'.$after.'/', '0\\1', $content);
|
||||
$content = preg_replace('/' . $before . '\.0+' . $units . '?' . $after . '/', '0\\1', $content);
|
||||
// strip trailing 0: 50.10 -> 50.1, 50.10px -> 50.1px
|
||||
$content = preg_replace('/'.$before.'(-?[0-9]+\.[0-9]+)0+'.$units.'?'.$after.'/', '\\1\\2', $content);
|
||||
$content = preg_replace('/' . $before . '(-?[0-9]+\.[0-9]+)0+' . $units . '?' . $after . '/', '\\1\\2', $content);
|
||||
// strip trailing 0: 50.00 -> 50, 50.00px -> 50px
|
||||
$content = preg_replace('/'.$before.'(-?[0-9]+)\.0+'.$units.'?'.$after.'/', '\\1\\2', $content);
|
||||
$content = preg_replace('/' . $before . '(-?[0-9]+)\.0+' . $units . '?' . $after . '/', '\\1\\2', $content);
|
||||
// strip leading 0: 0.1 -> .1, 01.1 -> 1.1
|
||||
$content = preg_replace('/'.$before.'(-?)0+([0-9]*\.[0-9]+)'.$units.'?'.$after.'/', '\\1\\2\\3', $content);
|
||||
$content = preg_replace('/' . $before . '(-?)0+([0-9]*\.[0-9]+)' . $units . '?' . $after . '/', '\\1\\2\\3', $content);
|
||||
|
||||
// strip negative zeroes (-0 -> 0) & truncate zeroes (00 -> 0)
|
||||
$content = preg_replace('/'.$before.'-?0+'.$units.'?'.$after.'/', '0\\1', $content);
|
||||
$content = preg_replace('/' . $before . '-?0+' . $units . '?' . $after . '/', '0\\1', $content);
|
||||
|
||||
// IE doesn't seem to understand a unitless flex-basis value (correct -
|
||||
// it goes against the spec), so let's add it in again (make it `%`,
|
||||
@ -636,7 +636,7 @@ class CSS extends Minify
|
||||
$minifier = $this;
|
||||
$callback = function ($match) use ($minifier) {
|
||||
$count = count($minifier->extracted);
|
||||
$placeholder = '/*'.$count.'*/';
|
||||
$placeholder = '/*' . $count . '*/';
|
||||
$minifier->extracted[$placeholder] = $match[0];
|
||||
|
||||
return $placeholder;
|
||||
@ -674,7 +674,7 @@ class CSS extends Minify
|
||||
// not in things like `calc(3px + 2px)`, shorthands like `3px -2px`, or
|
||||
// selectors like `div.weird- p`
|
||||
$pseudos = array('nth-child', 'nth-last-child', 'nth-last-of-type', 'nth-of-type');
|
||||
$content = preg_replace('/:('.implode('|', $pseudos).')\(\s*([+-]?)\s*(.+?)\s*([+-]?)\s*(.*?)\s*\)/', ':$1($2$3$4$5)', $content);
|
||||
$content = preg_replace('/:(' . implode('|', $pseudos) . ')\(\s*([+-]?)\s*(.+?)\s*([+-]?)\s*(.*?)\s*\)/', ':$1($2$3$4$5)', $content);
|
||||
|
||||
// remove semicolon/whitespace followed by closing bracket
|
||||
$content = str_replace(';}', '}', $content);
|
||||
@ -684,12 +684,12 @@ class CSS extends Minify
|
||||
|
||||
/**
|
||||
* Replace all occurrences of functions that may contain math, where
|
||||
* whitespace around operators needs to be preserved (e.g. calc, clamp)
|
||||
* whitespace around operators needs to be preserved (e.g. calc, clamp).
|
||||
*/
|
||||
protected function extractMath()
|
||||
{
|
||||
$functions = array('calc', 'clamp', 'min', 'max');
|
||||
$pattern = '/\b('. implode('|', $functions) .')(\(.+?)(?=$|;|})/m';
|
||||
$pattern = '/\b(' . implode('|', $functions) . ')(\(.+?)(?=$|;|})/m';
|
||||
|
||||
// PHP only supports $this inside anonymous functions since 5.4
|
||||
$minifier = $this;
|
||||
@ -704,11 +704,11 @@ class CSS extends Minify
|
||||
// instead, it'll match a larger portion of code to where it's certain that
|
||||
// the calc() musts have ended, and we'll figure out which is the correct
|
||||
// closing parenthesis here, by counting how many have opened
|
||||
for ($i = 0; $i < $length; $i++) {
|
||||
for ($i = 0; $i < $length; ++$i) {
|
||||
$char = $match[2][$i];
|
||||
$expr .= $char;
|
||||
if ($char === '(') {
|
||||
$opened++;
|
||||
++$opened;
|
||||
} elseif ($char === ')' && --$opened === 0) {
|
||||
break;
|
||||
}
|
||||
@ -716,16 +716,16 @@ class CSS extends Minify
|
||||
|
||||
// now that we've figured out where the calc() starts and ends, extract it
|
||||
$count = count($minifier->extracted);
|
||||
$placeholder = 'math('.$count.')';
|
||||
$minifier->extracted[$placeholder] = $function.'('.trim(substr($expr, 1, -1)).')';
|
||||
$placeholder = 'math(' . $count . ')';
|
||||
$minifier->extracted[$placeholder] = $function . '(' . trim(substr($expr, 1, -1)) . ')';
|
||||
|
||||
// and since we've captured more code than required, we may have some leftover
|
||||
// calc() in here too - go recursive on the remaining but of code to go figure
|
||||
// that out and extract what is needed
|
||||
$rest = str_replace($function.$expr, '', $match[0]);
|
||||
$rest = $minifier->str_replace_first($function . $expr, '', $match[0]);
|
||||
$rest = preg_replace_callback($pattern, $callback, $rest);
|
||||
|
||||
return $placeholder.$rest;
|
||||
return $placeholder . $rest;
|
||||
};
|
||||
|
||||
$this->registerPattern($pattern, $callback);
|
||||
@ -733,19 +733,19 @@ class CSS extends Minify
|
||||
|
||||
/**
|
||||
* Replace custom properties, whose values may be used in scenarios where
|
||||
* we wouldn't want them to be minified (e.g. inside calc)
|
||||
* we wouldn't want them to be minified (e.g. inside calc).
|
||||
*/
|
||||
protected function extractCustomProperties()
|
||||
{
|
||||
// PHP only supports $this inside anonymous functions since 5.4
|
||||
$minifier = $this;
|
||||
$this->registerPattern(
|
||||
'/(?<=^|[;}])\s*(--[^:;{}"\'\s]+)\s*:([^;{}]+)/m',
|
||||
'/(?<=^|[;}{])\s*(--[^:;{}"\'\s]+)\s*:([^;{}]+)/m',
|
||||
function ($match) use ($minifier) {
|
||||
$placeholder = '--custom-'. count($minifier->extracted) . ':0';
|
||||
$minifier->extracted[$placeholder] = $match[1] .':'. trim($match[2]);
|
||||
return $placeholder;
|
||||
$placeholder = '--custom-' . count($minifier->extracted) . ':0';
|
||||
$minifier->extracted[$placeholder] = $match[1] . ':' . trim($match[2]);
|
||||
|
||||
return $placeholder;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
@ -1,18 +1,20 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Base Exception
|
||||
* Base Exception.
|
||||
*
|
||||
* @deprecated Use Exceptions\BasicException instead
|
||||
*
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
*/
|
||||
|
||||
namespace MatthiasMullie\Minify;
|
||||
|
||||
/**
|
||||
* Base Exception Class
|
||||
* Base Exception Class.
|
||||
*
|
||||
* @deprecated Use Exceptions\BasicException instead
|
||||
*
|
||||
* @package Minify
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
*/
|
||||
abstract class Exception extends \Exception
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Basic exception
|
||||
* Basic exception.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
@ -8,14 +9,14 @@
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
* @license MIT License
|
||||
*/
|
||||
|
||||
namespace MatthiasMullie\Minify\Exceptions;
|
||||
|
||||
use MatthiasMullie\Minify\Exception;
|
||||
|
||||
/**
|
||||
* Basic Exception Class
|
||||
* Basic Exception Class.
|
||||
*
|
||||
* @package Minify\Exception
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
*/
|
||||
abstract class BasicException extends Exception
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* File Import Exception
|
||||
* File Import Exception.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
@ -8,12 +9,12 @@
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
* @license MIT License
|
||||
*/
|
||||
|
||||
namespace MatthiasMullie\Minify\Exceptions;
|
||||
|
||||
/**
|
||||
* File Import Exception Class
|
||||
* File Import Exception Class.
|
||||
*
|
||||
* @package Minify\Exception
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
*/
|
||||
class FileImportException extends BasicException
|
||||
|
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* IO Exception
|
||||
* IO Exception.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
@ -8,12 +9,12 @@
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
* @license MIT License
|
||||
*/
|
||||
|
||||
namespace MatthiasMullie\Minify\Exceptions;
|
||||
|
||||
/**
|
||||
* IO Exception Class
|
||||
* IO Exception Class.
|
||||
*
|
||||
* @package Minify\Exception
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
*/
|
||||
class IOException extends BasicException
|
||||
|
File diff suppressed because one or more lines are too long
@ -1,6 +1,7 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Abstract minifier class
|
||||
* Abstract minifier class.
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
@ -8,6 +9,7 @@
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
* @license MIT License
|
||||
*/
|
||||
|
||||
namespace MatthiasMullie\Minify;
|
||||
|
||||
use MatthiasMullie\Minify\Exceptions\IOException;
|
||||
@ -18,7 +20,6 @@ use Psr\Cache\CacheItemInterface;
|
||||
*
|
||||
* Please report bugs on https://github.com/matthiasmullie/minify/issues
|
||||
*
|
||||
* @package Minify
|
||||
* @author Matthias Mullie <minify@mullie.eu>
|
||||
* @copyright Copyright (c) 2012, Matthias Mullie. All rights reserved
|
||||
* @license MIT License
|
||||
@ -44,6 +45,8 @@ abstract class Minify
|
||||
* been extracted from the JS source code, so we can reliably match "code",
|
||||
* without having to worry about potential "code-like" characters inside.
|
||||
*
|
||||
* @internal
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
public $extracted = array();
|
||||
@ -128,7 +131,7 @@ abstract class Minify
|
||||
|
||||
// check if we can read the file
|
||||
if (!$this->canImportFile($path)) {
|
||||
throw new IOException('The file "'.$path.'" could not be opened for reading. Check if PHP has enough permissions.');
|
||||
throw new IOException('The file "' . $path . '" could not be opened for reading. Check if PHP has enough permissions.');
|
||||
}
|
||||
|
||||
$this->add($path);
|
||||
@ -357,6 +360,7 @@ abstract class Minify
|
||||
foreach ($match as &$matchItem) {
|
||||
$matchItem = $matchItem[0];
|
||||
}
|
||||
|
||||
return $replacement($match);
|
||||
}
|
||||
|
||||
@ -391,8 +395,8 @@ abstract class Minify
|
||||
}
|
||||
|
||||
$count = count($minifier->extracted);
|
||||
$placeholder = $match[1].$placeholderPrefix.$count.$match[1];
|
||||
$minifier->extracted[$placeholder] = $match[1].$match[2].$match[1];
|
||||
$placeholder = $match[1] . $placeholderPrefix . $count . $match[1];
|
||||
$minifier->extracted[$placeholder] = $match[1] . $match[2] . $match[1];
|
||||
|
||||
return $placeholder;
|
||||
};
|
||||
@ -409,7 +413,7 @@ abstract class Minify
|
||||
* considered as escape-char (times 2) and to get it in the regex,
|
||||
* escaped (times 2)
|
||||
*/
|
||||
$this->registerPattern('/(['.$chars.'])(.*?(?<!\\\\)(\\\\\\\\)*+)\\1/s', $callback);
|
||||
$this->registerPattern('/([' . $chars . '])(.*?(?<!\\\\)(\\\\\\\\)*+)\\1/s', $callback);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -469,7 +473,7 @@ abstract class Minify
|
||||
protected function openFileForWriting($path)
|
||||
{
|
||||
if ($path === '' || ($handler = @fopen($path, 'w')) === false) {
|
||||
throw new IOException('The file "'.$path.'" could not be opened for writing. Check if PHP has enough permissions.');
|
||||
throw new IOException('The file "' . $path . '" could not be opened for writing. Check if PHP has enough permissions.');
|
||||
}
|
||||
|
||||
return $handler;
|
||||
@ -491,7 +495,17 @@ abstract class Minify
|
||||
($result = @fwrite($handler, $content)) === false ||
|
||||
($result < strlen($content))
|
||||
) {
|
||||
throw new IOException('The file "'.$path.'" could not be written to. Check your disk space and file permissions.');
|
||||
throw new IOException('The file "' . $path . '" could not be written to. Check your disk space and file permissions.');
|
||||
}
|
||||
}
|
||||
|
||||
protected static function str_replace_first($search, $replace, $subject)
|
||||
{
|
||||
$pos = strpos($subject, $search);
|
||||
if ($pos !== false) {
|
||||
return substr_replace($subject, $replace, $pos, strlen($search));
|
||||
}
|
||||
|
||||
return $subject;
|
||||
}
|
||||
}
|
||||
|
@ -1,3 +1,5 @@
|
||||
[](https://supportukrainenow.org/)
|
||||
|
||||

|
||||
|
||||
# PHPMailer – A full-featured email creation and transfer class for PHP
|
||||
@ -8,12 +10,13 @@
|
||||
[](https://packagist.org/packages/phpmailer/phpmailer)
|
||||
[](https://packagist.org/packages/phpmailer/phpmailer)
|
||||
[](https://phpmailer.github.io/PHPMailer/)
|
||||
[](https://api.securityscorecards.dev/projects/github.com/PHPMailer/PHPMailer)
|
||||
|
||||
## Features
|
||||
- Probably the world's most popular code for sending email from PHP!
|
||||
- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
|
||||
- Integrated SMTP support – send without a local mail server
|
||||
- Send emails with multiple To, CC, BCC and Reply-to addresses
|
||||
- Send emails with multiple To, CC, BCC, and Reply-to addresses
|
||||
- Multipart/alternative emails for mail clients that do not read HTML email
|
||||
- Add attachments, including inline
|
||||
- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
|
||||
@ -22,7 +25,7 @@
|
||||
- Protects against header injection attacks
|
||||
- Error messages in over 50 languages!
|
||||
- DKIM and S/MIME signing support
|
||||
- Compatible with PHP 5.5 and later, including PHP 8.1
|
||||
- Compatible with PHP 5.5 and later, including PHP 8.2
|
||||
- Namespaced to prevent name clashes
|
||||
- Much more!
|
||||
|
||||
@ -35,7 +38,7 @@ The PHP `mail()` function usually sends via a local mail server, typically front
|
||||
|
||||
*Please* don't be tempted to do it yourself – if you don't use PHPMailer, there are many other excellent libraries that
|
||||
you should look at before rolling your own. Try [SwiftMailer](https://swiftmailer.symfony.com/)
|
||||
, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail) etc.
|
||||
, [Laminas/Mail](https://docs.laminas.dev/laminas-mail/), [ZetaComponents](https://github.com/zetacomponents/Mail), etc.
|
||||
|
||||
## License
|
||||
This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license, along with the [GPL Cooperation Commitment](https://gplcc.github.io/gplcc/). Please read [LICENSE](https://github.com/PHPMailer/PHPMailer/blob/master/LICENSE) for information on the software availability and distribution.
|
||||
@ -44,7 +47,7 @@ This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lg
|
||||
PHPMailer is available on [Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), and installation via [Composer](https://getcomposer.org) is the recommended way to install PHPMailer. Just add this line to your `composer.json` file:
|
||||
|
||||
```json
|
||||
"phpmailer/phpmailer": "^6.5"
|
||||
"phpmailer/phpmailer": "^6.7.1"
|
||||
```
|
||||
|
||||
or run
|
||||
@ -133,14 +136,14 @@ try {
|
||||
}
|
||||
```
|
||||
|
||||
You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through gmail, building contact forms, sending to mailing lists, and more.
|
||||
You'll find plenty to play with in the [examples](https://github.com/PHPMailer/PHPMailer/tree/master/examples) folder, which covers many common scenarios including sending through Gmail, building contact forms, sending to mailing lists, and more.
|
||||
|
||||
If you are re-using the instance (e.g. when sending to a mailing list), you may need to clear the recipient list to avoid sending duplicate messages. See [the mailing list example](https://github.com/PHPMailer/PHPMailer/blob/master/examples/mailing_list.phps) for further guidance.
|
||||
|
||||
That's it. You should now be ready to use PHPMailer!
|
||||
|
||||
## Localization
|
||||
PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this:
|
||||
PHPMailer defaults to English, but in the [language](https://github.com/PHPMailer/PHPMailer/tree/master/language/) folder, you'll find many translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this:
|
||||
|
||||
```php
|
||||
//To load the French version
|
||||
@ -175,9 +178,9 @@ Please disclose any vulnerabilities found responsibly – report security issues
|
||||
See [SECURITY](https://github.com/PHPMailer/PHPMailer/tree/master/SECURITY.md) and [PHPMailer's security advisories on GitHub](https://github.com/PHPMailer/PHPMailer/security).
|
||||
|
||||
## Contributing
|
||||
Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
|
||||
Please submit bug reports, suggestions, and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
|
||||
|
||||
We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
|
||||
We're particularly interested in fixing edge cases, expanding test coverage, and updating translations.
|
||||
|
||||
If you found a mistake in the docs, or want to add something, go ahead and amend the wiki – anyone can edit it.
|
||||
|
||||
@ -201,7 +204,7 @@ Donations are very welcome, whether in beer 🍺, T-shirts 👕, or cold, hard c
|
||||
Available as part of the Tidelift Subscription.
|
||||
|
||||
The maintainers of PHPMailer and thousands of other packages are working with Tidelift to deliver commercial
|
||||
support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and
|
||||
support and maintenance for the open-source packages you use to build your applications. Save time, reduce risk, and
|
||||
improve code health, while paying the maintainers of the exact packages you
|
||||
use. [Learn more.](https://tidelift.com/subscription/pkg/packagist-phpmailer-phpmailer?utm_source=packagist-phpmailer-phpmailer&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
|
||||
|
||||
@ -219,9 +222,9 @@ See [changelog](changelog.md).
|
||||
### What's changed since moving from SourceForge?
|
||||
- Official successor to the SourceForge and Google Code projects.
|
||||
- Test suite.
|
||||
- Continuous integration with Github Actions.
|
||||
- Continuous integration with GitHub Actions.
|
||||
- Composer support.
|
||||
- Public development.
|
||||
- Additional languages and language strings.
|
||||
- CRAM-MD5 authentication support.
|
||||
- Preserves full repo history of authors, commits and branches from the original SourceForge project.
|
||||
- Preserves full repo history of authors, commits, and branches from the original SourceForge project.
|
||||
|
@ -1 +1 @@
|
||||
6.6.0
|
||||
6.7.1
|
@ -37,21 +37,23 @@
|
||||
"ext-hash": "*"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"doctrine/annotations": "^1.2",
|
||||
"php-parallel-lint/php-console-highlighter": "^0.5.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.1",
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.2",
|
||||
"doctrine/annotations": "^1.2.6 || ^1.13.3",
|
||||
"php-parallel-lint/php-console-highlighter": "^1.0.0",
|
||||
"php-parallel-lint/php-parallel-lint": "^1.3.2",
|
||||
"phpcompatibility/php-compatibility": "^9.3.5",
|
||||
"roave/security-advisories": "dev-latest",
|
||||
"squizlabs/php_codesniffer": "^3.6.2",
|
||||
"yoast/phpunit-polyfills": "^1.0.0"
|
||||
"squizlabs/php_codesniffer": "^3.7.1",
|
||||
"yoast/phpunit-polyfills": "^1.0.4"
|
||||
},
|
||||
"suggest": {
|
||||
"ext-mbstring": "Needed to send email in multibyte encoding charset or decode encoded addresses",
|
||||
"ext-openssl": "Needed for secure SMTP sending and DKIM signing",
|
||||
"greew/oauth2-azure-provider": "Needed for Microsoft Azure XOAUTH2 authentication",
|
||||
"hayageek/oauth2-yahoo": "Needed for Yahoo XOAUTH2 authentication",
|
||||
"league/oauth2-google": "Needed for Google XOAUTH2 authentication",
|
||||
"psr/log": "For optional PSR-3 debug logging",
|
||||
"stevenmaguire/oauth2-microsoft": "Needed for Microsoft XOAUTH2 authentication",
|
||||
"thenetworg/oauth2-azure": "Needed for Microsoft XOAUTH2 authentication",
|
||||
"symfony/polyfill-mbstring": "To support UTF-8 if the Mbstring PHP extension is not enabled (^1.2)"
|
||||
},
|
||||
"autoload": {
|
||||
@ -70,7 +72,7 @@
|
||||
"test": "./vendor/bin/phpunit --no-coverage",
|
||||
"coverage": "./vendor/bin/phpunit",
|
||||
"lint": [
|
||||
"@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . -e php,phps --exclude vendor --exclude .git --exclude build"
|
||||
"@php ./vendor/php-parallel-lint/php-parallel-lint/parallel-lint . --show-deprecated -e php,phps --exclude vendor --exclude .git --exclude build"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -44,14 +44,31 @@ use League\OAuth2\Client\Provider\Google;
|
||||
use Hayageek\OAuth2\Client\Provider\Yahoo;
|
||||
//@see https://github.com/stevenmaguire/oauth2-microsoft
|
||||
use Stevenmaguire\OAuth2\Client\Provider\Microsoft;
|
||||
//@see https://github.com/greew/oauth2-azure-provider
|
||||
use Greew\OAuth2\Client\Provider\Azure;
|
||||
|
||||
if (!isset($_GET['code']) && !isset($_GET['provider'])) {
|
||||
if (!isset($_GET['code']) && !isset($_POST['provider'])) {
|
||||
?>
|
||||
<html>
|
||||
<body>Select Provider:<br>
|
||||
<a href='?provider=Google'>Google</a><br>
|
||||
<a href='?provider=Yahoo'>Yahoo</a><br>
|
||||
<a href='?provider=Microsoft'>Microsoft/Outlook/Hotmail/Live/Office365</a><br>
|
||||
<body>
|
||||
<form method="post">
|
||||
<h1>Select Provider</h1>
|
||||
<input type="radio" name="provider" value="Google" id="providerGoogle">
|
||||
<label for="providerGoogle">Google</label><br>
|
||||
<input type="radio" name="provider" value="Yahoo" id="providerYahoo">
|
||||
<label for="providerYahoo">Yahoo</label><br>
|
||||
<input type="radio" name="provider" value="Microsoft" id="providerMicrosoft">
|
||||
<label for="providerMicrosoft">Microsoft</label><br>
|
||||
<input type="radio" name="provider" value="Azure" id="providerAzure">
|
||||
<label for="providerAzure">Azure</label><br>
|
||||
<h1>Enter id and secret</h1>
|
||||
<p>These details are obtained by setting up an app in your provider's developer console.
|
||||
</p>
|
||||
<p>ClientId: <input type="text" name="clientId"><p>
|
||||
<p>ClientSecret: <input type="text" name="clientSecret"></p>
|
||||
<p>TenantID (only relevant for Azure): <input type="text" name="tenantId"></p>
|
||||
<input type="submit" value="Continue">
|
||||
</form>
|
||||
</body>
|
||||
</html>
|
||||
<?php
|
||||
@ -63,21 +80,29 @@ require 'vendor/autoload.php';
|
||||
session_start();
|
||||
|
||||
$providerName = '';
|
||||
$clientId = '';
|
||||
$clientSecret = '';
|
||||
$tenantId = '';
|
||||
|
||||
if (array_key_exists('provider', $_GET)) {
|
||||
$providerName = $_GET['provider'];
|
||||
if (array_key_exists('provider', $_POST)) {
|
||||
$providerName = $_POST['provider'];
|
||||
$clientId = $_POST['clientId'];
|
||||
$clientSecret = $_POST['clientSecret'];
|
||||
$tenantId = $_POST['tenantId'];
|
||||
$_SESSION['provider'] = $providerName;
|
||||
$_SESSION['clientId'] = $clientId;
|
||||
$_SESSION['clientSecret'] = $clientSecret;
|
||||
$_SESSION['tenantId'] = $tenantId;
|
||||
} elseif (array_key_exists('provider', $_SESSION)) {
|
||||
$providerName = $_SESSION['provider'];
|
||||
}
|
||||
if (!in_array($providerName, ['Google', 'Microsoft', 'Yahoo'])) {
|
||||
exit('Only Google, Microsoft and Yahoo OAuth2 providers are currently supported in this script.');
|
||||
$clientId = $_SESSION['clientId'];
|
||||
$clientSecret = $_SESSION['clientSecret'];
|
||||
$tenantId = $_SESSION['tenantId'];
|
||||
}
|
||||
|
||||
//These details are obtained by setting up an app in the Google developer console,
|
||||
//or whichever provider you're using.
|
||||
$clientId = 'RANDOMCHARS-----duv1n2.apps.googleusercontent.com';
|
||||
$clientSecret = 'RANDOMCHARS-----lGyjPcRtvP';
|
||||
//If you don't want to use the built-in form, set your client id and secret here
|
||||
//$clientId = 'RANDOMCHARS-----duv1n2.apps.googleusercontent.com';
|
||||
//$clientSecret = 'RANDOMCHARS-----lGyjPcRtvP';
|
||||
|
||||
//If this automatic URL doesn't work, set it yourself manually to the URL of this script
|
||||
$redirectUri = (isset($_SERVER['HTTPS']) ? 'https://' : 'http://') . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
|
||||
@ -114,6 +139,17 @@ switch ($providerName) {
|
||||
]
|
||||
];
|
||||
break;
|
||||
case 'Azure':
|
||||
$params['tenantId'] = $tenantId;
|
||||
|
||||
$provider = new Azure($params);
|
||||
$options = [
|
||||
'scope' => [
|
||||
'https://outlook.office.com/SMTP.Send',
|
||||
'offline_access'
|
||||
]
|
||||
];
|
||||
break;
|
||||
}
|
||||
|
||||
if (null === $provider) {
|
||||
|
@ -1,27 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Chinese PHPMailer language file: refer to English translation for definitive list
|
||||
* @package PHPMailer
|
||||
* @author LiuXin <http://www.80x86.cn/blog/>
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'SMTP 错误:身份验证失败。';
|
||||
$PHPMAILER_LANG['connect_host'] = 'SMTP 错误: 不能连接SMTP主机。';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP 错误: 数据不可接受。';
|
||||
//$PHPMAILER_LANG['empty_message'] = 'Message body empty';
|
||||
$PHPMAILER_LANG['encoding'] = '未知编码:';
|
||||
$PHPMAILER_LANG['execute'] = '不能执行: ';
|
||||
$PHPMAILER_LANG['file_access'] = '不能访问文件:';
|
||||
$PHPMAILER_LANG['file_open'] = '文件错误:不能打开文件:';
|
||||
$PHPMAILER_LANG['from_failed'] = '下面的发送地址邮件发送失败了: ';
|
||||
$PHPMAILER_LANG['instantiate'] = '不能实现mail方法。';
|
||||
//$PHPMAILER_LANG['invalid_address'] = 'Invalid address: ';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = ' 您所选择的发送邮件的方法并不支持。';
|
||||
$PHPMAILER_LANG['provide_address'] = '您必须提供至少一个 收信人的email地址。';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP 错误: 下面的 收件人失败了: ';
|
||||
//$PHPMAILER_LANG['signing'] = 'Signing Error: ';
|
||||
//$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() failed.';
|
||||
//$PHPMAILER_LANG['smtp_error'] = 'SMTP server error: ';
|
||||
//$PHPMAILER_LANG['variable_set'] = 'Cannot set or reset variable: ';
|
||||
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
|
@ -14,16 +14,22 @@ $PHPMAILER_LANG['data_not_accepted'] = 'SMTP fejl: Data blev ikke accepteret.
|
||||
$PHPMAILER_LANG['empty_message'] = 'Meddelelsen er uden indhold';
|
||||
$PHPMAILER_LANG['encoding'] = 'Ukendt encode-format: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Kunne ikke afvikle: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Kunne ikke tilgå filen: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Fil fejl: Kunne ikke åbne filen: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Følgende afsenderadresse er forkert: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Email funktionen kunne ikke initialiseres.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Udgyldig adresse: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'Ugyldig header navn eller værdi';
|
||||
$PHPMAILER_LANG['invalid_hostentry'] = 'Ugyldig hostentry: ';
|
||||
$PHPMAILER_LANG['invalid_host'] = 'Ugyldig vært: ';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer understøttes ikke.';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Indtast mindst en modtagers email adresse.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere er forkerte: ';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP fejl: Følgende modtagere fejlede: ';
|
||||
$PHPMAILER_LANG['signing'] = 'Signeringsfejl: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'SMTP kode: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'Yderligere SMTP info: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() fejlede.';
|
||||
$PHPMAILER_LANG['smtp_detail'] = 'Detalje: ';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'SMTP server fejl: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Kunne ikke definere eller nulstille variablen: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Udvidelse mangler: ';
|
||||
|
@ -5,22 +5,29 @@
|
||||
* @package PHPMailer
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'SMTP Σφάλμα: Αδυναμία πιστοποίησης (authentication).';
|
||||
$PHPMAILER_LANG['connect_host'] = 'SMTP Σφάλμα: Αδυναμία σύνδεσης στον SMTP-Host.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'SMTP Σφάλμα: Τα δεδομένα δεν έγιναν αποδεκτά.';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Το E-Mail δεν έχει περιεχόμενο .';
|
||||
$PHPMAILER_LANG['encoding'] = 'Αγνωστο Encoding-Format: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Αδυναμία εκτέλεσης ακόλουθης εντολής: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Αδυναμία προσπέλασης του αρχείου: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Σφάλμα Αρχείου: Δεν είναι δυνατό το άνοιγμα του ακόλουθου αρχείου: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Η παρακάτω διεύθυνση αποστολέα δεν είναι σωστή: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Αδυναμία εκκίνησης Mail function.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Το μήνυμα δεν εστάλη, η διεύθυνση δεν είναι έγκυρη: ';
|
||||
$PHPMAILER_LANG['authenticate'] = 'Σφάλμα SMTP: Αδυναμία πιστοποίησης.';
|
||||
$PHPMAILER_LANG['buggy_php'] = 'Η έκδοση PHP που χρησιμοποιείτε παρουσιάζει σφάλμα που μπορεί να έχει ως αποτέλεσμα κατεστραμένα μηνύματα. Για να το διορθώσετε, αλλάξτε τον τρόπο αποστολής σε SMTP, απενεργοποιήστε την επιλογή mail.add_x_header στο αρχείο php.ini, αλλάξτε λειτουργικό σε MacOS ή Linux ή αναβαθμίστε την PHP σε έκδοση 7.0.17+ ή 7.1.3+.';
|
||||
$PHPMAILER_LANG['connect_host'] = 'Σφάλμα SMTP: Αδυναμία σύνδεσης με τον φιλοξενητή SMTP.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'Σφάλμα SMTP: Μη αποδεκτά δεδομένα.';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Η ηλεκτρονική επιστολή δεν έχει περιεχόμενο.';
|
||||
$PHPMAILER_LANG['encoding'] = 'Άγνωστη μορφή κωδικοποίησης: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Αδυναμία εκτέλεσης: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Απουσία επέκτασης: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Αδυναμία πρόσβασης στο αρχείο: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Σφάλμα Αρχείου: Αδυναμία ανοίγματος αρχείου: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Η ακόλουθη διεύθυνση αποστολέα δεν είναι σωστή: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Αδυναμία εκκίνησης συνάρτησης Mail.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Μη έγκυρη διεύθυνση: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'Μη έγκυρο όνομα κεφαλίδας ή τιμή';
|
||||
$PHPMAILER_LANG['invalid_hostentry'] = 'Μη έγκυρη εισαγωγή φιλοξενητή: ';
|
||||
$PHPMAILER_LANG['invalid_host'] = 'Μη έγκυρος φιλοξενητής: ';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = ' mailer δεν υποστηρίζεται.';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Παρακαλούμε δώστε τουλάχιστον μια e-mail διεύθυνση παραλήπτη.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'SMTP Σφάλμα: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: ';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Δώστε τουλάχιστον μια ηλεκτρονική διεύθυνση παραλήπτη.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'Σφάλμα SMTP: Οι παρακάτω διευθύνσεις παραλήπτη δεν είναι έγκυρες: ';
|
||||
$PHPMAILER_LANG['signing'] = 'Σφάλμα υπογραφής: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Αποτυχία σύνδεσης στον SMTP Server.';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'Σφάλμα από τον SMTP Server: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Αδυναμία ορισμού ή αρχικοποίησης μεταβλητής: ';
|
||||
//$PHPMAILER_LANG['extension_missing'] = 'Extension missing: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'Κώδικάς SMTP: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'Πρόσθετες πληροφορίες SMTP: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Αποτυχία σύνδεσης SMTP.';
|
||||
$PHPMAILER_LANG['smtp_detail'] = 'Λεπτομέρεια: ';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'Σφάλμα με τον διακομιστή SMTP: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Αδυναμία ορισμού ή επαναφοράς μεταβλητής: ';
|
||||
|
@ -4,6 +4,7 @@
|
||||
* Spanish PHPMailer language file: refer to English translation for definitive list
|
||||
* @package PHPMailer
|
||||
* @author Matt Sturdy <matt.sturdy@gmail.com>
|
||||
* @author Crystopher Glodzienski Cardoso <crystopher.glodzienski@gmail.com>
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'Error SMTP: Imposible autentificar.';
|
||||
@ -25,3 +26,6 @@ $PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() falló.';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'Error del servidor SMTP: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'No se pudo configurar la variable: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Extensión faltante: ';
|
||||
$PHPMAILER_LANG['smtp_code'] = 'Código del servidor SMTP: ';
|
||||
$PHPMAILER_LANG['smtp_code_ex'] = 'Información adicional del servidor SMTP: ';
|
||||
$PHPMAILER_LANG['invalid_header'] = 'Nombre o valor de encabezado no válido';
|
||||
|
27
e107_handlers/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php
vendored
Normal file
27
e107_handlers/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Mongolian PHPMailer language file: refer to English translation for definitive list
|
||||
* @package PHPMailer
|
||||
* @author @wispas
|
||||
*/
|
||||
|
||||
$PHPMAILER_LANG['authenticate'] = 'Алдаа SMTP: Холбогдож чадсангүй.';
|
||||
$PHPMAILER_LANG['connect_host'] = 'Алдаа SMTP: SMTP- сервертэй холбогдож болохгүй байна.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'Алдаа SMTP: зөвшөөрөгдсөнгүй.';
|
||||
$PHPMAILER_LANG['encoding'] = 'Тодорхойгүй кодчилол: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Коммандыг гүйцэтгэх боломжгүй байна: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Файлд хандах боломжгүй байна: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Файлын алдаа: файлыг нээх боломжгүй байна: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Илгээгчийн хаяг буруу байна: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Mail () функцийг ажиллуулах боломжгүй байна.';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Хүлээн авагчийн имэйл хаягийг оруулна уу.';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = ' — мэйл серверийг дэмжсэнгүй.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'Алдаа SMTP: ийм хаягийг илгээж чадсангүй: ';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Хоосон мессэж';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'И-Мэйл буруу форматтай тул илгээх боломжгүй: ';
|
||||
$PHPMAILER_LANG['signing'] = 'Гарын үсгийн алдаа: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP сервертэй холбогдоход алдаа гарлаа';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'SMTP серверийн алдаа: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Хувьсагчийг тохируулах эсвэл дахин тохируулах боломжгүй байна: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Өргөтгөл байхгүй: ';
|
@ -9,19 +9,18 @@ $PHPMAILER_LANG['authenticate'] = 'Błąd SMTP: Nie można przeprowadzi
|
||||
$PHPMAILER_LANG['connect_host'] = 'Błąd SMTP: Nie można połączyć się z wybranym hostem.';
|
||||
$PHPMAILER_LANG['data_not_accepted'] = 'Błąd SMTP: Dane nie zostały przyjęte.';
|
||||
$PHPMAILER_LANG['empty_message'] = 'Wiadomość jest pusta.';
|
||||
$PHPMAILER_LANG['encoding'] = 'Nieznany sposób kodowania znaków: ';
|
||||
$PHPMAILER_LANG['encoding'] = 'Błędny sposób kodowania znaków: ';
|
||||
$PHPMAILER_LANG['execute'] = 'Nie można uruchomić: ';
|
||||
$PHPMAILER_LANG['file_access'] = 'Brak dostępu do pliku: ';
|
||||
$PHPMAILER_LANG['file_open'] = 'Nie można otworzyć pliku: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Następujący adres Nadawcy jest nieprawidłowy: ';
|
||||
$PHPMAILER_LANG['from_failed'] = 'Następujący adres nadawcy jest nieprawidłowy lub nie istnieje: ';
|
||||
$PHPMAILER_LANG['instantiate'] = 'Nie można wywołać funkcji mail(). Sprawdź konfigurację serwera.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' .
|
||||
'następujący adres Odbiorcy jest nieprawidłowy: ';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email Odbiorcy.';
|
||||
$PHPMAILER_LANG['invalid_address'] = 'Nie można wysłać wiadomości, ' . 'następujący adres odbiorcy jest nieprawidłowy lub nie istnieje: ';
|
||||
$PHPMAILER_LANG['provide_address'] = 'Należy podać prawidłowy adres email odbiorcy.';
|
||||
$PHPMAILER_LANG['mailer_not_supported'] = 'Wybrana metoda wysyłki wiadomości nie jest obsługiwana.';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi: ';
|
||||
$PHPMAILER_LANG['recipients_failed'] = 'Błąd SMTP: Następujący odbiorcy są nieprawidłowi lub nie istnieją: ';
|
||||
$PHPMAILER_LANG['signing'] = 'Błąd podpisywania wiadomości: ';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'SMTP Connect() zakończone niepowodzeniem.';
|
||||
$PHPMAILER_LANG['smtp_connect_failed'] = 'Wywołanie funkcji SMTP Connect() zostało zakończone niepowodzeniem.';
|
||||
$PHPMAILER_LANG['smtp_error'] = 'Błąd SMTP: ';
|
||||
$PHPMAILER_LANG['variable_set'] = 'Nie można ustawić lub zmodyfikować zmiennej: ';
|
||||
$PHPMAILER_LANG['extension_missing'] = 'Brakujące rozszerzenie: ';
|
||||
|
@ -350,8 +350,8 @@ class PHPMailer
|
||||
public $Password = '';
|
||||
|
||||
/**
|
||||
* SMTP auth type.
|
||||
* Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2, attempted in that order if not specified.
|
||||
* SMTP authentication type. Options are CRAM-MD5, LOGIN, PLAIN, XOAUTH2.
|
||||
* If not specified, the first one from that list that the server supports will be selected.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
@ -750,7 +750,7 @@ class PHPMailer
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.6.0';
|
||||
const VERSION = '6.7.1';
|
||||
|
||||
/**
|
||||
* Error severity: message only, continue processing.
|
||||
@ -858,7 +858,7 @@ class PHPMailer
|
||||
private function mailPassthru($to, $subject, $body, $header, $params)
|
||||
{
|
||||
//Check overloading of mail function to avoid double-encoding
|
||||
if (ini_get('mbstring.func_overload') & 1) {
|
||||
if ((int)ini_get('mbstring.func_overload') & 1) {
|
||||
$subject = $this->secureHeader($subject);
|
||||
} else {
|
||||
$subject = $this->encodeHeader($this->secureHeader($subject));
|
||||
@ -1066,8 +1066,8 @@ class PHPMailer
|
||||
* Addresses that have been added already return false, but do not throw exceptions.
|
||||
*
|
||||
* @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'
|
||||
* @param string $address The email address to send, resp. to reply to
|
||||
* @param string $name
|
||||
* @param string $address The email address
|
||||
* @param string $name An optional username associated with the address
|
||||
*
|
||||
* @throws Exception
|
||||
*
|
||||
@ -1075,9 +1075,11 @@ class PHPMailer
|
||||
*/
|
||||
protected function addOrEnqueueAnAddress($kind, $address, $name)
|
||||
{
|
||||
$address = trim($address);
|
||||
$name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
|
||||
$pos = strrpos($address, '@');
|
||||
$pos = false;
|
||||
if ($address !== null) {
|
||||
$address = trim($address);
|
||||
$pos = strrpos($address, '@');
|
||||
}
|
||||
if (false === $pos) {
|
||||
//At-sign is missing.
|
||||
$error_message = sprintf(
|
||||
@ -1094,8 +1096,14 @@ class PHPMailer
|
||||
|
||||
return false;
|
||||
}
|
||||
if ($name !== null && is_string($name)) {
|
||||
$name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
|
||||
} else {
|
||||
$name = '';
|
||||
}
|
||||
$params = [$kind, $address, $name];
|
||||
//Enqueue addresses with IDN until we know the PHPMailer::$CharSet.
|
||||
//Domain is assumed to be whatever is after the last @ symbol in the address
|
||||
if (static::idnSupported() && $this->has8bitChars(substr($address, ++$pos))) {
|
||||
if ('Reply-To' !== $kind) {
|
||||
if (!array_key_exists($address, $this->RecipientsQueue)) {
|
||||
@ -1116,6 +1124,22 @@ class PHPMailer
|
||||
return call_user_func_array([$this, 'addAnAddress'], $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the boundaries to use for delimiting MIME parts.
|
||||
* If you override this, ensure you set all 3 boundaries to unique values.
|
||||
* The default boundaries include a "=_" sequence which cannot occur in quoted-printable bodies,
|
||||
* as suggested by https://www.rfc-editor.org/rfc/rfc2045#section-6.7
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setBoundaries()
|
||||
{
|
||||
$this->uniqueid = $this->generateId();
|
||||
$this->boundary[1] = 'b1=_' . $this->uniqueid;
|
||||
$this->boundary[2] = 'b2=_' . $this->uniqueid;
|
||||
$this->boundary[3] = 'b3=_' . $this->uniqueid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add an address to one of the recipient arrays or to the ReplyTo array.
|
||||
* Addresses that have been added already return false, but do not throw exceptions.
|
||||
@ -1280,7 +1304,7 @@ class PHPMailer
|
||||
*/
|
||||
public function setFrom($address, $name = '', $auto = true)
|
||||
{
|
||||
$address = trim($address);
|
||||
$address = trim((string)$address);
|
||||
$name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
|
||||
//Don't validate now addresses with IDN. Will be done in send().
|
||||
$pos = strrpos($address, '@');
|
||||
@ -1547,17 +1571,17 @@ class PHPMailer
|
||||
|
||||
//Validate From, Sender, and ConfirmReadingTo addresses
|
||||
foreach (['From', 'Sender', 'ConfirmReadingTo'] as $address_kind) {
|
||||
$this->$address_kind = trim($this->$address_kind);
|
||||
if (empty($this->$address_kind)) {
|
||||
$this->{$address_kind} = trim($this->{$address_kind});
|
||||
if (empty($this->{$address_kind})) {
|
||||
continue;
|
||||
}
|
||||
$this->$address_kind = $this->punyencodeAddress($this->$address_kind);
|
||||
if (!static::validateAddress($this->$address_kind)) {
|
||||
$this->{$address_kind} = $this->punyencodeAddress($this->{$address_kind});
|
||||
if (!static::validateAddress($this->{$address_kind})) {
|
||||
$error_message = sprintf(
|
||||
'%s (%s): %s',
|
||||
$this->lang('invalid_address'),
|
||||
$address_kind,
|
||||
$this->$address_kind
|
||||
$this->{$address_kind}
|
||||
);
|
||||
$this->setError($error_message);
|
||||
$this->edebug($error_message);
|
||||
@ -1657,17 +1681,17 @@ class PHPMailer
|
||||
default:
|
||||
$sendMethod = $this->Mailer . 'Send';
|
||||
if (method_exists($this, $sendMethod)) {
|
||||
return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody);
|
||||
return $this->{$sendMethod}($this->MIMEHeader, $this->MIMEBody);
|
||||
}
|
||||
|
||||
return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
|
||||
}
|
||||
} catch (Exception $exc) {
|
||||
if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true) {
|
||||
$this->smtp->reset();
|
||||
}
|
||||
$this->setError($exc->getMessage());
|
||||
$this->edebug($exc->getMessage());
|
||||
if ($this->Mailer === 'smtp' && $this->SMTPKeepAlive == true && $this->smtp->connected()) {
|
||||
$this->smtp->reset();
|
||||
}
|
||||
if ($this->exceptions) {
|
||||
throw $exc;
|
||||
}
|
||||
@ -1855,7 +1879,7 @@ class PHPMailer
|
||||
if (!static::isPermittedPath($path)) {
|
||||
return false;
|
||||
}
|
||||
$readable = file_exists($path);
|
||||
$readable = is_file($path);
|
||||
//If not a UNC path (expected to start with \\), check read permission, see #2069
|
||||
if (strpos($path, '\\\\') !== 0) {
|
||||
$readable = $readable && is_readable($path);
|
||||
@ -1883,7 +1907,14 @@ class PHPMailer
|
||||
foreach ($this->to as $toaddr) {
|
||||
$toArr[] = $this->addrFormat($toaddr);
|
||||
}
|
||||
$to = implode(', ', $toArr);
|
||||
$to = trim(implode(', ', $toArr));
|
||||
|
||||
//If there are no To-addresses (e.g. when sending only to BCC-addresses)
|
||||
//the following should be added to get a correct DKIM-signature.
|
||||
//Compare with $this->preSend()
|
||||
if ($to === '') {
|
||||
$to = 'undisclosed-recipients:;';
|
||||
}
|
||||
|
||||
$params = null;
|
||||
//This sets the SMTP envelope sender which gets turned into a return-path header by the receiver
|
||||
@ -2086,6 +2117,9 @@ class PHPMailer
|
||||
$this->smtp->setDebugLevel($this->SMTPDebug);
|
||||
$this->smtp->setDebugOutput($this->Debugoutput);
|
||||
$this->smtp->setVerp($this->do_verp);
|
||||
if ($this->Host === null) {
|
||||
$this->Host = 'localhost';
|
||||
}
|
||||
$hosts = explode(';', $this->Host);
|
||||
$lastexception = null;
|
||||
|
||||
@ -2192,7 +2226,8 @@ class PHPMailer
|
||||
//As we've caught all exceptions, just report whatever the last one was
|
||||
if ($this->exceptions && null !== $lastexception) {
|
||||
throw $lastexception;
|
||||
} elseif ($this->exceptions) {
|
||||
}
|
||||
if ($this->exceptions) {
|
||||
// no exception was thrown, likely $this->smtp->connect() failed
|
||||
$message = $this->getSmtpErrorMessage('connect_host');
|
||||
throw new Exception($message);
|
||||
@ -2775,10 +2810,7 @@ class PHPMailer
|
||||
{
|
||||
$body = '';
|
||||
//Create unique IDs and preset boundaries
|
||||
$this->uniqueid = $this->generateId();
|
||||
$this->boundary[1] = 'b1_' . $this->uniqueid;
|
||||
$this->boundary[2] = 'b2_' . $this->uniqueid;
|
||||
$this->boundary[3] = 'b3_' . $this->uniqueid;
|
||||
$this->setBoundaries();
|
||||
|
||||
if ($this->sign_key_file) {
|
||||
$body .= $this->getMailMIME() . static::$LE;
|
||||
@ -2814,7 +2846,7 @@ class PHPMailer
|
||||
$altBodyEncoding = static::ENCODING_QUOTED_PRINTABLE;
|
||||
}
|
||||
//Use this as a preamble in all multipart message types
|
||||
$mimepre = 'This is a multi-part message in MIME format.' . static::$LE . static::$LE;
|
||||
$mimepre = '';
|
||||
switch ($this->message_type) {
|
||||
case 'inline':
|
||||
$body .= $mimepre;
|
||||
@ -3050,6 +3082,18 @@ class PHPMailer
|
||||
return $body;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the boundaries that this message will use
|
||||
* @return array
|
||||
*/
|
||||
public function getBoundaries()
|
||||
{
|
||||
if (empty($this->boundary)) {
|
||||
$this->setBoundaries();
|
||||
}
|
||||
return $this->boundary;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the start of a message boundary.
|
||||
*
|
||||
@ -3705,20 +3749,21 @@ class PHPMailer
|
||||
* These differ from 'regular' attachments in that they are intended to be
|
||||
* displayed inline with the message, not just attached for download.
|
||||
* This is used in HTML messages that embed the images
|
||||
* the HTML refers to using the $cid value.
|
||||
* the HTML refers to using the `$cid` value in `img` tags, for example `<img src="cid:mylogo">`.
|
||||
* Never use a user-supplied path to a file!
|
||||
*
|
||||
* @param string $path Path to the attachment
|
||||
* @param string $cid Content ID of the attachment; Use this to reference
|
||||
* the content when using an embedded image in HTML
|
||||
* @param string $name Overrides the attachment name
|
||||
* @param string $encoding File encoding (see $Encoding)
|
||||
* @param string $type File MIME type
|
||||
* @param string $disposition Disposition to use
|
||||
*
|
||||
* @throws Exception
|
||||
* @param string $name Overrides the attachment filename
|
||||
* @param string $encoding File encoding (see $Encoding) defaults to `base64`
|
||||
* @param string $type File MIME type (by default mapped from the `$path` filename's extension)
|
||||
* @param string $disposition Disposition to use: `inline` (default) or `attachment`
|
||||
* (unlikely you want this – {@see `addAttachment()`} instead)
|
||||
*
|
||||
* @return bool True on successfully adding an attachment
|
||||
* @throws Exception
|
||||
*
|
||||
*/
|
||||
public function addEmbeddedImage(
|
||||
$path,
|
||||
@ -4096,12 +4141,8 @@ class PHPMailer
|
||||
//Is it a valid IPv4 address?
|
||||
return filter_var($host, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) !== false;
|
||||
}
|
||||
if (filter_var('http://' . $host, FILTER_VALIDATE_URL) !== false) {
|
||||
//Is it a syntactically valid hostname?
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
//Is it a syntactically valid hostname (when embeded in a URL)?
|
||||
return filter_var('http://' . $host, FILTER_VALIDATE_URL) !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4170,6 +4211,7 @@ class PHPMailer
|
||||
* @param string $name Custom header name
|
||||
* @param string|null $value Header value
|
||||
*
|
||||
* @return bool True if a header was set successfully
|
||||
* @throws Exception
|
||||
*/
|
||||
public function addCustomHeader($name, $value = null)
|
||||
@ -4464,6 +4506,7 @@ class PHPMailer
|
||||
'ics' => 'text/calendar',
|
||||
'xml' => 'text/xml',
|
||||
'xsl' => 'text/xml',
|
||||
'csv' => 'text/csv',
|
||||
'wmv' => 'video/x-ms-wmv',
|
||||
'mpeg' => 'video/mpeg',
|
||||
'mpe' => 'video/mpeg',
|
||||
@ -4571,7 +4614,7 @@ class PHPMailer
|
||||
public function set($name, $value = '')
|
||||
{
|
||||
if (property_exists($this, $name)) {
|
||||
$this->$name = $value;
|
||||
$this->{$name} = $value;
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -4618,15 +4661,27 @@ class PHPMailer
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove trailing breaks from a string.
|
||||
* Remove trailing whitespace from a string.
|
||||
*
|
||||
* @param string $text
|
||||
*
|
||||
* @return string The text to remove whitespace from
|
||||
*/
|
||||
public static function stripTrailingWSP($text)
|
||||
{
|
||||
return rtrim($text, " \r\n\t");
|
||||
}
|
||||
|
||||
/**
|
||||
* Strip trailing line breaks from a string.
|
||||
*
|
||||
* @param string $text
|
||||
*
|
||||
* @return string The text to remove breaks from
|
||||
*/
|
||||
public static function stripTrailingWSP($text)
|
||||
public static function stripTrailingBreaks($text)
|
||||
{
|
||||
return rtrim($text, " \r\n\t");
|
||||
return rtrim($text, "\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@ -4792,7 +4847,7 @@ class PHPMailer
|
||||
$body = static::normalizeBreaks($body, self::CRLF);
|
||||
|
||||
//Reduce multiple trailing line breaks to a single one
|
||||
return static::stripTrailingWSP($body) . self::CRLF;
|
||||
return static::stripTrailingBreaks($body) . self::CRLF;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -46,7 +46,7 @@ class POP3
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.6.0';
|
||||
const VERSION = '6.7.1';
|
||||
|
||||
/**
|
||||
* Default POP3 port number.
|
||||
@ -337,7 +337,12 @@ class POP3
|
||||
*/
|
||||
public function disconnect()
|
||||
{
|
||||
$this->sendString('QUIT');
|
||||
// If could not connect at all, no need to disconnect
|
||||
if ($this->pop_conn === false) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->sendString('QUIT' . static::LE);
|
||||
|
||||
// RFC 1939 shows POP3 server sending a +OK response to the QUIT command.
|
||||
// Try to get it. Ignore any failures here.
|
||||
|
@ -35,7 +35,7 @@ class SMTP
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
const VERSION = '6.6.0';
|
||||
const VERSION = '6.7.1';
|
||||
|
||||
/**
|
||||
* SMTP line break constant.
|
||||
@ -682,7 +682,6 @@ class SMTP
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
$this->setError('');
|
||||
$this->server_caps = null;
|
||||
$this->helo_rply = null;
|
||||
if (is_resource($this->smtp_conn)) {
|
||||
@ -1037,7 +1036,10 @@ class SMTP
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->setError('');
|
||||
//Don't clear the error store when using keepalive
|
||||
if ($command !== 'RSET') {
|
||||
$this->setError('');
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ class e_user_providerTest extends \Codeception\Test\Unit
|
||||
$this->assertIsArray($result);
|
||||
$this->assertContains("Facebook", $result);
|
||||
$this->assertContains("Twitter", $result);
|
||||
$this->assertCount(52, $result,
|
||||
$this->assertCount(48, $result,
|
||||
"The number of Hybridauth providers has changed! If this is intentional, note the change " .
|
||||
"in Hybridauth providers in the release changelog and update the count in this test."
|
||||
);
|
||||
@ -89,11 +89,11 @@ class e_user_providerTest extends \Codeception\Test\Unit
|
||||
$result = e_user_provider::getSupplementalFieldsOf("Google");
|
||||
$this->assertTrue(array_key_exists('photo_size', $result));
|
||||
|
||||
$result = e_user_provider::getSupplementalFieldsOf("Odnoklassniki");
|
||||
/* $result = e_user_provider::getSupplementalFieldsOf("Odnoklassniki");
|
||||
$this->assertTrue(array_key_exists('key', $result['keys']));
|
||||
$this->assertTrue(array_key_exists('secret', $result['keys']));
|
||||
$this->assertIsNotArray($result['keys']['key']);
|
||||
$this->assertIsNotArray($result['keys']['secret']);
|
||||
$this->assertIsNotArray($result['keys']['secret']);*/
|
||||
|
||||
$result = e_user_provider::getSupplementalFieldsOf("StackExchange");
|
||||
$this->assertTrue(array_key_exists('api_key', $result));
|
||||
@ -112,8 +112,8 @@ class e_user_providerTest extends \Codeception\Test\Unit
|
||||
$this->assertTrue(array_key_exists('photo_size', $result));
|
||||
$this->assertIsNotArray($result['photo_size']);
|
||||
|
||||
$result = e_user_provider::getSupplementalFieldsOf("Vkontakte");
|
||||
$this->assertTrue(array_key_exists('photo_size', $result));
|
||||
/* $result = e_user_provider::getSupplementalFieldsOf("Vkontakte");
|
||||
$this->assertTrue(array_key_exists('photo_size', $result));*/
|
||||
}
|
||||
|
||||
public function testNewSuppressExceptions()
|
||||
|
Loading…
x
Reference in New Issue
Block a user