diff --git a/phpstan.neon b/phpstan.neon index 8edd531..62b024a 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -2,7 +2,7 @@ includes: - ./tools/phpstan/vendor/phpstan/phpstan-symfony/extension.neon parameters: - level: 5 + level: max paths: - src - tests diff --git a/src/HelloassoClient.php b/src/HelloassoClient.php index ae0f07d..57b4cbe 100644 --- a/src/HelloassoClient.php +++ b/src/HelloassoClient.php @@ -14,7 +14,6 @@ use Helloasso\Service\DirectoryService; use Helloasso\Service\PaymentService; use Symfony\Component\Serializer\Normalizer\DenormalizerInterface; -use Symfony\Component\Serializer\SerializerInterface; class HelloassoClient { @@ -23,7 +22,7 @@ class HelloassoClient public DirectoryService $directory; public function __construct( - private readonly SerializerInterface|DenormalizerInterface $serializer, + private readonly DenormalizerInterface $serializer, ApiCaller $apiCaller, string $organizationSlug, ) { @@ -40,6 +39,7 @@ public function __construct( public function decodeEvent(string $eventData): Event { try { + /** @var array{eventType?: string, data?: array, metadata?: array} */ $event = json_decode($eventData, true, 512, \JSON_THROW_ON_ERROR); } catch (\JsonException $e) { throw new InvalidValueException('Unable to json_decode given event.'); @@ -59,7 +59,7 @@ public function decodeEvent(string $eventData): Event Event::EVENT_TYPE_FORM => FormPublicModel::class, Event::EVENT_TYPE_ORDER => OrderDetail::class, Event::EVENT_TYPE_PAYMENT => PaymentDetail::class, - default => throw new InvalidValueException('eventType "'.$eventType.'" not supported') + default => throw new InvalidValueException('eventType "'.$eventType.'" not supported'), }; return (new Event()) diff --git a/src/Http/ApiCaller.php b/src/Http/ApiCaller.php index 811bcea..54175c2 100644 --- a/src/Http/ApiCaller.php +++ b/src/Http/ApiCaller.php @@ -22,13 +22,20 @@ public function __construct( /** * @template T of HelloassoObject * - * @param class-string $responseClassType - * @param array $options HttpClient request options + * @param array|HelloassoObject|null $body The body of the request to make + * @param class-string $responseClassType + * @param array $options HttpClient request options * * @return T */ public function post(string $url, array|HelloassoObject|null $body, string $responseClassType, ?array $options = []): HelloassoObject { + if (null === $options) { + @trigger_error(__METHOD__.'(): Passing null for $options is deprecated and will be removed in v2.0.0', \E_USER_DEPRECATED); + + $options = []; + } + $response = $this->httpClient->request(Request::METHOD_POST, $url, array_merge([ 'auth_bearer' => $this->tokenManager->getAccessToken(), 'body' => $this->serializer->serialize($body, 'json'), @@ -40,12 +47,19 @@ public function post(string $url, array|HelloassoObject|null $body, string $resp /** * @template T of HelloassoObject * - * @param class-string $responseClassType + * @param class-string $responseClassType + * @param array $options * * @return T */ public function get(string $url, string $responseClassType, ?array $options = []): HelloassoObject { + if (null === $options) { + @trigger_error(__METHOD__.'(): Passing null for $options is deprecated and will be removed in v2.0.0', \E_USER_DEPRECATED); + + $options = []; + } + $response = $this->httpClient->request(Request::METHOD_GET, $url, array_merge([ 'auth_bearer' => $this->tokenManager->getAccessToken(), ], $options)); diff --git a/src/Http/ResponseHandler.php b/src/Http/ResponseHandler.php index 58c8197..96a981a 100644 --- a/src/Http/ResponseHandler.php +++ b/src/Http/ResponseHandler.php @@ -53,6 +53,9 @@ public function deserializeResponse(ResponseInterface $response, string $respons */ public function deserializeResponseContent(string $content, string $responseClassType): HelloassoObject { - return $this->serializer->deserialize($content, $responseClassType, 'json'); + /** @var T $object */ + $object = $this->serializer->deserialize($content, $responseClassType, 'json'); + + return $object; } } diff --git a/src/Http/TokenManager.php b/src/Http/TokenManager.php index a867669..4b3ea0b 100644 --- a/src/Http/TokenManager.php +++ b/src/Http/TokenManager.php @@ -23,13 +23,13 @@ public function __construct( public function getAccessToken(): string { if (null === $this->accessToken) { - $this->retrieveAccessToken(); + $this->accessToken = $this->retrieveAccessToken(); } return $this->accessToken; } - private function retrieveAccessToken(): void + private function retrieveAccessToken(): string { $response = $this->httpClient->request(Request::METHOD_POST, '/oauth2/token', [ 'body' => [ @@ -44,6 +44,6 @@ private function retrieveAccessToken(): void $credentials = $this->responseHandler->deserializeResponse($response, ClientCredentials::class); - $this->accessToken = $credentials->getAccessToken(); + return $credentials->getAccessToken(); } } diff --git a/src/Models/Accounts/ApiClients/ApiClientModel.php b/src/Models/Accounts/ApiClients/ApiClientModel.php index 2be6c67..c5f42c8 100644 --- a/src/Models/Accounts/ApiClients/ApiClientModel.php +++ b/src/Models/Accounts/ApiClients/ApiClientModel.php @@ -55,11 +55,17 @@ public function setPartnerName(string $partnerName): self return $this; } + /** + * @return string[] + */ public function getPrivileges(): array { return $this->privileges; } + /** + * @param string[] $privileges + */ public function setPrivileges(array $privileges): self { $this->privileges = $privileges; diff --git a/src/Models/Carts/CheckoutIntentResponse.php b/src/Models/Carts/CheckoutIntentResponse.php index fca32cf..df21e60 100644 --- a/src/Models/Carts/CheckoutIntentResponse.php +++ b/src/Models/Carts/CheckoutIntentResponse.php @@ -19,6 +19,9 @@ class CheckoutIntentResponse implements HelloassoObject */ private string $redirectUrl; + /** + * @var array + */ private array $metadata; private ?OrderDetail $order = null; @@ -47,11 +50,17 @@ public function setRedirectUrl(string $redirectUrl): self return $this; } + /** + * @return array + */ public function getMetadata(): array { return $this->metadata; } + /** + * @param array $metadata + */ public function setMetadata(array $metadata): self { $this->metadata = $metadata; diff --git a/src/Models/Carts/InitCheckoutBody.php b/src/Models/Carts/InitCheckoutBody.php index ab5a97f..e0d6707 100644 --- a/src/Models/Carts/InitCheckoutBody.php +++ b/src/Models/Carts/InitCheckoutBody.php @@ -64,7 +64,7 @@ class InitCheckoutBody implements HelloassoObject /** * @var array Tableau contenant les échéances éventuelles */ - private ?array $terms; + private array $terms = []; /** * Informations concernant le payeur. @@ -72,10 +72,10 @@ class InitCheckoutBody implements HelloassoObject private ?CheckoutPayer $payer; /** - * @var array Informations partenaire. - * Ces infos ne seront pas transmises à l’association ou au contributeur. - * Elles vous seront renvoyées avec la commande ou le paiement lors de la notification, - * ou quand vous voudrez récupérer le détail du paiement ou de la commande. + * @var array Informations partenaire. + * Ces infos ne seront pas transmises à l’association ou au contributeur. + * Elles vous seront renvoyées avec la commande ou le paiement lors de la notification, + * ou quand vous voudrez récupérer le détail du paiement ou de la commande. */ private array $metadata; @@ -84,7 +84,7 @@ class InitCheckoutBody implements HelloassoObject * * @example 101 */ - private ?string $trackingParameter; + private ?string $trackingParameter = null; public function getTotalAmount(): int { @@ -192,9 +192,9 @@ public function setContainsDonation(bool $containsDonation): self } /** - * @return array|null + * @return array */ - public function getTerms(): ?array + public function getTerms(): array { return $this->terms; } @@ -218,11 +218,17 @@ public function setPayer(?CheckoutPayer $payer): self return $this; } + /** + * @return array + */ public function getMetadata(): array { return $this->metadata; } + /** + * @param array $metadata + */ public function setMetadata(array $metadata): self { $this->metadata = $metadata; diff --git a/src/Models/Common/Collection.php b/src/Models/Common/Collection.php index 7d0dc0e..f6c3d7e 100644 --- a/src/Models/Common/Collection.php +++ b/src/Models/Common/Collection.php @@ -33,6 +33,8 @@ public function getData(): array /** * @param T[] $data + * + * @return self */ public function setData(array $data): self { @@ -46,6 +48,9 @@ public function getPagination(): PaginationModel return $this->pagination; } + /** + * @return self + */ public function setPagination(PaginationModel $pagination): self { $this->pagination = $pagination; diff --git a/src/Models/Directory/ListFormsRequest.php b/src/Models/Directory/ListFormsRequest.php index 7aaeca2..8a7a2e9 100644 --- a/src/Models/Directory/ListFormsRequest.php +++ b/src/Models/Directory/ListFormsRequest.php @@ -121,11 +121,17 @@ public function setFormDescription(string $formDescription): self return $this; } + /** + * @return string[] + */ public function getFormZipCodes(): array { return $this->formZipCodes; } + /** + * @param string[] $formZipCodes + */ public function setFormZipCodes(array $formZipCodes): self { $this->formZipCodes = $formZipCodes; @@ -133,11 +139,17 @@ public function setFormZipCodes(array $formZipCodes): self return $this; } + /** + * @return string[] + */ public function getFormCities(): array { return $this->formCities; } + /** + * @param string[] $formCities + */ public function setFormCities(array $formCities): self { $this->formCities = $formCities; @@ -145,11 +157,17 @@ public function setFormCities(array $formCities): self return $this; } + /** + * @return string[] + */ public function getFormRegions(): array { return $this->formRegions; } + /** + * @param string[] $formRegions + */ public function setFormRegions(array $formRegions): self { $this->formRegions = $formRegions; @@ -157,11 +175,17 @@ public function setFormRegions(array $formRegions): self return $this; } + /** + * @return string[] + */ public function getFormDepartments(): array { return $this->formDepartments; } + /** + * @param string[] $formDepartments + */ public function setFormDepartments(array $formDepartments): self { $this->formDepartments = $formDepartments; @@ -169,11 +193,17 @@ public function setFormDepartments(array $formDepartments): self return $this; } + /** + * @return string[] + */ public function getFormCountries(): array { return $this->formCountries; } + /** + * @param string[] $formCountries + */ public function setFormCountries(array $formCountries): self { $this->formCountries = $formCountries; @@ -181,11 +211,17 @@ public function setFormCountries(array $formCountries): self return $this; } + /** + * @return string[] + */ public function getFormTypes(): array { return $this->formTypes; } + /** + * @param string[] $formTypes + */ public function setFormTypes(array $formTypes): self { $this->formTypes = $formTypes; @@ -325,11 +361,17 @@ public function setOrganizationDescription(string $organizationDescription): sel return $this; } + /** + * @return string[] + */ public function getOrganizationCategories(): array { return $this->organizationCategories; } + /** + * @param string[] $organizationCategories + */ public function setOrganizationCategories(array $organizationCategories): self { $this->organizationCategories = $organizationCategories; @@ -337,11 +379,17 @@ public function setOrganizationCategories(array $organizationCategories): self return $this; } + /** + * @return string[] + */ public function getOrganizationTypes(): array { return $this->organizationTypes; } + /** + * @param string[] $organizationTypes + */ public function setOrganizationTypes(array $organizationTypes): self { $this->organizationTypes = $organizationTypes; @@ -349,11 +397,17 @@ public function setOrganizationTypes(array $organizationTypes): self return $this; } + /** + * @return string[] + */ public function getOrganizationZipCodes(): array { return $this->organizationZipCodes; } + /** + * @param string[] $organizationZipCodes + */ public function setOrganizationZipCodes(array $organizationZipCodes): self { $this->organizationZipCodes = $organizationZipCodes; @@ -361,11 +415,17 @@ public function setOrganizationZipCodes(array $organizationZipCodes): self return $this; } + /** + * @return string[] + */ public function getOrganizationCities(): array { return $this->organizationCities; } + /** + * @param string[] $organizationCities + */ public function setOrganizationCities(array $organizationCities): self { $this->organizationCities = $organizationCities; @@ -373,11 +433,17 @@ public function setOrganizationCities(array $organizationCities): self return $this; } + /** + * @return string[] + */ public function getOrganizationRegions(): array { return $this->organizationRegions; } + /** + * @param string[] $organizationRegions + */ public function setOrganizationRegions(array $organizationRegions): self { $this->organizationRegions = $organizationRegions; @@ -385,11 +451,17 @@ public function setOrganizationRegions(array $organizationRegions): self return $this; } + /** + * @return string[] + */ public function getOrganizationDepartments(): array { return $this->organizationDepartments; } + /** + * @param string[] $organizationDepartments + */ public function setOrganizationDepartments(array $organizationDepartments): self { $this->organizationDepartments = $organizationDepartments; @@ -409,11 +481,17 @@ public function setOrganizationFiscalReceiptEligibility(bool $organizationFiscal return $this; } + /** + * @return string[] + */ public function getInternalTags(): array { return $this->internalTags; } + /** + * @param string[] $internalTags + */ public function setInternalTags(array $internalTags): self { $this->internalTags = $internalTags; @@ -421,11 +499,17 @@ public function setInternalTags(array $internalTags): self return $this; } + /** + * @return string[] + */ public function getTags(): array { return $this->tags; } + /** + * @param string[] $tags + */ public function setTags(array $tags): self { $this->tags = $tags; diff --git a/src/Models/Directory/ListOrganizationsRequest.php b/src/Models/Directory/ListOrganizationsRequest.php index e141530..d3256cc 100644 --- a/src/Models/Directory/ListOrganizationsRequest.php +++ b/src/Models/Directory/ListOrganizationsRequest.php @@ -88,11 +88,17 @@ public function setFiscalReceiptEligibility(bool $fiscalReceiptEligibility): sel return $this; } + /** + * @return string[] + */ public function getCategories(): array { return $this->categories; } + /** + * @param string[] $categories + */ public function setCategories(array $categories): self { $this->categories = $categories; @@ -100,11 +106,17 @@ public function setCategories(array $categories): self return $this; } + /** + * @return string[] + */ public function getTypes(): array { return $this->types; } + /** + * @param string[] $types + */ public function setTypes(array $types): self { $this->types = $types; @@ -112,11 +124,17 @@ public function setTypes(array $types): self return $this; } + /** + * @return string[] + */ public function getZipCodes(): array { return $this->zipCodes; } + /** + * @param string[] $zipCodes + */ public function setZipCodes(array $zipCodes): self { $this->zipCodes = $zipCodes; @@ -124,11 +142,17 @@ public function setZipCodes(array $zipCodes): self return $this; } + /** + * @return string[] + */ public function getCities(): array { return $this->cities; } + /** + * @param string[] $cities + */ public function setCities(array $cities): self { $this->cities = $cities; @@ -136,11 +160,17 @@ public function setCities(array $cities): self return $this; } + /** + * @return string[] + */ public function getRegions(): array { return $this->regions; } + /** + * @param string[] $regions + */ public function setRegions(array $regions): self { $this->regions = $regions; @@ -148,11 +178,17 @@ public function setRegions(array $regions): self return $this; } + /** + * @return string[] + */ public function getDepartments(): array { return $this->departments; } + /** + * @param string[] $departments + */ public function setDepartments(array $departments): self { $this->departments = $departments; @@ -160,11 +196,17 @@ public function setDepartments(array $departments): self return $this; } + /** + * @return string[] + */ public function getInternalTags(): array { return $this->internalTags; } + /** + * @param string[] $internalTags + */ public function setInternalTags(array $internalTags): self { $this->internalTags = $internalTags; @@ -172,11 +214,17 @@ public function setInternalTags(array $internalTags): self return $this; } + /** + * @return string[] + */ public function getTags(): array { return $this->tags; } + /** + * @param string[] $tags + */ public function setTags(array $tags): self { $this->tags = $tags; diff --git a/src/Models/Event.php b/src/Models/Event.php index 3814751..8f2e452 100644 --- a/src/Models/Event.php +++ b/src/Models/Event.php @@ -21,6 +21,9 @@ class Event implements HelloassoObject private PaymentDetail|OrderDetail|FormPublicModel $data; + /** + * @var array + */ private array $metadata; public function getEventType(): string @@ -47,11 +50,17 @@ public function setData(PaymentDetail|OrderDetail|FormPublicModel $data): self return $this; } + /** + * @return array + */ public function getMetadata(): array { return $this->metadata; } + /** + * @param array $metadata + */ public function setMetadata(array $metadata): self { $this->metadata = $metadata; diff --git a/src/Models/Forms/FormPublicModel.php b/src/Models/Forms/FormPublicModel.php index d6bf500..e1e9094 100644 --- a/src/Models/Forms/FormPublicModel.php +++ b/src/Models/Forms/FormPublicModel.php @@ -70,11 +70,17 @@ public function setOrganizationName(string $organizationName): self return $this; } + /** + * @return TierPublicModel[] + */ public function getTiers(): array { return $this->tiers; } + /** + * @param TierPublicModel[] $tiers + */ public function setTiers(array $tiers): self { $this->tiers = $tiers; diff --git a/src/Models/Forms/FormQuickCreateRequest.php b/src/Models/Forms/FormQuickCreateRequest.php index f1be720..6f520b1 100644 --- a/src/Models/Forms/FormQuickCreateRequest.php +++ b/src/Models/Forms/FormQuickCreateRequest.php @@ -55,11 +55,17 @@ class FormQuickCreateRequest implements HelloassoObject private string $projectTargetCountry; private int $maxEntries; + /** + * @return TierLightModel[] + */ public function getTierList(): array { return $this->tierList; } + /** + * @param TierLightModel[] $tierList + */ public function setTierList(array $tierList): self { $this->tierList = $tierList; @@ -379,11 +385,17 @@ public function setLongDescription(string $longDescription): self return $this; } + /** + * @return int[] + */ public function getOpenDonationPresetAmounts(): array { return $this->openDonationPresetAmounts; } + /** + * @param int[] $openDonationPresetAmounts + */ public function setOpenDonationPresetAmounts(array $openDonationPresetAmounts): self { $this->openDonationPresetAmounts = $openDonationPresetAmounts; diff --git a/src/Models/Forms/TierPublicModel.php b/src/Models/Forms/TierPublicModel.php index bc2bd9e..c337e98 100644 --- a/src/Models/Forms/TierPublicModel.php +++ b/src/Models/Forms/TierPublicModel.php @@ -189,11 +189,17 @@ public function setIsEligibleTaxReceipt(bool $isEligibleTaxReceipt): self return $this; } + /** + * @return TermModel[] + */ public function getTerms(): array { return $this->terms; } + /** + * @param TermModel[] $terms + */ public function setTerms(array $terms): self { $this->terms = $terms; diff --git a/src/Models/Partners/PartnerPublicModel.php b/src/Models/Partners/PartnerPublicModel.php index 1871e21..270b893 100644 --- a/src/Models/Partners/PartnerPublicModel.php +++ b/src/Models/Partners/PartnerPublicModel.php @@ -81,11 +81,17 @@ public function setClient(ApiClientModel $client): self return $this; } + /** + * @return ApiUrlNotificationModel[] + */ public function getUrlNotificationList(): array { return $this->urlNotificationList; } + /** + * @param ApiUrlNotificationModel[] $urlNotificationList + */ public function setUrlNotificationList(array $urlNotificationList): self { $this->urlNotificationList = $urlNotificationList; diff --git a/src/Models/Statistics/Item.php b/src/Models/Statistics/Item.php index 81904db..224bb13 100644 --- a/src/Models/Statistics/Item.php +++ b/src/Models/Statistics/Item.php @@ -70,11 +70,17 @@ public function setPayer(PayerLight $payer): self return $this; } + /** + * @return ItemPayment[] + */ public function getPayments(): array { return $this->payments; } + /** + * @param ItemPayment[] $payments + */ public function setPayments(array $payments): self { $this->payments = $payments; @@ -142,11 +148,17 @@ public function setDiscount(ItemDiscount $discount): self return $this; } + /** + * @return ItemCustomField[] + */ public function getCustomFields(): array { return $this->customFields; } + /** + * @param ItemCustomField[] $customFields + */ public function setCustomFields(array $customFields): self { $this->customFields = $customFields; @@ -154,11 +166,17 @@ public function setCustomFields(array $customFields): self return $this; } + /** + * @return ItemOption[] + */ public function getOptions(): array { return $this->options; } + /** + * @param ItemOption[] $options + */ public function setOptions(array $options): self { $this->options = $options; diff --git a/src/Models/Statistics/ItemDetail.php b/src/Models/Statistics/ItemDetail.php index ef885f5..87d92d3 100644 --- a/src/Models/Statistics/ItemDetail.php +++ b/src/Models/Statistics/ItemDetail.php @@ -12,6 +12,10 @@ class ItemDetail implements HelloassoObject { private Payer $payer; + + /** + * @var array + */ private array $metadata; private OrderLight $order; @@ -59,11 +63,17 @@ public function setPayer(Payer $payer): self return $this; } + /** + * @return array + */ public function getMetadata(): array { return $this->metadata; } + /** + * @param array $metadata + */ public function setMetadata(array $metadata): self { $this->metadata = $metadata; @@ -83,11 +93,17 @@ public function setOrder(OrderLight $order): self return $this; } + /** + * @return ItemPayment[] + */ public function getPayments(): array { return $this->payments; } + /** + * @param ItemPayment[] $payments + */ public function setPayments(array $payments): self { $this->payments = $payments; @@ -155,11 +171,17 @@ public function setDiscount(ItemDiscount $discount): self return $this; } + /** + * @return ItemCustomField[] + */ public function getCustomFields(): array { return $this->customFields; } + /** + * @param ItemCustomField[] $customFields + */ public function setCustomFields(array $customFields): self { $this->customFields = $customFields; @@ -167,11 +189,17 @@ public function setCustomFields(array $customFields): self return $this; } + /** + * @return ItemOption[] + */ public function getOptions(): array { return $this->options; } + /** + * @param ItemOption[] $options + */ public function setOptions(array $options): self { $this->options = $options; diff --git a/src/Models/Statistics/ItemOption.php b/src/Models/Statistics/ItemOption.php index 4bea940..f2d6f48 100644 --- a/src/Models/Statistics/ItemOption.php +++ b/src/Models/Statistics/ItemOption.php @@ -67,11 +67,17 @@ public function setIsRequired(bool $isRequired): self return $this; } + /** + * @return ItemCustomField[] + */ public function getCustomFields(): array { return $this->customFields; } + /** + * @param ItemCustomField[] $customFields + */ public function setCustomFields(array $customFields): self { $this->customFields = $customFields; diff --git a/src/Models/Statistics/Order.php b/src/Models/Statistics/Order.php index 93b1943..4cb9c80 100644 --- a/src/Models/Statistics/Order.php +++ b/src/Models/Statistics/Order.php @@ -42,11 +42,17 @@ public function setPayer(PayerLight $payer): self return $this; } + /** + * @return OrderItem[] + */ public function getItems(): array { return $this->items; } + /** + * @param OrderItem[] $items + */ public function setItems(array $items): self { $this->items = $items; @@ -54,11 +60,17 @@ public function setItems(array $items): self return $this; } + /** + * @return OrderPayment[] + */ public function getPayments(): array { return $this->payments; } + /** + * @param OrderPayment[] $payments + */ public function setPayments(array $payments): self { $this->payments = $payments; diff --git a/src/Models/Statistics/OrderDetail.php b/src/Models/Statistics/OrderDetail.php index 88bc1b5..93f6b16 100644 --- a/src/Models/Statistics/OrderDetail.php +++ b/src/Models/Statistics/OrderDetail.php @@ -56,11 +56,17 @@ public function setPayer(Payer $payer): self return $this; } + /** + * @return OrderItem[] + */ public function getItems(): array { return $this->items; } + /** + * @param OrderItem[] $items + */ public function setItems(array $items): self { $this->items = $items; @@ -68,11 +74,17 @@ public function setItems(array $items): self return $this; } + /** + * @return OrderPayment[] + */ public function getPayments(): array { return $this->payments; } + /** + * @param OrderPayment[] $payments + */ public function setPayments(array $payments): self { $this->payments = $payments; diff --git a/src/Models/Statistics/OrderItem.php b/src/Models/Statistics/OrderItem.php index 2e626d7..da70a6c 100644 --- a/src/Models/Statistics/OrderItem.php +++ b/src/Models/Statistics/OrderItem.php @@ -56,11 +56,17 @@ public function setId(int $id): self return $this; } + /** + * @return SharePayment[] + */ public function getPayments(): array { return $this->payments; } + /** + * @param SharePayment[] $payments + */ public function setPayments(array $payments): self { $this->payments = $payments; @@ -128,11 +134,17 @@ public function setDiscount(ItemDiscount $discount): self return $this; } + /** + * @return ItemCustomField[] + */ public function getCustomFields(): array { return $this->customFields; } + /** + * @param ItemCustomField[] $customFields + */ public function setCustomFields(array $customFields): self { $this->customFields = $customFields; @@ -140,11 +152,17 @@ public function setCustomFields(array $customFields): self return $this; } + /** + * @return ItemOption[] + */ public function getOptions(): array { return $this->options; } + /** + * @param ItemOption[] $options + */ public function setOptions(array $options): self { $this->options = $options; diff --git a/src/Models/Statistics/OrderPayment.php b/src/Models/Statistics/OrderPayment.php index 6fb04e7..bc3aed5 100644 --- a/src/Models/Statistics/OrderPayment.php +++ b/src/Models/Statistics/OrderPayment.php @@ -33,11 +33,17 @@ class OrderPayment implements HelloassoObject private MetaModel $meta; private PaymentOffLineMeansModel $paymentOffLineMean; + /** + * @return ShareItem[] + */ public function getItems(): array { return $this->items; } + /** + * @param ShareItem[] $items + */ public function setItems(array $items): self { $this->items = $items; diff --git a/src/Models/Statistics/Payment.php b/src/Models/Statistics/Payment.php index 3148277..7008d68 100644 --- a/src/Models/Statistics/Payment.php +++ b/src/Models/Statistics/Payment.php @@ -60,11 +60,17 @@ public function setPayer(PayerLight $payer): self return $this; } + /** + * @return PaymentItem[] + */ public function getItems(): array { return $this->items; } + /** + * @param PaymentItem[] $items + */ public function setItems(array $items): self { $this->items = $items; diff --git a/src/Models/Statistics/PaymentDetail.php b/src/Models/Statistics/PaymentDetail.php index d3dbe81..6944f52 100644 --- a/src/Models/Statistics/PaymentDetail.php +++ b/src/Models/Statistics/PaymentDetail.php @@ -76,6 +76,9 @@ public function setOrder(OrderLight $order): self return $this; } + /** + * @return PaymentItem[] + */ public function getItems(): array { return $this->items; @@ -88,6 +91,9 @@ public function addItem(PaymentItem $item): self return $this; } + /** + * @param PaymentItem[] $items + */ public function setItems(array $items): self { $this->items = $items; diff --git a/src/Service/CheckoutIntentService.php b/src/Service/CheckoutIntentService.php index df093a1..b573dde 100644 --- a/src/Service/CheckoutIntentService.php +++ b/src/Service/CheckoutIntentService.php @@ -23,7 +23,7 @@ public function __construct( */ public function create(InitCheckoutBody $checkoutIntent): InitCheckoutResponse { - $url = sprintf('/v5/organizations/%s/checkout-intents', $this->organizationSlug); + $url = \sprintf('/v5/organizations/%s/checkout-intents', $this->organizationSlug); return $this->apiCaller->post($url, $checkoutIntent, InitCheckoutResponse::class); } @@ -33,7 +33,7 @@ public function create(InitCheckoutBody $checkoutIntent): InitCheckoutResponse */ public function retrieve(int $checkoutIntentId): CheckoutIntentResponse { - $url = sprintf('/v5/organizations/%s/checkout-intents/%d', $this->organizationSlug, $checkoutIntentId); + $url = \sprintf('/v5/organizations/%s/checkout-intents/%d', $this->organizationSlug, $checkoutIntentId); return $this->apiCaller->get($url, CheckoutIntentResponse::class); } diff --git a/src/Service/PaymentService.php b/src/Service/PaymentService.php index 37b7009..0e1af46 100644 --- a/src/Service/PaymentService.php +++ b/src/Service/PaymentService.php @@ -26,6 +26,8 @@ public function retrieve(int $id): Payment } /** + * @param array $params + * * @throws HelloassoApiException */ public function all(array $params = []): PaymentCollection @@ -36,6 +38,8 @@ public function all(array $params = []): PaymentCollection } /** + * @param array $params + * * @throws HelloassoApiException */ public function refund(int $id, array $params = []): Payment diff --git a/tests/Functional/FunctionalTestCase.php b/tests/Functional/FunctionalTestCase.php index b465d53..6ed5a21 100644 --- a/tests/Functional/FunctionalTestCase.php +++ b/tests/Functional/FunctionalTestCase.php @@ -10,7 +10,7 @@ abstract class FunctionalTestCase extends TestCase { - protected function getClient(): ?HelloassoClient + protected function getClient(): HelloassoClient { $clientId = getenv('HELLOASSO_CLIENT_ID'); $clientSecret = getenv('HELLOASSO_CLIENT_SECRET'); diff --git a/tests/Unit/HelloAssoClientTest.php b/tests/Unit/HelloAssoClientTest.php index 0f7a2fb..d854441 100644 --- a/tests/Unit/HelloAssoClientTest.php +++ b/tests/Unit/HelloAssoClientTest.php @@ -24,7 +24,11 @@ protected function setUp(): void public function testDecodeOrderEvent(): void { - $event = $this->client->decodeEvent(file_get_contents(__DIR__.'/../fixtures/event.Order.json')); + if (false === $fileContent = file_get_contents(__DIR__.'/../fixtures/event.Order.json')) { + $this->fail('Unable to read content from given file'); + } + + $event = $this->client->decodeEvent($fileContent); $this->assertInstanceOf(Event::class, $event); $this->assertSame('Order', $event->getEventType()); @@ -33,7 +37,11 @@ public function testDecodeOrderEvent(): void public function testDecodePaymentEvent(): void { - $event = $this->client->decodeEvent(file_get_contents(__DIR__.'/../fixtures/event.Payment.json')); + if (false === $fileContent = file_get_contents(__DIR__.'/../fixtures/event.Payment.json')) { + $this->fail('Unable to read content from given file'); + } + + $event = $this->client->decodeEvent($fileContent); $this->assertInstanceOf(Event::class, $event); $this->assertSame('Payment', $event->getEventType()); @@ -42,7 +50,11 @@ public function testDecodePaymentEvent(): void public function testDecodeFormEvent(): void { - $event = $this->client->decodeEvent(file_get_contents(__DIR__.'/../fixtures/event.Form.json')); + if (false === $fileContent = file_get_contents(__DIR__.'/../fixtures/event.Form.json')) { + $this->fail('Unable to read content from given file'); + } + + $event = $this->client->decodeEvent($fileContent); $this->assertInstanceOf(Event::class, $event); $this->assertSame('Form', $event->getEventType()); diff --git a/tools/php-cs-fixer/composer.lock b/tools/php-cs-fixer/composer.lock index 80e312f..a5711ea 100644 --- a/tools/php-cs-fixer/composer.lock +++ b/tools/php-cs-fixer/composer.lock @@ -6,32 +6,104 @@ ], "content-hash": "b59468c98698b5b5e9a22616a237b42c", "packages": [ + { + "name": "clue/ndjson-react", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/clue/reactphp-ndjson.git", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "react/event-loop": "^1.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\NDJson\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.", + "homepage": "https://github.com/clue/reactphp-ndjson", + "keywords": [ + "NDJSON", + "json", + "jsonlines", + "newline", + "reactphp", + "streaming" + ], + "support": { + "issues": "https://github.com/clue/reactphp-ndjson/issues", + "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-12-23T10:58:28+00:00" + }, { "name": "composer/pcre", - "version": "3.1.3", + "version": "3.3.2", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8" + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", - "reference": "5b16e25a5355f1f3afdfc2f954a0a80aec4826a8", + "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e", + "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e", "shasum": "" }, "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.10" + }, "require-dev": { - "phpstan/phpstan": "^1.3", - "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpstan/phpstan": "^1.12 || ^2", + "phpstan/phpstan-strict-rules": "^1 || ^2", + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -59,7 +131,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.3" + "source": "https://github.com/composer/pcre/tree/3.3.2" }, "funding": [ { @@ -75,28 +147,28 @@ "type": "tidelift" } ], - "time": "2024-03-19T10:26:25+00:00" + "time": "2024-11-12T16:29:46+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -140,7 +212,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -156,20 +228,20 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.4", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/4f988f8fdf580d53bdb2d1278fe93d1ed5462255", - "reference": "4f988f8fdf580d53bdb2d1278fe93d1ed5462255", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { @@ -206,7 +278,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.4" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -222,29 +294,144 @@ "type": "tidelift" } ], - "time": "2024-03-26T18:29:49+00:00" + "time": "2024-05-06T16:37:16+00:00" + }, + { + "name": "evenement/evenement", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", + "shasum": "" + }, + "require": { + "php": ">=7.0" + }, + "require-dev": { + "phpunit/phpunit": "^9 || ^6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Evenement\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" + } + ], + "description": "Événement is a very simple event dispatching library for PHP", + "keywords": [ + "event-dispatcher", + "event-emitter" + ], + "support": { + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" + }, + "time": "2023-08-08T05:53:35+00:00" + }, + { + "name": "fidry/cpu-core-counter", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "8520451a140d3f46ac33042715115e290cf5785f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fidry\\CpuCoreCounter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" + } + ], + "description": "Tiny utility to get the number of CPU cores.", + "keywords": [ + "CPU", + "core" + ], + "support": { + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" + }, + "funding": [ + { + "url": "https://github.com/theofidry", + "type": "github" + } + ], + "time": "2024-08-06T10:04:20+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.52.1", + "version": "v3.65.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "6e77207f0d851862ceeb6da63e6e22c01b1587bc" + "reference": "79d4f3e77b250a7d8043d76c6af8f0695e8a469f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/6e77207f0d851862ceeb6da63e6e22c01b1587bc", - "reference": "6e77207f0d851862ceeb6da63e6e22c01b1587bc", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/79d4f3e77b250a7d8043d76c6af8f0695e8a469f", + "reference": "79d4f3e77b250a7d8043d76c6af8f0695e8a469f", "shasum": "" }, "require": { + "clue/ndjson-react": "^1.0", "composer/semver": "^3.4", "composer/xdebug-handler": "^3.0.3", "ext-filter": "*", "ext-json": "*", "ext-tokenizer": "*", + "fidry/cpu-core-counter": "^1.2", "php": "^7.4 || ^8.0", + "react/child-process": "^0.6.5", + "react/event-loop": "^1.0", + "react/promise": "^2.0 || ^3.0", + "react/socket": "^1.0", + "react/stream": "^1.0", "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", @@ -258,17 +445,18 @@ "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { - "facile-it/paraunit": "^1.3 || ^2.0", - "justinrainbow/json-schema": "^5.2", + "facile-it/paraunit": "^1.3.1 || ^2.4", + "infection/infection": "^0.29.8", + "justinrainbow/json-schema": "^5.3 || ^6.0", "keradus/cli-executor": "^2.1", - "mikey179/vfsstream": "^1.6.11", + "mikey179/vfsstream": "^1.6.12", "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4", - "phpunit/phpunit": "^9.6 || ^10.5.5 || ^11.0.2", - "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", - "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", + "phpunit/phpunit": "^9.6.21 || ^10.5.38 || ^11.4.3", + "symfony/var-dumper": "^5.4.47 || ^6.4.15 || ^7.1.8", + "symfony/yaml": "^5.4.45 || ^6.4.13 || ^7.1.6" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -281,7 +469,10 @@ "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/Fixer/Internal/*" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -306,7 +497,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.52.1" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.65.0" }, "funding": [ { @@ -314,7 +505,7 @@ "type": "github" } ], - "time": "2024-03-19T21:02:43+00:00" + "time": "2024-11-25T00:39:24+00:00" }, { "name": "psr/container", @@ -421,16 +612,16 @@ }, { "name": "psr/log", - "version": "3.0.0", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe5ea303b0887d5caefd3d431c3e61ad47037001", - "reference": "fe5ea303b0887d5caefd3d431c3e61ad47037001", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -465,22 +656,552 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.0" + "source": "https://github.com/php-fig/log/tree/3.0.2" + }, + "time": "2024-09-11T13:17:53+00:00" + }, + { + "name": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.5", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", + "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.2", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35", + "react/socket": "^1.8", + "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/child-process/issues", + "source": "https://github.com/reactphp/child-process/tree/v0.6.5" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-09-16T13:41:56+00:00" + }, + { + "name": "react/dns", + "version": "v1.13.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Dns\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async DNS resolver for ReactPHP", + "keywords": [ + "async", + "dns", + "dns-resolver", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.13.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-13T14:18:03+00:00" + }, + { + "name": "react/event-loop", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/event-loop.git", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\EventLoop\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", + "keywords": [ + "asynchronous", + "event-loop" + ], + "support": { + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-13T13:48:05+00:00" + }, + { + "name": "react/promise", + "version": "v3.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/promise.git", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/promise/zipball/8a164643313c71354582dc850b42b33fa12a4b63", + "reference": "8a164643313c71354582dc850b42b33fa12a4b63", + "shasum": "" + }, + "require": { + "php": ">=7.1.0" + }, + "require-dev": { + "phpstan/phpstan": "1.10.39 || 1.4.10", + "phpunit/phpunit": "^9.6 || ^7.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "React\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "A lightweight implementation of CommonJS Promises/A for PHP", + "keywords": [ + "promise", + "promises" + ], + "support": { + "issues": "https://github.com/reactphp/promise/issues", + "source": "https://github.com/reactphp/promise/tree/v3.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-05-24T10:39:05+00:00" + }, + { + "name": "react/socket", + "version": "v1.16.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/socket.git", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.13", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3.3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Socket\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", + "keywords": [ + "Connection", + "Socket", + "async", + "reactphp", + "stream" + ], + "support": { + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.16.0" }, - "time": "2021-07-14T16:46:02+00:00" + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-07-26T10:38:09+00:00" + }, + { + "name": "react/stream", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/stream.git", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" + }, + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Stream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", + "keywords": [ + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" + ], + "support": { + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.4.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-11T12:45:25+00:00" }, { "name": "sebastian/diff", - "version": "6.0.1", + "version": "6.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ab83243ecc233de5655b76f577711de9f842e712" + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ab83243ecc233de5655b76f577711de9f842e712", - "reference": "ab83243ecc233de5655b76f577711de9f842e712", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/b4ccd857127db5d41a5b676f24b51371d76d8544", + "reference": "b4ccd857127db5d41a5b676f24b51371d76d8544", "shasum": "" }, "require": { @@ -526,7 +1247,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", "security": "https://github.com/sebastianbergmann/diff/security/policy", - "source": "https://github.com/sebastianbergmann/diff/tree/6.0.1" + "source": "https://github.com/sebastianbergmann/diff/tree/6.0.2" }, "funding": [ { @@ -534,20 +1255,20 @@ "type": "github" } ], - "time": "2024-03-02T07:30:33+00:00" + "time": "2024-07-03T04:53:05+00:00" }, { "name": "symfony/console", - "version": "v7.0.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5" + "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", - "reference": "fde915cd8e7eb99b3d531d3d5c09531429c3f9e5", + "url": "https://api.github.com/repos/symfony/console/zipball/23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", + "reference": "23c8aae6d764e2bae02d2a99f7532a7f6ed619cf", "shasum": "" }, "require": { @@ -611,7 +1332,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.6" + "source": "https://github.com/symfony/console/tree/v7.2.0" }, "funding": [ { @@ -627,20 +1348,20 @@ "type": "tidelift" } ], - "time": "2024-04-01T11:04:53+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.4.0", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf" + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf", - "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", + "reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "shasum": "" }, "require": { @@ -649,7 +1370,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -678,7 +1399,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.4.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" }, "funding": [ { @@ -694,20 +1415,20 @@ "type": "tidelift" } ], - "time": "2023-05-23T14:45:45+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e" + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/834c28d533dd0636f910909d01b9ff45cc094b5e", - "reference": "834c28d533dd0636f910909d01b9ff45cc094b5e", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", + "reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "shasum": "" }, "require": { @@ -758,7 +1479,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" }, "funding": [ { @@ -774,20 +1495,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v3.4.2", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "4e64b49bf370ade88e567de29465762e316e4224" + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/4e64b49bf370ade88e567de29465762e316e4224", - "reference": "4e64b49bf370ade88e567de29465762e316e4224", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", + "reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "shasum": "" }, "require": { @@ -797,7 +1518,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -834,7 +1555,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" }, "funding": [ { @@ -850,20 +1571,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T14:51:35+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/filesystem", - "version": "v7.0.6", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "408105dff4c104454100730bdfd1a9cdd993f04d" + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/408105dff4c104454100730bdfd1a9cdd993f04d", - "reference": "408105dff4c104454100730bdfd1a9cdd993f04d", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/b8dce482de9d7c9fe2891155035a7248ab5c7fdb", + "reference": "b8dce482de9d7c9fe2891155035a7248ab5c7fdb", "shasum": "" }, "require": { @@ -871,6 +1592,9 @@ "symfony/polyfill-ctype": "~1.8", "symfony/polyfill-mbstring": "~1.8" }, + "require-dev": { + "symfony/process": "^6.4|^7.0" + }, "type": "library", "autoload": { "psr-4": { @@ -897,7 +1621,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.6" + "source": "https://github.com/symfony/filesystem/tree/v7.2.0" }, "funding": [ { @@ -913,20 +1637,20 @@ "type": "tidelift" } ], - "time": "2024-03-21T19:37:36+00:00" + "time": "2024-10-25T15:15:23+00:00" }, { "name": "symfony/finder", - "version": "v7.0.0", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56" + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", - "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56", + "url": "https://api.github.com/repos/symfony/finder/zipball/6de263e5868b9a137602dd1e33e4d48bfae99c49", + "reference": "6de263e5868b9a137602dd1e33e4d48bfae99c49", "shasum": "" }, "require": { @@ -961,7 +1685,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.0" + "source": "https://github.com/symfony/finder/tree/v7.2.0" }, "funding": [ { @@ -977,20 +1701,20 @@ "type": "tidelift" } ], - "time": "2023-10-31T17:59:56+00:00" + "time": "2024-10-23T06:56:12+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.0.0", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f" + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f", - "reference": "700ff4096e346f54cb628ea650767c8130f1001f", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", + "reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", "shasum": "" }, "require": { @@ -1028,7 +1752,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.0" + "source": "https://github.com/symfony/options-resolver/tree/v7.2.0" }, "funding": [ { @@ -1044,24 +1768,24 @@ "type": "tidelift" } ], - "time": "2023-08-08T10:20:21+00:00" + "time": "2024-11-20T11:17:29+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ef4d7e442ca910c4764bce785146269b30cb5fc4", - "reference": "ef4d7e442ca910c4764bce785146269b30cb5fc4", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -1072,8 +1796,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1107,7 +1831,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -1123,24 +1847,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/32a9da87d7b3245e09ac426c83d334ae9f06f80f", - "reference": "32a9da87d7b3245e09ac426c83d334ae9f06f80f", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -1148,8 +1872,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1185,7 +1909,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -1201,24 +1925,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/bc45c394692b948b4d383a08d7753968bed9a83d", - "reference": "bc45c394692b948b4d383a08d7753968bed9a83d", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -1226,8 +1950,8 @@ "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1266,7 +1990,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -1282,24 +2006,24 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec", - "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -1346,7 +2070,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -1362,30 +2086,30 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", - "reference": "87b68208d5c1188808dd7839ee1e6c8ec3b02f1b", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1426,7 +2150,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -1442,30 +2166,30 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.29.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/c565ad1e63f30e7477fc40738343c62b40bc672d", - "reference": "c565ad1e63f30e7477fc40738343c62b40bc672d", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" + "url": "https://github.com/symfony/polyfill", + "name": "symfony/polyfill" } }, "autoload": { @@ -1502,7 +2226,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.29.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -1518,20 +2242,20 @@ "type": "tidelift" } ], - "time": "2024-01-29T20:11:03+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9" + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/0e7727191c3b71ebec6d529fa0e50a01ca5679e9", - "reference": "0e7727191c3b71ebec6d529fa0e50a01ca5679e9", + "url": "https://api.github.com/repos/symfony/process/zipball/d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", + "reference": "d34b22ba9390ec19d2dd966c40aa9e8462f27a7e", "shasum": "" }, "require": { @@ -1563,7 +2287,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.0.4" + "source": "https://github.com/symfony/process/tree/v7.2.0" }, "funding": [ { @@ -1579,25 +2303,26 @@ "type": "tidelift" } ], - "time": "2024-02-22T20:27:20+00:00" + "time": "2024-11-06T14:24:19+00:00" }, { "name": "symfony/service-contracts", - "version": "v3.4.2", + "version": "v3.5.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e" + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/11bbf19a0fb7b36345861e85c5768844c552906e", - "reference": "11bbf19a0fb7b36345861e85c5768844c552906e", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", + "reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "shasum": "" }, "require": { "php": ">=8.1", - "psr/container": "^1.1|^2.0" + "psr/container": "^1.1|^2.0", + "symfony/deprecation-contracts": "^2.5|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -1605,7 +2330,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "3.4-dev" + "dev-main": "3.5-dev" }, "thanks": { "name": "symfony/contracts", @@ -1645,7 +2370,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.4.2" + "source": "https://github.com/symfony/service-contracts/tree/v3.5.1" }, "funding": [ { @@ -1661,20 +2386,20 @@ "type": "tidelift" } ], - "time": "2023-12-19T21:51:00+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.0.3", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112" + "reference": "696f418b0d722a4225e1c3d95489d262971ca924" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/983900d6fddf2b0cbaacacbbad07610854bd8112", - "reference": "983900d6fddf2b0cbaacacbbad07610854bd8112", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/696f418b0d722a4225e1c3d95489d262971ca924", + "reference": "696f418b0d722a4225e1c3d95489d262971ca924", "shasum": "" }, "require": { @@ -1707,7 +2432,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.3" + "source": "https://github.com/symfony/stopwatch/tree/v7.2.0" }, "funding": [ { @@ -1723,20 +2448,20 @@ "type": "tidelift" } ], - "time": "2024-01-23T15:02:46+00:00" + "time": "2024-09-25T14:21:43+00:00" }, { "name": "symfony/string", - "version": "v7.0.4", + "version": "v7.2.0", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b" + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/f5832521b998b0bec40bee688ad5de98d4cf111b", - "reference": "f5832521b998b0bec40bee688ad5de98d4cf111b", + "url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", + "reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "shasum": "" }, "require": { @@ -1750,6 +2475,7 @@ "symfony/translation-contracts": "<2.5" }, "require-dev": { + "symfony/emoji": "^7.1", "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", @@ -1793,7 +2519,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.4" + "source": "https://github.com/symfony/string/tree/v7.2.0" }, "funding": [ { @@ -1809,16 +2535,16 @@ "type": "tidelift" } ], - "time": "2024-02-01T13:17:36+00:00" + "time": "2024-11-13T13:31:26+00:00" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], + "platform": {}, + "platform-dev": {}, "plugin-api-version": "2.6.0" } diff --git a/tools/phpstan/composer.json b/tools/phpstan/composer.json index 5929f61..05bdf18 100644 --- a/tools/phpstan/composer.json +++ b/tools/phpstan/composer.json @@ -1,6 +1,6 @@ { "require": { - "phpstan/phpstan": "^1.10.46", - "phpstan/phpstan-symfony": "^1.3" + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-symfony": "^2.0" } } diff --git a/tools/phpstan/composer.lock b/tools/phpstan/composer.lock index a60ff14..ca169e3 100644 --- a/tools/phpstan/composer.lock +++ b/tools/phpstan/composer.lock @@ -4,24 +4,24 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "f6c9c5779f7c300fc599de7ba6b07b5b", + "content-hash": "c30e4428cdc3129158bc0257ebe4cb6c", "packages": [ { "name": "phpstan/phpstan", - "version": "1.10.66", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd" + "reference": "46b4d3529b12178112d9008337beda0cc2a1a6b4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/94779c987e4ebd620025d9e5fdd23323903950bd", - "reference": "94779c987e4ebd620025d9e5fdd23323903950bd", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/46b4d3529b12178112d9008337beda0cc2a1a6b4", + "reference": "46b4d3529b12178112d9008337beda0cc2a1a6b4", "shasum": "" }, "require": { - "php": "^7.2|^8.0" + "php": "^7.4|^8.0" }, "conflict": { "phpstan/phpstan-shim": "*" @@ -60,42 +60,37 @@ { "url": "https://github.com/phpstan", "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", - "type": "tidelift" } ], - "time": "2024-03-28T16:17:31+00:00" + "time": "2024-11-28T22:19:37+00:00" }, { "name": "phpstan/phpstan-symfony", - "version": "1.3.9", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan-symfony.git", - "reference": "a32bc86da24495025d7aafd1ba62444d4a364a98" + "reference": "1ef4dce2baabd464c2dd3109d051bad94efa1e79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/a32bc86da24495025d7aafd1ba62444d4a364a98", - "reference": "a32bc86da24495025d7aafd1ba62444d4a364a98", + "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/1ef4dce2baabd464c2dd3109d051bad94efa1e79", + "reference": "1ef4dce2baabd464c2dd3109d051bad94efa1e79", "shasum": "" }, "require": { "ext-simplexml": "*", - "php": "^7.2 || ^8.0", - "phpstan/phpstan": "^1.10.62" + "php": "^7.4 || ^8.0", + "phpstan/phpstan": "^2.0" }, "conflict": { "symfony/framework-bundle": "<3.0" }, "require-dev": { - "nikic/php-parser": "^4.13.0", "php-parallel-lint/php-parallel-lint": "^1.2", - "phpstan/phpstan-phpunit": "^1.3.11", - "phpstan/phpstan-strict-rules": "^1.5.1", - "phpunit/phpunit": "^8.5.29 || ^9.5", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "psr/container": "1.0 || 1.1.1", "symfony/config": "^5.4 || ^6.1", "symfony/console": "^5.4 || ^6.1", @@ -136,18 +131,18 @@ "description": "Symfony Framework extensions and rules for PHPStan", "support": { "issues": "https://github.com/phpstan/phpstan-symfony/issues", - "source": "https://github.com/phpstan/phpstan-symfony/tree/1.3.9" + "source": "https://github.com/phpstan/phpstan-symfony/tree/2.0.0" }, - "time": "2024-03-16T16:50:20+00:00" + "time": "2024-11-06T10:13:40+00:00" } ], "packages-dev": [], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": false, "prefer-lowest": false, - "platform": [], - "platform-dev": [], + "platform": {}, + "platform-dev": {}, "plugin-api-version": "2.6.0" }