├── assets ├── database │ └── migrations_data │ │ └── .gitkeep └── config │ └── data-migrations.php ├── .gitignore ├── src ├── Repositories │ └── DatabaseDataMigrationRepository.php ├── Console │ ├── Commands │ │ ├── InstallCommand.php │ │ ├── RollbackDataCommand.php │ │ ├── MakeMigrateDataCommand.php │ │ └── MigrateDataCommand.php │ └── Traits │ │ └── DataMigrationCommandTrait.php └── DataMigrationsServiceProvider.php ├── composer.json ├── LICENSE.txt ├── README.md └── composer.lock /assets/database/migrations_data/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | nbproject 2 | .AppleDouble 3 | /.idea 4 | /vendor 5 | -------------------------------------------------------------------------------- /src/Repositories/DatabaseDataMigrationRepository.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Repositories; 11 | 12 | use Illuminate\Database\Migrations\DatabaseMigrationRepository; 13 | 14 | /** 15 | * DatabaseDataMigrationRepository class. 16 | * 17 | * @author José Lorente 18 | */ 19 | class DatabaseDataMigrationRepository extends DatabaseMigrationRepository 20 | { 21 | 22 | } 23 | -------------------------------------------------------------------------------- /assets/config/data-migrations.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | return [ 10 | /* 11 | |-------------------------------------------------------------------------- 12 | | Table 13 | |-------------------------------------------------------------------------- 14 | | 15 | | The name of the table where the data migrations will be registered. Be 16 | | careful to not using the same name for the table as the normal migrations. 17 | */ 18 | 'table' => 'migrations_data' 19 | ]; 20 | -------------------------------------------------------------------------------- /src/Console/Commands/InstallCommand.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Console\Commands; 11 | 12 | use Illuminate\Database\Console\Migrations\InstallCommand as BaseInstallCommand; 13 | 14 | /** 15 | * InstallCommand class. 16 | * 17 | * @author José Lorente 18 | */ 19 | class InstallCommand extends BaseInstallCommand 20 | { 21 | /** 22 | * The console command name. 23 | */ 24 | protected $name = 'migrate-data:install'; 25 | 26 | /** 27 | * The console command description. 28 | */ 29 | protected $description = 'Create the data migration repository'; 30 | 31 | } 32 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coderan/laravel-data-migrations", 3 | "description": "An extension to allow you to separate data migrations from structure migrations", 4 | "license": "MIT", 5 | "authors": [{ 6 | "name": "Jose Lorente", 7 | "email": "jose.lorente.martin@gmail.com" 8 | }, { 9 | "name": "Eran Machiels", 10 | "email": "dev@eranmachiels.nl" 11 | }], 12 | "require": { 13 | "php": "^8.1", 14 | "illuminate/support": "^8.0|^9.0|^10.0", 15 | "illuminate/database": "^8.0|^9.0|^10.0" 16 | }, 17 | "autoload": { 18 | "psr-4": { 19 | "Coderan\\DataMigrations\\": "src/" 20 | } 21 | }, 22 | "extra": { 23 | "laravel": { 24 | "providers": [ 25 | "Coderan\\DataMigrations\\DataMigrationsServiceProvider" 26 | ] 27 | } 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /src/Console/Traits/DataMigrationCommandTrait.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Console\Traits; 11 | 12 | /** 13 | * DataMigrationCommandTrait trait. 14 | * 15 | * @author José Lorente 16 | */ 17 | trait DataMigrationCommandTrait 18 | { 19 | /** 20 | * Get the path to the migration directory. 21 | */ 22 | protected function getMigrationPath(): string 23 | { 24 | if (is_string($targetPath = $this->input->getOption('path'))) { 25 | return $this->laravel->basePath() . '/' . $targetPath; 26 | } else { 27 | return $this->laravel->databasePath() . DIRECTORY_SEPARATOR . 'migrations_data'; 28 | } 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /src/Console/Commands/RollbackDataCommand.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Console\Commands; 11 | 12 | use Illuminate\Database\Console\Migrations\RollbackCommand; 13 | use Coderan\DataMigrations\Console\Traits\DataMigrationCommandTrait; 14 | 15 | /** 16 | * RollbackDataCommand class. 17 | * 18 | * @author José Lorente 19 | */ 20 | class RollbackDataCommand extends RollbackCommand 21 | { 22 | use DataMigrationCommandTrait; 23 | 24 | /** 25 | * The name and signature of the console command. 26 | */ 27 | protected $name = 'migrate-data:rollback'; 28 | 29 | /** 30 | * The console command description. 31 | */ 32 | protected $description = 'Rollback the last database data migration'; 33 | 34 | } 35 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2018 José Lorente Martín 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /src/Console/Commands/MakeMigrateDataCommand.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Console\Commands; 11 | 12 | use Illuminate\Database\Console\Migrations\MigrateMakeCommand; 13 | use Coderan\DataMigrations\Console\Traits\DataMigrationCommandTrait; 14 | 15 | /** 16 | * MakeMigrateDataCommand class. 17 | * 18 | * @author José Lorente 19 | */ 20 | class MakeMigrateDataCommand extends MigrateMakeCommand 21 | { 22 | use DataMigrationCommandTrait; 23 | 24 | protected $signature = 'make:data-migration {name : The name of the migration.} 25 | {--create= : The table to be created.} 26 | {--table= : The table to migrate.} 27 | {--path= : The location where the migration file should be created.} 28 | {--realpath : Indicate any provided migration file paths are pre-resolved absolute paths} 29 | {--fullpath : Output the full path of the migration}'; 30 | protected $description = 'Create a new data migration file'; 31 | 32 | } 33 | -------------------------------------------------------------------------------- /src/Console/Commands/MigrateDataCommand.php: -------------------------------------------------------------------------------- 1 | 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations\Console\Commands; 11 | 12 | use Illuminate\Database\Console\Migrations\MigrateCommand; 13 | use Coderan\DataMigrations\Console\Traits\DataMigrationCommandTrait; 14 | 15 | /** 16 | * MigrateDataCommand class. 17 | * 18 | * @author José Lorente 19 | */ 20 | class MigrateDataCommand extends MigrateCommand 21 | { 22 | use DataMigrationCommandTrait; 23 | 24 | /** 25 | * The name and signature of the console command. 26 | */ 27 | protected $signature = 'migrate-data {--database= : The database connection to use.} 28 | {--force : Force the operation to run when in production} 29 | {--path=* : The path(s) to the migrations files to be executed} 30 | {--realpath : Indicate any provided migration file paths are pre-resolved absolute paths} 31 | {--pretend : Dump the SQL queries that would be run} 32 | {--seed : Indicates if the seed task should be re-run} 33 | {--step : Force the migrations to be run so they can be rolled back individually}'; 34 | 35 | /** 36 | * The console command description. 37 | */ 38 | protected $description = 'Run the data migrations'; 39 | 40 | /** 41 | * Prepare the migration database for running. 42 | */ 43 | protected function prepareDatabase(): void 44 | { 45 | $this->migrator->setConnection($this->option('database')); 46 | 47 | if (!$this->migrator->repositoryExists()) { 48 | $this->call( 49 | 'migrate-data:install', ['--database' => $this->option('database')] 50 | ); 51 | } 52 | } 53 | 54 | } 55 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Data Migrations for Laravel 2 | =========================== 3 | This extension allows you to separate data migrations from structure migrations. 4 | 5 | ## Installation 6 | 7 | The preferred way to install this extension is through [composer](http://getcomposer.org/download/). 8 | 9 | With Composer installed, you can then install the extension using the following commands: 10 | 11 | ```bash 12 | composer require coderan/laravel-data-migrations 13 | ``` 14 | 15 | or add 16 | 17 | ```json 18 | ... 19 | "require": { 20 | "coderan/laravel-data-migrations": "^1.0" 21 | } 22 | ``` 23 | 24 | to the ```require``` section of your `composer.json` file. 25 | 26 | ## Configuration 27 | 28 | 1. Register the ServiceProvider in your config/app.php service provider list. This step can be skipped in Laravel 5.5+ 29 | 30 | config/app.php 31 | ```php 32 | return [ 33 | //other stuff 34 | 'providers' => [ 35 | \Coderan\DataMigrations\DataMigrationsServiceProvider::class, 36 | ]; 37 | ]; 38 | ``` 39 | 40 | 2. Publish the new assets. 41 | ```shell 42 | php artisan vendor:publish --tag=data-migrations 43 | ``` 44 | This will create the default migrations directory and the config/data-migrations.php file. 45 | 46 | ## Usage 47 | 48 | By default, the table used to store the data migrations is "migrations_data" table. You 49 | can change the table on the config/data-migrations.php file. 50 | 51 | The data migrations will be stored in the migrations_data folder of the database path if no 52 | path is specified in the command execution. 53 | 54 | The available commands of the package are: 55 | 56 | *Create migration command* 57 | ```shell 58 | php artisan make:data-migration [name] [--path=] 59 | ``` 60 | The first time you use it the data migrations table will be created. 61 | 62 | *Run migration command* 63 | ```shell 64 | php artisan migrate-data [--path=] 65 | ``` 66 | 67 | *Rollback migration command* 68 | ```shell 69 | php artisan migrate-data:rollback [--path=] 70 | ``` 71 | 72 | The behavior of the migrations is the same as the regular migrations. 73 | 74 | ## License 75 | Copyright © 2021 José Lorente Martín , Eran Machiels . 76 | 77 | Licensed under the MIT license. See LICENSE.txt for details. 78 | -------------------------------------------------------------------------------- /src/DataMigrationsServiceProvider.php: -------------------------------------------------------------------------------- 1 | , Eran Machiels 5 | * @license The MIT License (MIT) 6 | * @copyright José Lorente, Eran Machiels 7 | * @version 1.0 8 | */ 9 | 10 | namespace Coderan\DataMigrations; 11 | 12 | use Illuminate\Contracts\Events\Dispatcher; 13 | use Illuminate\Support\ServiceProvider; 14 | use Illuminate\Database\Migrations\Migrator; 15 | use Coderan\DataMigrations\Console\Commands\InstallCommand as MigrateInstallCommand; 16 | use Coderan\DataMigrations\Console\Commands\MakeMigrateDataCommand; 17 | use Coderan\DataMigrations\Console\Commands\MigrateDataCommand; 18 | use Coderan\DataMigrations\Console\Commands\RollbackDataCommand; 19 | use Coderan\DataMigrations\Repositories\DatabaseDataMigrationRepository; 20 | 21 | /** 22 | * DataMigrationsServiceProvider class. 23 | * 24 | * @author José Lorente 25 | * @author Eran Machiels 26 | */ 27 | class DataMigrationsServiceProvider extends ServiceProvider 28 | { 29 | /** 30 | * The commands to be registered. 31 | * 32 | * @var array 33 | */ 34 | protected array $provides = [ 35 | 'migrator.data', 36 | 'migration.data.repository' 37 | ]; 38 | 39 | /** 40 | * The commands to be registered. 41 | * 42 | * @var array 43 | */ 44 | protected array $commands = [ 45 | 'command.migrate-data', 46 | 'command.migrate-data.install', 47 | 'command.migrate-data.rollback', 48 | 'command.migrate-data.make' 49 | ]; 50 | 51 | /** 52 | * Bootstrap the application services. 53 | */ 54 | public function boot(): void 55 | { 56 | if ($this->app->runningInConsole()) { 57 | $this->registerConfig(); 58 | $this->registerFolder(); 59 | } 60 | } 61 | 62 | /** 63 | * Registers the config file for the package. 64 | */ 65 | protected function registerConfig(): void 66 | { 67 | $this->publishes([ 68 | __DIR__ . '/../assets/config/data-migrations.php' => $this->app->configPath('data-migrations.php'), 69 | ], 'data-migrations'); 70 | } 71 | 72 | /** 73 | * Registers the default folder of where the data migrations will be created. 74 | */ 75 | protected function registerFolder(): void 76 | { 77 | $this->publishes([ 78 | __DIR__ . '/../assets/database/migrations_data' => $this->app->databasePath('migrations_data'), 79 | ], 'data-migrations'); 80 | } 81 | 82 | /** 83 | * Register the application services. 84 | */ 85 | public function register(): void 86 | { 87 | $this->bindRepository(); 88 | $this->bindMigrator(); 89 | $this->bindArtisanCommands(); 90 | 91 | $this->commands($this->commands); 92 | } 93 | 94 | /** 95 | * Binds the repository used by the data migrations. 96 | */ 97 | protected function bindRepository(): void 98 | { 99 | $this->app->singleton('migration.data.repository', function ($app) { 100 | $table = $app['config']->get('data-migrations.table'); 101 | 102 | return new DatabaseDataMigrationRepository($app['db'], $table); 103 | }); 104 | } 105 | 106 | /** 107 | * Binds the migrator used by the data migrations. 108 | */ 109 | protected function bindMigrator(): void 110 | { 111 | $this->app->singleton('migrator.data', function ($app) { 112 | $repository = $app['migration.data.repository']; 113 | 114 | return new Migrator($repository, $app['db'], $app['files']); 115 | }); 116 | } 117 | 118 | /** 119 | * Binds the commands to execute the data migrations. 120 | */ 121 | protected function bindArtisanCommands(): void 122 | { 123 | $this->app->singleton('command.migrate-data', function ($app) { 124 | return new MigrateDataCommand($app['migrator.data'], $this->app->make(Dispatcher::class)); 125 | }); 126 | $this->app->singleton('command.migrate-data.install', function ($app) { 127 | return new MigrateInstallCommand($app['migration.data.repository']); 128 | }); 129 | $this->app->singleton('command.migrate-data.rollback', function ($app) { 130 | return new RollbackDataCommand($app['migrator.data']); 131 | }); 132 | $this->app->singleton('command.migrate-data.make', function ($app) { 133 | // Once we have the migration creator registered, we will create the command 134 | // and inject the creator. The creator is responsible for the actual file 135 | // creation of the migrations, and may be extended by these developers. 136 | $creator = $app['migration.creator']; 137 | 138 | $composer = $app['composer']; 139 | 140 | return new MakeMigrateDataCommand($creator, $composer); 141 | }); 142 | } 143 | 144 | /** 145 | * Get the services provided by the provider. 146 | * 147 | * @return array 148 | */ 149 | public function provides(): array 150 | { 151 | return array_merge($this->provides, $this->commands); 152 | } 153 | 154 | } 155 | -------------------------------------------------------------------------------- /composer.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_readme": [ 3 | "This file locks the dependencies of your project to a known state", 4 | "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", 5 | "This file is @generated automatically" 6 | ], 7 | "content-hash": "cbd5c26701fbbc329e7c87e3f8d7975e", 8 | "packages": [ 9 | { 10 | "name": "brick/math", 11 | "version": "0.11.0", 12 | "source": { 13 | "type": "git", 14 | "url": "https://github.com/brick/math.git", 15 | "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478" 16 | }, 17 | "dist": { 18 | "type": "zip", 19 | "url": "https://api.github.com/repos/brick/math/zipball/0ad82ce168c82ba30d1c01ec86116ab52f589478", 20 | "reference": "0ad82ce168c82ba30d1c01ec86116ab52f589478", 21 | "shasum": "" 22 | }, 23 | "require": { 24 | "php": "^8.0" 25 | }, 26 | "require-dev": { 27 | "php-coveralls/php-coveralls": "^2.2", 28 | "phpunit/phpunit": "^9.0", 29 | "vimeo/psalm": "5.0.0" 30 | }, 31 | "type": "library", 32 | "autoload": { 33 | "psr-4": { 34 | "Brick\\Math\\": "src/" 35 | } 36 | }, 37 | "notification-url": "https://packagist.org/downloads/", 38 | "license": [ 39 | "MIT" 40 | ], 41 | "description": "Arbitrary-precision arithmetic library", 42 | "keywords": [ 43 | "Arbitrary-precision", 44 | "BigInteger", 45 | "BigRational", 46 | "arithmetic", 47 | "bigdecimal", 48 | "bignum", 49 | "brick", 50 | "math" 51 | ], 52 | "support": { 53 | "issues": "https://github.com/brick/math/issues", 54 | "source": "https://github.com/brick/math/tree/0.11.0" 55 | }, 56 | "funding": [ 57 | { 58 | "url": "https://github.com/BenMorel", 59 | "type": "github" 60 | } 61 | ], 62 | "time": "2023-01-15T23:15:59+00:00" 63 | }, 64 | { 65 | "name": "doctrine/inflector", 66 | "version": "2.0.6", 67 | "source": { 68 | "type": "git", 69 | "url": "https://github.com/doctrine/inflector.git", 70 | "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024" 71 | }, 72 | "dist": { 73 | "type": "zip", 74 | "url": "https://api.github.com/repos/doctrine/inflector/zipball/d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", 75 | "reference": "d9d313a36c872fd6ee06d9a6cbcf713eaa40f024", 76 | "shasum": "" 77 | }, 78 | "require": { 79 | "php": "^7.2 || ^8.0" 80 | }, 81 | "require-dev": { 82 | "doctrine/coding-standard": "^10", 83 | "phpstan/phpstan": "^1.8", 84 | "phpstan/phpstan-phpunit": "^1.1", 85 | "phpstan/phpstan-strict-rules": "^1.3", 86 | "phpunit/phpunit": "^8.5 || ^9.5", 87 | "vimeo/psalm": "^4.25" 88 | }, 89 | "type": "library", 90 | "autoload": { 91 | "psr-4": { 92 | "Doctrine\\Inflector\\": "lib/Doctrine/Inflector" 93 | } 94 | }, 95 | "notification-url": "https://packagist.org/downloads/", 96 | "license": [ 97 | "MIT" 98 | ], 99 | "authors": [ 100 | { 101 | "name": "Guilherme Blanco", 102 | "email": "guilhermeblanco@gmail.com" 103 | }, 104 | { 105 | "name": "Roman Borschel", 106 | "email": "roman@code-factory.org" 107 | }, 108 | { 109 | "name": "Benjamin Eberlei", 110 | "email": "kontakt@beberlei.de" 111 | }, 112 | { 113 | "name": "Jonathan Wage", 114 | "email": "jonwage@gmail.com" 115 | }, 116 | { 117 | "name": "Johannes Schmitt", 118 | "email": "schmittjoh@gmail.com" 119 | } 120 | ], 121 | "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.", 122 | "homepage": "https://www.doctrine-project.org/projects/inflector.html", 123 | "keywords": [ 124 | "inflection", 125 | "inflector", 126 | "lowercase", 127 | "manipulation", 128 | "php", 129 | "plural", 130 | "singular", 131 | "strings", 132 | "uppercase", 133 | "words" 134 | ], 135 | "support": { 136 | "issues": "https://github.com/doctrine/inflector/issues", 137 | "source": "https://github.com/doctrine/inflector/tree/2.0.6" 138 | }, 139 | "funding": [ 140 | { 141 | "url": "https://www.doctrine-project.org/sponsorship.html", 142 | "type": "custom" 143 | }, 144 | { 145 | "url": "https://www.patreon.com/phpdoctrine", 146 | "type": "patreon" 147 | }, 148 | { 149 | "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finflector", 150 | "type": "tidelift" 151 | } 152 | ], 153 | "time": "2022-10-20T09:10:12+00:00" 154 | }, 155 | { 156 | "name": "illuminate/collections", 157 | "version": "v10.0.0", 158 | "source": { 159 | "type": "git", 160 | "url": "https://github.com/illuminate/collections.git", 161 | "reference": "952ee463d17eb4dd3cd29516a2228b290c94e648" 162 | }, 163 | "dist": { 164 | "type": "zip", 165 | "url": "https://api.github.com/repos/illuminate/collections/zipball/952ee463d17eb4dd3cd29516a2228b290c94e648", 166 | "reference": "952ee463d17eb4dd3cd29516a2228b290c94e648", 167 | "shasum": "" 168 | }, 169 | "require": { 170 | "illuminate/conditionable": "^10.0", 171 | "illuminate/contracts": "^10.0", 172 | "illuminate/macroable": "^10.0", 173 | "php": "^8.1" 174 | }, 175 | "suggest": { 176 | "symfony/var-dumper": "Required to use the dump method (^6.2)." 177 | }, 178 | "type": "library", 179 | "extra": { 180 | "branch-alias": { 181 | "dev-master": "10.x-dev" 182 | } 183 | }, 184 | "autoload": { 185 | "files": [ 186 | "helpers.php" 187 | ], 188 | "psr-4": { 189 | "Illuminate\\Support\\": "" 190 | } 191 | }, 192 | "notification-url": "https://packagist.org/downloads/", 193 | "license": [ 194 | "MIT" 195 | ], 196 | "authors": [ 197 | { 198 | "name": "Taylor Otwell", 199 | "email": "taylor@laravel.com" 200 | } 201 | ], 202 | "description": "The Illuminate Collections package.", 203 | "homepage": "https://laravel.com", 204 | "support": { 205 | "issues": "https://github.com/laravel/framework/issues", 206 | "source": "https://github.com/laravel/framework" 207 | }, 208 | "time": "2023-02-14T15:00:37+00:00" 209 | }, 210 | { 211 | "name": "illuminate/conditionable", 212 | "version": "v10.0.0", 213 | "source": { 214 | "type": "git", 215 | "url": "https://github.com/illuminate/conditionable.git", 216 | "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009" 217 | }, 218 | "dist": { 219 | "type": "zip", 220 | "url": "https://api.github.com/repos/illuminate/conditionable/zipball/d0958e4741fc9d6f516a552060fd1b829a85e009", 221 | "reference": "d0958e4741fc9d6f516a552060fd1b829a85e009", 222 | "shasum": "" 223 | }, 224 | "require": { 225 | "php": "^8.0.2" 226 | }, 227 | "type": "library", 228 | "extra": { 229 | "branch-alias": { 230 | "dev-master": "10.x-dev" 231 | } 232 | }, 233 | "autoload": { 234 | "psr-4": { 235 | "Illuminate\\Support\\": "" 236 | } 237 | }, 238 | "notification-url": "https://packagist.org/downloads/", 239 | "license": [ 240 | "MIT" 241 | ], 242 | "authors": [ 243 | { 244 | "name": "Taylor Otwell", 245 | "email": "taylor@laravel.com" 246 | } 247 | ], 248 | "description": "The Illuminate Conditionable package.", 249 | "homepage": "https://laravel.com", 250 | "support": { 251 | "issues": "https://github.com/laravel/framework/issues", 252 | "source": "https://github.com/laravel/framework" 253 | }, 254 | "time": "2023-02-03T08:06:17+00:00" 255 | }, 256 | { 257 | "name": "illuminate/container", 258 | "version": "v10.0.0", 259 | "source": { 260 | "type": "git", 261 | "url": "https://github.com/illuminate/container.git", 262 | "reference": "fed3ee8f7389ad431833935d9ed665bc02ac2cca" 263 | }, 264 | "dist": { 265 | "type": "zip", 266 | "url": "https://api.github.com/repos/illuminate/container/zipball/fed3ee8f7389ad431833935d9ed665bc02ac2cca", 267 | "reference": "fed3ee8f7389ad431833935d9ed665bc02ac2cca", 268 | "shasum": "" 269 | }, 270 | "require": { 271 | "illuminate/contracts": "^10.0", 272 | "php": "^8.1", 273 | "psr/container": "^1.1.1|^2.0.1" 274 | }, 275 | "provide": { 276 | "psr/container-implementation": "1.1|2.0" 277 | }, 278 | "type": "library", 279 | "extra": { 280 | "branch-alias": { 281 | "dev-master": "10.x-dev" 282 | } 283 | }, 284 | "autoload": { 285 | "psr-4": { 286 | "Illuminate\\Container\\": "" 287 | } 288 | }, 289 | "notification-url": "https://packagist.org/downloads/", 290 | "license": [ 291 | "MIT" 292 | ], 293 | "authors": [ 294 | { 295 | "name": "Taylor Otwell", 296 | "email": "taylor@laravel.com" 297 | } 298 | ], 299 | "description": "The Illuminate Container package.", 300 | "homepage": "https://laravel.com", 301 | "support": { 302 | "issues": "https://github.com/laravel/framework/issues", 303 | "source": "https://github.com/laravel/framework" 304 | }, 305 | "time": "2023-01-25T18:11:51+00:00" 306 | }, 307 | { 308 | "name": "illuminate/contracts", 309 | "version": "v10.0.0", 310 | "source": { 311 | "type": "git", 312 | "url": "https://github.com/illuminate/contracts.git", 313 | "reference": "84f1da424ab9596a422ce118abd05667b0069624" 314 | }, 315 | "dist": { 316 | "type": "zip", 317 | "url": "https://api.github.com/repos/illuminate/contracts/zipball/84f1da424ab9596a422ce118abd05667b0069624", 318 | "reference": "84f1da424ab9596a422ce118abd05667b0069624", 319 | "shasum": "" 320 | }, 321 | "require": { 322 | "php": "^8.1", 323 | "psr/container": "^1.1.1|^2.0.1", 324 | "psr/simple-cache": "^1.0|^2.0|^3.0" 325 | }, 326 | "type": "library", 327 | "extra": { 328 | "branch-alias": { 329 | "dev-master": "10.x-dev" 330 | } 331 | }, 332 | "autoload": { 333 | "psr-4": { 334 | "Illuminate\\Contracts\\": "" 335 | } 336 | }, 337 | "notification-url": "https://packagist.org/downloads/", 338 | "license": [ 339 | "MIT" 340 | ], 341 | "authors": [ 342 | { 343 | "name": "Taylor Otwell", 344 | "email": "taylor@laravel.com" 345 | } 346 | ], 347 | "description": "The Illuminate Contracts package.", 348 | "homepage": "https://laravel.com", 349 | "support": { 350 | "issues": "https://github.com/laravel/framework/issues", 351 | "source": "https://github.com/laravel/framework" 352 | }, 353 | "time": "2023-02-14T15:00:37+00:00" 354 | }, 355 | { 356 | "name": "illuminate/database", 357 | "version": "v10.0.0", 358 | "source": { 359 | "type": "git", 360 | "url": "https://github.com/illuminate/database.git", 361 | "reference": "8afc62681b77080ae8b29298f2dd4ab2a6edd092" 362 | }, 363 | "dist": { 364 | "type": "zip", 365 | "url": "https://api.github.com/repos/illuminate/database/zipball/8afc62681b77080ae8b29298f2dd4ab2a6edd092", 366 | "reference": "8afc62681b77080ae8b29298f2dd4ab2a6edd092", 367 | "shasum": "" 368 | }, 369 | "require": { 370 | "brick/math": "^0.9.3|^0.10.2|^0.11", 371 | "ext-pdo": "*", 372 | "illuminate/collections": "^10.0", 373 | "illuminate/container": "^10.0", 374 | "illuminate/contracts": "^10.0", 375 | "illuminate/macroable": "^10.0", 376 | "illuminate/support": "^10.0", 377 | "php": "^8.1" 378 | }, 379 | "suggest": { 380 | "doctrine/dbal": "Required to rename columns and drop SQLite columns (^3.5.1).", 381 | "ext-filter": "Required to use the Postgres database driver.", 382 | "fakerphp/faker": "Required to use the eloquent factory builder (^1.21).", 383 | "illuminate/console": "Required to use the database commands (^10.0).", 384 | "illuminate/events": "Required to use the observers with Eloquent (^10.0).", 385 | "illuminate/filesystem": "Required to use the migrations (^10.0).", 386 | "illuminate/pagination": "Required to paginate the result set (^10.0).", 387 | "symfony/finder": "Required to use Eloquent model factories (^6.2)." 388 | }, 389 | "type": "library", 390 | "extra": { 391 | "branch-alias": { 392 | "dev-master": "10.x-dev" 393 | } 394 | }, 395 | "autoload": { 396 | "psr-4": { 397 | "Illuminate\\Database\\": "" 398 | } 399 | }, 400 | "notification-url": "https://packagist.org/downloads/", 401 | "license": [ 402 | "MIT" 403 | ], 404 | "authors": [ 405 | { 406 | "name": "Taylor Otwell", 407 | "email": "taylor@laravel.com" 408 | } 409 | ], 410 | "description": "The Illuminate Database package.", 411 | "homepage": "https://laravel.com", 412 | "keywords": [ 413 | "database", 414 | "laravel", 415 | "orm", 416 | "sql" 417 | ], 418 | "support": { 419 | "issues": "https://github.com/laravel/framework/issues", 420 | "source": "https://github.com/laravel/framework" 421 | }, 422 | "time": "2023-02-14T15:00:37+00:00" 423 | }, 424 | { 425 | "name": "illuminate/macroable", 426 | "version": "v10.0.0", 427 | "source": { 428 | "type": "git", 429 | "url": "https://github.com/illuminate/macroable.git", 430 | "reference": "7686fe9dba1e236e6f695a148b551264b9fd479e" 431 | }, 432 | "dist": { 433 | "type": "zip", 434 | "url": "https://api.github.com/repos/illuminate/macroable/zipball/7686fe9dba1e236e6f695a148b551264b9fd479e", 435 | "reference": "7686fe9dba1e236e6f695a148b551264b9fd479e", 436 | "shasum": "" 437 | }, 438 | "require": { 439 | "php": "^8.1" 440 | }, 441 | "type": "library", 442 | "extra": { 443 | "branch-alias": { 444 | "dev-master": "10.x-dev" 445 | } 446 | }, 447 | "autoload": { 448 | "psr-4": { 449 | "Illuminate\\Support\\": "" 450 | } 451 | }, 452 | "notification-url": "https://packagist.org/downloads/", 453 | "license": [ 454 | "MIT" 455 | ], 456 | "authors": [ 457 | { 458 | "name": "Taylor Otwell", 459 | "email": "taylor@laravel.com" 460 | } 461 | ], 462 | "description": "The Illuminate Macroable package.", 463 | "homepage": "https://laravel.com", 464 | "support": { 465 | "issues": "https://github.com/laravel/framework/issues", 466 | "source": "https://github.com/laravel/framework" 467 | }, 468 | "time": "2023-01-30T23:18:36+00:00" 469 | }, 470 | { 471 | "name": "illuminate/support", 472 | "version": "v10.0.0", 473 | "source": { 474 | "type": "git", 475 | "url": "https://github.com/illuminate/support.git", 476 | "reference": "c687049f21df2e14d0440ee1d2daff2c9c5b63a8" 477 | }, 478 | "dist": { 479 | "type": "zip", 480 | "url": "https://api.github.com/repos/illuminate/support/zipball/c687049f21df2e14d0440ee1d2daff2c9c5b63a8", 481 | "reference": "c687049f21df2e14d0440ee1d2daff2c9c5b63a8", 482 | "shasum": "" 483 | }, 484 | "require": { 485 | "doctrine/inflector": "^2.0", 486 | "ext-ctype": "*", 487 | "ext-filter": "*", 488 | "ext-mbstring": "*", 489 | "illuminate/collections": "^10.0", 490 | "illuminate/conditionable": "^10.0", 491 | "illuminate/contracts": "^10.0", 492 | "illuminate/macroable": "^10.0", 493 | "nesbot/carbon": "^2.62.1", 494 | "php": "^8.1", 495 | "voku/portable-ascii": "^2.0" 496 | }, 497 | "conflict": { 498 | "tightenco/collect": "<5.5.33" 499 | }, 500 | "suggest": { 501 | "illuminate/filesystem": "Required to use the composer class (^10.0).", 502 | "league/commonmark": "Required to use Str::markdown() and Stringable::markdown() (^2.0.2).", 503 | "ramsey/uuid": "Required to use Str::uuid() (^4.7).", 504 | "symfony/process": "Required to use the composer class (^6.2).", 505 | "symfony/uid": "Required to use Str::ulid() (^6.2).", 506 | "symfony/var-dumper": "Required to use the dd function (^6.2).", 507 | "vlucas/phpdotenv": "Required to use the Env class and env helper (^5.4.1)." 508 | }, 509 | "type": "library", 510 | "extra": { 511 | "branch-alias": { 512 | "dev-master": "10.x-dev" 513 | } 514 | }, 515 | "autoload": { 516 | "files": [ 517 | "helpers.php" 518 | ], 519 | "psr-4": { 520 | "Illuminate\\Support\\": "" 521 | } 522 | }, 523 | "notification-url": "https://packagist.org/downloads/", 524 | "license": [ 525 | "MIT" 526 | ], 527 | "authors": [ 528 | { 529 | "name": "Taylor Otwell", 530 | "email": "taylor@laravel.com" 531 | } 532 | ], 533 | "description": "The Illuminate Support package.", 534 | "homepage": "https://laravel.com", 535 | "support": { 536 | "issues": "https://github.com/laravel/framework/issues", 537 | "source": "https://github.com/laravel/framework" 538 | }, 539 | "time": "2023-02-14T15:00:37+00:00" 540 | }, 541 | { 542 | "name": "nesbot/carbon", 543 | "version": "2.66.0", 544 | "source": { 545 | "type": "git", 546 | "url": "https://github.com/briannesbitt/Carbon.git", 547 | "reference": "496712849902241f04902033b0441b269effe001" 548 | }, 549 | "dist": { 550 | "type": "zip", 551 | "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/496712849902241f04902033b0441b269effe001", 552 | "reference": "496712849902241f04902033b0441b269effe001", 553 | "shasum": "" 554 | }, 555 | "require": { 556 | "ext-json": "*", 557 | "php": "^7.1.8 || ^8.0", 558 | "symfony/polyfill-mbstring": "^1.0", 559 | "symfony/polyfill-php80": "^1.16", 560 | "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0" 561 | }, 562 | "require-dev": { 563 | "doctrine/dbal": "^2.0 || ^3.1.4", 564 | "doctrine/orm": "^2.7", 565 | "friendsofphp/php-cs-fixer": "^3.0", 566 | "kylekatarnls/multi-tester": "^2.0", 567 | "ondrejmirtes/better-reflection": "*", 568 | "phpmd/phpmd": "^2.9", 569 | "phpstan/extension-installer": "^1.0", 570 | "phpstan/phpstan": "^0.12.99 || ^1.7.14", 571 | "phpunit/php-file-iterator": "^2.0.5 || ^3.0.6", 572 | "phpunit/phpunit": "^7.5.20 || ^8.5.26 || ^9.5.20", 573 | "squizlabs/php_codesniffer": "^3.4" 574 | }, 575 | "bin": [ 576 | "bin/carbon" 577 | ], 578 | "type": "library", 579 | "extra": { 580 | "branch-alias": { 581 | "dev-3.x": "3.x-dev", 582 | "dev-master": "2.x-dev" 583 | }, 584 | "laravel": { 585 | "providers": [ 586 | "Carbon\\Laravel\\ServiceProvider" 587 | ] 588 | }, 589 | "phpstan": { 590 | "includes": [ 591 | "extension.neon" 592 | ] 593 | } 594 | }, 595 | "autoload": { 596 | "psr-4": { 597 | "Carbon\\": "src/Carbon/" 598 | } 599 | }, 600 | "notification-url": "https://packagist.org/downloads/", 601 | "license": [ 602 | "MIT" 603 | ], 604 | "authors": [ 605 | { 606 | "name": "Brian Nesbitt", 607 | "email": "brian@nesbot.com", 608 | "homepage": "https://markido.com" 609 | }, 610 | { 611 | "name": "kylekatarnls", 612 | "homepage": "https://github.com/kylekatarnls" 613 | } 614 | ], 615 | "description": "An API extension for DateTime that supports 281 different languages.", 616 | "homepage": "https://carbon.nesbot.com", 617 | "keywords": [ 618 | "date", 619 | "datetime", 620 | "time" 621 | ], 622 | "support": { 623 | "docs": "https://carbon.nesbot.com/docs", 624 | "issues": "https://github.com/briannesbitt/Carbon/issues", 625 | "source": "https://github.com/briannesbitt/Carbon" 626 | }, 627 | "funding": [ 628 | { 629 | "url": "https://github.com/sponsors/kylekatarnls", 630 | "type": "github" 631 | }, 632 | { 633 | "url": "https://opencollective.com/Carbon#sponsor", 634 | "type": "opencollective" 635 | }, 636 | { 637 | "url": "https://tidelift.com/subscription/pkg/packagist-nesbot-carbon?utm_source=packagist-nesbot-carbon&utm_medium=referral&utm_campaign=readme", 638 | "type": "tidelift" 639 | } 640 | ], 641 | "time": "2023-01-29T18:53:47+00:00" 642 | }, 643 | { 644 | "name": "psr/container", 645 | "version": "2.0.2", 646 | "source": { 647 | "type": "git", 648 | "url": "https://github.com/php-fig/container.git", 649 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963" 650 | }, 651 | "dist": { 652 | "type": "zip", 653 | "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963", 654 | "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963", 655 | "shasum": "" 656 | }, 657 | "require": { 658 | "php": ">=7.4.0" 659 | }, 660 | "type": "library", 661 | "extra": { 662 | "branch-alias": { 663 | "dev-master": "2.0.x-dev" 664 | } 665 | }, 666 | "autoload": { 667 | "psr-4": { 668 | "Psr\\Container\\": "src/" 669 | } 670 | }, 671 | "notification-url": "https://packagist.org/downloads/", 672 | "license": [ 673 | "MIT" 674 | ], 675 | "authors": [ 676 | { 677 | "name": "PHP-FIG", 678 | "homepage": "https://www.php-fig.org/" 679 | } 680 | ], 681 | "description": "Common Container Interface (PHP FIG PSR-11)", 682 | "homepage": "https://github.com/php-fig/container", 683 | "keywords": [ 684 | "PSR-11", 685 | "container", 686 | "container-interface", 687 | "container-interop", 688 | "psr" 689 | ], 690 | "support": { 691 | "issues": "https://github.com/php-fig/container/issues", 692 | "source": "https://github.com/php-fig/container/tree/2.0.2" 693 | }, 694 | "time": "2021-11-05T16:47:00+00:00" 695 | }, 696 | { 697 | "name": "psr/simple-cache", 698 | "version": "3.0.0", 699 | "source": { 700 | "type": "git", 701 | "url": "https://github.com/php-fig/simple-cache.git", 702 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" 703 | }, 704 | "dist": { 705 | "type": "zip", 706 | "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", 707 | "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", 708 | "shasum": "" 709 | }, 710 | "require": { 711 | "php": ">=8.0.0" 712 | }, 713 | "type": "library", 714 | "extra": { 715 | "branch-alias": { 716 | "dev-master": "3.0.x-dev" 717 | } 718 | }, 719 | "autoload": { 720 | "psr-4": { 721 | "Psr\\SimpleCache\\": "src/" 722 | } 723 | }, 724 | "notification-url": "https://packagist.org/downloads/", 725 | "license": [ 726 | "MIT" 727 | ], 728 | "authors": [ 729 | { 730 | "name": "PHP-FIG", 731 | "homepage": "https://www.php-fig.org/" 732 | } 733 | ], 734 | "description": "Common interfaces for simple caching", 735 | "keywords": [ 736 | "cache", 737 | "caching", 738 | "psr", 739 | "psr-16", 740 | "simple-cache" 741 | ], 742 | "support": { 743 | "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" 744 | }, 745 | "time": "2021-10-29T13:26:27+00:00" 746 | }, 747 | { 748 | "name": "symfony/polyfill-mbstring", 749 | "version": "v1.27.0", 750 | "source": { 751 | "type": "git", 752 | "url": "https://github.com/symfony/polyfill-mbstring.git", 753 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534" 754 | }, 755 | "dist": { 756 | "type": "zip", 757 | "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/8ad114f6b39e2c98a8b0e3bd907732c207c2b534", 758 | "reference": "8ad114f6b39e2c98a8b0e3bd907732c207c2b534", 759 | "shasum": "" 760 | }, 761 | "require": { 762 | "php": ">=7.1" 763 | }, 764 | "provide": { 765 | "ext-mbstring": "*" 766 | }, 767 | "suggest": { 768 | "ext-mbstring": "For best performance" 769 | }, 770 | "type": "library", 771 | "extra": { 772 | "branch-alias": { 773 | "dev-main": "1.27-dev" 774 | }, 775 | "thanks": { 776 | "name": "symfony/polyfill", 777 | "url": "https://github.com/symfony/polyfill" 778 | } 779 | }, 780 | "autoload": { 781 | "files": [ 782 | "bootstrap.php" 783 | ], 784 | "psr-4": { 785 | "Symfony\\Polyfill\\Mbstring\\": "" 786 | } 787 | }, 788 | "notification-url": "https://packagist.org/downloads/", 789 | "license": [ 790 | "MIT" 791 | ], 792 | "authors": [ 793 | { 794 | "name": "Nicolas Grekas", 795 | "email": "p@tchwork.com" 796 | }, 797 | { 798 | "name": "Symfony Community", 799 | "homepage": "https://symfony.com/contributors" 800 | } 801 | ], 802 | "description": "Symfony polyfill for the Mbstring extension", 803 | "homepage": "https://symfony.com", 804 | "keywords": [ 805 | "compatibility", 806 | "mbstring", 807 | "polyfill", 808 | "portable", 809 | "shim" 810 | ], 811 | "support": { 812 | "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.27.0" 813 | }, 814 | "funding": [ 815 | { 816 | "url": "https://symfony.com/sponsor", 817 | "type": "custom" 818 | }, 819 | { 820 | "url": "https://github.com/fabpot", 821 | "type": "github" 822 | }, 823 | { 824 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 825 | "type": "tidelift" 826 | } 827 | ], 828 | "time": "2022-11-03T14:55:06+00:00" 829 | }, 830 | { 831 | "name": "symfony/polyfill-php80", 832 | "version": "v1.27.0", 833 | "source": { 834 | "type": "git", 835 | "url": "https://github.com/symfony/polyfill-php80.git", 836 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936" 837 | }, 838 | "dist": { 839 | "type": "zip", 840 | "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", 841 | "reference": "7a6ff3f1959bb01aefccb463a0f2cd3d3d2fd936", 842 | "shasum": "" 843 | }, 844 | "require": { 845 | "php": ">=7.1" 846 | }, 847 | "type": "library", 848 | "extra": { 849 | "branch-alias": { 850 | "dev-main": "1.27-dev" 851 | }, 852 | "thanks": { 853 | "name": "symfony/polyfill", 854 | "url": "https://github.com/symfony/polyfill" 855 | } 856 | }, 857 | "autoload": { 858 | "files": [ 859 | "bootstrap.php" 860 | ], 861 | "psr-4": { 862 | "Symfony\\Polyfill\\Php80\\": "" 863 | }, 864 | "classmap": [ 865 | "Resources/stubs" 866 | ] 867 | }, 868 | "notification-url": "https://packagist.org/downloads/", 869 | "license": [ 870 | "MIT" 871 | ], 872 | "authors": [ 873 | { 874 | "name": "Ion Bazan", 875 | "email": "ion.bazan@gmail.com" 876 | }, 877 | { 878 | "name": "Nicolas Grekas", 879 | "email": "p@tchwork.com" 880 | }, 881 | { 882 | "name": "Symfony Community", 883 | "homepage": "https://symfony.com/contributors" 884 | } 885 | ], 886 | "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", 887 | "homepage": "https://symfony.com", 888 | "keywords": [ 889 | "compatibility", 890 | "polyfill", 891 | "portable", 892 | "shim" 893 | ], 894 | "support": { 895 | "source": "https://github.com/symfony/polyfill-php80/tree/v1.27.0" 896 | }, 897 | "funding": [ 898 | { 899 | "url": "https://symfony.com/sponsor", 900 | "type": "custom" 901 | }, 902 | { 903 | "url": "https://github.com/fabpot", 904 | "type": "github" 905 | }, 906 | { 907 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 908 | "type": "tidelift" 909 | } 910 | ], 911 | "time": "2022-11-03T14:55:06+00:00" 912 | }, 913 | { 914 | "name": "symfony/translation", 915 | "version": "v6.2.5", 916 | "source": { 917 | "type": "git", 918 | "url": "https://github.com/symfony/translation.git", 919 | "reference": "60556925a703cfbc1581cde3b3f35b0bb0ea904c" 920 | }, 921 | "dist": { 922 | "type": "zip", 923 | "url": "https://api.github.com/repos/symfony/translation/zipball/60556925a703cfbc1581cde3b3f35b0bb0ea904c", 924 | "reference": "60556925a703cfbc1581cde3b3f35b0bb0ea904c", 925 | "shasum": "" 926 | }, 927 | "require": { 928 | "php": ">=8.1", 929 | "symfony/polyfill-mbstring": "~1.0", 930 | "symfony/translation-contracts": "^2.3|^3.0" 931 | }, 932 | "conflict": { 933 | "symfony/config": "<5.4", 934 | "symfony/console": "<5.4", 935 | "symfony/dependency-injection": "<5.4", 936 | "symfony/http-kernel": "<5.4", 937 | "symfony/twig-bundle": "<5.4", 938 | "symfony/yaml": "<5.4" 939 | }, 940 | "provide": { 941 | "symfony/translation-implementation": "2.3|3.0" 942 | }, 943 | "require-dev": { 944 | "nikic/php-parser": "^4.13", 945 | "psr/log": "^1|^2|^3", 946 | "symfony/config": "^5.4|^6.0", 947 | "symfony/console": "^5.4|^6.0", 948 | "symfony/dependency-injection": "^5.4|^6.0", 949 | "symfony/finder": "^5.4|^6.0", 950 | "symfony/http-client-contracts": "^1.1|^2.0|^3.0", 951 | "symfony/http-kernel": "^5.4|^6.0", 952 | "symfony/intl": "^5.4|^6.0", 953 | "symfony/polyfill-intl-icu": "^1.21", 954 | "symfony/routing": "^5.4|^6.0", 955 | "symfony/service-contracts": "^1.1.2|^2|^3", 956 | "symfony/yaml": "^5.4|^6.0" 957 | }, 958 | "suggest": { 959 | "nikic/php-parser": "To use PhpAstExtractor", 960 | "psr/log-implementation": "To use logging capability in translator", 961 | "symfony/config": "", 962 | "symfony/yaml": "" 963 | }, 964 | "type": "library", 965 | "autoload": { 966 | "files": [ 967 | "Resources/functions.php" 968 | ], 969 | "psr-4": { 970 | "Symfony\\Component\\Translation\\": "" 971 | }, 972 | "exclude-from-classmap": [ 973 | "/Tests/" 974 | ] 975 | }, 976 | "notification-url": "https://packagist.org/downloads/", 977 | "license": [ 978 | "MIT" 979 | ], 980 | "authors": [ 981 | { 982 | "name": "Fabien Potencier", 983 | "email": "fabien@symfony.com" 984 | }, 985 | { 986 | "name": "Symfony Community", 987 | "homepage": "https://symfony.com/contributors" 988 | } 989 | ], 990 | "description": "Provides tools to internationalize your application", 991 | "homepage": "https://symfony.com", 992 | "support": { 993 | "source": "https://github.com/symfony/translation/tree/v6.2.5" 994 | }, 995 | "funding": [ 996 | { 997 | "url": "https://symfony.com/sponsor", 998 | "type": "custom" 999 | }, 1000 | { 1001 | "url": "https://github.com/fabpot", 1002 | "type": "github" 1003 | }, 1004 | { 1005 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1006 | "type": "tidelift" 1007 | } 1008 | ], 1009 | "time": "2023-01-05T07:00:27+00:00" 1010 | }, 1011 | { 1012 | "name": "symfony/translation-contracts", 1013 | "version": "v3.2.0", 1014 | "source": { 1015 | "type": "git", 1016 | "url": "https://github.com/symfony/translation-contracts.git", 1017 | "reference": "68cce71402305a015f8c1589bfada1280dc64fe7" 1018 | }, 1019 | "dist": { 1020 | "type": "zip", 1021 | "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/68cce71402305a015f8c1589bfada1280dc64fe7", 1022 | "reference": "68cce71402305a015f8c1589bfada1280dc64fe7", 1023 | "shasum": "" 1024 | }, 1025 | "require": { 1026 | "php": ">=8.1" 1027 | }, 1028 | "suggest": { 1029 | "symfony/translation-implementation": "" 1030 | }, 1031 | "type": "library", 1032 | "extra": { 1033 | "branch-alias": { 1034 | "dev-main": "3.3-dev" 1035 | }, 1036 | "thanks": { 1037 | "name": "symfony/contracts", 1038 | "url": "https://github.com/symfony/contracts" 1039 | } 1040 | }, 1041 | "autoload": { 1042 | "psr-4": { 1043 | "Symfony\\Contracts\\Translation\\": "" 1044 | }, 1045 | "exclude-from-classmap": [ 1046 | "/Test/" 1047 | ] 1048 | }, 1049 | "notification-url": "https://packagist.org/downloads/", 1050 | "license": [ 1051 | "MIT" 1052 | ], 1053 | "authors": [ 1054 | { 1055 | "name": "Nicolas Grekas", 1056 | "email": "p@tchwork.com" 1057 | }, 1058 | { 1059 | "name": "Symfony Community", 1060 | "homepage": "https://symfony.com/contributors" 1061 | } 1062 | ], 1063 | "description": "Generic abstractions related to translation", 1064 | "homepage": "https://symfony.com", 1065 | "keywords": [ 1066 | "abstractions", 1067 | "contracts", 1068 | "decoupling", 1069 | "interfaces", 1070 | "interoperability", 1071 | "standards" 1072 | ], 1073 | "support": { 1074 | "source": "https://github.com/symfony/translation-contracts/tree/v3.2.0" 1075 | }, 1076 | "funding": [ 1077 | { 1078 | "url": "https://symfony.com/sponsor", 1079 | "type": "custom" 1080 | }, 1081 | { 1082 | "url": "https://github.com/fabpot", 1083 | "type": "github" 1084 | }, 1085 | { 1086 | "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", 1087 | "type": "tidelift" 1088 | } 1089 | ], 1090 | "time": "2022-11-25T10:21:52+00:00" 1091 | }, 1092 | { 1093 | "name": "voku/portable-ascii", 1094 | "version": "2.0.1", 1095 | "source": { 1096 | "type": "git", 1097 | "url": "https://github.com/voku/portable-ascii.git", 1098 | "reference": "b56450eed252f6801410d810c8e1727224ae0743" 1099 | }, 1100 | "dist": { 1101 | "type": "zip", 1102 | "url": "https://api.github.com/repos/voku/portable-ascii/zipball/b56450eed252f6801410d810c8e1727224ae0743", 1103 | "reference": "b56450eed252f6801410d810c8e1727224ae0743", 1104 | "shasum": "" 1105 | }, 1106 | "require": { 1107 | "php": ">=7.0.0" 1108 | }, 1109 | "require-dev": { 1110 | "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0" 1111 | }, 1112 | "suggest": { 1113 | "ext-intl": "Use Intl for transliterator_transliterate() support" 1114 | }, 1115 | "type": "library", 1116 | "autoload": { 1117 | "psr-4": { 1118 | "voku\\": "src/voku/" 1119 | } 1120 | }, 1121 | "notification-url": "https://packagist.org/downloads/", 1122 | "license": [ 1123 | "MIT" 1124 | ], 1125 | "authors": [ 1126 | { 1127 | "name": "Lars Moelleken", 1128 | "homepage": "http://www.moelleken.org/" 1129 | } 1130 | ], 1131 | "description": "Portable ASCII library - performance optimized (ascii) string functions for php.", 1132 | "homepage": "https://github.com/voku/portable-ascii", 1133 | "keywords": [ 1134 | "ascii", 1135 | "clean", 1136 | "php" 1137 | ], 1138 | "support": { 1139 | "issues": "https://github.com/voku/portable-ascii/issues", 1140 | "source": "https://github.com/voku/portable-ascii/tree/2.0.1" 1141 | }, 1142 | "funding": [ 1143 | { 1144 | "url": "https://www.paypal.me/moelleken", 1145 | "type": "custom" 1146 | }, 1147 | { 1148 | "url": "https://github.com/voku", 1149 | "type": "github" 1150 | }, 1151 | { 1152 | "url": "https://opencollective.com/portable-ascii", 1153 | "type": "open_collective" 1154 | }, 1155 | { 1156 | "url": "https://www.patreon.com/voku", 1157 | "type": "patreon" 1158 | }, 1159 | { 1160 | "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii", 1161 | "type": "tidelift" 1162 | } 1163 | ], 1164 | "time": "2022-03-08T17:03:00+00:00" 1165 | } 1166 | ], 1167 | "packages-dev": [], 1168 | "aliases": [], 1169 | "minimum-stability": "stable", 1170 | "stability-flags": [], 1171 | "prefer-stable": false, 1172 | "prefer-lowest": false, 1173 | "platform": { 1174 | "php": "^8.1" 1175 | }, 1176 | "platform-dev": [], 1177 | "plugin-api-version": "2.3.0" 1178 | } 1179 | --------------------------------------------------------------------------------