fowr
1 year ago
committed by
-
44 changed files with 696 additions and 608 deletions
@ -4,7 +4,7 @@ |
|||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", |
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", |
||||
"This file is @generated automatically" |
"This file is @generated automatically" |
||||
], |
], |
||||
"content-hash": "1e3723687369c82eea457d2dded76b74", |
"content-hash": "72e79f203581eea6e6b0455147b25878", |
||||
"packages": [ |
"packages": [ |
||||
{ |
{ |
||||
"name": "dapphp/securimage", |
"name": "dapphp/securimage", |
||||
@ -31,12 +31,12 @@ |
|||||
}, |
}, |
||||
"type": "library", |
"type": "library", |
||||
"autoload": { |
"autoload": { |
||||
"classmap": [ |
|
||||
"securimage.php" |
|
||||
], |
|
||||
"psr-4": { |
"psr-4": { |
||||
"Securimage\\": "./" |
"Securimage\\": "./" |
||||
} |
}, |
||||
|
"classmap": [ |
||||
|
"securimage.php" |
||||
|
] |
||||
}, |
}, |
||||
"notification-url": "https://packagist.org/downloads/", |
"notification-url": "https://packagist.org/downloads/", |
||||
"license": [ |
"license": [ |
||||
@ -114,37 +114,43 @@ |
|||||
"issues": "https://github.com/maxmind/geoip-api-php/issues", |
"issues": "https://github.com/maxmind/geoip-api-php/issues", |
||||
"source": "https://github.com/maxmind/geoip-api-php/tree/master" |
"source": "https://github.com/maxmind/geoip-api-php/tree/master" |
||||
}, |
}, |
||||
|
"abandoned": "geoip2/geoip2", |
||||
"time": "2016-05-16T19:06:50+00:00" |
"time": "2016-05-16T19:06:50+00:00" |
||||
}, |
}, |
||||
{ |
{ |
||||
"name": "gettext/gettext", |
"name": "gettext/gettext", |
||||
"version": "v1.1.5", |
"version": "v5.7.0", |
||||
"source": { |
"source": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "https://github.com/php-gettext/Gettext.git", |
"url": "https://github.com/php-gettext/Gettext.git", |
||||
"reference": "1bdf755a1b49f0614d6fc29f446df567eb62cd5c" |
"reference": "8657e580747bb3baacccdcebe69cac094661e404" |
||||
}, |
}, |
||||
"dist": { |
"dist": { |
||||
"type": "zip", |
"type": "zip", |
||||
"url": "https://api.github.com/repos/php-gettext/Gettext/zipball/1bdf755a1b49f0614d6fc29f446df567eb62cd5c", |
"url": "https://api.github.com/repos/php-gettext/Gettext/zipball/8657e580747bb3baacccdcebe69cac094661e404", |
||||
"reference": "1bdf755a1b49f0614d6fc29f446df567eb62cd5c", |
"reference": "8657e580747bb3baacccdcebe69cac094661e404", |
||||
"shasum": "" |
"shasum": "" |
||||
}, |
}, |
||||
"require": { |
"require": { |
||||
"php": ">=5.3.0" |
"gettext/languages": "^2.3", |
||||
|
"php": "^7.2|^8.0" |
||||
|
}, |
||||
|
"require-dev": { |
||||
|
"brick/varexporter": "^0.3.5", |
||||
|
"friendsofphp/php-cs-fixer": "^3.2", |
||||
|
"oscarotero/php-cs-fixer-config": "^2.0", |
||||
|
"phpunit/phpunit": "^8.0|^9.0", |
||||
|
"squizlabs/php_codesniffer": "^3.0" |
||||
}, |
}, |
||||
"type": "library", |
"type": "library", |
||||
"autoload": { |
"autoload": { |
||||
"psr-0": { |
"psr-4": { |
||||
"Gettext": "" |
"Gettext\\": "src" |
||||
}, |
} |
||||
"files": [ |
|
||||
"Gettext/translator_functions.php" |
|
||||
] |
|
||||
}, |
}, |
||||
"notification-url": "https://packagist.org/downloads/", |
"notification-url": "https://packagist.org/downloads/", |
||||
"license": [ |
"license": [ |
||||
"AGPL-3.0" |
"MIT" |
||||
], |
], |
||||
"authors": [ |
"authors": [ |
||||
{ |
{ |
||||
@ -154,33 +160,123 @@ |
|||||
"role": "Developer" |
"role": "Developer" |
||||
} |
} |
||||
], |
], |
||||
"description": "PHP - JS gettext conversor", |
"description": "PHP gettext manager", |
||||
"homepage": "https://github.com/oscarotero/Gettext", |
"homepage": "https://github.com/php-gettext/Gettext", |
||||
"keywords": [ |
"keywords": [ |
||||
"JS", |
"JS", |
||||
"gettext", |
"gettext", |
||||
"i18n", |
"i18n", |
||||
|
"mo", |
||||
|
"po", |
||||
"translation" |
"translation" |
||||
], |
], |
||||
"support": { |
"support": { |
||||
"email": "[email protected]", |
"email": "[email protected]", |
||||
"issues": "https://github.com/oscarotero/Gettext/issues", |
"issues": "https://github.com/php-gettext/Gettext/issues", |
||||
"source": "https://github.com/php-gettext/Gettext/tree/v1.1.5" |
"source": "https://github.com/php-gettext/Gettext/tree/v5.7.0" |
||||
}, |
}, |
||||
"time": "2014-10-22T15:53:45+00:00" |
"funding": [ |
||||
|
{ |
||||
|
"url": "https://paypal.me/oscarotero", |
||||
|
"type": "custom" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://github.com/oscarotero", |
||||
|
"type": "github" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://www.patreon.com/misteroom", |
||||
|
"type": "patreon" |
||||
|
} |
||||
|
], |
||||
|
"time": "2022-07-27T19:54:55+00:00" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "gettext/languages", |
||||
|
"version": "2.10.0", |
||||
|
"source": { |
||||
|
"type": "git", |
||||
|
"url": "https://github.com/php-gettext/Languages.git", |
||||
|
"reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab" |
||||
|
}, |
||||
|
"dist": { |
||||
|
"type": "zip", |
||||
|
"url": "https://api.github.com/repos/php-gettext/Languages/zipball/4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", |
||||
|
"reference": "4d61d67fe83a2ad85959fe6133d6d9ba7dddd1ab", |
||||
|
"shasum": "" |
||||
|
}, |
||||
|
"require": { |
||||
|
"php": ">=5.3" |
||||
|
}, |
||||
|
"require-dev": { |
||||
|
"phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4" |
||||
|
}, |
||||
|
"bin": [ |
||||
|
"bin/export-plural-rules" |
||||
|
], |
||||
|
"type": "library", |
||||
|
"autoload": { |
||||
|
"psr-4": { |
||||
|
"Gettext\\Languages\\": "src/" |
||||
|
} |
||||
|
}, |
||||
|
"notification-url": "https://packagist.org/downloads/", |
||||
|
"license": [ |
||||
|
"MIT" |
||||
|
], |
||||
|
"authors": [ |
||||
|
{ |
||||
|
"name": "Michele Locati", |
||||
|
"email": "[email protected]", |
||||
|
"role": "Developer" |
||||
|
} |
||||
|
], |
||||
|
"description": "gettext languages with plural rules", |
||||
|
"homepage": "https://github.com/php-gettext/Languages", |
||||
|
"keywords": [ |
||||
|
"cldr", |
||||
|
"i18n", |
||||
|
"internationalization", |
||||
|
"l10n", |
||||
|
"language", |
||||
|
"languages", |
||||
|
"localization", |
||||
|
"php", |
||||
|
"plural", |
||||
|
"plural rules", |
||||
|
"plurals", |
||||
|
"translate", |
||||
|
"translations", |
||||
|
"unicode" |
||||
|
], |
||||
|
"support": { |
||||
|
"issues": "https://github.com/php-gettext/Languages/issues", |
||||
|
"source": "https://github.com/php-gettext/Languages/tree/2.10.0" |
||||
|
}, |
||||
|
"funding": [ |
||||
|
{ |
||||
|
"url": "https://paypal.me/mlocati", |
||||
|
"type": "custom" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://github.com/mlocati", |
||||
|
"type": "github" |
||||
|
} |
||||
|
], |
||||
|
"time": "2022-10-18T15:00:10+00:00" |
||||
}, |
}, |
||||
{ |
{ |
||||
"name": "lifo/ip", |
"name": "lifo/ip", |
||||
"version": "v1.1", |
"version": "v1.1.1", |
||||
"source": { |
"source": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "https://github.com/lifo101/ip.git", |
"url": "https://github.com/lifo101/ip.git", |
||||
"reference": "b6a36dab288d7aea155698808bfc6649799fe413" |
"reference": "4c4cf5b554884be93f1d0422eaec8d6426993229" |
||||
}, |
}, |
||||
"dist": { |
"dist": { |
||||
"type": "zip", |
"type": "zip", |
||||
"url": "https://api.github.com/repos/lifo101/ip/zipball/b6a36dab288d7aea155698808bfc6649799fe413", |
"url": "https://api.github.com/repos/lifo101/ip/zipball/4c4cf5b554884be93f1d0422eaec8d6426993229", |
||||
"reference": "b6a36dab288d7aea155698808bfc6649799fe413", |
"reference": "4c4cf5b554884be93f1d0422eaec8d6426993229", |
||||
"shasum": "" |
"shasum": "" |
||||
}, |
}, |
||||
"require": { |
"require": { |
||||
@ -212,9 +308,9 @@ |
|||||
], |
], |
||||
"support": { |
"support": { |
||||
"issues": "https://github.com/lifo101/ip/issues", |
"issues": "https://github.com/lifo101/ip/issues", |
||||
"source": "https://github.com/lifo101/ip/tree/master" |
"source": "https://github.com/lifo101/ip/tree/v1.1.1" |
||||
}, |
}, |
||||
"time": "2020-04-02T11:09:10+00:00" |
"time": "2022-07-12T15:45:54+00:00" |
||||
}, |
}, |
||||
{ |
{ |
||||
"name": "mrclay/minify", |
"name": "mrclay/minify", |
||||
@ -267,30 +363,89 @@ |
|||||
}, |
}, |
||||
"time": "2017-11-03T21:04:01+00:00" |
"time": "2017-11-03T21:04:01+00:00" |
||||
}, |
}, |
||||
|
{ |
||||
|
"name": "phpmyadmin/twig-i18n-extension", |
||||
|
"version": "v4.0.1", |
||||
|
"source": { |
||||
|
"type": "git", |
||||
|
"url": "https://github.com/phpmyadmin/twig-i18n-extension.git", |
||||
|
"reference": "c0d0dd171cd1c7733bf152fd44b61055843df052" |
||||
|
}, |
||||
|
"dist": { |
||||
|
"type": "zip", |
||||
|
"url": "https://api.github.com/repos/phpmyadmin/twig-i18n-extension/zipball/c0d0dd171cd1c7733bf152fd44b61055843df052", |
||||
|
"reference": "c0d0dd171cd1c7733bf152fd44b61055843df052", |
||||
|
"shasum": "" |
||||
|
}, |
||||
|
"require": { |
||||
|
"php": "^7.1 || ^8.0", |
||||
|
"twig/twig": "^1.42.3|^2.0|^3.0" |
||||
|
}, |
||||
|
"require-dev": { |
||||
|
"phpmyadmin/coding-standard": "^3.0.0", |
||||
|
"phpmyadmin/motranslator": "^5.2", |
||||
|
"phpstan/phpstan": "^0.12.66", |
||||
|
"phpunit/phpunit": "^7 || ^8 || ^9" |
||||
|
}, |
||||
|
"type": "library", |
||||
|
"autoload": { |
||||
|
"psr-4": { |
||||
|
"PhpMyAdmin\\Twig\\Extensions\\": "src/" |
||||
|
} |
||||
|
}, |
||||
|
"notification-url": "https://packagist.org/downloads/", |
||||
|
"license": [ |
||||
|
"MIT" |
||||
|
], |
||||
|
"authors": [ |
||||
|
{ |
||||
|
"name": "Fabien Potencier", |
||||
|
"email": "[email protected]" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "The phpMyAdmin Team", |
||||
|
"email": "[email protected]", |
||||
|
"homepage": "https://www.phpmyadmin.net/team/" |
||||
|
} |
||||
|
], |
||||
|
"description": "Internationalization support for Twig via the gettext library", |
||||
|
"keywords": [ |
||||
|
"gettext", |
||||
|
"i18n" |
||||
|
], |
||||
|
"support": { |
||||
|
"issues": "https://github.com/phpmyadmin/twig-i18n-extension/issues", |
||||
|
"source": "https://github.com/phpmyadmin/twig-i18n-extension" |
||||
|
}, |
||||
|
"time": "2021-06-10T15:53:38+00:00" |
||||
|
}, |
||||
{ |
{ |
||||
"name": "symfony/polyfill-ctype", |
"name": "symfony/polyfill-ctype", |
||||
"version": "v1.23.0", |
"version": "v1.27.0", |
||||
"source": { |
"source": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "https://github.com/symfony/polyfill-ctype.git", |
"url": "https://github.com/symfony/polyfill-ctype.git", |
||||
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce" |
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a" |
||||
}, |
}, |
||||
"dist": { |
"dist": { |
||||
"type": "zip", |
"type": "zip", |
||||
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/46cd95797e9df938fdd2b03693b5fca5e64b01ce", |
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/5bbc823adecdae860bb64756d639ecfec17b050a", |
||||
"reference": "46cd95797e9df938fdd2b03693b5fca5e64b01ce", |
"reference": "5bbc823adecdae860bb64756d639ecfec17b050a", |
||||
"shasum": "" |
"shasum": "" |
||||
}, |
}, |
||||
"require": { |
"require": { |
||||
"php": ">=7.1" |
"php": ">=7.1" |
||||
}, |
}, |
||||
|
"provide": { |
||||
|
"ext-ctype": "*" |
||||
|
}, |
||||
"suggest": { |
"suggest": { |
||||
"ext-ctype": "For best performance" |
"ext-ctype": "For best performance" |
||||
}, |
}, |
||||
"type": "library", |
"type": "library", |
||||
"extra": { |
"extra": { |
||||
"branch-alias": { |
"branch-alias": { |
||||
"dev-main": "1.23-dev" |
"dev-main": "1.27-dev" |
||||
}, |
}, |
||||
"thanks": { |
"thanks": { |
||||
"name": "symfony/polyfill", |
"name": "symfony/polyfill", |
||||
@ -298,12 +453,12 @@ |
|||||
} |
} |
||||
}, |
}, |
||||
"autoload": { |
"autoload": { |
||||
"psr-4": { |
|
||||
"Symfony\\Polyfill\\Ctype\\": "" |
|
||||
}, |
|
||||
"files": [ |
"files": [ |
||||
"bootstrap.php" |
"bootstrap.php" |
||||
] |
], |
||||
|
"psr-4": { |
||||
|
"Symfony\\Polyfill\\Ctype\\": "" |
||||
|
} |
||||
}, |
}, |
||||
"notification-url": "https://packagist.org/downloads/", |
"notification-url": "https://packagist.org/downloads/", |
||||
"license": [ |
"license": [ |
||||
@ -328,7 +483,166 @@ |
|||||
"portable" |
"portable" |
||||
], |
], |
||||
"support": { |
"support": { |
||||
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.23.0" |
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.27.0" |
||||
|
}, |
||||
|
"funding": [ |
||||
|
{ |
||||
|
"url": "https://symfony.com/sponsor", |
||||
|
"type": "custom" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://github.com/fabpot", |
||||
|
"type": "github" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", |
||||
|
"type": "tidelift" |
||||
|
} |
||||
|
], |
||||
|
"time": "2022-11-03T14:55:06+00:00" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "symfony/polyfill-mbstring", |
||||
|
"version": "v1.27.0", |
||||
|
"source": { |
||||
|
"type": "git", |
||||
|
"url": "https://github.com/symfony/polyfill-mbstring.git", |
||||
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" |
||||
|
}, |
||||
|
"dist": { |
||||
|
"type": "zip", |
||||
|
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", |
||||
|
"reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", |
||||
|
"shasum": "" |
||||
|
}, |
||||
|
"require": { |
||||
|
"php": ">=7.1" |
||||
|
}, |
||||
|
"provide": { |
||||
|
"ext-mbstring": "*" |
||||
|
}, |
||||
|
"suggest": { |
||||
|
"ext-mbstring": "For best performance" |
||||
|
}, |
||||
|
"type": "library", |
||||
|
"extra": { |
||||
|
"branch-alias": { |
||||
|
"dev-main": "1.27-dev" |
||||
|
}, |
||||
|
"thanks": { |
||||
|
"name": "symfony/polyfill", |
||||
|
"url": "https://github.com/symfony/polyfill" |
||||
|
} |
||||
|
}, |
||||
|
"autoload": { |
||||
|
"files": [ |
||||
|
"bootstrap.php" |
||||
|
], |
||||
|
"psr-4": { |
||||
|
"Symfony\\Polyfill\\Mbstring\\": "" |
||||
|
} |
||||
|
}, |
||||
|
"notification-url": "https://packagist.org/downloads/", |
||||
|
"license": [ |
||||
|
"MIT" |
||||
|
], |
||||
|
"authors": [ |
||||
|
{ |
||||
|
"name": "Nicolas Grekas", |
||||
|
"email": "[email protected]" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Symfony Community", |
||||
|
"homepage": "https://symfony.com/contributors" |
||||
|
} |
||||
|
], |
||||
|
"description": "Symfony polyfill for the Mbstring extension", |
||||
|
"homepage": "https://symfony.com", |
||||
|
"keywords": [ |
||||
|
"compatibility", |
||||
|
"mbstring", |
||||
|
"polyfill", |
||||
|
"portable", |
||||
|
"shim" |
||||
|
], |
||||
|
"support": { |
||||
|
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" |
||||
|
}, |
||||
|
"funding": [ |
||||
|
{ |
||||
|
"url": "https://symfony.com/sponsor", |
||||
|
"type": "custom" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://github.com/fabpot", |
||||
|
"type": "github" |
||||
|
}, |
||||
|
{ |
||||
|
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony", |
||||
|
"type": "tidelift" |
||||
|
} |
||||
|
], |
||||
|
"time": "2022-11-03T14:55:06+00:00" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "symfony/polyfill-php72", |
||||
|
"version": "v1.27.0", |
||||
|
"source": { |
||||
|
"type": "git", |
||||
|
"url": "https://github.com/symfony/polyfill-php72.git", |
||||
|
"reference": "869329b1e9894268a8a61dabb69153029b7a8c97" |
||||
|
}, |
||||
|
"dist": { |
||||
|
"type": "zip", |
||||
|
"url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97", |
||||
|
"reference": "869329b1e9894268a8a61dabb69153029b7a8c97", |
||||
|
"shasum": "" |
||||
|
}, |
||||
|
"require": { |
||||
|
"php": ">=7.1" |
||||
|
}, |
||||
|
"type": "library", |
||||
|
"extra": { |
||||
|
"branch-alias": { |
||||
|
"dev-main": "1.27-dev" |
||||
|
}, |
||||
|
"thanks": { |
||||
|
"name": "symfony/polyfill", |
||||
|
"url": "https://github.com/symfony/polyfill" |
||||
|
} |
||||
|
}, |
||||
|
"autoload": { |
||||
|
"files": [ |
||||
|
"bootstrap.php" |
||||
|
], |
||||
|
"psr-4": { |
||||
|
"Symfony\\Polyfill\\Php72\\": "" |
||||
|
} |
||||
|
}, |
||||
|
"notification-url": "https://packagist.org/downloads/", |
||||
|
"license": [ |
||||
|
"MIT" |
||||
|
], |
||||
|
"authors": [ |
||||
|
{ |
||||
|
"name": "Nicolas Grekas", |
||||
|
"email": "[email protected]" |
||||
|
}, |
||||
|
{ |
||||
|
"name": "Symfony Community", |
||||
|
"homepage": "https://symfony.com/contributors" |
||||
|
} |
||||
|
], |
||||
|
"description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", |
||||
|
"homepage": "https://symfony.com", |
||||
|
"keywords": [ |
||||
|
"compatibility", |
||||
|
"polyfill", |
||||
|
"portable", |
||||
|
"shim" |
||||
|
], |
||||
|
"support": { |
||||
|
"source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0" |
||||
}, |
}, |
||||
"funding": [ |
"funding": [ |
||||
{ |
{ |
||||
@ -344,34 +658,36 @@ |
|||||
"type": "tidelift" |
"type": "tidelift" |
||||
} |
} |
||||
], |
], |
||||
"time": "2021-02-19T12:13:01+00:00" |
"time": "2022-11-03T14:55:06+00:00" |
||||
}, |
}, |
||||
{ |
{ |
||||
"name": "twig/twig", |
"name": "twig/twig", |
||||
"version": "v2.14.11", |
"version": "v2.15.4", |
||||
"source": { |
"source": { |
||||
"type": "git", |
"type": "git", |
||||
"url": "https://github.com/twigphp/Twig.git", |
"url": "https://github.com/twigphp/Twig.git", |
||||
"reference": "dd4353357c5a116322e92a00d16043a31881a81e" |
"reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3" |
||||
}, |
}, |
||||
"dist": { |
"dist": { |
||||
"type": "zip", |
"type": "zip", |
||||
"url": "https://api.github.com/repos/twigphp/Twig/zipball/dd4353357c5a116322e92a00d16043a31881a81e", |
"url": "https://api.github.com/repos/twigphp/Twig/zipball/3e059001d6d597dd50ea7c74dd2464b4adea48d3", |
||||
"reference": "dd4353357c5a116322e92a00d16043a31881a81e", |
"reference": "3e059001d6d597dd50ea7c74dd2464b4adea48d3", |
||||
"shasum": "" |
"shasum": "" |
||||
}, |
}, |
||||
"require": { |
"require": { |
||||
"php": ">=7.2.5", |
"php": ">=7.1.3", |
||||
"symfony/polyfill-ctype": "^1.8" |
"symfony/polyfill-ctype": "^1.8", |
||||
|
"symfony/polyfill-mbstring": "^1.3", |
||||
|
"symfony/polyfill-php72": "^1.8" |
||||
}, |
}, |
||||
"require-dev": { |
"require-dev": { |
||||
"psr/container": "^1.0", |
"psr/container": "^1.0", |
||||
"symfony/phpunit-bridge": "^4.4.9|^5.0.9" |
"symfony/phpunit-bridge": "^4.4.9|^5.0.9|^6.0" |
||||
}, |
}, |
||||
"type": "library", |
"type": "library", |
||||
"extra": { |
"extra": { |
||||
"branch-alias": { |
"branch-alias": { |
||||
"dev-master": "1.44-dev" |
"dev-master": "2.15-dev" |
||||
} |
} |
||||
}, |
}, |
||||
"autoload": { |
"autoload": { |
||||
@ -410,7 +726,7 @@ |
|||||
], |
], |
||||
"support": { |
"support": { |
||||
"issues": "https://github.com/twigphp/Twig/issues", |
"issues": "https://github.com/twigphp/Twig/issues", |
||||
"source": "https://github.com/twigphp/Twig/tree/v2.14.11" |
"source": "https://github.com/twigphp/Twig/tree/v2.15.4" |
||||
}, |
}, |
||||
"funding": [ |
"funding": [ |
||||
{ |
{ |
||||
@ -422,7 +738,7 @@ |
|||||
"type": "tidelift" |
"type": "tidelift" |
||||
} |
} |
||||
], |
], |
||||
"time": "2021-09-17T08:35:19+00:00" |
"time": "2022-12-27T12:26:20+00:00" |
||||
} |
} |
||||
], |
], |
||||
"packages-dev": [], |
"packages-dev": [], |
||||
@ -437,5 +753,5 @@ |
|||||
"ext-pdo": ">=5.4" |
"ext-pdo": ">=5.4" |
||||
}, |
}, |
||||
"platform-dev": [], |
"platform-dev": [], |
||||
"plugin-api-version": "2.0.0" |
"plugin-api-version": "2.3.0" |
||||
} |
} |
||||
|
@ -1,31 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
/* |
|
||||
* This file is part of Twig. |
|
||||
* |
|
||||
* (c) 2010-2019 Fabien Potencier |
|
||||
* |
|
||||
* For the full copyright and license information, please view the LICENSE |
|
||||
* file that was distributed with this source code. |
|
||||
*/ |
|
||||
|
|
||||
namespace Twig\Extensions; |
|
||||
|
|
||||
use Twig\Extension\AbstractExtension; |
|
||||
use Twig\Extensions\TokenParser\TransTokenParser; |
|
||||
use Twig\TwigFilter; |
|
||||
|
|
||||
class I18nExtension extends AbstractExtension |
|
||||
{ |
|
||||
public function getTokenParsers() |
|
||||
{ |
|
||||
return [new TransTokenParser()]; |
|
||||
} |
|
||||
|
|
||||
public function getFilters() |
|
||||
{ |
|
||||
return [ |
|
||||
new TwigFilter('trans', 'gettext'), |
|
||||
]; |
|
||||
} |
|
||||
} |
|
@ -1,140 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
class Twig_Extensions_Extension_Tinyboard extends Twig_Extension |
|
||||
{ |
|
||||
/** |
|
||||
* Returns a list of filters to add to the existing list. |
|
||||
* |
|
||||
* @return array An array of filters |
|
||||
*/ |
|
||||
public function getFilters() |
|
||||
{ |
|
||||
return array( |
|
||||
new Twig_SimpleFilter('filesize', 'format_bytes'), |
|
||||
new Twig_SimpleFilter('truncate', 'twig_truncate_filter'), |
|
||||
new Twig_SimpleFilter('truncate_body', 'truncate'), |
|
||||
new Twig_SimpleFilter('truncate_filename', 'twig_filename_truncate_filter'), |
|
||||
new Twig_SimpleFilter('extension', 'twig_extension_filter'), |
|
||||
new Twig_SimpleFilter('sprintf', 'sprintf'), |
|
||||
new Twig_SimpleFilter('capcode', 'capcode'), |
|
||||
new Twig_SimpleFilter('remove_modifiers', 'remove_modifiers'), |
|
||||
new Twig_SimpleFilter('remove_markup', 'remove_markup'), |
|
||||
new Twig_SimpleFilter('end_on_newline', 'end_on_newline'), |
|
||||
new Twig_SimpleFilter('remove_paragraphs', 'remove_paragraphs'), |
|
||||
new Twig_SimpleFilter('hasPermission', 'twig_hasPermission_filter'), |
|
||||
new Twig_SimpleFilter('date', 'twig_date_filter'), |
|
||||
new Twig_SimpleFilter('poster_id', 'poster_id'), |
|
||||
new Twig_SimpleFilter('remove_whitespace', 'twig_remove_whitespace_filter'), |
|
||||
new Twig_SimpleFilter('count', 'count'), |
|
||||
new Twig_SimpleFilter('ago', 'ago'), |
|
||||
new Twig_SimpleFilter('until', 'until'), |
|
||||
new Twig_SimpleFilter('push', 'twig_push_filter'), |
|
||||
new Twig_SimpleFilter('bidi_cleanup', 'bidi_cleanup'), |
|
||||
new Twig_SimpleFilter('addslashes', 'addslashes'), |
|
||||
new Twig_SimpleFilter('cloak_ip', 'cloak_ip'), |
|
||||
new Twig_SimpleFilter('cloak_mask', 'cloak_mask'), |
|
||||
); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Returns a list of functions to add to the existing list. |
|
||||
* |
|
||||
* @return array An array of filters |
|
||||
*/ |
|
||||
public function getFunctions() |
|
||||
{ |
|
||||
return array( |
|
||||
new Twig_SimpleFunction('time', 'time'), |
|
||||
new Twig_SimpleFunction('floor', 'floor'), |
|
||||
new Twig_SimpleFunction('timezone', 'twig_timezone_function'), |
|
||||
new Twig_SimpleFunction('hiddenInputs', 'hiddenInputs'), |
|
||||
new Twig_SimpleFunction('hiddenInputsHash', 'hiddenInputsHash'), |
|
||||
new Twig_SimpleFunction('ratio', 'twig_ratio_function'), |
|
||||
new Twig_SimpleFunction('secure_link_confirm', 'twig_secure_link_confirm'), |
|
||||
new Twig_SimpleFunction('secure_link', 'twig_secure_link'), |
|
||||
new Twig_SimpleFunction('link_for', 'link_for') |
|
||||
); |
|
||||
} |
|
||||
|
|
||||
/** |
|
||||
* Returns the name of the extension. |
|
||||
* |
|
||||
* @return string The extension name |
|
||||
*/ |
|
||||
public function getName() |
|
||||
{ |
|
||||
return 'tinyboard'; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
function twig_timezone_function() { |
|
||||
return 'Z'; |
|
||||
} |
|
||||
|
|
||||
function twig_push_filter($array, $value) { |
|
||||
array_push($array, $value); |
|
||||
return $array; |
|
||||
} |
|
||||
|
|
||||
function twig_remove_whitespace_filter($data) { |
|
||||
return preg_replace('/[\t\r\n]/', '', $data); |
|
||||
} |
|
||||
|
|
||||
function twig_date_filter($date, $format) { |
|
||||
return gmdate($format, $date); |
|
||||
} |
|
||||
|
|
||||
function twig_hasPermission_filter($mod, $permission, $board = null) { |
|
||||
return hasPermission($permission, $board, $mod); |
|
||||
} |
|
||||
|
|
||||
function twig_extension_filter($value, $case_insensitive = true) { |
|
||||
$ext = mb_substr($value, mb_strrpos($value, '.') + 1); |
|
||||
if($case_insensitive) |
|
||||
$ext = mb_strtolower($ext); |
|
||||
return $ext; |
|
||||
} |
|
||||
|
|
||||
function twig_sprintf_filter( $value, $var) { |
|
||||
return sprintf($value, $var); |
|
||||
} |
|
||||
|
|
||||
function twig_truncate_filter($value, $length = 30, $preserve = false, $separator = '…') { |
|
||||
if (mb_strlen($value) > $length) { |
|
||||
if ($preserve) { |
|
||||
if (false !== ($breakpoint = mb_strpos($value, ' ', $length))) { |
|
||||
$length = $breakpoint; |
|
||||
} |
|
||||
} |
|
||||
return mb_substr($value, 0, $length) . $separator; |
|
||||
} |
|
||||
return $value; |
|
||||
} |
|
||||
|
|
||||
function twig_filename_truncate_filter($value, $length = 30, $separator = '…') { |
|
||||
if (mb_strlen($value) > $length) { |
|
||||
$value = strrev($value); |
|
||||
$array = array_reverse(explode(".", $value, 2)); |
|
||||
$array = array_map("strrev", $array); |
|
||||
|
|
||||
$filename = &$array[0]; |
|
||||
$extension = isset($array[1]) ? $array[1] : false; |
|
||||
|
|
||||
$filename = mb_substr($filename, 0, $length - ($extension ? mb_strlen($extension) + 1 : 0)) . $separator; |
|
||||
|
|
||||
return implode(".", $array); |
|
||||
} |
|
||||
return $value; |
|
||||
} |
|
||||
|
|
||||
function twig_ratio_function($w, $h) { |
|
||||
return fraction($w, $h, ':'); |
|
||||
} |
|
||||
function twig_secure_link_confirm($text, $title, $confirm_message, $href) { |
|
||||
global $config; |
|
||||
|
|
||||
return '<a onclick="if (event.which==2) return true;if (confirm(\'' . htmlentities(addslashes($confirm_message)) . '\')) document.location=\'?/' . htmlspecialchars(addslashes($href . '/' . make_secure_link_token($href))) . '\';return false;" title="' . htmlentities($title) . '" href="?/' . $href . '">' . $text . '</a>'; |
|
||||
} |
|
||||
function twig_secure_link($href) { |
|
||||
return $href . '/' . make_secure_link_token($href); |
|
||||
} |
|
@ -1,160 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
/* |
|
||||
* This file is part of Twig. |
|
||||
* |
|
||||
* (c) 2010-2019 Fabien Potencier |
|
||||
* |
|
||||
* For the full copyright and license information, please view the LICENSE |
|
||||
* file that was distributed with this source code. |
|
||||
*/ |
|
||||
|
|
||||
namespace Twig\Extensions\Node; |
|
||||
|
|
||||
use Twig\Compiler; |
|
||||
use Twig\Node\CheckToStringNode; |
|
||||
use Twig\Node\Expression\AbstractExpression; |
|
||||
use Twig\Node\Expression\ConstantExpression; |
|
||||
use Twig\Node\Expression\FilterExpression; |
|
||||
use Twig\Node\Expression\NameExpression; |
|
||||
use Twig\Node\Expression\TempNameExpression; |
|
||||
use Twig\Node\Node; |
|
||||
use Twig\Node\PrintNode; |
|
||||
|
|
||||
/** |
|
||||
* @author Fabien Potencier <fabien@symfony.com> |
|
||||
*/ |
|
||||
class TransNode extends Node |
|
||||
{ |
|
||||
public function __construct(Node $body, Node $plural = null, AbstractExpression $count = null, Node $notes = null, $lineno, $tag = null) |
|
||||
{ |
|
||||
$nodes = ['body' => $body]; |
|
||||
if (null !== $count) { |
|
||||
$nodes['count'] = $count; |
|
||||
} |
|
||||
if (null !== $plural) { |
|
||||
$nodes['plural'] = $plural; |
|
||||
} |
|
||||
if (null !== $notes) { |
|
||||
$nodes['notes'] = $notes; |
|
||||
} |
|
||||
|
|
||||
parent::__construct($nodes, [], $lineno, $tag); |
|
||||
} |
|
||||
|
|
||||
public function compile(Compiler $compiler) |
|
||||
{ |
|
||||
$compiler->addDebugInfo($this); |
|
||||
|
|
||||
list($msg, $vars) = $this->compileString($this->getNode('body')); |
|
||||
|
|
||||
if ($this->hasNode('plural')) { |
|
||||
list($msg1, $vars1) = $this->compileString($this->getNode('plural')); |
|
||||
|
|
||||
$vars = array_merge($vars, $vars1); |
|
||||
} |
|
||||
|
|
||||
$function = $this->getTransFunction($this->hasNode('plural')); |
|
||||
|
|
||||
if ($this->hasNode('notes')) { |
|
||||
$message = trim($this->getNode('notes')->getAttribute('data')); |
|
||||
|
|
||||
// line breaks are not allowed cause we want a single line comment |
|
||||
$message = str_replace(["\n", "\r"], ' ', $message); |
|
||||
$compiler->write("// notes: {$message}\n"); |
|
||||
} |
|
||||
|
|
||||
if ($vars) { |
|
||||
$compiler |
|
||||
->write('echo strtr('.$function.'(') |
|
||||
->subcompile($msg) |
|
||||
; |
|
||||
|
|
||||
if ($this->hasNode('plural')) { |
|
||||
$compiler |
|
||||
->raw(', ') |
|
||||
->subcompile($msg1) |
|
||||
->raw(', abs(') |
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null) |
|
||||
->raw(')') |
|
||||
; |
|
||||
} |
|
||||
|
|
||||
$compiler->raw('), array('); |
|
||||
|
|
||||
foreach ($vars as $var) { |
|
||||
if ('count' === $var->getAttribute('name')) { |
|
||||
$compiler |
|
||||
->string('%count%') |
|
||||
->raw(' => abs(') |
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null) |
|
||||
->raw('), ') |
|
||||
; |
|
||||
} else { |
|
||||
$compiler |
|
||||
->string('%'.$var->getAttribute('name').'%') |
|
||||
->raw(' => ') |
|
||||
->subcompile($var) |
|
||||
->raw(', ') |
|
||||
; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
$compiler->raw("));\n"); |
|
||||
} else { |
|
||||
$compiler |
|
||||
->write('echo '.$function.'(') |
|
||||
->subcompile($msg) |
|
||||
; |
|
||||
|
|
||||
if ($this->hasNode('plural')) { |
|
||||
$compiler |
|
||||
->raw(', ') |
|
||||
->subcompile($msg1) |
|
||||
->raw(', abs(') |
|
||||
->subcompile($this->hasNode('count') ? $this->getNode('count') : null) |
|
||||
->raw(')') |
|
||||
; |
|
||||
} |
|
||||
|
|
||||
$compiler->raw(");\n"); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
private function compileString(Node $body): array |
|
||||
{ |
|
||||
if ($body instanceof NameExpression || $body instanceof ConstantExpression || $body instanceof TempNameExpression) { |
|
||||
return [$body, []]; |
|
||||
} |
|
||||
|
|
||||
$vars = []; |
|
||||
if (\count($body)) { |
|
||||
$msg = ''; |
|
||||
|
|
||||
foreach ($body as $node) { |
|
||||
if ($node instanceof PrintNode) { |
|
||||
$n = $node->getNode('expr'); |
|
||||
while ($n instanceof FilterExpression) { |
|
||||
$n = $n->getNode('node'); |
|
||||
} |
|
||||
while ($n instanceof CheckToStringNode) { |
|
||||
$n = $n->getNode('expr'); |
|
||||
} |
|
||||
$msg .= sprintf('%%%s%%', $n->getAttribute('name')); |
|
||||
$vars[] = new NameExpression($n->getAttribute('name'), $n->getTemplateLine()); |
|
||||
} else { |
|
||||
$msg .= $node->getAttribute('data'); |
|
||||
} |
|
||||
} |
|
||||
} else { |
|
||||
$msg = $body->getAttribute('data'); |
|
||||
} |
|
||||
|
|
||||
return [new Node([new ConstantExpression(trim($msg), $body->getTemplateLine())]), $vars]; |
|
||||
} |
|
||||
|
|
||||
private function getTransFunction(bool $plural): string |
|
||||
{ |
|
||||
return $plural ? 'ngettext' : 'gettext'; |
|
||||
} |
|
||||
} |
|
@ -1,91 +0,0 @@ |
|||||
<?php |
|
||||
|
|
||||
/* |
|
||||
* This file is part of Twig. |
|
||||
* |
|
||||
* (c) 2010-2019 Fabien Potencier |
|
||||
* |
|
||||
* For the full copyright and license information, please view the LICENSE |
|
||||
* file that was distributed with this source code. |
|
||||
*/ |
|
||||
|
|
||||
namespace Twig\Extensions\TokenParser; |
|
||||
|
|
||||
use Twig\Error\SyntaxError; |
|
||||
use Twig\Extensions\Node\TransNode; |
|
||||
use Twig\Node\Expression\NameExpression; |
|
||||
use Twig\Node\Node; |
|
||||
use Twig\Node\PrintNode; |
|
||||
use Twig\Node\TextNode; |
|
||||
use Twig\Token; |
|
||||
use Twig\TokenParser\AbstractTokenParser; |
|
||||
|
|
||||
class TransTokenParser extends AbstractTokenParser |
|
||||
{ |
|
||||
public function parse(Token $token) |
|
||||
{ |
|
||||
$lineno = $token->getLine(); |
|
||||
$stream = $this->parser->getStream(); |
|
||||
$count = null; |
|
||||
$plural = null; |
|
||||
$notes = null; |
|
||||
|
|
||||
if (!$stream->test(Token::BLOCK_END_TYPE)) { |
|
||||
$body = $this->parser->getExpressionParser()->parseExpression(); |
|
||||
} else { |
|
||||
$stream->expect(Token::BLOCK_END_TYPE); |
|
||||
$body = $this->parser->subparse([$this, 'decideForFork']); |
|
||||
$next = $stream->next()->getValue(); |
|
||||
|
|
||||
if ('plural' === $next) { |
|
||||
$count = $this->parser->getExpressionParser()->parseExpression(); |
|
||||
$stream->expect(Token::BLOCK_END_TYPE); |
|
||||
$plural = $this->parser->subparse([$this, 'decideForFork']); |
|
||||
|
|
||||
if ('notes' === $stream->next()->getValue()) { |
|
||||
$stream->expect(Token::BLOCK_END_TYPE); |
|
||||
$notes = $this->parser->subparse([$this, 'decideForEnd'], true); |
|
||||
} |
|
||||
} elseif ('notes' === $next) { |
|
||||
$stream->expect(Token::BLOCK_END_TYPE); |
|
||||
$notes = $this->parser->subparse([$this, 'decideForEnd'], true); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
$stream->expect(Token::BLOCK_END_TYPE); |
|
||||
|
|
||||
$this->checkTransString($body, $lineno); |
|
||||
|
|
||||
return new TransNode($body, $plural, $count, $notes, $lineno, $this->getTag()); |
|
||||
} |
|
||||
|
|
||||
public function decideForFork(Token $token) |
|
||||
{ |
|
||||
return $token->test(['plural', 'notes', 'endtrans']); |
|
||||
} |
|
||||
|
|
||||
public function decideForEnd(Token $token) |
|
||||
{ |
|
||||
return $token->test('endtrans'); |
|
||||
} |
|
||||
|
|
||||
public function getTag() |
|
||||
{ |
|
||||
return 'trans'; |
|
||||
} |
|
||||
|
|
||||
private function checkTransString(Node $body, $lineno) |
|
||||
{ |
|
||||
foreach ($body as $i => $node) { |
|
||||
if ( |
|
||||
$node instanceof TextNode |
|
||||
|| |
|
||||
($node instanceof PrintNode && $node->getNode('expr') instanceof NameExpression) |
|
||||
) { |
|
||||
continue; |
|
||||
} |
|
||||
|
|
||||
throw new SyntaxError(sprintf('The text to be translated with "trans" can only contain references to simple variables'), $lineno); |
|
||||
} |
|
||||
} |
|
||||
} |
|
Loading…
Reference in new issue