diff --git a/.travis.yml b/.travis.yml index a07edd1..f950628 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: php php: - - "7.4" + - "8.2" before_script: - curl -s https://getcomposer.org/installer | php && php composer.phar update diff --git a/Dockerfile b/Dockerfile index a46171d..c7c5c2c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM php:8.2-apache LABEL maintainer="Mark Tompsett " -ENV REFRESHED_AT 2021-06-10 +ENV REFRESHED_AT 2023-07-12 # Make sure apt has current list/updates RUN apt-get update -y \ diff --git a/SilMock/tests/Google/Service/DirectoryTest.php b/SilMock/tests/Google/Service/DirectoryTest.php index 9457169..df20412 100644 --- a/SilMock/tests/Google/Service/DirectoryTest.php +++ b/SilMock/tests/Google/Service/DirectoryTest.php @@ -14,12 +14,12 @@ class DirectoryTest extends TestCase { use SampleUser; - public $dataFile = DATAFILE2; + public string $dataFile = DATAFILE2; - public function getProperties($object, $propKeys = null) + public function getProperties($object, $propKeys = null): array { if ($propKeys === null) { - $propKeys = array( + $propKeys = [ "changePasswordAtNextLogin", "hashFunction", "id", @@ -29,10 +29,10 @@ public function getProperties($object, $propKeys = null) "isEnforcedIn2Sv", "isEnrolledIn2Sv", "aliases", - ); + ]; } - $outArray = array(); + $outArray = []; foreach ($propKeys as $key) { $outArray[$key] = $object->$key; @@ -43,13 +43,13 @@ public function getProperties($object, $propKeys = null) public function testDirectory() { - $expectedKeys = array( + $expectedKeys = [ 'asps', 'users', 'users_aliases', 'verificationCodes', 'tokens', - ); + ]; $errorMessage = " *** Directory was not initialized properly"; $directory = new Directory('whatever', $this->dataFile); @@ -64,10 +64,10 @@ public function testDirectory() public function testUsersInsert() { - $newUser = $this->setupSampleUser($this->dataFile, false); + $newUser = $this->setupSampleUser($this->dataFile); $results = $this->getProperties($newUser); - $expected = array( + $expected = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -76,8 +76,8 @@ public function testUsersInsert() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => null, - ); + "aliases" => [], + ]; $msg = " *** Bad returned user"; $this->assertEquals($expected, $results, $msg); @@ -88,7 +88,7 @@ public function testUsersInsert() $dataObj = json_decode($lastDataEntry['data']); $results = $this->getProperties($dataObj); - $expected = array ( + $expected = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -97,19 +97,19 @@ public function testUsersInsert() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => null, - ); + "aliases" => [], + ]; $msg = " *** Bad data from sqlite database"; $this->assertEquals($expected, $results, $msg); } - public function testUsersInsert_WithAlias() + public function testUsersInsert_WithAliases() { $newUser = $this->setupSampleUser($this->dataFile, true); $results = $this->getProperties($newUser); - $expected = array( + $expected = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -118,18 +118,8 @@ public function testUsersInsert_WithAlias() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => array( - 'etag' => null, - 'kind' => null, - 'aliases' => array( - array( - 'alias' => "user_alias1@sil.org", - 'etag' => null, - 'id' => null, - 'kind' => 'personal', - 'primaryEmail' => 'user_test1@sil.org')), - ), - ); + "aliases" => ["user_alias1@sil.org", "user_alias2@sil.org"], + ]; $msg = " *** Bad returned user"; $this->assertEquals($expected, $results, $msg); @@ -137,25 +127,23 @@ public function testUsersInsert_WithAlias() $sqliteData = $sqliteClass->getData('', ''); $sqliteDataValues = array_values($sqliteData); $lastDataEntry = end($sqliteDataValues); - $lastAliases = json_decode($lastDataEntry['data'], true); - - $results = $lastAliases['aliases']['aliases']; - - $expected = array( - array( - "alias" => "user_alias1@sil.org", - "kind" => "personal", - "primaryEmail" => "user_test1@sil.org", - 'etag' => null, - 'id' => null, - ), - ); + $lastAlias = json_decode($lastDataEntry['data'], true); + + $results = $lastAlias; + + $expected = [ + "alias" => "user_alias2@sil.org", + "kind" => "personal", + "primaryEmail" => "user_test1@sil.org", + 'etag' => null, + 'id' => null, + ]; $msg = " *** Bad data from sqlite database"; $this->assertEquals($expected, $results, $msg); } - public function getFixtures() + public function getFixtures(): array { $user4Data = '{"changePasswordAtNextLogin":false,' . '"hashFunction":"SHA-1",' . @@ -173,20 +161,20 @@ public function getFixtures() $alias6->setAlias("users_alias6@sil.org"); $alias6->setId("1"); - $fixtures = array( - array('directory', 'user', '{"primaryEmail":"user_test1@sil.org",' . - '"id":"999990"}'), - array('directory', 'users_alias', json_encode($alias2)), - array('app_engine', 'webapp', 'webapp3 test data'), - array('directory', 'user', $user4Data), - array('directory', 'user', 'user5 test data'), - array('directory', 'users_alias', json_encode($alias6)), - ); - - return $fixtures; + return [ + [ + 'directory', 'user', '{"primaryEmail":"user_test1@sil.org",' . + '"id":"999990"}' + ], + ['directory', 'users_alias', json_encode($alias2)], + ['app_engine', 'webapp', 'webapp3 test data'], + ['directory', 'user', $user4Data], + ['directory', 'user', 'user5 test data'], + ['directory', 'users_alias', json_encode($alias6)], + ]; } - public function getAliasFixture($alias, $email, ?string $id) + public function getAliasFixture($alias, $email, ?string $id): Google_Service_Directory_Alias { $newAlias = new Google_Service_Directory_Alias(); $newAlias->setAlias($alias); @@ -208,7 +196,7 @@ public function testUsersGet() $primaryEmail = 'user_test4@sil.org'; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -218,7 +206,7 @@ public function testUsersGet() "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, "aliases" => null, - ); + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -239,7 +227,7 @@ public function testUsersGet_ById() $userId = '999991'; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => $userId, @@ -249,7 +237,7 @@ public function testUsersGet_ById() "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, "aliases" => null, - ); + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -274,7 +262,7 @@ public function testUsersGet_Aliases() $userId = '999991'; $email = "user_test4@sil.org"; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => $userId, @@ -283,17 +271,17 @@ public function testUsersGet_Aliases() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => array("users_alias1A@sil.org", "users_alias1B@sil.org"), - ); + "aliases" => ["users_alias1A@sil.org", "users_alias1B@sil.org"], + ]; $aliasA = $this->getAliasFixture("users_alias1A@sil.org", $email, null); $aliasB = $this->getAliasFixture("users_alias1B@sil.org", $email, null); - $newFixtures = array( - array('directory', 'users_alias', json_encode($aliasA)), - array('directory', 'users_alias', json_encode($aliasB)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($aliasA)], + ['directory', 'users_alias', json_encode($aliasB)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); @@ -317,10 +305,10 @@ public function testUsersGet_ByAlias() $aliasA = $this->getAliasFixture("users_alias1A@sil.org", $email, null); $aliasB = $this->getAliasFixture("users_alias1B@sil.org", $email, null); - $newFixtures = array( - array('directory', 'users_alias', json_encode($aliasA)), - array('directory', 'users_alias', json_encode($aliasB)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($aliasA)], + ['directory', 'users_alias', json_encode($aliasB)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); @@ -344,7 +332,7 @@ public function testUsersUpdate() $primaryEmail = "user_test4@sil.org"; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -353,8 +341,8 @@ public function testUsersUpdate() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => array(), - ); + "aliases" => [], + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -380,7 +368,7 @@ public function testUsersUpdate_ById() $userId = '999991'; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => $userId, @@ -389,8 +377,8 @@ public function testUsersUpdate_ById() "suspended" => false, "isEnforcedIn2Sv" => false, "isEnrolledIn2Sv" => true, - "aliases" => array(), - ); + "aliases" => [], + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -415,7 +403,7 @@ public function testUsersUpdate_WithAlias() $primaryEmail = "user_test4@sil.org"; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -424,8 +412,8 @@ public function testUsersUpdate_WithAlias() "suspended" => false, "isEnrolledIn2Sv" => true, "isEnforcedIn2Sv" => false, - "aliases" => array('user_alias4B@sil.org'), - ); + "aliases" => ['user_alias4B@sil.org'], + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -455,13 +443,13 @@ public function testUsersUpdate_WithDifferentAliases() $primaryEmail, null ); - $newFixtures = array( - array('directory', 'users_alias', json_encode($aliasFixture)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($aliasFixture)], + ]; $fixturesClass->addFixtures($newFixtures); // Different aliases - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => 999991, @@ -470,8 +458,8 @@ public function testUsersUpdate_WithDifferentAliases() "suspended" => false, "isEnrolledIn2Sv" => true, "isEnforcedIn2Sv" => false, - "aliases" => array('user_alias4C@sil.org', 'user_alias4D@sil.org'), - ); + "aliases" => ['user_alias4C@sil.org', 'user_alias4D@sil.org'], + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -498,14 +486,14 @@ public function testUsersUpdate_NotThere() $userId = 999999; - $userData = array( + $userData = [ "changePasswordAtNextLogin" => false, "hashFunction" => "SHA-1", "id" => $userId, "password" => "testP4ss", "primaryEmail" => "user_test4@sil.org", "suspended" => false, - ); + ]; $fixtures = $this->getFixtures(); $fixturesClass->addFixtures($fixtures); @@ -517,7 +505,6 @@ public function testUsersUpdate_NotThere() $this->expectExceptionCode(201407101130); $newDir->users->update($userId, $newUser); - // the assert is in the doc comment } public function testUsersDelete() @@ -536,22 +523,32 @@ public function testUsersDelete() $sqliteClass = new SqliteUtils($this->dataFile); $results = $sqliteClass->getData('', ''); - $expected = array( - array('id' => 1, 'type' => 'directory', 'class' => 'user', - 'data' => '{"primaryEmail":"user_test1@sil.org",' . - '"id":"999990"}'), - array('id' => 2, 'type' => 'directory', 'class' => 'users_alias', - 'data' => '{"alias":"users_alias2@sil.org","etag":null,' . - '"id":null,"kind":null,' . - '"primaryEmail":"user_test1@sil.org"}'), - array('id' => 3, 'type' => 'app_engine', 'class' => 'webapp', - 'data' => 'webapp3 test data'), - array('id' => 5, 'type' => 'directory', 'class' => 'user', - 'data' => 'user5 test data'), - array('id' => 6, 'type' => 'directory', 'class' => 'users_alias', - 'data' => '{"alias":"users_alias6@sil.org","etag":null,' . - '"id":"1","kind":null,"primaryEmail":null}'), - ); + $expected = [ + [ + 'id' => 1, 'type' => 'directory', 'class' => 'user', + 'data' => '{"primaryEmail":"user_test1@sil.org",' . + '"id":"999990"}' + ], + [ + 'id' => 2, 'type' => 'directory', 'class' => 'users_alias', + 'data' => '{"alias":"users_alias2@sil.org","etag":null,' . + '"id":null,"kind":null,' . + '"primaryEmail":"user_test1@sil.org"}' + ], + [ + 'id' => 3, 'type' => 'app_engine', 'class' => 'webapp', + 'data' => 'webapp3 test data' + ], + [ + 'id' => 5, 'type' => 'directory', 'class' => 'user', + 'data' => 'user5 test data' + ], + [ + 'id' => 6, 'type' => 'directory', 'class' => 'users_alias', + 'data' => '{"alias":"users_alias6@sil.org","etag":null,' . + '"id":"1","kind":null,"primaryEmail":null}' + ], + ]; $msg = " *** Bad database data returned"; $this->assertEquals($expected, $results, $msg); @@ -573,22 +570,32 @@ public function testUsersDelete_ById() $sqliteClass = new SqliteUtils($this->dataFile); $results = $sqliteClass->getData('', ''); - $expected = array( - array('id' => 1, 'type' => 'directory', 'class' => 'user', + $expected = [ + [ + 'id' => 1, 'type' => 'directory', 'class' => 'user', 'data' => '{"primaryEmail":"user_test1@sil.org",' . - '"id":"999990"}'), - array('id' => 2, 'type' => 'directory', 'class' => 'users_alias', + '"id":"999990"}' + ], + [ + 'id' => 2, 'type' => 'directory', 'class' => 'users_alias', 'data' => '{"alias":"users_alias2@sil.org","etag":null,' . - '"id":null,"kind":null,' . - '"primaryEmail":"user_test1@sil.org"}'), - array('id' => 3, 'type' => 'app_engine', 'class' => 'webapp', - 'data' => 'webapp3 test data'), - array('id' => 5, 'type' => 'directory', 'class' => 'user', - 'data' => 'user5 test data'), - array('id' => 6, 'type' => 'directory', 'class' => 'users_alias', + '"id":null,"kind":null,' . + '"primaryEmail":"user_test1@sil.org"}' + ], + [ + 'id' => 3, 'type' => 'app_engine', 'class' => 'webapp', + 'data' => 'webapp3 test data' + ], + [ + 'id' => 5, 'type' => 'directory', 'class' => 'user', + 'data' => 'user5 test data' + ], + [ + 'id' => 6, 'type' => 'directory', 'class' => 'users_alias', 'data' => '{"alias":"users_alias6@sil.org","etag":null,' . - '"id":"1","kind":null,"primaryEmail":null}'), - ); + '"id":"1","kind":null,"primaryEmail":null}' + ], + ]; $msg = " *** Bad database data returned"; $this->assertEquals($expected, $results, $msg); @@ -643,7 +650,7 @@ public function testUsersAliasesInsert_UserNotThere() $newDir = new Directory('anyclient', $this->dataFile); $this->expectExceptionCode(201407110830); - $newAlias = $newDir->users_aliases->insert("no_user@sil.org", $newAlias); + $newDir->users_aliases->insert("no_user@sil.org", $newAlias); } public function testUsersAliasesListUsersAliases_Email() @@ -660,25 +667,25 @@ public function testUsersAliasesListUsersAliases_Email() "1" ); - $newFixtures = array( - array('directory', 'users_alias', json_encode($aliasFixture)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($aliasFixture)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); $aliases = $newDir->users_aliases->listUsersAliases("user_test1@sil.org"); - $results = array(); + $results = []; foreach ($aliases['aliases'] as $nextAlias) { $results[] = json_encode($nextAlias); } - $expected = array( + $expected = [ '{"alias":"users_alias2@sil.org","etag":null,"id":null,' . '"kind":null,"primaryEmail":"user_test1@sil.org"}', '{"alias":"users_alias7@sil.org","etag":null,"id":"1",' . '"kind":null,"primaryEmail":"user_test1@sil.org"}' - ); + ]; $msg = " *** Bad returned Aliases"; $this->assertEquals($expected, $results, $msg); @@ -696,29 +703,31 @@ public function testUsersAliasesListUsersAliases_ID() $aliasB = $this->getAliasFixture("users_alias7b@sil.org", $email, "7"); $aliasC = $this->getAliasFixture("users_alias7c@sil.org", null, "7"); - $newFixtures = array( - array('directory', 'user', - '{"id":"7","primaryEmail":"' . $email . '",' . - '"aliases":[]}'), - array('directory', 'users_alias', json_encode($aliasB)), - array('directory', 'users_alias', json_encode($aliasC)), - ); + $newFixtures = [ + [ + 'directory', 'user', + '{"id":"7","primaryEmail":"' . $email . '",' . + '"aliases":[]}' + ], + ['directory', 'users_alias', json_encode($aliasB)], + ['directory', 'users_alias', json_encode($aliasC)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); $aliases = $newDir->users_aliases->listUsersAliases("7"); - $results = array(); + $results = []; foreach ($aliases['aliases'] as $nextAlias) { $results[] = json_encode($nextAlias); } - $expected = array( + $expected = [ '{"alias":"users_alias7b@sil.org","etag":null,"id":"7","kind":null,' . '"primaryEmail":"user_test7@sil.org"}', '{"alias":"users_alias7c@sil.org","etag":null,"id":"7","kind":null,' . '"primaryEmail":null}', - ); + ]; $msg = " *** Bad returned Aliases"; $this->assertEquals($expected, $results, $msg); @@ -734,9 +743,9 @@ public function testUsersAliasesListUsersAliases_Structure() $email = "user_test1@sil.org"; $alias = $this->getAliasFixture("users_alias7@sil.org", $email, "1"); - $newFixtures = array( - array('directory', 'users_alias', json_encode($alias)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($alias)], + ]; $fixturesClass->addFixtures($newFixtures); @@ -749,14 +758,14 @@ public function testUsersAliasesListUsersAliases_Structure() $results = is_array($aliases['aliases']); $this->assertTrue($results, ' *** The aliases property is not an array'); - $user_aliases = array(); + $user_aliases = []; foreach ($aliases['aliases'] as $alias) { $user_aliases[] = $alias['alias']; } $results = $user_aliases; - $expected = array("users_alias2@sil.org", "users_alias7@sil.org"); + $expected = ["users_alias2@sil.org", "users_alias7@sil.org"]; $msg = " *** Bad returned Aliases"; $this->assertEquals($expected, $results, $msg); } @@ -773,15 +782,15 @@ public function testUsersAliasesListUsersAliases_UserNotThere() "user_test1@sil.org", "1" ); - $newFixtures = array( - array('directory', 'users_alias', json_encode($alias)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($alias)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); $this->expectExceptionCode(201407101420); - $aliases = $newDir->users_aliases->listUsersAliases("no_user@sil.org"); + $newDir->users_aliases->listUsersAliases("no_user@sil.org"); } public function testUsersAliasesDelete() @@ -795,9 +804,9 @@ public function testUsersAliasesDelete() $alias = $this->getAliasFixture("users_alias7@sil.org", $email, "1"); - $newFixtures = array( - array('directory', 'users_alias', json_encode($alias)), - ); + $newFixtures = [ + ['directory', 'users_alias', json_encode($alias)], + ]; $fixturesClass->addFixtures($newFixtures); $newDir = new Directory('anyclient', $this->dataFile); @@ -811,19 +820,22 @@ public function testUsersAliasesDelete() $sqliteUtils = new SqliteUtils($this->dataFile); $results = $sqliteUtils->getData('directory', 'users_alias'); - $expected = array( - array('id' => '6', - 'type' => 'directory', - 'class' => 'users_alias', - 'data' => '{"alias":"users_alias6@sil.org","etag":null,' . - '"id":"1","kind":null,"primaryEmail":null}', - ), - array('id' => '7', + $expected = [ + [ + 'id' => '6', + 'type' => 'directory', + 'class' => 'users_alias', + 'data' => '{"alias":"users_alias6@sil.org","etag":null,' . + '"id":"1","kind":null,"primaryEmail":null}', + ], + [ + 'id' => '7', 'type' => 'directory', 'class' => 'users_alias', 'data' => '{"alias":"users_alias7@sil.org","etag":null,' . - '"id":"1","kind":null,"primaryEmail":"' . $email . '"}'), - ); + '"id":"1","kind":null,"primaryEmail":"' . $email . '"}' + ], + ]; $msg = " *** Mismatching users_aliases in db"; $this->assertEquals($expected, $results, $msg); } diff --git a/SilMock/tests/Google/Service/SampleUser.php b/SilMock/tests/Google/Service/SampleUser.php index 04b9aca..2c5b3e6 100644 --- a/SilMock/tests/Google/Service/SampleUser.php +++ b/SilMock/tests/Google/Service/SampleUser.php @@ -26,13 +26,9 @@ public function setupSampleUser(string $dataFile, bool $withAliases = false): ?G // $newUser->$suspensionReason = ''; // string if ($withAliases) { - $newAliases = new Google_Service_Directory_Aliases(); - $newAlias = new Google_Service_Directory_Alias(); - $newAlias->alias = 'user_alias1@sil.org'; - $newAlias->setKind("personal"); - $newAlias->primaryEmail = $newUser->primaryEmail; - $newAliases->setAliases(array($newAlias)); - $newUser->aliases = $newAliases; // bool + $newUser->aliases = [ 'user_alias1@sil.org', 'user_alias2@sil.org' ]; + } else { + $newUser->aliases = []; } $newDir = new Directory('anyclient', $dataFile); diff --git a/composer.json b/composer.json index 388cae2..a83ada3 100644 --- a/composer.json +++ b/composer.json @@ -22,15 +22,15 @@ } ], "require": { - "php": ">=7.4.0", + "php": "^8.2", "ext-json": "*", "ext-mbstring": "*", "ext-pdo": "*", - "google/apiclient": "^v1.1.9", - "google/apiclient-services": "^0.176" + "google/apiclient": "^v2.15.0", + "google/apiclient-services": "^v0.312.0" }, "require-dev": { - "phpunit/phpunit": "^9.5.4", + "phpunit/phpunit": "^9.0", "silinternational/psr3-adapters": "^3.0" }, "autoload": { diff --git a/composer.lock b/composer.lock index 365d0ff..712edb8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,124 +4,1294 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9848b2bcdc52e08decf9560b177e1056", + "content-hash": "a79c34fc19f24150faf0f514f23a5274", "packages": [ + { + "name": "firebase/php-jwt", + "version": "v6.8.1", + "source": { + "type": "git", + "url": "https://github.com/firebase/php-jwt.git", + "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/firebase/php-jwt/zipball/5dbc8959427416b8ee09a100d7a8588c00fb2e26", + "reference": "5dbc8959427416b8ee09a100d7a8588c00fb2e26", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.0" + }, + "require-dev": { + "guzzlehttp/guzzle": "^6.5||^7.4", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "psr/cache": "^1.0||^2.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0" + }, + "suggest": { + "ext-sodium": "Support EdDSA (Ed25519) signatures", + "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present" + }, + "type": "library", + "autoload": { + "psr-4": { + "Firebase\\JWT\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Neuman Vong", + "email": "neuman+pear@twilio.com", + "role": "Developer" + }, + { + "name": "Anant Narayanan", + "email": "anant@php.net", + "role": "Developer" + } + ], + "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.", + "homepage": "https://github.com/firebase/php-jwt", + "keywords": [ + "jwt", + "php" + ], + "support": { + "issues": "https://github.com/firebase/php-jwt/issues", + "source": "https://github.com/firebase/php-jwt/tree/v6.8.1" + }, + "time": "2023-07-14T18:33:00+00:00" + }, { "name": "google/apiclient", - "version": "v1.1.9", + "version": "v2.15.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client.git", + "reference": "49787fa30b8d8313146a61efbf77ed1fede723c2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/49787fa30b8d8313146a61efbf77ed1fede723c2", + "reference": "49787fa30b8d8313146a61efbf77ed1fede723c2", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "~6.0", + "google/apiclient-services": "~0.200", + "google/auth": "^1.28", + "guzzlehttp/guzzle": "~6.5||~7.0", + "guzzlehttp/psr7": "^1.8.4||^2.2.1", + "monolog/monolog": "^2.9||^3.0", + "php": "^7.4|^8.0", + "phpseclib/phpseclib": "^3.0.2" + }, + "require-dev": { + "cache/filesystem-adapter": "^1.1", + "composer/composer": "^1.10.22", + "phpcompatibility/php-compatibility": "^9.2", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "^3.0", + "symfony/css-selector": "~2.1", + "symfony/dom-crawler": "~2.1" + }, + "suggest": { + "cache/filesystem-adapter": "For caching certs and tokens (using Google\\Client::setCache)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "files": [ + "src/aliases.php" + ], + "psr-4": { + "Google\\": "src/" + }, + "classmap": [ + "src/aliases.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/google-api-php-client/issues", + "source": "https://github.com/googleapis/google-api-php-client/tree/v2.15.0" + }, + "time": "2023-05-18T13:51:33+00:00" + }, + { + "name": "google/apiclient-services", + "version": "v0.312.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-api-php-client-services.git", + "reference": "45d47fed73b28254c511882bc743b1690a99558d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/45d47fed73b28254c511882bc743b1690a99558d", + "reference": "45d47fed73b28254c511882bc743b1690a99558d", + "shasum": "" + }, + "require": { + "php": "^7.4||^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^5.7||^8.5.13" + }, + "type": "library", + "autoload": { + "files": [ + "autoload.php" + ], + "psr-4": { + "Google\\Service\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Client library for Google APIs", + "homepage": "http://developers.google.com/api-client-library/php", + "keywords": [ + "google" + ], + "support": { + "issues": "https://github.com/googleapis/google-api-php-client-services/issues", + "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.312.0" + }, + "time": "2023-08-14T00:56:12+00:00" + }, + { + "name": "google/auth", + "version": "v1.28.0", + "source": { + "type": "git", + "url": "https://github.com/googleapis/google-auth-library-php.git", + "reference": "07f7f6305f1b7df32b2acf6e101c1225c839c7ac" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/googleapis/google-auth-library-php/zipball/07f7f6305f1b7df32b2acf6e101c1225c839c7ac", + "reference": "07f7f6305f1b7df32b2acf6e101c1225c839c7ac", + "shasum": "" + }, + "require": { + "firebase/php-jwt": "^6.0", + "guzzlehttp/guzzle": "^6.2.1|^7.0", + "guzzlehttp/psr7": "^2.4.5", + "php": "^7.4||^8.0", + "psr/cache": "^1.0||^2.0||^3.0", + "psr/http-message": "^1.1||^2.0" + }, + "require-dev": { + "guzzlehttp/promises": "^1.3", + "kelvinmo/simplejwt": "0.7.0", + "phpseclib/phpseclib": "^3.0", + "phpspec/prophecy-phpunit": "^2.0", + "phpunit/phpunit": "^9.0.0", + "sebastian/comparator": ">=1.2.3", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "phpseclib/phpseclib": "May be used in place of OpenSSL for signing strings or for token management. Please require version ^2." + }, + "type": "library", + "autoload": { + "psr-4": { + "Google\\Auth\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "description": "Google Auth Library for PHP", + "homepage": "http://github.com/google/google-auth-library-php", + "keywords": [ + "Authentication", + "google", + "oauth2" + ], + "support": { + "docs": "https://googleapis.github.io/google-auth-library-php/main/", + "issues": "https://github.com/googleapis/google-auth-library-php/issues", + "source": "https://github.com/googleapis/google-auth-library-php/tree/v1.28.0" + }, + "time": "2023-05-11T21:58:18+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.7.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/fb7566caccf22d74d1ab270de3551f72a58399f5", + "reference": "fb7566caccf22d74d1ab270de3551f72a58399f5", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "ext-curl": "*", + "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.7.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2023-05-21T14:04:53+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d", + "reference": "111166291a0f8130081195ac4556a5587d7f1b5d", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/2.0.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2023-08-03T15:11:55+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/8bd7c33a0734ae1c5d074360512beb716bef3f77", + "reference": "8bd7c33a0734ae1c5d074360512beb716bef3f77", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.1 || ^2.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.29 || ^9.5.23" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "bamarni-bin": { + "bin-links": true, + "forward-command": false + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.6.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2023-08-03T15:06:02+00:00" + }, + { + "name": "monolog/monolog", + "version": "2.9.1", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "reference": "f259e2b15fb95494c83f52d3caad003bbf5ffaa1", + "shasum": "" + }, + "require": { + "php": ">=7.2", + "psr/log": "^1.0.1 || ^2.0 || ^3.0" + }, + "provide": { + "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9 || ^3.0", + "doctrine/couchdb": "~1.0@dev", + "elasticsearch/elasticsearch": "^7 || ^8", + "ext-json": "*", + "graylog2/gelf-php": "^1.4.2 || ^2@dev", + "guzzlehttp/guzzle": "^7.4", + "guzzlehttp/psr7": "^2.2", + "mongodb/mongodb": "^1.8", + "php-amqplib/php-amqplib": "~2.4 || ^3", + "phpspec/prophecy": "^1.15", + "phpstan/phpstan": "^0.12.91", + "phpunit/phpunit": "^8.5.14", + "predis/predis": "^1.1 || ^2.0", + "rollbar/rollbar": "^1.3 || ^2 || ^3", + "ruflin/elastica": "^7", + "swiftmailer/swiftmailer": "^5.3|^6.0", + "symfony/mailer": "^5.4 || ^6", + "symfony/mime": "^5.4 || ^6" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler", + "ext-mbstring": "Allow to work properly with unicode symbols", + "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)", + "ext-openssl": "Required to send log messages using SSL", + "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "https://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "https://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "support": { + "issues": "https://github.com/Seldaek/monolog/issues", + "source": "https://github.com/Seldaek/monolog/tree/2.9.1" + }, + "funding": [ + { + "url": "https://github.com/Seldaek", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/monolog/monolog", + "type": "tidelift" + } + ], + "time": "2023-02-06T13:44:46+00:00" + }, + { + "name": "paragonie/constant_time_encoding", + "version": "v2.6.3", + "source": { + "type": "git", + "url": "https://github.com/paragonie/constant_time_encoding.git", + "reference": "58c3f47f650c94ec05a151692652a868995d2938" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", + "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "shasum": "" + }, + "require": { + "php": "^7|^8" + }, + "require-dev": { + "phpunit/phpunit": "^6|^7|^8|^9", + "vimeo/psalm": "^1|^2|^3|^4" + }, + "type": "library", + "autoload": { + "psr-4": { + "ParagonIE\\ConstantTime\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com", + "role": "Maintainer" + }, + { + "name": "Steve 'Sc00bz' Thomas", + "email": "steve@tobtu.com", + "homepage": "https://www.tobtu.com", + "role": "Original Developer" + } + ], + "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)", + "keywords": [ + "base16", + "base32", + "base32_decode", + "base32_encode", + "base64", + "base64_decode", + "base64_encode", + "bin2hex", + "encoding", + "hex", + "hex2bin", + "rfc4648" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/constant_time_encoding/issues", + "source": "https://github.com/paragonie/constant_time_encoding" + }, + "time": "2022-06-14T06:56:20+00:00" + }, + { + "name": "paragonie/random_compat", + "version": "v9.99.100", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a", + "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a", + "shasum": "" + }, + "require": { + "php": ">= 7" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*", + "vimeo/psalm": "^1" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "keywords": [ + "csprng", + "polyfill", + "pseudorandom", + "random" + ], + "support": { + "email": "info@paragonie.com", + "issues": "https://github.com/paragonie/random_compat/issues", + "source": "https://github.com/paragonie/random_compat" + }, + "time": "2020-10-15T08:29:30+00:00" + }, + { + "name": "phpseclib/phpseclib", + "version": "3.0.21", + "source": { + "type": "git", + "url": "https://github.com/phpseclib/phpseclib.git", + "reference": "4580645d3fc05c189024eb3b834c6c1e4f0f30a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/4580645d3fc05c189024eb3b834c6c1e4f0f30a1", + "reference": "4580645d3fc05c189024eb3b834c6c1e4f0f30a1", + "shasum": "" + }, + "require": { + "paragonie/constant_time_encoding": "^1|^2", + "paragonie/random_compat": "^1.4|^2.0|^9.99.99", + "php": ">=5.6.1" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "suggest": { + "ext-dom": "Install the DOM extension to load XML formatted public keys.", + "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.", + "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.", + "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.", + "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations." + }, + "type": "library", + "autoload": { + "files": [ + "phpseclib/bootstrap.php" + ], + "psr-4": { + "phpseclib3\\": "phpseclib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jim Wigginton", + "email": "terrafrost@php.net", + "role": "Lead Developer" + }, + { + "name": "Patrick Monnerat", + "email": "pm@datasphere.ch", + "role": "Developer" + }, + { + "name": "Andreas Fischer", + "email": "bantu@phpbb.com", + "role": "Developer" + }, + { + "name": "Hans-Jürgen Petrich", + "email": "petrich@tronic-media.com", + "role": "Developer" + }, + { + "name": "Graham Campbell", + "email": "graham@alt-three.com", + "role": "Developer" + } + ], + "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.", + "homepage": "http://phpseclib.sourceforge.net", + "keywords": [ + "BigInteger", + "aes", + "asn.1", + "asn1", + "blowfish", + "crypto", + "cryptography", + "encryption", + "rsa", + "security", + "sftp", + "signature", + "signing", + "ssh", + "twofish", + "x.509", + "x509" + ], + "support": { + "issues": "https://github.com/phpseclib/phpseclib/issues", + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.21" + }, + "funding": [ + { + "url": "https://github.com/terrafrost", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpseclib", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib", + "type": "tidelift" + } + ], + "time": "2023-07-09T15:24:48+00:00" + }, + { + "name": "psr/cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/cache.git", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/cache/zipball/aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "reference": "aa5030cfa5405eccfdcb1083ce040c2cb8d253bf", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for caching libraries", + "keywords": [ + "cache", + "psr", + "psr-6" + ], + "support": { + "source": "https://github.com/php-fig/cache/tree/3.0.0" + }, + "time": "2021-02-03T23:26:27+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.2", "source": { "type": "git", - "url": "https://github.com/googleapis/google-api-php-client.git", - "reference": "19d7d735ee4cff0f8c14a234b5094b99d00ef278" + "url": "https://github.com/php-fig/http-client.git", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client/zipball/19d7d735ee4cff0f8c14a234b5094b99d00ef278", - "reference": "19d7d735ee4cff0f8c14a234b5094b99d00ef278", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/0955afe48220520692d2d09f7ab7e0f93ffd6a31", + "reference": "0955afe48220520692d2d09f7ab7e0f93ffd6a31", "shasum": "" }, "require": { - "php": ">=5.2.1" + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" }, - "require-dev": { - "phpunit/phpunit": "3.7.*", - "squizlabs/php_codesniffer": "~2.3" + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/1.0.2" + }, + "time": "2023-04-10T20:12:12+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "e616d01114759c4c489f93b099585439f795fe35" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35", + "reference": "e616d01114759c4c489f93b099585439f795fe35", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0 || ^2.0" }, "type": "library", "extra": { "branch-alias": { - "dev-v1-master": "1.1.x-dev" + "dev-master": "1.0.x-dev" } }, "autoload": { - "files": [ - "src/Google/autoload.php" - ] + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], - "description": "Client library for Google APIs", - "homepage": "http://developers.google.com/api-client-library/php", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", "keywords": [ - "google" + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" ], "support": { - "issues": "https://github.com/googleapis/google-api-php-client/issues", - "source": "https://github.com/googleapis/google-api-php-client/tree/v1.1.9" + "source": "https://github.com/php-fig/http-factory/tree/1.0.2" }, - "time": "2020-07-22T19:51:49+00:00" + "time": "2023-04-10T20:10:41+00:00" }, { - "name": "google/apiclient-services", - "version": "v0.176.0", + "name": "psr/http-message", + "version": "2.0", "source": { "type": "git", - "url": "https://github.com/googleapis/google-api-php-client-services.git", - "reference": "316cbf9b02c575a140d8cbeca48a3ca0070fcd5a" + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/googleapis/google-api-php-client-services/zipball/316cbf9b02c575a140d8cbeca48a3ca0070fcd5a", - "reference": "316cbf9b02c575a140d8cbeca48a3ca0070fcd5a", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", "shasum": "" }, "require": { - "php": ">=5.4" + "php": "^7.2 || ^8.0" }, - "require-dev": { - "phpunit/phpunit": "^4.8|^5" + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/log", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", + "reference": "d49695b909c3b7628b6289db5479a1c204601f11", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, "autoload": { - "psr-0": { - "Google_Service_": "src" + "psr-4": { + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "Apache-2.0" + "MIT" ], - "description": "Client library for Google APIs", - "homepage": "http://developers.google.com/api-client-library/php", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "google" + "log", + "psr", + "psr-3" ], "support": { - "issues": "https://github.com/googleapis/google-api-php-client-services/issues", - "source": "https://github.com/googleapis/google-api-php-client-services/tree/v0.176.0" + "source": "https://github.com/php-fig/log/tree/1.1.4" + }, + "time": "2021-05-03T11:20:27+00:00" + }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", + "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.4-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0" }, - "time": "2021-05-15T11:18:02+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2023-05-23T14:45:45+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.5.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", - "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", + "reference": "c6222283fa3f4ac679f8b9ced9a4e23f163e80d0", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^11", + "doctrine/coding-standard": "^11", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.16 || ^1", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.30 || ^5.4" + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^9.5.27", + "vimeo/psalm": "^5.4" }, "type": "library", "autoload": { @@ -148,7 +1318,7 @@ ], "support": { "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + "source": "https://github.com/doctrine/instantiator/tree/2.0.0" }, "funding": [ { @@ -164,7 +1334,7 @@ "type": "tidelift" } ], - "time": "2022-12-30T00:15:36+00:00" + "time": "2022-12-30T00:23:10+00:00" }, { "name": "myclabs/deep-copy", @@ -814,56 +1984,6 @@ ], "time": "2023-07-10T04:04:23+00:00" }, - { - "name": "psr/log", - "version": "1.1.4", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11", - "reference": "d49695b909c3b7628b6289db5479a1c204601f11", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Log\\": "Psr/Log/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "support": { - "source": "https://github.com/php-fig/log/tree/1.1.4" - }, - "time": "2021-05-03T11:20:27+00:00" - }, { "name": "sebastian/cli-parser", "version": "1.0.1", @@ -1939,7 +3059,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=7.4.0", + "php": "^8.2", "ext-json": "*", "ext-mbstring": "*", "ext-pdo": "*"