From aa9752ce5c7c2ac0bd05eb27958f68e464a6e575 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Fri, 14 Jun 2024 01:03:38 +0000 Subject: [PATCH 01/31] update providers with Rotess Provider --- config/app.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/app.php b/config/app.php index ddeb918ec94a..aaf1ada9dd51 100644 --- a/config/app.php +++ b/config/app.php @@ -202,6 +202,7 @@ return [ App\Providers\ClientPortalServiceProvider::class, App\Providers\NinjaTranslationServiceProvider::class, App\Providers\StaticServiceProvider::class, + App\PaymentDrivers\Rotessa\Providers\ServiceProvider::class ], /* From 2b29d4c7b817ae9935f2aa8b8e6269985eb04362 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Fri, 14 Jun 2024 01:04:10 +0000 Subject: [PATCH 02/31] add migration to add rotessa gateway --- .../2024_06_11_231143_add_rotessa_gateway.php | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 database/migrations/2024_06_11_231143_add_rotessa_gateway.php diff --git a/database/migrations/2024_06_11_231143_add_rotessa_gateway.php b/database/migrations/2024_06_11_231143_add_rotessa_gateway.php new file mode 100644 index 000000000000..264c8b0ee604 --- /dev/null +++ b/database/migrations/2024_06_11_231143_add_rotessa_gateway.php @@ -0,0 +1,56 @@ +first(); + $count = (int) Gateway::count(); + + $configuration = new \stdClass; + $configuration->api_key = ''; + $configuration->test_mode = true; + + if (!$record) { + $gateway = new Gateway; + } else { + $gateway = $record; + } + + $gateway->id = $count + 4000; + $gateway->name = 'Rotessa'; + $gateway->key = Str::lower(Str::random(32)); + $gateway->provider = 'Rotessa'; + $gateway->is_offsite = true; + $gateway->fields = \json_encode($configuration); + $gateway->visible = 1; + $gateway->site_url = "https://rotessa.com"; + $gateway->default_gateway_type_id = 2; + $gateway->save(); + + Gateway::query()->where('name','=', 'Rotessa')->update(['visible' => 1]); + + \DB::statement('SET FOREIGN_KEY_CHECKS=1;'); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Gateway::where('name', '=', 'Rotessa')->delete(); + } +}; From f3b4bd57059605c798c547f2cdfb1ab0ebb07d58 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Fri, 14 Jun 2024 16:06:50 +0000 Subject: [PATCH 03/31] add package --- .../Rotessa/DataProviders/CAProvinces.php | 55 ++ .../Rotessa/DataProviders/Frequencies.php | 19 + .../Rotessa/Events/CacheGateways.php | 11 + .../Rotessa/Helpers/helpers.php | 6 + .../Rotessa/Listeners/CacheGateways.php | 28 + app/PaymentDrivers/Rotessa/Models/Gateway.php | 23 + app/PaymentDrivers/Rotessa/PaymentMethod.php | 261 ++++++++ app/PaymentDrivers/Rotessa/Providers/.gitkeep | 0 .../Providers/EventServiceProvider.php | 21 + .../Rotessa/Providers/ServiceProvider.php | 83 +++ .../Rotessa/Resources/Customer.php | 22 + .../Rotessa/Resources/Transaction.php | 23 + .../Rotessa/View/Components/Components.php | 118 ++++ .../Rotessa/View/Composers/Composer.php | 16 + app/PaymentDrivers/Rotessa/composer.json | 61 ++ app/PaymentDrivers/Rotessa/composer.lock | 44 ++ .../Rotessa/config/gateway_types.php | 16 + .../bank_transfer/CA/details.blade.php | 4 + .../rotessa/bank_transfer/authorize.blade.php | 35 ++ .../rotessa/bank_transfer/pay.blade.php | 91 +++ .../rotessa/components/account.blade.php | 31 + .../rotessa/components/address.blade.php | 59 ++ .../components/banks/CA/bank.blade.php | 17 + .../components/banks/US/bank.blade.php | 28 + .../rotessa/components/contact.blade.php | 69 +++ .../components/dropdowns/country/CA.blade.php | 12 + .../components/dropdowns/country/US.blade.php | 12 + .../Rotessa/vendor/autoload.php | 25 + .../Rotessa/vendor/composer/ClassLoader.php | 579 ++++++++++++++++++ .../vendor/composer/InstalledVersions.php | 359 +++++++++++ .../Rotessa/vendor/composer/LICENSE | 21 + .../vendor/composer/autoload_classmap.php | 69 +++ .../vendor/composer/autoload_files.php | 10 + .../vendor/composer/autoload_namespaces.php | 9 + .../Rotessa/vendor/composer/autoload_psr4.php | 14 + .../Rotessa/vendor/composer/autoload_real.php | 48 ++ .../vendor/composer/autoload_static.php | 122 ++++ .../Rotessa/vendor/composer/installed.json | 32 + .../Rotessa/vendor/composer/installed.php | 32 + .../Rotessa/vendor/karneaud/omnipay-rotessa | 1 + app/PaymentDrivers/RotessaPaymentDriver.php | 109 ++++ 41 files changed, 2595 insertions(+) create mode 100644 app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php create mode 100644 app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php create mode 100644 app/PaymentDrivers/Rotessa/Events/CacheGateways.php create mode 100644 app/PaymentDrivers/Rotessa/Helpers/helpers.php create mode 100644 app/PaymentDrivers/Rotessa/Listeners/CacheGateways.php create mode 100644 app/PaymentDrivers/Rotessa/Models/Gateway.php create mode 100755 app/PaymentDrivers/Rotessa/PaymentMethod.php create mode 100644 app/PaymentDrivers/Rotessa/Providers/.gitkeep create mode 100644 app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php create mode 100644 app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php create mode 100644 app/PaymentDrivers/Rotessa/Resources/Customer.php create mode 100644 app/PaymentDrivers/Rotessa/Resources/Transaction.php create mode 100644 app/PaymentDrivers/Rotessa/View/Components/Components.php create mode 100644 app/PaymentDrivers/Rotessa/View/Composers/Composer.php create mode 100644 app/PaymentDrivers/Rotessa/composer.json create mode 100644 app/PaymentDrivers/Rotessa/composer.lock create mode 100644 app/PaymentDrivers/Rotessa/config/gateway_types.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php create mode 100755 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php create mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/autoload.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/ClassLoader.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/LICENSE create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_psr4.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/installed.json create mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/installed.php create mode 160000 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa create mode 100644 app/PaymentDrivers/RotessaPaymentDriver.php diff --git a/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php b/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php new file mode 100644 index 000000000000..275e79cfad4e --- /dev/null +++ b/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php @@ -0,0 +1,55 @@ + 'Alberta', + 'BC' => 'British Columbia', + 'MB' => 'Manitoba', + 'NB' => 'New Brunswick', + 'NL' => 'Newfoundland And Labrador', + 'NS' => 'Nova Scotia', + 'ON' => 'Ontario', + 'PE' => 'Prince Edward Island', + 'QC' => 'Quebec', + 'SK' => 'Saskatchewan', + 'NT' => 'Northwest Territories', + 'NU' => 'Nunavut', + 'YT' => 'Yukon' + ]; + + /** + * Get the name of the province or territory for a given abbreviation. + * + * @param string $abbreviation + * @return string + */ + public static function getName($abbreviation) { + return self::$provinces[$abbreviation]; + } + + /** + * Get all provinces and territories. + * + * @return array + */ + public static function get() { + return self::$provinces; + } + + /** + * Get the abbreviation for a given province or territory name. + * + * @param string $name + * @return string + */ + public static function getAbbreviation($name) { + return array_search(ucwords($name), self::$provinces); + } +} diff --git a/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php b/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php new file mode 100644 index 000000000000..ca5623c1694b --- /dev/null +++ b/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php @@ -0,0 +1,19 @@ +where('name', 'Rotessa')->isEmpty()) { + $gateways = Gateway::orderBy('id')->get(); + } + + $gateways = $gateways->map(fn($item) => $item->name == 'Rotessa'? RotessaGateway::find($item->toArray()['id']) : $item ); + + Cache::forever('gateways', $gateways); + } +} + diff --git a/app/PaymentDrivers/Rotessa/Models/Gateway.php b/app/PaymentDrivers/Rotessa/Models/Gateway.php new file mode 100644 index 000000000000..55405dbd7f5f --- /dev/null +++ b/app/PaymentDrivers/Rotessa/Models/Gateway.php @@ -0,0 +1,23 @@ +name == 'Rotessa' && empty($options)) { + $options = $gateway_types; + } + + return $options; + } +} + diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php new file mode 100755 index 000000000000..9d67edfa6fe3 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -0,0 +1,261 @@ +rotessa = $rotessa; + $this->rotessa->init(); + } + + /** + * Show the authorization page for Rotessa. + * + * @param array $data + * @return \Illuminate\View\View + */ + public function authorizeView(array $data): View + { + $data['contact'] = collect($data['client']->contacts->firstWhere('is_primary', 1)->toArray())->merge([ + 'home_phone' => $data['client']->phone, + 'custom_identifier' => $data['client']->number . substr(uniqid(),0,4), + 'name' => $data['client']->name, + 'id' => null + ] )->all(); + $data['gateway'] = $this->rotessa; + $data['gateway_type_id'] = (int) request('method'); + $data['account'] = [ + 'routing_number' => $data['client']->routing_id, + 'country' => $data['client']->country->iso_3166_2 + ]; + $data['address'] = collect($data['client']->toArray())->merge(['country' => $data['client']->country->iso_3166_2 ])->all(); + + return view('rotessa::bank_transfer.authorize', $data); + } + + protected function findOrCreateCustomer(Request $request) + { + $result = null; $data = []; + $customer = new Customer( + $request->merge(['id' => $request->input('id') ] + + ['address' => $request->only('address_1','address_2','city','postal_code','province_code','country') ])->all() + ); + try { + $existing = ClientGatewayToken::query() + ->where('company_gateway_id', $this->rotessa->company_gateway->id) + ->where('client_id', $this->rotessa->client->id) + ->first(); + $data = array_filter(Arr::except($customer->jsonSerialize(),['custom_identifier'])); + if ($existing && $existing->token == encrypt($data)) return $existing->gateway_customer_reference; + + $result = $this->rotessa->gateway->authorize($customer->resolve())->send(); + if ($result->isSuccessful()) { + $customer = new Customer($result->getData()); + $data = array_filter(Arr::except($customer->jsonSerialize(),['custom_identifier'])); + $this->rotessa->storeGatewayToken( [ + 'payment_meta' => $customer->resolve() + ['brand' => 'Rotessa'], + 'token' => encrypt($data), + 'payment_method_id' => (int) $request->input("gateway_type_id"), + ], ['gateway_customer_reference' => + $result->getParameter('id') + , 'routing_number' => $result->getParameter('routing_number') ?? $result->getParameter('transit_number')]); + + return $result->getParameter('id'); + } + + throw new \Exception($result->getMessage(), (int) $result->getCode()); + + } catch (\Throwable $th) { + $data = [ + 'transaction_reference' => null, + 'transaction_response' => $th->getMessage(), + 'success' => false, + 'description' => $th->getMessage(), + 'code' =>(int) $th->getCode() + ]; + + SystemLogger::dispatch(['server_response' => is_null($result) ? '' : $result->getData(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->rotessa->client, $this->rotessa->client->company); + + throw $th; + } + } + + /** + * Handle the authorization page for Rotessa. + * + * @param Request $request + * @return RedirectResponse + */ + public function authorizeResponse(Request $request): RedirectResponse + { + try { + $request->validate([ + 'gateway_type_id' => ['required','integer'], + 'country' => ['required'], + 'name' => ['required'], + 'address_1' => ['required'], + 'address_2' => ['required'], + 'city' => ['required'], + 'email' => ['required','email:filter'], + 'province_code' => ['required','size:2','alpha'], + 'postal_code' => ['required'], + 'authorization_type' => ['required'], + 'account_number' => ['required'], + 'bank_name' => ['required'], + 'phone' => ['required'], + 'home_phone' => ['required'], + 'bank_account_type'=>['required_if:country,US'], + 'routing_number'=>['required_if:country,US'], + 'institution_number'=>['required_if:country,CA','numeric'], + 'transit_number'=>['required_if:country,CA','numeric'], + 'custom_identifier'=>['required_without:customer_id'], + 'customer_id'=>['required_without:custom_identifier','integer'], + ]); + $this->findOrCreateCustomer($request); + + return redirect()->route('client.payment_methods.index')->withMessage(ctrans('texts.payment_method_added')); + + } catch (\Throwable $e) { + return $this->rotessa->processInternallyFailedPayment($this->rotessa, new ClientPortalAuthorizationException( get_class( $e) . " : {$e->getMessage()}", (int) $e->getCode() )); + } + + return back()->withMessage(ctrans('texts.unable_to_verify_payment_method')); + } + + /** + * Payment view for the Rotessa. + * + * @param array $data + * @return \Illuminate\View\View + */ + public function paymentView(array $data): View + { + $data['gateway'] = $this->rotessa; + $data['amount'] = $data['total']['amount_with_fee']; + $data['due_date'] = date('Y-m-d', min(max(strtotime($data['invoices']->max('due_date')), strtotime('now')), strtotime('+1 day'))); + $data['process_date'] = $data['due_date']; + $data['currency'] = $this->rotessa->client->getCurrencyCode(); + $data['frequency'] = Frequencies::getOnePayment(); + $data['installments'] = 1; + $data['invoice_nums'] = $data['invoices']->pluck('invoice_number')->join(', '); + return view('rotessa::bank_transfer.pay', $data ); + } + + /** + * Handle payments page for Rotessa. + * + * @param PaymentResponseRequest $request + * @return void + */ + public function paymentResponse(PaymentResponseRequest $request) + { + $response= null; + $customer = null; + try { + $request->validate([ + 'source' => ['required','string','exists:client_gateway_tokens,token'], + 'amount' => ['required','numeric'], + 'token_id' => ['required','integer','exists:client_gateway_tokens,id'], + 'process_date'=> ['required','date','after_or_equal:today'], + ]); + $customer = ClientGatewayToken::query() + ->where('company_gateway_id', $this->rotessa->company_gateway->id) + ->where('client_id', $this->rotessa->client->id) + ->where('id', (int) $request->input('token_id')) + ->where('token', $request->input('source')) + ->first(); + if(!$customer) throw new \Exception('Client gateway token not found!', 605); + + $transaction = new Transaction($request->only('frequency' ,'installments','amount','process_date','comment')); + $transaction->additional(['customer_id' => $customer->gateway_customer_reference]); + $transaction = array_filter( $transaction->resolve()); + $response = $this->rotessa->gateway->capture($transaction)->send(); + if(!$response->isSuccessful()) throw new \Exception($response->getMessage(), (int) $response->getCode()); + + return $this->processPendingPayment($response->getParameter('id'), (float) $response->getParameter('amount'), (int) $customer->gateway_type_id , $customer->token); + } catch(\Throwable $e) { + $this->processUnsuccessfulPayment( new InvalidResponseException($e->getMessage(), (int) $e->getCode()) ); + } + } + + public function processPendingPayment($payment_id, float $amount, int $gateway_type_id, $payment_method ) + { + $data = [ + 'payment_method' => $payment_method, + 'payment_type' => $gateway_type_id, + 'amount' => $amount, + 'transaction_reference' =>$payment_id, + 'gateway_type_id' => $gateway_type_id, + ]; + $payment = $this->rotessa->createPayment($data, Payment::STATUS_PENDING); + SystemLogger::dispatch( + [ 'data' => $data ], + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_SUCCESS, + 880, + $this->rotessa->client, + $this->rotessa->client->company, + ); + + return redirect()->route('client.payments.show', [ 'payment' => $this->rotessa->encodePrimaryKey($payment->id) ]); + } + + /** + * Handle unsuccessful payment for Rotessa. + * + * @param Exception $exception + * @throws PaymentFailed + * @return void + */ + public function processUnsuccessfulPayment(\Exception $exception): void + { + $this->rotessa->sendFailureMail($exception->getMessage()); + + SystemLogger::dispatch( + $exception->getMessage(), + SystemLog::CATEGORY_GATEWAY_RESPONSE, + SystemLog::EVENT_GATEWAY_FAILURE, + 880, + $this->rotessa->client, + $this->rotessa->client->company, + ); + + throw new PaymentFailed($exception->getMessage(), $exception->getCode()); + } +} diff --git a/app/PaymentDrivers/Rotessa/Providers/.gitkeep b/app/PaymentDrivers/Rotessa/Providers/.gitkeep new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php b/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php new file mode 100644 index 000000000000..0d61ecbce482 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php @@ -0,0 +1,21 @@ + [ + Listener::class, + ], + ]; +} diff --git a/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php b/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php new file mode 100644 index 000000000000..af11a242f209 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php @@ -0,0 +1,83 @@ +registerConfig(); + $this->registerTranslations(); + $this->registerViews(); + + event(new CacheGateways); + } + + /** + * Register config. + */ + protected function registerConfig(): void + { + $this->mergeConfigFrom(app_path("PaymentDrivers/{$this->moduleName}/config/gateway_types.php"),$this->moduleNameLower); + } + /** + * Register the service provider. + */ + public function register(): void + { + $this->app->register(EventServiceProvider::class); + + } + + /** + * Register translations. + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/'.$this->moduleNameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->moduleNameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(app_path("PaymentDrivers/{$this->moduleName}resources/lang"), $this->moduleNameLower); + $this->loadJsonTranslationsFrom(app_path("PaymentDrivers/{$this->moduleName}resources/lang")); + } + } + + /** + * Register views. + */ + public function registerViews(): void + { + $viewPath = resource_path('views/portal/ninja2020/gateways/'.$this->moduleNameLower); + $sourcePath = app_path('PaymentDrivers/Rotessa/resources/views/gateways/rotessa'); + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); + Blade::componentNamespace('App\\PaymentDrivers\\Rotessa\\View\\Components', $this->moduleNameLower); + } + + private function getPublishableViewPaths(): array + { + $paths = [app_path('PaymentDrivers/Rotessa/resources/views/gateways/rotessa')]; + foreach (config('view.paths') as $path) { + if (is_dir($path.'/'.$this->moduleNameLower)) { + $paths[] = $path.'/'.$this->moduleNameLower; + } + } + + return $paths; + } +} diff --git a/app/PaymentDrivers/Rotessa/Resources/Customer.php b/app/PaymentDrivers/Rotessa/Resources/Customer.php new file mode 100644 index 000000000000..c2514dfdd8c1 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/Resources/Customer.php @@ -0,0 +1,22 @@ +resource->jsonSerialize(); + } + + function toArray(Request $request) : array { + return $this->additional + parent::toArray($request); + } +} diff --git a/app/PaymentDrivers/Rotessa/Resources/Transaction.php b/app/PaymentDrivers/Rotessa/Resources/Transaction.php new file mode 100644 index 000000000000..84ce332860f8 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/Resources/Transaction.php @@ -0,0 +1,23 @@ +resource->jsonSerialize(); + } + + function toArray(Request $request) : array { + return $this->additional + parent::toArray($request); + } +} diff --git a/app/PaymentDrivers/Rotessa/View/Components/Components.php b/app/PaymentDrivers/Rotessa/View/Components/Components.php new file mode 100644 index 000000000000..b18269f35f54 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/View/Components/Components.php @@ -0,0 +1,118 @@ +contact = $contact; + $this->attributes = $this->newAttributeBag(Arr::only($this->contact, $this->fields) ); + } + + private $fields = [ + 'name', + 'email', + 'home_phone', + 'phone', + 'custom_identifier', + 'customer_type' , + 'id' + ]; + + private $defaults = [ + 'customer_type' => "Business", + 'customer_identifier' => null, + 'id' => null + ]; + + public function render() + { + return $this->view('rotessa::components.contact', $this->attributes->getAttributes(), $this->defaults ); + } +} + +// Address Component +class AddressComponent extends Component +{ + private $fields = [ + 'address_1', + 'address_2', + 'city', + 'postal_code', + 'province_code', + 'country' + ]; + + private $defaults = [ + 'country' => 'US' + ]; + + public array $address; + + public function __construct(array $address) { + $this->address = $address; + if(strlen($this->address['state']) > 2 ) { + $this->address['state'] = $this->address['country'] == 'US' ? array_search($this->address['state'], USStates::$states) : CAProvinces::getAbbreviation($this->address['state']); + } + + $this->attributes = $this->newAttributeBag( + Arr::only(Arr::mapWithKeys($this->address, function ($item, $key) { + return in_array($key, ['address1','address2','state'])?[ (['address1'=>'address_1','address2'=>'address_2','state'=>'province_code'])[$key] => $item ] :[ $key => $item ]; + }), + $this->fields) ); + } + + + public function render() + { + + return $this->view('rotessa::components.address', $this->attributes->getAttributes(), $this->defaults ); + } +} + +// AmericanBankInfo Component +class AccountComponent extends Component +{ + private $fields = [ + 'bank_account_type', + 'routing_number', + 'institution_number', + 'transit_number', + 'bank_name', + 'country', + 'account_number' + ]; + + private $defaults = [ + 'bank_account_type' => null, + 'routing_number' => null, + 'institution_number' => null, + 'transit_number' => null, + 'bank_name' => ' ', + 'account_number' => null, + 'country' => 'US', + "authorization_type" => 'Online' + ]; + + public array $account; + + public function __construct(array $account) { + $this->account = $account; + $this->attributes = $this->newAttributeBag(Arr::only($this->account, $this->fields) ); + } + + public function render() + { + return $this->view('rotessa::components.account', $this->attributes->getAttributes(), $this->defaults ); + } +} diff --git a/app/PaymentDrivers/Rotessa/View/Composers/Composer.php b/app/PaymentDrivers/Rotessa/View/Composers/Composer.php new file mode 100644 index 000000000000..fb3c126a3555 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/View/Composers/Composer.php @@ -0,0 +1,16 @@ +with('states', $states); +}); + +// CAProvinces View Composer +View::composer(['rotessa::components.address','rotessa::components.banks.CA.bank','rotessa::components.dropdowns.country.CA'], function ($view) { + $provinces = CAProvinces::get(); + $view->with('provinces', $provinces); +}); \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/composer.json b/app/PaymentDrivers/Rotessa/composer.json new file mode 100644 index 000000000000..6f9ba511a9b4 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/composer.json @@ -0,0 +1,61 @@ +{ + "name": "karneaud/invoiceninja-rotessa", + "description": "Invoice Ninja with Rotessa gateway", + "type":"laravel-module", + "keywords": [ + "invoice ninja", + "laravel", + "rotessa" + ], + "license": ["Attribution Assurance License","Proprietary License","BSD 3-Clause License"], + "authors": [ + { + "name": "Kendall Arneaud", + "email": "kendall.arneaud@gmail.com" + } + ], + "autoload": { + "classmap": ["./View/Components/Components.php"], + "psr-4": { + "App\\PaymentDrivers\\Rotessa\\":"./", + "App\\PaymentDrivers\\Rotessa\\View\\Components\\":"./View/Components/", + "App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\": "Database/Seeders/" + }, + "files": [ + "./View/Composers/Composer.php" + ] + }, + "config": { + "preferred-install": "dist", + "sort-packages": true, + "optimize-autoloader": true + }, + "repositories": [ + { + "type": "package", + "package": { + "name": "karneaud/omnipay-rotessa", + "source": { + "url": "https://github.com/karneaud/omnipay-rotessa.git", + "type": "git", + "reference": "master" + }, + "version": "1.0.0-beta", + "dist": { + "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip", + "type": "zip" + }, + "autoload": { + "psr-4": { + "Omnipay\\Rotessa\\":"./src/Omnipay/Rotessa/", + "Omnipay\\Rotessa\\Exception\\":"./src/Omnipay/Rotessa/Exception/" + }, + "classmap": ["./src/Omnipay/Rotessa/Exception/Exceptions.php"] + } + } + } + ], + "require": { + "karneaud/omnipay-rotessa": "v1.0.0-beta" + } +} diff --git a/app/PaymentDrivers/Rotessa/composer.lock b/app/PaymentDrivers/Rotessa/composer.lock new file mode 100644 index 000000000000..24dc1719cffb --- /dev/null +++ b/app/PaymentDrivers/Rotessa/composer.lock @@ -0,0 +1,44 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "4c8b93bd9cd92f484502fc665fdbe826", + "packages": [ + { + "name": "karneaud/omnipay-rotessa", + "version": "1.0.0-beta", + "source": { + "type": "git", + "url": "https://github.com/karneaud/omnipay-rotessa.git", + "reference": "master" + }, + "dist": { + "type": "zip", + "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip" + }, + "type": "library", + "autoload": { + "psr-4": { + "Omnipay\\Rotessa\\": "./src/Omnipay/Rotessa/", + "Omnipay\\Rotessa\\Exception\\": "./src/Omnipay/Rotessa/Exception/" + }, + "classmap": [ + "./src/Omnipay/Rotessa/Exception/Exceptions.php" + ] + } + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "karneaud/omnipay-rotessa": 10 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/app/PaymentDrivers/Rotessa/config/gateway_types.php b/app/PaymentDrivers/Rotessa/config/gateway_types.php new file mode 100644 index 000000000000..6ae509ae8dd0 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/config/gateway_types.php @@ -0,0 +1,16 @@ + [ + GatewayType::BANK_TRANSFER => [ + 'refund' => false, + 'token_billing' => true, + 'webhooks' => [], + ], + GatewayType::BACS => ['refund' => false, 'token_billing' => true, 'webhooks' => []], + GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => true, 'webhooks' => []], + GatewayType::ACSS => ['refund' => false, 'token_billing' => true, 'webhooks' => []] + ] +]; \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php new file mode 100644 index 000000000000..9492f3036fc1 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php @@ -0,0 +1,4 @@ +
Gateway:
+
{{ $brand }}
+
Account Number:
+
{{ $account_number }}
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php new file mode 100755 index 000000000000..70a0cfb7ba59 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php @@ -0,0 +1,35 @@ +@extends('portal.ninja2020.layout.payments', ['gateway_title' => $gateway->company_gateway->label, 'card_title' =>\App\Models\GatewayType::getAlias($gateway_type_id )]) + +@section('gateway_content') + @if(session()->has('ach_error')) +
+

{{ session('ach_error') }}

+
+ @endif + +
+ @csrf + + + + + + + + + + + + @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-bank-account', 'type' => 'submit']) + {{ ctrans('texts.add_payment_method') }} + @endcomponent +
+ + + +@endsection + +@section('gateway_footer') + +@endsection \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php new file mode 100644 index 000000000000..4e6e0c2a0b22 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php @@ -0,0 +1,91 @@ +@extends('portal.ninja2020.layout.payments', ['gateway_title' => 'Direct Debit', 'card_title' => 'Direct Debit']) + +@section('gateway_content') + @if (count($tokens) > 0) + + + @include('portal.ninja2020.gateways.includes.payment_details') + +
+ @csrf + + + + + + + + + + + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.pay_with')]) + @if (count($tokens) > 0) + @foreach ($tokens as $token) +
+ @endforeach + @endisset +
+ Process Date +
+
+ +
+ {{-- +
+ Insallments +
+
+ +
+ +
+ Frequency +
+
+ +
+ +
+ Comments +
+
+ +
--}} + @endcomponent +
+ @else + @component('portal.ninja2020.components.general.card-element-single', ['title' => 'Direct Debit', 'show_title' => false]) + {{ ctrans('texts.bank_account_not_linked') }} + + {{ ctrans('texts.add_payment_method') }} + @endcomponent + @endif + + @if (count($tokens) > 0) + @include('portal.ninja2020.gateways.includes.pay_now') + @endif +@endsection + +@push('footer') + +@endpush \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php new file mode 100644 index 000000000000..c42672255b00 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php @@ -0,0 +1,31 @@ +
+

+ Account Information +

+ +

+ Enter the information for the bank account +

+
+
+
+ Bank Name +
+
+ +
+
+ +
+
+ Account Number +
+
+ +
+
+ + + + +@include("rotessa::components.banks.$country.bank", compact('bank_account_type','routing_number','institution_number','transit_number')) \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php new file mode 100644 index 000000000000..9007501874c4 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php @@ -0,0 +1,59 @@ + +
+

+ Address Information +

+ +

+ Enter the address information for the account holder +

+
+
+
+ Address Line 1 +
+
+ +
+
+ +
+
+ Address Line 2 +
+
+ +
+
+ +
+
+ City +
+
+ +
+
+ +
+
+ Postal Code +
+
+ +
+
+ +
+
+ Country +
+
+ +
+ +
+
+
+ + @include("rotessa::components.dropdowns.country.$country",compact('province_code')) \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php new file mode 100644 index 000000000000..3c37b84741c6 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php @@ -0,0 +1,17 @@ +
+
+ Transit Number +
+
+ +
+
+ +
+
+ Institution Number +
+
+ +
+
diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php new file mode 100644 index 000000000000..07f7abee7b9a --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php @@ -0,0 +1,28 @@ + + +
+
+ Routing Number +
+
+ +
+
+ +
+
+ Account Type +
+
+
+
+ + +
+
+ + +
+
+
+
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php new file mode 100644 index 000000000000..827fc587f5ad --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php @@ -0,0 +1,69 @@ + +
+

+ Account Holder Information +

+ +

+ Enter the information for the account holder +

