Файловый менеджер - Редактировать - /home/easybachat/hisabat365.com/4a7891/README.md.tar
Ðазад
home/easybachat/hisabat365.com/vendor/spatie/backtrace/README.md 0000644 00000014545 15060224205 0020213 0 ustar 00 # A better PHP backtrace [](https://packagist.org/packages/spatie/backtrace)  [](https://packagist.org/packages/spatie/backtrace) To get the backtrace in PHP you can use the `debug_backtrace` function. By default, it can be hard to work with. The reported function name for a frame is skewed: it belongs to the previous frame. Also, options need to be passed using a bitmask. This package provides a better way than `debug_backtrace` to work with a back trace. Here's an example: ```php // returns an array with `Spatie\Backtrace\Frame` instances $frames = Spatie\Backtrace\Backtrace::create()->frames(); $firstFrame = $frames[0]; $firstFrame->file; // returns the file name $firstFrame->lineNumber; // returns the line number $firstFrame->class; // returns the class name ``` ## Support us [<img src="https://github-ads.s3.eu-central-1.amazonaws.com/backtrace.jpg?t=1" width="419px" />](https://spatie.be/github-ad-click/backtrace) We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us). We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards). ## Installation You can install the package via composer: ```bash composer require spatie/backtrace ``` ## Usage This is how you can create a backtrace instance: ```php $backtrace = Spatie\Backtrace\Backtrace::create(); ``` ### Getting the frames To get all the frames you can call `frames`. ```php $frames = $backtrace->frames(); // contains an array with `Spatie\Backtrace\Frame` instances ``` A `Spatie\Backtrace\Frame` has these properties: - `file`: the name of the file - `lineNumber`: the line number - `arguments`: the arguments used for this frame. Will be `null` if `withArguments` was not used. - `class`: the class name for this frame. Will be `null` if the frame concerns a function. - `method`: the method used in this frame - `applicationFrame`: contains `true` is this frame belongs to your application, and `false` if it belongs to a file in the vendor directory ### Collecting arguments For performance reasons, the frames of the back trace will not contain the arguments of the called functions. If you want to add those use the `withArguments` method. ```php $backtrace = Spatie\Backtrace\Backtrace::create()->withArguments(); ``` #### Reducing arguments For viewing purposes, arguments can be reduced to a string: ```php $backtrace = Spatie\Backtrace\Backtrace::create()->withArguments()->reduceArguments(); ``` By default, some typical types will be reduced to a string. You can define your own reduction algorithm per type by implementing an `ArgumentReducer`: ```php class DateTimeWithOtherFormatArgumentReducer implements ArgumentReducer { public function execute($argument): ReducedArgumentContract { if (! $argument instanceof DateTimeInterface) { return UnReducedArgument::create(); } return new ReducedArgument( $argument->format('d/m/y H:i'), get_class($argument), ); } } ``` This is a copy of the built-in argument reducer for `DateTimeInterface` where we've updated the format. An `UnReducedArgument` object is returned when the argument is not of the expected type. A `ReducedArgument` object is returned with the reduced value of the argument and the original type of the argument. The reducer can be used as such: ```php $backtrace = Spatie\Backtrace\Backtrace::create()->withArguments()->reduceArguments( Spatie\Backtrace\Arguments\ArgumentReducers::default([ new DateTimeWithOtherFormatArgumentReducer() ]) ); ``` Which will first execute the new reducer and then the default ones. ### Setting the application path You can use the `applicationPath` to pass the base path of your app. This value will be used to determine whether a frame is an application frame, or a vendor frame. Here's an example using a Laravel specific function. ```php $backtrace = Spatie\Backtrace\Backtrace::create()->applicationPath(base_path()); ``` ### Getting a certain part of a trace If you only want to have the frames starting from a particular frame in the backtrace you can use the `startingFromFrame` method: ```php use Spatie\Backtrace\Backtrace; use Spatie\Backtrace\Frame; $frames = Backtrace::create() ->startingFromFrame(function (Frame $frame) { return $frame->class === MyClass::class; }) ->frames(); ``` With this code, all frames before the frame that concerns `MyClass` will have been filtered out. Alternatively, you can use the `offset` method, which will skip the given number of frames. In this example the first 2 frames will not end up in `$frames`. ```php $frames = Spatie\Backtrace\Backtrace::create() ->offset(2) ->frames(); ``` ### Limiting the number of frames To only get a specific number of frames use the `limit` function. In this example, we'll only get the first two frames. ```php $frames = Spatie\Backtrace\Backtrace::create() ->limit(2) ->frames(); ``` ### Getting a backtrace for a throwable Here's how you can get a backtrace for a throwable. ```php $frames = Spatie\Backtrace\Backtrace::createForThrowable($throwable) ``` Because we will use the backtrace that is already available the throwable, the frames will always contain the arguments used. ## Testing ``` bash composer test ``` ## Changelog Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. ## Contributing Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. ## Security Vulnerabilities Please review [our security policy](../../security/policy) on how to report security vulnerabilities. ## Credits - [Freek Van de Herten](https://github.com/freekmurze) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. home/easybachat/hisabat365.com/vendor/spatie/ignition/README.md 0000644 00000034617 15060250717 0020125 0 ustar 00 # Ignition: a beautiful error page for PHP apps [](https://packagist.org/packages/spatie/ignition) [](https://github.com/spatie/ignition/actions/workflows/run-tests.yml) [](https://packagist.org/packages/spatie/ignition) [Ignition](https://flareapp.io/docs/ignition-for-laravel/introduction) is a beautiful and customizable error page for PHP applications Here's a minimal example on how to register ignition. ```php use Spatie\Ignition\Ignition; include 'vendor/autoload.php'; Ignition::make()->register(); ``` Let's now throw an exception during a web request. ```php throw new Exception('Bye world'); ``` This is what you'll see in the browser.  There's also a beautiful dark mode.  ## Are you a visual learner? In [this video on YouTube](https://youtu.be/LEY0N0Bteew?t=739), you'll see a demo of all of the features. Do know more about the design decisions we made, read [this blog post](https://freek.dev/2168-ignition-the-most-beautiful-error-page-for-laravel-and-php-got-a-major-redesign). ## Support us [<img src="https://github-ads.s3.eu-central-1.amazonaws.com/ignition.jpg?t=1" width="419px" />](https://spatie.be/github-ad-click/ignition) We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us). We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards). ## Installation For Laravel apps, head over to [laravel-ignition](https://github.com/spatie/laravel-ignition). For Symfony apps, go to [symfony-ignition-bundle](https://github.com/spatie/symfony-ignition-bundle). For Drupal 10+ websites, use the [Ignition module](https://www.drupal.org/project/ignition). For OpenMage websites, use the [Ignition module](https://github.com/empiricompany/openmage_ignition). For all other PHP projects, install the package via composer: ```bash composer require spatie/ignition ``` ## Usage In order to display the Ignition error page when an error occurs in your project, you must add this code. Typically, this would be done in the bootstrap part of your application. ```php \Spatie\Ignition\Ignition::make()->register(); ``` ### Setting the application path When setting the application path, Ignition will trim the given value from all paths. This will make the error page look more cleaner. ```php \Spatie\Ignition\Ignition::make() ->applicationPath($basePathOfYourApplication) ->register(); ``` ### Using dark mode By default, Ignition uses a nice white based theme. If this is too bright for your eyes, you can use dark mode. ```php \Spatie\Ignition\Ignition::make() ->useDarkMode() ->register(); ``` ### Avoid rendering Ignition in a production environment You don't want to render the Ignition error page in a production environment, as it potentially can display sensitive information. To avoid rendering Ignition, you can call `shouldDisplayException` and pass it a falsy value. ```php \Spatie\Ignition\Ignition::make() ->shouldDisplayException($inLocalEnvironment) ->register(); ``` ### Displaying solutions In addition to displaying an exception, Ignition can display a solution as well. Out of the box, Ignition will display solutions for common errors such as bad methods calls, or using undefined properties. #### Adding a solution directly to an exception To add a solution text to your exception, let the exception implement the `Spatie\Ignition\Contracts\ProvidesSolution` interface. This interface requires you to implement one method, which is going to return the `Solution` that users will see when the exception gets thrown. ```php use Spatie\Ignition\Contracts\Solution; use Spatie\Ignition\Contracts\ProvidesSolution; class CustomException extends Exception implements ProvidesSolution { public function getSolution(): Solution { return new CustomSolution(); } } ``` ```php use Spatie\Ignition\Contracts\Solution; class CustomSolution implements Solution { public function getSolutionTitle(): string { return 'The solution title goes here'; } public function getSolutionDescription(): string { return 'This is a longer description of the solution that you want to show.'; } public function getDocumentationLinks(): array { return [ 'Your documentation' => 'https://your-project.com/relevant-docs-page', ]; } } ``` This is how the exception would be displayed if you were to throw it.  #### Using solution providers Instead of adding solutions to exceptions directly, you can also create a solution provider. While exceptions that return a solution, provide the solution directly to Ignition, a solution provider allows you to figure out if an exception can be solved. For example, you could create a custom "Stack Overflow solution provider", that will look up if a solution can be found for a given throwable. Solution providers can be added by third party packages or within your own application. A solution provider is any class that implements the \Spatie\Ignition\Contracts\HasSolutionsForThrowable interface. This is how the interface looks like: ```php interface HasSolutionsForThrowable { public function canSolve(Throwable $throwable): bool; /** @return \Spatie\Ignition\Contracts\Solution[] */ public function getSolutions(Throwable $throwable): array; } ``` When an error occurs in your app, the class will receive the `Throwable` in the `canSolve` method. In that method you can decide if your solution provider is applicable to the `Throwable` passed. If you return `true`, `getSolutions` will get called. To register a solution provider to Ignition you must call the `addSolutionProviders` method. ```php \Spatie\Ignition\Ignition::make() ->addSolutionProviders([ YourSolutionProvider::class, AnotherSolutionProvider::class, ]) ->register(); ``` ### AI powered solutions Ignition can send your exception to Open AI that will attempt to automatically suggest a solution. In many cases, the suggested solutions is quite useful, but keep in mind that the solution may not be 100% correct for your context. To generate AI powered solutions, you must first install this optional dependency. ```bash composer require openai-php/client ``` To start sending your errors to OpenAI, you must instanciate the `OpenAiSolutionProvider`. The constructor expects a OpenAI API key to be passed, you should generate this key [at OpenAI](https://platform.openai.com). ```php use \Spatie\Ignition\Solutions\OpenAi\OpenAiSolutionProvider; $aiSolutionProvider = new OpenAiSolutionProvider($openAiKey); ``` To use the solution provider, you should pass it to `addSolutionProviders` when registering Ignition. ```php \Spatie\Ignition\Ignition::make() ->addSolutionProviders([ $aiSolutionProvider, // other solution providers... ]) ->register(); ``` By default, the solution provider will send these bits of info to Open AI: - the error message - the error class - the stack frame - other small bits of info of context surrounding your error It will not send the request payload or any environment variables to avoid sending sensitive data to OpenAI. #### Caching requests to AI By default, all errors will be sent to OpenAI. Optionally, you can add caching so similar errors will only get sent to OpenAI once. To cache errors, you can call `useCache` on `$aiSolutionProvider`. You should pass [a simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation). Here's the signature of the `useCache` method. ```php public function useCache(CacheInterface $cache, int $cacheTtlInSeconds = 60 * 60) ``` #### Hinting the application type To increase the quality of the suggested solutions, you can send along the application type (Symfony, Drupal, WordPress, ...) to the AI. To send the application type call `applicationType` on the solution provider. ```php $aiSolutionProvider->applicationType('WordPress 6.2') ``` ### Sending exceptions to Flare Ignition comes with the ability to send exceptions to [Flare](https://flareapp.io), an exception monitoring service. Flare can notify you when new exceptions are occurring in your production environment. To send exceptions to Flare, simply call the `sendToFlareMethod` and pass it the API key you got when creating a project on Flare. You probably want to combine this with calling `runningInProductionEnvironment`. That method will, when passed a truthy value, not display the Ignition error page, but only send the exception to Flare. ```php \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->register(); ``` When you pass a falsy value to `runningInProductionEnvironment`, the Ignition error page will get shown, but no exceptions will be sent to Flare. ### Sending custom context to Flare When you send an error to Flare, you can add custom information that will be sent along with every exception that happens in your application. This can be very useful if you want to provide key-value related information that furthermore helps you to debug a possible exception. ```php use Spatie\FlareClient\Flare; \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->configureFlare(function(Flare $flare) { $flare->context('Tenant', 'My-Tenant-Identifier'); }) ->register(); ``` Sometimes you may want to group your context items by a key that you provide to have an easier visual differentiation when you look at your custom context items. The Flare client allows you to also provide your own custom context groups like this: ```php use Spatie\FlareClient\Flare; \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->configureFlare(function(Flare $flare) { $flare->group('Custom information', [ 'key' => 'value', 'another key' => 'another value', ]); }) ->register(); ``` ### Anonymize request to Flare By default, the Ignition collects information about the IP address of your application users. If you don't want to send this information to Flare, call `anonymizeIp()`. ```php use Spatie\FlareClient\Flare; \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->configureFlare(function(Flare $flare) { $flare->anonymizeIp(); }) ->register(); ``` ### Censoring request body fields When an exception occurs in a web request, the Flare client will pass on any request fields that are present in the body. In some cases, such as a login page, these request fields may contain a password that you don't want to send to Flare. To censor out values of certain fields, you can use `censorRequestBodyFields`. You should pass it the names of the fields you wish to censor. ```php use Spatie\FlareClient\Flare; \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->configureFlare(function(Flare $flare) { $flare->censorRequestBodyFields(['password']); }) ->register(); ``` This will replace the value of any sent fields named "password" with the value "<CENSORED>". ### Using middleware to modify data sent to Flare Before Flare receives the data that was collected from your local exception, we give you the ability to call custom middleware methods. These methods retrieve the report that should be sent to Flare and allow you to add custom information to that report. A valid middleware is any class that implements `FlareMiddleware`. ```php use Spatie\FlareClient\Report; use Spatie\FlareClient\FlareMiddleware\FlareMiddleware; class MyMiddleware implements FlareMiddleware { public function handle(Report $report, Closure $next) { $report->message("{$report->getMessage()}, now modified"); return $next($report); } } ``` ```php use Spatie\FlareClient\Flare; \Spatie\Ignition\Ignition::make() ->runningInProductionEnvironment($boolean) ->sendToFlare($yourApiKey) ->configureFlare(function(Flare $flare) { $flare->registerMiddleware([ MyMiddleware::class, ]) }) ->register(); ``` ### Changelog Please see [CHANGELOG](CHANGELOG.md) for more information about what has changed recently. ## Contributing Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. ## Dev setup Here are the steps you'll need to perform if you want to work on the UI of Ignition. - clone (or move) `spatie/ignition`, `spatie/ignition-ui`, `spatie/laravel-ignition`, `spatie/flare-client-php` and `spatie/ignition-test` into the same directory (e.g. `~/code/flare`) - create a new `package.json` file in `~/code/flare` directory: ```json { "private": true, "workspaces": [ "ignition-ui", "ignition" ] } ``` - run `yarn install` in the `~/code/flare` directory - in the `~/code/flare/ignition-test` directory - run `composer update` - run `cp .env.example .env` - run `php artisan key:generate` - run `yarn dev` in both the `ignition` and `ignition-ui` project - http://ignition-test.test/ should now work (= show the new UI). If you use valet, you might want to run `valet park` inside the `~/code/flare` directory. - http://ignition-test.test/ has a bit of everything - http://ignition-test.test/sql-error has a solution and SQL exception ## Security Vulnerabilities Please review [our security policy](../../security/policy) on how to report security vulnerabilities. ## Credits - [Spatie](https://spatie.be) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. home/easybachat/hisabat365.com/vendor/phenx/php-font-lib/README.md 0000644 00000003070 15060306033 0020417 0 ustar 00 [](https://github.com/dompdf/php-font-lib/actions/workflows/phpunit.yml) # PHP Font Lib This library can be used to: * Read TrueType, OpenType (with TrueType glyphs), WOFF font files * Extract basic info (name, style, etc) * Extract advanced info (horizontal metrics, glyph names, glyph shapes, etc) * Make an Adobe Font Metrics (AFM) file from a font This project was initiated by the need to read font files in the [DOMPDF project](https://github.com/dompdf/dompdf). Usage Example ------------- ### Base font information ```php $font = \FontLib\Font::load('fontfile.ttf'); $font->parse(); // for getFontWeight() to work this call must be done first! echo $font->getFontName() .'<br>'; echo $font->getFontSubfamily() .'<br>'; echo $font->getFontSubfamilyID() .'<br>'; echo $font->getFontFullName() .'<br>'; echo $font->getFontVersion() .'<br>'; echo $font->getFontWeight() .'<br>'; echo $font->getFontPostscriptName() .'<br>'; $font->close(); ``` ### Font Metrics Generation ```php $font = FontLib\Font::load('fontfile.ttf'); $font->parse(); $font->saveAdobeFontMetrics('fontfile.ufm'); ``` ### Create a font subset ```php $font = FontLib\Font::load('fontfile.ttf'); $font->parse(); $font->setSubset("abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ.:,;' (!?)+-*/== 1234567890"); // characters to include $font->reduce(); touch('fontfile.subset.ttf'); $font->open('fontfile.subset.ttf', FontLib\BinaryStream::modeReadWrite); $font->encode(array("OS/2")); $font->close(); ``` home/easybachat/hisabat365.com/vendor/spatie/laravel-ignition/README.md 0000644 00000005503 15060311045 0021531 0 ustar 00 # Ignition: a beautiful error page for Laravel apps [](https://packagist.org/packages/spatie/laravel-ignition)  [](https://packagist.org/packages/spatie/laravel-ignition) [Ignition](https://flareapp.io/docs/ignition-for-laravel/introduction) is a beautiful and customizable error page for Laravel applications. It is the default error page for new Laravel applications. It also allows to publicly share your errors on [Flare](https://flareapp.io). If configured with a valid Flare API key, your errors in production applications will be tracked, and you'll get notified when they happen. `spatie/laravel-ignition` works for Laravel 8 and 9 applications running on PHP 8.0 and above. Looking for Ignition for Laravel 5.x, 6.x or 7.x or old PHP versions? `facade/ignition` is still compatible.  ## Are you a visual learner? In [this video on YouTube](https://youtu.be/LEY0N0Bteew?t=739), you'll see a demo of all of the features. Do know more about the design decisions we made, read [this blog post](https://freek.dev/2168-ignition-the-most-beautiful-error-page-for-laravel-and-php-got-a-major-redesign). ## Official Documentation The official documentation for Ignition can be found on the [Flare website](https://flareapp.io/docs/ignition/introducing-ignition/overview). ## Support us [<img src="https://github-ads.s3.eu-central-1.amazonaws.com/laravel-ignition.jpg?t=1" width="419px" />](https://spatie.be/github-ad-click/laravel-ignition) We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us). We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards). ### Changelog Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently. ## Contributing Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. ## Security Vulnerabilities Please review [our security policy](../../security/policy) on how to report security vulnerabilities. ## Credits - [Spatie](https://spatie.be) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. home/easybachat/hisabat365.com/vendor/spatie/error-solutions/README.md 0000644 00000004462 15060311242 0021455 0 ustar 00 # Error solutions [](https://packagist.org/packages/spatie/error-solutions) [](https://github.com/spatie/error-solutions/actions/workflows/run-tests.yml) [](https://packagist.org/packages/spatie/error-solutions) At Spatie we develop multiple packages handling errors and providing solutions for these errors. This package is a collection of all these solutions. ## Support us [<img src="https://github-ads.s3.eu-central-1.amazonaws.com/error-solutions.jpg?t=1" width="419px" />](https://spatie.be/github-ad-click/error-solutions) We invest a lot of resources into creating [best in class open source packages](https://spatie.be/open-source). You can support us by [buying one of our paid products](https://spatie.be/open-source/support-us). We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on [our contact page](https://spatie.be/about-us). We publish all received postcards on [our virtual postcard wall](https://spatie.be/open-source/postcards). ## Installation You can install the package via composer: ```bash composer require spatie/error-solutions ``` ## Usage We've got some excellent documentation on how to use solutions: - [Flare](https://flareapp.io/docs/ignition/solutions/implementing-solutions) - [Ignition](https://github.com/spatie/ignition/?tab=readme-ov-file#displaying-solutions) ## Testing ```bash composer test ``` ## Changelog Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. ## Contributing Please see [CONTRIBUTING](https://github.com/spatie/.github/blob/main/CONTRIBUTING.md) for details. ## Security Vulnerabilities Please review [our security policy](../../security/policy) on how to report security vulnerabilities. ## Credits - [Ruben Van Assche](https://github.com/rubenvanassche) - [All Contributors](../../contributors) ## License The MIT License (MIT). Please see [License File](LICENSE.md) for more information. home/easybachat/hisabat365.com/vendor/phar-io/manifest/README.md 0000644 00000013177 15060322225 0020155 0 ustar 00 # Manifest Component for reading [phar.io](https://phar.io/) manifest information from a [PHP Archive (PHAR)](http://php.net/phar). ## Installation You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): composer require phar-io/manifest If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: composer require --dev phar-io/manifest ## Usage Examples ### Read from `manifest.xml` ```php use PharIo\Manifest\ManifestLoader; use PharIo\Manifest\ManifestSerializer; $manifest = ManifestLoader::fromFile('manifest.xml'); var_dump($manifest); echo (new ManifestSerializer)->serializeToString($manifest); ``` <details> <summary>Output</summary> ```shell object(PharIo\Manifest\Manifest)#14 (6) { ["name":"PharIo\Manifest\Manifest":private]=> object(PharIo\Manifest\ApplicationName)#10 (1) { ["name":"PharIo\Manifest\ApplicationName":private]=> string(12) "some/library" } ["version":"PharIo\Manifest\Manifest":private]=> object(PharIo\Version\Version)#12 (5) { ["originalVersionString":"PharIo\Version\Version":private]=> string(5) "1.0.0" ["major":"PharIo\Version\Version":private]=> object(PharIo\Version\VersionNumber)#13 (1) { ["value":"PharIo\Version\VersionNumber":private]=> int(1) } ["minor":"PharIo\Version\Version":private]=> object(PharIo\Version\VersionNumber)#23 (1) { ["value":"PharIo\Version\VersionNumber":private]=> int(0) } ["patch":"PharIo\Version\Version":private]=> object(PharIo\Version\VersionNumber)#22 (1) { ["value":"PharIo\Version\VersionNumber":private]=> int(0) } ["preReleaseSuffix":"PharIo\Version\Version":private]=> NULL } ["type":"PharIo\Manifest\Manifest":private]=> object(PharIo\Manifest\Library)#6 (0) { } ["copyrightInformation":"PharIo\Manifest\Manifest":private]=> object(PharIo\Manifest\CopyrightInformation)#19 (2) { ["authors":"PharIo\Manifest\CopyrightInformation":private]=> object(PharIo\Manifest\AuthorCollection)#9 (1) { ["authors":"PharIo\Manifest\AuthorCollection":private]=> array(1) { [0]=> object(PharIo\Manifest\Author)#15 (2) { ["name":"PharIo\Manifest\Author":private]=> string(13) "Reiner Zufall" ["email":"PharIo\Manifest\Author":private]=> object(PharIo\Manifest\Email)#16 (1) { ["email":"PharIo\Manifest\Email":private]=> string(16) "reiner@zufall.de" } } } } ["license":"PharIo\Manifest\CopyrightInformation":private]=> object(PharIo\Manifest\License)#11 (2) { ["name":"PharIo\Manifest\License":private]=> string(12) "BSD-3-Clause" ["url":"PharIo\Manifest\License":private]=> object(PharIo\Manifest\Url)#18 (1) { ["url":"PharIo\Manifest\Url":private]=> string(26) "https://domain.tld/LICENSE" } } } ["requirements":"PharIo\Manifest\Manifest":private]=> object(PharIo\Manifest\RequirementCollection)#17 (1) { ["requirements":"PharIo\Manifest\RequirementCollection":private]=> array(1) { [0]=> object(PharIo\Manifest\PhpVersionRequirement)#20 (1) { ["versionConstraint":"PharIo\Manifest\PhpVersionRequirement":private]=> object(PharIo\Version\SpecificMajorAndMinorVersionConstraint)#24 (3) { ["originalValue":"PharIo\Version\AbstractVersionConstraint":private]=> string(3) "7.0" ["major":"PharIo\Version\SpecificMajorAndMinorVersionConstraint":private]=> int(7) ["minor":"PharIo\Version\SpecificMajorAndMinorVersionConstraint":private]=> int(0) } } } } ["bundledComponents":"PharIo\Manifest\Manifest":private]=> object(PharIo\Manifest\BundledComponentCollection)#8 (1) { ["bundledComponents":"PharIo\Manifest\BundledComponentCollection":private]=> array(0) { } } } <?xml version="1.0" encoding="UTF-8"?> <phar xmlns="https://phar.io/xml/manifest/1.0"> <contains name="some/library" version="1.0.0" type="library"/> <copyright> <author name="Reiner Zufall" email="reiner@zufall.de"/> <license type="BSD-3-Clause" url="https://domain.tld/LICENSE"/> </copyright> <requires> <php version="7.0"/> </requires> </phar> ``` </details> ### Create via API ```php $bundled = new \PharIo\Manifest\BundledComponentCollection(); $bundled->add( new \PharIo\Manifest\BundledComponent('vendor/packageA', new \PharIo\Version\Version('1.2.3-dev') ) ); $manifest = new PharIo\Manifest\Manifest( new \PharIo\Manifest\ApplicationName('vendor/package'), new \PharIo\Version\Version('1.0.0'), new \PharIo\Manifest\Library(), new \PharIo\Manifest\CopyrightInformation( new \PharIo\Manifest\AuthorCollection(), new \PharIo\Manifest\License( 'BSD-3-Clause', new \PharIo\Manifest\Url('https://spdx.org/licenses/BSD-3-Clause.html') ) ), new \PharIo\Manifest\RequirementCollection(), $bundled ); echo (new ManifestSerializer)->serializeToString($manifest); ``` <details> <summary>Output</summary> ```xml <?xml version="1.0" encoding="UTF-8"?> <phar xmlns="https://phar.io/xml/manifest/1.0"> <contains name="vendor/package" version="1.0.0" type="library"/> <copyright> <license type="BSD-3-Clause" url="https://spdx.org/licenses/BSD-3-Clause.html"/> </copyright> <requires> <php version="*"/> </requires> <bundles> <component name="vendor/packageA" version="1.2.3-dev"/> </bundles> </phar> ``` </details> home/easybachat/hisabat365.com/vendor/psr/container/README.md 0000644 00000001102 15060334117 0017562 0 ustar 00 Container interface ============== This repository holds all interfaces related to [PSR-11 (Container Interface)][psr-url]. Note that this is not a Container implementation of its own. It is merely abstractions that describe the components of a Dependency Injection Container. The installable [package][package-url] and [implementations][implementation-url] are listed on Packagist. [psr-url]: https://www.php-fig.org/psr/psr-11/ [package-url]: https://packagist.org/packages/psr/container [implementation-url]: https://packagist.org/providers/psr/container-implementation home/easybachat/hisabat365.com/vendor/laravel/tinker/README.md 0000644 00000002756 15060336633 0017743 0 ustar 00 <p align="center"><img src="/art/logo.svg" alt="Logo Laravel Tinker"></p> <p align="center"> <a href="https://github.com/laravel/tinker/actions"><img src="https://github.com/laravel/tinker/workflows/tests/badge.svg" alt="Build Status"></a> <a href="https://packagist.org/packages/laravel/tinker"><img src="https://img.shields.io/packagist/dt/laravel/tinker" alt="Total Downloads"></a> <a href="https://packagist.org/packages/laravel/tinker"><img src="https://img.shields.io/packagist/v/laravel/tinker" alt="Latest Stable Version"></a> <a href="https://packagist.org/packages/laravel/tinker"><img src="https://img.shields.io/packagist/l/laravel/tinker" alt="License"></a> </p> ## Introduction Laravel Tinker is a powerful REPL for the Laravel framework. ## Official Documentation Documentation for Tinker can be found on the [Laravel website](https://laravel.com/docs/artisan#tinker). ## Contributing Thank you for considering contributing to Tinker! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). ## Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). ## Security Vulnerabilities Please review [our security policy](https://github.com/laravel/tinker/security/policy) on how to report security vulnerabilities. ## License Laravel Tinker is open-sourced software licensed under the [MIT license](LICENSE.md). home/easybachat/hisabat365.com/vendor/phar-io/version/README.md 0000644 00000004471 15060342260 0020032 0 ustar 00 # Version Library for handling version information and constraints [](https://travis-ci.org/phar-io/version) ## Installation You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): composer require phar-io/version If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: composer require --dev phar-io/version ## Version constraints A Version constraint describes a range of versions or a discrete version number. The format of version numbers follows the schema of [semantic versioning](http://semver.org): `<major>.<minor>.<patch>`. A constraint might contain an operator that describes the range. Beside the typical mathematical operators like `<=`, `>=`, there are two special operators: *Caret operator*: `^1.0` can be written as `>=1.0.0 <2.0.0` and read as »every Version within major version `1`«. *Tilde operator*: `~1.0.0` can be written as `>=1.0.0 <1.1.0` and read as »every version within minor version `1.1`. The behavior of tilde operator depends on whether a patch level version is provided or not. If no patch level is provided, tilde operator behaves like the caret operator: `~1.0` is identical to `^1.0`. ## Usage examples Parsing version constraints and check discrete versions for compliance: ```php use PharIo\Version\Version; use PharIo\Version\VersionConstraintParser; $parser = new VersionConstraintParser(); $caret_constraint = $parser->parse( '^7.0' ); $caret_constraint->complies( new Version( '7.0.17' ) ); // true $caret_constraint->complies( new Version( '7.1.0' ) ); // true $caret_constraint->complies( new Version( '6.4.34' ) ); // false $tilde_constraint = $parser->parse( '~1.1.0' ); $tilde_constraint->complies( new Version( '1.1.4' ) ); // true $tilde_constraint->complies( new Version( '1.2.0' ) ); // false ``` As of version 2.0.0, pre-release labels are supported and taken into account when comparing versions: ```php $leftVersion = new PharIo\Version\Version('3.0.0-alpha.1'); $rightVersion = new PharIo\Version\Version('3.0.0-alpha.2'); $leftVersion->isGreaterThan($rightVersion); // false $rightVersion->isGreaterThan($leftVersion); // true ``` home/easybachat/hisabat365.com/vendor/phenx/php-svg-lib/README.md 0000644 00000001736 15060370334 0020264 0 ustar 00 # SVG file parsing / rendering library [](https://github.com/dompdf/php-svg-lib/actions/workflows/test.yml) [](https://packagist.org/packages/phenx/php-svg-lib) [](https://packagist.org/packages/phenx/php-svg-lib) [](https://packagist.org/packages/phenx/php-svg-lib) [](https://packagist.org/packages/phenx/php-svg-lib) The main purpose of this lib is to rasterize SVG to a surface which can be an image or a PDF for example, through a `\Svg\Surface` PHP interface. This project was initialized by the need to render SVG documents inside PDF files for the [DomPdf](https://github.com/dompdf/dompdf) project. home/easybachat/hisabat365.com/vendor/psy/psysh/README.md 0000644 00000004504 15060400627 0016766 0 ustar 00 # PsySH PsySH is a runtime developer console, interactive debugger and [REPL](https://en.wikipedia.org/wiki/Read%E2%80%93eval%E2%80%93print_loop) for PHP. Learn more at [psysh.org](http://psysh.org/) and [in the manual](https://github.com/bobthecow/psysh/wiki/Home). [](https://packagist.org/packages/psy/psysh) [](https://packagist.org/packages/psy/psysh) [](http://psysh.org) [](https://github.com/bobthecow/psysh/actions?query=branch:main) [](https://styleci.io/repos/4549925) <a id="downloading-the-manual"></a> ## [PsySH manual](https://github.com/bobthecow/psysh/wiki/Home) ### [💾 Installation](https://github.com/bobthecow/psysh/wiki/Installation) * [📕 PHP manual installation](https://github.com/bobthecow/psysh/wiki/PHP-manual) * <a class="internal present" href="https://github.com/bobthecow/psysh/wiki/Windows"><img src="https://user-images.githubusercontent.com/53660/40878809-407e8368-664b-11e8-8455-f11602c41dfe.png" width="18"> Windows</a> ### [🖥 Usage](https://github.com/bobthecow/psysh/wiki/Usage) * [✨ Magic variables](https://github.com/bobthecow/psysh/wiki/Magic-variables) * [⏳ Managing history](https://github.com/bobthecow/psysh/wiki/History) * [💲 System shell integration](https://github.com/bobthecow/psysh/wiki/Shell-integration) * [🎥 Tutorials & guides](https://github.com/bobthecow/psysh/wiki/Tutorials) * [🐛 Troubleshooting](https://github.com/bobthecow/psysh/wiki/Troubleshooting) ### [📢 Commands](https://github.com/bobthecow/psysh/wiki/Commands) ### [🛠 Configuration](https://github.com/bobthecow/psysh/wiki/Configuration) * [🎛 Config options](https://github.com/bobthecow/psysh/wiki/Config-options) * [🎨 Themes](https://github.com/bobthecow/psysh/wiki/Themes) * [📄 Sample config file](https://github.com/bobthecow/psysh/wiki/Sample-config) ### [🔌 Integrations](https://github.com/bobthecow/psysh/wiki/Integrations) home/easybachat/hisabat365.com/vendor/laravel/framework/README.md 0000644 00000006654 15060405244 0020440 0 ustar 00 <p align="center"><a href="https://laravel.com" target="_blank"><img src="https://raw.githubusercontent.com/laravel/art/master/logo-lockup/5%20SVG/2%20CMYK/1%20Full%20Color/laravel-logolockup-cmyk-red.svg" width="400"></a></p> <p align="center"> <a href="https://github.com/laravel/framework/actions"><img src="https://github.com/laravel/framework/workflows/tests/badge.svg" alt="Build Status"></a> <a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/dt/laravel/framework" alt="Total Downloads"></a> <a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/v/laravel/framework" alt="Latest Stable Version"></a> <a href="https://packagist.org/packages/laravel/framework"><img src="https://img.shields.io/packagist/l/laravel/framework" alt="License"></a> </p> ## About Laravel > **Note:** This repository contains the core code of the Laravel framework. If you want to build an application using Laravel, visit the main [Laravel repository](https://github.com/laravel/laravel). Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience to be truly fulfilling. Laravel attempts to take the pain out of development by easing common tasks used in the majority of web projects, such as: - [Simple, fast routing engine](https://laravel.com/docs/routing). - [Powerful dependency injection container](https://laravel.com/docs/container). - Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. - Database agnostic [schema migrations](https://laravel.com/docs/migrations). - [Robust background job processing](https://laravel.com/docs/queues). - [Real-time event broadcasting](https://laravel.com/docs/broadcasting). Laravel is accessible, yet powerful, providing tools needed for large, robust applications. A superb combination of simplicity, elegance, and innovation gives you a complete toolset required to build any application with which you are tasked. ## Learning Laravel Laravel has the most extensive and thorough documentation and video tutorial library of any modern web application framework. The [Laravel documentation](https://laravel.com/docs) is in-depth and complete, making it a breeze to get started learning the framework. You may also try the [Laravel Bootcamp](https://bootcamp.laravel.com), where you will be guided through building a modern Laravel application from scratch. If you're not in the mood to read, [Laracasts](https://laracasts.com) contains thousands of video tutorials covering a range of topics including Laravel, modern PHP, unit testing, JavaScript, and more. Boost the skill level of yourself and your entire team by digging into our comprehensive video library. ## Contributing Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). ## Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). ## Security Vulnerabilities Please review [our security policy](https://github.com/laravel/framework/security/policy) on how to report security vulnerabilities. ## License The Laravel framework is open-sourced software licensed under the [MIT license](LICENSE.md). home/easybachat/hisabat365.com/vendor/fruitcake/php-cors/README.md 0000644 00000007666 15060405306 0020530 0 ustar 00 # CORS for PHP (using the Symfony HttpFoundation) [](https://github.com/fruitcake/php-cors/actions) [](https://github.com/fruitcake/php-cors/actions) [](https://github.com/fruitcake/php-cors/actions/workflows/run-coverage.yml) [](http://choosealicense.com/licenses/mit/) [](https://packagist.org/packages/fruitcake/php-cors) [](https://packagist.org/packages/fruitcake/php-cors) [](https://fruitcake.nl/) Library and middleware enabling cross-origin resource sharing for your http-{foundation,kernel} using application. It attempts to implement the [W3C Recommendation] for cross-origin resource sharing. [W3C Recommendation]: http://www.w3.org/TR/cors/ > Note: This is a standalone fork of https://github.com/asm89/stack-cors and is compatible with the options for CorsService. ## Installation Require `fruitcake/php-cors` using composer. ## Usage This package can be used as a library. You can use it in your framework using: - [Stack middleware](http://stackphp.com/): https://github.com/asm89/stack-cors - [Laravel](https://laravel.com): https://github.com/fruitcake/laravel-cors ### Options | Option | Description | Default value | |------------------------|------------------------------------------------------------|---------------| | allowedMethods | Matches the request method. | `[]` | | allowedOrigins | Matches the request origin. | `[]` | | allowedOriginsPatterns | Matches the request origin with `preg_match`. | `[]` | | allowedHeaders | Sets the Access-Control-Allow-Headers response header. | `[]` | | exposedHeaders | Sets the Access-Control-Expose-Headers response header. | `[]` | | maxAge | Sets the Access-Control-Max-Age response header. | `0` | | supportsCredentials | Sets the Access-Control-Allow-Credentials header. | `false` | The _allowedMethods_ and _allowedHeaders_ options are case-insensitive. You don't need to provide both _allowedOrigins_ and _allowedOriginsPatterns_. If one of the strings passed matches, it is considered a valid origin. A wildcard in allowedOrigins will be converted to a pattern. If `['*']` is provided to _allowedMethods_, _allowedOrigins_ or _allowedHeaders_ all methods / origins / headers are allowed. > Note: Allowing a single static origin will improve cacheability. ### Example: using the library ```php <?php use Fruitcake\Cors\CorsService; $cors = new CorsService([ 'allowedHeaders' => ['x-allowed-header', 'x-other-allowed-header'], 'allowedMethods' => ['DELETE', 'GET', 'POST', 'PUT'], 'allowedOrigins' => ['http://localhost', 'https://*.example.com'], 'allowedOriginsPatterns' => ['/localhost:\d/'], 'exposedHeaders' => ['Content-Encoding'], 'maxAge' => 0, 'supportsCredentials' => false, ]); $cors->addActualRequestHeaders(Response $response, $origin); $cors->handlePreflightRequest(Request $request); $cors->isActualRequestAllowed(Request $request); $cors->isCorsRequest(Request $request); $cors->isPreflightRequest(Request $request); ``` ## License Released under the MIT License, see [LICENSE](LICENSE). > This package is split-off from https://github.com/asm89/stack-cors and developed as stand-alone library since 2022 home/easybachat/hisabat365.com/vendor/doctrine/inflector/README.md 0000644 00000001015 15060423770 0020577 0 ustar 00 # Doctrine Inflector Doctrine Inflector is a small library that can perform string manipulations with regard to uppercase/lowercase and singular/plural forms of words. [](https://github.com/doctrine/inflector/actions?query=workflow%3A%22Continuous+Integration%22+branch%3A4.0.x) [](https://codecov.io/gh/doctrine/inflector/branch/2.0.x) home/easybachat/hisabat365.com/vendor/laravel/sail/README.md 0000644 00000003722 15060500116 0017356 0 ustar 00 <p align="center"><img src="https://github.com/laravel/sail/raw/HEAD/art/logo.svg" alt="Logo Laravel Sail"></p> <p align="center"> <a href="https://packagist.org/packages/laravel/sail"> <img src="https://img.shields.io/packagist/dt/laravel/sail" alt="Total Downloads"> </a> <a href="https://packagist.org/packages/laravel/sail"> <img src="https://img.shields.io/packagist/v/laravel/sail" alt="Latest Stable Version"> </a> <a href="https://packagist.org/packages/laravel/sail"> <img src="https://img.shields.io/packagist/l/laravel/sail" alt="License"> </a> </p> ## Introduction Sail provides a Docker powered local development experience for Laravel that is compatible with macOS, Windows (WSL2), and Linux. Other than Docker, no software or libraries are required to be installed on your local computer before using Sail. Sail's simple CLI means you can start building your Laravel application without any previous Docker experience. #### Inspiration Laravel Sail is inspired by and derived from [Vessel](https://github.com/shipping-docker/vessel) by [Chris Fidao](https://github.com/fideloper). If you're looking for a thorough introduction to Docker, check out Chris' course: [Shipping Docker](https://serversforhackers.com/shipping-docker). ## Official Documentation Documentation for Sail can be found on the [Laravel website](https://laravel.com/docs/sail). ## Contributing Thank you for considering contributing to Sail! You can read the contribution guide [here](.github/CONTRIBUTING.md). ## Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). ## Security Vulnerabilities Please review [our security policy](https://github.com/laravel/sail/security/policy) on how to report security vulnerabilities. ## License Laravel Sail is open-sourced software licensed under the [MIT license](LICENSE.md). home/easybachat/hisabat365.com/vendor/maennchen/zipstream-php/README.md 0000644 00000017753 15060522505 0021556 0 ustar 00 # ZipStream-PHP [](https://github.com/maennchen/ZipStream-PHP/actions/workflows/branch_main.yml) [](https://coveralls.io/github/maennchen/ZipStream-PHP?branch=main) [](https://packagist.org/packages/maennchen/zipstream-php) [](https://packagist.org/packages/maennchen/zipstream-php) [](https://opencollective.com/zipstream) [](LICENSE) ## Unstable Branch The `main` branch is not stable. Please see the [releases](https://github.com/maennchen/ZipStream-PHP/releases) for a stable version. ## Overview A fast and simple streaming zip file downloader for PHP. Using this library will save you from having to write the Zip to disk. You can directly send it to the user, which is much faster. It can work with S3 buckets or any PSR7 Stream. Please see the [LICENSE](LICENSE) file for licensing and warranty information. ## Installation Simply add a dependency on maennchen/zipstream-php to your project's `composer.json` file if you use Composer to manage the dependencies of your project. Use following command to add the package to your project's dependencies: ```bash composer require maennchen/zipstream-php ``` ## Usage For detailed instructions, please check the [Documentation](https://maennchen.github.io/ZipStream-PHP/). ```php // Autoload the dependencies require 'vendor/autoload.php'; // create a new zipstream object $zip = new ZipStream\ZipStream( outputName: 'example.zip', // enable output of HTTP headers sendHttpHeaders: true, ); // create a file named 'hello.txt' $zip->addFile( fileName: 'hello.txt', data: 'This is the contents of hello.txt', ); // add a file named 'some_image.jpg' from a local file 'path/to/image.jpg' $zip->addFileFromPath( fileName: 'some_image.jpg', path: 'path/to/image.jpg', ); // finish the zip stream $zip->finish(); ``` ## Upgrade to version 3.0.0 ### General - Minimum PHP Version: `8.1` - Only 64bit Architecture is supported. - The class `ZipStream\Option\Method` has been replaced with the enum `ZipStream\CompressionMethod`. - Most clases have been flagged as `@internal` and should not be used from the outside. If you're using internal resources to extend this library, please open an issue so that a clean interface can be added & published. The externally available classes & enums are: - `ZipStream\CompressionMethod` - `ZipStream\Exception*` - `ZipStream\ZipStream` ### Archive Options - The class `ZipStream\Option\Archive` has been replaced in favor of named arguments in the `ZipStream\ZipStream` constuctor. - The archive options `largeFileSize` & `largeFileMethod` has been removed. If you want different `compressionMethods` based on the file size, you'll have to implement this yourself. - The archive option `httpHeaderCallback` changed the type from `callable` to `Closure`. - The archive option `zeroHeader` has been replaced with the option `defaultEnableZeroHeader` and can be overridden for every file. Its default value changed from `false` to `true`. - The archive option `statFiles` was removed since the library no longer checks filesizes this way. - The archive option `deflateLevel` has been replaced with the option `defaultDeflateLevel` and can be overridden for every file. - The first argument (`name`) of the `ZipStream\ZipStream` constuctor has been replaced with the named argument `outputName`. - Headers are now also sent if the `outputName` is empty. If you do not want to automatically send http headers, set `sendHttpHeaders` to `false`. ### File Options - The class `ZipStream\Option\File` has been replaced in favor of named arguments in the `ZipStream\ZipStream->addFile*` functions. - The file option `method` has been renamed to `compressionMethod`. - The file option `time` has been renamed to `lastModificationDateTime`. - The file option `size` has been renamed to `maxSize`. ## Upgrade to version 2.0.0 https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-200 ## Upgrade to version 1.0.0 https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-100 ## Contributing ZipStream-PHP is a collaborative project. Please take a look at the [.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) file. ## Version Support Versions are supported according to the table below. Please do not open any pull requests contradicting the current version support status. Careful: Always check the `README` on `main` for up-to-date information. | Version | New Features | Bugfixes | Security | |---------|--------------|----------|----------| | *3* | ✓ | ✓ | ✓ | | *2* | ✗ | ✓ | ✓ | | *1* | ✗ | ✗ | ✓ | | *0* | ✗ | ✗ | ✗ | This library aligns itself with the PHP core support. New features and bugfixes will only target PHP versions according to their current status. See: https://www.php.net/supported-versions.php ## About the Authors - Paul Duncan <pabs@pablotron.org> - https://pablotron.org/ - Jonatan Männchen <jonatan@maennchen.ch> - https://maennchen.dev - Jesse G. Donat <donatj@gmail.com> - https://donatstudios.com - Nicolas CARPi <nico-git@deltablot.email> - https://www.deltablot.com - Nik Barham <nik@brokencube.co.uk> - https://www.brokencube.co.uk ## Contributors ### Code Contributors This project exists thanks to all the people who contribute. [[Contribute](.github/CONTRIBUTING.md)]. <a href="https://github.com/maennchen/ZipStream-PHP/graphs/contributors"><img src="https://opencollective.com/zipstream/contributors.svg?width=890&button=false" /></a> ### Financial Contributors Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/zipstream/contribute)] #### Individuals <a href="https://opencollective.com/zipstream"><img src="https://opencollective.com/zipstream/individuals.svg?width=890"></a> #### Organizations Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/zipstream/contribute)] <a href="https://opencollective.com/zipstream/organization/0/website"><img src="https://opencollective.com/zipstream/organization/0/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/1/website"><img src="https://opencollective.com/zipstream/organization/1/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/2/website"><img src="https://opencollective.com/zipstream/organization/2/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/3/website"><img src="https://opencollective.com/zipstream/organization/3/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/4/website"><img src="https://opencollective.com/zipstream/organization/4/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/5/website"><img src="https://opencollective.com/zipstream/organization/5/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/6/website"><img src="https://opencollective.com/zipstream/organization/6/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/7/website"><img src="https://opencollective.com/zipstream/organization/7/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/8/website"><img src="https://opencollective.com/zipstream/organization/8/avatar.svg"></a> <a href="https://opencollective.com/zipstream/organization/9/website"><img src="https://opencollective.com/zipstream/organization/9/avatar.svg"></a> home/easybachat/hisabat365.com/vendor/psr/simple-cache/README.md 0000644 00000001063 15060547630 0020146 0 ustar 00 PHP FIG Simple Cache PSR ======================== This repository holds all interfaces related to PSR-16. Note that this is not a cache implementation of its own. It is merely an interface that describes a cache implementation. See [the specification](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-16-simple-cache.md) for more details. You can find implementations of the specification by looking for packages providing the [psr/simple-cache-implementation](https://packagist.org/providers/psr/simple-cache-implementation) virtual package. home/easybachat/hisabat365.com/vendor/laravel/prompts/README.md 0000644 00000003526 15060571032 0020141 0 ustar 00 <p align="center"><img width="386" height="68" src="/art/logo.svg" alt="Laravel Prompts"></p> <p align="center"> <a href="https://github.com/laravel/prompts/actions"><img src="https://github.com/laravel/prompts/workflows/tests/badge.svg" alt="Build Status"></a> <a href="https://packagist.org/packages/laravel/prompts"><img src="https://img.shields.io/packagist/dt/laravel/prompts" alt="Total Downloads"></a> <a href="https://packagist.org/packages/laravel/prompts"><img src="https://img.shields.io/packagist/v/laravel/prompts" alt="Latest Stable Version"></a> <a href="https://packagist.org/packages/laravel/prompts"><img src="https://img.shields.io/packagist/l/laravel/prompts" alt="License"></a> </p> ## Introduction Laravel Prompts is a PHP package for adding beautiful and user-friendly forms to your command-line applications, with browser-like features including placeholder text and validation. Laravel Prompts is perfect for accepting user input in your [Artisan console commands](https://laravel.com/docs/artisan#writing-commands), but it may also be used in any command-line PHP project. ## Official Documentation Documentation for Laravel Prompts can be found on the [Laravel website](https://laravel.com/docs/prompts). ## Contributing Thank you for considering contributing to Laravel Prompts! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). ## Code of Conduct In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). ## Security Vulnerabilities Please review [our security policy](https://github.com/laravel/prompts/security/policy) on how to report security vulnerabilities. ## License Laravel Prompts is open-sourced software licensed under the [MIT license](LICENSE.md). home/easybachat/hisabat365.com/vendor/symfony/css-selector/README.md 0000644 00000001260 15060633537 0021123 0 ustar 00 CssSelector Component ===================== The CssSelector component converts CSS selectors to XPath expressions. Resources --------- * [Documentation](https://symfony.com/doc/current/components/css_selector.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) Credits ------- This component is a port of the Python cssselect library [v0.7.1](https://github.com/SimonSapin/cssselect/releases/tag/v0.7.1), which is distributed under the BSD license. home/easybachat/hisabat365.com/vendor/dompdf/dompdf/README.md 0000644 00000016744 15060654343 0017546 0 ustar 00 Dompdf ====== [](https://github.com/dompdf/dompdf/actions/workflows/test.yml) [](https://packagist.org/packages/dompdf/dompdf) [](https://packagist.org/packages/dompdf/dompdf) [](https://packagist.org/packages/dompdf/dompdf) **Dompdf is an HTML to PDF converter** At its heart, dompdf is (mostly) a [CSS 2.1](http://www.w3.org/TR/CSS2/) compliant HTML layout and rendering engine written in PHP. It is a style-driven renderer: it will download and read external stylesheets, inline style tags, and the style attributes of individual HTML elements. It also supports most presentational HTML attributes. *This document applies to the latest stable code which may not reflect the current release. For released code please [navigate to the appropriate tag](https://github.com/dompdf/dompdf/tags).* ---- **Check out the [demo](http://eclecticgeek.com/dompdf/debug.php) and ask any question on [StackOverflow](https://stackoverflow.com/questions/tagged/dompdf) or in [Discussions](https://github.com/dompdf/dompdf/discussions).** Follow us on [](http://www.twitter.com/dompdf). --- ## Features * Handles most CSS 2.1 and a few CSS3 properties, including @import, @media & @page rules * Supports most presentational HTML 4.0 attributes * Supports external stylesheets, either local or through http/ftp (via fopen-wrappers) * Supports complex tables, including row & column spans, separate & collapsed border models, individual cell styling * Image support (gif, png (8, 24 and 32 bit with alpha channel), bmp & jpeg) * No dependencies on external PDF libraries, thanks to the R&OS PDF class * Inline PHP support * Basic SVG support (see "Limitations" below) ## Requirements * PHP version 7.1 or higher * DOM extension * MBString extension * php-font-lib * php-svg-lib Note that some required dependencies may have further dependencies (notably php-svg-lib requires sabberworm/php-css-parser). ### Recommendations * OPcache (OPcache, XCache, APC, etc.): improves performance * GD (for image processing) * IMagick or GMagick extension: improves image processing performance Visit the wiki for more information: https://github.com/dompdf/dompdf/wiki/Requirements ## About Fonts & Character Encoding PDF documents internally support the following fonts: Helvetica, Times-Roman, Courier, Zapf-Dingbats, & Symbol. These fonts only support Windows ANSI encoding. In order for a PDF to display characters that are not available in Windows ANSI, you must supply an external font. Dompdf will embed any referenced font in the PDF so long as it has been pre-loaded or is accessible to dompdf and reference in CSS @font-face rules. See the [font overview](https://github.com/dompdf/dompdf/wiki/About-Fonts-and-Character-Encoding) for more information on how to use fonts. The [DejaVu TrueType fonts](https://dejavu-fonts.github.io/) have been pre-installed to give dompdf decent Unicode character coverage by default. To use the DejaVu fonts reference the font in your stylesheet, e.g. `body { font-family: DejaVu Sans; }` (for DejaVu Sans). The following DejaVu 2.34 fonts are available: DejaVu Sans, DejaVu Serif, and DejaVu Sans Mono. ## Easy Installation ### Install with composer To install with [Composer](https://getcomposer.org/), simply require the latest version of this package. ```bash composer require dompdf/dompdf ``` Make sure that the autoload file from Composer is loaded. ```php // somewhere early in your project's loading, require the Composer autoloader // see: http://getcomposer.org/doc/00-intro.md require 'vendor/autoload.php'; ``` ### Download and install Download a packaged archive of dompdf and extract it into the directory where dompdf will reside * You can download stable copies of dompdf from https://github.com/dompdf/dompdf/releases * Or download a nightly (the latest, unreleased code) from http://eclecticgeek.com/dompdf Use the packaged release autoloader to load dompdf, libraries, and helper functions in your PHP: ```php // include autoloader require_once 'dompdf/autoload.inc.php'; ``` Note: packaged releases are named according using semantic versioning (_dompdf_MAJOR-MINOR-PATCH.zip_). So the 1.0.0 release would be dompdf_1-0-0.zip. This is the only download that includes the autoloader for Dompdf and all its dependencies. ### Install with git From the command line, switch to the directory where dompdf will reside and run the following commands: ```sh git clone https://github.com/dompdf/dompdf.git cd dompdf/lib git clone https://github.com/PhenX/php-font-lib.git php-font-lib cd php-font-lib git checkout 0.5.1 cd .. git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib cd php-svg-lib git checkout v0.3.2 cd .. git clone https://github.com/sabberworm/PHP-CSS-Parser.git php-css-parser cd php-css-parser git checkout 8.1.0 ``` Require dompdf and it's dependencies in your PHP. For details see the [autoloader in the utils project](https://github.com/dompdf/utils/blob/master/autoload.inc.php). ## Quick Start Just pass your HTML in to dompdf and stream the output: ```php // reference the Dompdf namespace use Dompdf\Dompdf; // instantiate and use the dompdf class $dompdf = new Dompdf(); $dompdf->loadHtml('hello world'); // (Optional) Setup the paper size and orientation $dompdf->setPaper('A4', 'landscape'); // Render the HTML as PDF $dompdf->render(); // Output the generated PDF to Browser $dompdf->stream(); ``` ### Setting Options Set options during dompdf instantiation: ```php use Dompdf\Dompdf; use Dompdf\Options; $options = new Options(); $options->set('defaultFont', 'Courier'); $dompdf = new Dompdf($options); ``` or at run time ```php use Dompdf\Dompdf; $dompdf = new Dompdf(); $options = $dompdf->getOptions(); $options->setDefaultFont('Courier'); $dompdf->setOptions($options); ``` See [Dompdf\Options](src/Options.php) for a list of available options. ### Resource Reference Requirements In order to protect potentially sensitive information Dompdf imposes restrictions on files referenced from the local file system or the web. Files accessed through web-based protocols have the following requirements: * The Dompdf option "isRemoteEnabled" must be set to "true" * PHP must either have the curl extension enabled or the allow_url_fopen setting set to true Files accessed through the local file system have the following requirement: * The file must fall within the path(s) specified for the Dompdf "chroot" option ## Limitations (Known Issues) * Table cells are not pageable, meaning a table row must fit on a single page. * Elements are rendered on the active page when they are parsed. * Embedding "raw" SVG's (`<svg><path...></svg>`) isn't working yet, you need to either link to an external SVG file, or use a DataURI like this: ```php $html = '<img src="data:image/svg+xml;base64,' . base64_encode($svg) . '" ...>'; ``` Watch https://github.com/dompdf/dompdf/issues/320 for progress * Does not support CSS flexbox. * Does not support CSS Grid. --- [](http://goo.gl/DSvWf) *If you find this project useful, please consider making a donation. Any funds donated will be used to help further development on this project.)* home/easybachat/hisabat365.com/vendor/doctrine/lexer/README.md 0000644 00000000557 15060665116 0017745 0 ustar 00 # Doctrine Lexer [](https://github.com/doctrine/lexer/actions) Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers. This lexer is used in Doctrine Annotations and in Doctrine ORM (DQL). https://www.doctrine-project.org/projects/lexer.html home/easybachat/hisabat365.com/vendor/symfony/polyfill-php80/README.md 0000644 00000001627 15060711241 0021300 0 ustar 00 Symfony Polyfill / Php80 ======================== This component provides features added to PHP 8.0 core: - [`Stringable`](https://php.net/stringable) interface - [`fdiv`](https://php.net/fdiv) - [`ValueError`](https://php.net/valueerror) class - [`UnhandledMatchError`](https://php.net/unhandledmatcherror) class - `FILTER_VALIDATE_BOOL` constant - [`get_debug_type`](https://php.net/get_debug_type) - [`PhpToken`](https://php.net/phptoken) class - [`preg_last_error_msg`](https://php.net/preg_last_error_msg) - [`str_contains`](https://php.net/str_contains) - [`str_starts_with`](https://php.net/str_starts_with) - [`str_ends_with`](https://php.net/str_ends_with) - [`get_resource_id`](https://php.net/get_resource_id) More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= This library is released under the [MIT license](LICENSE). home/easybachat/hisabat365.com/vendor/symfony/console/README.md 0000644 00000001416 15060732705 0020157 0 ustar 00 Console Component ================= The Console component eases the creation of beautiful and testable command line interfaces. Sponsor ------- Help Symfony by [sponsoring][1] its development! Resources --------- * [Documentation](https://symfony.com/doc/current/components/console.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) Credits ------- `Resources/bin/hiddeninput.exe` is a third party binary provided within this component. Find sources and license at https://github.com/Seldaek/hidden-input. [1]: https://symfony.com/sponsor home/easybachat/hisabat365.com/vendor/symfony/process/README.md 0000644 00000000730 15060734362 0020172 0 ustar 00 Process Component ================= The Process component executes commands in sub-processes. Resources --------- * [Documentation](https://symfony.com/doc/current/components/process.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) home/easybachat/hisabat365.com/vendor/firebase/php-jwt/README.md 0000644 00000032304 15060740370 0020157 0 ustar 00  [](https://packagist.org/packages/firebase/php-jwt) [](https://packagist.org/packages/firebase/php-jwt) [](https://packagist.org/packages/firebase/php-jwt) PHP-JWT ======= A simple library to encode and decode JSON Web Tokens (JWT) in PHP, conforming to [RFC 7519](https://tools.ietf.org/html/rfc7519). Installation ------------ Use composer to manage your dependencies and download PHP-JWT: ```bash composer require firebase/php-jwt ``` Optionally, install the `paragonie/sodium_compat` package from composer if your php env does not have libsodium installed: ```bash composer require paragonie/sodium_compat ``` Example ------- ```php use Firebase\JWT\JWT; use Firebase\JWT\Key; $key = 'example_key'; $payload = [ 'iss' => 'http://example.org', 'aud' => 'http://example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; /** * IMPORTANT: * You must specify supported algorithms for your application. See * https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40 * for a list of spec-compliant algorithms. */ $jwt = JWT::encode($payload, $key, 'HS256'); $decoded = JWT::decode($jwt, new Key($key, 'HS256')); print_r($decoded); // Pass a stdClass in as the third parameter to get the decoded header values $decoded = JWT::decode($jwt, new Key($key, 'HS256'), $headers = new stdClass()); print_r($headers); /* NOTE: This will now be an object instead of an associative array. To get an associative array, you will need to cast it as such: */ $decoded_array = (array) $decoded; /** * You can add a leeway to account for when there is a clock skew times between * the signing and verifying servers. It is recommended that this leeway should * not be bigger than a few minutes. * * Source: http://self-issued.info/docs/draft-ietf-oauth-json-web-token.html#nbfDef */ JWT::$leeway = 60; // $leeway in seconds $decoded = JWT::decode($jwt, new Key($key, 'HS256')); ``` Example encode/decode headers ------- Decoding the JWT headers without verifying the JWT first is NOT recommended, and is not supported by this library. This is because without verifying the JWT, the header values could have been tampered with. Any value pulled from an unverified header should be treated as if it could be any string sent in from an attacker. If this is something you still want to do in your application for whatever reason, it's possible to decode the header values manually simply by calling `json_decode` and `base64_decode` on the JWT header part: ```php use Firebase\JWT\JWT; $key = 'example_key'; $payload = [ 'iss' => 'http://example.org', 'aud' => 'http://example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; $headers = [ 'x-forwarded-for' => 'www.google.com' ]; // Encode headers in the JWT string $jwt = JWT::encode($payload, $key, 'HS256', null, $headers); // Decode headers from the JWT string WITHOUT validation // **IMPORTANT**: This operation is vulnerable to attacks, as the JWT has not yet been verified. // These headers could be any value sent by an attacker. list($headersB64, $payloadB64, $sig) = explode('.', $jwt); $decoded = json_decode(base64_decode($headersB64), true); print_r($decoded); ``` Example with RS256 (openssl) ---------------------------- ```php use Firebase\JWT\JWT; use Firebase\JWT\Key; $privateKey = <<<EOD -----BEGIN RSA PRIVATE KEY----- MIIEowIBAAKCAQEAuzWHNM5f+amCjQztc5QTfJfzCC5J4nuW+L/aOxZ4f8J3Frew M2c/dufrnmedsApb0By7WhaHlcqCh/ScAPyJhzkPYLae7bTVro3hok0zDITR8F6S JGL42JAEUk+ILkPI+DONM0+3vzk6Kvfe548tu4czCuqU8BGVOlnp6IqBHhAswNMM 78pos/2z0CjPM4tbeXqSTTbNkXRboxjU29vSopcT51koWOgiTf3C7nJUoMWZHZI5 HqnIhPAG9yv8HAgNk6CMk2CadVHDo4IxjxTzTTqo1SCSH2pooJl9O8at6kkRYsrZ WwsKlOFE2LUce7ObnXsYihStBUDoeBQlGG/BwQIDAQABAoIBAFtGaOqNKGwggn9k 6yzr6GhZ6Wt2rh1Xpq8XUz514UBhPxD7dFRLpbzCrLVpzY80LbmVGJ9+1pJozyWc VKeCeUdNwbqkr240Oe7GTFmGjDoxU+5/HX/SJYPpC8JZ9oqgEA87iz+WQX9hVoP2 oF6EB4ckDvXmk8FMwVZW2l2/kd5mrEVbDaXKxhvUDf52iVD+sGIlTif7mBgR99/b c3qiCnxCMmfYUnT2eh7Vv2LhCR/G9S6C3R4lA71rEyiU3KgsGfg0d82/XWXbegJW h3QbWNtQLxTuIvLq5aAryV3PfaHlPgdgK0ft6ocU2de2FagFka3nfVEyC7IUsNTK bq6nhAECgYEA7d/0DPOIaItl/8BWKyCuAHMss47j0wlGbBSHdJIiS55akMvnAG0M 39y22Qqfzh1at9kBFeYeFIIU82ZLF3xOcE3z6pJZ4Dyvx4BYdXH77odo9uVK9s1l 3T3BlMcqd1hvZLMS7dviyH79jZo4CXSHiKzc7pQ2YfK5eKxKqONeXuECgYEAyXlG vonaus/YTb1IBei9HwaccnQ/1HRn6MvfDjb7JJDIBhNClGPt6xRlzBbSZ73c2QEC 6Fu9h36K/HZ2qcLd2bXiNyhIV7b6tVKk+0Psoj0dL9EbhsD1OsmE1nTPyAc9XZbb OPYxy+dpBCUA8/1U9+uiFoCa7mIbWcSQ+39gHuECgYAz82pQfct30aH4JiBrkNqP nJfRq05UY70uk5k1u0ikLTRoVS/hJu/d4E1Kv4hBMqYCavFSwAwnvHUo51lVCr/y xQOVYlsgnwBg2MX4+GjmIkqpSVCC8D7j/73MaWb746OIYZervQ8dbKahi2HbpsiG 8AHcVSA/agxZr38qvWV54QKBgCD5TlDE8x18AuTGQ9FjxAAd7uD0kbXNz2vUYg9L hFL5tyL3aAAtUrUUw4xhd9IuysRhW/53dU+FsG2dXdJu6CxHjlyEpUJl2iZu/j15 YnMzGWHIEX8+eWRDsw/+Ujtko/B7TinGcWPz3cYl4EAOiCeDUyXnqnO1btCEUU44 DJ1BAoGBAJuPD27ErTSVtId90+M4zFPNibFP50KprVdc8CR37BE7r8vuGgNYXmnI RLnGP9p3pVgFCktORuYS2J/6t84I3+A17nEoB4xvhTLeAinAW/uTQOUmNicOP4Ek 2MsLL2kHgL8bLTmvXV4FX+PXphrDKg1XxzOYn0otuoqdAQrkK4og -----END RSA PRIVATE KEY----- EOD; $publicKey = <<<EOD -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzWHNM5f+amCjQztc5QT fJfzCC5J4nuW+L/aOxZ4f8J3FrewM2c/dufrnmedsApb0By7WhaHlcqCh/ScAPyJ hzkPYLae7bTVro3hok0zDITR8F6SJGL42JAEUk+ILkPI+DONM0+3vzk6Kvfe548t u4czCuqU8BGVOlnp6IqBHhAswNMM78pos/2z0CjPM4tbeXqSTTbNkXRboxjU29vS opcT51koWOgiTf3C7nJUoMWZHZI5HqnIhPAG9yv8HAgNk6CMk2CadVHDo4IxjxTz TTqo1SCSH2pooJl9O8at6kkRYsrZWwsKlOFE2LUce7ObnXsYihStBUDoeBQlGG/B wQIDAQAB -----END PUBLIC KEY----- EOD; $payload = [ 'iss' => 'example.org', 'aud' => 'example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; $jwt = JWT::encode($payload, $privateKey, 'RS256'); echo "Encode:\n" . print_r($jwt, true) . "\n"; $decoded = JWT::decode($jwt, new Key($publicKey, 'RS256')); /* NOTE: This will now be an object instead of an associative array. To get an associative array, you will need to cast it as such: */ $decoded_array = (array) $decoded; echo "Decode:\n" . print_r($decoded_array, true) . "\n"; ``` Example with a passphrase ------------------------- ```php use Firebase\JWT\JWT; use Firebase\JWT\Key; // Your passphrase $passphrase = '[YOUR_PASSPHRASE]'; // Your private key file with passphrase // Can be generated with "ssh-keygen -t rsa -m pem" $privateKeyFile = '/path/to/key-with-passphrase.pem'; // Create a private key of type "resource" $privateKey = openssl_pkey_get_private( file_get_contents($privateKeyFile), $passphrase ); $payload = [ 'iss' => 'example.org', 'aud' => 'example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; $jwt = JWT::encode($payload, $privateKey, 'RS256'); echo "Encode:\n" . print_r($jwt, true) . "\n"; // Get public key from the private key, or pull from from a file. $publicKey = openssl_pkey_get_details($privateKey)['key']; $decoded = JWT::decode($jwt, new Key($publicKey, 'RS256')); echo "Decode:\n" . print_r((array) $decoded, true) . "\n"; ``` Example with EdDSA (libsodium and Ed25519 signature) ---------------------------- ```php use Firebase\JWT\JWT; use Firebase\JWT\Key; // Public and private keys are expected to be Base64 encoded. The last // non-empty line is used so that keys can be generated with // sodium_crypto_sign_keypair(). The secret keys generated by other tools may // need to be adjusted to match the input expected by libsodium. $keyPair = sodium_crypto_sign_keypair(); $privateKey = base64_encode(sodium_crypto_sign_secretkey($keyPair)); $publicKey = base64_encode(sodium_crypto_sign_publickey($keyPair)); $payload = [ 'iss' => 'example.org', 'aud' => 'example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; $jwt = JWT::encode($payload, $privateKey, 'EdDSA'); echo "Encode:\n" . print_r($jwt, true) . "\n"; $decoded = JWT::decode($jwt, new Key($publicKey, 'EdDSA')); echo "Decode:\n" . print_r((array) $decoded, true) . "\n"; ```` Example with multiple keys -------------------------- ```php use Firebase\JWT\JWT; use Firebase\JWT\Key; // Example RSA keys from previous example // $privateKey1 = '...'; // $publicKey1 = '...'; // Example EdDSA keys from previous example // $privateKey2 = '...'; // $publicKey2 = '...'; $payload = [ 'iss' => 'example.org', 'aud' => 'example.com', 'iat' => 1356999524, 'nbf' => 1357000000 ]; $jwt1 = JWT::encode($payload, $privateKey1, 'RS256', 'kid1'); $jwt2 = JWT::encode($payload, $privateKey2, 'EdDSA', 'kid2'); echo "Encode 1:\n" . print_r($jwt1, true) . "\n"; echo "Encode 2:\n" . print_r($jwt2, true) . "\n"; $keys = [ 'kid1' => new Key($publicKey1, 'RS256'), 'kid2' => new Key($publicKey2, 'EdDSA'), ]; $decoded1 = JWT::decode($jwt1, $keys); $decoded2 = JWT::decode($jwt2, $keys); echo "Decode 1:\n" . print_r((array) $decoded1, true) . "\n"; echo "Decode 2:\n" . print_r((array) $decoded2, true) . "\n"; ``` Using JWKs ---------- ```php use Firebase\JWT\JWK; use Firebase\JWT\JWT; // Set of keys. The "keys" key is required. For example, the JSON response to // this endpoint: https://www.gstatic.com/iap/verify/public_key-jwk $jwks = ['keys' => []]; // JWK::parseKeySet($jwks) returns an associative array of **kid** to Firebase\JWT\Key // objects. Pass this as the second parameter to JWT::decode. JWT::decode($payload, JWK::parseKeySet($jwks)); ``` Using Cached Key Sets --------------------- The `CachedKeySet` class can be used to fetch and cache JWKS (JSON Web Key Sets) from a public URI. This has the following advantages: 1. The results are cached for performance. 2. If an unrecognized key is requested, the cache is refreshed, to accomodate for key rotation. 3. If rate limiting is enabled, the JWKS URI will not make more than 10 requests a second. ```php use Firebase\JWT\CachedKeySet; use Firebase\JWT\JWT; // The URI for the JWKS you wish to cache the results from $jwksUri = 'https://www.gstatic.com/iap/verify/public_key-jwk'; // Create an HTTP client (can be any PSR-7 compatible HTTP client) $httpClient = new GuzzleHttp\Client(); // Create an HTTP request factory (can be any PSR-17 compatible HTTP request factory) $httpFactory = new GuzzleHttp\Psr\HttpFactory(); // Create a cache item pool (can be any PSR-6 compatible cache item pool) $cacheItemPool = Phpfastcache\CacheManager::getInstance('files'); $keySet = new CachedKeySet( $jwksUri, $httpClient, $httpFactory, $cacheItemPool, null, // $expiresAfter int seconds to set the JWKS to expire true // $rateLimit true to enable rate limit of 10 RPS on lookup of invalid keys ); $jwt = 'eyJhbGci...'; // Some JWT signed by a key from the $jwkUri above $decoded = JWT::decode($jwt, $keySet); ``` Miscellaneous ------------- #### Exception Handling When a call to `JWT::decode` is invalid, it will throw one of the following exceptions: ```php use Firebase\JWT\JWT; use Firebase\JWT\SignatureInvalidException; use Firebase\JWT\BeforeValidException; use Firebase\JWT\ExpiredException; use DomainException; use InvalidArgumentException; use UnexpectedValueException; try { $decoded = JWT::decode($payload, $keys); } catch (InvalidArgumentException $e) { // provided key/key-array is empty or malformed. } catch (DomainException $e) { // provided algorithm is unsupported OR // provided key is invalid OR // unknown error thrown in openSSL or libsodium OR // libsodium is required but not available. } catch (SignatureInvalidException $e) { // provided JWT signature verification failed. } catch (BeforeValidException $e) { // provided JWT is trying to be used before "nbf" claim OR // provided JWT is trying to be used before "iat" claim. } catch (ExpiredException $e) { // provided JWT is trying to be used after "exp" claim. } catch (UnexpectedValueException $e) { // provided JWT is malformed OR // provided JWT is missing an algorithm / using an unsupported algorithm OR // provided JWT algorithm does not match provided key OR // provided key ID in key/key-array is empty or invalid. } ``` All exceptions in the `Firebase\JWT` namespace extend `UnexpectedValueException`, and can be simplified like this: ```php use Firebase\JWT\JWT; use UnexpectedValueException; try { $decoded = JWT::decode($payload, $keys); } catch (LogicException $e) { // errors having to do with environmental setup or malformed JWT Keys } catch (UnexpectedValueException $e) { // errors having to do with JWT signature and claims } ``` #### Casting to array The return value of `JWT::decode` is the generic PHP object `stdClass`. If you'd like to handle with arrays instead, you can do the following: ```php // return type is stdClass $decoded = JWT::decode($payload, $keys); // cast to array $decoded = json_decode(json_encode($decoded), true); ``` Tests ----- Run the tests using phpunit: ```bash $ pear install PHPUnit $ phpunit --configuration phpunit.xml.dist PHPUnit 3.7.10 by Sebastian Bergmann. ..... Time: 0 seconds, Memory: 2.50Mb OK (5 tests, 5 assertions) ``` New Lines in private keys ----- If your private key contains `\n` characters, be sure to wrap it in double quotes `""` and not single quotes `''` in order to properly interpret the escaped characters. License ------- [3-Clause BSD](http://opensource.org/licenses/BSD-3-Clause). home/easybachat/hisabat365.com/vendor/symfony/string/README.md 0000644 00000001053 15060745432 0020021 0 ustar 00 String Component ================ The String component provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way. Resources --------- * [Documentation](https://symfony.com/doc/current/components/string.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) home/easybachat/hisabat365.com/vendor/symfony/http-kernel/README.md 0000644 00000001244 15060750540 0020746 0 ustar 00 HttpKernel Component ==================== The HttpKernel component provides a structured process for converting a Request into a Response by making use of the EventDispatcher component. It's flexible enough to create full-stack frameworks, micro-frameworks or advanced CMS systems like Drupal. Resources --------- * [Documentation](https://symfony.com/doc/current/components/http_kernel.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) home/easybachat/hisabat365.com/vendor/symfony/polyfill-php72/README.md 0000644 00000002013 15060762476 0021307 0 ustar 00 Symfony Polyfill / Php72 ======================== This component provides functions added to PHP 7.2 core: - [`spl_object_id`](https://php.net/spl_object_id) - [`stream_isatty`](https://php.net/stream_isatty) And also functions added to PHP 7.2 mbstring: - [`mb_ord`](https://php.net/mb_ord) - [`mb_chr`](https://php.net/mb_chr) - [`mb_scrub`](https://php.net/mb_scrub) On Windows only: - [`sapi_windows_vt100_support`](https://php.net/sapi_windows_vt100_support) Moved to core since 7.2 (was in the optional XML extension earlier): - [`utf8_encode`](https://php.net/utf8_encode) - [`utf8_decode`](https://php.net/utf8_decode) Also, it provides constants added to PHP 7.2: - [`PHP_FLOAT_*`](https://php.net/reserved.constants#constant.php-float-dig) - [`PHP_OS_FAMILY`](https://php.net/reserved.constants#constant.php-os-family) More information can be found in the [main Polyfill README](https://github.com/symfony/polyfill/blob/main/README.md). License ======= This library is released under the [MIT license](LICENSE). home/easybachat/hisabat365.com/vendor/symfony/http-foundation/README.md 0000644 00000001016 15060763544 0021641 0 ustar 00 HttpFoundation Component ======================== The HttpFoundation component defines an object-oriented layer for the HTTP specification. Resources --------- * [Documentation](https://symfony.com/doc/current/components/http_foundation.html) * [Contributing](https://symfony.com/doc/current/contributing/index.html) * [Report issues](https://github.com/symfony/symfony/issues) and [send Pull Requests](https://github.com/symfony/symfony/pulls) in the [main Symfony repository](https://github.com/symfony/symfony) home/easybachat/hisabat365.com/vendor/sebastian/type/README.md 0000644 00000001754 15061012753 0017743 0 ustar 00 [](https://packagist.org/packages/sebastian/type) [](https://github.com/sebastianbergmann/type/actions) [](https://shepherd.dev/github/sebastianbergmann/type) [](https://codecov.io/gh/sebastianbergmann/type) # sebastian/type Collection of value objects that represent the types of the PHP type system. ## Installation You can add this library as a local, per-project dependency to your project using [Composer](https://getcomposer.org/): ``` composer require sebastian/type ``` If you only need this library during development, for instance to run your project's test suite, then you should add it as a development-time dependency: ``` composer require --dev sebastian/type ```
| ver. 1.4 |
Github
|
.
| PHP 8.2.29 | Ð“ÐµÐ½ÐµÑ€Ð°Ñ†Ð¸Ñ Ñтраницы: 0.69 |
proxy
|
phpinfo
|
ÐаÑтройка