Changeset 2364279
- Timestamp:
- 08/18/2020 08:00:07 PM (6 years ago)
- Location:
- quick-login/trunk
- Files:
-
- 50 added
- 5 deleted
- 30 edited
-
composer.json (modified) (1 diff)
-
composer.lock (modified) (22 diffs)
-
quick-login.php (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
vendor/composer/autoload_classmap.php (modified) (4 diffs)
-
vendor/composer/autoload_files.php (modified) (1 diff)
-
vendor/composer/autoload_psr4.php (modified) (1 diff)
-
vendor/composer/autoload_static.php (modified) (8 diffs)
-
vendor/composer/installed.json (modified) (19 diffs)
-
vendor/guzzlehttp/guzzle/CHANGELOG.md (modified) (2 diffs)
-
vendor/guzzlehttp/guzzle/composer.json (modified) (1 diff)
-
vendor/guzzlehttp/guzzle/src/Client.php (modified) (3 diffs)
-
vendor/guzzlehttp/guzzle/src/ClientInterface.php (modified) (1 diff)
-
vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php (modified) (1 diff)
-
vendor/guzzlehttp/guzzle/src/Utils.php (modified) (3 diffs)
-
vendor/league/oauth2-client/CHANGELOG.md (modified) (1 diff)
-
vendor/league/oauth2-client/CODE_OF_CONDUCT.md (added)
-
vendor/league/oauth2-client/composer.json (modified) (1 diff)
-
vendor/league/oauth2-facebook/composer.json (modified) (1 diff)
-
vendor/league/oauth2-facebook/src/Provider/Facebook.php (modified) (1 diff)
-
vendor/league/oauth2-facebook/src/Provider/FacebookUser.php (modified) (3 diffs)
-
vendor/league/oauth2-google/CHANGELOG.md (modified) (1 diff)
-
vendor/league/oauth2-google/README.md (modified) (1 diff)
-
vendor/league/oauth2-google/composer.json (modified) (1 diff)
-
vendor/league/oauth2-google/src/Provider/Google.php (modified) (2 diffs)
-
vendor/paragonie/random_compat/build-phar.sh (deleted)
-
vendor/paragonie/random_compat/composer.json (modified) (1 diff)
-
vendor/paragonie/random_compat/lib/byte_safe_strings.php (added)
-
vendor/paragonie/random_compat/lib/cast_to_int.php (added)
-
vendor/paragonie/random_compat/lib/error_polyfill.php (added)
-
vendor/paragonie/random_compat/lib/random.php (modified) (2 diffs)
-
vendor/paragonie/random_compat/lib/random_bytes_com_dotnet.php (added)
-
vendor/paragonie/random_compat/lib/random_bytes_dev_urandom.php (added)
-
vendor/paragonie/random_compat/lib/random_bytes_libsodium.php (added)
-
vendor/paragonie/random_compat/lib/random_bytes_libsodium_legacy.php (added)
-
vendor/paragonie/random_compat/lib/random_bytes_mcrypt.php (added)
-
vendor/paragonie/random_compat/lib/random_int.php (added)
-
vendor/paragonie/random_compat/other (deleted)
-
vendor/paragonie/random_compat/psalm-autoload.php (deleted)
-
vendor/paragonie/random_compat/psalm.xml (deleted)
-
vendor/symfony/polyfill-intl-idn/Idn.php (modified) (6 diffs)
-
vendor/symfony/polyfill-intl-idn/Info.php (added)
-
vendor/symfony/polyfill-intl-idn/LICENSE (modified) (1 diff)
-
vendor/symfony/polyfill-intl-idn/Resources (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/Regex.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/deviation.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_mapped.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/disallowed_STD3_valid.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/ignored.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/mapped.php (added)
-
vendor/symfony/polyfill-intl-idn/Resources/unidata/virama.php (added)
-
vendor/symfony/polyfill-intl-idn/composer.json (modified) (3 diffs)
-
vendor/symfony/polyfill-intl-normalizer (added)
-
vendor/symfony/polyfill-intl-normalizer/LICENSE (added)
-
vendor/symfony/polyfill-intl-normalizer/Normalizer.php (added)
-
vendor/symfony/polyfill-intl-normalizer/README.md (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/stubs (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/unidata (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalComposition.php (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/unidata/canonicalDecomposition.php (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/unidata/combiningClass.php (added)
-
vendor/symfony/polyfill-intl-normalizer/Resources/unidata/compatibilityDecomposition.php (added)
-
vendor/symfony/polyfill-intl-normalizer/bootstrap.php (added)
-
vendor/symfony/polyfill-intl-normalizer/composer.json (added)
-
vendor/symfony/polyfill-mbstring (deleted)
-
vendor/symfony/polyfill-php70 (added)
-
vendor/symfony/polyfill-php70/LICENSE (added)
-
vendor/symfony/polyfill-php70/Php70.php (added)
-
vendor/symfony/polyfill-php70/README.md (added)
-
vendor/symfony/polyfill-php70/Resources (added)
-
vendor/symfony/polyfill-php70/Resources/stubs (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/AssertionError.php (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/ParseError.php (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php (added)
-
vendor/symfony/polyfill-php70/Resources/stubs/TypeError.php (added)
-
vendor/symfony/polyfill-php70/bootstrap.php (added)
-
vendor/symfony/polyfill-php70/composer.json (added)
-
vendor/symfony/polyfill-php72/composer.json (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
quick-login/trunk/composer.json
r2223410 r2364279 40 40 "Layered\\QuickLogin\\": "src/" 41 41 } 42 }, 43 "config": { 44 "platform": { 45 "php": "5.6" 46 } 42 47 } 43 48 } -
quick-login/trunk/composer.lock
r2303737 r2364279 5 5 "This file is @generated automatically" 6 6 ], 7 "content-hash": " 2ce5cfff21e796c432b7339c24e8fabb",7 "content-hash": "c87557ab1f1f7bf3ca2b1f72efd60f7d", 8 8 "packages": [ 9 9 { … … 136 136 { 137 137 "name": "guzzlehttp/guzzle", 138 "version": "6.5. 3",138 "version": "6.5.5", 139 139 "source": { 140 140 "type": "git", 141 141 "url": "https://github.com/guzzle/guzzle.git", 142 "reference": " aab4ebd862aa7d04f01a4b51849d657db56d882e"143 }, 144 "dist": { 145 "type": "zip", 146 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ aab4ebd862aa7d04f01a4b51849d657db56d882e",147 "reference": " aab4ebd862aa7d04f01a4b51849d657db56d882e",142 "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" 143 }, 144 "dist": { 145 "type": "zip", 146 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 147 "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 148 148 "shasum": "" 149 149 }, … … 153 153 "guzzlehttp/psr7": "^1.6.1", 154 154 "php": ">=5.5", 155 "symfony/polyfill-intl-idn": "^1.1 1"155 "symfony/polyfill-intl-idn": "^1.17.0" 156 156 }, 157 157 "require-dev": { … … 199 199 "web service" 200 200 ], 201 "time": "2020-0 4-18T10:38:46+00:00"201 "time": "2020-06-16T21:01:06+00:00" 202 202 }, 203 203 { … … 437 437 { 438 438 "name": "league/oauth2-client", 439 "version": "2. 4.1",439 "version": "2.5.0", 440 440 "source": { 441 441 "type": "git", 442 442 "url": "https://github.com/thephpleague/oauth2-client.git", 443 "reference": " cc114abc622a53af969e8664722e84ca36257530"444 }, 445 "dist": { 446 "type": "zip", 447 "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/ cc114abc622a53af969e8664722e84ca36257530",448 "reference": " cc114abc622a53af969e8664722e84ca36257530",449 "shasum": "" 450 }, 451 "require": { 452 "guzzlehttp/guzzle": "^6.0 ",443 "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb" 444 }, 445 "dist": { 446 "type": "zip", 447 "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", 448 "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", 449 "shasum": "" 450 }, 451 "require": { 452 "guzzlehttp/guzzle": "^6.0 || ^7.0", 453 453 "paragonie/random_compat": "^1|^2|^9.99", 454 454 "php": "^5.6|^7.0" … … 500 500 "single sign on" 501 501 ], 502 "time": "20 18-11-22T18:33:57+00:00"502 "time": "2020-07-18T17:54:32+00:00" 503 503 }, 504 504 { 505 505 "name": "league/oauth2-facebook", 506 "version": "2.0. 1",506 "version": "2.0.2", 507 507 "source": { 508 508 "type": "git", 509 509 "url": "https://github.com/thephpleague/oauth2-facebook.git", 510 "reference": " bcbcd540fb66ae16b4f82671c8ae7752b6a89556"511 }, 512 "dist": { 513 "type": "zip", 514 "url": "https://api.github.com/repos/thephpleague/oauth2-facebook/zipball/ bcbcd540fb66ae16b4f82671c8ae7752b6a89556",515 "reference": " bcbcd540fb66ae16b4f82671c8ae7752b6a89556",510 "reference": "c482a851c93a6cb718270773635d6a0c8384b560" 511 }, 512 "dist": { 513 "type": "zip", 514 "url": "https://api.github.com/repos/thephpleague/oauth2-facebook/zipball/c482a851c93a6cb718270773635d6a0c8384b560", 515 "reference": "c482a851c93a6cb718270773635d6a0c8384b560", 516 516 "shasum": "" 517 517 }, … … 521 521 }, 522 522 "require-dev": { 523 "mockery/mockery": "~0.9", 524 "phpunit/phpunit": "~4.0", 525 "squizlabs/php_codesniffer": "~2.0" 523 "ext-json": "*", 524 "mockery/mockery": "~1.3.0", 525 "phpunit/phpunit": "^5.7|^6.0", 526 "squizlabs/php_codesniffer": "~3.0" 526 527 }, 527 528 "type": "library", … … 551 552 "oauth2" 552 553 ], 553 "time": "20 17-07-22T01:25:00+00:00"554 "time": "2020-07-25T13:30:06+00:00" 554 555 }, 555 556 { 556 557 "name": "league/oauth2-google", 557 "version": "3.0. 2",558 "version": "3.0.3", 558 559 "source": { 559 560 "type": "git", 560 561 "url": "https://github.com/thephpleague/oauth2-google.git", 561 "reference": " cfe9b0ae69eb5dbac64a282f04410b731f6b9c04"562 }, 563 "dist": { 564 "type": "zip", 565 "url": "https://api.github.com/repos/thephpleague/oauth2-google/zipball/ cfe9b0ae69eb5dbac64a282f04410b731f6b9c04",566 "reference": " cfe9b0ae69eb5dbac64a282f04410b731f6b9c04",562 "reference": "18d1889897a8b18d85ecadacf74c9274d678d943" 563 }, 564 "dist": { 565 "type": "zip", 566 "url": "https://api.github.com/repos/thephpleague/oauth2-google/zipball/18d1889897a8b18d85ecadacf74c9274d678d943", 567 "reference": "18d1889897a8b18d85ecadacf74c9274d678d943", 567 568 "shasum": "" 568 569 }, … … 602 603 "oauth2" 603 604 ], 604 "time": "20 19-11-16T14:11:06+00:00"605 "time": "2020-07-24T15:16:12+00:00" 605 606 }, 606 607 { … … 662 663 { 663 664 "name": "paragonie/random_compat", 664 "version": "v 9.99.99",665 "version": "v2.0.18", 665 666 "source": { 666 667 "type": "git", 667 668 "url": "https://github.com/paragonie/random_compat.git", 668 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" 669 }, 670 "dist": { 671 "type": "zip", 672 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", 673 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", 674 "shasum": "" 675 }, 676 "require": { 677 "php": "^7" 678 }, 679 "require-dev": { 680 "phpunit/phpunit": "4.*|5.*", 681 "vimeo/psalm": "^1" 669 "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" 670 }, 671 "dist": { 672 "type": "zip", 673 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", 674 "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", 675 "shasum": "" 676 }, 677 "require": { 678 "php": ">=5.2.0" 679 }, 680 "require-dev": { 681 "phpunit/phpunit": "4.*|5.*" 682 682 }, 683 683 "suggest": { … … 685 685 }, 686 686 "type": "library", 687 "autoload": { 688 "files": [ 689 "lib/random.php" 690 ] 691 }, 687 692 "notification-url": "https://packagist.org/downloads/", 688 693 "license": [ … … 703 708 "random" 704 709 ], 705 "time": "201 8-07-02T15:55:56+00:00"710 "time": "2019-01-03T20:59:08+00:00" 706 711 }, 707 712 { … … 797 802 { 798 803 "name": "symfony/polyfill-intl-idn", 799 "version": "v1.1 7.0",804 "version": "v1.18.1", 800 805 "source": { 801 806 "type": "git", 802 807 "url": "https://github.com/symfony/polyfill-intl-idn.git", 803 "reference": " 3bff59ea7047e925be6b7f2059d60af31bb46d6a"804 }, 805 "dist": { 806 "type": "zip", 807 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ 3bff59ea7047e925be6b7f2059d60af31bb46d6a",808 "reference": " 3bff59ea7047e925be6b7f2059d60af31bb46d6a",808 "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251" 809 }, 810 "dist": { 811 "type": "zip", 812 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251", 813 "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251", 809 814 "shasum": "" 810 815 }, 811 816 "require": { 812 817 "php": ">=5.3.3", 813 "symfony/polyfill-mbstring": "^1.3", 818 "symfony/polyfill-intl-normalizer": "^1.10", 819 "symfony/polyfill-php70": "^1.10", 814 820 "symfony/polyfill-php72": "^1.10" 815 821 }, … … 820 826 "extra": { 821 827 "branch-alias": { 822 "dev-master": "1.17-dev" 828 "dev-master": "1.18-dev" 829 }, 830 "thanks": { 831 "name": "symfony/polyfill", 832 "url": "https://github.com/symfony/polyfill" 823 833 } 824 834 }, … … 839 849 "name": "Laurent Bassin", 840 850 "email": "laurent@bassin.info" 851 }, 852 { 853 "name": "Trevor Rowbotham", 854 "email": "trevor.rowbotham@pm.me" 841 855 }, 842 856 { … … 855 869 "shim" 856 870 ], 857 "time": "2020-0 5-12T16:47:27+00:00"858 }, 859 { 860 "name": "symfony/polyfill- mbstring",861 "version": "v1.1 7.0",862 "source": { 863 "type": "git", 864 "url": "https://github.com/symfony/polyfill- mbstring.git",865 "reference": " fa79b11539418b02fc5e1897267673ba2c19419c"866 }, 867 "dist": { 868 "type": "zip", 869 "url": "https://api.github.com/repos/symfony/polyfill- mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",870 "reference": " fa79b11539418b02fc5e1897267673ba2c19419c",871 "time": "2020-08-04T06:02:08+00:00" 872 }, 873 { 874 "name": "symfony/polyfill-intl-normalizer", 875 "version": "v1.18.1", 876 "source": { 877 "type": "git", 878 "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 879 "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e" 880 }, 881 "dist": { 882 "type": "zip", 883 "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", 884 "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", 871 885 "shasum": "" 872 886 }, … … 875 889 }, 876 890 "suggest": { 877 "ext-mbstring": "For best performance" 878 }, 879 "type": "library", 880 "extra": { 881 "branch-alias": { 882 "dev-master": "1.17-dev" 883 } 884 }, 885 "autoload": { 886 "psr-4": { 887 "Symfony\\Polyfill\\Mbstring\\": "" 891 "ext-intl": "For best performance" 892 }, 893 "type": "library", 894 "extra": { 895 "branch-alias": { 896 "dev-master": "1.18-dev" 897 }, 898 "thanks": { 899 "name": "symfony/polyfill", 900 "url": "https://github.com/symfony/polyfill" 901 } 902 }, 903 "autoload": { 904 "psr-4": { 905 "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 888 906 }, 889 907 "files": [ 890 908 "bootstrap.php" 909 ], 910 "classmap": [ 911 "Resources/stubs" 891 912 ] 892 913 }, … … 905 926 } 906 927 ], 907 "description": "Symfony polyfill for the Mbstring extension",928 "description": "Symfony polyfill for intl's Normalizer class and related functions", 908 929 "homepage": "https://symfony.com", 909 930 "keywords": [ 910 931 "compatibility", 911 "mbstring", 932 "intl", 933 "normalizer", 912 934 "polyfill", 913 935 "portable", 914 936 "shim" 915 937 ], 916 "time": "2020-05-12T16:47:27+00:00" 917 }, 918 { 919 "name": "symfony/polyfill-php72", 920 "version": "v1.17.0", 921 "source": { 922 "type": "git", 923 "url": "https://github.com/symfony/polyfill-php72.git", 924 "reference": "f048e612a3905f34931127360bdd2def19a5e582" 925 }, 926 "dist": { 927 "type": "zip", 928 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", 929 "reference": "f048e612a3905f34931127360bdd2def19a5e582", 930 "shasum": "" 931 }, 932 "require": { 938 "time": "2020-07-14T12:35:20+00:00" 939 }, 940 { 941 "name": "symfony/polyfill-php70", 942 "version": "v1.18.1", 943 "source": { 944 "type": "git", 945 "url": "https://github.com/symfony/polyfill-php70.git", 946 "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3" 947 }, 948 "dist": { 949 "type": "zip", 950 "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", 951 "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", 952 "shasum": "" 953 }, 954 "require": { 955 "paragonie/random_compat": "~1.0|~2.0|~9.99", 933 956 "php": ">=5.3.3" 934 957 }, … … 936 959 "extra": { 937 960 "branch-alias": { 938 "dev-master": "1.17-dev" 939 } 940 }, 941 "autoload": { 942 "psr-4": { 943 "Symfony\\Polyfill\\Php72\\": "" 961 "dev-master": "1.18-dev" 962 }, 963 "thanks": { 964 "name": "symfony/polyfill", 965 "url": "https://github.com/symfony/polyfill" 966 } 967 }, 968 "autoload": { 969 "psr-4": { 970 "Symfony\\Polyfill\\Php70\\": "" 944 971 }, 945 972 "files": [ 946 973 "bootstrap.php" 974 ], 975 "classmap": [ 976 "Resources/stubs" 947 977 ] 948 978 }, … … 961 991 } 962 992 ], 963 "description": "Symfony polyfill backporting some PHP 7. 2+ features to lower PHP versions",993 "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", 964 994 "homepage": "https://symfony.com", 965 995 "keywords": [ … … 969 999 "shim" 970 1000 ], 971 "time": "2020-05-12T16:47:27+00:00" 1001 "time": "2020-07-14T12:35:20+00:00" 1002 }, 1003 { 1004 "name": "symfony/polyfill-php72", 1005 "version": "v1.18.1", 1006 "source": { 1007 "type": "git", 1008 "url": "https://github.com/symfony/polyfill-php72.git", 1009 "reference": "639447d008615574653fb3bc60d1986d7172eaae" 1010 }, 1011 "dist": { 1012 "type": "zip", 1013 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", 1014 "reference": "639447d008615574653fb3bc60d1986d7172eaae", 1015 "shasum": "" 1016 }, 1017 "require": { 1018 "php": ">=5.3.3" 1019 }, 1020 "type": "library", 1021 "extra": { 1022 "branch-alias": { 1023 "dev-master": "1.18-dev" 1024 }, 1025 "thanks": { 1026 "name": "symfony/polyfill", 1027 "url": "https://github.com/symfony/polyfill" 1028 } 1029 }, 1030 "autoload": { 1031 "psr-4": { 1032 "Symfony\\Polyfill\\Php72\\": "" 1033 }, 1034 "files": [ 1035 "bootstrap.php" 1036 ] 1037 }, 1038 "notification-url": "https://packagist.org/downloads/", 1039 "license": [ 1040 "MIT" 1041 ], 1042 "authors": [ 1043 { 1044 "name": "Nicolas Grekas", 1045 "email": "p@tchwork.com" 1046 }, 1047 { 1048 "name": "Symfony Community", 1049 "homepage": "https://symfony.com/contributors" 1050 } 1051 ], 1052 "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1053 "homepage": "https://symfony.com", 1054 "keywords": [ 1055 "compatibility", 1056 "polyfill", 1057 "portable", 1058 "shim" 1059 ], 1060 "time": "2020-07-14T12:35:20+00:00" 972 1061 } 973 1062 ], … … 981 1070 "php": "^5.6|^7.0" 982 1071 }, 983 "platform-dev": [] 1072 "platform-dev": [], 1073 "platform-overrides": { 1074 "php": "5.6" 1075 } 984 1076 } -
quick-login/trunk/quick-login.php
r2312631 r2364279 4 4 Plugin URI: https://layered.market/plugins/quick-login 5 5 Description: Enable secure login & registration with social accounts! Supports Twitter, Facebook, Google, WordPress.com, LinkedIn and Slack. 6 Version: 1.4. 26 Version: 1.4.3 7 7 Text Domain: quick-login 8 8 Author: Layered -
quick-login/trunk/readme.txt
r2312631 r2364279 3 3 Tags: login, social login, twitter, google, facebook, linkedin, slack, oauth, register 4 4 Requires at least: 4 5 Tested up to: 5. 45 Tested up to: 5.5 6 6 Requires PHP: 5.6 7 7 Stable tag: trunk … … 91 91 == Changelog == 92 92 93 = 1.4.3 - 18 Aug 2020 = 94 * Updated - Compatibility with WordPress 5.5 95 * Updated - Dependencies for Google/Facebook OAuth code libraries 96 93 97 = 1.4.2 - 26 May 2020 = 94 98 * Updated - Instructions text for Twitter integration -
quick-login/trunk/vendor/composer/autoload_classmap.php
r2303737 r2364279 7 7 8 8 return array( 9 'ArithmeticError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php', 10 'AssertionError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', 9 11 'Composer\\Installers\\AglInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AglInstaller.php', 10 12 'Composer\\Installers\\AimeosInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/AimeosInstaller.php', … … 103 105 'Composer\\Installers\\ZendInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 104 106 'Composer\\Installers\\ZikulaInstaller' => $vendorDir . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 107 'DivisionByZeroError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php', 108 'Error' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/Error.php', 105 109 'GuzzleHttp\\Client' => $vendorDir . '/guzzlehttp/guzzle/src/Client.php', 106 110 'GuzzleHttp\\ClientInterface' => $vendorDir . '/guzzlehttp/guzzle/src/ClientInterface.php', … … 244 248 'League\\OAuth2\\Client\\Tool\\RequestFactory' => $vendorDir . '/league/oauth2-client/src/Tool/RequestFactory.php', 245 249 'League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => $vendorDir . '/league/oauth2-client/src/Tool/RequiredParameterTrait.php', 250 'Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 251 'ParseError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/ParseError.php', 246 252 'Psr\\Http\\Message\\MessageInterface' => $vendorDir . '/psr/http-message/src/MessageInterface.php', 247 253 'Psr\\Http\\Message\\RequestInterface' => $vendorDir . '/psr/http-message/src/RequestInterface.php', … … 251 257 'Psr\\Http\\Message\\UploadedFileInterface' => $vendorDir . '/psr/http-message/src/UploadedFileInterface.php', 252 258 'Psr\\Http\\Message\\UriInterface' => $vendorDir . '/psr/http-message/src/UriInterface.php', 259 'SessionUpdateTimestampHandlerInterface' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', 253 260 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => $vendorDir . '/symfony/polyfill-intl-idn/Idn.php', 254 'Symfony\\Polyfill\\Mbstring\\Mbstring' => $vendorDir . '/symfony/polyfill-mbstring/Mbstring.php', 261 'Symfony\\Polyfill\\Intl\\Idn\\Info' => $vendorDir . '/symfony/polyfill-intl-idn/Info.php', 262 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', 263 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => $vendorDir . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', 264 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => $vendorDir . '/symfony/polyfill-intl-normalizer/Normalizer.php', 265 'Symfony\\Polyfill\\Php70\\Php70' => $vendorDir . '/symfony/polyfill-php70/Php70.php', 255 266 'Symfony\\Polyfill\\Php72\\Php72' => $vendorDir . '/symfony/polyfill-php72/Php72.php', 267 'TypeError' => $vendorDir . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', 256 268 ); -
quick-login/trunk/vendor/composer/autoload_files.php
r2303737 r2364279 7 7 8 8 return array( 9 '5255c38a0faeba867671b61dfda6d864' => $vendorDir . '/paragonie/random_compat/lib/random.php', 9 10 '7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php', 10 11 '25072dd6e2470089de65ae7bf11d3109' => $vendorDir . '/symfony/polyfill-php72/bootstrap.php', 11 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php', 12 '023d27dca8066ef29e6739335ea73bad' => $vendorDir . '/symfony/polyfill-php70/bootstrap.php', 13 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php', 12 14 'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php', 13 15 'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php', -
quick-login/trunk/vendor/composer/autoload_psr4.php
r2303737 r2364279 8 8 return array( 9 9 'Symfony\\Polyfill\\Php72\\' => array($vendorDir . '/symfony/polyfill-php72'), 10 'Symfony\\Polyfill\\Mbstring\\' => array($vendorDir . '/symfony/polyfill-mbstring'), 10 'Symfony\\Polyfill\\Php70\\' => array($vendorDir . '/symfony/polyfill-php70'), 11 'Symfony\\Polyfill\\Intl\\Normalizer\\' => array($vendorDir . '/symfony/polyfill-intl-normalizer'), 11 12 'Symfony\\Polyfill\\Intl\\Idn\\' => array($vendorDir . '/symfony/polyfill-intl-idn'), 12 13 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-message/src'), 13 'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2- client/src', $vendorDir . '/league/oauth2-facebook/src', $vendorDir . '/league/oauth2-google/src', $vendorDir . '/league/oauth2-linkedin/src'),14 'League\\OAuth2\\Client\\' => array($vendorDir . '/league/oauth2-linkedin/src', $vendorDir . '/league/oauth2-client/src', $vendorDir . '/league/oauth2-facebook/src', $vendorDir . '/league/oauth2-google/src'), 14 15 'League\\OAuth1\\' => array($vendorDir . '/league/oauth1-client/src'), 15 16 'Layered\\QuickLogin\\' => array($baseDir . '/src'), -
quick-login/trunk/vendor/composer/autoload_static.php
r2303737 r2364279 8 8 { 9 9 public static $files = array ( 10 '5255c38a0faeba867671b61dfda6d864' => __DIR__ . '/..' . '/paragonie/random_compat/lib/random.php', 10 11 '7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php', 11 12 '25072dd6e2470089de65ae7bf11d3109' => __DIR__ . '/..' . '/symfony/polyfill-php72/bootstrap.php', 12 '0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php', 13 '023d27dca8066ef29e6739335ea73bad' => __DIR__ . '/..' . '/symfony/polyfill-php70/bootstrap.php', 14 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php', 13 15 'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php', 14 16 'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php', … … 21 23 array ( 22 24 'Symfony\\Polyfill\\Php72\\' => 23, 23 'Symfony\\Polyfill\\Mbstring\\' => 26, 25 'Symfony\\Polyfill\\Php70\\' => 23, 26 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 33, 24 27 'Symfony\\Polyfill\\Intl\\Idn\\' => 26, 25 28 ), … … 52 55 0 => __DIR__ . '/..' . '/symfony/polyfill-php72', 53 56 ), 54 'Symfony\\Polyfill\\Mbstring\\' => 55 array ( 56 0 => __DIR__ . '/..' . '/symfony/polyfill-mbstring', 57 'Symfony\\Polyfill\\Php70\\' => 58 array ( 59 0 => __DIR__ . '/..' . '/symfony/polyfill-php70', 60 ), 61 'Symfony\\Polyfill\\Intl\\Normalizer\\' => 62 array ( 63 0 => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer', 57 64 ), 58 65 'Symfony\\Polyfill\\Intl\\Idn\\' => … … 66 73 'League\\OAuth2\\Client\\' => 67 74 array ( 68 0 => __DIR__ . '/..' . '/league/oauth2- client/src',69 1 => __DIR__ . '/..' . '/league/oauth2- facebook/src',70 2 => __DIR__ . '/..' . '/league/oauth2- google/src',71 3 => __DIR__ . '/..' . '/league/oauth2- linkedin/src',75 0 => __DIR__ . '/..' . '/league/oauth2-linkedin/src', 76 1 => __DIR__ . '/..' . '/league/oauth2-client/src', 77 2 => __DIR__ . '/..' . '/league/oauth2-facebook/src', 78 3 => __DIR__ . '/..' . '/league/oauth2-google/src', 72 79 ), 73 80 'League\\OAuth1\\' => … … 102 109 103 110 public static $classMap = array ( 111 'ArithmeticError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ArithmeticError.php', 112 'AssertionError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/AssertionError.php', 104 113 'Composer\\Installers\\AglInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AglInstaller.php', 105 114 'Composer\\Installers\\AimeosInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/AimeosInstaller.php', … … 198 207 'Composer\\Installers\\ZendInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZendInstaller.php', 199 208 'Composer\\Installers\\ZikulaInstaller' => __DIR__ . '/..' . '/composer/installers/src/Composer/Installers/ZikulaInstaller.php', 209 'DivisionByZeroError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/DivisionByZeroError.php', 210 'Error' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/Error.php', 200 211 'GuzzleHttp\\Client' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/Client.php', 201 212 'GuzzleHttp\\ClientInterface' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/ClientInterface.php', … … 339 350 'League\\OAuth2\\Client\\Tool\\RequestFactory' => __DIR__ . '/..' . '/league/oauth2-client/src/Tool/RequestFactory.php', 340 351 'League\\OAuth2\\Client\\Tool\\RequiredParameterTrait' => __DIR__ . '/..' . '/league/oauth2-client/src/Tool/RequiredParameterTrait.php', 352 'Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Resources/stubs/Normalizer.php', 353 'ParseError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/ParseError.php', 341 354 'Psr\\Http\\Message\\MessageInterface' => __DIR__ . '/..' . '/psr/http-message/src/MessageInterface.php', 342 355 'Psr\\Http\\Message\\RequestInterface' => __DIR__ . '/..' . '/psr/http-message/src/RequestInterface.php', … … 346 359 'Psr\\Http\\Message\\UploadedFileInterface' => __DIR__ . '/..' . '/psr/http-message/src/UploadedFileInterface.php', 347 360 'Psr\\Http\\Message\\UriInterface' => __DIR__ . '/..' . '/psr/http-message/src/UriInterface.php', 361 'SessionUpdateTimestampHandlerInterface' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/SessionUpdateTimestampHandlerInterface.php', 348 362 'Symfony\\Polyfill\\Intl\\Idn\\Idn' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Idn.php', 349 'Symfony\\Polyfill\\Mbstring\\Mbstring' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/Mbstring.php', 363 'Symfony\\Polyfill\\Intl\\Idn\\Info' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Info.php', 364 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\DisallowedRanges' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/DisallowedRanges.php', 365 'Symfony\\Polyfill\\Intl\\Idn\\Resources\\unidata\\Regex' => __DIR__ . '/..' . '/symfony/polyfill-intl-idn/Resources/unidata/Regex.php', 366 'Symfony\\Polyfill\\Intl\\Normalizer\\Normalizer' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/Normalizer.php', 367 'Symfony\\Polyfill\\Php70\\Php70' => __DIR__ . '/..' . '/symfony/polyfill-php70/Php70.php', 350 368 'Symfony\\Polyfill\\Php72\\Php72' => __DIR__ . '/..' . '/symfony/polyfill-php72/Php72.php', 369 'TypeError' => __DIR__ . '/..' . '/symfony/polyfill-php70/Resources/stubs/TypeError.php', 351 370 ); 352 371 -
quick-login/trunk/vendor/composer/installed.json
r2303737 r2364279 131 131 { 132 132 "name": "guzzlehttp/guzzle", 133 "version": "6.5. 3",134 "version_normalized": "6.5. 3.0",133 "version": "6.5.5", 134 "version_normalized": "6.5.5.0", 135 135 "source": { 136 136 "type": "git", 137 137 "url": "https://github.com/guzzle/guzzle.git", 138 "reference": " aab4ebd862aa7d04f01a4b51849d657db56d882e"139 }, 140 "dist": { 141 "type": "zip", 142 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ aab4ebd862aa7d04f01a4b51849d657db56d882e",143 "reference": " aab4ebd862aa7d04f01a4b51849d657db56d882e",138 "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e" 139 }, 140 "dist": { 141 "type": "zip", 142 "url": "https://api.github.com/repos/guzzle/guzzle/zipball/9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 143 "reference": "9d4290de1cfd701f38099ef7e183b64b4b7b0c5e", 144 144 "shasum": "" 145 145 }, … … 149 149 "guzzlehttp/psr7": "^1.6.1", 150 150 "php": ">=5.5", 151 "symfony/polyfill-intl-idn": "^1.1 1"151 "symfony/polyfill-intl-idn": "^1.17.0" 152 152 }, 153 153 "require-dev": { … … 159 159 "psr/log": "Required for using the Log middleware" 160 160 }, 161 "time": "2020-0 4-18T10:38:46+00:00",161 "time": "2020-06-16T21:01:06+00:00", 162 162 "type": "library", 163 163 "extra": { … … 442 442 { 443 443 "name": "league/oauth2-client", 444 "version": "2. 4.1",445 "version_normalized": "2. 4.1.0",444 "version": "2.5.0", 445 "version_normalized": "2.5.0.0", 446 446 "source": { 447 447 "type": "git", 448 448 "url": "https://github.com/thephpleague/oauth2-client.git", 449 "reference": " cc114abc622a53af969e8664722e84ca36257530"450 }, 451 "dist": { 452 "type": "zip", 453 "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/ cc114abc622a53af969e8664722e84ca36257530",454 "reference": " cc114abc622a53af969e8664722e84ca36257530",455 "shasum": "" 456 }, 457 "require": { 458 "guzzlehttp/guzzle": "^6.0 ",449 "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb" 450 }, 451 "dist": { 452 "type": "zip", 453 "url": "https://api.github.com/repos/thephpleague/oauth2-client/zipball/d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", 454 "reference": "d9f2a1e000dc14eb3c02e15d15759385ec7ff0fb", 455 "shasum": "" 456 }, 457 "require": { 458 "guzzlehttp/guzzle": "^6.0 || ^7.0", 459 459 "paragonie/random_compat": "^1|^2|^9.99", 460 460 "php": "^5.6|^7.0" … … 467 467 "squizlabs/php_codesniffer": "^2.3|^3.0" 468 468 }, 469 "time": "20 18-11-22T18:33:57+00:00",469 "time": "2020-07-18T17:54:32+00:00", 470 470 "type": "library", 471 471 "extra": { … … 511 511 { 512 512 "name": "league/oauth2-facebook", 513 "version": "2.0. 1",514 "version_normalized": "2.0. 1.0",513 "version": "2.0.2", 514 "version_normalized": "2.0.2.0", 515 515 "source": { 516 516 "type": "git", 517 517 "url": "https://github.com/thephpleague/oauth2-facebook.git", 518 "reference": " bcbcd540fb66ae16b4f82671c8ae7752b6a89556"519 }, 520 "dist": { 521 "type": "zip", 522 "url": "https://api.github.com/repos/thephpleague/oauth2-facebook/zipball/ bcbcd540fb66ae16b4f82671c8ae7752b6a89556",523 "reference": " bcbcd540fb66ae16b4f82671c8ae7752b6a89556",518 "reference": "c482a851c93a6cb718270773635d6a0c8384b560" 519 }, 520 "dist": { 521 "type": "zip", 522 "url": "https://api.github.com/repos/thephpleague/oauth2-facebook/zipball/c482a851c93a6cb718270773635d6a0c8384b560", 523 "reference": "c482a851c93a6cb718270773635d6a0c8384b560", 524 524 "shasum": "" 525 525 }, … … 529 529 }, 530 530 "require-dev": { 531 "mockery/mockery": "~0.9", 532 "phpunit/phpunit": "~4.0", 533 "squizlabs/php_codesniffer": "~2.0" 534 }, 535 "time": "2017-07-22T01:25:00+00:00", 531 "ext-json": "*", 532 "mockery/mockery": "~1.3.0", 533 "phpunit/phpunit": "^5.7|^6.0", 534 "squizlabs/php_codesniffer": "~3.0" 535 }, 536 "time": "2020-07-25T13:30:06+00:00", 536 537 "type": "library", 537 538 "installation-source": "dist", … … 564 565 { 565 566 "name": "league/oauth2-google", 566 "version": "3.0. 2",567 "version_normalized": "3.0. 2.0",567 "version": "3.0.3", 568 "version_normalized": "3.0.3.0", 568 569 "source": { 569 570 "type": "git", 570 571 "url": "https://github.com/thephpleague/oauth2-google.git", 571 "reference": " cfe9b0ae69eb5dbac64a282f04410b731f6b9c04"572 }, 573 "dist": { 574 "type": "zip", 575 "url": "https://api.github.com/repos/thephpleague/oauth2-google/zipball/ cfe9b0ae69eb5dbac64a282f04410b731f6b9c04",576 "reference": " cfe9b0ae69eb5dbac64a282f04410b731f6b9c04",572 "reference": "18d1889897a8b18d85ecadacf74c9274d678d943" 573 }, 574 "dist": { 575 "type": "zip", 576 "url": "https://api.github.com/repos/thephpleague/oauth2-google/zipball/18d1889897a8b18d85ecadacf74c9274d678d943", 577 "reference": "18d1889897a8b18d85ecadacf74c9274d678d943", 577 578 "shasum": "" 578 579 }, … … 586 587 "squizlabs/php_codesniffer": "^2.0" 587 588 }, 588 "time": "20 19-11-16T14:11:06+00:00",589 "time": "2020-07-24T15:16:12+00:00", 589 590 "type": "library", 590 591 "installation-source": "dist", … … 675 676 { 676 677 "name": "paragonie/random_compat", 677 "version": "v 9.99.99",678 "version_normalized": " 9.99.99.0",678 "version": "v2.0.18", 679 "version_normalized": "2.0.18.0", 679 680 "source": { 680 681 "type": "git", 681 682 "url": "https://github.com/paragonie/random_compat.git", 682 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95" 683 }, 684 "dist": { 685 "type": "zip", 686 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", 687 "reference": "84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95", 688 "shasum": "" 689 }, 690 "require": { 691 "php": "^7" 692 }, 693 "require-dev": { 694 "phpunit/phpunit": "4.*|5.*", 695 "vimeo/psalm": "^1" 683 "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db" 684 }, 685 "dist": { 686 "type": "zip", 687 "url": "https://api.github.com/repos/paragonie/random_compat/zipball/0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", 688 "reference": "0a58ef6e3146256cc3dc7cc393927bcc7d1b72db", 689 "shasum": "" 690 }, 691 "require": { 692 "php": ">=5.2.0" 693 }, 694 "require-dev": { 695 "phpunit/phpunit": "4.*|5.*" 696 696 }, 697 697 "suggest": { 698 698 "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 699 699 }, 700 "time": "2018-07-02T15:55:56+00:00", 701 "type": "library", 702 "installation-source": "dist", 700 "time": "2019-01-03T20:59:08+00:00", 701 "type": "library", 702 "installation-source": "dist", 703 "autoload": { 704 "files": [ 705 "lib/random.php" 706 ] 707 }, 703 708 "notification-url": "https://packagist.org/downloads/", 704 709 "license": [ … … 816 821 { 817 822 "name": "symfony/polyfill-intl-idn", 818 "version": "v1.1 7.0",819 "version_normalized": "1.1 7.0.0",823 "version": "v1.18.1", 824 "version_normalized": "1.18.1.0", 820 825 "source": { 821 826 "type": "git", 822 827 "url": "https://github.com/symfony/polyfill-intl-idn.git", 823 "reference": " 3bff59ea7047e925be6b7f2059d60af31bb46d6a"824 }, 825 "dist": { 826 "type": "zip", 827 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/ 3bff59ea7047e925be6b7f2059d60af31bb46d6a",828 "reference": " 3bff59ea7047e925be6b7f2059d60af31bb46d6a",828 "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251" 829 }, 830 "dist": { 831 "type": "zip", 832 "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/5dcab1bc7146cf8c1beaa4502a3d9be344334251", 833 "reference": "5dcab1bc7146cf8c1beaa4502a3d9be344334251", 829 834 "shasum": "" 830 835 }, 831 836 "require": { 832 837 "php": ">=5.3.3", 833 "symfony/polyfill-mbstring": "^1.3", 838 "symfony/polyfill-intl-normalizer": "^1.10", 839 "symfony/polyfill-php70": "^1.10", 834 840 "symfony/polyfill-php72": "^1.10" 835 841 }, … … 837 843 "ext-intl": "For best performance" 838 844 }, 839 "time": "2020-05-12T16:47:27+00:00", 840 "type": "library", 841 "extra": { 842 "branch-alias": { 843 "dev-master": "1.17-dev" 845 "time": "2020-08-04T06:02:08+00:00", 846 "type": "library", 847 "extra": { 848 "branch-alias": { 849 "dev-master": "1.18-dev" 850 }, 851 "thanks": { 852 "name": "symfony/polyfill", 853 "url": "https://github.com/symfony/polyfill" 844 854 } 845 855 }, … … 861 871 "name": "Laurent Bassin", 862 872 "email": "laurent@bassin.info" 873 }, 874 { 875 "name": "Trevor Rowbotham", 876 "email": "trevor.rowbotham@pm.me" 863 877 }, 864 878 { … … 879 893 }, 880 894 { 881 "name": "symfony/polyfill- mbstring",882 "version": "v1.1 7.0",883 "version_normalized": "1.1 7.0.0",884 "source": { 885 "type": "git", 886 "url": "https://github.com/symfony/polyfill- mbstring.git",887 "reference": " fa79b11539418b02fc5e1897267673ba2c19419c"888 }, 889 "dist": { 890 "type": "zip", 891 "url": "https://api.github.com/repos/symfony/polyfill- mbstring/zipball/fa79b11539418b02fc5e1897267673ba2c19419c",892 "reference": " fa79b11539418b02fc5e1897267673ba2c19419c",895 "name": "symfony/polyfill-intl-normalizer", 896 "version": "v1.18.1", 897 "version_normalized": "1.18.1.0", 898 "source": { 899 "type": "git", 900 "url": "https://github.com/symfony/polyfill-intl-normalizer.git", 901 "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e" 902 }, 903 "dist": { 904 "type": "zip", 905 "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", 906 "reference": "37078a8dd4a2a1e9ab0231af7c6cb671b2ed5a7e", 893 907 "shasum": "" 894 908 }, … … 897 911 }, 898 912 "suggest": { 899 "ext-mbstring": "For best performance" 900 }, 901 "time": "2020-05-12T16:47:27+00:00", 902 "type": "library", 903 "extra": { 904 "branch-alias": { 905 "dev-master": "1.17-dev" 906 } 907 }, 908 "installation-source": "dist", 909 "autoload": { 910 "psr-4": { 911 "Symfony\\Polyfill\\Mbstring\\": "" 913 "ext-intl": "For best performance" 914 }, 915 "time": "2020-07-14T12:35:20+00:00", 916 "type": "library", 917 "extra": { 918 "branch-alias": { 919 "dev-master": "1.18-dev" 920 }, 921 "thanks": { 922 "name": "symfony/polyfill", 923 "url": "https://github.com/symfony/polyfill" 924 } 925 }, 926 "installation-source": "dist", 927 "autoload": { 928 "psr-4": { 929 "Symfony\\Polyfill\\Intl\\Normalizer\\": "" 912 930 }, 913 931 "files": [ 914 932 "bootstrap.php" 933 ], 934 "classmap": [ 935 "Resources/stubs" 915 936 ] 916 937 }, … … 929 950 } 930 951 ], 931 "description": "Symfony polyfill for the Mbstring extension",952 "description": "Symfony polyfill for intl's Normalizer class and related functions", 932 953 "homepage": "https://symfony.com", 933 954 "keywords": [ 934 955 "compatibility", 935 "mbstring", 956 "intl", 957 "normalizer", 936 958 "polyfill", 937 959 "portable", … … 940 962 }, 941 963 { 942 "name": "symfony/polyfill-php72", 943 "version": "v1.17.0", 944 "version_normalized": "1.17.0.0", 945 "source": { 946 "type": "git", 947 "url": "https://github.com/symfony/polyfill-php72.git", 948 "reference": "f048e612a3905f34931127360bdd2def19a5e582" 949 }, 950 "dist": { 951 "type": "zip", 952 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/f048e612a3905f34931127360bdd2def19a5e582", 953 "reference": "f048e612a3905f34931127360bdd2def19a5e582", 954 "shasum": "" 955 }, 956 "require": { 964 "name": "symfony/polyfill-php70", 965 "version": "v1.18.1", 966 "version_normalized": "1.18.1.0", 967 "source": { 968 "type": "git", 969 "url": "https://github.com/symfony/polyfill-php70.git", 970 "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3" 971 }, 972 "dist": { 973 "type": "zip", 974 "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", 975 "reference": "0dd93f2c578bdc9c72697eaa5f1dd25644e618d3", 976 "shasum": "" 977 }, 978 "require": { 979 "paragonie/random_compat": "~1.0|~2.0|~9.99", 957 980 "php": ">=5.3.3" 958 981 }, 959 "time": "2020-05-12T16:47:27+00:00", 960 "type": "library", 961 "extra": { 962 "branch-alias": { 963 "dev-master": "1.17-dev" 964 } 965 }, 966 "installation-source": "dist", 967 "autoload": { 968 "psr-4": { 969 "Symfony\\Polyfill\\Php72\\": "" 982 "time": "2020-07-14T12:35:20+00:00", 983 "type": "library", 984 "extra": { 985 "branch-alias": { 986 "dev-master": "1.18-dev" 987 }, 988 "thanks": { 989 "name": "symfony/polyfill", 990 "url": "https://github.com/symfony/polyfill" 991 } 992 }, 993 "installation-source": "dist", 994 "autoload": { 995 "psr-4": { 996 "Symfony\\Polyfill\\Php70\\": "" 970 997 }, 971 998 "files": [ 972 999 "bootstrap.php" 1000 ], 1001 "classmap": [ 1002 "Resources/stubs" 973 1003 ] 974 1004 }, … … 987 1017 } 988 1018 ], 989 "description": "Symfony polyfill backporting some PHP 7. 2+ features to lower PHP versions",1019 "description": "Symfony polyfill backporting some PHP 7.0+ features to lower PHP versions", 990 1020 "homepage": "https://symfony.com", 991 1021 "keywords": [ … … 995 1025 "shim" 996 1026 ] 1027 }, 1028 { 1029 "name": "symfony/polyfill-php72", 1030 "version": "v1.18.1", 1031 "version_normalized": "1.18.1.0", 1032 "source": { 1033 "type": "git", 1034 "url": "https://github.com/symfony/polyfill-php72.git", 1035 "reference": "639447d008615574653fb3bc60d1986d7172eaae" 1036 }, 1037 "dist": { 1038 "type": "zip", 1039 "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/639447d008615574653fb3bc60d1986d7172eaae", 1040 "reference": "639447d008615574653fb3bc60d1986d7172eaae", 1041 "shasum": "" 1042 }, 1043 "require": { 1044 "php": ">=5.3.3" 1045 }, 1046 "time": "2020-07-14T12:35:20+00:00", 1047 "type": "library", 1048 "extra": { 1049 "branch-alias": { 1050 "dev-master": "1.18-dev" 1051 }, 1052 "thanks": { 1053 "name": "symfony/polyfill", 1054 "url": "https://github.com/symfony/polyfill" 1055 } 1056 }, 1057 "installation-source": "dist", 1058 "autoload": { 1059 "psr-4": { 1060 "Symfony\\Polyfill\\Php72\\": "" 1061 }, 1062 "files": [ 1063 "bootstrap.php" 1064 ] 1065 }, 1066 "notification-url": "https://packagist.org/downloads/", 1067 "license": [ 1068 "MIT" 1069 ], 1070 "authors": [ 1071 { 1072 "name": "Nicolas Grekas", 1073 "email": "p@tchwork.com" 1074 }, 1075 { 1076 "name": "Symfony Community", 1077 "homepage": "https://symfony.com/contributors" 1078 } 1079 ], 1080 "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", 1081 "homepage": "https://symfony.com", 1082 "keywords": [ 1083 "compatibility", 1084 "polyfill", 1085 "portable", 1086 "shim" 1087 ] 997 1088 } 998 1089 ] -
quick-login/trunk/vendor/guzzlehttp/guzzle/CHANGELOG.md
r2303737 r2364279 1 1 # Change Log 2 3 ## 6.5.5 - 2020-06-16 4 5 * Unpin version constraint for `symfony/polyfill-intl-idn` [#2678](https://github.com/guzzle/guzzle/pull/2678) 6 7 ## 6.5.4 - 2020-05-25 8 9 * Fix various intl icu issues [#2626](https://github.com/guzzle/guzzle/pull/2626) 2 10 3 11 ## 6.5.3 - 2020-04-18 … … 20 28 * Improvement: Added support to pass arbitrary options to `curl_multi_init`. [#2287](https://github.com/guzzle/guzzle/pull/2287) 21 29 * Fix: Gracefully handle passing `null` to the `header` option. [#2132](https://github.com/guzzle/guzzle/pull/2132) 22 * Fix: `RetryMiddleware` did not do exponential delay between retires due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) 30 * Fix: `RetryMiddleware` did not do exponential delay between retries due unit mismatch. [#2132](https://github.com/guzzle/guzzle/pull/2132) 31 Previously, `RetryMiddleware` would sleep for 1 millisecond, then 2 milliseconds, then 4 milliseconds. 32 **After this change, `RetryMiddleware` will sleep for 1 second, then 2 seconds, then 4 seconds.** 33 `Middleware::retry()` accepts a second callback parameter to override the default timeouts if needed. 23 34 * Fix: Prevent undefined offset when using array for ssl_key options. [#2348](https://github.com/guzzle/guzzle/pull/2348) 24 35 * Deprecated `ClientInterface::VERSION` -
quick-login/trunk/vendor/guzzlehttp/guzzle/composer.json
r2303737 r2364279 24 24 "php": ">=5.5", 25 25 "ext-json": "*", 26 "symfony/polyfill-intl-idn": "^1.1 1",26 "symfony/polyfill-intl-idn": "^1.17.0", 27 27 "guzzlehttp/promises": "^1.0", 28 28 "guzzlehttp/psr7": "^1.6.1" -
quick-login/trunk/vendor/guzzlehttp/guzzle/src/Client.php
r2303737 r2364279 3 3 4 4 use GuzzleHttp\Cookie\CookieJar; 5 use GuzzleHttp\Exception\ InvalidArgumentException;5 use GuzzleHttp\Exception\GuzzleException; 6 6 use GuzzleHttp\Promise; 7 7 use GuzzleHttp\Psr7; … … 48 48 * and array of transfer options, and must return a 49 49 * GuzzleHttp\Promise\PromiseInterface that is fulfilled with a 50 * Psr7\Http\Message\ResponseInterface on success. "handler" is a 51 * constructor only option that cannot be overridden in per/request 52 * options. If no handler is provided, a default handler will be created 50 * Psr7\Http\Message\ResponseInterface on success. 51 * If no handler is provided, a default handler will be created 53 52 * that enables all of the request options below by attaching all of the 54 53 * default middleware to the handler. … … 490 489 * Throw Exception with pre-set message. 491 490 * @return void 492 * @throws InvalidArgumentException Invalid body.491 * @throws \InvalidArgumentException Invalid body. 493 492 */ 494 493 private function invalidBody() -
quick-login/trunk/vendor/guzzlehttp/guzzle/src/ClientInterface.php
r2303737 r2364279 16 16 * @deprecated Will be removed in Guzzle 7.0.0 17 17 */ 18 const VERSION = '6.5. 3';18 const VERSION = '6.5.5'; 19 19 20 20 /** -
quick-login/trunk/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php
r2303737 r2364279 2 2 namespace GuzzleHttp\Handler; 3 3 4 use GuzzleHttp\Exception\InvalidArgumentException;5 4 use GuzzleHttp\Promise as P; 6 5 use GuzzleHttp\Promise\Promise; -
quick-login/trunk/vendor/guzzlehttp/guzzle/src/Utils.php
r2303737 r2364279 4 4 use GuzzleHttp\Exception\InvalidArgumentException; 5 5 use Psr\Http\Message\UriInterface; 6 use Symfony\Polyfill\Intl\Idn\Idn; 6 7 7 8 final class Utils … … 31 32 { 32 33 if ($uri->getHost()) { 33 $idnaVariant = defined('INTL_IDNA_VARIANT_UTS46') ? INTL_IDNA_VARIANT_UTS46 : 0; 34 $asciiHost = $idnaVariant === 0 35 ? idn_to_ascii($uri->getHost(), $options) 36 : idn_to_ascii($uri->getHost(), $options, $idnaVariant, $info); 34 $asciiHost = self::idnToAsci($uri->getHost(), $options, $info); 37 35 if ($asciiHost === false) { 38 36 $errorBitSet = isset($info['errors']) ? $info['errors'] : 0; … … 65 63 return $uri; 66 64 } 65 66 /** 67 * @param string $domain 68 * @param int $options 69 * @param array $info 70 * 71 * @return string|false 72 */ 73 private static function idnToAsci($domain, $options, &$info = []) 74 { 75 if (\preg_match('%^[ -~]+$%', $domain) === 1) { 76 return $domain; 77 } 78 79 if (\extension_loaded('intl') && defined('INTL_IDNA_VARIANT_UTS46')) { 80 return \idn_to_ascii($domain, $options, INTL_IDNA_VARIANT_UTS46, $info); 81 } 82 83 /* 84 * The Idn class is marked as @internal. Verify that class and method exists. 85 */ 86 if (method_exists(Idn::class, 'idn_to_ascii')) { 87 return Idn::idn_to_ascii($domain, $options, Idn::INTL_IDNA_VARIANT_UTS46, $info); 88 } 89 90 throw new \RuntimeException('ext-intl or symfony/polyfill-intl-idn not loaded or too old'); 91 } 67 92 } -
quick-login/trunk/vendor/league/oauth2-client/CHANGELOG.md
r2010460 r2364279 1 1 # OAuth 2.0 Client Changelog 2 3 ## 2.5.0 4 5 _Released: 2020-07-18_ 6 7 * Allow Guzzle 7.x to be used [#847](https://github.com/thephpleague/oauth2-client/pull/847) 2 8 3 9 ## 2.4.1 -
quick-login/trunk/vendor/league/oauth2-client/composer.json
r2010460 r2364279 8 8 "require": { 9 9 "php": "^5.6|^7.0", 10 "guzzlehttp/guzzle": "^6.0 ",10 "guzzlehttp/guzzle": "^6.0 || ^7.0", 11 11 "paragonie/random_compat": "^1|^2|^9.99" 12 12 }, -
quick-login/trunk/vendor/league/oauth2-facebook/composer.json
r1860398 r2364279 23 23 }, 24 24 "require-dev": { 25 "phpunit/phpunit": "~4.0", 26 "mockery/mockery": "~0.9", 27 "squizlabs/php_codesniffer": "~2.0" 25 "ext-json": "*", 26 "phpunit/phpunit": "^5.7|^6.0", 27 "mockery/mockery": "~1.3.0", 28 "squizlabs/php_codesniffer": "~3.0" 28 29 }, 29 30 "autoload": { -
quick-login/trunk/vendor/league/oauth2-facebook/src/Provider/Facebook.php
r1860398 r2364279 104 104 'id', 'name', 'first_name', 'last_name', 105 105 'email', 'hometown', 'picture.type(large){url,is_silhouette}', 106 ' cover{source}', 'gender', 'locale', 'link', 'timezone', 'age_range'106 'gender', 'link', 'age_range' 107 107 ]; 108 108 -
quick-login/trunk/vendor/league/oauth2-facebook/src/Provider/FacebookUser.php
r1860398 r2364279 126 126 * 127 127 * @return string|null 128 * @deprecated 128 129 */ 129 130 public function getCoverPhotoUrl() … … 146 147 * 147 148 * @return string|null 149 * @deprecated 148 150 */ 149 151 public function getLocale() … … 166 168 * 167 169 * @return float|null 170 * @deprecated 168 171 */ 169 172 public function getTimezone() -
quick-login/trunk/vendor/league/oauth2-google/CHANGELOG.md
r2223410 r2364279 1 1 OAuth 2.0 Google Provider Changelog 2 3 ## 3.0.3 - 2020-07-24 4 5 ### Fixed 6 7 - Remove the `approval_prompt` from default parameters, #90 2 8 3 9 ## 3.0.2 - 2019-11-16 -
quick-login/trunk/vendor/league/oauth2-google/README.md
r2223410 r2364279 25 25 * PHP 7.2 26 26 * PHP 7.3 27 * PHP 7.4 27 28 28 29 This package uses [OpenID Connect][openid-connect] to authenticate users with -
quick-login/trunk/vendor/league/oauth2-google/composer.json
r2010460 r2364279 35 35 "autoload-dev": { 36 36 "psr-4": { 37 "League\\OAuth2\\Client\\Test\\": "test s/src/"37 "League\\OAuth2\\Client\\Test\\": "test/src/" 38 38 } 39 39 }, -
quick-login/trunk/vendor/league/oauth2-google/src/Provider/Google.php
r2010460 r2364279 66 66 } 67 67 68 // The "approval_prompt" option MUST be removed to prevent conflicts with non-empty "prompt".69 if (!empty($options['prompt'])) {70 $options['approval_prompt'] = null;71 }72 73 68 // Default scopes MUST be included for OpenID Connect. 74 69 // Additional scopes MAY be added by constructor or option. … … 81 76 $options['scope'] = array_unique($scopes); 82 77 83 return parent::getAuthorizationParameters($options); 78 $options = parent::getAuthorizationParameters($options); 79 80 // The "approval_prompt" MUST be removed as it is not supported by Google, use "prompt" instead: 81 // https://developers.google.com/identity/protocols/oauth2/openid-connect#prompt 82 unset($options['approval_prompt']); 83 84 return $options; 84 85 } 85 86 -
quick-login/trunk/vendor/paragonie/random_compat/composer.json
r2010460 r2364279 23 23 }, 24 24 "require": { 25 "php": " ^7"25 "php": ">=5.2.0" 26 26 }, 27 27 "require-dev": { 28 "vimeo/psalm": "^1",29 28 "phpunit/phpunit": "4.*|5.*" 30 29 }, 31 30 "suggest": { 32 31 "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." 32 }, 33 "autoload": { 34 "files": [ 35 "lib/random.php" 36 ] 33 37 } 34 38 } -
quick-login/trunk/vendor/paragonie/random_compat/lib/random.php
r2010460 r2364279 4 4 * for using the new PHP 7 random_* API in PHP 5 projects 5 5 * 6 * @version 2. 99.997 * @released 2018-0 6-066 * @version 2.0.17 7 * @released 2018-07-04 8 8 * 9 9 * The MIT License (MIT) … … 30 30 */ 31 31 32 // NOP 32 if (!defined('PHP_VERSION_ID')) { 33 // This constant was introduced in PHP 5.2.7 34 $RandomCompatversion = array_map('intval', explode('.', PHP_VERSION)); 35 define( 36 'PHP_VERSION_ID', 37 $RandomCompatversion[0] * 10000 38 + $RandomCompatversion[1] * 100 39 + $RandomCompatversion[2] 40 ); 41 $RandomCompatversion = null; 42 } 43 44 /** 45 * PHP 7.0.0 and newer have these functions natively. 46 */ 47 if (PHP_VERSION_ID >= 70000) { 48 return; 49 } 50 51 if (!defined('RANDOM_COMPAT_READ_BUFFER')) { 52 define('RANDOM_COMPAT_READ_BUFFER', 8); 53 } 54 55 $RandomCompatDIR = dirname(__FILE__); 56 57 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'byte_safe_strings.php'; 58 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'cast_to_int.php'; 59 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'error_polyfill.php'; 60 61 if (!is_callable('random_bytes')) { 62 /** 63 * PHP 5.2.0 - 5.6.x way to implement random_bytes() 64 * 65 * We use conditional statements here to define the function in accordance 66 * to the operating environment. It's a micro-optimization. 67 * 68 * In order of preference: 69 * 1. Use libsodium if available. 70 * 2. fread() /dev/urandom if available (never on Windows) 71 * 3. mcrypt_create_iv($bytes, MCRYPT_DEV_URANDOM) 72 * 4. COM('CAPICOM.Utilities.1')->GetRandom() 73 * 74 * See RATIONALE.md for our reasoning behind this particular order 75 */ 76 if (extension_loaded('libsodium')) { 77 // See random_bytes_libsodium.php 78 if (PHP_VERSION_ID >= 50300 && is_callable('\\Sodium\\randombytes_buf')) { 79 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_libsodium.php'; 80 } elseif (method_exists('Sodium', 'randombytes_buf')) { 81 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_libsodium_legacy.php'; 82 } 83 } 84 85 /** 86 * Reading directly from /dev/urandom: 87 */ 88 if (DIRECTORY_SEPARATOR === '/') { 89 // DIRECTORY_SEPARATOR === '/' on Unix-like OSes -- this is a fast 90 // way to exclude Windows. 91 $RandomCompatUrandom = true; 92 $RandomCompat_basedir = ini_get('open_basedir'); 93 94 if (!empty($RandomCompat_basedir)) { 95 $RandomCompat_open_basedir = explode( 96 PATH_SEPARATOR, 97 strtolower($RandomCompat_basedir) 98 ); 99 $RandomCompatUrandom = (array() !== array_intersect( 100 array('/dev', '/dev/', '/dev/urandom'), 101 $RandomCompat_open_basedir 102 )); 103 $RandomCompat_open_basedir = null; 104 } 105 106 if ( 107 !is_callable('random_bytes') 108 && 109 $RandomCompatUrandom 110 && 111 @is_readable('/dev/urandom') 112 ) { 113 // Error suppression on is_readable() in case of an open_basedir 114 // or safe_mode failure. All we care about is whether or not we 115 // can read it at this point. If the PHP environment is going to 116 // panic over trying to see if the file can be read in the first 117 // place, that is not helpful to us here. 118 119 // See random_bytes_dev_urandom.php 120 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_dev_urandom.php'; 121 } 122 // Unset variables after use 123 $RandomCompat_basedir = null; 124 } else { 125 $RandomCompatUrandom = false; 126 } 127 128 /** 129 * mcrypt_create_iv() 130 * 131 * We only want to use mcypt_create_iv() if: 132 * 133 * - random_bytes() hasn't already been defined 134 * - the mcrypt extensions is loaded 135 * - One of these two conditions is true: 136 * - We're on Windows (DIRECTORY_SEPARATOR !== '/') 137 * - We're not on Windows and /dev/urandom is readabale 138 * (i.e. we're not in a chroot jail) 139 * - Special case: 140 * - If we're not on Windows, but the PHP version is between 141 * 5.6.10 and 5.6.12, we don't want to use mcrypt. It will 142 * hang indefinitely. This is bad. 143 * - If we're on Windows, we want to use PHP >= 5.3.7 or else 144 * we get insufficient entropy errors. 145 */ 146 if ( 147 !is_callable('random_bytes') 148 && 149 // Windows on PHP < 5.3.7 is broken, but non-Windows is not known to be. 150 (DIRECTORY_SEPARATOR === '/' || PHP_VERSION_ID >= 50307) 151 && 152 // Prevent this code from hanging indefinitely on non-Windows; 153 // see https://bugs.php.net/bug.php?id=69833 154 ( 155 DIRECTORY_SEPARATOR !== '/' || 156 (PHP_VERSION_ID <= 50609 || PHP_VERSION_ID >= 50613) 157 ) 158 && 159 extension_loaded('mcrypt') 160 ) { 161 // See random_bytes_mcrypt.php 162 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_mcrypt.php'; 163 } 164 $RandomCompatUrandom = null; 165 166 /** 167 * This is a Windows-specific fallback, for when the mcrypt extension 168 * isn't loaded. 169 */ 170 if ( 171 !is_callable('random_bytes') 172 && 173 extension_loaded('com_dotnet') 174 && 175 class_exists('COM') 176 ) { 177 $RandomCompat_disabled_classes = preg_split( 178 '#\s*,\s*#', 179 strtolower(ini_get('disable_classes')) 180 ); 181 182 if (!in_array('com', $RandomCompat_disabled_classes)) { 183 try { 184 $RandomCompatCOMtest = new COM('CAPICOM.Utilities.1'); 185 if (method_exists($RandomCompatCOMtest, 'GetRandom')) { 186 // See random_bytes_com_dotnet.php 187 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_bytes_com_dotnet.php'; 188 } 189 } catch (com_exception $e) { 190 // Don't try to use it. 191 } 192 } 193 $RandomCompat_disabled_classes = null; 194 $RandomCompatCOMtest = null; 195 } 196 197 /** 198 * throw new Exception 199 */ 200 if (!is_callable('random_bytes')) { 201 /** 202 * We don't have any more options, so let's throw an exception right now 203 * and hope the developer won't let it fail silently. 204 * 205 * @param mixed $length 206 * @psalm-suppress InvalidReturnType 207 * @throws Exception 208 * @return string 209 */ 210 function random_bytes($length) 211 { 212 unset($length); // Suppress "variable not used" warnings. 213 throw new Exception( 214 'There is no suitable CSPRNG installed on your system' 215 ); 216 return ''; 217 } 218 } 219 } 220 221 if (!is_callable('random_int')) { 222 require_once $RandomCompatDIR . DIRECTORY_SEPARATOR . 'random_int.php'; 223 } 224 225 $RandomCompatDIR = null; -
quick-login/trunk/vendor/symfony/polyfill-intl-idn/Idn.php
r2303737 r2364279 2 2 3 3 /* 4 * Copyright (c) 2014 TrueServer B.V.4 * This file is part of the Symfony package. 5 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and associated documentation files (the "Software"), to deal 8 * in the Software without restriction, including without limitation the rights 9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 * copies of the Software, and to permit persons to whom the Software is furnished 11 * to do so, subject to the following conditions: 6 * (c) Fabien Potencier <fabien@symfony.com> and Trevor Rowbotham <trevor.rowbotham@pm.me> 12 7 * 13 * The above copyright notice and this permission notice shall be included in all 14 * copies or substantial portions of the Software. 15 * 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 * THE SOFTWARE. 23 * 24 * Originally forked from 25 * https://github.com/true/php-punycode/blob/v2.1.1/src/Punycode.php 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 26 10 */ 27 11 28 12 namespace Symfony\Polyfill\Intl\Idn; 29 13 14 use Exception; 15 use Normalizer; 16 use Symfony\Polyfill\Intl\Idn\Resources\unidata\DisallowedRanges; 17 use Symfony\Polyfill\Intl\Idn\Resources\unidata\Regex; 18 30 19 /** 31 * Partial intl implementation in pure PHP. 32 * 33 * Implemented: 34 * - idn_to_ascii - Convert domain name to IDNA ASCII form 35 * - idn_to_utf8 - Convert domain name from IDNA ASCII to Unicode 36 * 37 * @author Renan Gonçalves <renan.saddam@gmail.com> 38 * @author Sebastian Kroczek <sk@xbug.de> 39 * @author Dmitry Lukashin <dmitry@lukashin.ru> 40 * @author Laurent Bassin <laurent@bassin.info> 20 * @see https://www.unicode.org/reports/tr46/ 41 21 * 42 22 * @internal … … 44 24 final class Idn 45 25 { 26 const ERROR_EMPTY_LABEL = 1; 27 const ERROR_LABEL_TOO_LONG = 2; 28 const ERROR_DOMAIN_NAME_TOO_LONG = 4; 29 const ERROR_LEADING_HYPHEN = 8; 30 const ERROR_TRAILING_HYPHEN = 0x10; 31 const ERROR_HYPHEN_3_4 = 0x20; 32 const ERROR_LEADING_COMBINING_MARK = 0x40; 33 const ERROR_DISALLOWED = 0x80; 34 const ERROR_PUNYCODE = 0x100; 35 const ERROR_LABEL_HAS_DOT = 0x200; 36 const ERROR_INVALID_ACE_LABEL = 0x400; 37 const ERROR_BIDI = 0x800; 38 const ERROR_CONTEXTJ = 0x1000; 39 const ERROR_CONTEXTO_PUNCTUATION = 0x2000; 40 const ERROR_CONTEXTO_DIGITS = 0x4000; 41 46 42 const INTL_IDNA_VARIANT_2003 = 0; 47 43 const INTL_IDNA_VARIANT_UTS46 = 1; 48 44 49 private static $encodeTable = array( 50 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 51 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 52 'y', 'z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 45 const MAX_DOMAIN_SIZE = 253; 46 const MAX_LABEL_SIZE = 63; 47 48 const BASE = 36; 49 const TMIN = 1; 50 const TMAX = 26; 51 const SKEW = 38; 52 const DAMP = 700; 53 const INITIAL_BIAS = 72; 54 const INITIAL_N = 128; 55 const DELIMITER = '-'; 56 const MAX_INT = 2147483647; 57 58 /** 59 * Contains the numeric value of a basic code point (for use in representing integers) in the 60 * range 0 to BASE-1, or -1 if b is does not represent a value. 61 * 62 * @var array<int, int> 63 */ 64 private static $basicToDigit = array( 65 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 66 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 67 68 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 69 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1, -1, 70 71 -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 72 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, 73 74 -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 75 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, 76 77 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 78 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 79 80 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 81 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 82 83 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 84 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85 86 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 87 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 53 88 ); 54 89 55 private static $decodeTable = array( 56 'a' => 0, 'b' => 1, 'c' => 2, 'd' => 3, 'e' => 4, 'f' => 5, 57 'g' => 6, 'h' => 7, 'i' => 8, 'j' => 9, 'k' => 10, 'l' => 11, 58 'm' => 12, 'n' => 13, 'o' => 14, 'p' => 15, 'q' => 16, 'r' => 17, 59 's' => 18, 't' => 19, 'u' => 20, 'v' => 21, 'w' => 22, 'x' => 23, 60 'y' => 24, 'z' => 25, '0' => 26, '1' => 27, '2' => 28, '3' => 29, 61 '4' => 30, '5' => 31, '6' => 32, '7' => 33, '8' => 34, '9' => 35, 62 ); 63 64 public static function idn_to_ascii($domain, $options, $variant, &$idna_info = array()) 90 /** 91 * @var array<int, int> 92 */ 93 private static $virama; 94 95 /** 96 * @var array<int, string> 97 */ 98 private static $mapped; 99 100 /** 101 * @var array<int, bool> 102 */ 103 private static $ignored; 104 105 /** 106 * @var array<int, string> 107 */ 108 private static $deviation; 109 110 /** 111 * @var array<int, bool> 112 */ 113 private static $disallowed; 114 115 /** 116 * @var array<int, string> 117 */ 118 private static $disallowed_STD3_mapped; 119 120 /** 121 * @var array<int, bool> 122 */ 123 private static $disallowed_STD3_valid; 124 125 /** 126 * @var bool 127 */ 128 private static $mappingTableLoaded = false; 129 130 /** 131 * @see https://www.unicode.org/reports/tr46/#ToASCII 132 * 133 * @param string $domainName 134 * @param int $options 135 * @param int $variant 136 * @param array $idna_info 137 * 138 * @return string|false 139 */ 140 public static function idn_to_ascii($domainName, $options = IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) 65 141 { 66 142 if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { … … 68 144 } 69 145 70 if (self::INTL_IDNA_VARIANT_UTS46 === $variant) { 71 $domain = mb_strtolower($domain, 'utf-8'); 72 } 73 74 $parts = explode('.', $domain); 75 76 foreach ($parts as $i => &$part) { 77 if ('' === $part && \count($parts) > 1 + $i) { 78 return false; 79 } 80 if (false === $part = self::encodePart($part)) { 81 return false; 82 } 83 } 84 85 $output = implode('.', $parts); 146 $options = array( 147 'CheckHyphens' => true, 148 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & \IDNA_CHECK_BIDI), 149 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & \IDNA_CHECK_CONTEXTJ), 150 'UseSTD3ASCIIRules' => 0 !== ($options & \IDNA_USE_STD3_RULES), 151 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & \IDNA_NONTRANSITIONAL_TO_ASCII), 152 'VerifyDnsLength' => true, 153 ); 154 $info = new Info(); 155 $labels = self::process((string) $domainName, $options, $info); 156 157 foreach ($labels as $i => $label) { 158 // Only convert labels to punycode that contain non-ASCII code points 159 if (1 === preg_match('/[^\x00-\x7F]/', $label)) { 160 try { 161 $label = 'xn--'.self::punycodeEncode($label); 162 } catch (Exception $e) { 163 $info->errors |= self::ERROR_PUNYCODE; 164 } 165 166 $labels[$i] = $label; 167 } 168 } 169 170 if ($options['VerifyDnsLength']) { 171 self::validateDomainAndLabelLength($labels, $info); 172 } 86 173 87 174 $idna_info = array( 88 'result' => \strlen($output) > 255 ? false : $output,89 'isTransitionalDifferent' => false,90 'errors' => 0,175 'result' => implode('.', $labels), 176 'isTransitionalDifferent' => $info->transitionalDifferent, 177 'errors' => $info->errors, 91 178 ); 92 179 93 return $idna_info['result']; 94 } 95 96 public static function idn_to_utf8($domain, $options, $variant, &$idna_info = array()) 180 return 0 === $info->errors ? $idna_info['result'] : false; 181 } 182 183 /** 184 * @see https://www.unicode.org/reports/tr46/#ToUnicode 185 * 186 * @param string $domainName 187 * @param int $options 188 * @param int $variant 189 * @param array $idna_info 190 * 191 * @return string|false 192 */ 193 public static function idn_to_utf8($domainName, $options = IDNA_DEFAULT, $variant = self::INTL_IDNA_VARIANT_UTS46, &$idna_info = array()) 97 194 { 98 195 if (\PHP_VERSION_ID >= 70200 && self::INTL_IDNA_VARIANT_2003 === $variant) { … … 100 197 } 101 198 102 $parts = explode('.', $domain); 103 104 foreach ($parts as &$part) { 105 $length = \strlen($part); 106 if ($length < 1 || 63 < $length) { 199 $info = new Info(); 200 $labels = self::process((string) $domainName, array( 201 'CheckHyphens' => true, 202 'CheckBidi' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 !== ($options & \IDNA_CHECK_BIDI), 203 'CheckJoiners' => self::INTL_IDNA_VARIANT_UTS46 === $variant && 0 !== ($options & \IDNA_CHECK_CONTEXTJ), 204 'UseSTD3ASCIIRules' => 0 !== ($options & \IDNA_USE_STD3_RULES), 205 'Transitional_Processing' => self::INTL_IDNA_VARIANT_2003 === $variant || 0 === ($options & \IDNA_NONTRANSITIONAL_TO_UNICODE), 206 ), $info); 207 $idna_info = array( 208 'result' => implode('.', $labels), 209 'isTransitionalDifferent' => $info->transitionalDifferent, 210 'errors' => $info->errors, 211 ); 212 213 return 0 === $info->errors ? $idna_info['result'] : false; 214 } 215 216 /** 217 * @param string $label 218 * 219 * @return bool 220 */ 221 private static function isValidContextJ(array $codePoints, $label) 222 { 223 if (!isset(self::$virama)) { 224 self::$virama = require __DIR__.\DIRECTORY_SEPARATOR.'Resources'.\DIRECTORY_SEPARATOR.'unidata'.\DIRECTORY_SEPARATOR.'virama.php'; 225 } 226 227 $offset = 0; 228 229 foreach ($codePoints as $i => $codePoint) { 230 if (0x200C !== $codePoint && 0x200D !== $codePoint) { 107 231 continue; 108 232 } 109 if (0 !== strpos($part, 'xn--')) { 233 234 if (!isset($codePoints[$i - 1])) { 235 return false; 236 } 237 238 // If Canonical_Combining_Class(Before(cp)) .eq. Virama Then True; 239 if (isset(self::$virama[$codePoints[$i - 1]])) { 110 240 continue; 111 241 } 112 242 113 $part = substr($part, 4); 114 $part = self::decodePart($part); 115 } 116 117 $output = implode('.', $parts); 118 119 $idna_info = array( 120 'result' => \strlen($output) > 255 ? false : $output, 121 'isTransitionalDifferent' => false, 122 'errors' => 0, 123 ); 124 125 return $idna_info['result']; 126 } 127 128 private static function encodePart($input) 129 { 130 if (\substr($input, 0, 1) === '-' || \substr($input, -1) === '-') { 243 // If RegExpMatch((Joining_Type:{L,D})(Joining_Type:T)*\u200C(Joining_Type:T)*(Joining_Type:{R,D})) Then 244 // True; 245 // Generated RegExp = ([Joining_Type:{L,D}][Joining_Type:T]*\u200C[Joining_Type:T]*)[Joining_Type:{R,D}] 246 if (0x200C === $codePoint && 1 === preg_match(Regex::ZWNJ, $label, $matches, PREG_OFFSET_CAPTURE, $offset)) { 247 $offset += \strlen($matches[1][0]); 248 249 continue; 250 } 251 131 252 return false; 132 253 } 133 254 134 $codePoints = self::listCodePoints($input); 135 136 $n = 128; 137 $bias = 72; 255 return true; 256 } 257 258 /** 259 * @see https://www.unicode.org/reports/tr46/#ProcessingStepMap 260 * 261 * @param string $input 262 * @param array<string, bool> $options 263 * 264 * @return string 265 */ 266 private static function mapCodePoints($input, array $options, Info $info) 267 { 268 $str = ''; 269 $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules']; 270 $transitional = $options['Transitional_Processing']; 271 272 foreach (self::utf8Decode($input) as $codePoint) { 273 $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules); 274 275 switch ($data['status']) { 276 case 'disallowed': 277 $info->errors |= self::ERROR_DISALLOWED; 278 279 // no break. 280 281 case 'valid': 282 $str .= mb_chr($codePoint, 'utf-8'); 283 284 break; 285 286 case 'ignored': 287 // Do nothing. 288 break; 289 290 case 'mapped': 291 $str .= $data['mapping']; 292 293 break; 294 295 case 'deviation': 296 $info->transitionalDifferent = true; 297 $str .= ($transitional ? $data['mapping'] : mb_chr($codePoint, 'utf-8')); 298 299 break; 300 } 301 } 302 303 return $str; 304 } 305 306 /** 307 * @see https://www.unicode.org/reports/tr46/#Processing 308 * 309 * @param string $domain 310 * @param array<string, bool> $options 311 * 312 * @return array<int, string> 313 */ 314 private static function process($domain, array $options, Info $info) 315 { 316 // If VerifyDnsLength is not set, we are doing ToUnicode otherwise we are doing ToASCII and 317 // we need to respect the VerifyDnsLength option. 318 $checkForEmptyLabels = !isset($options['VerifyDnsLength']) || $options['VerifyDnsLength']; 319 320 if ($checkForEmptyLabels && '' === $domain) { 321 $info->errors |= self::ERROR_EMPTY_LABEL; 322 323 return array($domain); 324 } 325 326 // Step 1. Map each code point in the domain name string 327 $domain = self::mapCodePoints($domain, $options, $info); 328 329 // Step 2. Normalize the domain name string to Unicode Normalization Form C. 330 if (!Normalizer::isNormalized($domain, Normalizer::FORM_C)) { 331 $domain = Normalizer::normalize($domain, Normalizer::FORM_C); 332 } 333 334 // Step 3. Break the string into labels at U+002E (.) FULL STOP. 335 $labels = explode('.', $domain); 336 $lastLabelIndex = \count($labels) - 1; 337 338 // Step 4. Convert and validate each label in the domain name string. 339 foreach ($labels as $i => $label) { 340 $validationOptions = $options; 341 342 if ('xn--' === substr($label, 0, 4)) { 343 try { 344 $label = self::punycodeDecode(substr($label, 4)); 345 } catch (Exception $e) { 346 $info->errors |= self::ERROR_PUNYCODE; 347 348 continue; 349 } 350 351 $validationOptions['Transitional_Processing'] = false; 352 $labels[$i] = $label; 353 } 354 355 self::validateLabel($label, $info, $validationOptions, $i > 0 && $i === $lastLabelIndex); 356 } 357 358 if ($info->bidiDomain && !$info->validBidiDomain) { 359 $info->errors |= self::ERROR_BIDI; 360 } 361 362 // Any input domain name string that does not record an error has been successfully 363 // processed according to this specification. Conversely, if an input domain_name string 364 // causes an error, then the processing of the input domain_name string fails. Determining 365 // what to do with error input is up to the caller, and not in the scope of this document. 366 return $labels; 367 } 368 369 /** 370 * @see https://tools.ietf.org/html/rfc5893#section-2 371 * 372 * @param string $label 373 */ 374 private static function validateBidiLabel($label, Info $info) 375 { 376 if (1 === preg_match(Regex::RTL_LABEL, $label)) { 377 $info->bidiDomain = true; 378 379 // Step 1. The first character must be a character with Bidi property L, R, or AL. 380 // If it has the R or AL property, it is an RTL label 381 if (1 !== preg_match(Regex::BIDI_STEP_1_RTL, $label)) { 382 $info->validBidiDomain = false; 383 384 return; 385 } 386 387 // Step 2. In an RTL label, only characters with the Bidi properties R, AL, AN, EN, ES, 388 // CS, ET, ON, BN, or NSM are allowed. 389 if (1 === preg_match(Regex::BIDI_STEP_2, $label)) { 390 $info->validBidiDomain = false; 391 392 return; 393 } 394 395 // Step 3. In an RTL label, the end of the label must be a character with Bidi property 396 // R, AL, EN, or AN, followed by zero or more characters with Bidi property NSM. 397 if (1 !== preg_match(Regex::BIDI_STEP_3, $label)) { 398 $info->validBidiDomain = false; 399 400 return; 401 } 402 403 // Step 4. In an RTL label, if an EN is present, no AN may be present, and vice versa. 404 if (1 === preg_match(Regex::BIDI_STEP_4_AN, $label) && 1 === preg_match(Regex::BIDI_STEP_4_EN, $label)) { 405 $info->validBidiDomain = false; 406 407 return; 408 } 409 410 return; 411 } 412 413 // We are a LTR label 414 // Step 1. The first character must be a character with Bidi property L, R, or AL. 415 // If it has the L property, it is an LTR label. 416 if (1 !== preg_match(Regex::BIDI_STEP_1_LTR, $label)) { 417 $info->validBidiDomain = false; 418 419 return; 420 } 421 422 // Step 5. In an LTR label, only characters with the Bidi properties L, EN, 423 // ES, CS, ET, ON, BN, or NSM are allowed. 424 if (1 === preg_match(Regex::BIDI_STEP_5, $label)) { 425 $info->validBidiDomain = false; 426 427 return; 428 } 429 430 // Step 6.In an LTR label, the end of the label must be a character with Bidi property L or 431 // EN, followed by zero or more characters with Bidi property NSM. 432 if (1 !== preg_match(Regex::BIDI_STEP_6, $label)) { 433 $info->validBidiDomain = false; 434 435 return; 436 } 437 } 438 439 /** 440 * @param array<int, string> $labels 441 */ 442 private static function validateDomainAndLabelLength(array $labels, Info $info) 443 { 444 $maxDomainSize = self::MAX_DOMAIN_SIZE; 445 $length = \count($labels); 446 447 // Number of "." delimiters. 448 $domainLength = $length - 1; 449 450 // If the last label is empty and it is not the first label, then it is the root label. 451 // Increase the max size by 1, making it 254, to account for the root label's "." 452 // delimiter. This also means we don't need to check the last label's length for being too 453 // long. 454 if ($length > 1 && '' === $labels[$length - 1]) { 455 ++$maxDomainSize; 456 --$length; 457 } 458 459 for ($i = 0; $i < $length; ++$i) { 460 $bytes = \strlen($labels[$i]); 461 $domainLength += $bytes; 462 463 if ($bytes > self::MAX_LABEL_SIZE) { 464 $info->errors |= self::ERROR_LABEL_TOO_LONG; 465 } 466 } 467 468 if ($domainLength > $maxDomainSize) { 469 $info->errors |= self::ERROR_DOMAIN_NAME_TOO_LONG; 470 } 471 } 472 473 /** 474 * @see https://www.unicode.org/reports/tr46/#Validity_Criteria 475 * 476 * @param string $label 477 * @param array<string, bool> $options 478 * @param bool $canBeEmpty 479 */ 480 private static function validateLabel($label, Info $info, array $options, $canBeEmpty) 481 { 482 if ('' === $label) { 483 if (!$canBeEmpty && (!isset($options['VerifyDnsLength']) || $options['VerifyDnsLength'])) { 484 $info->errors |= self::ERROR_EMPTY_LABEL; 485 } 486 487 return; 488 } 489 490 // Step 1. The label must be in Unicode Normalization Form C. 491 if (!Normalizer::isNormalized($label, Normalizer::FORM_C)) { 492 $info->errors |= self::ERROR_INVALID_ACE_LABEL; 493 } 494 495 $codePoints = self::utf8Decode($label); 496 497 if ($options['CheckHyphens']) { 498 // Step 2. If CheckHyphens, the label must not contain a U+002D HYPHEN-MINUS character 499 // in both the thrid and fourth positions. 500 if (isset($codePoints[2], $codePoints[3]) && 0x002D === $codePoints[2] && 0x002D === $codePoints[3]) { 501 $info->errors |= self::ERROR_HYPHEN_3_4; 502 } 503 504 // Step 3. If CheckHyphens, the label must neither begin nor end with a U+002D 505 // HYPHEN-MINUS character. 506 if ('-' === substr($label, 0, 1)) { 507 $info->errors |= self::ERROR_LEADING_HYPHEN; 508 } 509 510 if ('-' === substr($label, -1, 1)) { 511 $info->errors |= self::ERROR_TRAILING_HYPHEN; 512 } 513 } 514 515 // Step 4. The label must not contain a U+002E (.) FULL STOP. 516 if (false !== strpos($label, '.')) { 517 $info->errors |= self::ERROR_LABEL_HAS_DOT; 518 } 519 520 // Step 5. The label must not begin with a combining mark, that is: General_Category=Mark. 521 if (1 === preg_match(Regex::COMBINING_MARK, $label)) { 522 $info->errors |= self::ERROR_LEADING_COMBINING_MARK; 523 } 524 525 // Step 6. Each code point in the label must only have certain status values according to 526 // Section 5, IDNA Mapping Table: 527 $transitional = $options['Transitional_Processing']; 528 $useSTD3ASCIIRules = $options['UseSTD3ASCIIRules']; 529 530 foreach ($codePoints as $codePoint) { 531 $data = self::lookupCodePointStatus($codePoint, $useSTD3ASCIIRules); 532 $status = $data['status']; 533 534 if ('valid' === $status || (!$transitional && 'deviation' === $status)) { 535 continue; 536 } 537 538 $info->errors |= self::ERROR_DISALLOWED; 539 540 break; 541 } 542 543 // Step 7. If CheckJoiners, the label must satisify the ContextJ rules from Appendix A, in 544 // The Unicode Code Points and Internationalized Domain Names for Applications (IDNA) 545 // [IDNA2008]. 546 if ($options['CheckJoiners'] && !self::isValidContextJ($codePoints, $label)) { 547 $info->errors |= self::ERROR_CONTEXTJ; 548 } 549 550 // Step 8. If CheckBidi, and if the domain name is a Bidi domain name, then the label must 551 // satisfy all six of the numbered conditions in [IDNA2008] RFC 5893, Section 2. 552 if ($options['CheckBidi'] && (!$info->bidiDomain || $info->validBidiDomain)) { 553 self::validateBidiLabel($label, $info); 554 } 555 } 556 557 /** 558 * @see https://tools.ietf.org/html/rfc3492#section-6.2 559 * 560 * @param string $input 561 * 562 * @return string 563 */ 564 private static function punycodeDecode($input) 565 { 566 $n = self::INITIAL_N; 567 $out = 0; 568 $i = 0; 569 $bias = self::INITIAL_BIAS; 570 $lastDelimIndex = strrpos($input, self::DELIMITER); 571 $b = false === $lastDelimIndex ? 0 : $lastDelimIndex; 572 $inputLength = \strlen($input); 573 $output = array(); 574 $bytes = array_map('ord', str_split($input)); 575 576 for ($j = 0; $j < $b; ++$j) { 577 if ($bytes[$j] > 0x7F) { 578 throw new Exception('Invalid input'); 579 } 580 581 $output[$out++] = $input[$j]; 582 } 583 584 if ($b > 0) { 585 ++$b; 586 } 587 588 for ($in = $b; $in < $inputLength; ++$out) { 589 $oldi = $i; 590 $w = 1; 591 592 for ($k = self::BASE; /* no condition */; $k += self::BASE) { 593 if ($in >= $inputLength) { 594 throw new Exception('Invalid input'); 595 } 596 597 $digit = self::$basicToDigit[$bytes[$in++] & 0xFF]; 598 599 if ($digit < 0) { 600 throw new Exception('Invalid input'); 601 } 602 603 if ($digit > intdiv(self::MAX_INT - $i, $w)) { 604 throw new Exception('Integer overflow'); 605 } 606 607 $i += $digit * $w; 608 609 if ($k <= $bias) { 610 $t = self::TMIN; 611 } elseif ($k >= $bias + self::TMAX) { 612 $t = self::TMAX; 613 } else { 614 $t = $k - $bias; 615 } 616 617 if ($digit < $t) { 618 break; 619 } 620 621 $baseMinusT = self::BASE - $t; 622 623 if ($w > intdiv(self::MAX_INT, $baseMinusT)) { 624 throw new Exception('Integer overflow'); 625 } 626 627 $w *= $baseMinusT; 628 } 629 630 $outPlusOne = $out + 1; 631 $bias = self::adaptBias($i - $oldi, $outPlusOne, 0 === $oldi); 632 633 if (intdiv($i, $outPlusOne) > self::MAX_INT - $n) { 634 throw new Exception('Integer overflow'); 635 } 636 637 $n += intdiv($i, $outPlusOne); 638 $i %= $outPlusOne; 639 array_splice($output, $i++, 0, array(mb_chr($n, 'utf-8'))); 640 } 641 642 return implode('', $output); 643 } 644 645 /** 646 * @see https://tools.ietf.org/html/rfc3492#section-6.3 647 * 648 * @param string $input 649 * 650 * @return string 651 */ 652 private static function punycodeEncode($input) 653 { 654 $n = self::INITIAL_N; 138 655 $delta = 0; 139 $h = $b = \count($codePoints['basic']); 140 656 $out = 0; 657 $bias = self::INITIAL_BIAS; 658 $inputLength = 0; 141 659 $output = ''; 142 foreach ($codePoints['basic'] as $code) { 143 $output .= mb_chr($code, 'utf-8'); 144 } 145 if ($input === $output) { 146 return $output; 147 } 660 $iter = self::utf8Decode($input); 661 662 foreach ($iter as $codePoint) { 663 ++$inputLength; 664 665 if ($codePoint < 0x80) { 666 $output .= \chr($codePoint); 667 ++$out; 668 } 669 } 670 671 $h = $out; 672 $b = $out; 673 148 674 if ($b > 0) { 149 $output .= '-'; 150 } 151 152 $codePoints['nonBasic'] = array_unique($codePoints['nonBasic']); 153 sort($codePoints['nonBasic']); 154 155 $i = 0; 156 $length = mb_strlen($input, 'utf-8'); 157 while ($h < $length) { 158 $m = $codePoints['nonBasic'][$i++]; 675 $output .= self::DELIMITER; 676 ++$out; 677 } 678 679 while ($h < $inputLength) { 680 $m = self::MAX_INT; 681 682 foreach ($iter as $codePoint) { 683 if ($codePoint >= $n && $codePoint < $m) { 684 $m = $codePoint; 685 } 686 } 687 688 if ($m - $n > intdiv(self::MAX_INT - $delta, $h + 1)) { 689 throw new Exception('Integer overflow'); 690 } 691 159 692 $delta += ($m - $n) * ($h + 1); 160 693 $n = $m; 161 694 162 foreach ($codePoints['all'] as $c) { 163 if ($c < $n || $c < 128) { 164 ++$delta; 165 } 166 if ($c === $n) { 695 foreach ($iter as $codePoint) { 696 if ($codePoint < $n && 0 === ++$delta) { 697 throw new Exception('Integer overflow'); 698 } elseif ($codePoint === $n) { 167 699 $q = $delta; 168 for ($k = 36;; $k += 36) { 169 $t = self::calculateThreshold($k, $bias); 700 701 for ($k = self::BASE; /* no condition */; $k += self::BASE) { 702 if ($k <= $bias) { 703 $t = self::TMIN; 704 } elseif ($k >= $bias + self::TMAX) { 705 $t = self::TMAX; 706 } else { 707 $t = $k - $bias; 708 } 709 170 710 if ($q < $t) { 171 711 break; 172 712 } 173 713 174 $code = $t + (($q - $t) % (36 - $t)); 175 $output .= self::$encodeTable[$code]; 176 177 $q = ($q - $t) / (36 - $t); 714 $qMinusT = $q - $t; 715 $baseMinusT = self::BASE - $t; 716 $output .= self::encodeDigit($t + ($qMinusT) % ($baseMinusT), false); 717 ++$out; 718 $q = intdiv($qMinusT, $baseMinusT); 178 719 } 179 720 180 $output .= self::$encodeTable[$q]; 181 $bias = self::adapt($delta, $h + 1, ($h === $b)); 721 $output .= self::encodeDigit($q, false); 722 ++$out; 723 $bias = self::adaptBias($delta, $h + 1, $h === $b); 182 724 $delta = 0; 183 725 ++$h; … … 189 731 } 190 732 191 $output = 'xn--'.$output; 192 193 return \strlen($output) < 1 || 63 < \strlen($output) ? false : strtolower($output); 194 } 195 196 private static function listCodePoints($input) 197 { 198 $codePoints = array( 199 'all' => array(), 200 'basic' => array(), 201 'nonBasic' => array(), 202 ); 203 204 $length = mb_strlen($input, 'utf-8'); 733 return $output; 734 } 735 736 /** 737 * @see https://tools.ietf.org/html/rfc3492#section-6.1 738 * 739 * @param int $delta 740 * @param int $numPoints 741 * @param bool $firstTime 742 * 743 * @return int 744 */ 745 private static function adaptBias($delta, $numPoints, $firstTime) 746 { 747 // xxx >> 1 is a faster way of doing intdiv(xxx, 2) 748 $delta = $firstTime ? intdiv($delta, self::DAMP) : $delta >> 1; 749 $delta += intdiv($delta, $numPoints); 750 $k = 0; 751 752 while ($delta > ((self::BASE - self::TMIN) * self::TMAX) >> 1) { 753 $delta = intdiv($delta, self::BASE - self::TMIN); 754 $k += self::BASE; 755 } 756 757 return $k + intdiv((self::BASE - self::TMIN + 1) * $delta, $delta + self::SKEW); 758 } 759 760 /** 761 * @param int $d 762 * @param bool $flag 763 * 764 * @return string 765 */ 766 private static function encodeDigit($d, $flag) 767 { 768 return \chr($d + 22 + 75 * ($d < 26 ? 1 : 0) - (($flag ? 1 : 0) << 5)); 769 } 770 771 /** 772 * Takes a UTF-8 encoded string and converts it into a series of integer code points. Any 773 * invalid byte sequences will be replaced by a U+FFFD replacement code point. 774 * 775 * @see https://encoding.spec.whatwg.org/#utf-8-decoder 776 * 777 * @param string $input 778 * 779 * @return array<int, int> 780 */ 781 private static function utf8Decode($input) 782 { 783 $bytesSeen = 0; 784 $bytesNeeded = 0; 785 $lowerBoundary = 0x80; 786 $upperBoundary = 0xBF; 787 $codePoint = 0; 788 $codePoints = array(); 789 $length = \strlen($input); 790 205 791 for ($i = 0; $i < $length; ++$i) { 206 $char = mb_substr($input, $i, 1, 'utf-8'); 207 $code = mb_ord($char, 'utf-8'); 208 if ($code < 128) { 209 $codePoints['all'][] = $codePoints['basic'][] = $code; 210 } else { 211 $codePoints['all'][] = $codePoints['nonBasic'][] = $code; 212 } 792 $byte = \ord($input[$i]); 793 794 if (0 === $bytesNeeded) { 795 if ($byte >= 0x00 && $byte <= 0x7F) { 796 $codePoints[] = $byte; 797 798 continue; 799 } 800 801 if ($byte >= 0xC2 && $byte <= 0xDF) { 802 $bytesNeeded = 1; 803 $codePoint = $byte & 0x1F; 804 } elseif ($byte >= 0xE0 && $byte <= 0xEF) { 805 if (0xE0 === $byte) { 806 $lowerBoundary = 0xA0; 807 } elseif (0xED === $byte) { 808 $upperBoundary = 0x9F; 809 } 810 811 $bytesNeeded = 2; 812 $codePoint = $byte & 0xF; 813 } elseif ($byte >= 0xF0 && $byte <= 0xF4) { 814 if (0xF0 === $byte) { 815 $lowerBoundary = 0x90; 816 } elseif (0xF4 === $byte) { 817 $upperBoundary = 0x8F; 818 } 819 820 $bytesNeeded = 3; 821 $codePoint = $byte & 0x7; 822 } else { 823 $codePoints[] = 0xFFFD; 824 } 825 826 continue; 827 } 828 829 if ($byte < $lowerBoundary || $byte > $upperBoundary) { 830 $codePoint = 0; 831 $bytesNeeded = 0; 832 $bytesSeen = 0; 833 $lowerBoundary = 0x80; 834 $upperBoundary = 0xBF; 835 --$i; 836 $codePoints[] = 0xFFFD; 837 838 continue; 839 } 840 841 $lowerBoundary = 0x80; 842 $upperBoundary = 0xBF; 843 $codePoint = ($codePoint << 6) | ($byte & 0x3F); 844 845 if (++$bytesSeen !== $bytesNeeded) { 846 continue; 847 } 848 849 $codePoints[] = $codePoint; 850 $codePoint = 0; 851 $bytesNeeded = 0; 852 $bytesSeen = 0; 853 } 854 855 // String unexpectedly ended, so append a U+FFFD code point. 856 if (0 !== $bytesNeeded) { 857 $codePoints[] = 0xFFFD; 213 858 } 214 859 … … 216 861 } 217 862 218 private static function calculateThreshold($k, $bias) 219 { 220 if ($k <= $bias + 1) { 221 return 1; 222 } 223 if ($k >= $bias + 26) { 224 return 26; 225 } 226 227 return $k - $bias; 228 } 229 230 private static function adapt($delta, $numPoints, $firstTime) 231 { 232 $delta = (int) ($firstTime ? $delta / 700 : $delta / 2); 233 $delta += (int) ($delta / $numPoints); 234 235 $k = 0; 236 while ($delta > 35 * 13) { 237 $delta = (int) ($delta / 35); 238 $k = $k + 36; 239 } 240 241 return $k + (int) (36 * $delta / ($delta + 38)); 242 } 243 244 private static function decodePart($input) 245 { 246 $n = 128; 247 $i = 0; 248 $bias = 72; 249 $output = ''; 250 251 $pos = strrpos($input, '-'); 252 if (false !== $pos) { 253 $output = substr($input, 0, $pos++); 254 } else { 255 $pos = 0; 256 } 257 258 $outputLength = \strlen($output); 259 $inputLength = \strlen($input); 260 261 while ($pos < $inputLength) { 262 $oldi = $i; 263 $w = 1; 264 265 for ($k = 36;; $k += 36) { 266 $digit = self::$decodeTable[$input[$pos++]]; 267 $i += $digit * $w; 268 $t = self::calculateThreshold($k, $bias); 269 270 if ($digit < $t) { 271 break; 272 } 273 274 $w *= 36 - $t; 275 } 276 277 $bias = self::adapt($i - $oldi, ++$outputLength, 0 === $oldi); 278 $n = $n + (int) ($i / $outputLength); 279 $i = $i % $outputLength; 280 $output = mb_substr($output, 0, $i, 'utf-8').mb_chr($n, 'utf-8').mb_substr($output, $i, $outputLength - 1, 'utf-8'); 281 282 ++$i; 283 } 284 285 return $output; 863 /** 864 * @param int $codePoint 865 * @param bool $useSTD3ASCIIRules 866 * 867 * @return array{status: string, mapping?: string} 868 */ 869 private static function lookupCodePointStatus($codePoint, $useSTD3ASCIIRules) 870 { 871 if (!self::$mappingTableLoaded) { 872 self::$mappingTableLoaded = true; 873 self::$mapped = require __DIR__.'/Resources/unidata/mapped.php'; 874 self::$ignored = require __DIR__.'/Resources/unidata/ignored.php'; 875 self::$deviation = require __DIR__.'/Resources/unidata/deviation.php'; 876 self::$disallowed = require __DIR__.'/Resources/unidata/disallowed.php'; 877 self::$disallowed_STD3_mapped = require __DIR__.'/Resources/unidata/disallowed_STD3_mapped.php'; 878 self::$disallowed_STD3_valid = require __DIR__.'/Resources/unidata/disallowed_STD3_valid.php'; 879 } 880 881 if (isset(self::$mapped[$codePoint])) { 882 return array('status' => 'mapped', 'mapping' => self::$mapped[$codePoint]); 883 } 884 885 if (isset(self::$ignored[$codePoint])) { 886 return array('status' => 'ignored'); 887 } 888 889 if (isset(self::$deviation[$codePoint])) { 890 return array('status' => 'deviation', 'mapping' => self::$deviation[$codePoint]); 891 } 892 893 if (isset(self::$disallowed[$codePoint]) || DisallowedRanges::inRange($codePoint)) { 894 return array('status' => 'disallowed'); 895 } 896 897 $isDisallowedMapped = isset(self::$disallowed_STD3_mapped[$codePoint]); 898 899 if ($isDisallowedMapped || isset(self::$disallowed_STD3_valid[$codePoint])) { 900 $status = 'disallowed'; 901 902 if (!$useSTD3ASCIIRules) { 903 $status = $isDisallowedMapped ? 'mapped' : 'valid'; 904 } 905 906 if ($isDisallowedMapped) { 907 return array('status' => $status, 'mapping' => self::$disallowed_STD3_mapped[$codePoint]); 908 } 909 910 return array('status' => $status); 911 } 912 913 return array('status' => 'valid'); 286 914 } 287 915 } -
quick-login/trunk/vendor/symfony/polyfill-intl-idn/LICENSE
r2303737 r2364279 1 Copyright (c) 2018-2019 Fabien Potencier 1 Copyright (c) 2018-2019 Fabien Potencier and Trevor Rowbotham <trevor.rowbotham@pm.me> 2 2 3 3 Permission is hereby granted, free of charge, to any person obtaining a copy -
quick-login/trunk/vendor/symfony/polyfill-intl-idn/composer.json
r2303737 r2364279 12 12 }, 13 13 { 14 "name": "Trevor Rowbotham", 15 "email": "trevor.rowbotham@pm.me" 16 }, 17 { 14 18 "name": "Symfony Community", 15 19 "homepage": "https://symfony.com/contributors" … … 18 22 "require": { 19 23 "php": ">=5.3.3", 20 "symfony/polyfill-mbstring": "^1.3", 24 "symfony/polyfill-intl-normalizer": "^1.10", 25 "symfony/polyfill-php70": "^1.10", 21 26 "symfony/polyfill-php72": "^1.10" 22 27 }, … … 31 36 "extra": { 32 37 "branch-alias": { 33 "dev-master": "1.17-dev" 38 "dev-master": "1.18-dev" 39 }, 40 "thanks": { 41 "name": "symfony/polyfill", 42 "url": "https://github.com/symfony/polyfill" 34 43 } 35 44 } -
quick-login/trunk/vendor/symfony/polyfill-php72/composer.json
r2303737 r2364279 26 26 "extra": { 27 27 "branch-alias": { 28 "dev-master": "1.17-dev" 28 "dev-master": "1.18-dev" 29 }, 30 "thanks": { 31 "name": "symfony/polyfill", 32 "url": "https://github.com/symfony/polyfill" 29 33 } 30 34 }
Note: See TracChangeset
for help on using the changeset viewer.