+
+ +
+
+ Full Name +
+
+ +
+
+ + +
+
+ Email Address +
+
+ +
+
+ +
+
+ Home Phone +
+
+ +
+
+ +
+
+ Other Phone +
+
+ +
+
+ +
+
+ Customer Type +
+
+
+
+ + +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php new file mode 100644 index 000000000000..f2d7a38a5ecb --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php @@ -0,0 +1,12 @@ +
+
+ Province Code +
+
+ +
+
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php new file mode 100644 index 000000000000..7c33af78d31a --- /dev/null +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php @@ -0,0 +1,12 @@ +
+
+ State +
+
+ +
+
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/autoload.php b/app/PaymentDrivers/Rotessa/vendor/autoload.php new file mode 100644 index 000000000000..ff18c070b772 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php b/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php new file mode 100644 index 000000000000..51e734a774b3 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE b/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE new file mode 100644 index 000000000000..f27399a042d9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php new file mode 100644 index 000000000000..45e77acc6441 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php @@ -0,0 +1,69 @@ + $baseDir . '/DataProviders/CAProvinces.php', + 'App\\PaymentDrivers\\Rotessa\\DataProviders\\Frequencies' => $baseDir . '/DataProviders/Frequencies.php', + 'App\\PaymentDrivers\\Rotessa\\Events\\CacheGateways' => $baseDir . '/Events/CacheGateways.php', + 'App\\PaymentDrivers\\Rotessa\\Listeners\\CacheGateways' => $baseDir . '/Listeners/CacheGateways.php', + 'App\\PaymentDrivers\\Rotessa\\Models\\Gateway' => $baseDir . '/Models/Gateway.php', + 'App\\PaymentDrivers\\Rotessa\\PaymentMethod' => $baseDir . '/PaymentMethod.php', + 'App\\PaymentDrivers\\Rotessa\\Providers\\EventServiceProvider' => $baseDir . '/Providers/EventServiceProvider.php', + 'App\\PaymentDrivers\\Rotessa\\Providers\\ServiceProvider' => $baseDir . '/Providers/ServiceProvider.php', + 'App\\PaymentDrivers\\Rotessa\\Resources\\Customer' => $baseDir . '/Resources/Customer.php', + 'App\\PaymentDrivers\\Rotessa\\Resources\\Transaction' => $baseDir . '/Resources/Transaction.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AccountComponent' => $baseDir . '/View/Components/Components.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AddressComponent' => $baseDir . '/View/Components/Components.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\ContactComponent' => $baseDir . '/View/Components/Components.php', + 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', + 'Omnipay\\Rotessa\\AbstractClient' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php', + 'Omnipay\\Rotessa\\ApiTrait' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php', + 'Omnipay\\Rotessa\\ClientInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php', + 'Omnipay\\Rotessa\\Exception\\BadRequestException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\InternalServerErrorException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\NotAcceptableException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\NotFoundException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\ServiceUnavailableException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\UnauthorizedException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\UnprocessableEntityException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\ValidationException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Gateway' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php', + 'Omnipay\\Rotessa\\Http\\Client' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php', + 'Omnipay\\Rotessa\\Http\\Response\\Response' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php', + 'Omnipay\\Rotessa\\IsValidTypeTrait' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php', + 'Omnipay\\Rotessa\\Message\\Request\\AbstractRequest' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php', + 'Omnipay\\Rotessa\\Message\\Request\\BaseRequest' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php', + 'Omnipay\\Rotessa\\Message\\Request\\DeleteTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetCustomers' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetCustomersId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PatchCustomersId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PatchTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostCustomers' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostCustomersShowWithCustomIdentifier' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedules' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesCreateWithCustomIdentifier' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesUpdateViaPost' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php', + 'Omnipay\\Rotessa\\Message\\Request\\RequestInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php', + 'Omnipay\\Rotessa\\Message\\Response\\AbstractResponse' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php', + 'Omnipay\\Rotessa\\Message\\Response\\BaseResponse' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php', + 'Omnipay\\Rotessa\\Message\\Response\\ResponseInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php', + 'Omnipay\\Rotessa\\Model\\AbstractModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php', + 'Omnipay\\Rotessa\\Model\\BaseModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php', + 'Omnipay\\Rotessa\\Model\\CustomerModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php', + 'Omnipay\\Rotessa\\Model\\CustomerPatchModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php', + 'Omnipay\\Rotessa\\Model\\ModelInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php', + 'Omnipay\\Rotessa\\Model\\TransactionScheduleModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php', + 'Omnipay\\Rotessa\\Model\\TransactionSchedulesIdBodyModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php', + 'Omnipay\\Rotessa\\Model\\TransactionSchedulesUpdateViaPostBodyModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php', + 'Omnipay\\Rotessa\\Object\\Address' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php', + 'Omnipay\\Rotessa\\Object\\AuthorizationType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php', + 'Omnipay\\Rotessa\\Object\\BankAccountType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php', + 'Omnipay\\Rotessa\\Object\\Country' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php', + 'Omnipay\\Rotessa\\Object\\CustomerType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php', + 'Omnipay\\Rotessa\\Object\\Frequency' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php', +); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php new file mode 100644 index 000000000000..1dfada572dbd --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php @@ -0,0 +1,10 @@ + $baseDir . '/View/Composers/Composer.php', +); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php new file mode 100644 index 000000000000..15a2ff3ad6d8 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception'), + 'Omnipay\\Rotessa\\' => array($vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa'), + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => array($baseDir . '/View/Components'), + 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => array($baseDir . '/Database/Seeders'), + 'App\\PaymentDrivers\\Rotessa\\' => array($baseDir . '/'), +); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php new file mode 100644 index 000000000000..c792b343f965 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php @@ -0,0 +1,48 @@ +register(true); + + $filesToLoad = \Composer\Autoload\ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$files; + $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { + if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { + $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; + + require $file; + } + }, null, null); + foreach ($filesToLoad as $fileIdentifier => $file) { + $requireFile($fileIdentifier, $file); + } + + return $loader; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php new file mode 100644 index 000000000000..4b6356219f6c --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php @@ -0,0 +1,122 @@ + __DIR__ . '/../..' . '/View/Composers/Composer.php', + ); + + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'Omnipay\\Rotessa\\Exception\\' => 26, + 'Omnipay\\Rotessa\\' => 16, + ), + 'A' => + array ( + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => 43, + 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => 44, + 'App\\PaymentDrivers\\Rotessa\\' => 27, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'Omnipay\\Rotessa\\Exception\\' => + array ( + 0 => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception', + ), + 'Omnipay\\Rotessa\\' => + array ( + 0 => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa', + ), + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => + array ( + 0 => __DIR__ . '/../..' . '/View/Components', + ), + 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => + array ( + 0 => __DIR__ . '/../..' . '/Database/Seeders', + ), + 'App\\PaymentDrivers\\Rotessa\\' => + array ( + 0 => __DIR__ . '/../..' . '/', + ), + ); + + public static $classMap = array ( + 'App\\PaymentDrivers\\Rotessa\\DataProviders\\CAProvinces' => __DIR__ . '/../..' . '/DataProviders/CAProvinces.php', + 'App\\PaymentDrivers\\Rotessa\\DataProviders\\Frequencies' => __DIR__ . '/../..' . '/DataProviders/Frequencies.php', + 'App\\PaymentDrivers\\Rotessa\\Events\\CacheGateways' => __DIR__ . '/../..' . '/Events/CacheGateways.php', + 'App\\PaymentDrivers\\Rotessa\\Listeners\\CacheGateways' => __DIR__ . '/../..' . '/Listeners/CacheGateways.php', + 'App\\PaymentDrivers\\Rotessa\\Models\\Gateway' => __DIR__ . '/../..' . '/Models/Gateway.php', + 'App\\PaymentDrivers\\Rotessa\\PaymentMethod' => __DIR__ . '/../..' . '/PaymentMethod.php', + 'App\\PaymentDrivers\\Rotessa\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/Providers/EventServiceProvider.php', + 'App\\PaymentDrivers\\Rotessa\\Providers\\ServiceProvider' => __DIR__ . '/../..' . '/Providers/ServiceProvider.php', + 'App\\PaymentDrivers\\Rotessa\\Resources\\Customer' => __DIR__ . '/../..' . '/Resources/Customer.php', + 'App\\PaymentDrivers\\Rotessa\\Resources\\Transaction' => __DIR__ . '/../..' . '/Resources/Transaction.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AccountComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AddressComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', + 'App\\PaymentDrivers\\Rotessa\\View\\Components\\ContactComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + 'Omnipay\\Rotessa\\AbstractClient' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php', + 'Omnipay\\Rotessa\\ApiTrait' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php', + 'Omnipay\\Rotessa\\ClientInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php', + 'Omnipay\\Rotessa\\Exception\\BadRequestException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\InternalServerErrorException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\NotAcceptableException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\NotFoundException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\ServiceUnavailableException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\UnauthorizedException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\UnprocessableEntityException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Exception\\ValidationException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', + 'Omnipay\\Rotessa\\Gateway' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php', + 'Omnipay\\Rotessa\\Http\\Client' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php', + 'Omnipay\\Rotessa\\Http\\Response\\Response' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php', + 'Omnipay\\Rotessa\\IsValidTypeTrait' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php', + 'Omnipay\\Rotessa\\Message\\Request\\AbstractRequest' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php', + 'Omnipay\\Rotessa\\Message\\Request\\BaseRequest' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php', + 'Omnipay\\Rotessa\\Message\\Request\\DeleteTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetCustomers' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetCustomersId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php', + 'Omnipay\\Rotessa\\Message\\Request\\GetTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PatchCustomersId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PatchTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostCustomers' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostCustomersShowWithCustomIdentifier' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedules' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesCreateWithCustomIdentifier' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php', + 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesUpdateViaPost' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php', + 'Omnipay\\Rotessa\\Message\\Request\\RequestInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php', + 'Omnipay\\Rotessa\\Message\\Response\\AbstractResponse' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php', + 'Omnipay\\Rotessa\\Message\\Response\\BaseResponse' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php', + 'Omnipay\\Rotessa\\Message\\Response\\ResponseInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php', + 'Omnipay\\Rotessa\\Model\\AbstractModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php', + 'Omnipay\\Rotessa\\Model\\BaseModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php', + 'Omnipay\\Rotessa\\Model\\CustomerModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php', + 'Omnipay\\Rotessa\\Model\\CustomerPatchModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php', + 'Omnipay\\Rotessa\\Model\\ModelInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php', + 'Omnipay\\Rotessa\\Model\\TransactionScheduleModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php', + 'Omnipay\\Rotessa\\Model\\TransactionSchedulesIdBodyModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php', + 'Omnipay\\Rotessa\\Model\\TransactionSchedulesUpdateViaPostBodyModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php', + 'Omnipay\\Rotessa\\Object\\Address' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php', + 'Omnipay\\Rotessa\\Object\\AuthorizationType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php', + 'Omnipay\\Rotessa\\Object\\BankAccountType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php', + 'Omnipay\\Rotessa\\Object\\Country' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php', + 'Omnipay\\Rotessa\\Object\\CustomerType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php', + 'Omnipay\\Rotessa\\Object\\Frequency' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.json b/app/PaymentDrivers/Rotessa/vendor/composer/installed.json new file mode 100644 index 000000000000..0e82da86c48f --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/installed.json @@ -0,0 +1,32 @@ +{ + "packages": [ + { + "name": "karneaud/omnipay-rotessa", + "version": "1.0.0-beta", + "version_normalized": "1.0.0.0-beta", + "source": { + "type": "git", + "url": "https://github.com/karneaud/omnipay-rotessa.git", + "reference": "master" + }, + "dist": { + "type": "zip", + "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip" + }, + "type": "library", + "installation-source": "source", + "autoload": { + "psr-4": { + "Omnipay\\Rotessa\\": "./src/Omnipay/Rotessa/", + "Omnipay\\Rotessa\\Exception\\": "./src/Omnipay/Rotessa/Exception/" + }, + "classmap": [ + "./src/Omnipay/Rotessa/Exception/Exceptions.php" + ] + }, + "install-path": "../karneaud/omnipay-rotessa" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.php b/app/PaymentDrivers/Rotessa/vendor/composer/installed.php new file mode 100644 index 000000000000..6a55666ddf6f --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/composer/installed.php @@ -0,0 +1,32 @@ + array( + 'name' => 'karneaud/invoiceninja-rotessa', + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'laravel-module', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + 'karneaud/invoiceninja-rotessa' => array( + 'pretty_version' => '1.0.0+no-version-set', + 'version' => '1.0.0.0', + 'reference' => null, + 'type' => 'laravel-module', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'karneaud/omnipay-rotessa' => array( + 'pretty_version' => '1.0.0-beta', + 'version' => '1.0.0.0-beta', + 'reference' => 'master', + 'type' => 'library', + 'install_path' => __DIR__ . '/../karneaud/omnipay-rotessa', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa new file mode 160000 index 000000000000..c3107930d3f9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa @@ -0,0 +1 @@ +Subproject commit c3107930d3f9d656ae3287241ebeded9a1daf8a9 diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php new file mode 100644 index 000000000000..de22db09112a --- /dev/null +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -0,0 +1,109 @@ + BankTransfer::class, + GatewayType::BACS => BankTransfer::class, + GatewayType::ACSS => BankTransfer::class, + GatewayType::DIRECT_DEBIT => BankTransfer::class + ]; + + public function init(): self + { + + $this->gateway = Omnipay::create( + $this->company_gateway->gateway->provider + ); + $this->gateway->initialize((array) $this->company_gateway->getConfig()); + return $this; + } + + public function gatewayTypes(): array + { + $types = []; + + if ($this->client + && isset($this->client->country) + && (in_array($this->client->country->iso_3166_2, ['US']) || ($this->client->gateway_tokens()->where('gateway_type_id', GatewayType::BANK_TRANSFER)->exists())) + ) { + $types[] = GatewayType::BANK_TRANSFER; + } + + if ($this->client + && $this->client->currency() + && in_array($this->client->currency()->code, ['CAD', 'USD']) + && isset($this->client->country) + && in_array($this->client->country->iso_3166_2, ['CA', 'US'])) { + $types[] = GatewayType::DIRECT_DEBIT; + $types[] = GatewayType::ACSS; + } + + return $types; + } + + + public function setPaymentMethod($payment_method_id) + { + $class = self::$methods[$payment_method_id]; + $this->payment_method = new $class($this); + + return $this; + } + + public function authorizeView(array $data) + { + return $this->payment_method->authorizeView($data); + } + + public function authorizeResponse($request) + { + return $this->payment_method->authorizeResponse($request); + } + + public function processPaymentView(array $data) + { + return $this->payment_method->paymentView($data); + } + + public function processPaymentResponse($request) + { + return $this->payment_method->paymentResponse($request); + } + + +} From a428196e92b72db24feb5f50065d9f9db4f052db Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Fri, 14 Jun 2024 16:12:31 +0000 Subject: [PATCH 04/31] update aliases --- app/PaymentDrivers/Rotessa/Helpers/helpers.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/PaymentDrivers/Rotessa/Helpers/helpers.php b/app/PaymentDrivers/Rotessa/Helpers/helpers.php index 67a240ca307c..2acfd7289cb6 100644 --- a/app/PaymentDrivers/Rotessa/Helpers/helpers.php +++ b/app/PaymentDrivers/Rotessa/Helpers/helpers.php @@ -3,4 +3,6 @@ include app_path("PaymentDrivers/Rotessa/vendor/autoload.php"); class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\BankTransfer"); -class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\ACH"); \ No newline at end of file +class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\DirectDebit"); +class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Acss"); +class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Bacs"); \ No newline at end of file From b31d65440b2cadf43da330319e950637476d34ed Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Fri, 14 Jun 2024 16:13:08 +0000 Subject: [PATCH 05/31] add appropriate class --- app/PaymentDrivers/RotessaPaymentDriver.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index de22db09112a..9313918b3b7e 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -20,6 +20,9 @@ use App\Models\GatewayType; use Omnipay\Rotessa\Gateway; use App\Utils\Traits\MakesHash; use App\PaymentDrivers\BaseDriver; +use App\PaymentDrivers\Rotessa\Bacs; +use App\PaymentDrivers\Rotessa\Acss; +use App\PaymentDrivers\Rotessa\DirectDebit; use App\PaymentDrivers\Rotessa\BankTransfer; class RotessaPaymentDriver extends BaseDriver @@ -38,9 +41,9 @@ class RotessaPaymentDriver extends BaseDriver public static $methods = [ GatewayType::BANK_TRANSFER => BankTransfer::class, - GatewayType::BACS => BankTransfer::class, - GatewayType::ACSS => BankTransfer::class, - GatewayType::DIRECT_DEBIT => BankTransfer::class + GatewayType::BACS => Bacs::class, + GatewayType::ACSS => Acss::class, + GatewayType::DIRECT_DEBIT => DirectDebit::class ]; public function init(): self From 94a4605e38d45c0b105787b6dd08dac5008965fc Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Mon, 17 Jun 2024 00:59:40 +0000 Subject: [PATCH 06/31] update gateway types --- app/PaymentDrivers/Rotessa/Helpers/helpers.php | 4 +--- app/PaymentDrivers/Rotessa/config/gateway_types.php | 4 ++-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/app/PaymentDrivers/Rotessa/Helpers/helpers.php b/app/PaymentDrivers/Rotessa/Helpers/helpers.php index 2acfd7289cb6..353379e5ca37 100644 --- a/app/PaymentDrivers/Rotessa/Helpers/helpers.php +++ b/app/PaymentDrivers/Rotessa/Helpers/helpers.php @@ -3,6 +3,4 @@ include app_path("PaymentDrivers/Rotessa/vendor/autoload.php"); class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\BankTransfer"); -class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\DirectDebit"); -class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Acss"); -class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Bacs"); \ No newline at end of file +class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Acss"); \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/config/gateway_types.php b/app/PaymentDrivers/Rotessa/config/gateway_types.php index 6ae509ae8dd0..9f851e3a3714 100644 --- a/app/PaymentDrivers/Rotessa/config/gateway_types.php +++ b/app/PaymentDrivers/Rotessa/config/gateway_types.php @@ -9,8 +9,8 @@ return [ 'token_billing' => true, 'webhooks' => [], ], - GatewayType::BACS => ['refund' => false, 'token_billing' => true, 'webhooks' => []], - GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => true, 'webhooks' => []], + //GatewayType::BACS => ['refund' => false, 'token_billing' => true, 'webhooks' => []], + //GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => true, 'webhooks' => []], GatewayType::ACSS => ['refund' => false, 'token_billing' => true, 'webhooks' => []] ] ]; \ No newline at end of file From dbfc1046ec9dd988d388d0084075d621ac2e7f26 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Mon, 17 Jun 2024 01:00:41 +0000 Subject: [PATCH 07/31] refactor classes to facilitiate import customers --- app/PaymentDrivers/Rotessa/PaymentMethod.php | 58 ++--------- app/PaymentDrivers/RotessaPaymentDriver.php | 102 +++++++++++++++++-- 2 files changed, 99 insertions(+), 61 deletions(-) diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php index 9d67edfa6fe3..884b59954647 100755 --- a/app/PaymentDrivers/Rotessa/PaymentMethod.php +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -54,12 +54,12 @@ class PaymentMethod implements MethodInterface { $data['contact'] = collect($data['client']->contacts->firstWhere('is_primary', 1)->toArray())->merge([ 'home_phone' => $data['client']->phone, - 'custom_identifier' => $data['client']->number . substr(uniqid(),0,4), + 'custom_identifier' => $data['client']->number, 'name' => $data['client']->name, 'id' => null ] )->all(); $data['gateway'] = $this->rotessa; - $data['gateway_type_id'] = (int) request('method'); + $data['gateway_type_id'] = $data['client']->country->iso_3166_2 == 'US' ? GatewayType::BANK_TRANSFER : ( $data['client']->country->iso_3166_2 == 'CA' ? GatewayType::ACSS : (int) request('method')); $data['account'] = [ 'routing_number' => $data['client']->routing_id, 'country' => $data['client']->country->iso_3166_2 @@ -68,54 +68,6 @@ class PaymentMethod implements MethodInterface return view('rotessa::bank_transfer.authorize', $data); } - - protected function findOrCreateCustomer(Request $request) - { - $result = null; $data = []; - $customer = new Customer( - $request->merge(['id' => $request->input('id') ] + - ['address' => $request->only('address_1','address_2','city','postal_code','province_code','country') ])->all() - ); - try { - $existing = ClientGatewayToken::query() - ->where('company_gateway_id', $this->rotessa->company_gateway->id) - ->where('client_id', $this->rotessa->client->id) - ->first(); - $data = array_filter(Arr::except($customer->jsonSerialize(),['custom_identifier'])); - if ($existing && $existing->token == encrypt($data)) return $existing->gateway_customer_reference; - - $result = $this->rotessa->gateway->authorize($customer->resolve())->send(); - if ($result->isSuccessful()) { - $customer = new Customer($result->getData()); - $data = array_filter(Arr::except($customer->jsonSerialize(),['custom_identifier'])); - $this->rotessa->storeGatewayToken( [ - 'payment_meta' => $customer->resolve() + ['brand' => 'Rotessa'], - 'token' => encrypt($data), - 'payment_method_id' => (int) $request->input("gateway_type_id"), - ], ['gateway_customer_reference' => - $result->getParameter('id') - , 'routing_number' => $result->getParameter('routing_number') ?? $result->getParameter('transit_number')]); - - return $result->getParameter('id'); - } - - throw new \Exception($result->getMessage(), (int) $result->getCode()); - - } catch (\Throwable $th) { - $data = [ - 'transaction_reference' => null, - 'transaction_response' => $th->getMessage(), - 'success' => false, - 'description' => $th->getMessage(), - 'code' =>(int) $th->getCode() - ]; - - SystemLogger::dispatch(['server_response' => is_null($result) ? '' : $result->getData(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->rotessa->client, $this->rotessa->client->company); - - throw $th; - } - } - /** * Handle the authorization page for Rotessa. * @@ -147,7 +99,11 @@ class PaymentMethod implements MethodInterface 'custom_identifier'=>['required_without:customer_id'], 'customer_id'=>['required_without:custom_identifier','integer'], ]); - $this->findOrCreateCustomer($request); + $customer = new Customer( + $request->merge(['custom_identifier' => $request->input('id') ] + + ['address' => $request->only('address_1','address_2','city','postal_code','province_code','country') ])->all() + ); + $this->rotessa->findOrCreateCustomer($customer->resolve()); return redirect()->route('client.payment_methods.index')->withMessage(ctrans('texts.payment_method_added')); diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index 9313918b3b7e..0dd482cb2109 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -18,12 +18,14 @@ use App\Models\PaymentHash; use Illuminate\Support\Arr; use App\Models\GatewayType; use Omnipay\Rotessa\Gateway; +use App\Models\ClientContact; use App\Utils\Traits\MakesHash; +use App\Jobs\Util\SystemLogger; use App\PaymentDrivers\BaseDriver; -use App\PaymentDrivers\Rotessa\Bacs; +use App\Models\ClientGatewayToken; use App\PaymentDrivers\Rotessa\Acss; -use App\PaymentDrivers\Rotessa\DirectDebit; use App\PaymentDrivers\Rotessa\BankTransfer; +use App\PaymentDrivers\Rotessa\Resources\Customer; class RotessaPaymentDriver extends BaseDriver { @@ -41,9 +43,9 @@ class RotessaPaymentDriver extends BaseDriver public static $methods = [ GatewayType::BANK_TRANSFER => BankTransfer::class, - GatewayType::BACS => Bacs::class, + //GatewayType::BACS => Bacs::class, GatewayType::ACSS => Acss::class, - GatewayType::DIRECT_DEBIT => DirectDebit::class + // GatewayType::DIRECT_DEBIT => DirectDebit::class ]; public function init(): self @@ -61,18 +63,18 @@ class RotessaPaymentDriver extends BaseDriver $types = []; if ($this->client - && isset($this->client->country) - && (in_array($this->client->country->iso_3166_2, ['US']) || ($this->client->gateway_tokens()->where('gateway_type_id', GatewayType::BANK_TRANSFER)->exists())) - ) { + && $this->client->currency() + && in_array($this->client->currency()->code, ['USD']) + && isset($this->client->country) + && in_array($this->client->country->iso_3166_2, ['US'])) { $types[] = GatewayType::BANK_TRANSFER; } if ($this->client && $this->client->currency() - && in_array($this->client->currency()->code, ['CAD', 'USD']) + && in_array($this->client->currency()->code, ['CAD']) && isset($this->client->country) - && in_array($this->client->country->iso_3166_2, ['CA', 'US'])) { - $types[] = GatewayType::DIRECT_DEBIT; + && in_array($this->client->country->iso_3166_2, ['CA'])) { $types[] = GatewayType::ACSS; } @@ -108,5 +110,85 @@ class RotessaPaymentDriver extends BaseDriver return $this->payment_method->paymentResponse($request); } + public function importCustomers() { + try { + $customers = collect($this->gateway->getCustomers()->getData())->pluck('email','id'); + $client_emails = $customers->pluck('email')->all(); + $company_id = $this->company_gateway->company->id; + $client_contacts = ClientContact::select('email','id','client_id',)->where('company_id', $companY_id)->whereIn('email', $client_emails )->whereNull('deleted_at')->where('is_deleted', false)->get(); + $client_contacts->each( + function($contact) use ($customers) { + $result = $this->gateway->postCustomersShowWithCustomIdentifier(['custom_identifier' => $contact->id ]); + $customer = new Customer($result->getData()); + $this->findOrCreateCustomer(array_filter($customer->toArray())); + } + ); + } catch (\Throwable $th) { + $data = [ + 'transaction_reference' => null, + 'transaction_response' => $th->getMessage(), + 'success' => false, + 'description' => $th->getMessage(), + 'code' =>(int) $th->getCode() + ]; + + SystemLogger::dispatch(['server_response' => $th->getMessage(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client, $this->client->company); + + + throw $th; + } + + return true; + } + protected function findOrCreateCustomer(array $customer) + { + $result = null; $data = []; $id = null; + + try { + + $id = $data['id'] ?? null; + $existing = ClientGatewayToken::query() + ->where('company_gateway_id', $this->company_gateway->id) + ->where('client_id', $this->client->id) + ->orWhere(function (Builder $query) use ($data, $id) { + $uqery->where('token', encrypt($data)) + ->where('gateway_customer_reference', $id); + }) + ->exists(); + if ($existing) return $existing->gateway_customer_reference; + else if(is_null($id)) { + $result = $this->gateway->authorize($data)->send(); + if ($result->isSuccessful()) { + $customer = new Customer($result->getData()); + $data = array_filter($customer->toArray()); + } + } + + $this->storeGatewayToken( [ + 'payment_meta' => $data + ['brand' => 'Rotessa'], + 'token' => encrypt($data), + 'payment_method_id' => (int) $request->input("gateway_type_id"), + ], ['gateway_customer_reference' => + $result->getParameter('id') + , 'routing_number' => $result->getParameter('routing_number') ?? $result->getParameter('transit_number')]); + + return $result->getParameter('id'); + + throw new \Exception($result->getMessage(), (int) $result->getCode()); + + } catch (\Throwable $th) { + $data = [ + 'transaction_reference' => null, + 'transaction_response' => $th->getMessage(), + 'success' => false, + 'description' => $th->getMessage(), + 'code' =>(int) $th->getCode() + ]; + + SystemLogger::dispatch(['server_response' => is_null($result) ? '' : $result->getData(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client, $this->client->company); + + throw $th; + } + } } From 06f764fa95d5d52c32defb36b52a48cea78630fb Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Mon, 17 Jun 2024 01:01:19 +0000 Subject: [PATCH 08/31] set default country instead --- .../gateways/rotessa/components/address.blade.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php index 9007501874c4..2db721cd4e28 100644 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php @@ -49,10 +49,13 @@ Country
- -
- -
+ @if('US' == $country) + +
+ @else + +
+ @endif
From f124dac7b0114517196aef156254d22a94772203 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Wed, 19 Jun 2024 02:00:24 +0000 Subject: [PATCH 09/31] fix the data passed --- app/PaymentDrivers/Rotessa/PaymentMethod.php | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php index 884b59954647..7d7d2e025dc4 100755 --- a/app/PaymentDrivers/Rotessa/PaymentMethod.php +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -13,6 +13,7 @@ namespace App\PaymentDrivers\Rotessa; use Carbon\Carbon; +use App\Models\Client; use App\Models\Payment; use App\Models\SystemLog; use Illuminate\View\View; @@ -24,9 +25,9 @@ use App\Jobs\Util\SystemLogger; use App\Exceptions\PaymentFailed; use App\Models\ClientGatewayToken; use Illuminate\Http\RedirectResponse; -use App\PaymentDrivers\Rotessa\Resources\Customer; use App\PaymentDrivers\RotessaPaymentDriver; use App\PaymentDrivers\Common\MethodInterface; +use App\PaymentDrivers\Rotessa\Resources\Customer; use App\PaymentDrivers\Rotessa\Resources\Transaction; use App\PaymentDrivers\Rotessa\DataProviders\Frequencies; use Omnipay\Common\Exception\InvalidRequestException; @@ -99,10 +100,7 @@ class PaymentMethod implements MethodInterface 'custom_identifier'=>['required_without:customer_id'], 'customer_id'=>['required_without:custom_identifier','integer'], ]); - $customer = new Customer( - $request->merge(['custom_identifier' => $request->input('id') ] + - ['address' => $request->only('address_1','address_2','city','postal_code','province_code','country') ])->all() - ); + $customer = new Customer( ['address' => $request->only('address_1','address_2','city','postal_code','province_code','country'), 'custom_identifier' => $request->input('custom_identifier') ] + $request->all()); $this->rotessa->findOrCreateCustomer($customer->resolve()); return redirect()->route('client.payment_methods.index')->withMessage(ctrans('texts.payment_method_added')); From 25bdc6025df8e8f1f31c0f91644c84a072ee58b7 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Wed, 19 Jun 2024 02:01:37 +0000 Subject: [PATCH 10/31] fix placholder text --- .../views/gateways/rotessa/components/banks/US/bank.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php index 07f7abee7b9a..891fbe421a9a 100644 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php +++ b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php @@ -5,7 +5,7 @@ Routing Number
- +
From dbae00758159d467264f1fef27d1b5cd22ffa358 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Wed, 19 Jun 2024 02:02:40 +0000 Subject: [PATCH 11/31] refactor methods to properly get accounts and set tokens --- app/PaymentDrivers/RotessaPaymentDriver.php | 69 ++++++++++++--------- 1 file changed, 40 insertions(+), 29 deletions(-) diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index 0dd482cb2109..1bdf61c8547d 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -12,6 +12,7 @@ namespace App\PaymentDrivers; use Omnipay\Omnipay; +use App\Models\Client; use App\Models\Payment; use App\Models\SystemLog; use App\Models\PaymentHash; @@ -24,6 +25,7 @@ use App\Jobs\Util\SystemLogger; use App\PaymentDrivers\BaseDriver; use App\Models\ClientGatewayToken; use App\PaymentDrivers\Rotessa\Acss; +use Illuminate\Database\Eloquent\Builder; use App\PaymentDrivers\Rotessa\BankTransfer; use App\PaymentDrivers\Rotessa\Resources\Customer; @@ -77,7 +79,7 @@ class RotessaPaymentDriver extends BaseDriver && in_array($this->client->country->iso_3166_2, ['CA'])) { $types[] = GatewayType::ACSS; } - + return $types; } @@ -111,18 +113,28 @@ class RotessaPaymentDriver extends BaseDriver } public function importCustomers() { + $this->init(); try { - $customers = collect($this->gateway->getCustomers()->getData())->pluck('email','id'); + $result = $this->gateway->getCustomers()->send(); + if(!$result->isSuccessful()) throw new \Exception($result->getMessage(), (int) $result->getCode()); + + $customers = collect($result->getData())->unique('email'); $client_emails = $customers->pluck('email')->all(); $company_id = $this->company_gateway->company->id; - $client_contacts = ClientContact::select('email','id','client_id',)->where('company_id', $companY_id)->whereIn('email', $client_emails )->whereNull('deleted_at')->where('is_deleted', false)->get(); + $client_contacts = ClientContact::where('company_id', $company_id)->whereIn('email', $client_emails )->where('is_primary', 1 )->whereNull('deleted_at')->get(); + $client_contacts = $client_contacts->map(function($item, $key) use ($customers) { + return array_merge([], (array) $customers->firstWhere("email", $item->email) , ['custom_identifier' => $item->client->number, 'identifier' => $item->client->number ]); + } ); $client_contacts->each( function($contact) use ($customers) { - $result = $this->gateway->postCustomersShowWithCustomIdentifier(['custom_identifier' => $contact->id ]); - $customer = new Customer($result->getData()); - $this->findOrCreateCustomer(array_filter($customer->toArray())); + sleep(10); + $result = $this->gateway->getCustomersId(['id' => ($contact = (object) $contact)->id])->send(); + $this->client = Client::find($contact->custom_identifier); + $customer = (new Customer($result->getData()))->additional(['id' => $contact->id, 'custom_identifier' => $contact->custom_identifier ] ); + $this->findOrCreateCustomer($customer->additional + $customer->jsonSerialize()); } ); + } catch (\Throwable $th) { $data = [ 'transaction_reference' => null, @@ -132,7 +144,7 @@ class RotessaPaymentDriver extends BaseDriver 'code' =>(int) $th->getCode() ]; - SystemLogger::dispatch(['server_response' => $th->getMessage(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client, $this->client->company); + SystemLogger::dispatch(['server_response' => $th->getMessage(), 'data' => $data], SystemLog::CATEGORY_GATEWAY_RESPONSE, SystemLog::EVENT_GATEWAY_FAILURE, 880 , $this->client , $this->company_gateway->company); throw $th; @@ -141,39 +153,38 @@ class RotessaPaymentDriver extends BaseDriver return true; } - protected function findOrCreateCustomer(array $customer) + public function findOrCreateCustomer(array $data) { - $result = null; $data = []; $id = null; - + $result = null; try { - $id = $data['id'] ?? null; $existing = ClientGatewayToken::query() ->where('company_gateway_id', $this->company_gateway->id) ->where('client_id', $this->client->id) - ->orWhere(function (Builder $query) use ($data, $id) { - $uqery->where('token', encrypt($data)) - ->where('gateway_customer_reference', $id); + ->orWhere(function (Builder $query) use ($data) { + $query->where('token', encrypt(join(".", Arr::only($data, 'id','custom_identifier'))) ) + ->where('gateway_customer_reference', Arr::only($data,'id')); }) ->exists(); - if ($existing) return $existing->gateway_customer_reference; - else if(is_null($id)) { + if ($existing) return true; + else if(!Arr::has($data,'id')) { $result = $this->gateway->authorize($data)->send(); - if ($result->isSuccessful()) { - $customer = new Customer($result->getData()); - $data = array_filter($customer->toArray()); - } - } + if (!$result->isSuccessful()) throw new \Exception($result->getMessage(), (int) $result->getCode()); - $this->storeGatewayToken( [ - 'payment_meta' => $data + ['brand' => 'Rotessa'], - 'token' => encrypt($data), - 'payment_method_id' => (int) $request->input("gateway_type_id"), - ], ['gateway_customer_reference' => - $result->getParameter('id') - , 'routing_number' => $result->getParameter('routing_number') ?? $result->getParameter('transit_number')]); + $customer = new Customer($result->getData()); + $data = array_filter($customer->resolve()); + } - return $result->getParameter('id'); + $payment_method_id = Arr::has($data,'address.postal_code') && ((int) $data['address']['postal_code'])? GatewayType::BANK_TRANSFER: GatewayType::ACSS; + $gateway_token = $this->storeGatewayToken( [ + 'payment_meta' => $data + ['brand' => 'Rotessa'], + 'token' => encrypt(join(".", Arr::only($data, 'id','custom_identifier'))), + 'payment_method_id' => $payment_method_id , + ], ['gateway_customer_reference' => + $data['id'] + , 'routing_number' => Arr::has($data,'routing_number') ? $data['routing_number'] : $data['transit_number'] ]); + + return $data['id']; throw new \Exception($result->getMessage(), (int) $result->getCode()); From 5704b1303b92b03825d39533f35977f98c0373c4 Mon Sep 17 00:00:00 2001 From: Kendall Arneaud Date: Wed, 19 Jun 2024 13:09:04 +0000 Subject: [PATCH 12/31] commit package --- .../Rotessa/vendor/composer/installed.json | 2 +- .../Rotessa/vendor/composer/installed.php | 2 +- .../Rotessa/vendor/karneaud/omnipay-rotessa | 1 - .../karneaud/omnipay-rotessa/composer.json | 41 + .../karneaud/omnipay-rotessa/composer.lock | 3904 +++++++++++++++++ .../karneaud/omnipay-rotessa/phpunit.xml | 22 + .../src/Omnipay/Rotessa/AbstractClient.php | 21 + .../src/Omnipay/Rotessa/ApiTrait.php | 41 + .../src/Omnipay/Rotessa/ClientInterface.php | 11 + .../Omnipay/Rotessa/Exception/Exceptions.php | 43 + .../src/Omnipay/Rotessa/Gateway.php | 74 + .../src/Omnipay/Rotessa/Http/Client.php | 82 + .../Rotessa/Http/Response/Response.php | 32 + .../src/Omnipay/Rotessa/IsValidTypeTrait.php | 12 + .../Message/Request/AbstractRequest.php | 52 + .../Rotessa/Message/Request/BaseRequest.php | 93 + .../Request/DeleteTransactionSchedulesId.php | 18 + .../Rotessa/Message/Request/GetCustomers.php | 14 + .../Message/Request/GetCustomersId.php | 19 + .../Request/GetTransactionSchedulesId.php | 17 + .../Message/Request/PatchCustomersId.php | 65 + .../Request/PatchTransactionSchedulesId.php | 22 + .../Rotessa/Message/Request/PostCustomers.php | 60 + .../PostCustomersShowWithCustomIdentifier.php | 19 + .../Request/PostTransactionSchedules.php | 31 + ...ionSchedulesCreateWithCustomIdentifier.php | 16 + .../PostTransactionSchedulesUpdateViaPost.php | 24 + .../Message/Request/RequestInterface.php | 10 + .../Message/Response/AbstractResponse.php | 16 + .../Rotessa/Message/Response/BaseResponse.php | 44 + .../Message/Response/ResponseInterface.php | 9 + .../Omnipay/Rotessa/Model/AbstractModel.php | 63 + .../src/Omnipay/Rotessa/Model/BaseModel.php | 24 + .../Omnipay/Rotessa/Model/CustomerModel.php | 94 + .../Rotessa/Model/CustomerPatchModel.php | 16 + .../Omnipay/Rotessa/Model/ModelInterface.php | 8 + .../Model/TransactionScheduleModel.php | 84 + .../Model/TransactionSchedulesIdBodyModel.php | 23 + ...sactionSchedulesUpdateViaPostBodyModel.php | 24 + .../src/Omnipay/Rotessa/Object/Address.php | 53 + .../Rotessa/Object/AuthorizationType.php | 28 + .../Rotessa/Object/BankAccountType.php | 28 + .../src/Omnipay/Rotessa/Object/Country.php | 33 + .../Omnipay/Rotessa/Object/CustomerType.php | 28 + .../src/Omnipay/Rotessa/Object/Frequency.php | 64 + 45 files changed, 5384 insertions(+), 3 deletions(-) delete mode 160000 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.json b/app/PaymentDrivers/Rotessa/vendor/composer/installed.json index 0e82da86c48f..bdb7b5f35a23 100644 --- a/app/PaymentDrivers/Rotessa/vendor/composer/installed.json +++ b/app/PaymentDrivers/Rotessa/vendor/composer/installed.json @@ -27,6 +27,6 @@ "install-path": "../karneaud/omnipay-rotessa" } ], - "dev": true, + "dev": false, "dev-package-names": [] } diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.php b/app/PaymentDrivers/Rotessa/vendor/composer/installed.php index 6a55666ddf6f..bca95fce27b5 100644 --- a/app/PaymentDrivers/Rotessa/vendor/composer/installed.php +++ b/app/PaymentDrivers/Rotessa/vendor/composer/installed.php @@ -7,7 +7,7 @@ 'type' => 'laravel-module', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'dev' => true, + 'dev' => false, ), 'versions' => array( 'karneaud/invoiceninja-rotessa' => array( diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa deleted file mode 160000 index c3107930d3f9..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa +++ /dev/null @@ -1 +0,0 @@ -Subproject commit c3107930d3f9d656ae3287241ebeded9a1daf8a9 diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json new file mode 100644 index 000000000000..0c76d0117400 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json @@ -0,0 +1,41 @@ +{ + "require-dev": { + "omnipay/tests":"*", + "oomphinc/composer-installers-extender": "*", + "http-interop/http-factory-guzzle": "dev-master", + "guzzlehttp/guzzle": "7.9.x-dev" + }, + "name":"karneaud/omnipay-rotessa", + "minimum-stability": "dev", + "config": { + "allow-plugins": { + "php-http/discovery": true, + "composer/installers": true, + "oomphinc/composer-installers-extender": true + } + }, + "require": { + "php": ">=8.0", + "php-http/discovery": "*", + "omnipay/common":"*" + }, + "scripts": { + "generate": [ + "generate" + ], + "tests": [ + "phpunit" + ] + }, + "autoload": { + "psr-4": { + "Omnipay\\Rotessa\\": "src/Omnipay/Rotessa/" + }, + "classmap": ["src/Omnipay/Rotessa/Exception/Exceptions.php"] + }, + "autoload-dev": { + "psr-4": { + "Omnipay\\Rotessa\\Test\\": "tests/" + } + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock new file mode 100644 index 000000000000..ffb9a3621047 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock @@ -0,0 +1,3904 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "9f938695686f38324b7fd12e52766427", + "packages": [ + { + "name": "clue/stream-filter", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/clue/stream-filter.git", + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7", + "reference": "049509fef80032cb3f051595029ab75b49a3c2f7", + "shasum": "" + }, + "require": { + "php": ">=5.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "default-branch": true, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "Clue\\StreamFilter\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "A simple and modern approach to stream filtering in PHP", + "homepage": "https://github.com/clue/stream-filter", + "keywords": [ + "bucket brigade", + "callback", + "filter", + "php_user_filter", + "stream", + "stream_filter_append", + "stream_filter_register" + ], + "support": { + "issues": "https://github.com/clue/stream-filter/issues", + "source": "https://github.com/clue/stream-filter/tree/v1.7.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2023-12-20T15:40:13+00:00" + }, + { + "name": "moneyphp/money", + "version": "3.x-dev", + "source": { + "type": "git", + "url": "https://github.com/moneyphp/money.git", + "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/moneyphp/money/zipball/0dc40e3791c67e8793e3aa13fead8cf4661ec9cd", + "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.6" + }, + "require-dev": { + "cache/taggable-cache": "^0.4.0", + "doctrine/instantiator": "^1.0.5", + "ext-bcmath": "*", + "ext-gmp": "*", + "ext-intl": "*", + "florianv/exchanger": "^1.0", + "florianv/swap": "^3.0", + "friends-of-phpspec/phpspec-code-coverage": "^3.1.1 || ^4.3", + "moneyphp/iso-currencies": "^3.2.1", + "php-http/message": "^1.4", + "php-http/mock-client": "^1.0.0", + "phpspec/phpspec": "^3.4.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5", + "psr/cache": "^1.0", + "symfony/phpunit-bridge": "^4" + }, + "suggest": { + "ext-bcmath": "Calculate without integer limits", + "ext-gmp": "Calculate without integer limits", + "ext-intl": "Format Money objects with intl", + "florianv/exchanger": "Exchange rates library for PHP", + "florianv/swap": "Exchange rates library for PHP", + "psr/cache-implementation": "Used for Currency caching" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Money\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Verraes", + "email": "mathias@verraes.net", + "homepage": "http://verraes.net" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + }, + { + "name": "Frederik Bosch", + "email": "f.bosch@genkgo.nl" + } + ], + "description": "PHP implementation of Fowler's Money pattern", + "homepage": "http://moneyphp.org", + "keywords": [ + "Value Object", + "money", + "vo" + ], + "support": { + "issues": "https://github.com/moneyphp/money/issues", + "source": "https://github.com/moneyphp/money/tree/3.x" + }, + "time": "2022-09-21T07:43:36+00:00" + }, + { + "name": "omnipay/common", + "version": "v3.3.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/omnipay-common.git", + "reference": "2eca3823e9069e2c36b6007a090577d5584f9518" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/2eca3823e9069e2c36b6007a090577d5584f9518", + "reference": "2eca3823e9069e2c36b6007a090577d5584f9518", + "shasum": "" + }, + "require": { + "moneyphp/money": "^3.1|^4.0.3", + "php": "^7.2|^8", + "php-http/client-implementation": "^1", + "php-http/discovery": "^1.14", + "php-http/message": "^1.5", + "php-http/message-factory": "^1.1", + "symfony/http-foundation": "^2.1|^3|^4|^5|^6|^7" + }, + "require-dev": { + "http-interop/http-factory-guzzle": "^1.1", + "omnipay/tests": "^4.1", + "php-http/guzzle7-adapter": "^1", + "php-http/mock-client": "^1.6", + "squizlabs/php_codesniffer": "^3.8.1" + }, + "suggest": { + "league/omnipay": "The default Omnipay package provides a default HTTP Adapter." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Omnipay\\Common\\": "src/Common" + }, + "classmap": [ + "src/Omnipay.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adrian Macneil", + "email": "adrian@adrianmacneil.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + }, + { + "name": "Jason Judge", + "email": "jason.judge@consil.co.uk" + }, + { + "name": "Del" + }, + { + "name": "Omnipay Contributors", + "homepage": "https://github.com/thephpleague/omnipay-common/contributors" + } + ], + "description": "Common components for Omnipay payment processing library", + "homepage": "https://github.com/thephpleague/omnipay-common", + "keywords": [ + "gateway", + "merchant", + "omnipay", + "pay", + "payment", + "purchase" + ], + "support": { + "issues": "https://github.com/thephpleague/omnipay-common/issues", + "source": "https://github.com/thephpleague/omnipay-common/tree/v3.3.0" + }, + "funding": [ + { + "url": "https://github.com/barryvdh", + "type": "github" + } + ], + "time": "2024-03-08T11:56:40+00:00" + }, + { + "name": "php-http/discovery", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/discovery.git", + "reference": "ed16f5209c597c564da6efa54f771e8bda743f07" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/discovery/zipball/ed16f5209c597c564da6efa54f771e8bda743f07", + "reference": "ed16f5209c597c564da6efa54f771e8bda743f07", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0|^2.0", + "php": "^7.1 || ^8.0" + }, + "conflict": { + "nyholm/psr7": "<1.0", + "zendframework/zend-diactoros": "*" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "*", + "psr/http-factory-implementation": "*", + "psr/http-message-implementation": "*" + }, + "require-dev": { + "composer/composer": "^1.0.2|^2.0", + "graham-campbell/phpspec-skip-example-extension": "^5.0", + "php-http/httplug": "^1.0 || ^2.0", + "php-http/message-factory": "^1.0", + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", + "sebastian/comparator": "^3.0.5 || ^4.0.8", + "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" + }, + "default-branch": true, + "type": "composer-plugin", + "extra": { + "class": "Http\\Discovery\\Composer\\Plugin", + "plugin-optional": true + }, + "autoload": { + "psr-4": { + "Http\\Discovery\\": "src/" + }, + "exclude-from-classmap": [ + "src/Composer/Plugin.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", + "homepage": "http://php-http.org", + "keywords": [ + "adapter", + "client", + "discovery", + "factory", + "http", + "message", + "psr17", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/discovery/issues", + "source": "https://github.com/php-http/discovery/tree/1.x" + }, + "time": "2024-04-22T09:10:37+00:00" + }, + { + "name": "php-http/message", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/message.git", + "reference": "4cb00d6d316783d357a59ec94c234c50aca515f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message/zipball/4cb00d6d316783d357a59ec94c234c50aca515f5", + "reference": "4cb00d6d316783d357a59ec94c234c50aca515f5", + "shasum": "" + }, + "require": { + "clue/stream-filter": "^1.5", + "php": "^7.2 || ^8.0", + "psr/http-message": "^1.1 || ^2.0" + }, + "provide": { + "php-http/message-factory-implementation": "1.0" + }, + "require-dev": { + "ergebnis/composer-normalize": "^2.6", + "ext-zlib": "*", + "guzzlehttp/psr7": "^1.0 || ^2.0", + "laminas/laminas-diactoros": "^2.0 || ^3.0", + "php-http/message-factory": "^1.0.2", + "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", + "slim/slim": "^3.0" + }, + "suggest": { + "ext-zlib": "Used with compressor/decompressor streams", + "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", + "laminas/laminas-diactoros": "Used with Diactoros Factories", + "slim/slim": "Used with Slim Framework PSR-7 implementation" + }, + "default-branch": true, + "type": "library", + "autoload": { + "files": [ + "src/filters.php" + ], + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "HTTP Message related tools", + "homepage": "http://php-http.org", + "keywords": [ + "http", + "message", + "psr-7" + ], + "support": { + "issues": "https://github.com/php-http/message/issues", + "source": "https://github.com/php-http/message/tree/1.x" + }, + "time": "2024-03-16T19:07:08+00:00" + }, + { + "name": "php-http/message-factory", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-http/message-factory.git", + "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57", + "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57", + "shasum": "" + }, + "require": { + "php": ">=5.4", + "psr/http-message": "^1.0 || ^2.0" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Factory interfaces for PSR-7 HTTP Message", + "homepage": "http://php-http.org", + "keywords": [ + "factory", + "http", + "message", + "stream", + "uri" + ], + "support": { + "issues": "https://github.com/php-http/message-factory/issues", + "source": "https://github.com/php-http/message-factory/tree/1.1.0" + }, + "abandoned": "psr/http-factory", + "time": "2023-04-14T14:16:17+00:00" + }, + { + "name": "psr/http-message", + "version": "1.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://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/1.1" + }, + "time": "2023-04-04T09:50:52+00:00" + }, + { + "name": "symfony/deprecation-contracts", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", + "shasum": "" + }, + "require": { + "php": ">=8.1" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-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.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, + { + "name": "symfony/http-foundation", + "version": "6.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-foundation.git", + "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759", + "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3", + "symfony/polyfill-mbstring": "~1.1", + "symfony/polyfill-php83": "^1.27" + }, + "conflict": { + "symfony/cache": "<6.3" + }, + "require-dev": { + "doctrine/dbal": "^2.13.1|^3|^4", + "predis/predis": "^1.1|^2.0", + "symfony/cache": "^6.3|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/expression-language": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", + "symfony/mime": "^5.4|^6.0|^7.0", + "symfony/rate-limiter": "^5.4|^6.0|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpFoundation\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Defines an object-oriented layer for the HTTP specification", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/http-foundation/tree/6.4" + }, + "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": "2024-04-18T09:22:46+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "e642fbe7a7b73cdb05460555289a9057bfd6ead6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e642fbe7a7b73cdb05460555289a9057bfd6ead6", + "reference": "e642fbe7a7b73cdb05460555289a9057bfd6ead6", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "provide": { + "ext-mbstring": "*" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "default-branch": true, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/1.x" + }, + "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": "2024-04-19T06:31:17+00:00" + }, + { + "name": "symfony/polyfill-php80", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "7d191eb4022901cd3d91a816ec5464ca3a08a8aa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7d191eb4022901cd3d91a816ec5464ca3a08a8aa", + "reference": "7d191eb4022901cd3d91a816ec5464ca3a08a8aa", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "default-branch": true, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/1.x" + }, + "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": "2024-04-19T06:31:17+00:00" + }, + { + "name": "symfony/polyfill-php83", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php83.git", + "reference": "6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1", + "reference": "6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "symfony/polyfill-php80": "^1.14" + }, + "default-branch": true, + "type": "library", + "extra": { + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" + } + }, + "autoload": { + "files": [ + "bootstrap.php" + ], + "psr-4": { + "Symfony\\Polyfill\\Php83\\": "" + }, + "classmap": [ + "Resources/stubs" + ] + }, + "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": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php83/tree/1.x" + }, + "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": "2024-04-19T06:31:17+00:00" + } + ], + "packages-dev": [ + { + "name": "composer/installers", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/composer/installers.git", + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/installers/zipball/2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", + "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.0 || ^2.0", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "composer/composer": "1.6.* || ^2.0", + "composer/semver": "^1 || ^3", + "phpstan/phpstan": "^0.12.55", + "phpstan/phpstan-phpunit": "^0.12.16", + "symfony/phpunit-bridge": "^5.3", + "symfony/process": "^5" + }, + "default-branch": true, + "type": "composer-plugin", + "extra": { + "class": "Composer\\Installers\\Plugin", + "branch-alias": { + "dev-main": "2.x-dev" + }, + "plugin-modifies-install-path": true + }, + "autoload": { + "psr-4": { + "Composer\\Installers\\": "src/Composer/Installers" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Kyle Robinson Young", + "email": "kyle@dontkry.com", + "homepage": "https://github.com/shama" + } + ], + "description": "A multi-framework Composer library installer", + "homepage": "https://composer.github.io/installers/", + "keywords": [ + "Dolibarr", + "Eliasis", + "Hurad", + "ImageCMS", + "Kanboard", + "Lan Management System", + "MODX Evo", + "MantisBT", + "Mautic", + "Maya", + "OXID", + "Plentymarkets", + "Porto", + "RadPHP", + "SMF", + "Starbug", + "Thelia", + "Whmcs", + "WolfCMS", + "agl", + "annotatecms", + "attogram", + "bitrix", + "cakephp", + "chef", + "cockpit", + "codeigniter", + "concrete5", + "croogo", + "dokuwiki", + "drupal", + "eZ Platform", + "elgg", + "expressionengine", + "fuelphp", + "grav", + "installer", + "itop", + "known", + "kohana", + "laravel", + "lavalite", + "lithium", + "magento", + "majima", + "mako", + "matomo", + "mediawiki", + "miaoxing", + "modulework", + "modx", + "moodle", + "osclass", + "pantheon", + "phpbb", + "piwik", + "ppi", + "processwire", + "puppet", + "pxcms", + "reindex", + "roundcube", + "shopware", + "silverstripe", + "sydes", + "sylius", + "tastyigniter", + "wordpress", + "yawik", + "zend", + "zikula" + ], + "support": { + "issues": "https://github.com/composer/installers/issues", + "source": "https://github.com/composer/installers/tree/main" + }, + "funding": [ + { + "url": "https://packagist.com", + "type": "custom" + }, + { + "url": "https://github.com/composer", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/composer/composer", + "type": "tidelift" + } + ], + "time": "2022-10-12T12:07:30+00:00" + }, + { + "name": "doctrine/instantiator", + "version": "2.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "9955122a490d18ce723cf9014b196c126222c180" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/9955122a490d18ce723cf9014b196c126222c180", + "reference": "9955122a490d18ce723cf9014b196c126222c180", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "doctrine/coding-standard": "^12", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^1.2", + "phpstan/phpstan": "^1.9.4", + "phpstan/phpstan-phpunit": "^1.3", + "phpunit/phpunit": "^10.5", + "vimeo/psalm": "^5.4" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/2.0.x" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2024-05-05T15:09:38+00:00" + }, + { + "name": "guzzlehttp/guzzle", + "version": "7.9.x-dev", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93", + "reference": "1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5.3 || ^2.0.1", + "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "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.2", + "ext-curl": "*", + "guzzle/client-integration-tests": "3.0.2", + "php-http/message-factory": "^1.1", + "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "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.9" + }, + "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": "2024-03-31T19:57:34+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "2.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "ab801747cbf7d394d4d435c34364704f9bf048e6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/ab801747cbf7d394d4d435c34364704f9bf048e6", + "reference": "ab801747cbf7d394d4d435c34364704f9bf048e6", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.8.2", + "phpunit/phpunit": "^8.5.36 || ^9.6.15" + }, + "default-branch": true, + "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" + }, + "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": "2024-03-31T10:06:07+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "1.9.x-dev", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b", + "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b", + "shasum": "" + }, + "require": { + "php": ">=5.4.0", + "psr/http-message": "~1.0", + "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" + }, + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "ext-zlib": "*", + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "autoload": { + "files": [ + "src/functions_include.php" + ], + "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" + } + ], + "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/1.9" + }, + "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-04-17T16:00:37+00:00" + }, + { + "name": "hamcrest/hamcrest-php", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/hamcrest/hamcrest-php.git", + "reference": "696163addf28bb4e01455254e055a9a75e0ba6c4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/696163addf28bb4e01455254e055a9a75e0ba6c4", + "reference": "696163addf28bb4e01455254e055a9a75e0ba6c4", + "shasum": "" + }, + "require": { + "php": "^5.3|^7.0|^8.0" + }, + "replace": { + "cordoval/hamcrest-php": "*", + "davedevelopment/hamcrest-php": "*", + "kodova/hamcrest-php": "*" + }, + "require-dev": { + "phpunit/php-file-iterator": "^1.4 || ^2.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "classmap": [ + "hamcrest" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "This is the PHP port of Hamcrest Matchers", + "keywords": [ + "test" + ], + "support": { + "issues": "https://github.com/hamcrest/hamcrest-php/issues", + "source": "https://github.com/hamcrest/hamcrest-php/tree/master" + }, + "time": "2023-12-14T11:00:58+00:00" + }, + { + "name": "http-interop/http-factory-guzzle", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/http-interop/http-factory-guzzle.git", + "reference": "8f06e92b95405216b237521cc64c804dd44c4a81" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81", + "reference": "8f06e92b95405216b237521cc64c804dd44c4a81", + "shasum": "" + }, + "require": { + "guzzlehttp/psr7": "^1.7||^2.0", + "php": ">=7.3", + "psr/http-factory": "^1.0" + }, + "provide": { + "psr/http-factory-implementation": "^1.0" + }, + "require-dev": { + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^9.5" + }, + "suggest": { + "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Factory\\Guzzle\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "An HTTP Factory using Guzzle PSR7", + "keywords": [ + "factory", + "http", + "psr-17", + "psr-7" + ], + "support": { + "issues": "https://github.com/http-interop/http-factory-guzzle/issues", + "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0" + }, + "time": "2021-07-21T13:50:14+00:00" + }, + { + "name": "mockery/mockery", + "version": "1.7.x-dev", + "source": { + "type": "git", + "url": "https://github.com/mockery/mockery.git", + "reference": "3f8d3ff1ffe4c552d45c5690c6d825e9310769bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mockery/mockery/zipball/3f8d3ff1ffe4c552d45c5690c6d825e9310769bf", + "reference": "3f8d3ff1ffe4c552d45c5690c6d825e9310769bf", + "shasum": "" + }, + "require": { + "hamcrest/hamcrest-php": "^2.0.1", + "lib-pcre": ">=7.0", + "php": ">=7.3" + }, + "conflict": { + "phpunit/phpunit": "<8.0" + }, + "require-dev": { + "phpunit/phpunit": ">=9.6.11 <10.4" + }, + "type": "library", + "autoload": { + "files": [ + "library/helpers.php", + "library/Mockery.php" + ], + "psr-4": { + "Mockery\\": "library/Mockery" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "https://github.com/padraic", + "role": "Author" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "https://davedevelopment.co.uk", + "role": "Developer" + }, + { + "name": "Nathanael Esayeas", + "email": "nathanael.esayeas@protonmail.com", + "homepage": "https://github.com/ghostwriter", + "role": "Lead Developer" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework", + "homepage": "https://github.com/mockery/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "support": { + "docs": "https://docs.mockery.io/", + "issues": "https://github.com/mockery/mockery/issues", + "rss": "https://github.com/mockery/mockery/releases.atom", + "security": "https://github.com/mockery/mockery/security/advisories", + "source": "https://github.com/mockery/mockery" + }, + "time": "2023-10-01T17:31:30+00:00" + }, + { + "name": "myclabs/deep-copy", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/myclabs/DeepCopy.git", + "reference": "2f5294676c802a62b0549f6bc8983f14294ce369" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/2f5294676c802a62b0549f6bc8983f14294ce369", + "reference": "2f5294676c802a62b0549f6bc8983f14294ce369", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" + }, + "require-dev": { + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" + }, + "default-branch": true, + "type": "library", + "autoload": { + "files": [ + "src/DeepCopy/deep_copy.php" + ], + "psr-4": { + "DeepCopy\\": "src/DeepCopy/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Create deep copies (clones) of your objects", + "keywords": [ + "clone", + "copy", + "duplicate", + "object", + "object graph" + ], + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.x" + }, + "funding": [ + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" + } + ], + "time": "2024-02-10T11:10:03+00:00" + }, + { + "name": "nikic/php-parser", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/nikic/PHP-Parser.git", + "reference": "c5ee33df86c06b3278c670f64273b1ba768a0744" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c5ee33df86c06b3278c670f64273b1ba768a0744", + "reference": "c5ee33df86c06b3278c670f64273b1ba768a0744", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-json": "*", + "ext-tokenizer": "*", + "php": ">=7.4" + }, + "require-dev": { + "ircmaxell/php-yacc": "^0.0.7", + "phpunit/phpunit": "^9.0" + }, + "default-branch": true, + "bin": [ + "bin/php-parse" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "psr-4": { + "PhpParser\\": "lib/PhpParser" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Nikita Popov" + } + ], + "description": "A PHP parser written in PHP", + "keywords": [ + "parser", + "php" + ], + "support": { + "issues": "https://github.com/nikic/PHP-Parser/issues", + "source": "https://github.com/nikic/PHP-Parser/tree/master" + }, + "time": "2024-04-19T12:04:10+00:00" + }, + { + "name": "omnipay/tests", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/omnipay-tests.git", + "reference": "4412f542663a3d1ed45449a7d5282ea03cfe7acd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/omnipay-tests/zipball/4412f542663a3d1ed45449a7d5282ea03cfe7acd", + "reference": "4412f542663a3d1ed45449a7d5282ea03cfe7acd", + "shasum": "" + }, + "require": { + "guzzlehttp/psr7": "^1", + "mockery/mockery": "^1.3", + "php": "^7.2|^8", + "php-http/discovery": "^1.14", + "php-http/mock-client": "^1.1", + "phpunit/phpunit": "^8.5.14|^9" + }, + "require-dev": { + "omnipay/common": "^3", + "symfony/http-foundation": "^3|^4|^5" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Omnipay\\Tests\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Adrian Macneil", + "email": "adrian@adrianmacneil.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" + }, + { + "name": "Omnipay Contributors", + "homepage": "https://github.com/thephpleague/omnipay-tests/contributors" + } + ], + "description": "Testing components for Omnipay payment processing library", + "homepage": "https://github.com/thephpleague/omnipay-tests", + "keywords": [ + "omnipay" + ], + "support": { + "issues": "https://github.com/thephpleague/omnipay-tests/issues", + "source": "https://github.com/thephpleague/omnipay-tests/tree/v4.1.2" + }, + "time": "2022-10-31T14:30:25+00:00" + }, + { + "name": "oomphinc/composer-installers-extender", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/oomphinc/composer-installers-extender.git", + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/cbf4b6f9a24153b785d09eee755b995ba87bd5f9", + "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^1.1 || ^2.0", + "composer/installers": "^1.0 || ^2.0", + "php": ">=7.1" + }, + "require-dev": { + "composer/composer": "^2.0", + "phpunit/phpunit": "^7.2", + "squizlabs/php_codesniffer": "^3.3" + }, + "default-branch": true, + "type": "composer-plugin", + "extra": { + "class": "OomphInc\\ComposerInstallersExtender\\Plugin" + }, + "autoload": { + "psr-4": { + "OomphInc\\ComposerInstallersExtender\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stephen Beemsterboer", + "email": "stephen@oomphinc.com", + "homepage": "https://github.com/balbuf" + }, + { + "name": "Nathan Dentzau", + "email": "nate@oomphinc.com", + "homepage": "http://oomph.is/ndentzau" + } + ], + "description": "Extend the composer/installers plugin to accept any arbitrary package type.", + "homepage": "http://www.oomphinc.com/", + "support": { + "issues": "https://github.com/oomphinc/composer-installers-extender/issues", + "source": "https://github.com/oomphinc/composer-installers-extender/tree/2.0.1" + }, + "time": "2021-12-15T12:32:42+00:00" + }, + { + "name": "phar-io/manifest", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "54750ef60c58e43759730615a392c31c80e23176" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-phar": "*", + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" + }, + { + "name": "phar-io/version", + "version": "3.2.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.2.1" + }, + "time": "2022-02-21T01:04:05+00:00" + }, + { + "name": "php-http/client-common", + "version": "2.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/client-common.git", + "reference": "d930a40e864109bf128431879b11bccfc09dccfc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/client-common/zipball/d930a40e864109bf128431879b11bccfc09dccfc", + "reference": "d930a40e864109bf128431879b11bccfc09dccfc", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/httplug": "^2.0", + "php-http/message": "^1.6", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0 || ^2.0", + "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0", + "symfony/polyfill-php80": "^1.17" + }, + "require-dev": { + "doctrine/instantiator": "^1.1", + "guzzlehttp/psr7": "^1.4", + "nyholm/psr7": "^1.2", + "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", + "phpspec/prophecy": "^1.10.2", + "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7" + }, + "suggest": { + "ext-json": "To detect JSON responses with the ContentTypePlugin", + "ext-libxml": "To detect XML responses with the ContentTypePlugin", + "php-http/cache-plugin": "PSR-6 Cache plugin", + "php-http/logger-plugin": "PSR-3 Logger plugin", + "php-http/stopwatch-plugin": "Symfony Stopwatch plugin" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\Common\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Common HTTP Client implementations and tools for HTTPlug", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "common", + "http", + "httplug" + ], + "support": { + "issues": "https://github.com/php-http/client-common/issues", + "source": "https://github.com/php-http/client-common/tree/2.x" + }, + "time": "2024-01-29T12:02:44+00:00" + }, + { + "name": "php-http/httplug", + "version": "2.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/httplug.git", + "reference": "87779285e14780b0a85209bfed8abd9d5fe0322e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/httplug/zipball/87779285e14780b0a85209bfed8abd9d5fe0322e", + "reference": "87779285e14780b0a85209bfed8abd9d5fe0322e", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/promise": "^1.1", + "psr/http-client": "^1.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", + "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Eric GELOEN", + "email": "geloen.eric@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "HTTPlug, the HTTP client abstraction for PHP", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http" + ], + "support": { + "issues": "https://github.com/php-http/httplug/issues", + "source": "https://github.com/php-http/httplug/tree/2.x" + }, + "time": "2024-03-15T16:17:50+00:00" + }, + { + "name": "php-http/mock-client", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/mock-client.git", + "reference": "ae5d717334ecd68199667bea6e9db07276e69a2b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/mock-client/zipball/ae5d717334ecd68199667bea6e9db07276e69a2b", + "reference": "ae5d717334ecd68199667bea6e9db07276e69a2b", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0", + "php-http/client-common": "^2.0", + "php-http/discovery": "^1.16", + "php-http/httplug": "^2.0", + "psr/http-client": "^1.0", + "psr/http-factory-implementation": "^1.0", + "psr/http-message": "^1.0 || ^2.0", + "symfony/polyfill-php80": "^1.17" + }, + "provide": { + "php-http/async-client-implementation": "1.0", + "php-http/client-implementation": "1.0", + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Mock\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "David de Boer", + "email": "david@ddeboer.nl" + } + ], + "description": "Mock HTTP client", + "homepage": "http://httplug.io", + "keywords": [ + "client", + "http", + "mock", + "psr7" + ], + "support": { + "issues": "https://github.com/php-http/mock-client/issues", + "source": "https://github.com/php-http/mock-client/tree/1.6.0" + }, + "time": "2023-05-21T08:31:38+00:00" + }, + { + "name": "php-http/promise", + "version": "1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/php-http/promise.git", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", + "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" + }, + "default-branch": true, + "type": "library", + "autoload": { + "psr-4": { + "Http\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "joel.wurtz@gmail.com" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + } + ], + "description": "Promise used for asynchronous HTTP requests", + "homepage": "http://httplug.io", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/php-http/promise/issues", + "source": "https://github.com/php-http/promise/tree/1.3.1" + }, + "time": "2024-03-15T13:55:21+00:00" + }, + { + "name": "phpunit/php-code-coverage", + "version": "9.2.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "3352293d9e91513d5508c415835014881b420218" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3352293d9e91513d5508c415835014881b420218", + "reference": "3352293d9e91513d5508c415835014881b420218", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-libxml": "*", + "ext-xmlwriter": "*", + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3", + "phpunit/php-file-iterator": "^3.0.3", + "phpunit/php-text-template": "^2.0.2", + "sebastian/code-unit-reverse-lookup": "^2.0.2", + "sebastian/complexity": "^2.0", + "sebastian/environment": "^5.1.2", + "sebastian/lines-of-code": "^1.0.3", + "sebastian/version": "^3.0.1", + "theseer/tokenizer": "^1.2.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-22T05:16:32+00:00" + }, + { + "name": "phpunit/php-file-iterator", + "version": "3.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "38b24367e1b340aa78b96d7cab042942d917bb84" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/38b24367e1b340aa78b96d7cab042942d917bb84", + "reference": "38b24367e1b340aa78b96d7cab042942d917bb84", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-02-11T16:23:04+00:00" + }, + { + "name": "phpunit/php-invoker", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-invoker.git", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "ext-pcntl": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-pcntl": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Invoke callables with a timeout", + "homepage": "https://github.com/sebastianbergmann/php-invoker/", + "keywords": [ + "process" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-invoker/issues", + "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:58:55+00:00" + }, + { + "name": "phpunit/php-text-template", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T05:33:50+00:00" + }, + { + "name": "phpunit/php-timer", + "version": "5.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:16:10+00:00" + }, + { + "name": "phpunit/phpunit", + "version": "9.6.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "bbcbb0823b0e06be56e6b180faa0df1f3b3e2733" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bbcbb0823b0e06be56e6b180faa0df1f3b3e2733", + "reference": "bbcbb0823b0e06be56e6b180faa0df1f3b3e2733", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "^1.3.1 || ^2", + "ext-dom": "*", + "ext-json": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-xml": "*", + "ext-xmlwriter": "*", + "myclabs/deep-copy": "^1.10.1", + "phar-io/manifest": "^2.0.3", + "phar-io/version": "^3.0.2", + "php": ">=7.3", + "phpunit/php-code-coverage": "^9.2.28", + "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-invoker": "^3.1.1", + "phpunit/php-text-template": "^2.0.3", + "phpunit/php-timer": "^5.0.2", + "sebastian/cli-parser": "^1.0.1", + "sebastian/code-unit": "^1.0.6", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.3", + "sebastian/environment": "^5.1.3", + "sebastian/exporter": "^4.0.5", + "sebastian/global-state": "^5.0.1", + "sebastian/object-enumerator": "^4.0.3", + "sebastian/resource-operations": "^3.0.3", + "sebastian/type": "^3.2", + "sebastian/version": "^3.0.2" + }, + "suggest": { + "ext-soap": "To be able to generate mocks based on WSDL files", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" + } + ], + "time": "2024-04-30T05:22:06+00:00" + }, + { + "name": "psr/http-client", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "default-branch": true, + "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" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.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": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+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": "sebastian/cli-parser", + "version": "1.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/cli-parser.git", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for parsing CLI options", + "homepage": "https://github.com/sebastianbergmann/cli-parser", + "support": { + "issues": "https://github.com/sebastianbergmann/cli-parser/issues", + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:27:43+00:00" + }, + { + "name": "sebastian/code-unit", + "version": "1.0.8", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit.git", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", + "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the PHP code units", + "homepage": "https://github.com/sebastianbergmann/code-unit", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit/issues", + "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:08:54+00:00" + }, + { + "name": "sebastian/code-unit-reverse-lookup", + "version": "2.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Looks up which function or method a line of code belongs to", + "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T05:30:19+00:00" + }, + { + "name": "sebastian/comparator", + "version": "4.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/b247957a1c8dc81a671770f74b479c0a78a818f1", + "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/diff": "^4.0", + "sebastian/exporter": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "https://github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2022-09-14T12:46:14+00:00" + }, + { + "name": "sebastian/complexity", + "version": "2.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/complexity.git", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for calculating the complexity of PHP code units", + "homepage": "https://github.com/sebastianbergmann/complexity", + "support": { + "issues": "https://github.com/sebastianbergmann/complexity/issues", + "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:19:30+00:00" + }, + { + "name": "sebastian/diff", + "version": "4.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3", + "symfony/process": "^4.2 || ^5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + } + ], + "description": "Diff implementation", + "homepage": "https://github.com/sebastianbergmann/diff", + "keywords": [ + "diff", + "udiff", + "unidiff", + "unified diff" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:30:58+00:00" + }, + { + "name": "sebastian/environment", + "version": "5.1.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-posix": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/5.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:03:51+00:00" + }, + { + "name": "sebastian/exporter", + "version": "4.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-mbstring": "*", + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@gmail.com" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "https://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:33:00+00:00" + }, + { + "name": "sebastian/global-state", + "version": "5.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/global-state.git", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "ext-dom": "*", + "phpunit/phpunit": "^9.3" + }, + "suggest": { + "ext-uopz": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "5.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Snapshotting of global state", + "homepage": "http://www.github.com/sebastianbergmann/global-state", + "keywords": [ + "global state" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-02T06:35:11+00:00" + }, + { + "name": "sebastian/lines-of-code", + "version": "1.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/lines-of-code.git", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", + "shasum": "" + }, + "require": { + "nikic/php-parser": "^4.18 || ^5.0", + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library for counting the lines of code in PHP source code", + "homepage": "https://github.com/sebastianbergmann/lines-of-code", + "support": { + "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", + "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-12-22T06:20:34+00:00" + }, + { + "name": "sebastian/object-enumerator", + "version": "4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-enumerator.git", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", + "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", + "shasum": "" + }, + "require": { + "php": ">=7.3", + "sebastian/object-reflector": "^2.0", + "sebastian/recursion-context": "^4.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Traverses array structures and object graphs to enumerate all referenced objects", + "homepage": "https://github.com/sebastianbergmann/object-enumerator/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:12:34+00:00" + }, + { + "name": "sebastian/object-reflector", + "version": "2.0.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-10-26T13:14:26+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "4.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides functionality to recursively process PHP variables", + "homepage": "https://github.com/sebastianbergmann/recursion-context", + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:07:39+00:00" + }, + { + "name": "sebastian/resource-operations", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/resource-operations.git", + "reference": "ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25", + "reference": "ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.0" + }, + "default-branch": true, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides a list of PHP built-in functions that operate on resources", + "homepage": "https://www.github.com/sebastianbergmann/resource-operations", + "support": { + "source": "https://github.com/sebastianbergmann/resource-operations/tree/main" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2024-03-14T18:47:08+00:00" + }, + { + "name": "sebastian/type", + "version": "3.2.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/type.git", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Collection of value objects that represent the types of the PHP type system", + "homepage": "https://github.com/sebastianbergmann/type", + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/3.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2023-02-03T06:13:03+00:00" + }, + { + "name": "sebastian/version", + "version": "3.0.x-dev", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "c6c1022351a901512170118436c764e473f6de8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", + "reference": "c6c1022351a901512170118436c764e473f6de8c", + "shasum": "" + }, + "require": { + "php": ">=7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-09-28T06:39:44+00:00" + }, + { + "name": "symfony/options-resolver", + "version": "6.4.x-dev", + "source": { + "type": "git", + "url": "https://github.com/symfony/options-resolver.git", + "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a3c92b490716ba6771f5beced13c6eda7183eed", + "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed", + "shasum": "" + }, + "require": { + "php": ">=8.1", + "symfony/deprecation-contracts": "^2.5|^3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\OptionsResolver\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides an improved replacement for the array_replace PHP function", + "homepage": "https://symfony.com", + "keywords": [ + "config", + "configuration", + "options" + ], + "support": { + "source": "https://github.com/symfony/options-resolver/tree/6.4" + }, + "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": "2024-04-18T09:22:46+00:00" + }, + { + "name": "theseer/tokenizer", + "version": "1.2.3", + "source": { + "type": "git", + "url": "https://github.com/theseer/tokenizer.git", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.2 || ^8.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:36:25+00:00" + } + ], + "aliases": [], + "minimum-stability": "dev", + "stability-flags": { + "http-interop/http-factory-guzzle": 20 + }, + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=8.0" + }, + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml new file mode 100644 index 000000000000..4f04170e17a9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml @@ -0,0 +1,22 @@ + + + + + ./src + + + + + ./tests + + + ./tests/Model + + + ./tests/Message/Request + + + ./tests/Functional + + + diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php new file mode 100644 index 000000000000..c84a97322717 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php @@ -0,0 +1,21 @@ +default_parameters; + } + + public function setDefaultParameters(array $params) { + $this->default_parameters = $params; + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php new file mode 100644 index 000000000000..5fc947713f3a --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php @@ -0,0 +1,41 @@ +createRequest('GetCustomers', [] ); + } + public function postCustomers(array $params) : RequestInterface { + return $this->createRequest('PostCustomers', $params ); + } + public function getCustomersId(array $params) : RequestInterface { + return $this->createRequest('GetCustomersId', $params ); + } + public function patchCustomersId(array $params) : RequestInterface { + return $this->createRequest('PatchCustomersId', $params ); + } + public function postCustomersShowWithCustomIdentifier(array $params) : RequestInterface { + return $this->createRequest('PostCustomersShowWithCustomIdentifier', $params ); + } + public function getTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('GetTransactionSchedulesId', $params ); + } + public function deleteTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('DeleteTransactionSchedulesId', $params ); + } + public function patchTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('PatchTransactionSchedulesId', $params ); + } + public function postTransactionSchedules(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedules', $params ); + } + public function postTransactionSchedulesCreateWithCustomIdentifier(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedulesCreateWithCustomIdentifier', $params ); + } + public function postTransactionSchedulesUpdateViaPost(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedulesUpdateViaPost', $params ); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php new file mode 100644 index 000000000000..4d08fb0441f2 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php @@ -0,0 +1,11 @@ + 1234567890 ]; + + protected $test_mode = true; + + protected $api_key; + + public function getName() + { + return 'Rotessa'; + } + + public function getDefaultParameters() : array + { + return array_merge($this->default_parameters, array('api_key' => $this->api_key, 'test_mode' => $this->test_mode ) ); + } + + public function setTestMode($value) { + $this->test_mode = $value; + } + + public function getTestMode() { + return $this->test_mode; + } + + protected function createRequest($class_name, ?array $parameters = [] ) :RequestInterface { + $class = null; + $class_name = "Omnipay\\Rotessa\\Message\\Request\\$class_name"; + $parameters = $class_name::hasModel() ? (($parameters = ($class_name::getModel($parameters)))->validate() ? $parameters->jsonSerialize() : null ) : $parameters; + try { + $class = new $class_name($this->httpClient, $this->httpRequest, $this->getDefaultParameters() + $parameters ); + } catch (\Throwable $th) { + throw $th; + } + + return $class; + } + + function setApiKey($value) { + $this->api_key = $value; + } + + function getApiKey() { + return $this->api_key; + } + + function authorize(array $options = []) : RequestInterface { + return $this->postCustomers($options); + } + + function capture(array $options = []) : RequestInterface { + return array_key_exists('customer_id', $options)? $this->postTransactionSchedules($options) : $this->postTransactionSchedulesCreateWithCustomIdentifier($options) ; + } + + function updateCustomer(array $options) : RequestInterface { + return $this->patchCustomersId($options); + } + + function fetchTransaction($id = null) : RequestInterface { + return $this->getTransactionSchedulesId(compact('id')); + } + +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php new file mode 100644 index 000000000000..4c8ea0d29075 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php @@ -0,0 +1,82 @@ +httpClient = $httpClient ?: HttpClientDiscovery::find(); + $this->requestFactory = $requestFactory ?: MessageFactoryDiscovery::find(); + parent::__construct($httpClient, $requestFactory); + } + + /** + * @param $method + * @param $uri + * @param array $headers + * @param string|array|resource|StreamInterface|null $body + * @param string $protocolVersion + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + public function request( + $method, + $uri, + array $headers = [], + $body = null, + $protocolVersion = '1.1' + ) { + return $this->sendRequest($method, $uri, $headers, $body, $protocolVersion); + + } + + /** + * @param RequestInterface $request + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + private function sendRequest( $method, + $uri, + array $headers = [], + $body = null, + $protocolVersion = '1.1') + { + + $response = null; + + try { + if( method_exists($this->httpClient, 'sendRequest')) + $response = $this->httpClient->sendRequest( $this->requestFactory->createRequest($method, $uri, $headers, $body, $protocolVersion)); + else $response = $this->httpClient->request($method, $uri, compact('body','headers')); + } catch (\Http\Client\Exception\NetworkException $networkException) { + throw new NetworkException($networkException->getMessage(), $request, $networkException); + } catch (\Exception $exception) { + throw new RequestException($exception->getMessage(), $request, $exception); + } + + return $response; + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php new file mode 100644 index 000000000000..8d665ac8546e --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php @@ -0,0 +1,32 @@ +content, true) )) { + $data = $data['errors'][0]; + $this->reason_phrase = $data['error_message'] ; + $this->reason_code = $data['error_message'] ; + } + } + + public function getReasonPhrase() { + return $this->reason_phrase; + } + + public function getReasonCode() { + return $this->reason_code; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php new file mode 100644 index 000000000000..266ba3036d9d --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php @@ -0,0 +1,12 @@ +api_key = $value; + } + + public function getData() { + try { + if(empty($this->api_key)) throw new \Exception('No Api Key Found!'); + $this->validate( ...array_keys($data = $this->getParameters())); + } catch (\Throwable $th) { + throw new \Omnipay\Rotessa\Exception\ValidationException($th->getMessage() , 600, $th); + } + + return (array) $data; + } + + abstract public function sendData($data) : ResponseInterface; + + abstract protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = [] ); + + abstract protected function createResponse(array $data) : ResponseInterface; + + abstract public function getEndpointUrl(): string; + + public function getEndpoint() : string { + return $this->endpoint; + } + + public function getTestMode() { + return $this->test_mode; + } + + public function setTestMode($mode) { + $this->test_mode = $mode; + } + } \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php new file mode 100644 index 000000000000..4b68cf0aa2ff --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php @@ -0,0 +1,93 @@ +initialize($model); + } + + protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = []) + { + /** + * @param $method + * @param $uri + * @param array $headers + * @param string|resource|StreamInterface|null $body + * @param string $protocolVersion + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + $response = $this->httpClient->request($method, $endpoint, $headers, json_encode($data) ) ; + $this->response = new Response ($response->getBody()->getContents(), $response->getStatusCode(), $response->getHeaders(), true); + } + + + protected function createResponse(array $data): ResponseInterface { + + return new BaseResponse($this, $data, $this->response->getStatusCode(), $this->response->getReasonPhrase()); + } + + protected function replacePlaceholder($string, $array) { + $pattern = "/\{([^}]+)\}/"; + $replacement = function($matches) use($array) { + $key = $matches[1]; + if (array_key_exists($key, $array)) { + return $array[$key]; + } else { + return $matches[0]; + } + }; + + return preg_replace_callback($pattern, $replacement, $string); + } + + public function sendData($data) :ResponseInterface { + $headers = [ + 'Content-Type' => 'application/json', + 'Accept' => 'application/json', + 'Authorization' => "Token token={$this->api_key}" + ]; + + $this->sendRequest( + $this->method, + $this->getEndpointUrl(), + $headers, + $data); + + return $this->createResponse(json_decode($this->response->getContent(), true)); + } + + public function getEndpoint() : string { + return $this->replacePlaceholder($this->endpoint, $this->getParameters()); + } + + public function getEndpointUrl() : string { + return sprintf('https://%s.%s/v%d%s',$this->test_mode ? self::ENVIRONMENT_SANDBOX : self::ENVIRONMENT_LIVE ,$this->base_url, $this->api_version, $this->getEndpoint()); + } + + public static function hasModel() : bool { + return (bool) static::$model; + } + + public static function getModel($parameters = []) { + $class_name = static::$model; + $class_name = "Omnipay\\Rotessa\\Model\\{$class_name}Model"; + return new $class_name($parameters); + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php new file mode 100644 index 000000000000..7c03c42b0dc6 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php @@ -0,0 +1,18 @@ +setParameter('id',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php new file mode 100644 index 000000000000..17ffde5355d9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php @@ -0,0 +1,14 @@ +setParameter('id',$value); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php new file mode 100644 index 000000000000..47578d06eb8b --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php @@ -0,0 +1,17 @@ +setParameter('id',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php new file mode 100644 index 000000000000..092e378b9fd5 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php @@ -0,0 +1,65 @@ +setParameter('id',$value); + } + public function setCustomIdentifier(string $value) { + $this->setParameter('custom_identifier',$value); + } + public function setName(string $value) { + $this->setParameter('name',$value); + } + public function setEmail(string $value) { + $this->setParameter('email',$value); + } + public function setCustomerType(string $value) { + $this->setParameter('customer_type',$value); + } + public function setHomePhone(string $value) { + $this->setParameter('home_phone',$value); + } + public function setPhone(string $value) { + $this->setParameter('phone',$value); + } + public function setBankName(string $value) { + $this->setParameter('bank_name',$value); + } + public function setInstitutionNumber(string $value) { + $this->setParameter('institution_number',$value); + } + public function setTransitNumber(string $value) { + $this->setParameter('transit_number',$value); + } + public function setBankAccountType(string $value) { + $this->setParameter('bank_account_type',$value); + } + public function setAuthorizationType(string $value) { + $this->setParameter('authorization_type',$value); + } + public function setRoutingNumber(string $value) { + $this->setParameter('routing_number',$value); + } + public function setAccountNumber(string $value) { + $this->setParameter('account_number',$value); + } + public function setAddress(array $value) { + $this->setParameter('address',$value); + } + public function setTransactionSchedules(array $value) { + $this->setParameter('transaction_schedules',$value); + } + public function setFinancialTransactions(array $value) { + $this->setParameter('financial_transactions',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php new file mode 100644 index 000000000000..fa04b9f05da6 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php @@ -0,0 +1,22 @@ +setParameter('id',$value); + } + public function setAmount(int $value) { + $this->setParameter('amount',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php new file mode 100644 index 000000000000..a0c54fe65ca9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php @@ -0,0 +1,60 @@ +setParameter('id',$value); + } + public function setCustomIdentifier(string $value) { + $this->setParameter('custom_identifier',$value); + } + public function setName(string $value) { + $this->setParameter('name',$value); + } + public function setEmail(string $value) { + $this->setParameter('email',$value); + } + public function setCustomerType(string $value) { + $this->setParameter('customer_type',$value); + } + public function setHomePhone(string $value) { + $this->setParameter('home_phone',$value); + } + public function setPhone(string $value) { + $this->setParameter('phone',$value); + } + public function setBankName(string $value) { + $this->setParameter('bank_name',$value); + } + public function setInstitutionNumber(string $value = '') { + $this->setParameter('institution_number',$value); + } + public function setTransitNumber(string $value = '') { + $this->setParameter('transit_number',$value); + } + public function setBankAccountType(string $value) { + $this->setParameter('bank_account_type',$value); + } + public function setAuthorizationType(string $value = '') { + $this->setParameter('authorization_type',$value); + } + public function setRoutingNumber(string $value = '') { + $this->setParameter('routing_number',$value); + } + public function setAccountNumber(string $value) { + $this->setParameter('account_number',$value); + } + public function setAddress(array $value) { + $this->setParameter('address',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php new file mode 100644 index 000000000000..d590cb618526 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php @@ -0,0 +1,19 @@ +setParameter('custom_identifier',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php new file mode 100644 index 000000000000..80e28a7f5083 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php @@ -0,0 +1,31 @@ +setParameter('customer_id',$value); + } + public function setProcessDate(string $value) { + $this->setParameter('process_date',$value); + } + public function setFrequency(string $value) { + $this->setParameter('frequency',$value); + } + public function setInstallments(int $value) { + $this->setParameter('installments',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php new file mode 100644 index 000000000000..fd5111dc9a74 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php @@ -0,0 +1,16 @@ +setParameter('custom_identifier',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php new file mode 100644 index 000000000000..e037c5b4d322 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php @@ -0,0 +1,24 @@ +setParameter('id',$value); + } + public function setAmount(int $value) { + $this->setParameter('amount',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php new file mode 100644 index 000000000000..cfbcf0095b24 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php @@ -0,0 +1,10 @@ +code = $code; + $this->message = $message; + } + + public function getData() { + return $this->getParameters(); + } + + public function getCode() { + return (int) $this->code; + } + + public function isSuccessful() { + return $this->code < 300; + } + + public function getMessage() { + return $this->message; + } + + protected function getParameters() { + return $this->data; + } + + public function getParameter(string $key) { + return $this->getParameters()[$key]; + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php new file mode 100644 index 000000000000..080eaab504b1 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php @@ -0,0 +1,9 @@ +required), array_filter($this->getParameters()) ); + if(!empty($required)) throw new ValidationException("Could not validate " . implode(",", array_keys($required)) ); + + return true; + } + + public function __get($key) { + return array_key_exists($key, $this->attributes) ? $this->getParameter($key) : null; + } + + public function __set($key, $value) { + if(array_key_exists($key, $this->attributes)) $this->setParameter($key, $value); + } + + public function __toString() : string { + return json_encode($this); + } + + public function toString() : string { + return $this->__toString(); + } + + public function __toArray() : array { + return $this->getParameters(); + } + + + public function toArray() : array { + return $this->__toArray(); + } + + public function initialize(array $params = []) { + $this->parameters = new ParameterBag; + $parameters = array_merge($this->defaults, $params); + if ($parameters) { + foreach ($this->attributes as $param => $type) { + $value = @$parameters[$param]; + if($value){ + settype($value, $type); + $this->setParameter($param, $value); + } + } + } + + return $this; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php new file mode 100644 index 000000000000..8064662068c4 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php @@ -0,0 +1,24 @@ + "string" + ]; + protected $required = ['id']; + protected $defaults = ['id' => 0 ]; + + public function __construct($parameters = array()) { + $this->initialize($parameters); + } + + public function jsonSerialize() : array { + return array_intersect_key($this->toArray(), array_flip($this->required) ); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php new file mode 100644 index 000000000000..0fd67aea9441 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php @@ -0,0 +1,94 @@ + "string", + "custom_identifier" => "string", + "name" => "string", + "email" => "string", + "customer_type" => "string", + "home_phone" => "string", + "phone" => "string", + "bank_name" => "string", + "institution_number" => "string", + "transit_number" => "string", + "bank_account_type" => "string", + "authorization_type" => "string", + "routing_number" => "string", + "account_number" => "string", + "address" => "object", + "transaction_schedules" => "array", + "financial_transactions" => "array", + "active" => "bool" + ]; + + protected $defaults = ["active" => false,"customer_type" =>'Business',"bank_account_type" =>'Savings',"authorization_type" =>'Online',]; + protected $required = ["name","email","customer_type","home_phone","phone","bank_name","institution_number","transit_number","bank_account_type","authorization_type","routing_number","account_number","address",'custom_identifier']; + + public function validate() : bool { + try { + $country = $this->address->country; + if(!self::isValidCountry($country)) throw new \Exception("Invalid country!"); + + $this->required = array_diff($this->required, Country::isAmerican($country) ? ["institution_number", "transit_number"] : ["bank_account_type", "routing_number"]); + parent::validate(); + if(Country::isCanadian($country) ) { + if(!self::isValidTransitNumber($this->getParameter('transit_number'))) throw new \Exception("Invalid transit number!"); + if(!self::isValidInstitutionNumber($this->getParameter('institution_number'))) throw new \Exception("Invalid institution number!"); + } + if(!self::isValidCustomerType($this->getParameter('customer_type'))) throw new \Exception("Invalid customer type!"); + if(!self::isValidBankAccountType($this->getParameter('bank_account_type'))) throw new \Exception("Invalid bank account type!"); + if(!self::isValidAuthorizationType($this->getParameter('authorization_type'))) throw new \Exception("Invalid authorization type!"); + } catch (\Throwable $th) { + throw new ValidationException($th->getMessage()); + } + + return true; + } + + public static function isValidCountry(string $country ) : bool { + return Country::isValidCountryCode($country) || Country::isValidCountryName($country); + } + + public static function isValidTransitNumber(string $value ) : bool { + return strlen($value) == 5; + } + + public static function isValidInstitutionNumber(string $value ) : bool { + return strlen($value) == 3; + } + + public static function isValidCustomerType(string $value ) : bool { + return CustomerType::isValid($value); + } + + public static function isValidBankAccountType(string $value ) : bool { + return BankAccountType::isValid($value); + } + + public static function isValidAuthorizationType(string $value ) : bool { + return AuthorizationType::isValid($value); + } + + public function toArray() : array { + return [ 'address' => (array) $this->getParameter('address') ] + parent::toArray(); + } + + public function jsonSerialize() : array { + $address = (array) $this->getParameter('address'); + unset($address['country']); + + return compact('address') + parent::jsonSerialize(); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php new file mode 100644 index 000000000000..c2e51d50b135 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php @@ -0,0 +1,16 @@ + "string", + "amount" => "float", + "comment" => "string", + "created_at" => "date", + "financial_transactions" => "array", + "frequency" => "string", + "installments" => "integer", + "next_process_date" => "date", + "process_date" => "date", + "updated_at" => "date", + "customer_id" => "string", + "custom_identifier" => "string", + ]; + + public const DATE_FORMAT = 'F j, Y'; + + protected $defaults = ["amount" =>0.00,"comment" =>' ',"financial_transactions" =>0,"frequency" =>'Once',"installments" =>1]; + + protected $required = ["amount","comment","frequency","installments","process_date"]; + + public function validate() : bool { + try { + parent::validate(); + if(!self::isValidDate($this->process_date)) throw new \Exception("Could not validate date "); + if(!self::isValidFrequency($this->frequency)) throw new \Exception("Invalid frequency"); + if(is_null($this->customer_id) && is_null($this->custom_identifier)) throw new \Exception("customer id or custom identifier is invalid"); + } catch (\Throwable $th) { + throw new ValidationException($th->getMessage()); + } + + return true; + } + + public function jsonSerialize() : array { + return ['customer_id' => $this->getParameter('customer_id'), 'custom_identifier' => $this->getParameter('custom_identifier') ] + parent::jsonSerialize() ; + } + + public function __toArray() : array { + return parent::__toArray() ; + } + + public function initialize(array $params = [] ) { + $o_params = array_intersect_key( + $params = array_intersect_key($params, $this->attributes), + ($attr = array_filter($this->attributes, fn($p) => $p != "date")) + ); + parent::initialize($o_params); + $d_params = array_diff_key($params, $attr); + array_walk($d_params, function($v,$k) { + $this->setParameter($k, self::formatDate( $v) ); + }, ); + + return $this; + } + + public static function isValidDate($date) : bool { + $d = DateTime::createFromFormat(self::DATE_FORMAT, $date); + // Check if the date is valid and matches the format + return $d && $d->format(self::DATE_FORMAT) === $date; + } + + public static function isValidFrequency($value) : bool { + return Frequency::isValid($value); + } + + protected static function formatDate($date) : string { + $d = new DateTime($date); + return $d->format(self::DATE_FORMAT); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php new file mode 100644 index 000000000000..119ac03999cb --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php @@ -0,0 +1,23 @@ + "int", + "comment" => "string", + ]; + + public const DATE_FORMAT = 'Y-m-d H:i:s'; + + private $_is_error = false; + + protected $defaults = ["amount" =>0,"comment" =>'0',]; + + protected $required = ["amount","comment",]; +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php new file mode 100644 index 000000000000..749ae2f6b967 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php @@ -0,0 +1,24 @@ + "int", + "amount" => "int", + "comment" => "string", + ]; + + public const DATE_FORMAT = 'Y-m-d H:i:s'; + + private $_is_error = false; + + protected $defaults = ["amount" =>0,"comment" =>'0',]; + + protected $required = ["amount","comment",]; +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php new file mode 100644 index 000000000000..1c5952b112ef --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php @@ -0,0 +1,53 @@ + "string", + "address_2" => "string", + "city" => "string", + "id" => "int", + "postal_code" => "string", + "province_code" => "string", + "country" => "string" + ]; + + protected $required = ["address_1","address_2","city","postal_code","province_code",]; + + public function jsonSerialize() { + return array_intersect_key($this->getParameters(), array_flip($this->required)); + } + + public function getCountry() : string { + return $this->getParameter('country'); + } + + public function initialize(array $parameters) { + foreach($this->attributes as $param => $type) { + $value = @$parameters[$param] ; + settype($value, $type); + $value = $value ?? null; + $this->parameters->set($param, $value); + } + } + + public function __toArray() : array { + return $this->getParameters(); + } + + public function __toString() : string { + return $this->getFullAddress(); + } + + public function getFullAddress() :string { + $full_address = $this->getParameters(); + extract($full_address); + + return "$address_1 $address_2, $city, $postal_code $province_code, $country"; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php new file mode 100644 index 000000000000..39dcebfa342f --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php @@ -0,0 +1,28 @@ + Date: Sun, 23 Jun 2024 22:30:28 -0400 Subject: [PATCH 13/31] remove --- .../Rotessa/DataProviders/CAProvinces.php | 55 -------- .../Rotessa/DataProviders/Frequencies.php | 19 --- .../Rotessa/Events/CacheGateways.php | 11 -- .../Rotessa/Helpers/helpers.php | 6 - .../Rotessa/Listeners/CacheGateways.php | 28 ----- app/PaymentDrivers/Rotessa/Models/Gateway.php | 23 ---- app/PaymentDrivers/Rotessa/Providers/.gitkeep | 0 .../Providers/EventServiceProvider.php | 21 ---- .../Rotessa/Providers/ServiceProvider.php | 83 ------------ .../Rotessa/View/Components/Components.php | 118 ------------------ .../Rotessa/View/Composers/Composer.php | 16 --- app/PaymentDrivers/Rotessa/composer.json | 61 --------- app/PaymentDrivers/Rotessa/composer.lock | 44 ------- .../Rotessa/config/gateway_types.php | 16 --- .../bank_transfer/CA/details.blade.php | 4 - .../rotessa/bank_transfer/authorize.blade.php | 35 ------ .../rotessa/bank_transfer/pay.blade.php | 91 -------------- .../rotessa/components/account.blade.php | 31 ----- .../rotessa/components/address.blade.php | 62 --------- .../components/banks/CA/bank.blade.php | 17 --- .../components/banks/US/bank.blade.php | 28 ----- .../rotessa/components/contact.blade.php | 69 ---------- .../components/dropdowns/country/CA.blade.php | 12 -- .../components/dropdowns/country/US.blade.php | 12 -- 24 files changed, 862 deletions(-) delete mode 100644 app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php delete mode 100644 app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php delete mode 100644 app/PaymentDrivers/Rotessa/Events/CacheGateways.php delete mode 100644 app/PaymentDrivers/Rotessa/Helpers/helpers.php delete mode 100644 app/PaymentDrivers/Rotessa/Listeners/CacheGateways.php delete mode 100644 app/PaymentDrivers/Rotessa/Models/Gateway.php delete mode 100644 app/PaymentDrivers/Rotessa/Providers/.gitkeep delete mode 100644 app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php delete mode 100644 app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php delete mode 100644 app/PaymentDrivers/Rotessa/View/Components/Components.php delete mode 100644 app/PaymentDrivers/Rotessa/View/Composers/Composer.php delete mode 100644 app/PaymentDrivers/Rotessa/composer.json delete mode 100644 app/PaymentDrivers/Rotessa/composer.lock delete mode 100644 app/PaymentDrivers/Rotessa/config/gateway_types.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php delete mode 100755 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php delete mode 100644 app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php diff --git a/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php b/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php deleted file mode 100644 index 275e79cfad4e..000000000000 --- a/app/PaymentDrivers/Rotessa/DataProviders/CAProvinces.php +++ /dev/null @@ -1,55 +0,0 @@ - 'Alberta', - 'BC' => 'British Columbia', - 'MB' => 'Manitoba', - 'NB' => 'New Brunswick', - 'NL' => 'Newfoundland And Labrador', - 'NS' => 'Nova Scotia', - 'ON' => 'Ontario', - 'PE' => 'Prince Edward Island', - 'QC' => 'Quebec', - 'SK' => 'Saskatchewan', - 'NT' => 'Northwest Territories', - 'NU' => 'Nunavut', - 'YT' => 'Yukon' - ]; - - /** - * Get the name of the province or territory for a given abbreviation. - * - * @param string $abbreviation - * @return string - */ - public static function getName($abbreviation) { - return self::$provinces[$abbreviation]; - } - - /** - * Get all provinces and territories. - * - * @return array - */ - public static function get() { - return self::$provinces; - } - - /** - * Get the abbreviation for a given province or territory name. - * - * @param string $name - * @return string - */ - public static function getAbbreviation($name) { - return array_search(ucwords($name), self::$provinces); - } -} diff --git a/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php b/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php deleted file mode 100644 index ca5623c1694b..000000000000 --- a/app/PaymentDrivers/Rotessa/DataProviders/Frequencies.php +++ /dev/null @@ -1,19 +0,0 @@ -where('name', 'Rotessa')->isEmpty()) { - $gateways = Gateway::orderBy('id')->get(); - } - - $gateways = $gateways->map(fn($item) => $item->name == 'Rotessa'? RotessaGateway::find($item->toArray()['id']) : $item ); - - Cache::forever('gateways', $gateways); - } -} - diff --git a/app/PaymentDrivers/Rotessa/Models/Gateway.php b/app/PaymentDrivers/Rotessa/Models/Gateway.php deleted file mode 100644 index 55405dbd7f5f..000000000000 --- a/app/PaymentDrivers/Rotessa/Models/Gateway.php +++ /dev/null @@ -1,23 +0,0 @@ -name == 'Rotessa' && empty($options)) { - $options = $gateway_types; - } - - return $options; - } -} - diff --git a/app/PaymentDrivers/Rotessa/Providers/.gitkeep b/app/PaymentDrivers/Rotessa/Providers/.gitkeep deleted file mode 100644 index e69de29bb2d1..000000000000 diff --git a/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php b/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php deleted file mode 100644 index 0d61ecbce482..000000000000 --- a/app/PaymentDrivers/Rotessa/Providers/EventServiceProvider.php +++ /dev/null @@ -1,21 +0,0 @@ - [ - Listener::class, - ], - ]; -} diff --git a/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php b/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php deleted file mode 100644 index af11a242f209..000000000000 --- a/app/PaymentDrivers/Rotessa/Providers/ServiceProvider.php +++ /dev/null @@ -1,83 +0,0 @@ -registerConfig(); - $this->registerTranslations(); - $this->registerViews(); - - event(new CacheGateways); - } - - /** - * Register config. - */ - protected function registerConfig(): void - { - $this->mergeConfigFrom(app_path("PaymentDrivers/{$this->moduleName}/config/gateway_types.php"),$this->moduleNameLower); - } - /** - * Register the service provider. - */ - public function register(): void - { - $this->app->register(EventServiceProvider::class); - - } - - /** - * Register translations. - */ - public function registerTranslations(): void - { - $langPath = resource_path('lang/modules/'.$this->moduleNameLower); - - if (is_dir($langPath)) { - $this->loadTranslationsFrom($langPath, $this->moduleNameLower); - $this->loadJsonTranslationsFrom($langPath); - } else { - $this->loadTranslationsFrom(app_path("PaymentDrivers/{$this->moduleName}resources/lang"), $this->moduleNameLower); - $this->loadJsonTranslationsFrom(app_path("PaymentDrivers/{$this->moduleName}resources/lang")); - } - } - - /** - * Register views. - */ - public function registerViews(): void - { - $viewPath = resource_path('views/portal/ninja2020/gateways/'.$this->moduleNameLower); - $sourcePath = app_path('PaymentDrivers/Rotessa/resources/views/gateways/rotessa'); - $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->moduleNameLower); - Blade::componentNamespace('App\\PaymentDrivers\\Rotessa\\View\\Components', $this->moduleNameLower); - } - - private function getPublishableViewPaths(): array - { - $paths = [app_path('PaymentDrivers/Rotessa/resources/views/gateways/rotessa')]; - foreach (config('view.paths') as $path) { - if (is_dir($path.'/'.$this->moduleNameLower)) { - $paths[] = $path.'/'.$this->moduleNameLower; - } - } - - return $paths; - } -} diff --git a/app/PaymentDrivers/Rotessa/View/Components/Components.php b/app/PaymentDrivers/Rotessa/View/Components/Components.php deleted file mode 100644 index b18269f35f54..000000000000 --- a/app/PaymentDrivers/Rotessa/View/Components/Components.php +++ /dev/null @@ -1,118 +0,0 @@ -contact = $contact; - $this->attributes = $this->newAttributeBag(Arr::only($this->contact, $this->fields) ); - } - - private $fields = [ - 'name', - 'email', - 'home_phone', - 'phone', - 'custom_identifier', - 'customer_type' , - 'id' - ]; - - private $defaults = [ - 'customer_type' => "Business", - 'customer_identifier' => null, - 'id' => null - ]; - - public function render() - { - return $this->view('rotessa::components.contact', $this->attributes->getAttributes(), $this->defaults ); - } -} - -// Address Component -class AddressComponent extends Component -{ - private $fields = [ - 'address_1', - 'address_2', - 'city', - 'postal_code', - 'province_code', - 'country' - ]; - - private $defaults = [ - 'country' => 'US' - ]; - - public array $address; - - public function __construct(array $address) { - $this->address = $address; - if(strlen($this->address['state']) > 2 ) { - $this->address['state'] = $this->address['country'] == 'US' ? array_search($this->address['state'], USStates::$states) : CAProvinces::getAbbreviation($this->address['state']); - } - - $this->attributes = $this->newAttributeBag( - Arr::only(Arr::mapWithKeys($this->address, function ($item, $key) { - return in_array($key, ['address1','address2','state'])?[ (['address1'=>'address_1','address2'=>'address_2','state'=>'province_code'])[$key] => $item ] :[ $key => $item ]; - }), - $this->fields) ); - } - - - public function render() - { - - return $this->view('rotessa::components.address', $this->attributes->getAttributes(), $this->defaults ); - } -} - -// AmericanBankInfo Component -class AccountComponent extends Component -{ - private $fields = [ - 'bank_account_type', - 'routing_number', - 'institution_number', - 'transit_number', - 'bank_name', - 'country', - 'account_number' - ]; - - private $defaults = [ - 'bank_account_type' => null, - 'routing_number' => null, - 'institution_number' => null, - 'transit_number' => null, - 'bank_name' => ' ', - 'account_number' => null, - 'country' => 'US', - "authorization_type" => 'Online' - ]; - - public array $account; - - public function __construct(array $account) { - $this->account = $account; - $this->attributes = $this->newAttributeBag(Arr::only($this->account, $this->fields) ); - } - - public function render() - { - return $this->view('rotessa::components.account', $this->attributes->getAttributes(), $this->defaults ); - } -} diff --git a/app/PaymentDrivers/Rotessa/View/Composers/Composer.php b/app/PaymentDrivers/Rotessa/View/Composers/Composer.php deleted file mode 100644 index fb3c126a3555..000000000000 --- a/app/PaymentDrivers/Rotessa/View/Composers/Composer.php +++ /dev/null @@ -1,16 +0,0 @@ -with('states', $states); -}); - -// CAProvinces View Composer -View::composer(['rotessa::components.address','rotessa::components.banks.CA.bank','rotessa::components.dropdowns.country.CA'], function ($view) { - $provinces = CAProvinces::get(); - $view->with('provinces', $provinces); -}); \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/composer.json b/app/PaymentDrivers/Rotessa/composer.json deleted file mode 100644 index 6f9ba511a9b4..000000000000 --- a/app/PaymentDrivers/Rotessa/composer.json +++ /dev/null @@ -1,61 +0,0 @@ -{ - "name": "karneaud/invoiceninja-rotessa", - "description": "Invoice Ninja with Rotessa gateway", - "type":"laravel-module", - "keywords": [ - "invoice ninja", - "laravel", - "rotessa" - ], - "license": ["Attribution Assurance License","Proprietary License","BSD 3-Clause License"], - "authors": [ - { - "name": "Kendall Arneaud", - "email": "kendall.arneaud@gmail.com" - } - ], - "autoload": { - "classmap": ["./View/Components/Components.php"], - "psr-4": { - "App\\PaymentDrivers\\Rotessa\\":"./", - "App\\PaymentDrivers\\Rotessa\\View\\Components\\":"./View/Components/", - "App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\": "Database/Seeders/" - }, - "files": [ - "./View/Composers/Composer.php" - ] - }, - "config": { - "preferred-install": "dist", - "sort-packages": true, - "optimize-autoloader": true - }, - "repositories": [ - { - "type": "package", - "package": { - "name": "karneaud/omnipay-rotessa", - "source": { - "url": "https://github.com/karneaud/omnipay-rotessa.git", - "type": "git", - "reference": "master" - }, - "version": "1.0.0-beta", - "dist": { - "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip", - "type": "zip" - }, - "autoload": { - "psr-4": { - "Omnipay\\Rotessa\\":"./src/Omnipay/Rotessa/", - "Omnipay\\Rotessa\\Exception\\":"./src/Omnipay/Rotessa/Exception/" - }, - "classmap": ["./src/Omnipay/Rotessa/Exception/Exceptions.php"] - } - } - } - ], - "require": { - "karneaud/omnipay-rotessa": "v1.0.0-beta" - } -} diff --git a/app/PaymentDrivers/Rotessa/composer.lock b/app/PaymentDrivers/Rotessa/composer.lock deleted file mode 100644 index 24dc1719cffb..000000000000 --- a/app/PaymentDrivers/Rotessa/composer.lock +++ /dev/null @@ -1,44 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "4c8b93bd9cd92f484502fc665fdbe826", - "packages": [ - { - "name": "karneaud/omnipay-rotessa", - "version": "1.0.0-beta", - "source": { - "type": "git", - "url": "https://github.com/karneaud/omnipay-rotessa.git", - "reference": "master" - }, - "dist": { - "type": "zip", - "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip" - }, - "type": "library", - "autoload": { - "psr-4": { - "Omnipay\\Rotessa\\": "./src/Omnipay/Rotessa/", - "Omnipay\\Rotessa\\Exception\\": "./src/Omnipay/Rotessa/Exception/" - }, - "classmap": [ - "./src/Omnipay/Rotessa/Exception/Exceptions.php" - ] - } - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "karneaud/omnipay-rotessa": 10 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": [], - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/app/PaymentDrivers/Rotessa/config/gateway_types.php b/app/PaymentDrivers/Rotessa/config/gateway_types.php deleted file mode 100644 index 9f851e3a3714..000000000000 --- a/app/PaymentDrivers/Rotessa/config/gateway_types.php +++ /dev/null @@ -1,16 +0,0 @@ - [ - GatewayType::BANK_TRANSFER => [ - 'refund' => false, - 'token_billing' => true, - 'webhooks' => [], - ], - //GatewayType::BACS => ['refund' => false, 'token_billing' => true, 'webhooks' => []], - //GatewayType::DIRECT_DEBIT => ['refund' => false, 'token_billing' => true, 'webhooks' => []], - GatewayType::ACSS => ['refund' => false, 'token_billing' => true, 'webhooks' => []] - ] -]; \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php deleted file mode 100644 index 9492f3036fc1..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/CA/details.blade.php +++ /dev/null @@ -1,4 +0,0 @@ -
Gateway:
-
{{ $brand }}
-
Account Number:
-
{{ $account_number }}
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php deleted file mode 100755 index 70a0cfb7ba59..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/authorize.blade.php +++ /dev/null @@ -1,35 +0,0 @@ -@extends('portal.ninja2020.layout.payments', ['gateway_title' => $gateway->company_gateway->label, 'card_title' =>\App\Models\GatewayType::getAlias($gateway_type_id )]) - -@section('gateway_content') - @if(session()->has('ach_error')) -
-

{{ session('ach_error') }}

-
- @endif - -
- @csrf - - - - - - - - - - - - @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-bank-account', 'type' => 'submit']) - {{ ctrans('texts.add_payment_method') }} - @endcomponent -
- - - -@endsection - -@section('gateway_footer') - -@endsection \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php deleted file mode 100644 index 4e6e0c2a0b22..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/bank_transfer/pay.blade.php +++ /dev/null @@ -1,91 +0,0 @@ -@extends('portal.ninja2020.layout.payments', ['gateway_title' => 'Direct Debit', 'card_title' => 'Direct Debit']) - -@section('gateway_content') - @if (count($tokens) > 0) - - - @include('portal.ninja2020.gateways.includes.payment_details') - -
- @csrf - - - - - - - - - - - - @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.pay_with')]) - @if (count($tokens) > 0) - @foreach ($tokens as $token) -
- @endforeach - @endisset -
- Process Date -
-
- -
- {{-- -
- Insallments -
-
- -
- -
- Frequency -
-
- -
- -
- Comments -
-
- -
--}} - @endcomponent -
- @else - @component('portal.ninja2020.components.general.card-element-single', ['title' => 'Direct Debit', 'show_title' => false]) - {{ ctrans('texts.bank_account_not_linked') }} - - {{ ctrans('texts.add_payment_method') }} - @endcomponent - @endif - - @if (count($tokens) > 0) - @include('portal.ninja2020.gateways.includes.pay_now') - @endif -@endsection - -@push('footer') - -@endpush \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php deleted file mode 100644 index c42672255b00..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/account.blade.php +++ /dev/null @@ -1,31 +0,0 @@ -
-

- Account Information -

- -

- Enter the information for the bank account -

-
-
-
- Bank Name -
-
- -
-
- -
-
- Account Number -
-
- -
-
- - - - -@include("rotessa::components.banks.$country.bank", compact('bank_account_type','routing_number','institution_number','transit_number')) \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php deleted file mode 100644 index 2db721cd4e28..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/address.blade.php +++ /dev/null @@ -1,62 +0,0 @@ - -
-

- Address Information -

- -

- Enter the address information for the account holder -

-
-
-
- Address Line 1 -
-
- -
-
- -
-
- Address Line 2 -
-
- -
-
- -
-
- City -
-
- -
-
- -
-
- Postal Code -
-
- -
-
- -
-
- Country -
-
- @if('US' == $country) - -
- @else - -
- @endif -
-
- - @include("rotessa::components.dropdowns.country.$country",compact('province_code')) \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php deleted file mode 100644 index 3c37b84741c6..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/CA/bank.blade.php +++ /dev/null @@ -1,17 +0,0 @@ -
-
- Transit Number -
-
- -
-
- -
-
- Institution Number -
-
- -
-
diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php deleted file mode 100644 index 891fbe421a9a..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/banks/US/bank.blade.php +++ /dev/null @@ -1,28 +0,0 @@ - - -
-
- Routing Number -
-
- -
-
- -
-
- Account Type -
-
-
-
- - -
-
- - -
-
-
-
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php deleted file mode 100644 index 827fc587f5ad..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/contact.blade.php +++ /dev/null @@ -1,69 +0,0 @@ - -
-

- Account Holder Information -

- -

- Enter the information for the account holder -

-
- -
-
- Full Name -
-
- -
-
- - -
-
- Email Address -
-
- -
-
- -
-
- Home Phone -
-
- -
-
- -
-
- Other Phone -
-
- -
-
- -
-
- Customer Type -
-
-
-
- - -
-
- - -
-
-
-
- - - - \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php deleted file mode 100644 index f2d7a38a5ecb..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/CA.blade.php +++ /dev/null @@ -1,12 +0,0 @@ -
-
- Province Code -
-
- -
-
\ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php b/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php deleted file mode 100644 index 7c33af78d31a..000000000000 --- a/app/PaymentDrivers/Rotessa/resources/views/gateways/rotessa/components/dropdowns/country/US.blade.php +++ /dev/null @@ -1,12 +0,0 @@ -
-
- State -
-
- -
-
\ No newline at end of file From e62045e8d4ed36628739b353cab592de4c40d7cf Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:31:03 -0400 Subject: [PATCH 14/31] add data providers for privinces and installment --- app/DataProviders/CAProvinces.php | 55 +++++++++++++++++++++++++++++++ app/DataProviders/Frequencies.php | 19 +++++++++++ 2 files changed, 74 insertions(+) create mode 100644 app/DataProviders/CAProvinces.php create mode 100644 app/DataProviders/Frequencies.php diff --git a/app/DataProviders/CAProvinces.php b/app/DataProviders/CAProvinces.php new file mode 100644 index 000000000000..251f6e7c9262 --- /dev/null +++ b/app/DataProviders/CAProvinces.php @@ -0,0 +1,55 @@ + 'Alberta', + 'BC' => 'British Columbia', + 'MB' => 'Manitoba', + 'NB' => 'New Brunswick', + 'NL' => 'Newfoundland And Labrador', + 'NS' => 'Nova Scotia', + 'ON' => 'Ontario', + 'PE' => 'Prince Edward Island', + 'QC' => 'Quebec', + 'SK' => 'Saskatchewan', + 'NT' => 'Northwest Territories', + 'NU' => 'Nunavut', + 'YT' => 'Yukon' + ]; + + /** + * Get the name of the province or territory for a given abbreviation. + * + * @param string $abbreviation + * @return string + */ + public static function getName($abbreviation) { + return self::$provinces[$abbreviation]; + } + + /** + * Get all provinces and territories. + * + * @return array + */ + public static function get() { + return self::$provinces; + } + + /** + * Get the abbreviation for a given province or territory name. + * + * @param string $name + * @return string + */ + public static function getAbbreviation($name) { + return array_search(ucwords($name), self::$provinces); + } +} diff --git a/app/DataProviders/Frequencies.php b/app/DataProviders/Frequencies.php new file mode 100644 index 000000000000..503d40973dc4 --- /dev/null +++ b/app/DataProviders/Frequencies.php @@ -0,0 +1,19 @@ + Date: Sun, 23 Jun 2024 22:31:36 -0400 Subject: [PATCH 15/31] add default attributes for rotessa gateway views --- app/Http/ViewComposers/RotessaComposer.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 app/Http/ViewComposers/RotessaComposer.php diff --git a/app/Http/ViewComposers/RotessaComposer.php b/app/Http/ViewComposers/RotessaComposer.php new file mode 100644 index 000000000000..5501fac81207 --- /dev/null +++ b/app/Http/ViewComposers/RotessaComposer.php @@ -0,0 +1,16 @@ +with('states', $states); +}); + +// CAProvinces View Composer +View::composer(['rotessa::components.address','rotessa::components.banks.CA.bank','rotessa::components.dropdowns.country.CA'], function ($view) { + $provinces = CAProvinces::get(); + $view->with('provinces', $provinces); +}); \ No newline at end of file From 3db5c34a3810916774d0c01a97772dc08de1c81a Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:31:53 -0400 Subject: [PATCH 16/31] hanlde attributes for rotessa views via components --- .../Components/RotessaComponents.php | 118 ++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 app/Http/ViewComposers/Components/RotessaComponents.php diff --git a/app/Http/ViewComposers/Components/RotessaComponents.php b/app/Http/ViewComposers/Components/RotessaComponents.php new file mode 100644 index 000000000000..2af96e9f0fd7 --- /dev/null +++ b/app/Http/ViewComposers/Components/RotessaComponents.php @@ -0,0 +1,118 @@ +contact = $contact; + $this->attributes = $this->newAttributeBag(Arr::only($this->contact, $this->fields) ); + } + + private $fields = [ + 'name', + 'email', + 'home_phone', + 'phone', + 'custom_identifier', + 'customer_type' , + 'id' + ]; + + private $defaults = [ + 'customer_type' => "Business", + 'customer_identifier' => null, + 'id' => null + ]; + + public function render() + { + return $this->view('rotessa::components.contact', $this->attributes->getAttributes(), $this->defaults ); + } +} + +// Address Component +class AddressComponent extends Component +{ + private $fields = [ + 'address_1', + 'address_2', + 'city', + 'postal_code', + 'province_code', + 'country' + ]; + + private $defaults = [ + 'country' => 'US' + ]; + + public array $address; + + public function __construct(array $address) { + $this->address = $address; + if(strlen($this->address['state']) > 2 ) { + $this->address['state'] = $this->address['country'] == 'US' ? array_search($this->address['state'], USStates::$states) : CAProvinces::getAbbreviation($this->address['state']); + } + + $this->attributes = $this->newAttributeBag( + Arr::only(Arr::mapWithKeys($this->address, function ($item, $key) { + return in_array($key, ['address1','address2','state'])?[ (['address1'=>'address_1','address2'=>'address_2','state'=>'province_code'])[$key] => $item ] :[ $key => $item ]; + }), + $this->fields) ); + } + + + public function render() + { + + return $this->view('rotessa::components.address', $this->attributes->getAttributes(), $this->defaults ); + } +} + +// AmericanBankInfo Component +class AccountComponent extends Component +{ + private $fields = [ + 'bank_account_type', + 'routing_number', + 'institution_number', + 'transit_number', + 'bank_name', + 'country', + 'account_number' + ]; + + private $defaults = [ + 'bank_account_type' => null, + 'routing_number' => null, + 'institution_number' => null, + 'transit_number' => null, + 'bank_name' => ' ', + 'account_number' => null, + 'country' => 'US', + "authorization_type" => 'Online' + ]; + + public array $account; + + public function __construct(array $account) { + $this->account = $account; + $this->attributes = $this->newAttributeBag(Arr::only($this->account, $this->fields) ); + } + + public function render() + { + return $this->view('rotessa::components.account', $this->attributes->getAttributes(), $this->defaults ); + } +} From cf45e647c3b0782a49dbc8a6118479ac2058c392 Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:32:14 -0400 Subject: [PATCH 17/31] add rotessa gateway payment methods --- app/Models/Gateway.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/Models/Gateway.php b/app/Models/Gateway.php index e62221d8b02e..455016380079 100644 --- a/app/Models/Gateway.php +++ b/app/Models/Gateway.php @@ -105,7 +105,9 @@ class Gateway extends StaticModel $link = 'https://www.forte.net/'; } elseif ($this->id == 62) { $link = 'https://docs.btcpayserver.org'; - } + } elseif ($this->id == 4002) { + $link = 'https://rotessa.com'; + } return $link; } @@ -224,6 +226,15 @@ class Gateway extends StaticModel return [ GatewayType::CRYPTO => ['refund' => true, 'token_billing' => false, 'webhooks' => ['confirmed', 'paid_out', 'failed', 'fulfilled']], ]; //BTCPay + case 4002: + return [ + GatewayType::BANK_TRANSFER => [ + 'refund' => false, + 'token_billing' => true, + 'webhooks' => [], + ], + GatewayType::ACSS => ['refund' => false, 'token_billing' => true, 'webhooks' => []] + ]; // Rotessa default: return []; } From 71633db6162fcaa6a3f2f459f3a54634427263dc Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:32:28 -0400 Subject: [PATCH 18/31] update --- app/PaymentDrivers/Rotessa/PaymentMethod.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php index 7d7d2e025dc4..903b681f70fe 100755 --- a/app/PaymentDrivers/Rotessa/PaymentMethod.php +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -23,13 +23,13 @@ use Illuminate\Support\Arr; use Illuminate\Http\Request; use App\Jobs\Util\SystemLogger; use App\Exceptions\PaymentFailed; +use App\DataProviders\Frequencies; use App\Models\ClientGatewayToken; use Illuminate\Http\RedirectResponse; use App\PaymentDrivers\RotessaPaymentDriver; use App\PaymentDrivers\Common\MethodInterface; use App\PaymentDrivers\Rotessa\Resources\Customer; use App\PaymentDrivers\Rotessa\Resources\Transaction; -use App\PaymentDrivers\Rotessa\DataProviders\Frequencies; use Omnipay\Common\Exception\InvalidRequestException; use Omnipay\Common\Exception\InvalidResponseException; use App\Exceptions\Ninja\ClientPortalAuthorizationException; From 2c1c095804f47ce8ce48b6ed72aa5c8668dab05c Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:32:54 -0400 Subject: [PATCH 19/31] add service provider for rotessa gateway --- app/Providers/RotessaServiceProvider.php | 49 ++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 app/Providers/RotessaServiceProvider.php diff --git a/app/Providers/RotessaServiceProvider.php b/app/Providers/RotessaServiceProvider.php new file mode 100644 index 000000000000..0497ab0a4cf7 --- /dev/null +++ b/app/Providers/RotessaServiceProvider.php @@ -0,0 +1,49 @@ +registerViews(); + } + + /** + * Register views. + */ + public function registerViews(): void + { + $viewPath = resource_path('views/portal/ninja2020/gateways/'.$this->moduleNameLower); + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$viewPath]), $this->moduleNameLower); + Blade::componentNamespace('App\\Http\\ViewComposers\\Components', $this->moduleNameLower); + } + + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (config('view.paths') as $path) { + if (is_dir($path.'/'.$this->moduleNameLower)) { + $paths[] = $path.'/'.$this->moduleNameLower; + } + } + + return $paths; + } +} From a626073a740c07d8de82ff76a4663e0ac4bd5a4f Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:33:15 -0400 Subject: [PATCH 20/31] add rotessa service provider to config --- config/app.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/app.php b/config/app.php index 932e26f23a29..23dddaa63986 100644 --- a/config/app.php +++ b/config/app.php @@ -201,7 +201,7 @@ return [ App\Providers\ClientPortalServiceProvider::class, App\Providers\NinjaTranslationServiceProvider::class, App\Providers\StaticServiceProvider::class, - App\PaymentDrivers\Rotessa\Providers\ServiceProvider::class + App\Providers\RotessaServiceProvider::class ], /* From b101b5829497ddb310e7eca66e3bc3b34286ac80 Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:33:45 -0400 Subject: [PATCH 21/31] add migration to add rotessa payment gateway --- .../migrations/2024_06_11_231143_add_rotessa_gateway.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/database/migrations/2024_06_11_231143_add_rotessa_gateway.php b/database/migrations/2024_06_11_231143_add_rotessa_gateway.php index 264c8b0ee604..eaade6bb4357 100644 --- a/database/migrations/2024_06_11_231143_add_rotessa_gateway.php +++ b/database/migrations/2024_06_11_231143_add_rotessa_gateway.php @@ -1,8 +1,8 @@ id = $count + 4000; + $gateway->id = 4002; $gateway->name = 'Rotessa'; $gateway->key = Str::lower(Str::random(32)); $gateway->provider = 'Rotessa'; @@ -41,7 +41,7 @@ return new class extends Migration $gateway->default_gateway_type_id = 2; $gateway->save(); - Gateway::query()->where('name','=', 'Rotessa')->update(['visible' => 1]); + Gateway::query()->where('name','=', 'Rotessa')->update(['visible' => 1]); \DB::statement('SET FOREIGN_KEY_CHECKS=1;'); } From c812717d52ee563434611fb5845f81a1db70a83f Mon Sep 17 00:00:00 2001 From: karneaud Date: Sun, 23 Jun 2024 22:34:38 -0400 Subject: [PATCH 22/31] add views for rotessa payment gateway --- .../bank_transfer/CA/details.blade.php | 4 + .../rotessa/bank_transfer/authorize.blade.php | 35 +++++++ .../rotessa/bank_transfer/pay.blade.php | 91 +++++++++++++++++++ .../rotessa/components/account.blade.php | 31 +++++++ .../rotessa/components/address.blade.php | 62 +++++++++++++ .../components/banks/CA/bank.blade.php | 17 ++++ .../components/banks/US/bank.blade.php | 28 ++++++ .../rotessa/components/contact.blade.php | 69 ++++++++++++++ .../components/dropdowns/country/CA.blade.php | 12 +++ .../components/dropdowns/country/US.blade.php | 12 +++ 10 files changed, 361 insertions(+) create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/CA/details.blade.php create mode 100755 resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/authorize.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/pay.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/banks/CA/bank.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/banks/US/bank.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/contact.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/CA.blade.php create mode 100644 resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/US.blade.php diff --git a/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/CA/details.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/CA/details.blade.php new file mode 100644 index 000000000000..9492f3036fc1 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/CA/details.blade.php @@ -0,0 +1,4 @@ +
Gateway:
+
{{ $brand }}
+
Account Number:
+
{{ $account_number }}
\ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/authorize.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/authorize.blade.php new file mode 100755 index 000000000000..70a0cfb7ba59 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/authorize.blade.php @@ -0,0 +1,35 @@ +@extends('portal.ninja2020.layout.payments', ['gateway_title' => $gateway->company_gateway->label, 'card_title' =>\App\Models\GatewayType::getAlias($gateway_type_id )]) + +@section('gateway_content') + @if(session()->has('ach_error')) +
+

{{ session('ach_error') }}

+
+ @endif + +
+ @csrf + + + + + + + + + + + + @component('portal.ninja2020.gateways.includes.pay_now', ['id' => 'authorize-bank-account', 'type' => 'submit']) + {{ ctrans('texts.add_payment_method') }} + @endcomponent +
+ + + +@endsection + +@section('gateway_footer') + +@endsection \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/pay.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/pay.blade.php new file mode 100644 index 000000000000..4e6e0c2a0b22 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/bank_transfer/pay.blade.php @@ -0,0 +1,91 @@ +@extends('portal.ninja2020.layout.payments', ['gateway_title' => 'Direct Debit', 'card_title' => 'Direct Debit']) + +@section('gateway_content') + @if (count($tokens) > 0) + + + @include('portal.ninja2020.gateways.includes.payment_details') + +
+ @csrf + + + + + + + + + + + + @component('portal.ninja2020.components.general.card-element', ['title' => ctrans('texts.pay_with')]) + @if (count($tokens) > 0) + @foreach ($tokens as $token) +
+ @endforeach + @endisset +
+ Process Date +
+
+ +
+ {{-- +
+ Insallments +
+
+ +
+ +
+ Frequency +
+
+ +
+ +
+ Comments +
+
+ +
--}} + @endcomponent +
+ @else + @component('portal.ninja2020.components.general.card-element-single', ['title' => 'Direct Debit', 'show_title' => false]) + {{ ctrans('texts.bank_account_not_linked') }} + + {{ ctrans('texts.add_payment_method') }} + @endcomponent + @endif + + @if (count($tokens) > 0) + @include('portal.ninja2020.gateways.includes.pay_now') + @endif +@endsection + +@push('footer') + +@endpush \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php new file mode 100644 index 000000000000..c42672255b00 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php @@ -0,0 +1,31 @@ +
+

+ Account Information +

+ +

+ Enter the information for the bank account +

+
+
+
+ Bank Name +
+
+ +
+
+ +
+
+ Account Number +
+
+ +
+
+ + + + +@include("rotessa::components.banks.$country.bank", compact('bank_account_type','routing_number','institution_number','transit_number')) \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php new file mode 100644 index 000000000000..2db721cd4e28 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php @@ -0,0 +1,62 @@ + +
+

+ Address Information +

+ +

+ Enter the address information for the account holder +

+
+
+
+ Address Line 1 +
+
+ +
+
+ +
+
+ Address Line 2 +
+
+ +
+
+ +
+
+ City +
+
+ +
+
+ +
+
+ Postal Code +
+
+ +
+
+ +
+
+ Country +
+
+ @if('US' == $country) + +
+ @else + +
+ @endif +
+
+ + @include("rotessa::components.dropdowns.country.$country",compact('province_code')) \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/banks/CA/bank.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/banks/CA/bank.blade.php new file mode 100644 index 000000000000..3c37b84741c6 --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/banks/CA/bank.blade.php @@ -0,0 +1,17 @@ +
+
+ Transit Number +
+
+ +
+
+ +
+
+ Institution Number +
+
+ +
+
diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/banks/US/bank.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/banks/US/bank.blade.php new file mode 100644 index 000000000000..891fbe421a9a --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/banks/US/bank.blade.php @@ -0,0 +1,28 @@ + + +
+
+ Routing Number +
+
+ +
+
+ +
+
+ Account Type +
+
+
+
+ + +
+
+ + +
+
+
+
\ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/contact.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/contact.blade.php new file mode 100644 index 000000000000..827fc587f5ad --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/contact.blade.php @@ -0,0 +1,69 @@ + +
+

+ Account Holder Information +

+ +

+ Enter the information for the account holder +

+
+ +
+
+ Full Name +
+
+ +
+
+ + +
+
+ Email Address +
+
+ +
+
+ +
+
+ Home Phone +
+
+ +
+
+ +
+
+ Other Phone +
+
+ +
+
+ +
+
+ Customer Type +
+
+
+
+ + +
+
+ + +
+
+
+
+ + + + \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/CA.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/CA.blade.php new file mode 100644 index 000000000000..f2d7a38a5ecb --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/CA.blade.php @@ -0,0 +1,12 @@ +
+
+ Province Code +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/US.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/US.blade.php new file mode 100644 index 000000000000..7c33af78d31a --- /dev/null +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/dropdowns/country/US.blade.php @@ -0,0 +1,12 @@ +
+
+ State +
+
+ +
+
\ No newline at end of file From 33d989578f0f9b8f3aa99556c67dab10e8692f1a Mon Sep 17 00:00:00 2001 From: karneaud Date: Mon, 24 Jun 2024 14:26:15 -0400 Subject: [PATCH 23/31] add rotessa dependency class maps --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 17770ee2e87c..70e9c4ab6032 100644 --- a/composer.json +++ b/composer.json @@ -131,7 +131,8 @@ "app/Helpers/TranslationHelper.php", "app/Helpers/Generic.php", "app/Helpers/ClientPortal.php" - ] + ], + "classmap": ["app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/","app/Http/ViewComposers/Components/RotessaComponents.php"] }, "autoload-dev": { "psr-4": { From 9fec96b513dd69a9de57a017ae79980de45e933a Mon Sep 17 00:00:00 2001 From: karneaud Date: Mon, 24 Jun 2024 14:27:26 -0400 Subject: [PATCH 24/31] fix class name --- app/Providers/RotessaServiceProvider.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Providers/RotessaServiceProvider.php b/app/Providers/RotessaServiceProvider.php index 0497ab0a4cf7..951789cdaa04 100644 --- a/app/Providers/RotessaServiceProvider.php +++ b/app/Providers/RotessaServiceProvider.php @@ -5,7 +5,7 @@ namespace App\Providers; use Illuminate\Support\Facades\Blade; use Illuminate\Support\ServiceProvider as BaseProvider; -class ServiceProvider extends BaseProvider +class RotessaServiceProvider extends BaseProvider { protected string $moduleName = 'Rotessa'; @@ -16,9 +16,7 @@ class ServiceProvider extends BaseProvider */ public function boot(): void { - - include_once app_path('PaymentDrivers/Rotessa/vendor/autoload.php'); - + include_once app_path('Http/ViewComposers/RotessaComposer.php'); class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\BankTransfer"); class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Acss"); From 7ac79d0e01ddc380dd84bd98b51093bc0f68d4dc Mon Sep 17 00:00:00 2001 From: karneaud Date: Mon, 24 Jun 2024 18:41:45 -0400 Subject: [PATCH 25/31] remove composer package --- .../Rotessa/vendor/autoload.php | 25 - .../Rotessa/vendor/composer/ClassLoader.php | 579 --- .../vendor/composer/InstalledVersions.php | 359 -- .../Rotessa/vendor/composer/LICENSE | 21 - .../vendor/composer/autoload_classmap.php | 69 - .../vendor/composer/autoload_files.php | 10 - .../vendor/composer/autoload_namespaces.php | 9 - .../Rotessa/vendor/composer/autoload_psr4.php | 14 - .../Rotessa/vendor/composer/autoload_real.php | 48 - .../vendor/composer/autoload_static.php | 122 - .../Rotessa/vendor/composer/installed.json | 32 - .../Rotessa/vendor/composer/installed.php | 32 - .../karneaud/omnipay-rotessa/composer.json | 41 - .../karneaud/omnipay-rotessa/composer.lock | 3904 ----------------- .../karneaud/omnipay-rotessa/phpunit.xml | 22 - .../src/Omnipay/Rotessa/AbstractClient.php | 21 - .../src/Omnipay/Rotessa/ApiTrait.php | 41 - .../src/Omnipay/Rotessa/ClientInterface.php | 11 - .../Omnipay/Rotessa/Exception/Exceptions.php | 43 - .../src/Omnipay/Rotessa/Gateway.php | 74 - .../src/Omnipay/Rotessa/Http/Client.php | 82 - .../Rotessa/Http/Response/Response.php | 32 - .../src/Omnipay/Rotessa/IsValidTypeTrait.php | 12 - .../Message/Request/AbstractRequest.php | 52 - .../Rotessa/Message/Request/BaseRequest.php | 93 - .../Request/DeleteTransactionSchedulesId.php | 18 - .../Rotessa/Message/Request/GetCustomers.php | 14 - .../Message/Request/GetCustomersId.php | 19 - .../Request/GetTransactionSchedulesId.php | 17 - .../Message/Request/PatchCustomersId.php | 65 - .../Request/PatchTransactionSchedulesId.php | 22 - .../Rotessa/Message/Request/PostCustomers.php | 60 - .../PostCustomersShowWithCustomIdentifier.php | 19 - .../Request/PostTransactionSchedules.php | 31 - ...ionSchedulesCreateWithCustomIdentifier.php | 16 - .../PostTransactionSchedulesUpdateViaPost.php | 24 - .../Message/Request/RequestInterface.php | 10 - .../Message/Response/AbstractResponse.php | 16 - .../Rotessa/Message/Response/BaseResponse.php | 44 - .../Message/Response/ResponseInterface.php | 9 - .../Omnipay/Rotessa/Model/AbstractModel.php | 63 - .../src/Omnipay/Rotessa/Model/BaseModel.php | 24 - .../Omnipay/Rotessa/Model/CustomerModel.php | 94 - .../Rotessa/Model/CustomerPatchModel.php | 16 - .../Omnipay/Rotessa/Model/ModelInterface.php | 8 - .../Model/TransactionScheduleModel.php | 84 - .../Model/TransactionSchedulesIdBodyModel.php | 23 - ...sactionSchedulesUpdateViaPostBodyModel.php | 24 - .../src/Omnipay/Rotessa/Object/Address.php | 53 - .../Rotessa/Object/AuthorizationType.php | 28 - .../Rotessa/Object/BankAccountType.php | 28 - .../src/Omnipay/Rotessa/Object/Country.php | 33 - .../Omnipay/Rotessa/Object/CustomerType.php | 28 - .../src/Omnipay/Rotessa/Object/Frequency.php | 64 - 54 files changed, 6702 deletions(-) delete mode 100644 app/PaymentDrivers/Rotessa/vendor/autoload.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/ClassLoader.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/LICENSE delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_psr4.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/installed.json delete mode 100644 app/PaymentDrivers/Rotessa/vendor/composer/installed.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php delete mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php diff --git a/app/PaymentDrivers/Rotessa/vendor/autoload.php b/app/PaymentDrivers/Rotessa/vendor/autoload.php deleted file mode 100644 index ff18c070b772..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/autoload.php +++ /dev/null @@ -1,25 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer\Autoload; - -/** - * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. - * - * $loader = new \Composer\Autoload\ClassLoader(); - * - * // register classes with namespaces - * $loader->add('Symfony\Component', __DIR__.'/component'); - * $loader->add('Symfony', __DIR__.'/framework'); - * - * // activate the autoloader - * $loader->register(); - * - * // to enable searching the include path (eg. for PEAR packages) - * $loader->setUseIncludePath(true); - * - * In this example, if you try to use a class in the Symfony\Component - * namespace or one of its children (Symfony\Component\Console for instance), - * the autoloader will first look for the class under the component/ - * directory, and it will then fallback to the framework/ directory if not - * found before giving up. - * - * This class is loosely based on the Symfony UniversalClassLoader. - * - * @author Fabien Potencier - * @author Jordi Boggiano - * @see https://www.php-fig.org/psr/psr-0/ - * @see https://www.php-fig.org/psr/psr-4/ - */ -class ClassLoader -{ - /** @var \Closure(string):void */ - private static $includeFile; - - /** @var string|null */ - private $vendorDir; - - // PSR-4 - /** - * @var array> - */ - private $prefixLengthsPsr4 = array(); - /** - * @var array> - */ - private $prefixDirsPsr4 = array(); - /** - * @var list - */ - private $fallbackDirsPsr4 = array(); - - // PSR-0 - /** - * List of PSR-0 prefixes - * - * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) - * - * @var array>> - */ - private $prefixesPsr0 = array(); - /** - * @var list - */ - private $fallbackDirsPsr0 = array(); - - /** @var bool */ - private $useIncludePath = false; - - /** - * @var array - */ - private $classMap = array(); - - /** @var bool */ - private $classMapAuthoritative = false; - - /** - * @var array - */ - private $missingClasses = array(); - - /** @var string|null */ - private $apcuPrefix; - - /** - * @var array - */ - private static $registeredLoaders = array(); - - /** - * @param string|null $vendorDir - */ - public function __construct($vendorDir = null) - { - $this->vendorDir = $vendorDir; - self::initializeIncludeClosure(); - } - - /** - * @return array> - */ - public function getPrefixes() - { - if (!empty($this->prefixesPsr0)) { - return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); - } - - return array(); - } - - /** - * @return array> - */ - public function getPrefixesPsr4() - { - return $this->prefixDirsPsr4; - } - - /** - * @return list - */ - public function getFallbackDirs() - { - return $this->fallbackDirsPsr0; - } - - /** - * @return list - */ - public function getFallbackDirsPsr4() - { - return $this->fallbackDirsPsr4; - } - - /** - * @return array Array of classname => path - */ - public function getClassMap() - { - return $this->classMap; - } - - /** - * @param array $classMap Class to filename map - * - * @return void - */ - public function addClassMap(array $classMap) - { - if ($this->classMap) { - $this->classMap = array_merge($this->classMap, $classMap); - } else { - $this->classMap = $classMap; - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, either - * appending or prepending to the ones previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 root directories - * @param bool $prepend Whether to prepend the directories - * - * @return void - */ - public function add($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - if ($prepend) { - $this->fallbackDirsPsr0 = array_merge( - $paths, - $this->fallbackDirsPsr0 - ); - } else { - $this->fallbackDirsPsr0 = array_merge( - $this->fallbackDirsPsr0, - $paths - ); - } - - return; - } - - $first = $prefix[0]; - if (!isset($this->prefixesPsr0[$first][$prefix])) { - $this->prefixesPsr0[$first][$prefix] = $paths; - - return; - } - if ($prepend) { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $paths, - $this->prefixesPsr0[$first][$prefix] - ); - } else { - $this->prefixesPsr0[$first][$prefix] = array_merge( - $this->prefixesPsr0[$first][$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, either - * appending or prepending to the ones previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * @param bool $prepend Whether to prepend the directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function addPsr4($prefix, $paths, $prepend = false) - { - $paths = (array) $paths; - if (!$prefix) { - // Register directories for the root namespace. - if ($prepend) { - $this->fallbackDirsPsr4 = array_merge( - $paths, - $this->fallbackDirsPsr4 - ); - } else { - $this->fallbackDirsPsr4 = array_merge( - $this->fallbackDirsPsr4, - $paths - ); - } - } elseif (!isset($this->prefixDirsPsr4[$prefix])) { - // Register directories for a new namespace. - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = $paths; - } elseif ($prepend) { - // Prepend directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $paths, - $this->prefixDirsPsr4[$prefix] - ); - } else { - // Append directories for an already registered namespace. - $this->prefixDirsPsr4[$prefix] = array_merge( - $this->prefixDirsPsr4[$prefix], - $paths - ); - } - } - - /** - * Registers a set of PSR-0 directories for a given prefix, - * replacing any others previously set for this prefix. - * - * @param string $prefix The prefix - * @param list|string $paths The PSR-0 base directories - * - * @return void - */ - public function set($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr0 = (array) $paths; - } else { - $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; - } - } - - /** - * Registers a set of PSR-4 directories for a given namespace, - * replacing any others previously set for this namespace. - * - * @param string $prefix The prefix/namespace, with trailing '\\' - * @param list|string $paths The PSR-4 base directories - * - * @throws \InvalidArgumentException - * - * @return void - */ - public function setPsr4($prefix, $paths) - { - if (!$prefix) { - $this->fallbackDirsPsr4 = (array) $paths; - } else { - $length = strlen($prefix); - if ('\\' !== $prefix[$length - 1]) { - throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); - } - $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; - $this->prefixDirsPsr4[$prefix] = (array) $paths; - } - } - - /** - * Turns on searching the include path for class files. - * - * @param bool $useIncludePath - * - * @return void - */ - public function setUseIncludePath($useIncludePath) - { - $this->useIncludePath = $useIncludePath; - } - - /** - * Can be used to check if the autoloader uses the include path to check - * for classes. - * - * @return bool - */ - public function getUseIncludePath() - { - return $this->useIncludePath; - } - - /** - * Turns off searching the prefix and fallback directories for classes - * that have not been registered with the class map. - * - * @param bool $classMapAuthoritative - * - * @return void - */ - public function setClassMapAuthoritative($classMapAuthoritative) - { - $this->classMapAuthoritative = $classMapAuthoritative; - } - - /** - * Should class lookup fail if not found in the current class map? - * - * @return bool - */ - public function isClassMapAuthoritative() - { - return $this->classMapAuthoritative; - } - - /** - * APCu prefix to use to cache found/not-found classes, if the extension is enabled. - * - * @param string|null $apcuPrefix - * - * @return void - */ - public function setApcuPrefix($apcuPrefix) - { - $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; - } - - /** - * The APCu prefix in use, or null if APCu caching is not enabled. - * - * @return string|null - */ - public function getApcuPrefix() - { - return $this->apcuPrefix; - } - - /** - * Registers this instance as an autoloader. - * - * @param bool $prepend Whether to prepend the autoloader or not - * - * @return void - */ - public function register($prepend = false) - { - spl_autoload_register(array($this, 'loadClass'), true, $prepend); - - if (null === $this->vendorDir) { - return; - } - - if ($prepend) { - self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; - } else { - unset(self::$registeredLoaders[$this->vendorDir]); - self::$registeredLoaders[$this->vendorDir] = $this; - } - } - - /** - * Unregisters this instance as an autoloader. - * - * @return void - */ - public function unregister() - { - spl_autoload_unregister(array($this, 'loadClass')); - - if (null !== $this->vendorDir) { - unset(self::$registeredLoaders[$this->vendorDir]); - } - } - - /** - * Loads the given class or interface. - * - * @param string $class The name of the class - * @return true|null True if loaded, null otherwise - */ - public function loadClass($class) - { - if ($file = $this->findFile($class)) { - $includeFile = self::$includeFile; - $includeFile($file); - - return true; - } - - return null; - } - - /** - * Finds the path to the file where the class is defined. - * - * @param string $class The name of the class - * - * @return string|false The path if found, false otherwise - */ - public function findFile($class) - { - // class map lookup - if (isset($this->classMap[$class])) { - return $this->classMap[$class]; - } - if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { - return false; - } - if (null !== $this->apcuPrefix) { - $file = apcu_fetch($this->apcuPrefix.$class, $hit); - if ($hit) { - return $file; - } - } - - $file = $this->findFileWithExtension($class, '.php'); - - // Search for Hack files if we are running on HHVM - if (false === $file && defined('HHVM_VERSION')) { - $file = $this->findFileWithExtension($class, '.hh'); - } - - if (null !== $this->apcuPrefix) { - apcu_add($this->apcuPrefix.$class, $file); - } - - if (false === $file) { - // Remember that this class does not exist. - $this->missingClasses[$class] = true; - } - - return $file; - } - - /** - * Returns the currently registered loaders keyed by their corresponding vendor directories. - * - * @return array - */ - public static function getRegisteredLoaders() - { - return self::$registeredLoaders; - } - - /** - * @param string $class - * @param string $ext - * @return string|false - */ - private function findFileWithExtension($class, $ext) - { - // PSR-4 lookup - $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; - - $first = $class[0]; - if (isset($this->prefixLengthsPsr4[$first])) { - $subPath = $class; - while (false !== $lastPos = strrpos($subPath, '\\')) { - $subPath = substr($subPath, 0, $lastPos); - $search = $subPath . '\\'; - if (isset($this->prefixDirsPsr4[$search])) { - $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); - foreach ($this->prefixDirsPsr4[$search] as $dir) { - if (file_exists($file = $dir . $pathEnd)) { - return $file; - } - } - } - } - } - - // PSR-4 fallback dirs - foreach ($this->fallbackDirsPsr4 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { - return $file; - } - } - - // PSR-0 lookup - if (false !== $pos = strrpos($class, '\\')) { - // namespaced class name - $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) - . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); - } else { - // PEAR-like class name - $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; - } - - if (isset($this->prefixesPsr0[$first])) { - foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { - if (0 === strpos($class, $prefix)) { - foreach ($dirs as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - } - } - } - - // PSR-0 fallback dirs - foreach ($this->fallbackDirsPsr0 as $dir) { - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { - return $file; - } - } - - // PSR-0 include paths. - if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { - return $file; - } - - return false; - } - - /** - * @return void - */ - private static function initializeIncludeClosure() - { - if (self::$includeFile !== null) { - return; - } - - /** - * Scope isolated include. - * - * Prevents access to $this/self from included files. - * - * @param string $file - * @return void - */ - self::$includeFile = \Closure::bind(static function($file) { - include $file; - }, null, null); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php b/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php deleted file mode 100644 index 51e734a774b3..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/InstalledVersions.php +++ /dev/null @@ -1,359 +0,0 @@ - - * Jordi Boggiano - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace Composer; - -use Composer\Autoload\ClassLoader; -use Composer\Semver\VersionParser; - -/** - * This class is copied in every Composer installed project and available to all - * - * See also https://getcomposer.org/doc/07-runtime.md#installed-versions - * - * To require its presence, you can require `composer-runtime-api ^2.0` - * - * @final - */ -class InstalledVersions -{ - /** - * @var mixed[]|null - * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null - */ - private static $installed; - - /** - * @var bool|null - */ - private static $canGetVendors; - - /** - * @var array[] - * @psalm-var array}> - */ - private static $installedByVendor = array(); - - /** - * Returns a list of all package names which are present, either by being installed, replaced or provided - * - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackages() - { - $packages = array(); - foreach (self::getInstalled() as $installed) { - $packages[] = array_keys($installed['versions']); - } - - if (1 === \count($packages)) { - return $packages[0]; - } - - return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); - } - - /** - * Returns a list of all package names with a specific type e.g. 'library' - * - * @param string $type - * @return string[] - * @psalm-return list - */ - public static function getInstalledPackagesByType($type) - { - $packagesByType = array(); - - foreach (self::getInstalled() as $installed) { - foreach ($installed['versions'] as $name => $package) { - if (isset($package['type']) && $package['type'] === $type) { - $packagesByType[] = $name; - } - } - } - - return $packagesByType; - } - - /** - * Checks whether the given package is installed - * - * This also returns true if the package name is provided or replaced by another package - * - * @param string $packageName - * @param bool $includeDevRequirements - * @return bool - */ - public static function isInstalled($packageName, $includeDevRequirements = true) - { - foreach (self::getInstalled() as $installed) { - if (isset($installed['versions'][$packageName])) { - return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; - } - } - - return false; - } - - /** - * Checks whether the given package satisfies a version constraint - * - * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: - * - * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') - * - * @param VersionParser $parser Install composer/semver to have access to this class and functionality - * @param string $packageName - * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package - * @return bool - */ - public static function satisfies(VersionParser $parser, $packageName, $constraint) - { - $constraint = $parser->parseConstraints((string) $constraint); - $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); - - return $provided->matches($constraint); - } - - /** - * Returns a version constraint representing all the range(s) which are installed for a given package - * - * It is easier to use this via isInstalled() with the $constraint argument if you need to check - * whether a given version of a package is installed, and not just whether it exists - * - * @param string $packageName - * @return string Version constraint usable with composer/semver - */ - public static function getVersionRanges($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - $ranges = array(); - if (isset($installed['versions'][$packageName]['pretty_version'])) { - $ranges[] = $installed['versions'][$packageName]['pretty_version']; - } - if (array_key_exists('aliases', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); - } - if (array_key_exists('replaced', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); - } - if (array_key_exists('provided', $installed['versions'][$packageName])) { - $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); - } - - return implode(' || ', $ranges); - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['version'])) { - return null; - } - - return $installed['versions'][$packageName]['version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present - */ - public static function getPrettyVersion($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['pretty_version'])) { - return null; - } - - return $installed['versions'][$packageName]['pretty_version']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference - */ - public static function getReference($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - if (!isset($installed['versions'][$packageName]['reference'])) { - return null; - } - - return $installed['versions'][$packageName]['reference']; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @param string $packageName - * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. - */ - public static function getInstallPath($packageName) - { - foreach (self::getInstalled() as $installed) { - if (!isset($installed['versions'][$packageName])) { - continue; - } - - return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; - } - - throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); - } - - /** - * @return array - * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} - */ - public static function getRootPackage() - { - $installed = self::getInstalled(); - - return $installed[0]['root']; - } - - /** - * Returns the raw installed.php data for custom implementations - * - * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. - * @return array[] - * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} - */ - public static function getRawData() - { - @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - self::$installed = include __DIR__ . '/installed.php'; - } else { - self::$installed = array(); - } - } - - return self::$installed; - } - - /** - * Returns the raw data of all installed.php which are currently loaded for custom implementations - * - * @return array[] - * @psalm-return list}> - */ - public static function getAllRawData() - { - return self::getInstalled(); - } - - /** - * Lets you reload the static array from another file - * - * This is only useful for complex integrations in which a project needs to use - * this class but then also needs to execute another project's autoloader in process, - * and wants to ensure both projects have access to their version of installed.php. - * - * A typical case would be PHPUnit, where it would need to make sure it reads all - * the data it needs from this class, then call reload() with - * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure - * the project in which it runs can then also use this class safely, without - * interference between PHPUnit's dependencies and the project's dependencies. - * - * @param array[] $data A vendor/composer/installed.php data set - * @return void - * - * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data - */ - public static function reload($data) - { - self::$installed = $data; - self::$installedByVendor = array(); - } - - /** - * @return array[] - * @psalm-return list}> - */ - private static function getInstalled() - { - if (null === self::$canGetVendors) { - self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); - } - - $installed = array(); - - if (self::$canGetVendors) { - foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { - if (isset(self::$installedByVendor[$vendorDir])) { - $installed[] = self::$installedByVendor[$vendorDir]; - } elseif (is_file($vendorDir.'/composer/installed.php')) { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require $vendorDir.'/composer/installed.php'; - $installed[] = self::$installedByVendor[$vendorDir] = $required; - if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { - self::$installed = $installed[count($installed) - 1]; - } - } - } - } - - if (null === self::$installed) { - // only require the installed.php file if this file is loaded from its dumped location, - // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 - if (substr(__DIR__, -8, 1) !== 'C') { - /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ - $required = require __DIR__ . '/installed.php'; - self::$installed = $required; - } else { - self::$installed = array(); - } - } - - if (self::$installed !== array()) { - $installed[] = self::$installed; - } - - return $installed; - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE b/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE deleted file mode 100644 index f27399a042d9..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ - -Copyright (c) Nils Adermann, Jordi Boggiano - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is furnished -to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. - diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php deleted file mode 100644 index 45e77acc6441..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_classmap.php +++ /dev/null @@ -1,69 +0,0 @@ - $baseDir . '/DataProviders/CAProvinces.php', - 'App\\PaymentDrivers\\Rotessa\\DataProviders\\Frequencies' => $baseDir . '/DataProviders/Frequencies.php', - 'App\\PaymentDrivers\\Rotessa\\Events\\CacheGateways' => $baseDir . '/Events/CacheGateways.php', - 'App\\PaymentDrivers\\Rotessa\\Listeners\\CacheGateways' => $baseDir . '/Listeners/CacheGateways.php', - 'App\\PaymentDrivers\\Rotessa\\Models\\Gateway' => $baseDir . '/Models/Gateway.php', - 'App\\PaymentDrivers\\Rotessa\\PaymentMethod' => $baseDir . '/PaymentMethod.php', - 'App\\PaymentDrivers\\Rotessa\\Providers\\EventServiceProvider' => $baseDir . '/Providers/EventServiceProvider.php', - 'App\\PaymentDrivers\\Rotessa\\Providers\\ServiceProvider' => $baseDir . '/Providers/ServiceProvider.php', - 'App\\PaymentDrivers\\Rotessa\\Resources\\Customer' => $baseDir . '/Resources/Customer.php', - 'App\\PaymentDrivers\\Rotessa\\Resources\\Transaction' => $baseDir . '/Resources/Transaction.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AccountComponent' => $baseDir . '/View/Components/Components.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AddressComponent' => $baseDir . '/View/Components/Components.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\ContactComponent' => $baseDir . '/View/Components/Components.php', - 'Composer\\InstalledVersions' => $vendorDir . '/composer/InstalledVersions.php', - 'Omnipay\\Rotessa\\AbstractClient' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php', - 'Omnipay\\Rotessa\\ApiTrait' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php', - 'Omnipay\\Rotessa\\ClientInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php', - 'Omnipay\\Rotessa\\Exception\\BadRequestException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\InternalServerErrorException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\NotAcceptableException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\NotFoundException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\ServiceUnavailableException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\UnauthorizedException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\UnprocessableEntityException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\ValidationException' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Gateway' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php', - 'Omnipay\\Rotessa\\Http\\Client' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php', - 'Omnipay\\Rotessa\\Http\\Response\\Response' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php', - 'Omnipay\\Rotessa\\IsValidTypeTrait' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php', - 'Omnipay\\Rotessa\\Message\\Request\\AbstractRequest' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php', - 'Omnipay\\Rotessa\\Message\\Request\\BaseRequest' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php', - 'Omnipay\\Rotessa\\Message\\Request\\DeleteTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetCustomers' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetCustomersId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PatchCustomersId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PatchTransactionSchedulesId' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostCustomers' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostCustomersShowWithCustomIdentifier' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedules' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesCreateWithCustomIdentifier' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesUpdateViaPost' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php', - 'Omnipay\\Rotessa\\Message\\Request\\RequestInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php', - 'Omnipay\\Rotessa\\Message\\Response\\AbstractResponse' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php', - 'Omnipay\\Rotessa\\Message\\Response\\BaseResponse' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php', - 'Omnipay\\Rotessa\\Message\\Response\\ResponseInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php', - 'Omnipay\\Rotessa\\Model\\AbstractModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php', - 'Omnipay\\Rotessa\\Model\\BaseModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php', - 'Omnipay\\Rotessa\\Model\\CustomerModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php', - 'Omnipay\\Rotessa\\Model\\CustomerPatchModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php', - 'Omnipay\\Rotessa\\Model\\ModelInterface' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php', - 'Omnipay\\Rotessa\\Model\\TransactionScheduleModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php', - 'Omnipay\\Rotessa\\Model\\TransactionSchedulesIdBodyModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php', - 'Omnipay\\Rotessa\\Model\\TransactionSchedulesUpdateViaPostBodyModel' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php', - 'Omnipay\\Rotessa\\Object\\Address' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php', - 'Omnipay\\Rotessa\\Object\\AuthorizationType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php', - 'Omnipay\\Rotessa\\Object\\BankAccountType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php', - 'Omnipay\\Rotessa\\Object\\Country' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php', - 'Omnipay\\Rotessa\\Object\\CustomerType' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php', - 'Omnipay\\Rotessa\\Object\\Frequency' => $vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php', -); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php deleted file mode 100644 index 1dfada572dbd..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_files.php +++ /dev/null @@ -1,10 +0,0 @@ - $baseDir . '/View/Composers/Composer.php', -); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php deleted file mode 100644 index 15a2ff3ad6d8..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_namespaces.php +++ /dev/null @@ -1,9 +0,0 @@ - array($vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception'), - 'Omnipay\\Rotessa\\' => array($vendorDir . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa'), - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => array($baseDir . '/View/Components'), - 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => array($baseDir . '/Database/Seeders'), - 'App\\PaymentDrivers\\Rotessa\\' => array($baseDir . '/'), -); diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php deleted file mode 100644 index c792b343f965..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_real.php +++ /dev/null @@ -1,48 +0,0 @@ -register(true); - - $filesToLoad = \Composer\Autoload\ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$files; - $requireFile = \Closure::bind(static function ($fileIdentifier, $file) { - if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { - $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; - - require $file; - } - }, null, null); - foreach ($filesToLoad as $fileIdentifier => $file) { - $requireFile($fileIdentifier, $file); - } - - return $loader; - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php b/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php deleted file mode 100644 index 4b6356219f6c..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/autoload_static.php +++ /dev/null @@ -1,122 +0,0 @@ - __DIR__ . '/../..' . '/View/Composers/Composer.php', - ); - - public static $prefixLengthsPsr4 = array ( - 'O' => - array ( - 'Omnipay\\Rotessa\\Exception\\' => 26, - 'Omnipay\\Rotessa\\' => 16, - ), - 'A' => - array ( - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => 43, - 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => 44, - 'App\\PaymentDrivers\\Rotessa\\' => 27, - ), - ); - - public static $prefixDirsPsr4 = array ( - 'Omnipay\\Rotessa\\Exception\\' => - array ( - 0 => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception', - ), - 'Omnipay\\Rotessa\\' => - array ( - 0 => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa', - ), - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\' => - array ( - 0 => __DIR__ . '/../..' . '/View/Components', - ), - 'App\\PaymentDrivers\\Rotessa\\Database\\Seeders\\' => - array ( - 0 => __DIR__ . '/../..' . '/Database/Seeders', - ), - 'App\\PaymentDrivers\\Rotessa\\' => - array ( - 0 => __DIR__ . '/../..' . '/', - ), - ); - - public static $classMap = array ( - 'App\\PaymentDrivers\\Rotessa\\DataProviders\\CAProvinces' => __DIR__ . '/../..' . '/DataProviders/CAProvinces.php', - 'App\\PaymentDrivers\\Rotessa\\DataProviders\\Frequencies' => __DIR__ . '/../..' . '/DataProviders/Frequencies.php', - 'App\\PaymentDrivers\\Rotessa\\Events\\CacheGateways' => __DIR__ . '/../..' . '/Events/CacheGateways.php', - 'App\\PaymentDrivers\\Rotessa\\Listeners\\CacheGateways' => __DIR__ . '/../..' . '/Listeners/CacheGateways.php', - 'App\\PaymentDrivers\\Rotessa\\Models\\Gateway' => __DIR__ . '/../..' . '/Models/Gateway.php', - 'App\\PaymentDrivers\\Rotessa\\PaymentMethod' => __DIR__ . '/../..' . '/PaymentMethod.php', - 'App\\PaymentDrivers\\Rotessa\\Providers\\EventServiceProvider' => __DIR__ . '/../..' . '/Providers/EventServiceProvider.php', - 'App\\PaymentDrivers\\Rotessa\\Providers\\ServiceProvider' => __DIR__ . '/../..' . '/Providers/ServiceProvider.php', - 'App\\PaymentDrivers\\Rotessa\\Resources\\Customer' => __DIR__ . '/../..' . '/Resources/Customer.php', - 'App\\PaymentDrivers\\Rotessa\\Resources\\Transaction' => __DIR__ . '/../..' . '/Resources/Transaction.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AccountComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\AddressComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', - 'App\\PaymentDrivers\\Rotessa\\View\\Components\\ContactComponent' => __DIR__ . '/../..' . '/View/Components/Components.php', - 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', - 'Omnipay\\Rotessa\\AbstractClient' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php', - 'Omnipay\\Rotessa\\ApiTrait' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php', - 'Omnipay\\Rotessa\\ClientInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php', - 'Omnipay\\Rotessa\\Exception\\BadRequestException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\InternalServerErrorException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\NotAcceptableException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\NotFoundException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\ServiceUnavailableException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\UnauthorizedException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\UnprocessableEntityException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Exception\\ValidationException' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php', - 'Omnipay\\Rotessa\\Gateway' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php', - 'Omnipay\\Rotessa\\Http\\Client' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php', - 'Omnipay\\Rotessa\\Http\\Response\\Response' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php', - 'Omnipay\\Rotessa\\IsValidTypeTrait' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php', - 'Omnipay\\Rotessa\\Message\\Request\\AbstractRequest' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php', - 'Omnipay\\Rotessa\\Message\\Request\\BaseRequest' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php', - 'Omnipay\\Rotessa\\Message\\Request\\DeleteTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetCustomers' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetCustomersId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php', - 'Omnipay\\Rotessa\\Message\\Request\\GetTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PatchCustomersId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PatchTransactionSchedulesId' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostCustomers' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostCustomersShowWithCustomIdentifier' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedules' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesCreateWithCustomIdentifier' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php', - 'Omnipay\\Rotessa\\Message\\Request\\PostTransactionSchedulesUpdateViaPost' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php', - 'Omnipay\\Rotessa\\Message\\Request\\RequestInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php', - 'Omnipay\\Rotessa\\Message\\Response\\AbstractResponse' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php', - 'Omnipay\\Rotessa\\Message\\Response\\BaseResponse' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php', - 'Omnipay\\Rotessa\\Message\\Response\\ResponseInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php', - 'Omnipay\\Rotessa\\Model\\AbstractModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php', - 'Omnipay\\Rotessa\\Model\\BaseModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php', - 'Omnipay\\Rotessa\\Model\\CustomerModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php', - 'Omnipay\\Rotessa\\Model\\CustomerPatchModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php', - 'Omnipay\\Rotessa\\Model\\ModelInterface' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php', - 'Omnipay\\Rotessa\\Model\\TransactionScheduleModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php', - 'Omnipay\\Rotessa\\Model\\TransactionSchedulesIdBodyModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php', - 'Omnipay\\Rotessa\\Model\\TransactionSchedulesUpdateViaPostBodyModel' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php', - 'Omnipay\\Rotessa\\Object\\Address' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php', - 'Omnipay\\Rotessa\\Object\\AuthorizationType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php', - 'Omnipay\\Rotessa\\Object\\BankAccountType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php', - 'Omnipay\\Rotessa\\Object\\Country' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php', - 'Omnipay\\Rotessa\\Object\\CustomerType' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php', - 'Omnipay\\Rotessa\\Object\\Frequency' => __DIR__ . '/..' . '/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php', - ); - - public static function getInitializer(ClassLoader $loader) - { - return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$prefixDirsPsr4; - $loader->classMap = ComposerStaticInita0415998b2208af2a6b954b72fdf7005::$classMap; - - }, null, ClassLoader::class); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.json b/app/PaymentDrivers/Rotessa/vendor/composer/installed.json deleted file mode 100644 index bdb7b5f35a23..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/installed.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "packages": [ - { - "name": "karneaud/omnipay-rotessa", - "version": "1.0.0-beta", - "version_normalized": "1.0.0.0-beta", - "source": { - "type": "git", - "url": "https://github.com/karneaud/omnipay-rotessa.git", - "reference": "master" - }, - "dist": { - "type": "zip", - "url": "https://github.com/karneaud/omnipay-rotessa/archive/refs/tags/v1.0.0-beta.zip" - }, - "type": "library", - "installation-source": "source", - "autoload": { - "psr-4": { - "Omnipay\\Rotessa\\": "./src/Omnipay/Rotessa/", - "Omnipay\\Rotessa\\Exception\\": "./src/Omnipay/Rotessa/Exception/" - }, - "classmap": [ - "./src/Omnipay/Rotessa/Exception/Exceptions.php" - ] - }, - "install-path": "../karneaud/omnipay-rotessa" - } - ], - "dev": false, - "dev-package-names": [] -} diff --git a/app/PaymentDrivers/Rotessa/vendor/composer/installed.php b/app/PaymentDrivers/Rotessa/vendor/composer/installed.php deleted file mode 100644 index bca95fce27b5..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/composer/installed.php +++ /dev/null @@ -1,32 +0,0 @@ - array( - 'name' => 'karneaud/invoiceninja-rotessa', - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => null, - 'type' => 'laravel-module', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev' => false, - ), - 'versions' => array( - 'karneaud/invoiceninja-rotessa' => array( - 'pretty_version' => '1.0.0+no-version-set', - 'version' => '1.0.0.0', - 'reference' => null, - 'type' => 'laravel-module', - 'install_path' => __DIR__ . '/../../', - 'aliases' => array(), - 'dev_requirement' => false, - ), - 'karneaud/omnipay-rotessa' => array( - 'pretty_version' => '1.0.0-beta', - 'version' => '1.0.0.0-beta', - 'reference' => 'master', - 'type' => 'library', - 'install_path' => __DIR__ . '/../karneaud/omnipay-rotessa', - 'aliases' => array(), - 'dev_requirement' => false, - ), - ), -); diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json deleted file mode 100644 index 0c76d0117400..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "require-dev": { - "omnipay/tests":"*", - "oomphinc/composer-installers-extender": "*", - "http-interop/http-factory-guzzle": "dev-master", - "guzzlehttp/guzzle": "7.9.x-dev" - }, - "name":"karneaud/omnipay-rotessa", - "minimum-stability": "dev", - "config": { - "allow-plugins": { - "php-http/discovery": true, - "composer/installers": true, - "oomphinc/composer-installers-extender": true - } - }, - "require": { - "php": ">=8.0", - "php-http/discovery": "*", - "omnipay/common":"*" - }, - "scripts": { - "generate": [ - "generate" - ], - "tests": [ - "phpunit" - ] - }, - "autoload": { - "psr-4": { - "Omnipay\\Rotessa\\": "src/Omnipay/Rotessa/" - }, - "classmap": ["src/Omnipay/Rotessa/Exception/Exceptions.php"] - }, - "autoload-dev": { - "psr-4": { - "Omnipay\\Rotessa\\Test\\": "tests/" - } - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock deleted file mode 100644 index ffb9a3621047..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/composer.lock +++ /dev/null @@ -1,3904 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", - "This file is @generated automatically" - ], - "content-hash": "9f938695686f38324b7fd12e52766427", - "packages": [ - { - "name": "clue/stream-filter", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/clue/stream-filter.git", - "reference": "049509fef80032cb3f051595029ab75b49a3c2f7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7", - "reference": "049509fef80032cb3f051595029ab75b49a3c2f7", - "shasum": "" - }, - "require": { - "php": ">=5.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" - }, - "default-branch": true, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "psr-4": { - "Clue\\StreamFilter\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Christian Lück", - "email": "christian@clue.engineering" - } - ], - "description": "A simple and modern approach to stream filtering in PHP", - "homepage": "https://github.com/clue/stream-filter", - "keywords": [ - "bucket brigade", - "callback", - "filter", - "php_user_filter", - "stream", - "stream_filter_append", - "stream_filter_register" - ], - "support": { - "issues": "https://github.com/clue/stream-filter/issues", - "source": "https://github.com/clue/stream-filter/tree/v1.7.0" - }, - "funding": [ - { - "url": "https://clue.engineering/support", - "type": "custom" - }, - { - "url": "https://github.com/clue", - "type": "github" - } - ], - "time": "2023-12-20T15:40:13+00:00" - }, - { - "name": "moneyphp/money", - "version": "3.x-dev", - "source": { - "type": "git", - "url": "https://github.com/moneyphp/money.git", - "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/moneyphp/money/zipball/0dc40e3791c67e8793e3aa13fead8cf4661ec9cd", - "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": ">=5.6" - }, - "require-dev": { - "cache/taggable-cache": "^0.4.0", - "doctrine/instantiator": "^1.0.5", - "ext-bcmath": "*", - "ext-gmp": "*", - "ext-intl": "*", - "florianv/exchanger": "^1.0", - "florianv/swap": "^3.0", - "friends-of-phpspec/phpspec-code-coverage": "^3.1.1 || ^4.3", - "moneyphp/iso-currencies": "^3.2.1", - "php-http/message": "^1.4", - "php-http/mock-client": "^1.0.0", - "phpspec/phpspec": "^3.4.3", - "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5", - "psr/cache": "^1.0", - "symfony/phpunit-bridge": "^4" - }, - "suggest": { - "ext-bcmath": "Calculate without integer limits", - "ext-gmp": "Calculate without integer limits", - "ext-intl": "Format Money objects with intl", - "florianv/exchanger": "Exchange rates library for PHP", - "florianv/swap": "Exchange rates library for PHP", - "psr/cache-implementation": "Used for Currency caching" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.x-dev" - } - }, - "autoload": { - "psr-4": { - "Money\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mathias Verraes", - "email": "mathias@verraes.net", - "homepage": "http://verraes.net" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - }, - { - "name": "Frederik Bosch", - "email": "f.bosch@genkgo.nl" - } - ], - "description": "PHP implementation of Fowler's Money pattern", - "homepage": "http://moneyphp.org", - "keywords": [ - "Value Object", - "money", - "vo" - ], - "support": { - "issues": "https://github.com/moneyphp/money/issues", - "source": "https://github.com/moneyphp/money/tree/3.x" - }, - "time": "2022-09-21T07:43:36+00:00" - }, - { - "name": "omnipay/common", - "version": "v3.3.0", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/omnipay-common.git", - "reference": "2eca3823e9069e2c36b6007a090577d5584f9518" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/2eca3823e9069e2c36b6007a090577d5584f9518", - "reference": "2eca3823e9069e2c36b6007a090577d5584f9518", - "shasum": "" - }, - "require": { - "moneyphp/money": "^3.1|^4.0.3", - "php": "^7.2|^8", - "php-http/client-implementation": "^1", - "php-http/discovery": "^1.14", - "php-http/message": "^1.5", - "php-http/message-factory": "^1.1", - "symfony/http-foundation": "^2.1|^3|^4|^5|^6|^7" - }, - "require-dev": { - "http-interop/http-factory-guzzle": "^1.1", - "omnipay/tests": "^4.1", - "php-http/guzzle7-adapter": "^1", - "php-http/mock-client": "^1.6", - "squizlabs/php_codesniffer": "^3.8.1" - }, - "suggest": { - "league/omnipay": "The default Omnipay package provides a default HTTP Adapter." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Omnipay\\Common\\": "src/Common" - }, - "classmap": [ - "src/Omnipay.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Adrian Macneil", - "email": "adrian@adrianmacneil.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - }, - { - "name": "Jason Judge", - "email": "jason.judge@consil.co.uk" - }, - { - "name": "Del" - }, - { - "name": "Omnipay Contributors", - "homepage": "https://github.com/thephpleague/omnipay-common/contributors" - } - ], - "description": "Common components for Omnipay payment processing library", - "homepage": "https://github.com/thephpleague/omnipay-common", - "keywords": [ - "gateway", - "merchant", - "omnipay", - "pay", - "payment", - "purchase" - ], - "support": { - "issues": "https://github.com/thephpleague/omnipay-common/issues", - "source": "https://github.com/thephpleague/omnipay-common/tree/v3.3.0" - }, - "funding": [ - { - "url": "https://github.com/barryvdh", - "type": "github" - } - ], - "time": "2024-03-08T11:56:40+00:00" - }, - { - "name": "php-http/discovery", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/discovery.git", - "reference": "ed16f5209c597c564da6efa54f771e8bda743f07" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/discovery/zipball/ed16f5209c597c564da6efa54f771e8bda743f07", - "reference": "ed16f5209c597c564da6efa54f771e8bda743f07", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0|^2.0", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "nyholm/psr7": "<1.0", - "zendframework/zend-diactoros": "*" - }, - "provide": { - "php-http/async-client-implementation": "*", - "php-http/client-implementation": "*", - "psr/http-client-implementation": "*", - "psr/http-factory-implementation": "*", - "psr/http-message-implementation": "*" - }, - "require-dev": { - "composer/composer": "^1.0.2|^2.0", - "graham-campbell/phpspec-skip-example-extension": "^5.0", - "php-http/httplug": "^1.0 || ^2.0", - "php-http/message-factory": "^1.0", - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3", - "sebastian/comparator": "^3.0.5 || ^4.0.8", - "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1" - }, - "default-branch": true, - "type": "composer-plugin", - "extra": { - "class": "Http\\Discovery\\Composer\\Plugin", - "plugin-optional": true - }, - "autoload": { - "psr-4": { - "Http\\Discovery\\": "src/" - }, - "exclude-from-classmap": [ - "src/Composer/Plugin.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations", - "homepage": "http://php-http.org", - "keywords": [ - "adapter", - "client", - "discovery", - "factory", - "http", - "message", - "psr17", - "psr7" - ], - "support": { - "issues": "https://github.com/php-http/discovery/issues", - "source": "https://github.com/php-http/discovery/tree/1.x" - }, - "time": "2024-04-22T09:10:37+00:00" - }, - { - "name": "php-http/message", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/message.git", - "reference": "4cb00d6d316783d357a59ec94c234c50aca515f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/message/zipball/4cb00d6d316783d357a59ec94c234c50aca515f5", - "reference": "4cb00d6d316783d357a59ec94c234c50aca515f5", - "shasum": "" - }, - "require": { - "clue/stream-filter": "^1.5", - "php": "^7.2 || ^8.0", - "psr/http-message": "^1.1 || ^2.0" - }, - "provide": { - "php-http/message-factory-implementation": "1.0" - }, - "require-dev": { - "ergebnis/composer-normalize": "^2.6", - "ext-zlib": "*", - "guzzlehttp/psr7": "^1.0 || ^2.0", - "laminas/laminas-diactoros": "^2.0 || ^3.0", - "php-http/message-factory": "^1.0.2", - "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", - "slim/slim": "^3.0" - }, - "suggest": { - "ext-zlib": "Used with compressor/decompressor streams", - "guzzlehttp/psr7": "Used with Guzzle PSR-7 Factories", - "laminas/laminas-diactoros": "Used with Diactoros Factories", - "slim/slim": "Used with Slim Framework PSR-7 implementation" - }, - "default-branch": true, - "type": "library", - "autoload": { - "files": [ - "src/filters.php" - ], - "psr-4": { - "Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "HTTP Message related tools", - "homepage": "http://php-http.org", - "keywords": [ - "http", - "message", - "psr-7" - ], - "support": { - "issues": "https://github.com/php-http/message/issues", - "source": "https://github.com/php-http/message/tree/1.x" - }, - "time": "2024-03-16T19:07:08+00:00" - }, - { - "name": "php-http/message-factory", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/php-http/message-factory.git", - "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/message-factory/zipball/4d8778e1c7d405cbb471574821c1ff5b68cc8f57", - "reference": "4d8778e1c7d405cbb471574821c1ff5b68cc8f57", - "shasum": "" - }, - "require": { - "php": ">=5.4", - "psr/http-message": "^1.0 || ^2.0" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Factory interfaces for PSR-7 HTTP Message", - "homepage": "http://php-http.org", - "keywords": [ - "factory", - "http", - "message", - "stream", - "uri" - ], - "support": { - "issues": "https://github.com/php-http/message-factory/issues", - "source": "https://github.com/php-http/message-factory/tree/1.1.0" - }, - "abandoned": "psr/http-factory", - "time": "2023-04-14T14:16:17+00:00" - }, - { - "name": "psr/http-message", - "version": "1.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://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/1.1" - }, - "time": "2023-04-04T09:50:52+00:00" - }, - { - "name": "symfony/deprecation-contracts", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1", - "shasum": "" - }, - "require": { - "php": ">=8.1" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.5-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.5.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:32:20+00:00" - }, - { - "name": "symfony/http-foundation", - "version": "6.4.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/http-foundation.git", - "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/b4db6b833035477cb70e18d0ae33cb7c2b521759", - "reference": "b4db6b833035477cb70e18d0ae33cb7c2b521759", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3", - "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php83": "^1.27" - }, - "conflict": { - "symfony/cache": "<6.3" - }, - "require-dev": { - "doctrine/dbal": "^2.13.1|^3|^4", - "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", - "symfony/dependency-injection": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", - "symfony/mime": "^5.4|^6.0|^7.0", - "symfony/rate-limiter": "^5.4|^6.0|^7.0" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\HttpFoundation\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Defines an object-oriented layer for the HTTP specification", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/http-foundation/tree/6.4" - }, - "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": "2024-04-18T09:22:46+00:00" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "e642fbe7a7b73cdb05460555289a9057bfd6ead6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/e642fbe7a7b73cdb05460555289a9057bfd6ead6", - "reference": "e642fbe7a7b73cdb05460555289a9057bfd6ead6", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "default-branch": true, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/1.x" - }, - "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": "2024-04-19T06:31:17+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "7d191eb4022901cd3d91a816ec5464ca3a08a8aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/7d191eb4022901cd3d91a816ec5464ca3a08a8aa", - "reference": "7d191eb4022901cd3d91a816ec5464ca3a08a8aa", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "default-branch": true, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/1.x" - }, - "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": "2024-04-19T06:31:17+00:00" - }, - { - "name": "symfony/polyfill-php83", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1", - "reference": "6e804bbb1bf1e2bfd02771d1c34fa8295c1f1af1", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "symfony/polyfill-php80": "^1.14" - }, - "default-branch": true, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php83\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "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": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/1.x" - }, - "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": "2024-04-19T06:31:17+00:00" - } - ], - "packages-dev": [ - { - "name": "composer/installers", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/composer/installers.git", - "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/composer/installers/zipball/2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", - "reference": "2a9170263fcd9cc4fd0b50917293c21d6c1a5bfe", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.0 || ^2.0", - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "composer/composer": "1.6.* || ^2.0", - "composer/semver": "^1 || ^3", - "phpstan/phpstan": "^0.12.55", - "phpstan/phpstan-phpunit": "^0.12.16", - "symfony/phpunit-bridge": "^5.3", - "symfony/process": "^5" - }, - "default-branch": true, - "type": "composer-plugin", - "extra": { - "class": "Composer\\Installers\\Plugin", - "branch-alias": { - "dev-main": "2.x-dev" - }, - "plugin-modifies-install-path": true - }, - "autoload": { - "psr-4": { - "Composer\\Installers\\": "src/Composer/Installers" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kyle Robinson Young", - "email": "kyle@dontkry.com", - "homepage": "https://github.com/shama" - } - ], - "description": "A multi-framework Composer library installer", - "homepage": "https://composer.github.io/installers/", - "keywords": [ - "Dolibarr", - "Eliasis", - "Hurad", - "ImageCMS", - "Kanboard", - "Lan Management System", - "MODX Evo", - "MantisBT", - "Mautic", - "Maya", - "OXID", - "Plentymarkets", - "Porto", - "RadPHP", - "SMF", - "Starbug", - "Thelia", - "Whmcs", - "WolfCMS", - "agl", - "annotatecms", - "attogram", - "bitrix", - "cakephp", - "chef", - "cockpit", - "codeigniter", - "concrete5", - "croogo", - "dokuwiki", - "drupal", - "eZ Platform", - "elgg", - "expressionengine", - "fuelphp", - "grav", - "installer", - "itop", - "known", - "kohana", - "laravel", - "lavalite", - "lithium", - "magento", - "majima", - "mako", - "matomo", - "mediawiki", - "miaoxing", - "modulework", - "modx", - "moodle", - "osclass", - "pantheon", - "phpbb", - "piwik", - "ppi", - "processwire", - "puppet", - "pxcms", - "reindex", - "roundcube", - "shopware", - "silverstripe", - "sydes", - "sylius", - "tastyigniter", - "wordpress", - "yawik", - "zend", - "zikula" - ], - "support": { - "issues": "https://github.com/composer/installers/issues", - "source": "https://github.com/composer/installers/tree/main" - }, - "funding": [ - { - "url": "https://packagist.com", - "type": "custom" - }, - { - "url": "https://github.com/composer", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/composer/composer", - "type": "tidelift" - } - ], - "time": "2022-10-12T12:07:30+00:00" - }, - { - "name": "doctrine/instantiator", - "version": "2.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "9955122a490d18ce723cf9014b196c126222c180" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/9955122a490d18ce723cf9014b196c126222c180", - "reference": "9955122a490d18ce723cf9014b196c126222c180", - "shasum": "" - }, - "require": { - "php": "^8.1" - }, - "require-dev": { - "doctrine/coding-standard": "^12", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-phpunit": "^1.3", - "phpunit/phpunit": "^10.5", - "vimeo/psalm": "^5.4" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" - } - ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", - "keywords": [ - "constructor", - "instantiate" - ], - "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/2.0.x" - }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2024-05-05T15:09:38+00:00" - }, - { - "name": "guzzlehttp/guzzle", - "version": "7.9.x-dev", - "source": { - "type": "git", - "url": "https://github.com/guzzle/guzzle.git", - "reference": "1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93", - "reference": "1ee81e5fc8613ba1ad0b095f40e17c119dd4cc93", - "shasum": "" - }, - "require": { - "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", - "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.2", - "ext-curl": "*", - "guzzle/client-integration-tests": "3.0.2", - "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", - "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.9" - }, - "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": "2024-03-31T19:57:34+00:00" - }, - { - "name": "guzzlehttp/promises", - "version": "2.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/guzzle/promises.git", - "reference": "ab801747cbf7d394d4d435c34364704f9bf048e6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/ab801747cbf7d394d4d435c34364704f9bf048e6", - "reference": "ab801747cbf7d394d4d435c34364704f9bf048e6", - "shasum": "" - }, - "require": { - "php": "^7.2.5 || ^8.0" - }, - "require-dev": { - "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" - }, - "default-branch": true, - "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" - }, - "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": "2024-03-31T10:06:07+00:00" - }, - { - "name": "guzzlehttp/psr7", - "version": "1.9.x-dev", - "source": { - "type": "git", - "url": "https://github.com/guzzle/psr7.git", - "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/e4490cabc77465aaee90b20cfc9a770f8c04be6b", - "reference": "e4490cabc77465aaee90b20cfc9a770f8c04be6b", - "shasum": "" - }, - "require": { - "php": ">=5.4.0", - "psr/http-message": "~1.0", - "ralouphie/getallheaders": "^2.0.5 || ^3.0.0" - }, - "provide": { - "psr/http-message-implementation": "1.0" - }, - "require-dev": { - "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" - }, - "suggest": { - "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" - }, - "type": "library", - "autoload": { - "files": [ - "src/functions_include.php" - ], - "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" - } - ], - "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/1.9" - }, - "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-04-17T16:00:37+00:00" - }, - { - "name": "hamcrest/hamcrest-php", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "696163addf28bb4e01455254e055a9a75e0ba6c4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/696163addf28bb4e01455254e055a9a75e0ba6c4", - "reference": "696163addf28bb4e01455254e055a9a75e0ba6c4", - "shasum": "" - }, - "require": { - "php": "^5.3|^7.0|^8.0" - }, - "replace": { - "cordoval/hamcrest-php": "*", - "davedevelopment/hamcrest-php": "*", - "kodova/hamcrest-php": "*" - }, - "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "classmap": [ - "hamcrest" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "description": "This is the PHP port of Hamcrest Matchers", - "keywords": [ - "test" - ], - "support": { - "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/master" - }, - "time": "2023-12-14T11:00:58+00:00" - }, - { - "name": "http-interop/http-factory-guzzle", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/http-interop/http-factory-guzzle.git", - "reference": "8f06e92b95405216b237521cc64c804dd44c4a81" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/http-interop/http-factory-guzzle/zipball/8f06e92b95405216b237521cc64c804dd44c4a81", - "reference": "8f06e92b95405216b237521cc64c804dd44c4a81", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^1.7||^2.0", - "php": ">=7.3", - "psr/http-factory": "^1.0" - }, - "provide": { - "psr/http-factory-implementation": "^1.0" - }, - "require-dev": { - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^9.5" - }, - "suggest": { - "guzzlehttp/psr7": "Includes an HTTP factory starting in version 2.0" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Factory\\Guzzle\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "An HTTP Factory using Guzzle PSR7", - "keywords": [ - "factory", - "http", - "psr-17", - "psr-7" - ], - "support": { - "issues": "https://github.com/http-interop/http-factory-guzzle/issues", - "source": "https://github.com/http-interop/http-factory-guzzle/tree/1.2.0" - }, - "time": "2021-07-21T13:50:14+00:00" - }, - { - "name": "mockery/mockery", - "version": "1.7.x-dev", - "source": { - "type": "git", - "url": "https://github.com/mockery/mockery.git", - "reference": "3f8d3ff1ffe4c552d45c5690c6d825e9310769bf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/mockery/mockery/zipball/3f8d3ff1ffe4c552d45c5690c6d825e9310769bf", - "reference": "3f8d3ff1ffe4c552d45c5690c6d825e9310769bf", - "shasum": "" - }, - "require": { - "hamcrest/hamcrest-php": "^2.0.1", - "lib-pcre": ">=7.0", - "php": ">=7.3" - }, - "conflict": { - "phpunit/phpunit": "<8.0" - }, - "require-dev": { - "phpunit/phpunit": ">=9.6.11 <10.4" - }, - "type": "library", - "autoload": { - "files": [ - "library/helpers.php", - "library/Mockery.php" - ], - "psr-4": { - "Mockery\\": "library/Mockery" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Pádraic Brady", - "email": "padraic.brady@gmail.com", - "homepage": "https://github.com/padraic", - "role": "Author" - }, - { - "name": "Dave Marshall", - "email": "dave.marshall@atstsolutions.co.uk", - "homepage": "https://davedevelopment.co.uk", - "role": "Developer" - }, - { - "name": "Nathanael Esayeas", - "email": "nathanael.esayeas@protonmail.com", - "homepage": "https://github.com/ghostwriter", - "role": "Lead Developer" - } - ], - "description": "Mockery is a simple yet flexible PHP mock object framework", - "homepage": "https://github.com/mockery/mockery", - "keywords": [ - "BDD", - "TDD", - "library", - "mock", - "mock objects", - "mockery", - "stub", - "test", - "test double", - "testing" - ], - "support": { - "docs": "https://docs.mockery.io/", - "issues": "https://github.com/mockery/mockery/issues", - "rss": "https://github.com/mockery/mockery/releases.atom", - "security": "https://github.com/mockery/mockery/security/advisories", - "source": "https://github.com/mockery/mockery" - }, - "time": "2023-10-01T17:31:30+00:00" - }, - { - "name": "myclabs/deep-copy", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "2f5294676c802a62b0549f6bc8983f14294ce369" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/2f5294676c802a62b0549f6bc8983f14294ce369", - "reference": "2f5294676c802a62b0549f6bc8983f14294ce369", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "conflict": { - "doctrine/collections": "<1.6.8", - "doctrine/common": "<2.13.3 || >=3 <3.2.2" - }, - "require-dev": { - "doctrine/collections": "^1.6.8", - "doctrine/common": "^2.13.3 || ^3.2.2", - "phpspec/prophecy": "^1.10", - "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" - }, - "default-branch": true, - "type": "library", - "autoload": { - "files": [ - "src/DeepCopy/deep_copy.php" - ], - "psr-4": { - "DeepCopy\\": "src/DeepCopy/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "Create deep copies (clones) of your objects", - "keywords": [ - "clone", - "copy", - "duplicate", - "object", - "object graph" - ], - "support": { - "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.x" - }, - "funding": [ - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", - "type": "tidelift" - } - ], - "time": "2024-02-10T11:10:03+00:00" - }, - { - "name": "nikic/php-parser", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "c5ee33df86c06b3278c670f64273b1ba768a0744" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/c5ee33df86c06b3278c670f64273b1ba768a0744", - "reference": "c5ee33df86c06b3278c670f64273b1ba768a0744", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-json": "*", - "ext-tokenizer": "*", - "php": ">=7.4" - }, - "require-dev": { - "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^9.0" - }, - "default-branch": true, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Nikita Popov" - } - ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "support": { - "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/master" - }, - "time": "2024-04-19T12:04:10+00:00" - }, - { - "name": "omnipay/tests", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/thephpleague/omnipay-tests.git", - "reference": "4412f542663a3d1ed45449a7d5282ea03cfe7acd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/thephpleague/omnipay-tests/zipball/4412f542663a3d1ed45449a7d5282ea03cfe7acd", - "reference": "4412f542663a3d1ed45449a7d5282ea03cfe7acd", - "shasum": "" - }, - "require": { - "guzzlehttp/psr7": "^1", - "mockery/mockery": "^1.3", - "php": "^7.2|^8", - "php-http/discovery": "^1.14", - "php-http/mock-client": "^1.1", - "phpunit/phpunit": "^8.5.14|^9" - }, - "require-dev": { - "omnipay/common": "^3", - "symfony/http-foundation": "^3|^4|^5" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Omnipay\\Tests\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Adrian Macneil", - "email": "adrian@adrianmacneil.com" - }, - { - "name": "Barry vd. Heuvel", - "email": "barryvdh@gmail.com" - }, - { - "name": "Omnipay Contributors", - "homepage": "https://github.com/thephpleague/omnipay-tests/contributors" - } - ], - "description": "Testing components for Omnipay payment processing library", - "homepage": "https://github.com/thephpleague/omnipay-tests", - "keywords": [ - "omnipay" - ], - "support": { - "issues": "https://github.com/thephpleague/omnipay-tests/issues", - "source": "https://github.com/thephpleague/omnipay-tests/tree/v4.1.2" - }, - "time": "2022-10-31T14:30:25+00:00" - }, - { - "name": "oomphinc/composer-installers-extender", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/oomphinc/composer-installers-extender.git", - "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/oomphinc/composer-installers-extender/zipball/cbf4b6f9a24153b785d09eee755b995ba87bd5f9", - "reference": "cbf4b6f9a24153b785d09eee755b995ba87bd5f9", - "shasum": "" - }, - "require": { - "composer-plugin-api": "^1.1 || ^2.0", - "composer/installers": "^1.0 || ^2.0", - "php": ">=7.1" - }, - "require-dev": { - "composer/composer": "^2.0", - "phpunit/phpunit": "^7.2", - "squizlabs/php_codesniffer": "^3.3" - }, - "default-branch": true, - "type": "composer-plugin", - "extra": { - "class": "OomphInc\\ComposerInstallersExtender\\Plugin" - }, - "autoload": { - "psr-4": { - "OomphInc\\ComposerInstallersExtender\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Stephen Beemsterboer", - "email": "stephen@oomphinc.com", - "homepage": "https://github.com/balbuf" - }, - { - "name": "Nathan Dentzau", - "email": "nate@oomphinc.com", - "homepage": "http://oomph.is/ndentzau" - } - ], - "description": "Extend the composer/installers plugin to accept any arbitrary package type.", - "homepage": "http://www.oomphinc.com/", - "support": { - "issues": "https://github.com/oomphinc/composer-installers-extender/issues", - "source": "https://github.com/oomphinc/composer-installers-extender/tree/2.0.1" - }, - "time": "2021-12-15T12:32:42+00:00" - }, - { - "name": "phar-io/manifest", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/phar-io/manifest.git", - "reference": "54750ef60c58e43759730615a392c31c80e23176" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", - "reference": "54750ef60c58e43759730615a392c31c80e23176", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-phar": "*", - "ext-xmlwriter": "*", - "phar-io/version": "^3.0.1", - "php": "^7.2 || ^8.0" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "support": { - "issues": "https://github.com/phar-io/manifest/issues", - "source": "https://github.com/phar-io/manifest/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:33:53+00:00" - }, - { - "name": "phar-io/version", - "version": "3.2.1", - "source": { - "type": "git", - "url": "https://github.com/phar-io/version.git", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - }, - { - "name": "Sebastian Heuer", - "email": "sebastian@phpeople.de", - "role": "Developer" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "Developer" - } - ], - "description": "Library for handling version information and constraints", - "support": { - "issues": "https://github.com/phar-io/version/issues", - "source": "https://github.com/phar-io/version/tree/3.2.1" - }, - "time": "2022-02-21T01:04:05+00:00" - }, - { - "name": "php-http/client-common", - "version": "2.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/client-common.git", - "reference": "d930a40e864109bf128431879b11bccfc09dccfc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/client-common/zipball/d930a40e864109bf128431879b11bccfc09dccfc", - "reference": "d930a40e864109bf128431879b11bccfc09dccfc", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/httplug": "^2.0", - "php-http/message": "^1.6", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/http-message": "^1.0 || ^2.0", - "symfony/options-resolver": "~4.0.15 || ~4.1.9 || ^4.2.1 || ^5.0 || ^6.0 || ^7.0", - "symfony/polyfill-php80": "^1.17" - }, - "require-dev": { - "doctrine/instantiator": "^1.1", - "guzzlehttp/psr7": "^1.4", - "nyholm/psr7": "^1.2", - "phpspec/phpspec": "^5.1 || ^6.3 || ^7.1", - "phpspec/prophecy": "^1.10.2", - "phpunit/phpunit": "^7.5.20 || ^8.5.33 || ^9.6.7" - }, - "suggest": { - "ext-json": "To detect JSON responses with the ContentTypePlugin", - "ext-libxml": "To detect XML responses with the ContentTypePlugin", - "php-http/cache-plugin": "PSR-6 Cache plugin", - "php-http/logger-plugin": "PSR-3 Logger plugin", - "php-http/stopwatch-plugin": "Symfony Stopwatch plugin" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Client\\Common\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Common HTTP Client implementations and tools for HTTPlug", - "homepage": "http://httplug.io", - "keywords": [ - "client", - "common", - "http", - "httplug" - ], - "support": { - "issues": "https://github.com/php-http/client-common/issues", - "source": "https://github.com/php-http/client-common/tree/2.x" - }, - "time": "2024-01-29T12:02:44+00:00" - }, - { - "name": "php-http/httplug", - "version": "2.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/httplug.git", - "reference": "87779285e14780b0a85209bfed8abd9d5fe0322e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/httplug/zipball/87779285e14780b0a85209bfed8abd9d5fe0322e", - "reference": "87779285e14780b0a85209bfed8abd9d5fe0322e", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/promise": "^1.1", - "psr/http-client": "^1.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "require-dev": { - "friends-of-phpspec/phpspec-code-coverage": "^4.1 || ^5.0 || ^6.0", - "phpspec/phpspec": "^5.1 || ^6.0 || ^7.0" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Eric GELOEN", - "email": "geloen.eric@gmail.com" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com", - "homepage": "https://sagikazarmark.hu" - } - ], - "description": "HTTPlug, the HTTP client abstraction for PHP", - "homepage": "http://httplug.io", - "keywords": [ - "client", - "http" - ], - "support": { - "issues": "https://github.com/php-http/httplug/issues", - "source": "https://github.com/php-http/httplug/tree/2.x" - }, - "time": "2024-03-15T16:17:50+00:00" - }, - { - "name": "php-http/mock-client", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/mock-client.git", - "reference": "ae5d717334ecd68199667bea6e9db07276e69a2b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/mock-client/zipball/ae5d717334ecd68199667bea6e9db07276e69a2b", - "reference": "ae5d717334ecd68199667bea6e9db07276e69a2b", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0", - "php-http/client-common": "^2.0", - "php-http/discovery": "^1.16", - "php-http/httplug": "^2.0", - "psr/http-client": "^1.0", - "psr/http-factory-implementation": "^1.0", - "psr/http-message": "^1.0 || ^2.0", - "symfony/polyfill-php80": "^1.17" - }, - "provide": { - "php-http/async-client-implementation": "1.0", - "php-http/client-implementation": "1.0", - "psr/http-client-implementation": "1.0" - }, - "require-dev": { - "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Mock\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "David de Boer", - "email": "david@ddeboer.nl" - } - ], - "description": "Mock HTTP client", - "homepage": "http://httplug.io", - "keywords": [ - "client", - "http", - "mock", - "psr7" - ], - "support": { - "issues": "https://github.com/php-http/mock-client/issues", - "source": "https://github.com/php-http/mock-client/tree/1.6.0" - }, - "time": "2023-05-21T08:31:38+00:00" - }, - { - "name": "php-http/promise", - "version": "1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/php-http/promise.git", - "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83", - "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "friends-of-phpspec/phpspec-code-coverage": "^4.3.2 || ^6.3", - "phpspec/phpspec": "^5.1.2 || ^6.2 || ^7.4" - }, - "default-branch": true, - "type": "library", - "autoload": { - "psr-4": { - "Http\\Promise\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Joel Wurtz", - "email": "joel.wurtz@gmail.com" - }, - { - "name": "Márk Sági-Kazár", - "email": "mark.sagikazar@gmail.com" - } - ], - "description": "Promise used for asynchronous HTTP requests", - "homepage": "http://httplug.io", - "keywords": [ - "promise" - ], - "support": { - "issues": "https://github.com/php-http/promise/issues", - "source": "https://github.com/php-http/promise/tree/1.3.1" - }, - "time": "2024-03-15T13:55:21+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "3352293d9e91513d5508c415835014881b420218" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3352293d9e91513d5508c415835014881b420218", - "reference": "3352293d9e91513d5508c415835014881b420218", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-libxml": "*", - "ext-xmlwriter": "*", - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcov": "PHP extension that provides line coverage", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", - "homepage": "https://github.com/sebastianbergmann/php-code-coverage", - "keywords": [ - "coverage", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-22T05:16:32+00:00" - }, - { - "name": "phpunit/php-file-iterator", - "version": "3.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "38b24367e1b340aa78b96d7cab042942d917bb84" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/38b24367e1b340aa78b96d7cab042942d917bb84", - "reference": "38b24367e1b340aa78b96d7cab042942d917bb84", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "FilterIterator implementation that filters files based on a list of suffixes.", - "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", - "keywords": [ - "filesystem", - "iterator" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", - "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/3.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-02-11T16:23:04+00:00" - }, - { - "name": "phpunit/php-invoker", - "version": "3.1.1", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-invoker.git", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "ext-pcntl": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-pcntl": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Invoke callables with a timeout", - "homepage": "https://github.com/sebastianbergmann/php-invoker/", - "keywords": [ - "process" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-invoker/issues", - "source": "https://github.com/sebastianbergmann/php-invoker/tree/3.1.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:58:55+00:00" - }, - { - "name": "phpunit/php-text-template", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Simple template engine.", - "homepage": "https://github.com/sebastianbergmann/php-text-template/", - "keywords": [ - "template" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-text-template/issues", - "source": "https://github.com/sebastianbergmann/php-text-template/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T05:33:50+00:00" - }, - { - "name": "phpunit/php-timer", - "version": "5.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Utility class for timing", - "homepage": "https://github.com/sebastianbergmann/php-timer/", - "keywords": [ - "timer" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/php-timer/issues", - "source": "https://github.com/sebastianbergmann/php-timer/tree/5.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:16:10+00:00" - }, - { - "name": "phpunit/phpunit", - "version": "9.6.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "bbcbb0823b0e06be56e6b180faa0df1f3b3e2733" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bbcbb0823b0e06be56e6b180faa0df1f3b3e2733", - "reference": "bbcbb0823b0e06be56e6b180faa0df1f3b3e2733", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.3.1 || ^2", - "ext-dom": "*", - "ext-json": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-xml": "*", - "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", - "php": ">=7.3", - "phpunit/php-code-coverage": "^9.2.28", - "phpunit/php-file-iterator": "^3.0.5", - "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.8", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.5", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^3.2", - "sebastian/version": "^3.0.2" - }, - "suggest": { - "ext-soap": "To be able to generate mocks based on WSDL files", - "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" - }, - "bin": [ - "phpunit" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "9.6-dev" - } - }, - "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", - "keywords": [ - "phpunit", - "testing", - "xunit" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6" - }, - "funding": [ - { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", - "type": "tidelift" - } - ], - "time": "2024-04-30T05:22:06+00:00" - }, - { - "name": "psr/http-client", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "default-branch": true, - "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" - }, - "time": "2023-09-23T14:17:50+00:00" - }, - { - "name": "psr/http-factory", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.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": "PSR-17: Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory" - }, - "time": "2024-04-15T12:06:14+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": "sebastian/cli-parser", - "version": "1.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for parsing CLI options", - "homepage": "https://github.com/sebastianbergmann/cli-parser", - "support": { - "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:27:43+00:00" - }, - { - "name": "sebastian/code-unit", - "version": "1.0.8", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit.git", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120", - "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the PHP code units", - "homepage": "https://github.com/sebastianbergmann/code-unit", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit/issues", - "source": "https://github.com/sebastianbergmann/code-unit/tree/1.0.8" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:08:54+00:00" - }, - { - "name": "sebastian/code-unit-reverse-lookup", - "version": "2.0.3", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Looks up which function or method a line of code belongs to", - "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "support": { - "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", - "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T05:30:19+00:00" - }, - { - "name": "sebastian/comparator", - "version": "4.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/b247957a1c8dc81a671770f74b479c0a78a818f1", - "reference": "b247957a1c8dc81a671770f74b479c0a78a818f1", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/diff": "^4.0", - "sebastian/exporter": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@2bepublished.at" - } - ], - "description": "Provides the functionality to compare PHP values for equality", - "homepage": "https://github.com/sebastianbergmann/comparator", - "keywords": [ - "comparator", - "compare", - "equality" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2022-09-14T12:46:14+00:00" - }, - { - "name": "sebastian/complexity", - "version": "2.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a", - "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for calculating the complexity of PHP code units", - "homepage": "https://github.com/sebastianbergmann/complexity", - "support": { - "issues": "https://github.com/sebastianbergmann/complexity/issues", - "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:19:30+00:00" - }, - { - "name": "sebastian/diff", - "version": "4.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", - "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3", - "symfony/process": "^4.2 || ^5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "Diff implementation", - "homepage": "https://github.com/sebastianbergmann/diff", - "keywords": [ - "diff", - "udiff", - "unidiff", - "unified diff" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:30:58+00:00" - }, - { - "name": "sebastian/environment", - "version": "5.1.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-posix": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.1-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides functionality to handle HHVM/PHP environments", - "homepage": "http://www.github.com/sebastianbergmann/environment", - "keywords": [ - "Xdebug", - "environment", - "hhvm" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:03:51+00:00" - }, - { - "name": "sebastian/exporter", - "version": "4.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", - "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-mbstring": "*", - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Volker Dusch", - "email": "github@wallbash.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - }, - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Provides the functionality to export PHP variables for visualization", - "homepage": "https://www.github.com/sebastianbergmann/exporter", - "keywords": [ - "export", - "exporter" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:33:00+00:00" - }, - { - "name": "sebastian/global-state", - "version": "5.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "ext-dom": "*", - "phpunit/phpunit": "^9.3" - }, - "suggest": { - "ext-uopz": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Snapshotting of global state", - "homepage": "http://www.github.com/sebastianbergmann/global-state", - "keywords": [ - "global state" - ], - "support": { - "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-02T06:35:11+00:00" - }, - { - "name": "sebastian/lines-of-code", - "version": "1.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/lines-of-code.git", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5", - "shasum": "" - }, - "require": { - "nikic/php-parser": "^4.18 || ^5.0", - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library for counting the lines of code in PHP source code", - "homepage": "https://github.com/sebastianbergmann/lines-of-code", - "support": { - "issues": "https://github.com/sebastianbergmann/lines-of-code/issues", - "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-12-22T06:20:34+00:00" - }, - { - "name": "sebastian/object-enumerator", - "version": "4.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71", - "reference": "5c9eeac41b290a3712d88851518825ad78f45c71", - "shasum": "" - }, - "require": { - "php": ">=7.3", - "sebastian/object-reflector": "^2.0", - "sebastian/recursion-context": "^4.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Traverses array structures and object graphs to enumerate all referenced objects", - "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", - "source": "https://github.com/sebastianbergmann/object-enumerator/tree/4.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:12:34+00:00" - }, - { - "name": "sebastian/object-reflector", - "version": "2.0.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Allows reflection of object attributes, including inherited and non-public ones", - "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "support": { - "issues": "https://github.com/sebastianbergmann/object-reflector/issues", - "source": "https://github.com/sebastianbergmann/object-reflector/tree/2.0.4" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-10-26T13:14:26+00:00" - }, - { - "name": "sebastian/recursion-context", - "version": "4.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, - { - "name": "Adam Harvey", - "email": "aharvey@php.net" - } - ], - "description": "Provides functionality to recursively process PHP variables", - "homepage": "https://github.com/sebastianbergmann/recursion-context", - "support": { - "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:07:39+00:00" - }, - { - "name": "sebastian/resource-operations", - "version": "dev-main", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25", - "reference": "ff553e7482dcee39fa4acc2b175d6ddeb0f7bc25", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.0" - }, - "default-branch": true, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - } - ], - "description": "Provides a list of PHP built-in functions that operate on resources", - "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "support": { - "source": "https://github.com/sebastianbergmann/resource-operations/tree/main" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2024-03-14T18:47:08+00:00" - }, - { - "name": "sebastian/type", - "version": "3.2.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/type.git", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "require-dev": { - "phpunit/phpunit": "^9.5" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Collection of value objects that represent the types of the PHP type system", - "homepage": "https://github.com/sebastianbergmann/type", - "support": { - "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/3.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2023-02-03T06:13:03+00:00" - }, - { - "name": "sebastian/version", - "version": "3.0.x-dev", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/version.git", - "reference": "c6c1022351a901512170118436c764e473f6de8c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c", - "reference": "c6c1022351a901512170118436c764e473f6de8c", - "shasum": "" - }, - "require": { - "php": ">=7.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" - } - ], - "description": "Library that helps with managing the version number of Git-hosted PHP projects", - "homepage": "https://github.com/sebastianbergmann/version", - "support": { - "issues": "https://github.com/sebastianbergmann/version/issues", - "source": "https://github.com/sebastianbergmann/version/tree/3.0.2" - }, - "funding": [ - { - "url": "https://github.com/sebastianbergmann", - "type": "github" - } - ], - "time": "2020-09-28T06:39:44+00:00" - }, - { - "name": "symfony/options-resolver", - "version": "6.4.x-dev", - "source": { - "type": "git", - "url": "https://github.com/symfony/options-resolver.git", - "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/9a3c92b490716ba6771f5beced13c6eda7183eed", - "reference": "9a3c92b490716ba6771f5beced13c6eda7183eed", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/deprecation-contracts": "^2.5|^3" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\OptionsResolver\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Provides an improved replacement for the array_replace PHP function", - "homepage": "https://symfony.com", - "keywords": [ - "config", - "configuration", - "options" - ], - "support": { - "source": "https://github.com/symfony/options-resolver/tree/6.4" - }, - "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": "2024-04-18T09:22:46+00:00" - }, - { - "name": "theseer/tokenizer", - "version": "1.2.3", - "source": { - "type": "git", - "url": "https://github.com/theseer/tokenizer.git", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", - "shasum": "" - }, - "require": { - "ext-dom": "*", - "ext-tokenizer": "*", - "ext-xmlwriter": "*", - "php": "^7.2 || ^8.0" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Arne Blankerts", - "email": "arne@blankerts.de", - "role": "Developer" - } - ], - "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "support": { - "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.3" - }, - "funding": [ - { - "url": "https://github.com/theseer", - "type": "github" - } - ], - "time": "2024-03-03T12:36:25+00:00" - } - ], - "aliases": [], - "minimum-stability": "dev", - "stability-flags": { - "http-interop/http-factory-guzzle": 20 - }, - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=8.0" - }, - "platform-dev": [], - "plugin-api-version": "2.6.0" -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml deleted file mode 100644 index 4f04170e17a9..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/phpunit.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - ./src - - - - - ./tests - - - ./tests/Model - - - ./tests/Message/Request - - - ./tests/Functional - - - diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php deleted file mode 100644 index c84a97322717..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php +++ /dev/null @@ -1,21 +0,0 @@ -default_parameters; - } - - public function setDefaultParameters(array $params) { - $this->default_parameters = $params; - } - -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php deleted file mode 100644 index 5fc947713f3a..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php +++ /dev/null @@ -1,41 +0,0 @@ -createRequest('GetCustomers', [] ); - } - public function postCustomers(array $params) : RequestInterface { - return $this->createRequest('PostCustomers', $params ); - } - public function getCustomersId(array $params) : RequestInterface { - return $this->createRequest('GetCustomersId', $params ); - } - public function patchCustomersId(array $params) : RequestInterface { - return $this->createRequest('PatchCustomersId', $params ); - } - public function postCustomersShowWithCustomIdentifier(array $params) : RequestInterface { - return $this->createRequest('PostCustomersShowWithCustomIdentifier', $params ); - } - public function getTransactionSchedulesId(array $params) : RequestInterface { - return $this->createRequest('GetTransactionSchedulesId', $params ); - } - public function deleteTransactionSchedulesId(array $params) : RequestInterface { - return $this->createRequest('DeleteTransactionSchedulesId', $params ); - } - public function patchTransactionSchedulesId(array $params) : RequestInterface { - return $this->createRequest('PatchTransactionSchedulesId', $params ); - } - public function postTransactionSchedules(array $params) : RequestInterface { - return $this->createRequest('PostTransactionSchedules', $params ); - } - public function postTransactionSchedulesCreateWithCustomIdentifier(array $params) : RequestInterface { - return $this->createRequest('PostTransactionSchedulesCreateWithCustomIdentifier', $params ); - } - public function postTransactionSchedulesUpdateViaPost(array $params) : RequestInterface { - return $this->createRequest('PostTransactionSchedulesUpdateViaPost', $params ); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php deleted file mode 100644 index 4d08fb0441f2..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php +++ /dev/null @@ -1,11 +0,0 @@ - 1234567890 ]; - - protected $test_mode = true; - - protected $api_key; - - public function getName() - { - return 'Rotessa'; - } - - public function getDefaultParameters() : array - { - return array_merge($this->default_parameters, array('api_key' => $this->api_key, 'test_mode' => $this->test_mode ) ); - } - - public function setTestMode($value) { - $this->test_mode = $value; - } - - public function getTestMode() { - return $this->test_mode; - } - - protected function createRequest($class_name, ?array $parameters = [] ) :RequestInterface { - $class = null; - $class_name = "Omnipay\\Rotessa\\Message\\Request\\$class_name"; - $parameters = $class_name::hasModel() ? (($parameters = ($class_name::getModel($parameters)))->validate() ? $parameters->jsonSerialize() : null ) : $parameters; - try { - $class = new $class_name($this->httpClient, $this->httpRequest, $this->getDefaultParameters() + $parameters ); - } catch (\Throwable $th) { - throw $th; - } - - return $class; - } - - function setApiKey($value) { - $this->api_key = $value; - } - - function getApiKey() { - return $this->api_key; - } - - function authorize(array $options = []) : RequestInterface { - return $this->postCustomers($options); - } - - function capture(array $options = []) : RequestInterface { - return array_key_exists('customer_id', $options)? $this->postTransactionSchedules($options) : $this->postTransactionSchedulesCreateWithCustomIdentifier($options) ; - } - - function updateCustomer(array $options) : RequestInterface { - return $this->patchCustomersId($options); - } - - function fetchTransaction($id = null) : RequestInterface { - return $this->getTransactionSchedulesId(compact('id')); - } - -} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php deleted file mode 100644 index 4c8ea0d29075..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php +++ /dev/null @@ -1,82 +0,0 @@ -httpClient = $httpClient ?: HttpClientDiscovery::find(); - $this->requestFactory = $requestFactory ?: MessageFactoryDiscovery::find(); - parent::__construct($httpClient, $requestFactory); - } - - /** - * @param $method - * @param $uri - * @param array $headers - * @param string|array|resource|StreamInterface|null $body - * @param string $protocolVersion - * @return ResponseInterface - * @throws \Http\Client\Exception - */ - public function request( - $method, - $uri, - array $headers = [], - $body = null, - $protocolVersion = '1.1' - ) { - return $this->sendRequest($method, $uri, $headers, $body, $protocolVersion); - - } - - /** - * @param RequestInterface $request - * @return ResponseInterface - * @throws \Http\Client\Exception - */ - private function sendRequest( $method, - $uri, - array $headers = [], - $body = null, - $protocolVersion = '1.1') - { - - $response = null; - - try { - if( method_exists($this->httpClient, 'sendRequest')) - $response = $this->httpClient->sendRequest( $this->requestFactory->createRequest($method, $uri, $headers, $body, $protocolVersion)); - else $response = $this->httpClient->request($method, $uri, compact('body','headers')); - } catch (\Http\Client\Exception\NetworkException $networkException) { - throw new NetworkException($networkException->getMessage(), $request, $networkException); - } catch (\Exception $exception) { - throw new RequestException($exception->getMessage(), $request, $exception); - } - - return $response; - } -} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php deleted file mode 100644 index 8d665ac8546e..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php +++ /dev/null @@ -1,32 +0,0 @@ -content, true) )) { - $data = $data['errors'][0]; - $this->reason_phrase = $data['error_message'] ; - $this->reason_code = $data['error_message'] ; - } - } - - public function getReasonPhrase() { - return $this->reason_phrase; - } - - public function getReasonCode() { - return $this->reason_code; - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php deleted file mode 100644 index 266ba3036d9d..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php +++ /dev/null @@ -1,12 +0,0 @@ -api_key = $value; - } - - public function getData() { - try { - if(empty($this->api_key)) throw new \Exception('No Api Key Found!'); - $this->validate( ...array_keys($data = $this->getParameters())); - } catch (\Throwable $th) { - throw new \Omnipay\Rotessa\Exception\ValidationException($th->getMessage() , 600, $th); - } - - return (array) $data; - } - - abstract public function sendData($data) : ResponseInterface; - - abstract protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = [] ); - - abstract protected function createResponse(array $data) : ResponseInterface; - - abstract public function getEndpointUrl(): string; - - public function getEndpoint() : string { - return $this->endpoint; - } - - public function getTestMode() { - return $this->test_mode; - } - - public function setTestMode($mode) { - $this->test_mode = $mode; - } - } \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php deleted file mode 100644 index 4b68cf0aa2ff..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php +++ /dev/null @@ -1,93 +0,0 @@ -initialize($model); - } - - protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = []) - { - /** - * @param $method - * @param $uri - * @param array $headers - * @param string|resource|StreamInterface|null $body - * @param string $protocolVersion - * @return ResponseInterface - * @throws \Http\Client\Exception - */ - $response = $this->httpClient->request($method, $endpoint, $headers, json_encode($data) ) ; - $this->response = new Response ($response->getBody()->getContents(), $response->getStatusCode(), $response->getHeaders(), true); - } - - - protected function createResponse(array $data): ResponseInterface { - - return new BaseResponse($this, $data, $this->response->getStatusCode(), $this->response->getReasonPhrase()); - } - - protected function replacePlaceholder($string, $array) { - $pattern = "/\{([^}]+)\}/"; - $replacement = function($matches) use($array) { - $key = $matches[1]; - if (array_key_exists($key, $array)) { - return $array[$key]; - } else { - return $matches[0]; - } - }; - - return preg_replace_callback($pattern, $replacement, $string); - } - - public function sendData($data) :ResponseInterface { - $headers = [ - 'Content-Type' => 'application/json', - 'Accept' => 'application/json', - 'Authorization' => "Token token={$this->api_key}" - ]; - - $this->sendRequest( - $this->method, - $this->getEndpointUrl(), - $headers, - $data); - - return $this->createResponse(json_decode($this->response->getContent(), true)); - } - - public function getEndpoint() : string { - return $this->replacePlaceholder($this->endpoint, $this->getParameters()); - } - - public function getEndpointUrl() : string { - return sprintf('https://%s.%s/v%d%s',$this->test_mode ? self::ENVIRONMENT_SANDBOX : self::ENVIRONMENT_LIVE ,$this->base_url, $this->api_version, $this->getEndpoint()); - } - - public static function hasModel() : bool { - return (bool) static::$model; - } - - public static function getModel($parameters = []) { - $class_name = static::$model; - $class_name = "Omnipay\\Rotessa\\Model\\{$class_name}Model"; - return new $class_name($parameters); - } -} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php deleted file mode 100644 index 7c03c42b0dc6..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php +++ /dev/null @@ -1,18 +0,0 @@ -setParameter('id',$value); - } - -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php deleted file mode 100644 index 17ffde5355d9..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php +++ /dev/null @@ -1,14 +0,0 @@ -setParameter('id',$value); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php deleted file mode 100644 index 47578d06eb8b..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php +++ /dev/null @@ -1,17 +0,0 @@ -setParameter('id',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php deleted file mode 100644 index 092e378b9fd5..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php +++ /dev/null @@ -1,65 +0,0 @@ -setParameter('id',$value); - } - public function setCustomIdentifier(string $value) { - $this->setParameter('custom_identifier',$value); - } - public function setName(string $value) { - $this->setParameter('name',$value); - } - public function setEmail(string $value) { - $this->setParameter('email',$value); - } - public function setCustomerType(string $value) { - $this->setParameter('customer_type',$value); - } - public function setHomePhone(string $value) { - $this->setParameter('home_phone',$value); - } - public function setPhone(string $value) { - $this->setParameter('phone',$value); - } - public function setBankName(string $value) { - $this->setParameter('bank_name',$value); - } - public function setInstitutionNumber(string $value) { - $this->setParameter('institution_number',$value); - } - public function setTransitNumber(string $value) { - $this->setParameter('transit_number',$value); - } - public function setBankAccountType(string $value) { - $this->setParameter('bank_account_type',$value); - } - public function setAuthorizationType(string $value) { - $this->setParameter('authorization_type',$value); - } - public function setRoutingNumber(string $value) { - $this->setParameter('routing_number',$value); - } - public function setAccountNumber(string $value) { - $this->setParameter('account_number',$value); - } - public function setAddress(array $value) { - $this->setParameter('address',$value); - } - public function setTransactionSchedules(array $value) { - $this->setParameter('transaction_schedules',$value); - } - public function setFinancialTransactions(array $value) { - $this->setParameter('financial_transactions',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php deleted file mode 100644 index fa04b9f05da6..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php +++ /dev/null @@ -1,22 +0,0 @@ -setParameter('id',$value); - } - public function setAmount(int $value) { - $this->setParameter('amount',$value); - } - public function setComment(string $value) { - $this->setParameter('comment',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php deleted file mode 100644 index a0c54fe65ca9..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php +++ /dev/null @@ -1,60 +0,0 @@ -setParameter('id',$value); - } - public function setCustomIdentifier(string $value) { - $this->setParameter('custom_identifier',$value); - } - public function setName(string $value) { - $this->setParameter('name',$value); - } - public function setEmail(string $value) { - $this->setParameter('email',$value); - } - public function setCustomerType(string $value) { - $this->setParameter('customer_type',$value); - } - public function setHomePhone(string $value) { - $this->setParameter('home_phone',$value); - } - public function setPhone(string $value) { - $this->setParameter('phone',$value); - } - public function setBankName(string $value) { - $this->setParameter('bank_name',$value); - } - public function setInstitutionNumber(string $value = '') { - $this->setParameter('institution_number',$value); - } - public function setTransitNumber(string $value = '') { - $this->setParameter('transit_number',$value); - } - public function setBankAccountType(string $value) { - $this->setParameter('bank_account_type',$value); - } - public function setAuthorizationType(string $value = '') { - $this->setParameter('authorization_type',$value); - } - public function setRoutingNumber(string $value = '') { - $this->setParameter('routing_number',$value); - } - public function setAccountNumber(string $value) { - $this->setParameter('account_number',$value); - } - public function setAddress(array $value) { - $this->setParameter('address',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php deleted file mode 100644 index d590cb618526..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php +++ /dev/null @@ -1,19 +0,0 @@ -setParameter('custom_identifier',$value); - } - -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php deleted file mode 100644 index 80e28a7f5083..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php +++ /dev/null @@ -1,31 +0,0 @@ -setParameter('customer_id',$value); - } - public function setProcessDate(string $value) { - $this->setParameter('process_date',$value); - } - public function setFrequency(string $value) { - $this->setParameter('frequency',$value); - } - public function setInstallments(int $value) { - $this->setParameter('installments',$value); - } - public function setComment(string $value) { - $this->setParameter('comment',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php deleted file mode 100644 index fd5111dc9a74..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php +++ /dev/null @@ -1,16 +0,0 @@ -setParameter('custom_identifier',$value); - } - -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php deleted file mode 100644 index e037c5b4d322..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php +++ /dev/null @@ -1,24 +0,0 @@ -setParameter('id',$value); - } - public function setAmount(int $value) { - $this->setParameter('amount',$value); - } - public function setComment(string $value) { - $this->setParameter('comment',$value); - } - } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php deleted file mode 100644 index cfbcf0095b24..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php +++ /dev/null @@ -1,10 +0,0 @@ -code = $code; - $this->message = $message; - } - - public function getData() { - return $this->getParameters(); - } - - public function getCode() { - return (int) $this->code; - } - - public function isSuccessful() { - return $this->code < 300; - } - - public function getMessage() { - return $this->message; - } - - protected function getParameters() { - return $this->data; - } - - public function getParameter(string $key) { - return $this->getParameters()[$key]; - } -} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php deleted file mode 100644 index 080eaab504b1..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php +++ /dev/null @@ -1,9 +0,0 @@ -required), array_filter($this->getParameters()) ); - if(!empty($required)) throw new ValidationException("Could not validate " . implode(",", array_keys($required)) ); - - return true; - } - - public function __get($key) { - return array_key_exists($key, $this->attributes) ? $this->getParameter($key) : null; - } - - public function __set($key, $value) { - if(array_key_exists($key, $this->attributes)) $this->setParameter($key, $value); - } - - public function __toString() : string { - return json_encode($this); - } - - public function toString() : string { - return $this->__toString(); - } - - public function __toArray() : array { - return $this->getParameters(); - } - - - public function toArray() : array { - return $this->__toArray(); - } - - public function initialize(array $params = []) { - $this->parameters = new ParameterBag; - $parameters = array_merge($this->defaults, $params); - if ($parameters) { - foreach ($this->attributes as $param => $type) { - $value = @$parameters[$param]; - if($value){ - settype($value, $type); - $this->setParameter($param, $value); - } - } - } - - return $this; - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php deleted file mode 100644 index 8064662068c4..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php +++ /dev/null @@ -1,24 +0,0 @@ - "string" - ]; - protected $required = ['id']; - protected $defaults = ['id' => 0 ]; - - public function __construct($parameters = array()) { - $this->initialize($parameters); - } - - public function jsonSerialize() : array { - return array_intersect_key($this->toArray(), array_flip($this->required) ); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php deleted file mode 100644 index 0fd67aea9441..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php +++ /dev/null @@ -1,94 +0,0 @@ - "string", - "custom_identifier" => "string", - "name" => "string", - "email" => "string", - "customer_type" => "string", - "home_phone" => "string", - "phone" => "string", - "bank_name" => "string", - "institution_number" => "string", - "transit_number" => "string", - "bank_account_type" => "string", - "authorization_type" => "string", - "routing_number" => "string", - "account_number" => "string", - "address" => "object", - "transaction_schedules" => "array", - "financial_transactions" => "array", - "active" => "bool" - ]; - - protected $defaults = ["active" => false,"customer_type" =>'Business',"bank_account_type" =>'Savings',"authorization_type" =>'Online',]; - protected $required = ["name","email","customer_type","home_phone","phone","bank_name","institution_number","transit_number","bank_account_type","authorization_type","routing_number","account_number","address",'custom_identifier']; - - public function validate() : bool { - try { - $country = $this->address->country; - if(!self::isValidCountry($country)) throw new \Exception("Invalid country!"); - - $this->required = array_diff($this->required, Country::isAmerican($country) ? ["institution_number", "transit_number"] : ["bank_account_type", "routing_number"]); - parent::validate(); - if(Country::isCanadian($country) ) { - if(!self::isValidTransitNumber($this->getParameter('transit_number'))) throw new \Exception("Invalid transit number!"); - if(!self::isValidInstitutionNumber($this->getParameter('institution_number'))) throw new \Exception("Invalid institution number!"); - } - if(!self::isValidCustomerType($this->getParameter('customer_type'))) throw new \Exception("Invalid customer type!"); - if(!self::isValidBankAccountType($this->getParameter('bank_account_type'))) throw new \Exception("Invalid bank account type!"); - if(!self::isValidAuthorizationType($this->getParameter('authorization_type'))) throw new \Exception("Invalid authorization type!"); - } catch (\Throwable $th) { - throw new ValidationException($th->getMessage()); - } - - return true; - } - - public static function isValidCountry(string $country ) : bool { - return Country::isValidCountryCode($country) || Country::isValidCountryName($country); - } - - public static function isValidTransitNumber(string $value ) : bool { - return strlen($value) == 5; - } - - public static function isValidInstitutionNumber(string $value ) : bool { - return strlen($value) == 3; - } - - public static function isValidCustomerType(string $value ) : bool { - return CustomerType::isValid($value); - } - - public static function isValidBankAccountType(string $value ) : bool { - return BankAccountType::isValid($value); - } - - public static function isValidAuthorizationType(string $value ) : bool { - return AuthorizationType::isValid($value); - } - - public function toArray() : array { - return [ 'address' => (array) $this->getParameter('address') ] + parent::toArray(); - } - - public function jsonSerialize() : array { - $address = (array) $this->getParameter('address'); - unset($address['country']); - - return compact('address') + parent::jsonSerialize(); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php deleted file mode 100644 index c2e51d50b135..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php +++ /dev/null @@ -1,16 +0,0 @@ - "string", - "amount" => "float", - "comment" => "string", - "created_at" => "date", - "financial_transactions" => "array", - "frequency" => "string", - "installments" => "integer", - "next_process_date" => "date", - "process_date" => "date", - "updated_at" => "date", - "customer_id" => "string", - "custom_identifier" => "string", - ]; - - public const DATE_FORMAT = 'F j, Y'; - - protected $defaults = ["amount" =>0.00,"comment" =>' ',"financial_transactions" =>0,"frequency" =>'Once',"installments" =>1]; - - protected $required = ["amount","comment","frequency","installments","process_date"]; - - public function validate() : bool { - try { - parent::validate(); - if(!self::isValidDate($this->process_date)) throw new \Exception("Could not validate date "); - if(!self::isValidFrequency($this->frequency)) throw new \Exception("Invalid frequency"); - if(is_null($this->customer_id) && is_null($this->custom_identifier)) throw new \Exception("customer id or custom identifier is invalid"); - } catch (\Throwable $th) { - throw new ValidationException($th->getMessage()); - } - - return true; - } - - public function jsonSerialize() : array { - return ['customer_id' => $this->getParameter('customer_id'), 'custom_identifier' => $this->getParameter('custom_identifier') ] + parent::jsonSerialize() ; - } - - public function __toArray() : array { - return parent::__toArray() ; - } - - public function initialize(array $params = [] ) { - $o_params = array_intersect_key( - $params = array_intersect_key($params, $this->attributes), - ($attr = array_filter($this->attributes, fn($p) => $p != "date")) - ); - parent::initialize($o_params); - $d_params = array_diff_key($params, $attr); - array_walk($d_params, function($v,$k) { - $this->setParameter($k, self::formatDate( $v) ); - }, ); - - return $this; - } - - public static function isValidDate($date) : bool { - $d = DateTime::createFromFormat(self::DATE_FORMAT, $date); - // Check if the date is valid and matches the format - return $d && $d->format(self::DATE_FORMAT) === $date; - } - - public static function isValidFrequency($value) : bool { - return Frequency::isValid($value); - } - - protected static function formatDate($date) : string { - $d = new DateTime($date); - return $d->format(self::DATE_FORMAT); - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php deleted file mode 100644 index 119ac03999cb..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php +++ /dev/null @@ -1,23 +0,0 @@ - "int", - "comment" => "string", - ]; - - public const DATE_FORMAT = 'Y-m-d H:i:s'; - - private $_is_error = false; - - protected $defaults = ["amount" =>0,"comment" =>'0',]; - - protected $required = ["amount","comment",]; -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php deleted file mode 100644 index 749ae2f6b967..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php +++ /dev/null @@ -1,24 +0,0 @@ - "int", - "amount" => "int", - "comment" => "string", - ]; - - public const DATE_FORMAT = 'Y-m-d H:i:s'; - - private $_is_error = false; - - protected $defaults = ["amount" =>0,"comment" =>'0',]; - - protected $required = ["amount","comment",]; -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php deleted file mode 100644 index 1c5952b112ef..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php +++ /dev/null @@ -1,53 +0,0 @@ - "string", - "address_2" => "string", - "city" => "string", - "id" => "int", - "postal_code" => "string", - "province_code" => "string", - "country" => "string" - ]; - - protected $required = ["address_1","address_2","city","postal_code","province_code",]; - - public function jsonSerialize() { - return array_intersect_key($this->getParameters(), array_flip($this->required)); - } - - public function getCountry() : string { - return $this->getParameter('country'); - } - - public function initialize(array $parameters) { - foreach($this->attributes as $param => $type) { - $value = @$parameters[$param] ; - settype($value, $type); - $value = $value ?? null; - $this->parameters->set($param, $value); - } - } - - public function __toArray() : array { - return $this->getParameters(); - } - - public function __toString() : string { - return $this->getFullAddress(); - } - - public function getFullAddress() :string { - $full_address = $this->getParameters(); - extract($full_address); - - return "$address_1 $address_2, $city, $postal_code $province_code, $country"; - } -} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php deleted file mode 100644 index 39dcebfa342f..000000000000 --- a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php +++ /dev/null @@ -1,28 +0,0 @@ - Date: Mon, 24 Jun 2024 18:42:49 -0400 Subject: [PATCH 26/31] add rotessa sdk --- .../src/Omnipay/Rotessa/AbstractClient.php | 21 +++++ .../src/Omnipay/Rotessa/ApiTrait.php | 41 ++++++++ .../src/Omnipay/Rotessa/ClientInterface.php | 11 +++ .../Omnipay/Rotessa/Exception/Exceptions.php | 43 +++++++++ .../src/Omnipay/Rotessa/Gateway.php | 74 +++++++++++++++ .../src/Omnipay/Rotessa/Http/Client.php | 82 ++++++++++++++++ .../Rotessa/Http/Response/Response.php | 32 +++++++ .../src/Omnipay/Rotessa/IsValidTypeTrait.php | 12 +++ .../Message/Request/AbstractRequest.php | 52 ++++++++++ .../Rotessa/Message/Request/BaseRequest.php | 93 ++++++++++++++++++ .../Request/DeleteTransactionSchedulesId.php | 18 ++++ .../Rotessa/Message/Request/GetCustomers.php | 14 +++ .../Message/Request/GetCustomersId.php | 19 ++++ .../Request/GetTransactionSchedulesId.php | 17 ++++ .../Message/Request/PatchCustomersId.php | 65 +++++++++++++ .../Request/PatchTransactionSchedulesId.php | 22 +++++ .../Rotessa/Message/Request/PostCustomers.php | 60 ++++++++++++ .../PostCustomersShowWithCustomIdentifier.php | 19 ++++ .../Request/PostTransactionSchedules.php | 31 ++++++ ...ionSchedulesCreateWithCustomIdentifier.php | 16 ++++ .../PostTransactionSchedulesUpdateViaPost.php | 24 +++++ .../Message/Request/RequestInterface.php | 10 ++ .../Message/Response/AbstractResponse.php | 16 ++++ .../Rotessa/Message/Response/BaseResponse.php | 44 +++++++++ .../Message/Response/ResponseInterface.php | 9 ++ .../Omnipay/Rotessa/Model/AbstractModel.php | 63 +++++++++++++ .../src/Omnipay/Rotessa/Model/BaseModel.php | 24 +++++ .../Omnipay/Rotessa/Model/CustomerModel.php | 94 +++++++++++++++++++ .../Rotessa/Model/CustomerPatchModel.php | 16 ++++ .../Omnipay/Rotessa/Model/ModelInterface.php | 8 ++ .../Model/TransactionScheduleModel.php | 84 +++++++++++++++++ .../Model/TransactionSchedulesIdBodyModel.php | 23 +++++ ...sactionSchedulesUpdateViaPostBodyModel.php | 24 +++++ .../src/Omnipay/Rotessa/Object/Address.php | 53 +++++++++++ .../Rotessa/Object/AuthorizationType.php | 28 ++++++ .../Rotessa/Object/BankAccountType.php | 28 ++++++ .../src/Omnipay/Rotessa/Object/Country.php | 33 +++++++ .../Omnipay/Rotessa/Object/CustomerType.php | 28 ++++++ .../src/Omnipay/Rotessa/Object/Frequency.php | 64 +++++++++++++ 39 files changed, 1415 insertions(+) create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Exception/Exceptions.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Gateway.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/AbstractRequest.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomersId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/AbstractResponse.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/BaseResponse.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/AbstractModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/ModelInterface.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionScheduleModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/BankAccountType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Country.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/CustomerType.php create mode 100644 app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Frequency.php diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php new file mode 100644 index 000000000000..c84a97322717 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/AbstractClient.php @@ -0,0 +1,21 @@ +default_parameters; + } + + public function setDefaultParameters(array $params) { + $this->default_parameters = $params; + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php new file mode 100644 index 000000000000..5fc947713f3a --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ApiTrait.php @@ -0,0 +1,41 @@ +createRequest('GetCustomers', [] ); + } + public function postCustomers(array $params) : RequestInterface { + return $this->createRequest('PostCustomers', $params ); + } + public function getCustomersId(array $params) : RequestInterface { + return $this->createRequest('GetCustomersId', $params ); + } + public function patchCustomersId(array $params) : RequestInterface { + return $this->createRequest('PatchCustomersId', $params ); + } + public function postCustomersShowWithCustomIdentifier(array $params) : RequestInterface { + return $this->createRequest('PostCustomersShowWithCustomIdentifier', $params ); + } + public function getTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('GetTransactionSchedulesId', $params ); + } + public function deleteTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('DeleteTransactionSchedulesId', $params ); + } + public function patchTransactionSchedulesId(array $params) : RequestInterface { + return $this->createRequest('PatchTransactionSchedulesId', $params ); + } + public function postTransactionSchedules(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedules', $params ); + } + public function postTransactionSchedulesCreateWithCustomIdentifier(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedulesCreateWithCustomIdentifier', $params ); + } + public function postTransactionSchedulesUpdateViaPost(array $params) : RequestInterface { + return $this->createRequest('PostTransactionSchedulesUpdateViaPost', $params ); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php new file mode 100644 index 000000000000..4d08fb0441f2 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/ClientInterface.php @@ -0,0 +1,11 @@ + 1234567890 ]; + + protected $test_mode = true; + + protected $api_key; + + public function getName() + { + return 'Rotessa'; + } + + public function getDefaultParameters() : array + { + return array_merge($this->default_parameters, array('api_key' => $this->api_key, 'test_mode' => $this->test_mode ) ); + } + + public function setTestMode($value) { + $this->test_mode = $value; + } + + public function getTestMode() { + return $this->test_mode; + } + + protected function createRequest($class_name, ?array $parameters = [] ) :RequestInterface { + $class = null; + $class_name = "Omnipay\\Rotessa\\Message\\Request\\$class_name"; + $parameters = $class_name::hasModel() ? (($parameters = ($class_name::getModel($parameters)))->validate() ? $parameters->jsonSerialize() : null ) : $parameters; + try { + $class = new $class_name($this->httpClient, $this->httpRequest, $this->getDefaultParameters() + $parameters ); + } catch (\Throwable $th) { + throw $th; + } + + return $class; + } + + function setApiKey($value) { + $this->api_key = $value; + } + + function getApiKey() { + return $this->api_key; + } + + function authorize(array $options = []) : RequestInterface { + return $this->postCustomers($options); + } + + function capture(array $options = []) : RequestInterface { + return array_key_exists('customer_id', $options)? $this->postTransactionSchedules($options) : $this->postTransactionSchedulesCreateWithCustomIdentifier($options) ; + } + + function updateCustomer(array $options) : RequestInterface { + return $this->patchCustomersId($options); + } + + function fetchTransaction($id = null) : RequestInterface { + return $this->getTransactionSchedulesId(compact('id')); + } + +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php new file mode 100644 index 000000000000..4c8ea0d29075 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Client.php @@ -0,0 +1,82 @@ +httpClient = $httpClient ?: HttpClientDiscovery::find(); + $this->requestFactory = $requestFactory ?: MessageFactoryDiscovery::find(); + parent::__construct($httpClient, $requestFactory); + } + + /** + * @param $method + * @param $uri + * @param array $headers + * @param string|array|resource|StreamInterface|null $body + * @param string $protocolVersion + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + public function request( + $method, + $uri, + array $headers = [], + $body = null, + $protocolVersion = '1.1' + ) { + return $this->sendRequest($method, $uri, $headers, $body, $protocolVersion); + + } + + /** + * @param RequestInterface $request + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + private function sendRequest( $method, + $uri, + array $headers = [], + $body = null, + $protocolVersion = '1.1') + { + + $response = null; + + try { + if( method_exists($this->httpClient, 'sendRequest')) + $response = $this->httpClient->sendRequest( $this->requestFactory->createRequest($method, $uri, $headers, $body, $protocolVersion)); + else $response = $this->httpClient->request($method, $uri, compact('body','headers')); + } catch (\Http\Client\Exception\NetworkException $networkException) { + throw new NetworkException($networkException->getMessage(), $request, $networkException); + } catch (\Exception $exception) { + throw new RequestException($exception->getMessage(), $request, $exception); + } + + return $response; + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php new file mode 100644 index 000000000000..8d665ac8546e --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Http/Response/Response.php @@ -0,0 +1,32 @@ +content, true) )) { + $data = $data['errors'][0]; + $this->reason_phrase = $data['error_message'] ; + $this->reason_code = $data['error_message'] ; + } + } + + public function getReasonPhrase() { + return $this->reason_phrase; + } + + public function getReasonCode() { + return $this->reason_code; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php new file mode 100644 index 000000000000..266ba3036d9d --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/IsValidTypeTrait.php @@ -0,0 +1,12 @@ +api_key = $value; + } + + public function getData() { + try { + if(empty($this->api_key)) throw new \Exception('No Api Key Found!'); + $this->validate( ...array_keys($data = $this->getParameters())); + } catch (\Throwable $th) { + throw new \Omnipay\Rotessa\Exception\ValidationException($th->getMessage() , 600, $th); + } + + return (array) $data; + } + + abstract public function sendData($data) : ResponseInterface; + + abstract protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = [] ); + + abstract protected function createResponse(array $data) : ResponseInterface; + + abstract public function getEndpointUrl(): string; + + public function getEndpoint() : string { + return $this->endpoint; + } + + public function getTestMode() { + return $this->test_mode; + } + + public function setTestMode($mode) { + $this->test_mode = $mode; + } + } \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php new file mode 100644 index 000000000000..4b68cf0aa2ff --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/BaseRequest.php @@ -0,0 +1,93 @@ +initialize($model); + } + + protected function sendRequest(string $method, string $endpoint, array $headers = [], array $data = []) + { + /** + * @param $method + * @param $uri + * @param array $headers + * @param string|resource|StreamInterface|null $body + * @param string $protocolVersion + * @return ResponseInterface + * @throws \Http\Client\Exception + */ + $response = $this->httpClient->request($method, $endpoint, $headers, json_encode($data) ) ; + $this->response = new Response ($response->getBody()->getContents(), $response->getStatusCode(), $response->getHeaders(), true); + } + + + protected function createResponse(array $data): ResponseInterface { + + return new BaseResponse($this, $data, $this->response->getStatusCode(), $this->response->getReasonPhrase()); + } + + protected function replacePlaceholder($string, $array) { + $pattern = "/\{([^}]+)\}/"; + $replacement = function($matches) use($array) { + $key = $matches[1]; + if (array_key_exists($key, $array)) { + return $array[$key]; + } else { + return $matches[0]; + } + }; + + return preg_replace_callback($pattern, $replacement, $string); + } + + public function sendData($data) :ResponseInterface { + $headers = [ + 'Content-Type' => 'application/json', + 'Accept' => 'application/json', + 'Authorization' => "Token token={$this->api_key}" + ]; + + $this->sendRequest( + $this->method, + $this->getEndpointUrl(), + $headers, + $data); + + return $this->createResponse(json_decode($this->response->getContent(), true)); + } + + public function getEndpoint() : string { + return $this->replacePlaceholder($this->endpoint, $this->getParameters()); + } + + public function getEndpointUrl() : string { + return sprintf('https://%s.%s/v%d%s',$this->test_mode ? self::ENVIRONMENT_SANDBOX : self::ENVIRONMENT_LIVE ,$this->base_url, $this->api_version, $this->getEndpoint()); + } + + public static function hasModel() : bool { + return (bool) static::$model; + } + + public static function getModel($parameters = []) { + $class_name = static::$model; + $class_name = "Omnipay\\Rotessa\\Model\\{$class_name}Model"; + return new $class_name($parameters); + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php new file mode 100644 index 000000000000..7c03c42b0dc6 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/DeleteTransactionSchedulesId.php @@ -0,0 +1,18 @@ +setParameter('id',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php new file mode 100644 index 000000000000..17ffde5355d9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetCustomers.php @@ -0,0 +1,14 @@ +setParameter('id',$value); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php new file mode 100644 index 000000000000..47578d06eb8b --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/GetTransactionSchedulesId.php @@ -0,0 +1,17 @@ +setParameter('id',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php new file mode 100644 index 000000000000..092e378b9fd5 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchCustomersId.php @@ -0,0 +1,65 @@ +setParameter('id',$value); + } + public function setCustomIdentifier(string $value) { + $this->setParameter('custom_identifier',$value); + } + public function setName(string $value) { + $this->setParameter('name',$value); + } + public function setEmail(string $value) { + $this->setParameter('email',$value); + } + public function setCustomerType(string $value) { + $this->setParameter('customer_type',$value); + } + public function setHomePhone(string $value) { + $this->setParameter('home_phone',$value); + } + public function setPhone(string $value) { + $this->setParameter('phone',$value); + } + public function setBankName(string $value) { + $this->setParameter('bank_name',$value); + } + public function setInstitutionNumber(string $value) { + $this->setParameter('institution_number',$value); + } + public function setTransitNumber(string $value) { + $this->setParameter('transit_number',$value); + } + public function setBankAccountType(string $value) { + $this->setParameter('bank_account_type',$value); + } + public function setAuthorizationType(string $value) { + $this->setParameter('authorization_type',$value); + } + public function setRoutingNumber(string $value) { + $this->setParameter('routing_number',$value); + } + public function setAccountNumber(string $value) { + $this->setParameter('account_number',$value); + } + public function setAddress(array $value) { + $this->setParameter('address',$value); + } + public function setTransactionSchedules(array $value) { + $this->setParameter('transaction_schedules',$value); + } + public function setFinancialTransactions(array $value) { + $this->setParameter('financial_transactions',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php new file mode 100644 index 000000000000..fa04b9f05da6 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PatchTransactionSchedulesId.php @@ -0,0 +1,22 @@ +setParameter('id',$value); + } + public function setAmount(int $value) { + $this->setParameter('amount',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php new file mode 100644 index 000000000000..a0c54fe65ca9 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomers.php @@ -0,0 +1,60 @@ +setParameter('id',$value); + } + public function setCustomIdentifier(string $value) { + $this->setParameter('custom_identifier',$value); + } + public function setName(string $value) { + $this->setParameter('name',$value); + } + public function setEmail(string $value) { + $this->setParameter('email',$value); + } + public function setCustomerType(string $value) { + $this->setParameter('customer_type',$value); + } + public function setHomePhone(string $value) { + $this->setParameter('home_phone',$value); + } + public function setPhone(string $value) { + $this->setParameter('phone',$value); + } + public function setBankName(string $value) { + $this->setParameter('bank_name',$value); + } + public function setInstitutionNumber(string $value = '') { + $this->setParameter('institution_number',$value); + } + public function setTransitNumber(string $value = '') { + $this->setParameter('transit_number',$value); + } + public function setBankAccountType(string $value) { + $this->setParameter('bank_account_type',$value); + } + public function setAuthorizationType(string $value = '') { + $this->setParameter('authorization_type',$value); + } + public function setRoutingNumber(string $value = '') { + $this->setParameter('routing_number',$value); + } + public function setAccountNumber(string $value) { + $this->setParameter('account_number',$value); + } + public function setAddress(array $value) { + $this->setParameter('address',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php new file mode 100644 index 000000000000..d590cb618526 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostCustomersShowWithCustomIdentifier.php @@ -0,0 +1,19 @@ +setParameter('custom_identifier',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php new file mode 100644 index 000000000000..80e28a7f5083 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedules.php @@ -0,0 +1,31 @@ +setParameter('customer_id',$value); + } + public function setProcessDate(string $value) { + $this->setParameter('process_date',$value); + } + public function setFrequency(string $value) { + $this->setParameter('frequency',$value); + } + public function setInstallments(int $value) { + $this->setParameter('installments',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php new file mode 100644 index 000000000000..fd5111dc9a74 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesCreateWithCustomIdentifier.php @@ -0,0 +1,16 @@ +setParameter('custom_identifier',$value); + } + +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php new file mode 100644 index 000000000000..e037c5b4d322 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/PostTransactionSchedulesUpdateViaPost.php @@ -0,0 +1,24 @@ +setParameter('id',$value); + } + public function setAmount(int $value) { + $this->setParameter('amount',$value); + } + public function setComment(string $value) { + $this->setParameter('comment',$value); + } + } diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php new file mode 100644 index 000000000000..cfbcf0095b24 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Request/RequestInterface.php @@ -0,0 +1,10 @@ +code = $code; + $this->message = $message; + } + + public function getData() { + return $this->getParameters(); + } + + public function getCode() { + return (int) $this->code; + } + + public function isSuccessful() { + return $this->code < 300; + } + + public function getMessage() { + return $this->message; + } + + protected function getParameters() { + return $this->data; + } + + public function getParameter(string $key) { + return $this->getParameters()[$key]; + } +} \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php new file mode 100644 index 000000000000..080eaab504b1 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Message/Response/ResponseInterface.php @@ -0,0 +1,9 @@ +required), array_filter($this->getParameters()) ); + if(!empty($required)) throw new ValidationException("Could not validate " . implode(",", array_keys($required)) ); + + return true; + } + + public function __get($key) { + return array_key_exists($key, $this->attributes) ? $this->getParameter($key) : null; + } + + public function __set($key, $value) { + if(array_key_exists($key, $this->attributes)) $this->setParameter($key, $value); + } + + public function __toString() : string { + return json_encode($this); + } + + public function toString() : string { + return $this->__toString(); + } + + public function __toArray() : array { + return $this->getParameters(); + } + + + public function toArray() : array { + return $this->__toArray(); + } + + public function initialize(array $params = []) { + $this->parameters = new ParameterBag; + $parameters = array_merge($this->defaults, $params); + if ($parameters) { + foreach ($this->attributes as $param => $type) { + $value = @$parameters[$param]; + if($value){ + settype($value, $type); + $this->setParameter($param, $value); + } + } + } + + return $this; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php new file mode 100644 index 000000000000..8064662068c4 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/BaseModel.php @@ -0,0 +1,24 @@ + "string" + ]; + protected $required = ['id']; + protected $defaults = ['id' => 0 ]; + + public function __construct($parameters = array()) { + $this->initialize($parameters); + } + + public function jsonSerialize() : array { + return array_intersect_key($this->toArray(), array_flip($this->required) ); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php new file mode 100644 index 000000000000..0fd67aea9441 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerModel.php @@ -0,0 +1,94 @@ + "string", + "custom_identifier" => "string", + "name" => "string", + "email" => "string", + "customer_type" => "string", + "home_phone" => "string", + "phone" => "string", + "bank_name" => "string", + "institution_number" => "string", + "transit_number" => "string", + "bank_account_type" => "string", + "authorization_type" => "string", + "routing_number" => "string", + "account_number" => "string", + "address" => "object", + "transaction_schedules" => "array", + "financial_transactions" => "array", + "active" => "bool" + ]; + + protected $defaults = ["active" => false,"customer_type" =>'Business',"bank_account_type" =>'Savings',"authorization_type" =>'Online',]; + protected $required = ["name","email","customer_type","home_phone","phone","bank_name","institution_number","transit_number","bank_account_type","authorization_type","routing_number","account_number","address",'custom_identifier']; + + public function validate() : bool { + try { + $country = $this->address->country; + if(!self::isValidCountry($country)) throw new \Exception("Invalid country!"); + + $this->required = array_diff($this->required, Country::isAmerican($country) ? ["institution_number", "transit_number"] : ["bank_account_type", "routing_number"]); + parent::validate(); + if(Country::isCanadian($country) ) { + if(!self::isValidTransitNumber($this->getParameter('transit_number'))) throw new \Exception("Invalid transit number!"); + if(!self::isValidInstitutionNumber($this->getParameter('institution_number'))) throw new \Exception("Invalid institution number!"); + } + if(!self::isValidCustomerType($this->getParameter('customer_type'))) throw new \Exception("Invalid customer type!"); + if(!self::isValidBankAccountType($this->getParameter('bank_account_type'))) throw new \Exception("Invalid bank account type!"); + if(!self::isValidAuthorizationType($this->getParameter('authorization_type'))) throw new \Exception("Invalid authorization type!"); + } catch (\Throwable $th) { + throw new ValidationException($th->getMessage()); + } + + return true; + } + + public static function isValidCountry(string $country ) : bool { + return Country::isValidCountryCode($country) || Country::isValidCountryName($country); + } + + public static function isValidTransitNumber(string $value ) : bool { + return strlen($value) == 5; + } + + public static function isValidInstitutionNumber(string $value ) : bool { + return strlen($value) == 3; + } + + public static function isValidCustomerType(string $value ) : bool { + return CustomerType::isValid($value); + } + + public static function isValidBankAccountType(string $value ) : bool { + return BankAccountType::isValid($value); + } + + public static function isValidAuthorizationType(string $value ) : bool { + return AuthorizationType::isValid($value); + } + + public function toArray() : array { + return [ 'address' => (array) $this->getParameter('address') ] + parent::toArray(); + } + + public function jsonSerialize() : array { + $address = (array) $this->getParameter('address'); + unset($address['country']); + + return compact('address') + parent::jsonSerialize(); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php new file mode 100644 index 000000000000..c2e51d50b135 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/CustomerPatchModel.php @@ -0,0 +1,16 @@ + "string", + "amount" => "float", + "comment" => "string", + "created_at" => "date", + "financial_transactions" => "array", + "frequency" => "string", + "installments" => "integer", + "next_process_date" => "date", + "process_date" => "date", + "updated_at" => "date", + "customer_id" => "string", + "custom_identifier" => "string", + ]; + + public const DATE_FORMAT = 'F j, Y'; + + protected $defaults = ["amount" =>0.00,"comment" =>' ',"financial_transactions" =>0,"frequency" =>'Once',"installments" =>1]; + + protected $required = ["amount","comment","frequency","installments","process_date"]; + + public function validate() : bool { + try { + parent::validate(); + if(!self::isValidDate($this->process_date)) throw new \Exception("Could not validate date "); + if(!self::isValidFrequency($this->frequency)) throw new \Exception("Invalid frequency"); + if(is_null($this->customer_id) && is_null($this->custom_identifier)) throw new \Exception("customer id or custom identifier is invalid"); + } catch (\Throwable $th) { + throw new ValidationException($th->getMessage()); + } + + return true; + } + + public function jsonSerialize() : array { + return ['customer_id' => $this->getParameter('customer_id'), 'custom_identifier' => $this->getParameter('custom_identifier') ] + parent::jsonSerialize() ; + } + + public function __toArray() : array { + return parent::__toArray() ; + } + + public function initialize(array $params = [] ) { + $o_params = array_intersect_key( + $params = array_intersect_key($params, $this->attributes), + ($attr = array_filter($this->attributes, fn($p) => $p != "date")) + ); + parent::initialize($o_params); + $d_params = array_diff_key($params, $attr); + array_walk($d_params, function($v,$k) { + $this->setParameter($k, self::formatDate( $v) ); + }, ); + + return $this; + } + + public static function isValidDate($date) : bool { + $d = DateTime::createFromFormat(self::DATE_FORMAT, $date); + // Check if the date is valid and matches the format + return $d && $d->format(self::DATE_FORMAT) === $date; + } + + public static function isValidFrequency($value) : bool { + return Frequency::isValid($value); + } + + protected static function formatDate($date) : string { + $d = new DateTime($date); + return $d->format(self::DATE_FORMAT); + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php new file mode 100644 index 000000000000..119ac03999cb --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesIdBodyModel.php @@ -0,0 +1,23 @@ + "int", + "comment" => "string", + ]; + + public const DATE_FORMAT = 'Y-m-d H:i:s'; + + private $_is_error = false; + + protected $defaults = ["amount" =>0,"comment" =>'0',]; + + protected $required = ["amount","comment",]; +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php new file mode 100644 index 000000000000..749ae2f6b967 --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Model/TransactionSchedulesUpdateViaPostBodyModel.php @@ -0,0 +1,24 @@ + "int", + "amount" => "int", + "comment" => "string", + ]; + + public const DATE_FORMAT = 'Y-m-d H:i:s'; + + private $_is_error = false; + + protected $defaults = ["amount" =>0,"comment" =>'0',]; + + protected $required = ["amount","comment",]; +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php new file mode 100644 index 000000000000..1c5952b112ef --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/Address.php @@ -0,0 +1,53 @@ + "string", + "address_2" => "string", + "city" => "string", + "id" => "int", + "postal_code" => "string", + "province_code" => "string", + "country" => "string" + ]; + + protected $required = ["address_1","address_2","city","postal_code","province_code",]; + + public function jsonSerialize() { + return array_intersect_key($this->getParameters(), array_flip($this->required)); + } + + public function getCountry() : string { + return $this->getParameter('country'); + } + + public function initialize(array $parameters) { + foreach($this->attributes as $param => $type) { + $value = @$parameters[$param] ; + settype($value, $type); + $value = $value ?? null; + $this->parameters->set($param, $value); + } + } + + public function __toArray() : array { + return $this->getParameters(); + } + + public function __toString() : string { + return $this->getFullAddress(); + } + + public function getFullAddress() :string { + $full_address = $this->getParameters(); + extract($full_address); + + return "$address_1 $address_2, $city, $postal_code $province_code, $country"; + } +} diff --git a/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php new file mode 100644 index 000000000000..39dcebfa342f --- /dev/null +++ b/app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/Object/AuthorizationType.php @@ -0,0 +1,28 @@ + Date: Mon, 24 Jun 2024 20:29:08 -0400 Subject: [PATCH 27/31] allow matching of any client contact --- app/PaymentDrivers/RotessaPaymentDriver.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index 1bdf61c8547d..8764e0ac57b9 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -121,10 +121,11 @@ class RotessaPaymentDriver extends BaseDriver $customers = collect($result->getData())->unique('email'); $client_emails = $customers->pluck('email')->all(); $company_id = $this->company_gateway->company->id; - $client_contacts = ClientContact::where('company_id', $company_id)->whereIn('email', $client_emails )->where('is_primary', 1 )->whereNull('deleted_at')->get(); + $client_contacts = ClientContact::where('company_id', $company_id)->whereIn('email', $client_emails )->whereNull('deleted_at')->get(); $client_contacts = $client_contacts->map(function($item, $key) use ($customers) { return array_merge([], (array) $customers->firstWhere("email", $item->email) , ['custom_identifier' => $item->client->number, 'identifier' => $item->client->number ]); } ); + $client_contacts->each( function($contact) use ($customers) { sleep(10); From f7c689bf3bc7a621c9c481ca5159b5b2bbe076aa Mon Sep 17 00:00:00 2001 From: karneaud Date: Wed, 26 Jun 2024 21:27:20 -0400 Subject: [PATCH 28/31] move componetn class to composer provider --- app/Providers/ComposerServiceProvider.php | 5 +++++ composer.json | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/Providers/ComposerServiceProvider.php b/app/Providers/ComposerServiceProvider.php index d548a3d997ce..300d88f87768 100644 --- a/app/Providers/ComposerServiceProvider.php +++ b/app/Providers/ComposerServiceProvider.php @@ -13,6 +13,7 @@ namespace App\Providers; use App\Http\ViewComposers\PortalComposer; use Illuminate\Support\ServiceProvider; +use Illuminate\Support\Facades\Blade; class ComposerServiceProvider extends ServiceProvider { @@ -24,6 +25,9 @@ class ComposerServiceProvider extends ServiceProvider public function boot() { view()->composer('portal.*', PortalComposer::class); + include_once app_path('Http/ViewComposers/RotessaComposer.php'); + include_once app_path("Http/ViewComposers/Components/RotessaComponents.php"); + Blade::componentNamespace('App\\Http\\ViewComposers\\Components', 'rotessa'); } /** @@ -34,5 +38,6 @@ class ComposerServiceProvider extends ServiceProvider public function register() { // + } } diff --git a/composer.json b/composer.json index 70e9c4ab6032..73d5cb88a644 100644 --- a/composer.json +++ b/composer.json @@ -132,7 +132,7 @@ "app/Helpers/Generic.php", "app/Helpers/ClientPortal.php" ], - "classmap": ["app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/","app/Http/ViewComposers/Components/RotessaComponents.php"] + "classmap": ["app/PaymentDrivers/Rotessa/vendor/karneaud/omnipay-rotessa/src/Omnipay/Rotessa/"] }, "autoload-dev": { "psr-4": { From eb3968a9ebfb39e3a6cef1ca229522de66c03541 Mon Sep 17 00:00:00 2001 From: karneaud Date: Wed, 26 Jun 2024 21:27:45 -0400 Subject: [PATCH 29/31] remove rotessa service provider --- app/Providers/RotessaServiceProvider.php | 20 ++------------------ config/app.php | 3 +-- 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/app/Providers/RotessaServiceProvider.php b/app/Providers/RotessaServiceProvider.php index 951789cdaa04..4f01a045dbf3 100644 --- a/app/Providers/RotessaServiceProvider.php +++ b/app/Providers/RotessaServiceProvider.php @@ -17,31 +17,15 @@ class RotessaServiceProvider extends BaseProvider public function boot(): void { include_once app_path('Http/ViewComposers/RotessaComposer.php'); - class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\BankTransfer"); - class_alias("App\\PaymentDrivers\\Rotessa\\PaymentMethod","App\\PaymentDrivers\\Rotessa\\Acss"); - $this->registerViews(); + $this->registerComponent(); } /** * Register views. */ - public function registerViews(): void + public function registerComponent(): void { - $viewPath = resource_path('views/portal/ninja2020/gateways/'.$this->moduleNameLower); - $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$viewPath]), $this->moduleNameLower); Blade::componentNamespace('App\\Http\\ViewComposers\\Components', $this->moduleNameLower); } - - private function getPublishableViewPaths(): array - { - $paths = []; - foreach (config('view.paths') as $path) { - if (is_dir($path.'/'.$this->moduleNameLower)) { - $paths[] = $path.'/'.$this->moduleNameLower; - } - } - - return $paths; - } } diff --git a/config/app.php b/config/app.php index 23dddaa63986..59b709d0a9b6 100644 --- a/config/app.php +++ b/config/app.php @@ -200,8 +200,7 @@ return [ App\Providers\MultiDBProvider::class, App\Providers\ClientPortalServiceProvider::class, App\Providers\NinjaTranslationServiceProvider::class, - App\Providers\StaticServiceProvider::class, - App\Providers\RotessaServiceProvider::class + App\Providers\StaticServiceProvider::class ], /* From f03142a8348bdad597af92931413a84c2e0bba46 Mon Sep 17 00:00:00 2001 From: karneaud Date: Wed, 26 Jun 2024 21:28:53 -0400 Subject: [PATCH 30/31] reference full blade path using render --- .../Components/RotessaComponents.php | 23 +++++++++++-------- app/Http/ViewComposers/RotessaComposer.php | 4 ++-- app/PaymentDrivers/Rotessa/PaymentMethod.php | 4 ++-- .../rotessa/components/account.blade.php | 2 +- .../rotessa/components/address.blade.php | 2 +- 5 files changed, 20 insertions(+), 15 deletions(-) diff --git a/app/Http/ViewComposers/Components/RotessaComponents.php b/app/Http/ViewComposers/Components/RotessaComponents.php index 2af96e9f0fd7..b984d0bb2339 100644 --- a/app/Http/ViewComposers/Components/RotessaComponents.php +++ b/app/Http/ViewComposers/Components/RotessaComponents.php @@ -5,18 +5,24 @@ namespace App\Http\ViewComposers\Components; use App\DataProviders\CAProvinces; use App\DataProviders\USStates; use Illuminate\View\Component; +use App\Models\ClientContact; use Illuminate\Support\Arr; use Illuminate\View\View; + // Contact Component class ContactComponent extends Component { - public array $contact; - - public function __construct(array $contact) { - $this->contact = $contact; - $this->attributes = $this->newAttributeBag(Arr::only($this->contact, $this->fields) ); + public function __construct(ClientContact $contact) { + $contact = collect($contact->client->contacts->firstWhere('is_primary', 1)->toArray())->merge([ + 'home_phone' =>$contact->client->phone, + 'custom_identifier' => $contact->client->number, + 'name' =>$contact->client->name, + 'id' => null + ] )->all(); + + $this->attributes = $this->newAttributeBag(Arr::only($contact, $this->fields) ); } private $fields = [ @@ -37,7 +43,7 @@ class ContactComponent extends Component public function render() { - return $this->view('rotessa::components.contact', $this->attributes->getAttributes(), $this->defaults ); + return render('gateways.rotessa.components.contact', array_merge($this->defaults, $this->attributes->getAttributes() ) ); } } @@ -75,8 +81,7 @@ class AddressComponent extends Component public function render() { - - return $this->view('rotessa::components.address', $this->attributes->getAttributes(), $this->defaults ); + return render('gateways.rotessa.components.address',array_merge( $this->defaults, $this->attributes->getAttributes() ) ); } } @@ -113,6 +118,6 @@ class AccountComponent extends Component public function render() { - return $this->view('rotessa::components.account', $this->attributes->getAttributes(), $this->defaults ); + return render('gateways.rotessa.components.account', array_merge($this->attributes->getAttributes(), $this->defaults) ); } } diff --git a/app/Http/ViewComposers/RotessaComposer.php b/app/Http/ViewComposers/RotessaComposer.php index 5501fac81207..493d955267b4 100644 --- a/app/Http/ViewComposers/RotessaComposer.php +++ b/app/Http/ViewComposers/RotessaComposer.php @@ -4,13 +4,13 @@ use Illuminate\Support\Facades\View; use App\DataProviders\CAProvinces; use App\DataProviders\USStates; -View::composer(['rotessa::components.address','rotessa::components.banks.US.bank','rotessa::components.dropdowns.country.US'], function ($view) { +View::composer(['*.rotessa.components.address','*.rotessa.components.banks.US.bank','*.rotessa.components.dropdowns.country.US'], function ($view) { $states = USStates::get(); $view->with('states', $states); }); // CAProvinces View Composer -View::composer(['rotessa::components.address','rotessa::components.banks.CA.bank','rotessa::components.dropdowns.country.CA'], function ($view) { +View::composer(['*.rotessa.components.address','*.rotessa.components.banks.CA.bank','*.rotessa.components.dropdowns.country.CA'], function ($view) { $provinces = CAProvinces::get(); $view->with('provinces', $provinces); }); \ No newline at end of file diff --git a/app/PaymentDrivers/Rotessa/PaymentMethod.php b/app/PaymentDrivers/Rotessa/PaymentMethod.php index 903b681f70fe..b52c2423bf7e 100755 --- a/app/PaymentDrivers/Rotessa/PaymentMethod.php +++ b/app/PaymentDrivers/Rotessa/PaymentMethod.php @@ -67,7 +67,7 @@ class PaymentMethod implements MethodInterface ]; $data['address'] = collect($data['client']->toArray())->merge(['country' => $data['client']->country->iso_3166_2 ])->all(); - return view('rotessa::bank_transfer.authorize', $data); + return render('gateways.rotessa.bank_transfer.authorize', $data ); } /** * Handle the authorization page for Rotessa. @@ -128,7 +128,7 @@ class PaymentMethod implements MethodInterface $data['frequency'] = Frequencies::getOnePayment(); $data['installments'] = 1; $data['invoice_nums'] = $data['invoices']->pluck('invoice_number')->join(', '); - return view('rotessa::bank_transfer.pay', $data ); + return render('gateways.rotessa.bank_transfer.pay', $data ); } /** diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php index c42672255b00..d39c2d88544e 100644 --- a/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/account.blade.php @@ -28,4 +28,4 @@ -@include("rotessa::components.banks.$country.bank", compact('bank_account_type','routing_number','institution_number','transit_number')) \ No newline at end of file +@include("portal.ninja2020.gateways.rotessa.components.banks.$country.bank", compact('bank_account_type','routing_number','institution_number','transit_number')) \ No newline at end of file diff --git a/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php b/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php index 2db721cd4e28..68cbb97c6a79 100644 --- a/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php +++ b/resources/views/portal/ninja2020/gateways/rotessa/components/address.blade.php @@ -59,4 +59,4 @@ - @include("rotessa::components.dropdowns.country.$country",compact('province_code')) \ No newline at end of file + @include("portal.ninja2020.gateways.rotessa.components.dropdowns.country.$country",compact('province_code')) \ No newline at end of file From 35d713a0b9cb9655d32b8ee82c82bdd7506a983d Mon Sep 17 00:00:00 2001 From: karneaud Date: Wed, 26 Jun 2024 21:29:08 -0400 Subject: [PATCH 31/31] use alias --- app/PaymentDrivers/RotessaPaymentDriver.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/PaymentDrivers/RotessaPaymentDriver.php b/app/PaymentDrivers/RotessaPaymentDriver.php index 8764e0ac57b9..6a40750a5ae4 100644 --- a/app/PaymentDrivers/RotessaPaymentDriver.php +++ b/app/PaymentDrivers/RotessaPaymentDriver.php @@ -24,10 +24,10 @@ use App\Utils\Traits\MakesHash; use App\Jobs\Util\SystemLogger; use App\PaymentDrivers\BaseDriver; use App\Models\ClientGatewayToken; -use App\PaymentDrivers\Rotessa\Acss; use Illuminate\Database\Eloquent\Builder; -use App\PaymentDrivers\Rotessa\BankTransfer; use App\PaymentDrivers\Rotessa\Resources\Customer; +use App\PaymentDrivers\Rotessa\PaymentMethod as Acss; +use App\PaymentDrivers\Rotessa\PaymentMethod as BankTransfer; class RotessaPaymentDriver extends BaseDriver {