diff --git a/.github/workflows/CODEOWNERS b/.github/workflows/CODEOWNERS
new file mode 100644
index 00000000..01a9909b
--- /dev/null
+++ b/.github/workflows/CODEOWNERS
@@ -0,0 +1,8 @@
+# Default reviewers
+* @ledgerleapllc @jinli111 @ledgerleap1
+
+# Reviewer for CICD related changes
+.github @bradjohnl
+ansible @bradjohnl
+
+
diff --git a/.github/workflows/dev_staging_sync.yml b/.github/workflows/dev_staging_sync.yml
new file mode 100644
index 00000000..2a08cf6e
--- /dev/null
+++ b/.github/workflows/dev_staging_sync.yml
@@ -0,0 +1,45 @@
+name: development to staging sync
+
+
+#Run workflow on successful merge to development
+on:
+ push:
+ branches:
+ - development
+
+
+jobs:
+ create-pull-request:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: tibdex/github-app-token@586e1a624db6a5a4ac2c53daeeded60c5e3d50fe
+ id: generate-token
+ with:
+ app_id: ${{ secrets.PRBOT_APP_ID }}
+ private_key: ${{ secrets.PRBOT_APP_PRIVATE_KEY }}
+
+ #Sync development branch to the staging branch to keep it updated
+ - name: Set up Node
+ uses: actions/setup-node@v1
+ with:
+ node-version: 12
+
+ - name: Opening pull request
+ id: pull
+ uses: tretuna/sync-branches@ea58ab6e406fd3ad016a064b31270bbb41127f41
+ with:
+ GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
+ FROM_BRANCH: "development"
+ TO_BRANCH: "staging"
+ REVIEWERS: '["ledgerleapllc"]'
+ CONTENT_COMPARISON: true
+ PULL_REQUEST_BODY: "This PR is created by the PR Bot to sync the development branch to the staging branch. Please check the content changes also on the development site if you want. You can feel free to ignore this or approve + merge it. If you merge, the prod deployment will start automatically. If you ignore it, it will get renewed the next time a new feature gets merged to the development branch."
+ PULL_REQUEST_TITLE: "Sync development to staging"
+
+ #Display the pull request URL:
+ - name: Display the pull request URL
+ run: |
+ echo "The pull request URL is: ${{ steps.pull.outputs.PULL_REQUEST_URL }}"
diff --git a/.github/workflows/laravel.yml b/.github/workflows/laravel.yml
index f5fdf629..43727d33 100644
--- a/.github/workflows/laravel.yml
+++ b/.github/workflows/laravel.yml
@@ -2,20 +2,20 @@ name: Laravel
on:
push:
- branches: [ master ]
+ branches: "*"
pull_request:
- branches: [ master ]
+ branches: "*"
jobs:
laravel-tests:
runs-on: ubuntu-latest
+ container:
+ image: kirschbaumdevelopment/laravel-test-runner:7.4
steps:
- - uses: shivammathur/setup-php@15c43e89cdef867065b0213be354c2841860869e
- with:
- php-version: '8.0'
- - uses: actions/checkout@v3
+ - name: Checkout
+ uses: actions/checkout@v3
- name: Copy .env
run: php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Install Dependencies
diff --git a/.github/workflows/staging_master_sync.yml b/.github/workflows/staging_master_sync.yml
new file mode 100644
index 00000000..256a7f45
--- /dev/null
+++ b/.github/workflows/staging_master_sync.yml
@@ -0,0 +1,45 @@
+name: staging to master sync
+
+
+#Run workflow on successful merge to staging
+on:
+ push:
+ branches:
+ - staging
+
+
+jobs:
+ create-pull-request:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: tibdex/github-app-token@586e1a624db6a5a4ac2c53daeeded60c5e3d50fe
+ id: generate-token
+ with:
+ app_id: ${{ secrets.PRBOT_APP_ID }}
+ private_key: ${{ secrets.PRBOT_APP_PRIVATE_KEY }}
+
+ #Sync staging branch to the master branch to keep it updated
+ - name: Set up Node
+ uses: actions/setup-node@v1
+ with:
+ node-version: 12
+
+ - name: Opening pull request
+ id: pull
+ uses: tretuna/sync-branches@ea58ab6e406fd3ad016a064b31270bbb41127f41
+ with:
+ GITHUB_TOKEN: ${{ steps.generate-token.outputs.token }}
+ FROM_BRANCH: "staging"
+ TO_BRANCH: "master"
+ REVIEWERS: '["ledgerleapllc"]'
+ CONTENT_COMPARISON: true
+ PULL_REQUEST_BODY: "This PR is created by the PR Bot to sync the staging branch to the master branch. Please check the content changes also on the staging site if you want. You can feel free to ignore this or approve + merge it. If you merge, the prod deployment will start automatically. If you ignore it, it will get renewed the next time a new feature gets merged to the staging branch."
+ PULL_REQUEST_TITLE: "Sync staging to master"
+
+ #Display the pull request URL:
+ - name: Display the pull request URL
+ run: |
+ echo "The pull request URL is: ${{ steps.pull.outputs.PULL_REQUEST_URL }}"
diff --git a/README.md b/README.md
index ff459eac..57dab767 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,7 @@ This is the backend repo of the portal. To see the frontend repo, visit https://
- PHP 7.4+
- MySql Ver 14.14 Distrib 5.7.37
- Laravel Framework 8.47.0
+ - Git Version 2+
## Setup
diff --git a/app/Console/Commands/CheckNodeStatus.php b/app/Console/Commands/CheckNodeStatus.php
index 5e5564b5..44a3e4a7 100644
--- a/app/Console/Commands/CheckNodeStatus.php
+++ b/app/Console/Commands/CheckNodeStatus.php
@@ -4,7 +4,8 @@
use App\Models\MonitoringCriteria;
use App\Models\User;
-
+use App\Models\UserAddress;
+use App\Models\NodeInfo;
use Carbon\Carbon;
use Illuminate\Console\Command;
@@ -66,7 +67,7 @@ public function handle()
$updateResponsiveness = MonitoringCriteria::where('type', 'update-responsiveness')->first();
$updateResponsivenessProbationStart = (float) $updateResponsiveness->probation_start;
if ($updateResponsiveness->given_to_correct_unit == 'Weeks') {
- $updateResponsivenessTime = (float)$updateResponsiveness->given_to_correct_value * 7 * 24;
+ $updateResponsivenessTime = (float) $updateResponsiveness->given_to_correct_value * 7 * 24;
} else if ($updateResponsiveness->given_to_correct_unit == 'Days') {
$updateResponsivenessTime = (float) $updateResponsiveness->given_to_correct_value * 24;
} else {
@@ -74,125 +75,204 @@ public function handle()
}
$now = Carbon::now('UTC');
- $users = User::where('role', 'member')
+ $users = User::with(['addresses', 'metric', 'nodeInfo', 'profile'])
+ ->where('role', 'member')
->where('banned', 0)
- ->with(['metric', 'nodeInfo', 'profile'])
->get();
-
+
foreach ($users as $user) {
$user->node_status = 'Online';
$user->save();
+ $addresses = $user->addresses ?? [];
$nodeInfo = $user->nodeInfo ? $user->nodeInfo : $user->metric;
- if (!$nodeInfo || !$user->node_verified_at || !$user->letter_verified_at || !$user->signature_request_id) {
+ if (
+ !$nodeInfo ||
+ !$addresses ||
+ count($addresses) == 0 ||
+ !$user->node_verified_at ||
+ !$user->letter_verified_at ||
+ !$user->signature_request_id
+ ) {
$user->node_status = null;
$user->save();
- } else if ($user->is_fail_node == 1) {
- $user->node_status = 'Offline';
- $user->save();
- } else if ($nodeInfo) {
- $nodeInfo->uptime = $nodeInfo->uptime ? $nodeInfo->uptime : 0;
- $nodeInfo->block_height_average = $nodeInfo->block_height_average ? $nodeInfo->block_height_average : 0;
- $nodeInfo->update_responsiveness = $nodeInfo->update_responsiveness ? $nodeInfo->update_responsiveness : 100;
- if (
- $nodeInfo->uptime >= $uptimeProbationStart &&
- $nodeInfo->block_height_average >= $blockHeightProbationStart &&
- $nodeInfo->update_responsiveness >= $updateResponsivenessProbationStart
- ) {
- $user->node_status = 'Online';
+ } else {
+ $hasNotFailNode = false;
+ foreach ($addresses as $address) {
+ $public_address_node = strtolower($address->public_address_node);
+ $nodeInfoAddress = NodeInfo::where('node_address', $public_address_node)->first();
+ if (!$nodeInfoAddress) {
+ $address->node_status = null;
+ $address->save();
+ }
+ if ($address->is_fail_node != 1) {
+ $hasNotFailNode = true;
+ }
+ }
+
+ if (!$hasNotFailNode) {
+ $user->node_status = 'Offline';
$user->save();
+ } else {
+ // Begin For Each
+ foreach ($addresses as $userAddress) {
+ $public_address_node = strtolower($userAddress->public_address_node);
+ $nodeInfoAddress = NodeInfo::where('node_address', $public_address_node)->first();
- $nodeInfo->uptime_time_start = null;
- $nodeInfo->uptime_time_end = null;
-
- $nodeInfo->block_height_average_time_start = null;
- $nodeInfo->block_height_average_time_end = null;
-
- $nodeInfo->update_responsiveness_time_start = null;
- $nodeInfo->update_responsiveness_time_end = null;
-
- $nodeInfo->save();
- }
- }
+ if ($nodeInfoAddress) {
+ $nodeInfoAddress->uptime = $nodeInfoAddress->uptime ? $nodeInfoAddress->uptime : 0;
+ $nodeInfoAddress->block_height_average = $nodeInfoAddress->block_height_average ? $nodeInfoAddress->block_height_average : 0;
+ $nodeInfoAddress->update_responsiveness = $nodeInfoAddress->update_responsiveness ? $nodeInfoAddress->update_responsiveness : 100;
+ if (
+ $nodeInfoAddress->uptime >= $uptimeProbationStart &&
+ $nodeInfoAddress->block_height_average >= $blockHeightProbationStart &&
+ $nodeInfoAddress->update_responsiveness >= $updateResponsivenessProbationStart
+ ) {
+ $userAddress->node_status = 'Online';
+ $userAddress->save();
- if ($user->profile && $user->profile->status == 'approved' && $nodeInfo) {
- $user->profile->extra_status = null;
- $user->profile->save();
+ $nodeInfoAddress->uptime_time_start = null;
+ $nodeInfoAddress->uptime_time_end = null;
- if ($nodeInfo->uptime < $uptimeProbationStart) {
- $user->profile->extra_status = 'On Probation';
- $nodeInfo->uptime_time_start = now();
- $nodeInfo->uptime_time_end = Carbon::now('UTC')->addHours($uptimeTime);
- }
+ $nodeInfoAddress->block_height_average_time_start = null;
+ $nodeInfoAddress->block_height_average_time_end = null;
- if ($nodeInfo->block_height_average < $blockHeightProbationStart) {
- $user->profile->extra_status = 'On Probation';
- $nodeInfo->block_height_average_time_start = now();
- $nodeInfo->block_height_average_time_end = Carbon::now('UTC')->addHours($blockHeightTime);
- }
+ $nodeInfoAddress->update_responsiveness_time_start = null;
+ $nodeInfoAddress->update_responsiveness_time_end = null;
- if ($nodeInfo->update_responsiveness < $updateResponsivenessProbationStart) {
- $user->profile->extra_status = 'On Probation';
- $nodeInfo->update_responsiveness_time_start = now();
- $nodeInfo->update_responsiveness_time_end = Carbon::now('UTC')->addHours($updateResponsivenessTime);
- }
+ $nodeInfoAddress->save();
+ }
+ }
- $user->profile->save();
- $nodeInfo->save();
+ if (
+ isset($user->profile) &&
+ $user->profile &&
+ isset($user->profile->status) &&
+ $user->profile->status == 'approved' &&
+ $nodeInfoAddress
+ ) {
+ $userAddress->extra_status = null;
+ $userAddress->save();
- if ($user->profile->extra_status == 'On Probation') {
- if ($nodeInfo->uptime_time_end <= $now && $nodeInfo->uptime < $uptimeProbationStart) {
- $user->profile->extra_status = 'Suspended';
+ if ($nodeInfoAddress->uptime < $uptimeProbationStart) {
+ $userAddress->extra_status = 'On Probation';
+
+ if(!$nodeInfoAddress->uptime_time_start) {
+ $nodeInfoAddress->uptime_time_start = now();
+ }
+
+ if(!$nodeInfoAddress->uptime_time_end) {
+ $nodeInfoAddress->uptime_time_end = Carbon::now('UTC')->addHours($uptimeTime);
+ }
+ }
+
+ if ($nodeInfoAddress->block_height_average < $blockHeightProbationStart) {
+ $userAddress->extra_status = 'On Probation';
+
+ if(!$nodeInfoAddress->block_height_average_time_start) {
+ $nodeInfoAddress->block_height_average_time_start = now();
+ }
+
+ if(!$nodeInfoAddress->block_height_average_time_end) {
+ $nodeInfoAddress->block_height_average_time_end = Carbon::now('UTC')->addHours($blockHeightTime);
+ }
+ }
+
+ if ($nodeInfoAddress->update_responsiveness < $updateResponsivenessProbationStart) {
+ $userAddress->extra_status = 'On Probation';
+
+ if(!$nodeInfoAddress->update_responsiveness_time_start) {
+ $nodeInfoAddress->update_responsiveness_time_start = now();
+ }
+
+ if(!$nodeInfoAddress->update_responsiveness_time_end) {
+ $nodeInfoAddress->update_responsiveness_time_end = Carbon::now('UTC')->addHours($updateResponsivenessTime);
+ }
+ }
+
+ $userAddress->save();
+ $nodeInfoAddress->save();
+
+ if ($userAddress->extra_status == 'On Probation') {
+ if ($nodeInfoAddress->uptime_time_end <= $now && $nodeInfoAddress->uptime < $uptimeProbationStart) {
+ $userAddress->extra_status = 'Suspended';
+ }
+ if ($nodeInfoAddress->block_height_average_time_end <= $now && $nodeInfoAddress->block_height_average < $blockHeightProbationStart) {
+ $userAddress->extra_status = 'Suspended';
+ }
+ if ($nodeInfoAddress->update_responsiveness_time_end <= $now && $nodeInfoAddress->update_responsiveness < $updateResponsivenessProbationStart) {
+ $userAddress->extra_status = 'Suspended';
+ }
+ $userAddress->save();
+ }
+ }
+
+ $inactive = (bool)($nodeInfoAddress->inactive ?? false);
+
+ if($inactive) {
+ $userAddress->node_status = 'Offline';
+ $userAddress->extra_status = 'Suspended';
+ $userAddress->save();
+ }
}
- if ($nodeInfo->block_height_average_time_end <= $now && $nodeInfo->block_height_average < $blockHeightProbationStart) {
- $user->profile->extra_status = 'Suspended';
+ // End For Each
+
+ // Begin For Each
+ $hasNotOfflineStatus = $hasNotSuspendedStatus = false;
+ foreach ($addresses as $userAddress) {
+ if ($userAddress->node_status != 'Offline') {
+ $hasNotOfflineStatus = true;
+ break;
+ }
}
- if ($nodeInfo->update_responsiveness_time_end <= $now && $nodeInfo->update_responsiveness < $updateResponsivenessProbationStart) {
- $user->profile->extra_status = 'Suspended';
+ foreach ($addresses as $userAddress) {
+ if ($userAddress->extra_status != 'Suspended') {
+ $hasNotSuspendedStatus = true;
+ break;
+ }
}
- $user->profile->save();
- }
- }
-
- /*
- if ($user->node_status != 'Probation' && $user->node_status != 'Pulled') {
- if ($nodeInfo->uptime < $uptimeProbationStart) {
- $user->node_status = 'Probation';
- $nodeInfo->uptime_time_start = now();
- $nodeInfo->uptime_time_end = Carbon::now('UTC')->addHours($uptimeTime);
- }
-
- if ($nodeInfo->block_height_average < $blockHeightProbationStart) {
- $user->node_status = 'Probation';
- $nodeInfo->block_height_average_time_start = now();
- $nodeInfo->block_height_average_time_end = Carbon::now('UTC')->addHours($blockHeightTime);
- }
- if ($nodeInfo->update_responsiveness < $updateResponsivenessProbationStart) {
- $user->node_status = 'Probation';
- $nodeInfo->update_responsiveness_time_start = now();
- $nodeInfo->update_responsiveness_time_end = Carbon::now('UTC')->addHours($updateResponsivenessTime);
- }
-
- $user->save();
- $nodeInfo->save();
- continue;
- }
+ if (!$hasNotOfflineStatus) {
+ $user->node_status = 'Offline';
+ $user->save();
+ } else {
+ foreach ($addresses as $userAddress) {
+ if ($userAddress->node_status == 'Online') {
+ $user->node_status = 'Online';
+ $user->save();
+ break;
+ }
+ }
+ if ($user->node_status != 'Online') {
+ $user->node_status = null;
+ $user->save();
+ }
+ }
- if ($user->node_status == 'Probation') {
- if ($nodeInfo->uptime_time_end <= $now && $nodeInfo->uptime < $uptimeProbationStart) {
- $user->node_status = 'Pulled';
- }
- if ($nodeInfo->block_height_average_time_end <= $now && $nodeInfo->block_height_average < $blockHeightProbationStart) {
- $user->node_status = 'Pulled';
- }
- if ($nodeInfo->update_responsiveness_time_end <= $now && $nodeInfo->update_responsiveness < $updateResponsivenessProbationStart) {
- $user->node_status = 'Pulled';
+ if (
+ !$hasNotSuspendedStatus &&
+ isset($user->profile) &&
+ $user->profile
+ ) {
+ $user->profile->extra_status = 'Suspended';
+ $user->profile->save();
+ } else if (isset($user->profile) && $user->profile) {
+ foreach ($addresses as $userAddress) {
+ if ($userAddress->extra_status == 'On Probation') {
+ $user->profile->extra_status = 'On Probation';
+ $user->save();
+ break;
+ }
+ }
+ if ($user->profile->extra_status != 'On Probation') {
+ $user->profile->extra_status = null;
+ $user->profile->save();
+ }
+ }
+ // End For Each
}
- $user->save();
}
- */
}
}
-}
+}
\ No newline at end of file
diff --git a/app/Console/Commands/MoveAddresses.php b/app/Console/Commands/MoveAddresses.php
new file mode 100644
index 00000000..934cf0d4
--- /dev/null
+++ b/app/Console/Commands/MoveAddresses.php
@@ -0,0 +1,73 @@
+whereNotNull('public_address_node')->get();
+ if ($users && count($users) > 0) {
+ foreach ($users as $user) {
+ $address = $user->public_address_node;
+ $userAddress = UserAddress::where('public_address_node', $address)->first();
+ if (!$userAddress) {
+ $userAddress = new UserAddress;
+ $userAddress->user_id = $user->id;
+ $userAddress->public_address_node = $address;
+ $userAddress->node_verified_at = $user->node_verified_at;
+ $userAddress->signed_file = $user->signed_file;
+ $userAddress->is_fail_node = $user->is_fail_node;
+ $userAddress->rank = $user->rank;
+ $userAddress->pending_node = $user->pending_node;
+ $userAddress->validator_fee = $user->validator_fee;
+ $userAddress->node_status = $user->node_status;
+ if ($user->profile && $user->profile->extra_status) {
+ $userAddress->extra_status = $user->profile->extra_status;
+ }
+ $userAddress->save();
+ }
+ $user->has_address = 1;
+ if ($user->node_verified_at) {
+ $user->has_verified_address = 1;
+ }
+ $user->save();
+ }
+ }
+ return 0;
+ }
+}
diff --git a/app/Console/Commands/NodeInfo.php b/app/Console/Commands/NodeInfo.php
index 7f416aea..1801a076 100644
--- a/app/Console/Commands/NodeInfo.php
+++ b/app/Console/Commands/NodeInfo.php
@@ -6,7 +6,7 @@
use App\Models\Node;
use App\Models\NodeInfo as ModelsNodeInfo;
use App\Models\User;
-
+use App\Models\UserAddress;
use App\Services\NodeHelper;
use Illuminate\Console\Command;
@@ -30,21 +30,11 @@ class NodeInfo extends Command
*/
protected $description = 'get node info';
- /**
- * Create a new command instance.
- *
- * @return void
- */
public function __construct()
{
parent::__construct();
}
-
- /**
- * Execute the console command.
- *
- * @return int
- */
+
public function handle()
{
$nodeHelper = new NodeHelper();
@@ -58,7 +48,6 @@ public function updateNode()
{
$nodes = Node::whereNotNull('protocol_version')->get();
$max_hight_block = $nodes->max('block_height');
-
$base_block = 10;
$versions = $nodes->pluck('protocol_version');
$versions = $versions->toArray();
@@ -75,16 +64,15 @@ public function updateNode()
$highestVersionNode = (end($versionsNodes));
if (version_compare($highestVersion, $highestVersionNode, '<')) {
- $user = User::where('public_address_node', $key)->first();
- if ($user) {
- $user->is_fail_node = 1;
- $user->node_status = 'Offline';
- $user->save();
+ $userAddress = UserAddress::where('public_address_node', $key)->first();
+ if ($userAddress) {
+ $userAddress->is_fail_node = 1;
+ $userAddress->node_status = 'Offline';
+ $userAddress->save();
}
}
- $totalResponsiveness = 0;
- $totalBlockHeight = 0;
+ $totalResponsiveness = $totalBlockHeight = 0;
$nodeInfo = ModelsNodeInfo::where('node_address', $key)->first();
if ($nodeInfo) {
@@ -123,6 +111,39 @@ public function updateNode()
$nodeInfo->save();
}
}
+
+ $users = User::with(['addresses'])
+ ->where('role', 'member')
+ ->where('banned', 0)
+ ->get();
+ if ($users && count($users) > 0) {
+ foreach ($users as $user) {
+ $addresses = $user->addresses ?? null;
+ if (!$addresses) {
+ $user->is_fail_node = 1;
+ $user->node_status = 'Offline';
+ $user->save();
+ } else if (count($addresses) > 0) {
+ $hasNotFailNode = $hasNotOfflineStatus = false;
+ foreach ($addresses as $address) {
+ if ($address->is_fail_node != 1) {
+ $hasNotFailNode = true;
+ }
+ if ($address->node_status != 'Offline') {
+ $hasNotOfflineStatus = true;
+ }
+ }
+ if (!$hasNotFailNode) {
+ $user->is_fail_node = 1;
+ $user->node_status = 'Offline';
+ $user->save();
+ } else if (!$hasNotOfflineStatus) {
+ $user->node_status = 'Offline';
+ $user->save();
+ }
+ }
+ }
+ }
}
public function updateUptime()
@@ -142,69 +163,64 @@ public function updateUptime()
public function updateRank()
{
- $slide_value_uptime = 20;
- $slide_value_update_responsiveness = 20;
- $slide_value_delegotors = 20;
- $slide_value_stake_amount = 20;
- $slide_delegation_rate = 20;
+ $slide_value_uptime = $slide_value_update_responsiveness = $slide_value_delegotors = $slide_value_stake_amount = $slide_delegation_rate = 20;
$max_uptime = Node::max('uptime');
$max_uptime = $max_uptime * 100;
$max_delegators = ModelsNodeInfo::max('delegators_count');
$max_stake_amount = ModelsNodeInfo::max('total_staked_amount');
- DB::table('users')->update(['rank' => null]);
-
- $users = User::with(['metric'])->where('role', 'member')
- ->leftJoin('node_info', 'users.public_address_node', '=', 'node_info.node_address')
- ->where('banned', 0)
- ->whereNotNull('users.public_address_node')
- ->select([
- 'users.*',
- 'node_info.delegation_rate',
- 'node_info.delegators_count',
- 'node_info.total_staked_amount',
- ])
- ->get();
-
- foreach ($users as $user) {
- $latest = Node::where('node_address', strtolower($user->public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
- if (!$latest) {
- $latest = new Node();
- }
- $delegation_rate = $user->delegation_rate ? $user->delegation_rate / 100 : 1;
- if (!$user->metric && !$user->nodeInfo) {
- $user->totalScore = null;
+ DB::table('user_addresses')->update(['rank' => null]);
+ $userAddresses = UserAddress::with(['user', 'user.metric', 'user.nodeInfo'])
+ ->leftJoin('node_info', 'user_addresses.public_address_node', '=', 'node_info.node_address')
+ ->select([
+ 'user_addresses.*',
+ 'node_info.delegation_rate',
+ 'node_info.delegators_count',
+ 'node_info.total_staked_amount',
+ ])
+ ->whereHas('user')
+ ->get();
+
+ foreach ($userAddresses as $userAddress) {
+ $latest = Node::where('node_address', strtolower($userAddress->public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
+ if (!$latest) $latest = new Node();
+ $delegation_rate = $userAddress->delegation_rate ? $userAddress->delegation_rate / 100 : 1;
+ if (!$userAddress->user->metric && !$userAddress->user->nodeInfo) {
+ $userAddress->totalScore = null;
continue;
}
$latest_uptime_node = isset($latest->uptime) ? $latest->uptime * 100 : null;
$latest_update_responsiveness_node = $latest->update_responsiveness ?? null;
- $metric = $user->metric;
- if (!$metric) {
- $metric = new Metric();
- }
+ $metric = $userAddress->user->metric;
+ if (!$metric) $metric = new Metric();
+
$latest_uptime_metric = $metric->uptime ? $metric->uptime : null;
$latest_update_responsiveness_metric = $metric->update_responsiveness ? $metric->update_responsiveness : null;
$latest_uptime = $latest_uptime_node ?? $latest_uptime_metric ?? 1;
$latest_update_responsiveness = $latest_update_responsiveness_node ?? $latest_update_responsiveness_metric ?? 1;
- $delegators_count = $user->delegators_count ? $user->nodeInfo->delegators_count : 0;
- $total_staked_amount = $user->total_staked_amount ? $user->nodeInfo->total_staked_amount : 0;
+ $delegators_count = $userAddress->delegators_count ? $userAddress->user->nodeInfo->delegators_count : 0;
+ $total_staked_amount = $userAddress->total_staked_amount ? $userAddress->user->nodeInfo->total_staked_amount : 0;
$uptime_score = ($slide_value_uptime * $latest_uptime) / 100;
$update_responsiveness_score = ($slide_value_update_responsiveness * $latest_update_responsiveness) / 100;
$dellegator_score = ($delegators_count / $max_delegators) * $slide_value_delegotors;
- $satke_amount_score = ($total_staked_amount / $max_stake_amount) * $slide_value_stake_amount;
+ $stake_amount_score = ($total_staked_amount / $max_stake_amount) * $slide_value_stake_amount;
$delegation_rate_score = ($slide_delegation_rate * (1 - $delegation_rate)) / 100;
- $totalScore = $uptime_score + $update_responsiveness_score + $dellegator_score + $satke_amount_score + $delegation_rate_score;
+ $totalScore = $uptime_score + $update_responsiveness_score + $dellegator_score + $stake_amount_score + $delegation_rate_score;
- $user->totalScore = $totalScore;
+ $userAddress->totalScore = $totalScore;
}
- $users = $users->sortByDesc('totalScore')->values();
- foreach ($users as $key => $user) {
- User::where('id', $user->id)->update(['rank' => $key + 1]);
+ $userAddresses = $userAddresses->sortByDesc('totalScore')->values();
+ foreach ($userAddresses as $key => $userAddress) {
+ UserAddress::where('id', $userAddress->id)->update(['rank' => $key + 1]);
+ $user = User::where('public_address_node', $userAddress->public_address_node)->first();
+ if ($user) {
+ $user->rank = $key + 1;
+ $user->save();
+ }
}
}
-
-}
+}
\ No newline at end of file
diff --git a/app/Console/Helper.php b/app/Console/Helper.php
index 11f414c5..f853cff8 100644
--- a/app/Console/Helper.php
+++ b/app/Console/Helper.php
@@ -11,18 +11,13 @@
use App\Models\User;
use Illuminate\Support\Facades\DB;
-use Illuminate\Support\Facades\Http;use Illuminate\Pagination\Paginator;
+use Illuminate\Support\Facades\Http;
+use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
class Helper
{
- /**
- * Acquire casper account info standard on a single valdator view basis
- *
- * @param string $vid valid validator ID
- * @return void automatically places retrieved account info standard data in DB by user's validator ID
- */
public static function getAccountInfoStandard($user)
{
$vid = $user->public_address_node ?? '';
@@ -30,16 +25,16 @@ public static function getAccountInfoStandard($user)
$pseudonym = $user->pseudonym ?? null;
$THIS_SEENA_API_KEY = getenv('SEENA_API_KEY');
-
- $response = Http::withHeaders([
+
+ $response = Http::timeout(5)->withHeaders([
'Authorization' => "token $THIS_SEENA_API_KEY",
])->withOptions([
'verify' => false,
- ])->get('https://seena.ledgerleap.com/account-info-standard?validator_id='.$vid);
+ ])->get('https://seena.ledgerleap.com/account-info-standard?validator_id=' . $vid);
try {
$json = json_decode($response);
- } catch (Exception $e) {
+ } catch (\Exception $e) {
$json = array();
}
@@ -48,35 +43,22 @@ public static function getAccountInfoStandard($user)
$blockchain_logo = $json->message->owner->branding->logo->png_256 ?? null;
$profile = Profile::where('user_id', $uid)->first();
-
- if($profile && $json) {
- if($blockchain_name) {
- $profile->blockchain_name = $blockchain_name;
- }
-
- if($blockchain_desc) {
- $profile->blockchain_desc = $blockchain_desc;
- }
-
- if(
- $blockchain_logo &&
- $user->avatar == null
- ) {
+
+ if ($profile && $json) {
+ if ($blockchain_name) $profile->blockchain_name = $blockchain_name;
+ if ($blockchain_desc) $profile->blockchain_desc = $blockchain_desc;
+ if ($blockchain_logo && $user->avatar == null) {
$user->avatar = $blockchain_logo;
$user->save();
}
-
+
$profile->save();
$shufti_profile = Shuftipro::where('user_id', $uid)->first();
- if(
- $shufti_profile &&
- $shufti_profile->status == 'approved' &&
- $pseudonym
- ) {
+ if ($shufti_profile && $shufti_profile->status == 'approved' && $pseudonym) {
$shuft_status = $shufti_profile->status;
$reference_id = $shufti_profile->reference_id;
- $hash = md5($pseudonym.$reference_id.$shuft_status);
+ $hash = md5($pseudonym . $reference_id . $shuft_status);
$profile->casper_association_kyc_hash = $hash;
$profile->save();
}
@@ -100,8 +82,10 @@ public static function getTokenPrice()
return $response->json();
}
- public static function getNodeInfo($user)
+ public static function getNodeInfo($user, $public_address_node = null)
{
+ if (!$public_address_node) $public_address_node = $user->public_address_node;
+
$max_update_responsiveness = DB::select("SELECT max(update_responsiveness) as max_update_responsiveness FROM
(
SELECT MAX(update_responsiveness) as update_responsiveness FROM metric
@@ -127,66 +111,61 @@ public static function getNodeInfo($user)
SELECT MAX(uptime) as uptime FROM node_info
) AS results
;");
- $max_uptime = $max_uptime[0]->max_uptime ?? 0;
+ $max_uptime = $max_uptime[0]->max_uptime ?? 0;
+
+ $latest = Node::where('node_address', strtolower($public_address_node))
+ ->whereNotnull('protocol_version')
+ ->orderBy('created_at', 'desc')
+ ->first();
- $latest = Node::where('node_address', strtolower($user->public_address_node))
- ->whereNotnull('protocol_version')
- ->orderBy('created_at', 'desc')
- ->first();
if (!$latest) {
$latest = new Node();
}
- $latest_block_height = $latest->block_height ?? null;
- $latest_update_responsiveness = $latest->update_responsiveness ?? null;
- $latest_peers = $latest->peers ?? null;
$metric = Metric::where('user_id', $user->id)->first();
+
if (!$metric) {
$metric = new Metric();
}
- $metric_uptime = $metric->uptime ?? null;
- $metric_block_height = $metric->block_height_average ? ($max_block_height - $metric->block_height_average) : null;
- $metric_update_responsiveness = $metric->update_responsiveness ?? null;
- $metric_peers = $metric->peers ?? null;
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
+ $metric_block_height = $metric->block_height_average ? ($max_block_height - $metric->block_height_average) : null;
+
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
+
if (!$nodeInfo) {
$nodeInfo = new NodeInfo();
}
- $latest_uptime = $nodeInfo->uptime ?? null;
- $nodeInfo_uptime = $nodeInfo->uptime ?? null;
- $nodeInfo_block_height = $nodeInfo->block_height ?? null;
- $nodeInfo_peers = $nodeInfo->peers ?? null;
- $nodeInfo_update_responsiveness = $nodeInfo->update_responsiveness ?? null;
- $metric->avg_uptime = $nodeInfo_uptime ?? $metric_uptime;
- $metric->avg_block_height_average = $nodeInfo_block_height ?? $metric_block_height;
- $metric->avg_update_responsiveness = $nodeInfo_update_responsiveness ?? $metric_update_responsiveness;
- $metric->avg_peers = $nodeInfo_peers ?? $metric_peers;
+ $metric->avg_uptime = $nodeInfo->uptime ?? $metric->uptime ?? null;
+ $metric->avg_block_height_average = $nodeInfo->block_height ?? $metric_block_height;
+ $metric->avg_update_responsiveness = $nodeInfo->update_responsiveness ?? $metric->update_responsiveness ?? null;
+ $metric->avg_peers = $nodeInfo->peers ?? $metric->peers ?? null;
$metric->max_peers = $max_peers;
$metric->max_update_responsiveness = $max_update_responsiveness;
$metric->max_block_height_average = $max_block_height;
$metric->max_uptime = $max_uptime;
- $metric->peers = $latest_peers ?? $metric_peers;
- $metric->update_responsiveness = $latest_update_responsiveness ?? $metric_update_responsiveness;
- $metric->block_height_average = $latest_block_height ?? $metric_block_height;
- $metric->uptime = $latest_uptime ? $latest_uptime : $metric_uptime;
+ $metric->peers = $latest->peers ?? $metric->peers ?? null;
+ $metric->update_responsiveness = $latest->update_responsiveness ?? $metric->update_responsiveness ?? null;
+ $metric->block_height_average = $latest->block_height ?? $metric_block_height;
+ $metric->uptime = $nodeInfo->uptime ?? $metric->uptime ?? null;
$monitoringCriteria = MonitoringCriteria::get();
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
$rank = $user->rank;
$delegators = 0;
$stake_amount = 0;
$self_staked_amount = 0;
$is_open_port = 0;
+
if ($nodeInfo) {
$delegators = $nodeInfo->delegators_count;
$stake_amount = $nodeInfo->total_staked_amount;
$self_staked_amount = $nodeInfo->self_staked_amount;
$is_open_port = $nodeInfo->is_open_port;
}
+
$mbs = NodeInfo::max('mbs');
$metric->mbs = $mbs;
$metric->rank = $rank;
@@ -199,15 +178,10 @@ public static function getNodeInfo($user)
return $metric;
}
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
public static function paginate($items, $perPage = 5, $page = null, $options = [])
{
$page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
$items = $items instanceof Collection ? $items : Collection::make($items);
return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
}
-}
+}
\ No newline at end of file
diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php
index d476379e..c6c45b75 100644
--- a/app/Console/Kernel.php
+++ b/app/Console/Kernel.php
@@ -47,7 +47,7 @@ protected function schedule(Schedule $schedule)
->everyThirtyMinutes()
->runInBackground();
$schedule->command('node-info')
- ->everyThirtyMinutes()
+ ->everyFifteenMinutes()
->runInBackground();
$schedule->command('refresh:address')
->everyFiveMinutes()
@@ -69,7 +69,6 @@ protected function schedule(Schedule $schedule)
protected function commands()
{
$this->load(__DIR__ . '/Commands');
-
require base_path('routes/console.php');
}
}
diff --git a/app/Helpers/helper.php b/app/Helpers/helper.php
index 6929b212..62044e23 100644
--- a/app/Helpers/helper.php
+++ b/app/Helpers/helper.php
@@ -6,14 +6,19 @@
function generateString($strength = 16)
{
- $permitted_chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $input_length = strlen($permitted_chars);
- $random_string = '';
- for ($i = 0; $i < $strength; $i++) {
- $random_character = $permitted_chars[mt_rand(0, $input_length - 1)];
- $random_string .= $random_character;
+ $seed = str_split(
+ 'ABCDEFGHJKLMNPQRSTUVWXYZ'.
+ '2345678923456789'
+ );
+ // dont use 0, 1, o, O, l, I
+ shuffle($seed);
+ $hash = '';
+
+ foreach(array_rand($seed, $strength) as $k) {
+ $hash .= $seed[$k];
}
- return $random_string;
+
+ return $hash;
}
}
diff --git a/app/Http/Controllers/Api/V1/AdminController.php b/app/Http/Controllers/Api/V1/AdminController.php
index 6e688fed..b64c2e38 100644
--- a/app/Http/Controllers/Api/V1/AdminController.php
+++ b/app/Http/Controllers/Api/V1/AdminController.php
@@ -37,6 +37,7 @@
use App\Models\ShuftiproTemp;
use App\Models\TokenPrice;
use App\Models\User;
+use App\Models\UserAddress;
use App\Models\VerifyUser;
use App\Models\Vote;
use App\Models\VoteResult;
@@ -80,17 +81,13 @@ public function getUsers(Request $request)
$status = 'Not Verified';
if ($user->profile && $user->profile->status == 'approved') {
$status = 'Verified';
- if ($user->profile->extra_status) {
+ if ($user->profile->extra_status)
$status = $user->profile->extra_status;
- }
}
$user->membership_status = $status;
}
- if ($sort_direction == 'desc') {
- $users = $users->sortByDesc($sort_key)->values();
- } else {
- $users = $users->sortBy($sort_key)->values();
- }
+ if ($sort_direction == 'desc') $users = $users->sortByDesc($sort_key)->values();
+ else $users = $users->sortBy($sort_key)->values();
$users = Helper::paginate($users, $limit, $request->page);
$users = $users->toArray();
$users['data'] = (collect($users['data'])->values());
@@ -100,17 +97,15 @@ public function getUsers(Request $request)
public function getUserDetail($id)
{
$user = User::where('id', $id)->first();
- if (!$user || $user->role == 'admin') {
+ if (!$user || $user->role == 'admin')
return $this->errorResponse(__('api.error.not_found'), Response::HTTP_NOT_FOUND);
- }
$user = $user->load(['profile', 'shuftipro', 'shuftiproTemp']);
-
+
$status = 'Not Verified';
if ($user->profile && $user->profile->status == 'approved') {
$status = 'Verified';
- if ($user->profile->extra_status) {
+ if ($user->profile->extra_status)
$status = $user->profile->extra_status;
- }
}
$user->membership_status = $status;
$user->metric = Helper::getNodeInfo($user);
@@ -123,19 +118,18 @@ public function infoDashboard(Request $request)
$timeframe_comments = $request->timeframe_comments ?? 'last_7days';
$timeframe_discussions = $request->timeframe_discussions ?? 'last_7days';
// last_24hs, last_7days, last_30days, last_year
- if ($timeframe_perk == 'last_24hs') {
+ if ($timeframe_perk == 'last_24hs')
$timeframe_perk = Carbon::now('UTC')->subHours(24);
- } else if ($timeframe_perk == 'last_30days') {
+ else if ($timeframe_perk == 'last_30days')
$timeframe_perk = Carbon::now('UTC')->subDays(30);
- } else if ($timeframe_perk == 'last_year') {
+ else if ($timeframe_perk == 'last_year')
$timeframe_perk = Carbon::now('UTC')->subYear();
- } else {
+ else
$timeframe_perk = Carbon::now('UTC')->subDays(7);
- }
- if ($timeframe_comments == 'last_24hs') {
+ if ($timeframe_comments == 'last_24hs')
$timeframe_comments = Carbon::now('UTC')->subHours(24);
- } else if ($timeframe_comments == 'last_30days') {
+ else if ($timeframe_comments == 'last_30days') {
$timeframe_comments = Carbon::now('UTC')->subDays(30);
} else if ($timeframe_comments == 'last_year') {
$timeframe_comments = Carbon::now('UTC')->subYear();
@@ -244,9 +238,7 @@ public function getIntakes(Request $request)
->orWhere('users.signature_request_id', null);
})
->where(function ($query) use ($search) {
- if ($search) {
- $query->where('users.email', 'like', '%' . $search . '%');
- }
+ if ($search) $query->where('users.email', 'like', '%' . $search . '%');
})
->orderBy('users.id', 'desc')
->paginate($limit);
@@ -289,7 +281,7 @@ public function submitBallot(Request $request)
$start = Carbon::createFromFormat("Y-m-d H:i:s", Carbon::now('UTC'), "UTC");
$now = Carbon::now('UTC');
$timeEnd = $start->addMinutes($mins);
-
+
$endTime = $request->end_date . ' ' . $request->end_time;
$endTimeCarbon = Carbon::createFromFormat('Y-m-d H:i:s', $endTime, 'EST');
$endTimeCarbon->setTimezone('UTC');
@@ -1178,9 +1170,8 @@ public function updateMonitoringCriteria($type, Request $request)
// 'system_check_value' => 'required|integer',
]);
- if ($validator->fails()) {
+ if ($validator->fails())
return $this->validateResponse($validator->errors());
- }
$record->warning_level = $request->warning_level;
$record->probation_start = $request->probation_start;
@@ -1204,9 +1195,7 @@ public function updateLockRules(Request $request, $id)
'is_lock' => 'required|boolean'
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
$rule = LockRules::where('id', $id)->first();
@@ -1222,7 +1211,6 @@ public function getLockRules()
->orderBy('id', 'ASC')->select(['id', 'screen', 'is_lock'])->get();
$ruleStatusIsPoor = LockRules::where('type', 'status_is_poor')
->orderBy('id', 'ASC')->select(['id', 'screen', 'is_lock'])->get();
-
$data = [
'kyc_not_verify' => $ruleKycNotVerify,
'status_is_poor' => $ruleStatusIsPoor,
@@ -1234,20 +1222,20 @@ public function getListNodes(Request $request)
{
$limit = $request->limit ?? 50;
$node_failing = $request->node_failing ?? '';
- $nodes = User::select([
- 'id as user_id',
- 'public_address_node',
- 'is_fail_node',
- 'rank',
+
+ $nodes = UserAddress::select([
+ 'user_addresses.user_id as user_id',
+ 'user_addresses.public_address_node as public_address_node',
+ 'user_addresses.is_fail_node as is_fail_node',
+ 'user_addresses.rank as rank',
])
- ->where('banned', 0)
- ->whereNotNull('public_address_node')
+ ->join('users', 'users.id', '=', 'user_addresses.user_id')
+ ->where('users.banned', 0)
+ ->whereNotNull('user_addresses.public_address_node')
->where(function ($query) use ($node_failing) {
- if ($node_failing == 1) {
- $query->where('is_fail_node', 1);
- }
+ if ($node_failing == 1) $query->where('user_addresses.is_fail_node', 1);
})
- ->orderBy('rank', 'asc')
+ ->orderBy('user_addresses.rank', 'asc')
->paginate($limit);
return $this->successResponse($nodes);
@@ -1259,17 +1247,6 @@ public function getGraphInfo(Request $request)
$user = Auth::user();
$graphDataDay = $graphDataWeek = $graphDataMonth = $graphDataYear = [];
- /*
- $graphData = [];
- $items = TokenPrice::orderBy('created_at', 'desc')->limit(100)->get();
- if ($items && count($items)) {
- foreach ($items as $item) {
- $name = strtotime($item->created_at);
- $graphData[$name] = number_format($item->price, 4);
- }
- }
- */
-
$timeDay = Carbon::now('UTC')->subHours(24);
$timeWeek = Carbon::now('UTC')->subDays(7);
$timeMonth = Carbon::now('UTC')->subDays(30);
@@ -1315,9 +1292,6 @@ public function getGraphInfo(Request $request)
]);
}
- /**
- * verify file casper singer
- */
public function uploadMembershipFile(Request $request)
{
try {
@@ -1326,9 +1300,8 @@ public function uploadMembershipFile(Request $request)
'file' => 'required|mimes:pdf,docx,doc,txt,rtf|max:100000',
]);
- if ($validator->fails()) {
+ if ($validator->fails())
return $this->validateResponse($validator->errors());
- }
$filenameWithExt = $request->file('file')->getClientOriginalName();
//Get just filename
@@ -1356,7 +1329,6 @@ public function uploadMembershipFile(Request $request)
'SourceFile' => $request->file('file')
]);
- // $ObjectURL = 'https://'.getenv('AWS_BUCKET').'.s3.amazonaws.com/'.$fileNameToStore;
$ObjectURL = $s3result['ObjectURL'] ?? getenv('SITE_URL') . '/not-found';
MembershipAgreementFile::where('id', '>', 0)->delete();
$membershipAgreementFile = new MembershipAgreementFile();
@@ -1376,4 +1348,4 @@ public function getMembershipFile()
$membershipAgreementFile = MembershipAgreementFile::first();
return $this->successResponse($membershipAgreementFile);
}
-}
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Api/V1/AuthController.php b/app/Http/Controllers/Api/V1/AuthController.php
index e13a9d31..78a9079f 100644
--- a/app/Http/Controllers/Api/V1/AuthController.php
+++ b/app/Http/Controllers/Api/V1/AuthController.php
@@ -11,14 +11,18 @@
use App\Http\Requests\Api\RegisterIndividualRequest;
use App\Http\Requests\Api\ResetPasswordRequest;
use App\Http\Requests\Api\SendResetPasswordMailRequeslRequest;
+
use App\Mail\LoginTwoFA;
use App\Mail\ResetPasswordMail;
use App\Mail\UserVerifyMail;
+
use App\Models\IpHistory;
use App\Models\User;
use App\Models\VerifyUser;
+
use App\Repositories\UserRepository;
use App\Repositories\VerifyUserRepository;
+
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\DB;
@@ -26,6 +30,7 @@
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Str;
+
use Laravel\Passport\Token;
class AuthController extends Controller
@@ -314,7 +319,6 @@ public function resendVerifyEmail(Request $request)
public function registerSubAdmin(Request $request)
{
-
$validator = Validator::make($request->all(), [
'first_name' => 'required|regex:/^[A-Za-z. ]{1,255}$/',
'last_name' => 'required|regex:/^[A-Za-z. ]{1,255}$/',
@@ -330,7 +334,7 @@ public function registerSubAdmin(Request $request)
if (!$user) {
return $this->errorResponse('There is no admin user with this email', Response::HTTP_BAD_REQUEST);
}
- $verify = VerifyUser::where('email', $request->email)->where('type', VerifyUser::TYPE_INVITE_ADMIN)->where('code', $request->code)->first();
+ $verify = VerifyUser::where('email', $request->email)->where('type', VerifyUser::TYPE_INVITE_ADMIN)->where('code', $request->code)->first();
if (!$verify) {
return $this->errorResponse('Fail register sub-amdin', Response::HTTP_BAD_REQUEST);
}
diff --git a/app/Http/Controllers/Api/V1/DiscussionController.php b/app/Http/Controllers/Api/V1/DiscussionController.php
index 91e8c286..af1c344a 100644
--- a/app/Http/Controllers/Api/V1/DiscussionController.php
+++ b/app/Http/Controllers/Api/V1/DiscussionController.php
@@ -3,20 +3,25 @@
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
+
use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Validator;
+use Illuminate\Http\Response;
+
use App\Repositories\UserRepository;
use App\Repositories\DiscussionRepository;
use App\Repositories\DiscussionCommentRepository;
use App\Repositories\DiscussionPinRepository;
use App\Repositories\DiscussionVoteRepository;
use App\Repositories\DiscussionRemoveNewRepository;
-use Illuminate\Support\Facades\Validator;
+
use App\Models\Discussion;
use App\Models\DiscussionComment;
use App\Models\DiscussionPin;
use App\Models\DiscussionRemoveNew;
+
use Carbon\Carbon;
-use Illuminate\Http\Response;
+
use App\Facades\Paginator;
class DiscussionController extends Controller
@@ -157,9 +162,11 @@ public function getDiscussion(Request $request, $id)
'discussion_votes.id as is_vote',
'discussion_votes.is_like as is_like',
])->first();
- $discussion->read = $discussion->read + 1;
- $discussion->save();
- $discussion->total_pinned = DiscussionPin::where('discussion_id', $id)->count();
+ if ($discussion) {
+ $discussion->read = $discussion->read + 1;
+ $discussion->save();
+ $discussion->total_pinned = DiscussionPin::where('discussion_id', $id)->count();
+ }
return $this->successResponse($discussion);
}
diff --git a/app/Http/Controllers/Api/V1/HellosignController.php b/app/Http/Controllers/Api/V1/HellosignController.php
index 38a14ff4..22dc9376 100644
--- a/app/Http/Controllers/Api/V1/HellosignController.php
+++ b/app/Http/Controllers/Api/V1/HellosignController.php
@@ -3,7 +3,9 @@
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
+
use App\Models\User;
+
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
diff --git a/app/Http/Controllers/Api/V1/InstallController.php b/app/Http/Controllers/Api/V1/InstallController.php
index 6639faa6..85214727 100644
--- a/app/Http/Controllers/Api/V1/InstallController.php
+++ b/app/Http/Controllers/Api/V1/InstallController.php
@@ -4,7 +4,9 @@
use App\Http\Controllers\Controller;
use App\Http\EmailerHelper;
+
use App\Mail\AdminAlert;
+
use App\Models\EmailerTriggerAdmin;
use App\Models\EmailerTriggerUser;
use App\Models\Setting;
diff --git a/app/Http/Controllers/Api/V1/MetricController.php b/app/Http/Controllers/Api/V1/MetricController.php
index f4a7bb09..709f3aef 100644
--- a/app/Http/Controllers/Api/V1/MetricController.php
+++ b/app/Http/Controllers/Api/V1/MetricController.php
@@ -9,6 +9,7 @@
use App\Models\Node;
use App\Models\NodeInfo;
use App\Models\User;
+use App\Models\UserAddress;
use App\Models\Setting;
use Illuminate\Http\Request;
@@ -20,56 +21,71 @@
class MetricController extends Controller
{
- public function getMetric()
+ public function getMetric(Request $request)
{
$user = auth()->user();
- $max_update_responsiveness = DB::select("SELECT max(update_responsiveness) as max_update_responsiveness FROM
+ $public_address_node = $request->get('public_address_node');
+
+ if (!$public_address_node) {
+ $public_address_node = $user->public_address_node;
+ }
+
+ $isTotal = (int) $request->get('isTotal');
+
+ $max_update_responsiveness = DB::select("
+ SELECT max(update_responsiveness) as max_update_responsiveness FROM
(
- SELECT MAX(update_responsiveness) as update_responsiveness FROM metric
- UNION
- SELECT MAX(update_responsiveness) as update_responsiveness FROM node_info
- ) AS results
- ;");
+ SELECT MAX(update_responsiveness) as update_responsiveness FROM metric
+ UNION
+ SELECT MAX(update_responsiveness) as update_responsiveness FROM node_info
+ ) AS results;"
+ );
$max_update_responsiveness = $max_update_responsiveness[0]->max_update_responsiveness ?? 0;
- $max_peers = DB::select("SELECT max(peers) as max_peers FROM
- (
- SELECT MAX(peers) as peers FROM metric
- UNION
- SELECT MAX(peers) as peers FROM node_info
- ) AS results
- ;");
+ $max_peers = DB::select("
+ SELECT max(peers) as max_peers FROM (
+ SELECT MAX(peers) as peers FROM metric
+ UNION
+ SELECT MAX(peers) as peers FROM node_info
+ ) AS results;"
+ );
$max_peers = $max_peers[0]->max_peers ?? 0;
$max_block_height = Node::max('block_height');
- $max_uptime = DB::select("SELECT max(uptime) as max_uptime FROM
- (
- SELECT MAX(uptime) as uptime FROM metric
- UNION
- SELECT MAX(uptime) as uptime FROM node_info
- ) AS results
- ;");
- $max_uptime = $max_uptime[0]->max_uptime ?? 0;
- $latest = Node::where('node_address', strtolower($user->public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
+ $max_uptime = DB::select("
+ SELECT max(uptime) as max_uptime FROM (
+ SELECT MAX(uptime) as uptime FROM metric
+ UNION
+ SELECT MAX(uptime) as uptime FROM node_info
+ ) AS results;"
+ );
+ $max_uptime = $max_uptime[0]->max_uptime ?? 0;
+ $latest = Node::where('node_address', strtolower($public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
+
if (!$latest) {
$latest = new Node();
}
+
$latest_block_height = $latest->block_height ?? null;
$latest_update_responsiveness = $latest->update_responsiveness ?? null;
$latest_peers = $latest->peers ?? null;
$metric = Metric::where('user_id', $user->id)->first();
+
if (!$metric) {
$metric = new Metric();
}
+
$metric_uptime = $metric->uptime ?? null;
$metric_block_height = $metric->block_height_average ? ($max_block_height - $metric->block_height_average) : null;
$metric_update_responsiveness = $metric->update_responsiveness ?? null;
$metric_peers = $metric->peers ?? null;
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
+
if (!$nodeInfo) {
- $nodeInfo = new NodeInfo();
- }
+ $nodeInfo = new NodeInfo();
+ }
+
$latest_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_block_height = $nodeInfo->block_height ?? null;
@@ -80,7 +96,7 @@ public function getMetric()
$metric->avg_block_height_average = $nodeInfo_block_height ?? $metric_block_height;
$metric->avg_update_responsiveness = $nodeInfo_update_responsiveness ?? $metric_update_responsiveness;
$metric->avg_peers = $nodeInfo_peers ?? $metric_peers;
-
+
$metric->max_peers = $max_peers;
$metric->max_update_responsiveness = $max_update_responsiveness;
$metric->max_block_height_average = $max_block_height;
@@ -89,31 +105,40 @@ public function getMetric()
$metric->peers = $latest_peers ?? $metric_peers;
$metric->update_responsiveness = $latest_update_responsiveness ?? $metric_update_responsiveness;
$metric->block_height_average = $latest_block_height ?? $metric_block_height;
- $metric->uptime = $latest_uptime ?? $metric_uptime;
+ $metric->uptime = $latest_uptime ?? $metric_uptime;
$monitoringCriteria = MonitoringCriteria::get();
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
+ $userAddress = UserAddress::where('public_address_node', strtolower($public_address_node))
+ ->where('user_id', $user->id)
+ ->first();
+
$rank = $user->rank;
- $totalCount = User::select([
- 'id as user_id',
- 'public_address_node',
- 'is_fail_node',
- 'rank',
- ])
- ->where('banned', 0)
- ->whereNotNull('public_address_node')
- ->get()
- ->count();
-
- $delegators = 0;
- $stake_amount = 0;
- $self_stake_amount = 0;
+
+ if ($userAddress) {
+ $rank = $userAddress->rank;
+ }
+
+ $totalCount = UserAddress::select([
+ 'users.id as user_id',
+ 'user_addresses.public_address_node',
+ 'user_addresses.is_fail_node',
+ 'user_addresses.rank'
+ ])
+ ->join('users', 'users.id', '=', 'user_addresses.user_id')
+ ->where('users.banned', 0)
+ ->whereNotNull('user_addresses.public_address_node')
+ ->get()
+ ->count();
+
+ $delegators = $stake_amount = $self_stake_amount = 0;
if ($nodeInfo) {
$delegators = $nodeInfo->delegators_count;
$stake_amount = $nodeInfo->total_staked_amount;
$self_stake_amount = $nodeInfo->self_staked_amount;
}
+
$mbs = NodeInfo::max('mbs');
$metric->mbs = $mbs;
$metric->rank = $rank;
@@ -125,12 +150,46 @@ public function getMetric()
$metric['monitoring_criteria'] = $monitoringCriteria;
$setting = Setting::where('name', 'peers')->first();
+
if ($setting) {
$metric['peers_setting'] = (int) $setting->value;
} else {
$metric['peers_setting'] = 0;
}
+ $addresses = UserAddress::where('user_id', $user->id)->get();
+ $metric['addresses'] = $addresses;
+
+ if ($isTotal) {
+ $tempRank = $stake_amount = $self_stake_amount = $delegators = 0;
+ if ($addresses && count($addresses) > 0) {
+ $tempRank = UserAddress::get()->count();
+ foreach ($addresses as $address) {
+ if ($tempRank > (int) $address->rank) {
+ $tempRank = (int) $address->rank;
+ }
+ }
+ }
+
+ if ($tempRank > 0) {
+ $metric->rank = $tempRank;
+ }
+
+ if ($addresses && count($addresses) > 0) {
+ foreach ($addresses as $address) {
+ $nodeInfo = NodeInfo::where('node_address', strtolower($address->public_address_node))->first();
+ if ($nodeInfo) {
+ $stake_amount += $nodeInfo->total_staked_amount;
+ $delegators += $nodeInfo->delegators_count;
+ $self_stake_amount += $nodeInfo->self_staked_amount;
+ }
+ }
+ }
+ $metric->delegators = $delegators;
+ $metric->stake_amount = $stake_amount;
+ $metric->self_stake_amount = $self_stake_amount;
+ }
+
return $this->successResponse($metric);
}
@@ -139,30 +198,21 @@ public function updateMetric(Request $request, $id)
$validator = Validator::make($request->all(), [
'uptime' => 'nullable|numeric|between:0,100',
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
$user = User::where('id', $id)->where('role', 'member')->first();
- if (!$user) {
- return $this->errorResponse('User not found', Response::HTTP_BAD_REQUEST);
- }
+ if (!$user) return $this->errorResponse('User not found', Response::HTTP_BAD_REQUEST);
+
$metric = Metric::where('user_id', $id)->first();
- if (!$metric) {
- $metric = new Metric();
- }
- if (isset($request->uptime) && $request->uptime != null) {
+ if (!$metric) $metric = new Metric();
+ if (isset($request->uptime) && $request->uptime != null)
$metric->uptime = $request->uptime;
- }
- if (isset($request->block_height_average) && $request->block_height_average != null) {
+ if (isset($request->block_height_average) && $request->block_height_average != null)
$metric->block_height_average = $request->block_height_average;
- }
- if (isset($request->update_responsiveness) && $request->update_responsiveness != null) {
+ if (isset($request->update_responsiveness) && $request->update_responsiveness != null)
$metric->update_responsiveness = $request->update_responsiveness;
- }
- if (isset($request->peers) && $request->peers != null) {
+ if (isset($request->peers) && $request->peers != null)
$metric->peers = $request->peers;
- }
$metric->user_id = $id;
$metric->save();
return $this->successResponse($metric);
@@ -171,60 +221,57 @@ public function updateMetric(Request $request, $id)
public function getMetricUser($id)
{
$user = User::find($id);
- if (!$user) {
- return $this->successResponse([]);
- }
+ if (!$user) return $this->successResponse([]);
$max_update_responsiveness = DB::select("SELECT max(update_responsiveness) as max_update_responsiveness FROM
(
SELECT MAX(update_responsiveness) as update_responsiveness FROM metric
UNION
SELECT MAX(update_responsiveness) as update_responsiveness FROM node_info
- ) AS results
- ;");
+ ) AS results;
+ ");
$max_update_responsiveness = $max_update_responsiveness[0]->max_update_responsiveness ?? 0;
- $max_peers = DB::select("SELECT max(peers) as max_peers FROM
- (
- SELECT MAX(peers) as peers FROM metric
- UNION
- SELECT MAX(peers) as peers FROM node_info
- ) AS results
- ;");
- $max_peers = $max_peers[0]->max_peers ?? 0;
+ $max_peers = DB::select("
+ SELECT max(peers) as max_peers FROM
+ (
+ SELECT MAX(peers) as peers FROM metric
+ UNION
+ SELECT MAX(peers) as peers FROM node_info
+ ) AS results;
+ ");
+ $max_peers = $max_peers[0]->max_peers ?? 0;
$max_block_height = Node::max('block_height');
- $max_uptime = DB::select("SELECT max(uptime) as max_uptime FROM
- (
- SELECT MAX(uptime) as uptime FROM metric
- UNION
- SELECT MAX(uptime) as uptime FROM node_info
- ) AS results
- ;");
- $max_uptime = $max_uptime[0]->max_uptime ?? 0;
+ $max_uptime = DB::select("
+ SELECT max(uptime) as max_uptime FROM
+ (
+ SELECT MAX(uptime) as uptime FROM metric
+ UNION
+ SELECT MAX(uptime) as uptime FROM node_info
+ ) AS results;
+ ");
+ $max_uptime = $max_uptime[0]->max_uptime ?? 0;
$latest = Node::where('node_address', strtolower($user->public_address_node))
- ->whereNotnull('protocol_version')
- ->orderBy('created_at', 'desc')
- ->first();
- if (!$latest) {
- $latest = new Node();
- }
+ ->whereNotnull('protocol_version')
+ ->orderBy('created_at', 'desc')
+ ->first();
+
+ if (!$latest) $latest = new Node();
$latest_block_height = $latest->block_height ?? null;
$latest_update_responsiveness = $latest->update_responsiveness ?? null;
$latest_peers = $latest->peers ?? null;
$metric = Metric::where('user_id', $user->id)->first();
- if (!$metric) {
- $metric = new Metric();
- }
+ if (!$metric) $metric = new Metric();
+
$metric_uptime = $metric->uptime ?? null;
$metric_block_height = $metric->block_height_average ? ($max_block_height - $metric->block_height_average) : null;
$metric_update_responsiveness = $metric->update_responsiveness ?? null;
$metric_peers = $metric->peers ?? null;
$nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
- if (!$nodeInfo) {
- $nodeInfo = new NodeInfo();
- }
+ if (!$nodeInfo) $nodeInfo = new NodeInfo();
+
$latest_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_block_height = $nodeInfo->block_height ?? null;
@@ -250,20 +297,19 @@ public function getMetricUser($id)
$nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
$rank = $user->rank;
- $totalCount = User::select([
- 'id as user_id',
- 'public_address_node',
- 'is_fail_node',
- 'rank',
- ])
- ->where('banned', 0)
- ->whereNotNull('public_address_node')
- ->get()
- ->count();
+
+ $totalCount = User::select([
+ 'id as user_id',
+ 'public_address_node',
+ 'is_fail_node',
+ 'rank',
+ ])
+ ->where('banned', 0)
+ ->whereNotNull('public_address_node')
+ ->get()
+ ->count();
- $delegators = 0;
- $stake_amount = 0;
- $self_stake_amount = 0;
+ $delegators = $stake_amount = $self_stake_amount = 0;
if ($nodeInfo) {
$delegators = $nodeInfo->delegators_count;
$stake_amount = $nodeInfo->total_staked_amount;
@@ -282,68 +328,65 @@ public function getMetricUser($id)
return $this->successResponse($metric);
}
- public function getMetricUserOld($id)
- {
- $metric = Metric::where('user_id', $id)->first();
- if (!$metric) {
- return $this->successResponse([]);
- }
- return $this->successResponse($metric);
- }
-
public function getMetricUserByNodeName($node)
{
$node = strtolower($node);
- $user = User::where('public_address_node', $node)->first();
- if ($user) {
- $max_update_responsiveness = DB::select("SELECT max(update_responsiveness) as max_update_responsiveness FROM
+ $userAddress = UserAddress::with('user')
+ ->has('user')
+ ->where('public_address_node', $node)
+ ->first();
+
+ if ($userAddress && isset($userAddress->user) && $userAddress->user) {
+ $user = $userAddress->user;
+ $public_address_node = strtolower($userAddress->public_address_node);
+
+ $max_update_responsiveness = DB::select("
+ SELECT max(update_responsiveness) as max_update_responsiveness FROM
(
SELECT MAX(update_responsiveness) as update_responsiveness FROM metric
UNION
SELECT MAX(update_responsiveness) as update_responsiveness FROM node_info
- ) AS results
- ;");
+ ) AS results;"
+ );
$max_update_responsiveness = $max_update_responsiveness[0]->max_update_responsiveness ?? 0;
- $max_peers = DB::select("SELECT max(peers) as max_peers FROM
- (
- SELECT MAX(peers) as peers FROM metric
- UNION
- SELECT MAX(peers) as peers FROM node_info
- ) AS results
- ;");
+ $max_peers = DB::select("
+ SELECT max(peers) as max_peers FROM
+ (
+ SELECT MAX(peers) as peers FROM metric
+ UNION
+ SELECT MAX(peers) as peers FROM node_info
+ ) AS results;"
+ );
$max_peers = $max_peers[0]->max_peers ?? 0;
$max_block_height = Node::max('block_height');
- $max_uptime = DB::select("SELECT max(uptime) as max_uptime FROM
- (
- SELECT MAX(uptime) as uptime FROM metric
- UNION
- SELECT MAX(uptime) as uptime FROM node_info
- ) AS results
- ;");
+ $max_uptime = DB::select("
+ SELECT max(uptime) as max_uptime FROM
+ (
+ SELECT MAX(uptime) as uptime FROM metric
+ UNION
+ SELECT MAX(uptime) as uptime FROM node_info
+ ) AS results;"
+ );
$max_uptime = $max_uptime[0]->max_uptime ?? 0;
- $latest = Node::where('node_address', strtolower($user->public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
- if (!$latest) {
- $latest = new Node();
- }
+ $latest = Node::where('node_address', strtolower($public_address_node))->whereNotnull('protocol_version')->orderBy('created_at', 'desc')->first();
+ if (!$latest) $latest = new Node();
+
$latest_block_height = $latest->block_height ?? null;
$latest_update_responsiveness = $latest->update_responsiveness ?? null;
$latest_peers = $latest->peers ?? null;
-
+
$metric = Metric::where('user_id', $user->id)->first();
- if (!$metric) {
- $metric = new Metric();
- }
+ if (!$metric) $metric = new Metric();
$metric_uptime = $metric->uptime ?? null;
$metric_block_height = $metric->block_height_average ? ($max_block_height - $metric->block_height_average) : null;
$metric_update_responsiveness = $metric->update_responsiveness ?? null;
$metric_peers = $metric->peers ?? null;
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
- if (!$nodeInfo) {
- $nodeInfo = new NodeInfo();
- }
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
+ if (!$nodeInfo) $nodeInfo = new NodeInfo();
+
$latest_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_uptime = $nodeInfo->uptime ?? null;
$nodeInfo_block_height = $nodeInfo->block_height ?? null;
@@ -362,16 +405,13 @@ public function getMetricUserByNodeName($node)
$metric->peers = $latest_peers ?? $metric_peers;
$metric->update_responsiveness = $latest_update_responsiveness ?? $metric_update_responsiveness;
- $metric->block_height_average = $latest_block_height ?? $metric_block_height;
+ $metric->block_height_average = $latest_block_height ?? $metric_block_height;
$metric->uptime = $latest_uptime ?? $metric_uptime;
$monitoringCriteria = MonitoringCriteria::get();
- $nodeInfo = NodeInfo::where('node_address', strtolower($user->public_address_node))->first();
- $rank = $user->rank;
- $delegators = 0;
- $stake_amount = 0;
- $self_stake_amount = 0;
- $is_open_port = 0;
+ $nodeInfo = NodeInfo::where('node_address', strtolower($public_address_node))->first();
+ $rank = $userAddress->rank;
+ $delegators = $stake_amount = $self_stake_amount = $is_open_port = 0;
if ($nodeInfo) {
$delegators = $nodeInfo->delegators_count;
$stake_amount = $nodeInfo->total_staked_amount;
@@ -390,4 +430,4 @@ public function getMetricUserByNodeName($node)
}
return $this->successResponse([]);
}
-}
+}
\ No newline at end of file
diff --git a/app/Http/Controllers/Api/V1/NotificationController.php b/app/Http/Controllers/Api/V1/NotificationController.php
index d1f5358b..fd270335 100644
--- a/app/Http/Controllers/Api/V1/NotificationController.php
+++ b/app/Http/Controllers/Api/V1/NotificationController.php
@@ -3,10 +3,13 @@
namespace App\Http\Controllers\Api\V1;
use App\Http\Controllers\Controller;
+
use App\Models\Notification;
use App\Models\NotificationView;
use App\Models\User;
+
use Carbon\Carbon;
+
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Validator;
diff --git a/app/Http/Controllers/Api/V1/UserController.php b/app/Http/Controllers/Api/V1/UserController.php
index e78acfc9..b86ed44f 100644
--- a/app/Http/Controllers/Api/V1/UserController.php
+++ b/app/Http/Controllers/Api/V1/UserController.php
@@ -36,6 +36,7 @@
use App\Models\Shuftipro;
use App\Models\ShuftiproTemp;
use App\Models\User;
+use App\Models\UserAddress;
use App\Models\VerifyUser;
use App\Models\Vote;
use App\Models\VoteResult;
@@ -54,6 +55,7 @@
use Carbon\Carbon;
+use Illuminate\Support\Facades\Http;
use Illuminate\Validation\Rule;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
@@ -75,23 +77,19 @@ class UserController extends Controller
private $verifyUserRepo;
private $profileRepo;
private $ownerNodeRepo;
+ public $failed_verification_response;
- /* Create a new controller instance.
- *
- * @param UserRepository $userRepo userRepo
- *
- * @return void
- */
public function __construct(
- UserRepository $userRepo,
- VerifyUserRepository $verifyUserRepo,
- ProfileRepository $profileRepo,
+ UserRepository $userRepo,
+ VerifyUserRepository $verifyUserRepo,
+ ProfileRepository $profileRepo,
OwnerNodeRepository $ownerNodeRepo
) {
$this->userRepo = $userRepo;
$this->verifyUserRepo = $verifyUserRepo;
$this->profileRepo = $profileRepo;
$this->ownerNodeRepo = $ownerNodeRepo;
+ $this->failed_verification_response = 'Failed verification';
}
public function getMemberCountInfo() {
@@ -102,16 +100,15 @@ public function getMemberCountInfo() {
$data['total'] = User::count();
$data['verified'] = User::join('profile', 'profile.user_id', '=', 'users.id')
- ->where('profile.status', 'approved')
- ->whereNotNull('users.public_address_node')
- ->get()
- ->count();
-
+ ->where('profile.status', 'approved')
+ ->whereNotNull('users.public_address_node')
+ ->get()
+ ->count();
return $this->successResponse($data);
}
// Get Verified Members
- public function getVerifiedMembers() {
+ public function getVerifiedMembers(Request $request) {
$data = [];
$limit = $request->limit ?? 50;
$user = auth()->user();
@@ -127,7 +124,6 @@ public function getVerifiedMembers() {
->where('profile.status', 'approved')
->whereNotNull('users.public_address_node')
->paginate($limit);
-
return $this->successResponse($data);
}
@@ -146,9 +142,7 @@ public function updateShuftiproStatus() {
$record = Shuftipro::where('reference_id', $reference_id)->first();
$recordTemp = ShuftiproTemp::where('reference_id', $reference_id)->first();
- if (!$recordTemp) {
- return;
- }
+ if (!$recordTemp) return;
if ($record) {
if (isset($data['event']) && $data['event'] == 'request.deleted') {
@@ -198,9 +192,6 @@ public function updateShuftiproStatus() {
}
}
- /**
- * change email
- */
public function changeEmail(ChangeEmailRequest $request)
{
try {
@@ -218,32 +209,24 @@ public function changeEmail(ChangeEmailRequest $request)
'created_at' => now()
]
);
- if ($userVerify) {
- Mail::to($request->email)->send(new UserVerifyMail($code));
- }
+ if ($userVerify) Mail::to($request->email)->send(new UserVerifyMail($code));
DB::commit();
return $this->metaSuccess();
} catch (\Exception $ex) {
return $this->errorResponse(__('api.error.internal_error'), Response::HTTP_INTERNAL_SERVER_ERROR);
}
}
- /**
- * Change password
- */
+
public function changePassword(ChangePasswordRequest $request)
{
$user = auth()->user();
- if (Hash::check($request->new_password, $user->password)) {
+ if (Hash::check($request->new_password, $user->password))
return $this->errorResponse(__('api.error.not_same_current_password'), Response::HTTP_BAD_REQUEST);
- }
$newPassword = bcrypt($request->new_password);
$user->update(['password' => $newPassword]);
return $this->metaSuccess();
}
- /**
- * Get user profile
- */
public function getProfile()
{
$user = auth()->user()->load(['profile', 'permissions', 'shuftipro', 'shuftiproTemp']);
@@ -252,18 +235,12 @@ public function getProfile()
return $this->successResponse($user);
}
- /**
- * loggout user
- */
public function logout()
{
auth()->user()->token()->revoke();
return $this->metaSuccess();
}
- /**
- * verify file casper singer
- */
public function uploadLetter(Request $request)
{
try {
@@ -277,18 +254,11 @@ public function uploadLetter(Request $request)
}
$user = auth()->user();
- $filenameWithExt = $request->file('file')->getClientOriginalName();
- //Get just filename
- $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
- // Get just ext
$extension = $request->file('file')->getClientOriginalExtension();
- // new filename hash
- $filenamehash = md5(Str::random(10) . '_' . (string)time());
- // Filename to store
- $fileNameToStore = $filenamehash . '.' . $extension;
+ $filenamehash = md5(Str::random(10).'_'.(string)time());
+ $fileNameToStore = $filenamehash.'.'.$extension;
- // S3 file upload
- $S3 = new S3Client([
+ $S3client = new S3Client([
'version' => 'latest',
'region' => getenv('AWS_DEFAULT_REGION'),
'credentials' => [
@@ -297,7 +267,7 @@ public function uploadLetter(Request $request)
],
]);
- $s3result = $S3->putObject([
+ $s3result = $S3client->putObject([
'Bucket' => getenv('AWS_BUCKET'),
'Key' => 'letters_of_motivation/'.$fileNameToStore,
'SourceFile' => $request->file('file')
@@ -316,9 +286,6 @@ public function uploadLetter(Request $request)
}
}
- /**
- * Send Hellosign Request
- */
public function sendHellosignRequest()
{
$user = auth()->user();
@@ -338,9 +305,7 @@ public function sendHellosignRequest()
'https://stage.membersbackend.casper.network/',
];
- if (in_array(env('APP_URL'), $whitelist)) {
- $request->enableTestMode();
- }
+ if (in_array(env('APP_URL'), $whitelist)) $request->enableTestMode();
$request->setTemplateId($template_id);
$request->setSubject('Member Agreement');
@@ -365,9 +330,8 @@ public function sendHellosignRequest()
$user->update(['signature_request_id' => $signature_request_id]);
$emailerData = EmailerHelper::getEmailerData();
- if ($user->letter_verified_at && $user->signature_request_id && $user->node_verified_at) {
+ if ($user->letter_verified_at && $user->signature_request_id && $user->node_verified_at)
EmailerHelper::triggerUserEmail($user->email, 'Congratulations', $emailerData, $user);
- }
return $this->successResponse([
'signature_request_id' => $signature_request_id,
'url' => $sign_url,
@@ -376,13 +340,46 @@ public function sendHellosignRequest()
return $this->errorResponse(__('Hellosign request fail'), Response::HTTP_BAD_REQUEST);
}
- /**
- * submit node address
- */
public function submitPublicAddress(SubmitPublicAddressRequest $request)
{
$user = auth()->user();
+ $address = strtolower($request->public_address);
+
+ $public_address_temp = (new ChecksumValidator())->do($address);
+ $public_address = strtolower($address);
+
+ $correct_checksum = (int) (new ChecksumValidator($public_address_temp))->do();
+ if (!$correct_checksum)
+ return $this->errorResponse(__('Please provide valid address'), Response::HTTP_BAD_REQUEST);
+
+ // User Check
+ $tempUser = User::where('public_address_node', $public_address)->first();
+ if ($tempUser && $tempUser->id != $user->id)
+ return $this->errorResponse(__('The address is already used by other user'), Response::HTTP_BAD_REQUEST);
+
+ // User Address Check
+ $tempUserAddress = UserAddress::where('public_address_node', $public_address)->first();
+ if ($tempUserAddress && $tempUserAddress->user_id != $user->id)
+ return $this->errorResponse(__('The address is already used by other user'), Response::HTTP_BAD_REQUEST);
+
+ if (!$tempUserAddress) {
+ $userAddress = new UserAddress;
+ $userAddress->user_id = $user->id;
+ $userAddress->public_address_node = $public_address;
+ $userAddress->save();
+ }
+
+ $user->update([
+ 'has_address' => 1,
+ 'public_address_node' => $public_address,
+ ]);
+
+ return $this->metaSuccess();
+ }
+ public function checkPublicAddress(SubmitPublicAddressRequest $request)
+ {
+ $user = auth()->user();
$address = strtolower($request->public_address);
$public_address_temp = (new ChecksumValidator())->do($address);
@@ -390,22 +387,63 @@ public function submitPublicAddress(SubmitPublicAddressRequest $request)
$correct_checksum = (int) (new ChecksumValidator($public_address_temp))->do();
if (!$correct_checksum) {
- return $this->errorResponse(__('Please provide valid address'), Response::HTTP_BAD_REQUEST);
+ return $this->errorResponse(
+ __('Please provide valid address'),
+ Response::HTTP_BAD_REQUEST
+ );
}
+ // User Check
$tempUser = User::where('public_address_node', $public_address)->first();
if ($tempUser) {
- return $this->errorResponse(__('The address is already used by other user'), Response::HTTP_BAD_REQUEST);
+ return $this->errorResponse(
+ __('The address is already used by other user'),
+ Response::HTTP_BAD_REQUEST
+ );
}
- $user->update(['public_address_node' => $public_address]);
+ // User Address Check
+ $tempUserAddress = UserAddress::where('public_address_node', $public_address)->first();
+ if ($tempUserAddress) {
+ return $this->errorResponse(
+ __('The address is already used by other user'),
+ Response::HTTP_BAD_REQUEST
+ );
+ }
return $this->metaSuccess();
}
- /**
- * submit node address
- */
+ public function submitPublicAddress2(SubmitPublicAddressRequest $request)
+ {
+ $user = auth()->user();
+ $address = strtolower($request->public_address);
+
+ $public_address_temp = (new ChecksumValidator())->do($address);
+ $public_address = strtolower($address);
+
+ $correct_checksum = (int) (new ChecksumValidator($public_address_temp))->do();
+ if (!$correct_checksum)
+ return $this->errorResponse(__('Please provide valid address'), Response::HTTP_BAD_REQUEST);
+
+ // User Check
+ $tempUser = User::where('public_address_node', $public_address)->first();
+ if ($tempUser)
+ return $this->errorResponse(__('The address is already used by other user'), Response::HTTP_BAD_REQUEST);
+
+ // User Address Check
+ $tempUserAddress = UserAddress::where('public_address_node', $public_address)->first();
+ if ($tempUserAddress)
+ return $this->errorResponse(__('The address is already used by other user'), Response::HTTP_BAD_REQUEST);
+
+ $userAddress = new UserAddress;
+ $userAddress->user_id = $user->id;
+ $userAddress->public_address_node = $public_address;
+ $userAddress->save();
+
+ return $this->metaSuccess();
+ }
+
public function getMessageContent()
{
$user = auth()->user();
@@ -418,16 +456,100 @@ public function getMessageContent()
}, $filename);
}
- /**
- * verify file casper singer
- */
+ public function verifyFileCasperSigner2(VerifyFileCasperSignerRequest $request)
+ {
+ try {
+ $casperSigVerify = new CasperSigVerify();
+ $user = auth()->user();
+ $message = $user->message_content;
+ $public_validator_key = strtolower($request->address);
+
+ $userRecord = User::where('public_address_node', $public_validator_key)->first();
+ $userAddress = UserAddress::where('public_address_node', $public_validator_key)->first();
+
+ if ($userRecord || $userAddress) {
+ return $this->errorResponse(
+ __($this->failed_verification_response),
+ Response::HTTP_BAD_REQUEST
+ );
+ }
+
+ $file = $request->file;
+ $name = $file->getClientOriginalName();
+ $hexstring = $file->get();
+
+ if ($hexstring && $name == 'signature') {
+ $verified = $casperSigVerify->verify(
+ trim($hexstring),
+ $public_validator_key,
+ $message
+ );
+
+ if ($verified) {
+ $filenamehash = md5(Str::random(10) . '_' . (string)time());
+
+ $S3 = new S3Client([
+ 'version' => 'latest',
+ 'region' => getenv('AWS_DEFAULT_REGION'),
+ 'credentials' => [
+ 'key' => getenv('AWS_ACCESS_KEY_ID'),
+ 'secret' => getenv('AWS_SECRET_ACCESS_KEY'),
+ ],
+ ]);
+
+ $s3result = $S3->putObject([
+ 'Bucket' => getenv('AWS_BUCKET'),
+ 'Key' => 'signatures/' . $filenamehash,
+ 'SourceFile' => $request->file('file')
+ ]);
+
+ $ObjectURL = $s3result['ObjectURL'] ?? getenv('SITE_URL').'/not-found';
+
+ $userAddress = new UserAddress;
+ $userAddress->user_id = $user->id;
+ $userAddress->public_address_node = $public_validator_key;
+ $userAddress->signed_file = $ObjectURL;
+ $userAddress->node_verified_at = now();
+ $userAddress->save();
+
+ $emailerData = EmailerHelper::getEmailerData();
+
+ EmailerHelper::triggerUserEmail(
+ $user->email,
+ 'Your Node is Verified',
+ $emailerData,
+ $user,
+ $userAddress
+ );
+ return $this->metaSuccess();
+ } else {
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST);
+ }
+ }
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST);
+ } catch (\Exception $ex) {
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST, $ex->getMessage());
+ }
+ }
+
public function verifyFileCasperSigner(VerifyFileCasperSignerRequest $request)
{
try {
$casperSigVerify = new CasperSigVerify();
$user = auth()->user();
$message = $user->message_content;
- $public_validator_key = strtolower($user->public_address_node);
+ $public_validator_key = strtolower($request->address);
+
+ $userRecord = User::where('id', $user->id)
+ ->where('public_address_node', $public_validator_key)
+ ->first();
+ $userAddress = UserAddress::where('user_id', $user->id)
+ ->where('public_address_node', $public_validator_key)
+ ->first();
+ if (!$userRecord || !$userAddress) {
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST);
+ }
+
$file = $request->file;
$name = $file->getClientOriginalName();
@@ -439,7 +561,6 @@ public function verifyFileCasperSigner(VerifyFileCasperSignerRequest $request)
$public_validator_key,
$message
);
- // $verified = true;
if ($verified) {
$filenamehash = md5(Str::random(10) . '_' . (string)time());
@@ -455,36 +576,37 @@ public function verifyFileCasperSigner(VerifyFileCasperSignerRequest $request)
$s3result = $S3->putObject([
'Bucket' => getenv('AWS_BUCKET'),
- 'Key' => 'signatures/'.$filenamehash,
+ 'Key' => 'signatures/' . $filenamehash,
'SourceFile' => $request->file('file')
]);
- // $ObjectURL = 'https://'.getenv('AWS_BUCKET').'.s3.amazonaws.com/signatures/'.$filenamehash;
$ObjectURL = $s3result['ObjectURL'] ?? getenv('SITE_URL').'/not-found';
+
$user->signed_file = $ObjectURL;
+ $user->has_verified_address = 1;
$user->node_verified_at = now();
$user->save();
+
+ $userAddress->signed_file = $ObjectURL;
+ $userAddress->node_verified_at = now();
+ $userAddress->save();
+
$emailerData = EmailerHelper::getEmailerData();
EmailerHelper::triggerUserEmail($user->email, 'Your Node is Verified', $emailerData, $user);
-
- if ($user->letter_verified_at && $user->signature_request_id && $user->node_verified_at) {
+ if ($user->letter_verified_at && $user->signature_request_id && $user->node_verified_at)
EmailerHelper::triggerUserEmail($user->email, 'Congratulations', $emailerData, $user);
- }
return $this->metaSuccess();
} else {
- return $this->errorResponse(__('Failed verification'), Response::HTTP_BAD_REQUEST);
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST);
}
}
- return $this->errorResponse(__('Failed verification'), Response::HTTP_BAD_REQUEST);
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST);
} catch (\Exception $ex) {
- return $this->errorResponse(__('Failed verification'), Response::HTTP_BAD_REQUEST, $ex->getMessage());
+ return $this->errorResponse(__($this->failed_verification_response), Response::HTTP_BAD_REQUEST, $ex->getMessage());
}
}
- /**
- * submit KYC
- */
public function functionSubmitKYC(SubmitKYCRequest $request)
{
$user = auth()->user();
@@ -502,9 +624,6 @@ public function functionSubmitKYC(SubmitKYCRequest $request)
return $this->metaSuccess();
}
- /**
- * verify owner node
- */
public function verifyOwnerNode(Request $request)
{
$user = auth()->user();
@@ -515,9 +634,6 @@ public function verifyOwnerNode(Request $request)
return $this->metaSuccess();
}
- /**
- * get Owner nodes
- */
public function getOwnerNodes()
{
$user = auth()->user();
@@ -525,11 +641,8 @@ public function getOwnerNodes()
foreach ($owners as $owner) {
$email = $owner->email;
$userOwner = User::where('email', $email)->first();
- if ($userOwner) {
- $owner->kyc_verified_at = $userOwner->kyc_verified_at;
- } else {
- $owner->kyc_verified_at = null;
- }
+ if ($userOwner) $owner->kyc_verified_at = $userOwner->kyc_verified_at;
+ else $owner->kyc_verified_at = null;
}
$data = [];
$data['kyc_verified_at'] = $user->kyc_verified_at;
@@ -550,9 +663,8 @@ public function resendEmailOwnerNodes(ResendEmailRequest $request)
$resetUrl = $url . '/register-type';
Mail::to($email)->send(new AddNodeMail($resetUrl));
}
- } else {
+ } else
return $this->errorResponse('Email does not exist', Response::HTTP_BAD_REQUEST);
- }
return $this->successResponse(null);
}
@@ -564,9 +676,7 @@ public function saveShuftiproTemp(Request $request)
$validator = Validator::make($request->all(), [
'reference_id' => 'required'
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
$user_id = $user->id;
$reference_id = $request->reference_id;
@@ -589,9 +699,7 @@ public function deleteShuftiproTemp(Request $request)
$validator = Validator::make($request->all(), [
'reference_id' => 'required'
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
$user_id = $user->id;
$reference_id = $request->reference_id;
@@ -615,9 +723,7 @@ public function updateShuftiProTemp(Request $request)
$validator = Validator::make($request->all(), [
'reference_id' => 'required'
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
$user_id = $user->id;
$reference_id = $request->reference_id;
@@ -627,8 +733,8 @@ public function updateShuftiProTemp(Request $request)
$profile->save();
}
$record = ShuftiproTemp::where('user_id', $user_id)
- ->where('reference_id', $reference_id)
- ->first();
+ ->where('reference_id', $reference_id)
+ ->first();
if ($record) {
$record->status = 'booked';
$record->save();
@@ -649,15 +755,11 @@ public function getVotes(Request $request)
if (!$sort_key) $sort_key = 'ballot.id';
if (!$sort_direction) $sort_direction = 'desc';
- if ($status != 'active' && $status != 'finish') {
+ if ($status != 'active' && $status != 'finish')
return $this->errorResponse('Paramater invalid (status is active or finish)', Response::HTTP_BAD_REQUEST);
- }
- if ($status == 'active') {
- $query = Ballot::where('status', 'active');
- } else {
- $query = Ballot::where('status', '<>', 'active');
- }
+ if ($status == 'active') $query = Ballot::where('status', 'active');
+ else $query = Ballot::where('status', '<>', 'active');
$data = $query->with('vote')->orderBy($sort_key, $sort_direction)->paginate($limit);
return $this->successResponse($data);
@@ -668,9 +770,8 @@ public function getVoteDetail($id)
{
$user = auth()->user();
$ballot = Ballot::with(['vote', 'voteResults.user', 'files'])->where('id', $id)->first();
- if (!$ballot) {
+ if (!$ballot)
return $this->errorResponse('Not found ballot', Response::HTTP_BAD_REQUEST);
- }
foreach ($ballot->files as $file) {
$ballotFileView = BallotFileView::where('ballot_file_id', $file->id)->where('user_id', $user->id)->first();
$file->is_viewed = $ballotFileView ? 1 : 0;
@@ -684,18 +785,14 @@ public function vote($id, Request $request)
{
$user = auth()->user();
$vote = $request->vote;
- if (!$vote || ($vote != 'for' && $vote != 'against')) {
+ if (!$vote || ($vote != 'for' && $vote != 'against'))
return $this->errorResponse('Paramater invalid (vote is for or against)', Response::HTTP_BAD_REQUEST);
- }
$ballot = Ballot::where('id', $id)->first();
- if (!$ballot) {
- return $this->errorResponse('Not found ballot', Response::HTTP_BAD_REQUEST);
- }
+ if (!$ballot) return $this->errorResponse('Not found ballot', Response::HTTP_BAD_REQUEST);
$voteResult = VoteResult::where('user_id', $user->id)->where('ballot_id', $ballot->id)->first();
if ($voteResult) {
- if ($vote == $voteResult->type) {
- return $this->metaSuccess();
- } else {
+ if ($vote == $voteResult->type) return $this->metaSuccess();
+ else {
$voteResult->type = $vote;
$voteResult->updated_at = now();
if ($vote == 'for') {
@@ -716,11 +813,10 @@ public function vote($id, Request $request)
$voteResult->vote_id = $ballot->vote->id;
$voteResult->type = $vote;
$voteResult->save();
- if ($vote == 'for') {
+ if ($vote == 'for')
$ballot->vote->for_value = $ballot->vote->for_value + 1;
- } else {
+ else
$ballot->vote->against_value = $ballot->vote->against_value + 1;
- }
$ballot->vote->result_count = $ballot->vote->result_count + 1;
$ballot->vote->updated_at = now();
$ballot->vote->save();
@@ -732,13 +828,10 @@ public function submitViewFileBallot(Request $request, $fileId)
{
$user = auth()->user();
$ballotFile = BallotFile::where('id', $fileId)->first();
- if (!$ballotFile) {
+ if (!$ballotFile)
return $this->errorResponse('Not found ballot file', Response::HTTP_BAD_REQUEST);
- }
$ballotFileView = BallotFileView::where('ballot_file_id', $ballotFile->id)->where('user_id', $user->id)->first();
- if ($ballotFileView) {
- return $this->metaSuccess();
- }
+ if ($ballotFileView) return $this->metaSuccess();
$ballotFileView = new BallotFileView();
$ballotFileView->ballot_file_id = $ballotFile->id;
$ballotFileView->ballot_id = $ballotFile->ballot_id;
@@ -763,9 +856,7 @@ public function uploadAvatar(Request $request)
$user = auth()->user();
$filenameWithExt = $request->file('avatar')->getClientOriginalName();
- //Get just filename
$filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
- // Get just ext
$extension = $request->file('avatar')->getClientOriginalExtension();
// new filename hash
$filenamehash = md5(Str::random(10) . '_' . (string)time());
@@ -792,21 +883,6 @@ public function uploadAvatar(Request $request)
$user->avatar = $s3result['ObjectURL'] ?? getenv('SITE_URL') . '/not-found';
$user->save();
return $this->metaSuccess();
-
- /* old
- $filenameWithExt = $request->file('avatar')->getClientOriginalName();
- //Get just filename
- $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME);
- // Get just ext
- $extension = $request->file('avatar')->getClientOriginalExtension();
- // Filename to store
- $fileNameToStore = $filename . '_' . time() . '.' . $extension;
- // Upload Image
- $path = $request->file('avatar')->storeAs('users/avatar', $fileNameToStore);
- $user->avatar = $path;
- $user->save();
- return $this->metaSuccess();
- */
} catch (\Exception $ex) {
return $this->errorResponse(__('Failed upload avatar'), Response::HTTP_BAD_REQUEST, $ex->getMessage());
}
@@ -816,7 +892,7 @@ public function getMembers(Request $request)
{
$search = $request->search;
$limit = $request->limit ?? 50;
-
+
$slide_value_uptime = $request->uptime ?? 0;
$slide_value_update_responsiveness = $request->update_responsiveness ?? 0;
$slide_value_delegotors = $request->delegators ?? 0;
@@ -850,9 +926,7 @@ public function getMembers(Request $request)
->whereNotnull('protocol_version')
->orderBy('created_at', 'desc')
->first();
- if (!$latest) {
- $latest = new Node();
- }
+ if (!$latest) $latest = new Node();
$user->status = isset($user->profile) && isset($user->profile->status) ? $user->profile->status : '';
@@ -862,15 +936,13 @@ public function getMembers(Request $request)
$res_nodeInfo = $user->nodeInfo->update_responsiveness ?? null;
$res_node = $latest->update_responsiveness ?? null;
- $res_metric = $metric->update_responsiveness ?? null;
+ $res_metric = $user->metric->update_responsiveness ?? null;
$uptime = $uptime_nodeInfo ? $uptime_nodeInfo : ($uptime_node ? $uptime_node : ($uptime_metric ? $uptime_metric : 1));
$res = $res_nodeInfo ? $res_nodeInfo : ($res_node ? $res_node : ($res_metric ? $res_metric : 0));
$delegation_rate = isset($user->nodeInfo->delegation_rate) && $user->nodeInfo->delegation_rate ? $user->nodeInfo->delegation_rate / 100 : 1;
- if ($delegation_rate > 1) {
- $delegation_rate = 1;
- }
+ if ($delegation_rate > 1) $delegation_rate = 1;
$delegators_count = isset($user->nodeInfo->delegators_count) && $user->nodeInfo->delegators_count ? $user->nodeInfo->delegators_count : 0;
$total_staked_amount = isset($user->nodeInfo->total_staked_amount) && $user->nodeInfo->total_staked_amount ? $user->nodeInfo->total_staked_amount : 0;
@@ -879,7 +951,7 @@ public function getMembers(Request $request)
$delegators_count_score = (float) ($delegators_count / $max_delegators) * $slide_value_delegotors;
$total_staked_amount_score = (float) ($total_staked_amount / $max_stake_amount) * $slide_value_stake_amount;
$res_score = (float) (($slide_value_update_responsiveness * $res) / 100);
-
+
$user->uptime = $uptime;
$user->delegation_rate = $delegation_rate;
$user->delegators_count = $delegators_count;
@@ -892,120 +964,22 @@ public function getMembers(Request $request)
return $this->successResponse($users);
}
- public function getMembersOld(Request $request)
- {
- $search = $request->search;
- $limit = $request->limit ?? 50;
- $slide_value_uptime = $request->uptime ?? 0;
- $slide_value_update_responsiveness = $request->update_responsiveness ?? 0;
- $slide_value_delegotors = $request->delegators ?? 0;
- $slide_value_stake_amount = $request->stake_amount ?? 0;
- $slide_delegation_rate = $request->delegation_rate ?? 0;
-
- $max_uptime = Node::max('uptime');
- $max_uptime = $max_uptime * 100;
- $max_delegators = NodeInfo::max('delegators_count');
- if($max_delegators < 1) $max_delegators = 1;
- $max_stake_amount = NodeInfo::max('total_staked_amount');
- if($max_stake_amount < 1) $max_stake_amount = 1;
-
- $sort_key = $request->sort_key ?? '';
- $sort_direction = $request->sort_direction ?? '';
- if (!$sort_key) $sort_key = 'created_at';
- if (!$sort_direction) $sort_direction = 'desc';
-
- $users = User::with(['metric'])
- ->where('role', 'member')
- ->leftJoin('node_info', 'users.public_address_node', '=', 'node_info.node_address')
- ->leftJoin('profile', 'users.id', '=', 'profile.user_id')
- ->where(function ($query) use ($search) {
- if ($search) {
- $query->where('users.first_name', 'like', '%' . $search . '%')
- ->orWhere('users.last_name', 'like', '%' . $search . '%');
- }
- })
- ->select([
- 'users.id',
- 'users.created_at',
- 'users.first_name',
- 'users.last_name',
- 'users.kyc_verified_at',
- 'users.pseudonym',
- 'profile.status',
- 'node_info.uptime',
- 'node_info.delegation_rate',
- 'node_info.delegators_count',
- 'node_info.total_staked_amount',
- ])
- ->get();
-
- foreach ($users as $user) {
- if (!$user->metric && !$user->nodeInfo) {
- $user->totalScore = 0;
- continue;
- }
-
- $latest = Node::where('node_address', strtolower($user->public_address_node))
- ->whereNotnull('protocol_version')
- ->orderBy('created_at', 'desc')
- ->first();
- if (!$latest) {
- $latest = new Node();
- }
-
- $delegation_rate = $user->delegation_rate ? $user->delegation_rate / 100 : 1;
-
- $latest_uptime_node = isset($latest->uptime) ? $latest->uptime * 100 : null;
- $latest_update_responsiveness_node = $latest->update_responsiveness ?? null;
- $metric = $user->metric;
- if (!$metric) {
- $metric = new Metric();
- }
- $latest_uptime_metric = $metric->uptime ? $metric->uptime : null;
- $latest_update_responsiveness_metric = $metric->update_responsiveness ? $metric->update_responsiveness : null;
-
- $latest_uptime = $latest_uptime_node ?? $latest_uptime_metric ?? 1;
- $latest_update_responsiveness = $latest_update_responsiveness_node ?? $latest_update_responsiveness_metric ?? 1;
-
- // $delegators_count = $user->delegators_count ? $user->nodeInfo->delegators_count : 0;
- $delegators_count = $user->delegators_count ? $user->delegators_count : 0;
- // $total_staked_amount = $user->total_staked_amount ? $user->nodeInfo->total_staked_amount : 0;
- $total_staked_amount = $user->total_staked_amount ? $user->total_staked_amount : 0;
-
- $uptime_score = ($slide_value_uptime * $latest_uptime) / 100;
- $update_responsiveness_score = ($slide_value_update_responsiveness * $latest_update_responsiveness) / 100;
- $dellegator_score = ($delegators_count / $max_delegators) * $slide_value_delegotors;
- $satke_amount_score = ($total_staked_amount / $max_stake_amount) * $slide_value_stake_amount;
- $delegation_rate_score = ($slide_delegation_rate * (1 - $delegation_rate)) / 100;
- $totalScore = $uptime_score + $update_responsiveness_score + $dellegator_score + $satke_amount_score + $delegation_rate_score;
-
- $user->totalScore = $totalScore;
- $user->uptime = $user->uptime ? $user->uptime : $metric->uptime;
- }
- if ($sort_key == 'totalScore') {
- $users = $users->sortByDesc('totalScore')->values();
- } else {
- $users = $users->sortByDesc('created_at')->values();
- }
- $users = Helper::paginate($users, $limit, $request->page);
- return $this->successResponse($users);
- }
-
- public function getMemberDetail($id)
+ public function getMemberDetail($id, Request $request)
{
+ $public_address_node = $request->get('public_address_node') ?? null;
$user = User::where('id', $id)->first();
+
Helper::getAccountInfoStandard($user);
- if (!$user || $user->role == 'admin') {
+ if (!$user || $user->role == 'admin')
return $this->errorResponse(__('api.error.not_found'), Response::HTTP_NOT_FOUND);
- }
- $user->metric = Helper::getNodeInfo($user);
- $response = $user->load(['profile']);
+ $user->metric = Helper::getNodeInfo($user, $public_address_node);
+ $response = $user->load(['profile', 'addresses']);
unset($response->last_login_at);
unset($response->last_login_ip_address);
- if(isset($response->profile)) {
+ if (isset($response->profile)) {
unset($response->profile->dob);
unset($response->profile->address);
unset($response->profile->city);
@@ -1017,9 +991,8 @@ public function getMemberDetail($id)
public function getCaKycHash($hash)
{
- if(!ctype_xdigit($hash)) {
+ if (!ctype_xdigit($hash))
return $this->errorResponse(__('api.error.not_found'), Response::HTTP_NOT_FOUND);
- }
$selection = DB::select("
SELECT a.casper_association_kyc_hash as proof_hash, b.reference_id, b.status, c.pseudonym
@@ -1058,33 +1031,27 @@ public function getMyVotes(Request $request)
public function checkCurrentPassword(Request $request)
{
$user = auth()->user();
- if (Hash::check($request->current_password, $user->password)) {
+ if (Hash::check($request->current_password, $user->password))
return $this->metaSuccess();
- } else {
+ else
return $this->errorResponse(__('Invalid password'), Response::HTTP_BAD_REQUEST);
- }
}
public function settingUser(Request $request)
{
$user = auth()->user();
- if ($request->new_password) {
- $user->password = bcrypt($request->new_password);
- }
+ if ($request->new_password) $user->password = bcrypt($request->new_password);
if ($request->username) {
$checkUsername = User::where('username', $request->username)
->where('username', '!=', $user->username)
->first();
- if ($checkUsername) {
+ if ($checkUsername)
return $this->errorResponse(__('this username has already been taken'), Response::HTTP_BAD_REQUEST);
- }
$user->username = $request->username;
}
- if (isset($request->twoFA_login)) {
- $user->twoFA_login = $request->twoFA_login;
- }
+ if (isset($request->twoFA_login)) $user->twoFA_login = $request->twoFA_login;
if ($request->email && $request->email != $user->email) {
$emailParam = $request->email;
@@ -1098,9 +1065,8 @@ public function settingUser(Request $request)
$currentEmail = $user->email;
$newEmail = $request->email;
- if ($checkEmail) {
+ if ($checkEmail)
return $this->errorResponse(__('this email has already been taken'), Response::HTTP_BAD_REQUEST);
- }
$user->new_email = $newEmail;
// Current Email
@@ -1241,19 +1207,30 @@ public function getLockRules()
return $this->successResponse($data);
}
+ public function getListNodesBy(Request $request)
+ {
+ $user = Auth::user();
+ $addresses = UserAddress::where('user_id', $user->id)->orderBy('id', 'asc')->get();
+ return $this->successResponse([
+ 'addresses' => $addresses,
+ ]);
+ }
+
public function getListNodes(Request $request)
{
$limit = $request->limit ?? 50;
- $nodes = User::select([
+
+ $nodes = UserAddress::select([
'users.id as user_id',
- 'users.public_address_node',
- 'users.is_fail_node',
'users.pseudonym',
- 'users.rank',
+ 'user_addresses.public_address_node',
+ 'user_addresses.is_fail_node',
+ 'user_addresses.rank',
'profile.blockchain_name',
'profile.blockchain_desc',
])
- ->leftjoin('profile', 'profile.user_id', '=', 'users.id')
+ ->leftJoin('users', 'users.id', '=', 'user_addresses.user_id')
+ ->leftJoin('profile', 'profile.user_id', '=', 'users.id')
->where('users.banned', 0)
->whereNotNull('users.public_address_node')
->orderBy('users.rank', 'asc')
@@ -1316,9 +1293,7 @@ public function getChartEarningByNode($node)
'month' => $result_month,
'year' => $result_year,
]);
- } else {
- return $this->successResponse(null);
- }
+ } else return $this->successResponse(null);
}
public function getMembershipFile()
@@ -1377,9 +1352,7 @@ public function submitDonation(Request $request)
'message' => 'nullable|max:5000',
]);
- if ($validator->fails()) {
- return $this->validateResponse($validator->errors());
- }
+ if ($validator->fails()) return $this->validateResponse($validator->errors());
\Stripe\Stripe::setApiKey(env('STRIPE_SEC_KEY'));
@@ -1446,4 +1419,4 @@ public function submitDonation(Request $request)
return $this->errorResponse(__('Invalid payment request'), Response::HTTP_BAD_REQUEST);
}
}
-}
+}
\ No newline at end of file
diff --git a/app/Http/EmailerHelper.php b/app/Http/EmailerHelper.php
index 17c6e4e6..69205eba 100644
--- a/app/Http/EmailerHelper.php
+++ b/app/Http/EmailerHelper.php
@@ -69,18 +69,18 @@ public static function triggerAdminEmail($title, $emailerData, $user = null) {
}
// Send User Email
- public static function triggerUserEmail($to, $title, $emailerData, $user = null) {
+ public static function triggerUserEmail($to, $title, $emailerData, $user = null, $userAddress = null) {
$item = $emailerData['triggerUser'][$title] ?? null;
if ($item) {
- $content = $item['content'];
- $subject =$item['subject'];
-
+ $content = $item['content'];
+ $subject = $item['subject'];
if ($user) {
- $name = $user->first_name . ' ' . $user->last_name;
+ $name = $user->first_name . ' ' . $user->last_name;
$content = str_replace('[name]', $name, $content);
$subject = str_replace('[name]', $name, $subject);
$content = str_replace('[email]', $user->email, $content);
- $content = str_replace('[node address]', $user->public_address_node, $content);
+ if ($userAddress) $content = str_replace('[node address]', $userAddress->public_address_node, $content);
+ else $content = str_replace('[node address]', $user->public_address_node, $content);
$subject = str_replace('[email]', $user->email, $subject);
}
Mail::to($to)->send(new UserAlert($subject, $content));
diff --git a/app/Http/Requests/Api/VerifyFileCasperSignerRequest.php b/app/Http/Requests/Api/VerifyFileCasperSignerRequest.php
index b310f414..f84e55cb 100644
--- a/app/Http/Requests/Api/VerifyFileCasperSignerRequest.php
+++ b/app/Http/Requests/Api/VerifyFileCasperSignerRequest.php
@@ -24,7 +24,8 @@ public function authorize()
public function rules()
{
return [
- 'file' => 'required|file'
+ 'file' => 'required|file',
+ 'address' => 'required',
];
}
}
diff --git a/app/Models/Metric.php b/app/Models/Metric.php
index 8c2f0ebb..dbbe72f7 100644
--- a/app/Models/Metric.php
+++ b/app/Models/Metric.php
@@ -11,7 +11,6 @@ class Metric extends Model
protected $table = 'metric';
protected $guarded = [];
-
public function user() {
return $this->belongsTo('App\Models\User', 'user_id', 'id');
}
diff --git a/app/Models/User.php b/app/Models/User.php
index a312f445..0b4370f4 100644
--- a/app/Models/User.php
+++ b/app/Models/User.php
@@ -67,6 +67,8 @@ class User extends Authenticatable
'validator_fee',
'cspr_delegated',
'cspr_self_staked',
+ 'has_address',
+ 'has_verified_address',
];
/**
@@ -124,9 +126,7 @@ public function getFullNameAttribute()
*/
public function getLetterFileUrlAttribute()
{
- if(!$this->letter_file) {
- return null;
- }
+ if (!$this->letter_file) return null;
// $url = Storage::disk('local')->url($this->letter_file);
// return asset($url);
return $this->letter_file;
@@ -134,22 +134,16 @@ public function getLetterFileUrlAttribute()
public function getAvatarUrlAttribute()
{
- if(!$this->avatar) {
- return null;
- }
+ if (!$this->avatar) return null;
$url = '';
- if (strpos($this->avatar, 'http') !== false) {
- $url = $this->avatar;
- } else {
- $url = Storage::disk('local')->url($this->avatar);
- }
+ if (strpos($this->avatar, 'http') !== false) $url = $this->avatar;
+ else $url = Storage::disk('local')->url($this->avatar);
return $url;
}
-
public function getSignedFileUrlAttribute()
{
- return url('/') . $this->signed_file;
+ return url('/') . $this->signed_file;
}
public function profile()
@@ -160,11 +154,15 @@ public function profile()
public function shuftipro() {
return $this->hasOne('App\Models\Shuftipro', 'user_id');
}
-
+
public function shuftiproTemp() {
return $this->hasOne('App\Models\ShuftiproTemp', 'user_id');
}
+ public function addresses() {
+ return $this->hasMany('App\Models\UserAddress', 'user_id');
+ }
+
public function ownerNodes() {
return $this->hasMany('App\Models\OwnerNode', 'user_id');
}
@@ -202,12 +200,10 @@ public function getNewThreadsAttribute() {
$count = Discussion::whereNotIn('id', $removedNews)
->whereDate('created_at', '>', Carbon::now()->subDays(3))
->count();
-
return $count;
}
public function documentFiles() {
return $this->hasMany('App\Models\DocumentFile');
}
-
-}
+}
\ No newline at end of file
diff --git a/app/Models/UserAddress.php b/app/Models/UserAddress.php
new file mode 100644
index 00000000..b3cea9f9
--- /dev/null
+++ b/app/Models/UserAddress.php
@@ -0,0 +1,16 @@
+belongsTo('App\Models\User', 'user_id', 'id');
+ }
+}
diff --git a/app/Services/NodeHelper.php b/app/Services/NodeHelper.php
index 201ae556..c217783a 100644
--- a/app/Services/NodeHelper.php
+++ b/app/Services/NodeHelper.php
@@ -55,12 +55,12 @@ public function getTotalRewards($validatorId)
public function updateStats()
{
$data = $this->getValidatorStanding();
-
+
$validator_standing = isset($data['validator_standing']) ? $data['validator_standing'] : null;
-
+
$mbs = isset($data['MBS']) ? $data['MBS'] : 0;
$peers = isset($data['peers']) ? $data['peers'] : 0;
-
+
$setting = Setting::where('name', 'peers')->first();
if (!$setting) {
$setting = new Setting;
@@ -71,69 +71,84 @@ public function updateStats()
$setting->value = $peers;
$setting->save();
- $users = User::whereNotNull('public_address_node')->get();
+ $users = User::with('addresses')->whereNotNull('public_address_node')->get();
+
if ($validator_standing) {
// Refresh Validator Standing
foreach ($validator_standing as $key => $value) {
- // $newKey = (new ChecksumValidator())->do($key);
$validator_standing[strtolower($key)] = $value;
}
foreach ($users as $user) {
- $validatorid = strtolower($user->public_address_node);
- // $validatorid = (new ChecksumValidator())->do($validatorid);
-
- if (isset($validator_standing[$validatorid])) {
- $info = $validator_standing[$validatorid];
- $fee = (float) $info['delegation_rate'];
-
- $user->pending_node = 0;
- $user->validator_fee = round($fee, 2);
- $user->save();
-
- $totalRewards = $this->getTotalRewards($validatorid);
-
- $build_version = $info['build_version'] ?? null;
- if ($build_version) {
- $build_version = explode('-', $build_version);
- $build_version = $build_version[0];
+ if (isset($user->addresses) && count($user->addresses) > 0) {
+ $addresses = $user->addresses;
+ $userAddress = strtolower($user->public_address_node);
+ foreach ($addresses as $address) {
+ $validatorid = strtolower($address->public_address_node);
+
+ if (isset($validator_standing[$validatorid])) {
+ $info = $validator_standing[$validatorid];
+ $fee = (float) $info['delegation_rate'];
+
+ if ($userAddress == $validatorid) {
+ $user->pending_node = 0;
+ $user->validator_fee = round($fee, 2);
+ $user->save();
+ }
+
+ $address->pending_node = 0;
+ $address->validator_fee = round($fee, 2);
+ $address->save();
+
+ $totalRewards = $this->getTotalRewards($validatorid);
+
+ $build_version = $info['build_version'] ?? null;
+ if ($build_version) {
+ $build_version = explode('-', $build_version);
+ $build_version = $build_version[0];
+ }
+
+ $is_open_port = isset($info['uptime']) && isset($info['update_responsiveness']) ? 1 : 0;
+
+ $inactive = (bool)($info['inactive'] ?? false);
+ $inactive = $inactive ? 1 : 0;
+
+ NodeInfo::updateOrCreate(
+ [
+ 'node_address' => $validatorid
+ ],
+ [
+ 'delegators_count' => $info['delegator_count'] ?? 0,
+ 'total_staked_amount' => $info['total_stake'],
+ 'delegation_rate' => $info['delegation_rate'],
+ 'daily_earning' => $info['daily_earnings'] ?? 0,
+ 'self_staked_amount' => $info['self_stake'] ?? 0,
+ 'total_earning' => isset($totalRewards['data']) && $totalRewards['data'] > 0 ? $totalRewards['data'] / 1000000000 : 0,
+ 'is_open_port' => $is_open_port,
+ 'mbs' => $mbs,
+ 'update_responsiveness' => isset($info['update_responsiveness']) ? $info['update_responsiveness'] * 100 : 0,
+ 'uptime' => isset($info['uptime']) ? $info['uptime'] * 100 : 0,
+ 'block_height' => $info['block_height'] ?? 0,
+ 'peers' => $info['peer_count'] ?? 0,
+ 'inactive' => $inactive
+ ]
+ );
+
+ Node::updateOrCreate(
+ [
+ 'node_address' => $validatorid
+ ],
+ [
+ 'block_height' => $info['block_height'] ?? null,
+ 'protocol_version' => $build_version,
+ 'update_responsiveness' => isset($info['update_responsiveness']) ? $info['update_responsiveness'] * 100 : null,
+ 'uptime' => isset($info['uptime']) ? $info['uptime'] : null,
+ 'weight' => $info['daily_earnings'] ?? 0,
+ 'peers' => $info['peer_count'] ?? 0,
+ ]
+ );
+ }
}
-
- $is_open_port = isset($info['uptime']) && isset($info['update_responsiveness']) ? 1 : 0;
-
- NodeInfo::updateOrCreate(
- [
- 'node_address' => $validatorid
- ],
- [
- 'delegators_count' => $info['delegator_count'] ?? 0,
- 'total_staked_amount' => $info['total_stake'],
- 'delegation_rate' => $info['delegation_rate'],
- 'daily_earning' => $info['daily_earnings'] ?? 0,
- 'self_staked_amount' => $info['self_stake'] ?? 0,
- 'total_earning' => isset($totalRewards['data']) && $totalRewards['data'] > 0 ? $totalRewards['data'] / 1000000000 : 0,
- 'is_open_port' => $is_open_port,
- 'mbs' => $mbs,
- 'update_responsiveness' => isset($info['update_responsiveness']) ? $info['update_responsiveness'] * 100 : 0,
- 'uptime' => isset($info['uptime']) ? $info['uptime'] * 100 : 0,
- 'block_height' => $info['block_height'] ?? 0,
- 'peers' => $info['peer_count'] ?? 0,
- ]
- );
-
- Node::updateOrCreate(
- [
- 'node_address' => $validatorid
- ],
- [
- 'block_height' => $info['block_height'] ?? null,
- 'protocol_version' => $build_version,
- 'update_responsiveness' => isset($info['update_responsiveness']) ? $info['update_responsiveness'] * 100 : null,
- 'uptime' => isset($info['uptime']) ? $info['uptime'] : null,
- 'weight' => $info['daily_earnings'] ?? 0,
- 'peers' => $info['peer_count'] ?? 0,
- ]
- );
}
}
}
diff --git a/composer.json b/composer.json
index 68831e6b..f82ff75a 100644
--- a/composer.json
+++ b/composer.json
@@ -10,7 +10,7 @@
"doctrine/dbal": "^3.1",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
- "guzzlehttp/guzzle": "^7.0.1",
+ "guzzlehttp/guzzle": "^7.4.3",
"hellosign/hellosign-php-sdk": "^3.7",
"laravel/framework": "^8.40",
"laravel/passport": "^10.1",
diff --git a/composer.lock b/composer.lock
deleted file mode 100644
index d3846e4e..00000000
--- a/composer.lock
+++ /dev/null
@@ -1,9530 +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": "16acde0192038c2d0d58b08808d29dfc",
- "packages": [
- {
- "name": "asm89/stack-cors",
- "version": "v2.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/asm89/stack-cors.git",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/asm89/stack-cors/zipball/73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
- "reference": "73e5b88775c64ccc0b84fb60836b30dc9d92ac4a",
- "shasum": ""
- },
- "require": {
- "php": "^7.2|^8.0",
- "symfony/http-foundation": "^4|^5|^6",
- "symfony/http-kernel": "^4|^5|^6"
- },
- "require-dev": {
- "phpunit/phpunit": "^7|^9",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Asm89\\Stack\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alexander",
- "email": "iam.asm89@gmail.com"
- }
- ],
- "description": "Cross-origin resource sharing library and stack middleware",
- "homepage": "https://github.com/asm89/stack-cors",
- "keywords": [
- "cors",
- "stack"
- ],
- "support": {
- "issues": "https://github.com/asm89/stack-cors/issues",
- "source": "https://github.com/asm89/stack-cors/tree/v2.1.1"
- },
- "time": "2022-01-18T09:12:03+00:00"
- },
- {
- "name": "aws/aws-crt-php",
- "version": "v1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/awslabs/aws-crt-php.git",
- "reference": "3942776a8c99209908ee0b287746263725685732"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/3942776a8c99209908ee0b287746263725685732",
- "reference": "3942776a8c99209908ee0b287746263725685732",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35|^5.4.3"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "AWS SDK Common Runtime Team",
- "email": "aws-sdk-common-runtime@amazon.com"
- }
- ],
- "description": "AWS Common Runtime for PHP",
- "homepage": "http://aws.amazon.com/sdkforphp",
- "keywords": [
- "amazon",
- "aws",
- "crt",
- "sdk"
- ],
- "support": {
- "issues": "https://github.com/awslabs/aws-crt-php/issues",
- "source": "https://github.com/awslabs/aws-crt-php/tree/v1.0.2"
- },
- "time": "2021-09-03T22:57:30+00:00"
- },
- {
- "name": "aws/aws-sdk-php",
- "version": "3.212.3",
- "source": {
- "type": "git",
- "url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "1d3db6d276299136bcaa7896653be0dcd2aaa92a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1d3db6d276299136bcaa7896653be0dcd2aaa92a",
- "reference": "1d3db6d276299136bcaa7896653be0dcd2aaa92a",
- "shasum": ""
- },
- "require": {
- "aws/aws-crt-php": "^1.0.2",
- "ext-json": "*",
- "ext-pcre": "*",
- "ext-simplexml": "*",
- "guzzlehttp/guzzle": "^5.3.3|^6.2.1|^7.0",
- "guzzlehttp/promises": "^1.4.0",
- "guzzlehttp/psr7": "^1.7.0|^2.0",
- "mtdowling/jmespath.php": "^2.6",
- "php": ">=5.5"
- },
- "require-dev": {
- "andrewsville/php-token-reflection": "^1.4",
- "aws/aws-php-sns-message-validator": "~1.0",
- "behat/behat": "~3.0",
- "doctrine/cache": "~1.4",
- "ext-dom": "*",
- "ext-openssl": "*",
- "ext-pcntl": "*",
- "ext-sockets": "*",
- "nette/neon": "^2.3",
- "paragonie/random_compat": ">= 2",
- "phpunit/phpunit": "^4.8.35|^5.4.3",
- "psr/cache": "^1.0",
- "psr/simple-cache": "^1.0",
- "sebastian/comparator": "^1.2.3"
- },
- "suggest": {
- "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications",
- "doctrine/cache": "To use the DoctrineCacheAdapter",
- "ext-curl": "To send requests using cURL",
- "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages",
- "ext-sockets": "To use client-side monitoring"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Aws\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Amazon Web Services",
- "homepage": "http://aws.amazon.com"
- }
- ],
- "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project",
- "homepage": "http://aws.amazon.com/sdkforphp",
- "keywords": [
- "amazon",
- "aws",
- "cloud",
- "dynamodb",
- "ec2",
- "glacier",
- "s3",
- "sdk"
- ],
- "support": {
- "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
- "issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.212.3"
- },
- "time": "2022-03-07T19:48:01+00:00"
- },
- {
- "name": "brick/math",
- "version": "0.9.3",
- "source": {
- "type": "git",
- "url": "https://github.com/brick/math.git",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "reference": "ca57d18f028f84f777b2168cd1911b0dee2343ae",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.2",
- "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0",
- "vimeo/psalm": "4.9.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Brick\\Math\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Arbitrary-precision arithmetic library",
- "keywords": [
- "Arbitrary-precision",
- "BigInteger",
- "BigRational",
- "arithmetic",
- "bigdecimal",
- "bignum",
- "brick",
- "math"
- ],
- "support": {
- "issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.9.3"
- },
- "funding": [
- {
- "url": "https://github.com/BenMorel",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/brick/math",
- "type": "tidelift"
- }
- ],
- "time": "2021-08-15T20:50:18+00:00"
- },
- {
- "name": "defuse/php-encryption",
- "version": "v2.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/defuse/php-encryption.git",
- "reference": "77880488b9954b7884c25555c2a0ea9e7053f9d2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/defuse/php-encryption/zipball/77880488b9954b7884c25555c2a0ea9e7053f9d2",
- "reference": "77880488b9954b7884c25555c2a0ea9e7053f9d2",
- "shasum": ""
- },
- "require": {
- "ext-openssl": "*",
- "paragonie/random_compat": ">= 2",
- "php": ">=5.6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4|^5|^6|^7|^8|^9"
- },
- "bin": [
- "bin/generate-defuse-key"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Defuse\\Crypto\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Hornby",
- "email": "taylor@defuse.ca",
- "homepage": "https://defuse.ca/"
- },
- {
- "name": "Scott Arciszewski",
- "email": "info@paragonie.com",
- "homepage": "https://paragonie.com"
- }
- ],
- "description": "Secure PHP Encryption Library",
- "keywords": [
- "aes",
- "authenticated encryption",
- "cipher",
- "crypto",
- "cryptography",
- "encrypt",
- "encryption",
- "openssl",
- "security",
- "symmetric key cryptography"
- ],
- "support": {
- "issues": "https://github.com/defuse/php-encryption/issues",
- "source": "https://github.com/defuse/php-encryption/tree/v2.3.1"
- },
- "time": "2021-04-09T23:57:26+00:00"
- },
- {
- "name": "dflydev/dot-access-data",
- "version": "v3.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/dflydev/dflydev-dot-access-data.git",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/0992cc19268b259a39e86f296da5f0677841f42c",
- "reference": "0992cc19268b259a39e86f296da5f0677841f42c",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^0.12.42",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3",
- "scrutinizer/ocular": "1.6.0",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^3.14"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Dflydev\\DotAccessData\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Dragonfly Development Inc.",
- "email": "info@dflydev.com",
- "homepage": "http://dflydev.com"
- },
- {
- "name": "Beau Simensen",
- "email": "beau@dflydev.com",
- "homepage": "http://beausimensen.com"
- },
- {
- "name": "Carlos Frutos",
- "email": "carlos@kiwing.it",
- "homepage": "https://github.com/cfrutos"
- },
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com"
- }
- ],
- "description": "Given a deep data structure, access data by dot notation.",
- "homepage": "https://github.com/dflydev/dflydev-dot-access-data",
- "keywords": [
- "access",
- "data",
- "dot",
- "notation"
- ],
- "support": {
- "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
- "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.1"
- },
- "time": "2021-08-13T13:06:58+00:00"
- },
- {
- "name": "doctrine/cache",
- "version": "2.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/cache.git",
- "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce",
- "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce",
- "shasum": ""
- },
- "require": {
- "php": "~7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": ">2.2,<2.4"
- },
- "require-dev": {
- "alcaeus/mongo-php-adapter": "^1.1",
- "cache/integration-tests": "dev-master",
- "doctrine/coding-standard": "^8.0",
- "mongodb/mongodb": "^1.1",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "predis/predis": "~1.0",
- "psr/cache": "^1.0 || ^2.0 || ^3.0",
- "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev",
- "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev"
- },
- "suggest": {
- "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
- "homepage": "https://www.doctrine-project.org/projects/cache.html",
- "keywords": [
- "abstraction",
- "apcu",
- "cache",
- "caching",
- "couchdb",
- "memcached",
- "php",
- "redis",
- "xcache"
- ],
- "support": {
- "issues": "https://github.com/doctrine/cache/issues",
- "source": "https://github.com/doctrine/cache/tree/2.1.1"
- },
- "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%2Fcache",
- "type": "tidelift"
- }
- ],
- "time": "2021-07-17T14:49:29+00:00"
- },
- {
- "name": "doctrine/dbal",
- "version": "3.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/dbal.git",
- "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/35eae239ef515d55ebb24e9d4715cad09a4f58ed",
- "reference": "35eae239ef515d55ebb24e9d4715cad09a4f58ed",
- "shasum": ""
- },
- "require": {
- "composer-runtime-api": "^2",
- "doctrine/cache": "^1.11|^2.0",
- "doctrine/deprecations": "^0.5.3",
- "doctrine/event-manager": "^1.0",
- "php": "^7.3 || ^8.0",
- "psr/cache": "^1|^2|^3",
- "psr/log": "^1|^2|^3"
- },
- "require-dev": {
- "doctrine/coding-standard": "9.0.0",
- "jetbrains/phpstorm-stubs": "2021.1",
- "phpstan/phpstan": "1.4.0",
- "phpstan/phpstan-strict-rules": "^1.1",
- "phpunit/phpunit": "9.5.11",
- "psalm/plugin-phpunit": "0.16.1",
- "squizlabs/php_codesniffer": "3.6.2",
- "symfony/cache": "^5.2|^6.0",
- "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
- "vimeo/psalm": "4.16.1"
- },
- "suggest": {
- "symfony/console": "For helpful console commands such as SQL execution and import of files."
- },
- "bin": [
- "bin/doctrine-dbal"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\DBAL\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- }
- ],
- "description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
- "homepage": "https://www.doctrine-project.org/projects/dbal.html",
- "keywords": [
- "abstraction",
- "database",
- "db2",
- "dbal",
- "mariadb",
- "mssql",
- "mysql",
- "oci8",
- "oracle",
- "pdo",
- "pgsql",
- "postgresql",
- "queryobject",
- "sasql",
- "sql",
- "sqlite",
- "sqlserver",
- "sqlsrv"
- ],
- "support": {
- "issues": "https://github.com/doctrine/dbal/issues",
- "source": "https://github.com/doctrine/dbal/tree/3.3.2"
- },
- "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%2Fdbal",
- "type": "tidelift"
- }
- ],
- "time": "2022-02-05T16:33:45+00:00"
- },
- {
- "name": "doctrine/deprecations",
- "version": "v0.5.3",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/deprecations.git",
- "reference": "9504165960a1f83cc1480e2be1dd0a0478561314"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314",
- "reference": "9504165960a1f83cc1480e2be1dd0a0478561314",
- "shasum": ""
- },
- "require": {
- "php": "^7.1|^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^6.0|^7.0|^8.0",
- "phpunit/phpunit": "^7.0|^8.0|^9.0",
- "psr/log": "^1.0"
- },
- "suggest": {
- "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A small layer on top of trigger_error(E_USER_DEPRECATED) or PSR-3 logging with options to disable all deprecations or selectively for packages.",
- "homepage": "https://www.doctrine-project.org/",
- "support": {
- "issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/v0.5.3"
- },
- "time": "2021-03-21T12:59:47+00:00"
- },
- {
- "name": "doctrine/event-manager",
- "version": "1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/event-manager.git",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/event-manager/zipball/41370af6a30faa9dc0368c4a6814d596e81aba7f",
- "reference": "41370af6a30faa9dc0368c4a6814d596e81aba7f",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/common": "<2.9@dev"
- },
- "require-dev": {
- "doctrine/coding-standard": "^6.0",
- "phpunit/phpunit": "^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\": "lib/Doctrine/Common"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- },
- {
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com"
- }
- ],
- "description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
- "homepage": "https://www.doctrine-project.org/projects/event-manager.html",
- "keywords": [
- "event",
- "event dispatcher",
- "event manager",
- "event system",
- "events"
- ],
- "support": {
- "issues": "https://github.com/doctrine/event-manager/issues",
- "source": "https://github.com/doctrine/event-manager/tree/1.1.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%2Fevent-manager",
- "type": "tidelift"
- }
- ],
- "time": "2020-05-29T18:28:51+00:00"
- },
- {
- "name": "doctrine/inflector",
- "version": "2.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/inflector.git",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
- "reference": "8b7ff3e4b7de6b2c84da85637b59fd2880ecaa89",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^8.2",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
- "vimeo/psalm": "^4.10"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Inflector\\": "lib/Doctrine/Inflector"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- },
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Inflector is a small library that can perform string manipulations with regard to upper/lowercase and singular/plural forms of words.",
- "homepage": "https://www.doctrine-project.org/projects/inflector.html",
- "keywords": [
- "inflection",
- "inflector",
- "lowercase",
- "manipulation",
- "php",
- "plural",
- "singular",
- "strings",
- "uppercase",
- "words"
- ],
- "support": {
- "issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.0.4"
- },
- "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%2Finflector",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-22T20:16:43+00:00"
- },
- {
- "name": "doctrine/lexer",
- "version": "1.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/lexer.git",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9.0",
- "phpstan/phpstan": "^1.3",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.11"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Guilherme Blanco",
- "email": "guilhermeblanco@gmail.com"
- },
- {
- "name": "Roman Borschel",
- "email": "roman@code-factory.org"
- },
- {
- "name": "Johannes Schmitt",
- "email": "schmittjoh@gmail.com"
- }
- ],
- "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
- "homepage": "https://www.doctrine-project.org/projects/lexer.html",
- "keywords": [
- "annotations",
- "docblock",
- "lexer",
- "parser",
- "php"
- ],
- "support": {
- "issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/1.2.3"
- },
- "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%2Flexer",
- "type": "tidelift"
- }
- ],
- "time": "2022-02-28T11:07:21+00:00"
- },
- {
- "name": "dragonmantank/cron-expression",
- "version": "v3.3.1",
- "source": {
- "type": "git",
- "url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/be85b3f05b46c39bbc0d95f6c071ddff669510fa",
- "reference": "be85b3f05b46c39bbc0d95f6c071ddff669510fa",
- "shasum": ""
- },
- "require": {
- "php": "^7.2|^8.0",
- "webmozart/assert": "^1.0"
- },
- "replace": {
- "mtdowling/cron-expression": "^1.0"
- },
- "require-dev": {
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-webmozart-assert": "^1.0",
- "phpunit/phpunit": "^7.0|^8.0|^9.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Cron\\": "src/Cron/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Tankersley",
- "email": "chris@ctankersley.com",
- "homepage": "https://github.com/dragonmantank"
- }
- ],
- "description": "CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due",
- "keywords": [
- "cron",
- "schedule"
- ],
- "support": {
- "issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.3.1"
- },
- "funding": [
- {
- "url": "https://github.com/dragonmantank",
- "type": "github"
- }
- ],
- "time": "2022-01-18T15:43:28+00:00"
- },
- {
- "name": "egulias/email-validator",
- "version": "2.1.25",
- "source": {
- "type": "git",
- "url": "https://github.com/egulias/EmailValidator.git",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/0dbf5d78455d4d6a41d186da50adc1122ec066f4",
- "reference": "0dbf5d78455d4d6a41d186da50adc1122ec066f4",
- "shasum": ""
- },
- "require": {
- "doctrine/lexer": "^1.0.1",
- "php": ">=5.5",
- "symfony/polyfill-intl-idn": "^1.10"
- },
- "require-dev": {
- "dominicsayers/isemail": "^3.0.7",
- "phpunit/phpunit": "^4.8.36|^7.5.15",
- "satooshi/php-coveralls": "^1.0.1"
- },
- "suggest": {
- "ext-intl": "PHP Internationalization Libraries are required to use the SpoofChecking validation"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Egulias\\EmailValidator\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Eduardo Gulias Davis"
- }
- ],
- "description": "A library for validating emails against several RFCs",
- "homepage": "https://github.com/egulias/EmailValidator",
- "keywords": [
- "email",
- "emailvalidation",
- "emailvalidator",
- "validation",
- "validator"
- ],
- "support": {
- "issues": "https://github.com/egulias/EmailValidator/issues",
- "source": "https://github.com/egulias/EmailValidator/tree/2.1.25"
- },
- "funding": [
- {
- "url": "https://github.com/egulias",
- "type": "github"
- }
- ],
- "time": "2020-12-29T14:50:06+00:00"
- },
- {
- "name": "fideloper/proxy",
- "version": "4.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/fideloper/TrustedProxy.git",
- "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fideloper/TrustedProxy/zipball/c073b2bd04d1c90e04dc1b787662b558dd65ade0",
- "reference": "c073b2bd04d1c90e04dc1b787662b558dd65ade0",
- "shasum": ""
- },
- "require": {
- "illuminate/contracts": "^5.0|^6.0|^7.0|^8.0|^9.0",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "illuminate/http": "^5.0|^6.0|^7.0|^8.0|^9.0",
- "mockery/mockery": "^1.0",
- "phpunit/phpunit": "^6.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "Fideloper\\Proxy\\TrustedProxyServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Fideloper\\Proxy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Fidao",
- "email": "fideloper@gmail.com"
- }
- ],
- "description": "Set trusted proxies for Laravel",
- "keywords": [
- "load balancing",
- "proxy",
- "trusted proxy"
- ],
- "support": {
- "issues": "https://github.com/fideloper/TrustedProxy/issues",
- "source": "https://github.com/fideloper/TrustedProxy/tree/4.4.1"
- },
- "time": "2020-10-22T13:48:01+00:00"
- },
- {
- "name": "firebase/php-jwt",
- "version": "v5.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/firebase/php-jwt.git",
- "reference": "83b609028194aa042ea33b5af2d41a7427de80e6"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/firebase/php-jwt/zipball/83b609028194aa042ea33b5af2d41a7427de80e6",
- "reference": "83b609028194aa042ea33b5af2d41a7427de80e6",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": ">=4.8 <=9"
- },
- "suggest": {
- "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Firebase\\JWT\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Neuman Vong",
- "email": "neuman+pear@twilio.com",
- "role": "Developer"
- },
- {
- "name": "Anant Narayanan",
- "email": "anant@php.net",
- "role": "Developer"
- }
- ],
- "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
- "homepage": "https://github.com/firebase/php-jwt",
- "keywords": [
- "jwt",
- "php"
- ],
- "support": {
- "issues": "https://github.com/firebase/php-jwt/issues",
- "source": "https://github.com/firebase/php-jwt/tree/v5.5.1"
- },
- "time": "2021-11-08T20:18:51+00:00"
- },
- {
- "name": "fruitcake/laravel-cors",
- "version": "v2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/fruitcake/laravel-cors.git",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/fruitcake/laravel-cors/zipball/783a74f5e3431d7b9805be8afb60fd0a8f743534",
- "reference": "783a74f5e3431d7b9805be8afb60fd0a8f743534",
- "shasum": ""
- },
- "require": {
- "asm89/stack-cors": "^2.0.1",
- "illuminate/contracts": "^6|^7|^8|^9",
- "illuminate/support": "^6|^7|^8|^9",
- "php": ">=7.2"
- },
- "require-dev": {
- "laravel/framework": "^6|^7.24|^8",
- "orchestra/testbench-dusk": "^4|^5|^6|^7",
- "phpunit/phpunit": "^6|^7|^8|^9",
- "squizlabs/php_codesniffer": "^3.5"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- },
- "laravel": {
- "providers": [
- "Fruitcake\\Cors\\CorsServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Fruitcake\\Cors\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fruitcake",
- "homepage": "https://fruitcake.nl"
- },
- {
- "name": "Barry vd. Heuvel",
- "email": "barryvdh@gmail.com"
- }
- ],
- "description": "Adds CORS (Cross-Origin Resource Sharing) headers support in your Laravel application",
- "keywords": [
- "api",
- "cors",
- "crossdomain",
- "laravel"
- ],
- "support": {
- "issues": "https://github.com/fruitcake/laravel-cors/issues",
- "source": "https://github.com/fruitcake/laravel-cors/tree/v2.2.0"
- },
- "funding": [
- {
- "url": "https://fruitcake.nl",
- "type": "custom"
- },
- {
- "url": "https://github.com/barryvdh",
- "type": "github"
- }
- ],
- "time": "2022-02-23T14:25:13+00:00"
- },
- {
- "name": "graham-campbell/result-type",
- "version": "v1.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "0690bde05318336c7221785f2a932467f98b64ca"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/0690bde05318336c7221785f2a932467f98b64ca",
- "reference": "0690bde05318336c7221785f2a932467f98b64ca",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "phpoption/phpoption": "^1.8"
- },
- "require-dev": {
- "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "GrahamCampbell\\ResultType\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- }
- ],
- "description": "An Implementation Of The Result Type",
- "keywords": [
- "Graham Campbell",
- "GrahamCampbell",
- "Result Type",
- "Result-Type",
- "result"
- ],
- "support": {
- "issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/graham-campbell/result-type",
- "type": "tidelift"
- }
- ],
- "time": "2021-11-21T21:41:47+00:00"
- },
- {
- "name": "guzzlehttp/guzzle",
- "version": "7.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/guzzle.git",
- "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
- "reference": "ee0a041b1760e6a53d2a39c8c34115adc2af2c79",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.5",
- "guzzlehttp/psr7": "^1.8.3 || ^2.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.4.1",
- "ext-curl": "*",
- "php-http/client-integration-tests": "^3.0",
- "phpunit/phpunit": "^8.5.5 || ^9.3.5",
- "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": {
- "branch-alias": {
- "dev-master": "7.4-dev"
- }
- },
- "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.4.1"
- },
- "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": "2021-12-06T18:43:05+00:00"
- },
- {
- "name": "guzzlehttp/promises",
- "version": "1.5.1",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/promises.git",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
- "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da",
- "shasum": ""
- },
- "require": {
- "php": ">=5.5"
- },
- "require-dev": {
- "symfony/phpunit-bridge": "^4.4 || ^5.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.5-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions_include.php"
- ],
- "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/1.5.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-22T20:56:57+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "2.1.0",
- "source": {
- "type": "git",
- "url": "https://github.com/guzzle/psr7.git",
- "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
- "reference": "089edd38f5b8abba6cb01567c2a8aaa47cec4c72",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0",
- "ralouphie/getallheaders": "^3.0"
- },
- "provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.8 || ^9.3.10"
- },
- "suggest": {
- "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://github.com/sagikazarmark"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "support": {
- "issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.1.0"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-06T17:43:30+00:00"
- },
- {
- "name": "hellosign/hellosign-php-sdk",
- "version": "v3.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/hellosign/hellosign-php-sdk.git",
- "reference": "8935f1183073e2ecb4c91da8d6003d2cf0212bff"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/hellosign/hellosign-php-sdk/zipball/8935f1183073e2ecb4c91da8d6003d2cf0212bff",
- "reference": "8935f1183073e2ecb4c91da8d6003d2cf0212bff",
- "shasum": ""
- },
- "require": {
- "guzzlehttp/guzzle": "^6.3|^7.0"
- },
- "require-dev": {
- "phpunit/phpunit": "7.3.*"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "HelloSign\\": "library/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "HelloSign",
- "email": "apisupport@hellosign.com"
- }
- ],
- "description": "This is the official PHP wrapper for HelloSign's API",
- "support": {
- "issues": "https://github.com/hellosign/hellosign-php-sdk/issues",
- "source": "https://github.com/hellosign/hellosign-php-sdk/tree/v3.7.0"
- },
- "time": "2021-06-01T20:36:24+00:00"
- },
- {
- "name": "laravel/framework",
- "version": "v8.83.3",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/framework.git",
- "reference": "b4ed222a188cca74ca9062296e525d26ae54a0ce"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/b4ed222a188cca74ca9062296e525d26ae54a0ce",
- "reference": "b4ed222a188cca74ca9062296e525d26ae54a0ce",
- "shasum": ""
- },
- "require": {
- "doctrine/inflector": "^1.4|^2.0",
- "dragonmantank/cron-expression": "^3.0.2",
- "egulias/email-validator": "^2.1.10",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-openssl": "*",
- "laravel/serializable-closure": "^1.0",
- "league/commonmark": "^1.3|^2.0.2",
- "league/flysystem": "^1.1",
- "monolog/monolog": "^2.0",
- "nesbot/carbon": "^2.53.1",
- "opis/closure": "^3.6",
- "php": "^7.3|^8.0",
- "psr/container": "^1.0",
- "psr/log": "^1.0|^2.0",
- "psr/simple-cache": "^1.0",
- "ramsey/uuid": "^4.2.2",
- "swiftmailer/swiftmailer": "^6.3",
- "symfony/console": "^5.4",
- "symfony/error-handler": "^5.4",
- "symfony/finder": "^5.4",
- "symfony/http-foundation": "^5.4",
- "symfony/http-kernel": "^5.4",
- "symfony/mime": "^5.4",
- "symfony/process": "^5.4",
- "symfony/routing": "^5.4",
- "symfony/var-dumper": "^5.4",
- "tijsverkoyen/css-to-inline-styles": "^2.2.2",
- "vlucas/phpdotenv": "^5.4.1",
- "voku/portable-ascii": "^1.6.1"
- },
- "conflict": {
- "tightenco/collect": "<5.5.33"
- },
- "provide": {
- "psr/container-implementation": "1.0",
- "psr/simple-cache-implementation": "1.0"
- },
- "replace": {
- "illuminate/auth": "self.version",
- "illuminate/broadcasting": "self.version",
- "illuminate/bus": "self.version",
- "illuminate/cache": "self.version",
- "illuminate/collections": "self.version",
- "illuminate/config": "self.version",
- "illuminate/console": "self.version",
- "illuminate/container": "self.version",
- "illuminate/contracts": "self.version",
- "illuminate/cookie": "self.version",
- "illuminate/database": "self.version",
- "illuminate/encryption": "self.version",
- "illuminate/events": "self.version",
- "illuminate/filesystem": "self.version",
- "illuminate/hashing": "self.version",
- "illuminate/http": "self.version",
- "illuminate/log": "self.version",
- "illuminate/macroable": "self.version",
- "illuminate/mail": "self.version",
- "illuminate/notifications": "self.version",
- "illuminate/pagination": "self.version",
- "illuminate/pipeline": "self.version",
- "illuminate/queue": "self.version",
- "illuminate/redis": "self.version",
- "illuminate/routing": "self.version",
- "illuminate/session": "self.version",
- "illuminate/support": "self.version",
- "illuminate/testing": "self.version",
- "illuminate/translation": "self.version",
- "illuminate/validation": "self.version",
- "illuminate/view": "self.version"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^3.198.1",
- "doctrine/dbal": "^2.13.3|^3.1.4",
- "filp/whoops": "^2.14.3",
- "guzzlehttp/guzzle": "^6.5.5|^7.0.1",
- "league/flysystem-cached-adapter": "^1.0",
- "mockery/mockery": "^1.4.4",
- "orchestra/testbench-core": "^6.27",
- "pda/pheanstalk": "^4.0",
- "phpunit/phpunit": "^8.5.19|^9.5.8",
- "predis/predis": "^1.1.9",
- "symfony/cache": "^5.4"
- },
- "suggest": {
- "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
- "aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage and SES mail driver (^3.198.1).",
- "brianium/paratest": "Required to run tests in parallel (^6.0).",
- "doctrine/dbal": "Required to rename columns and drop SQLite columns (^2.13.3|^3.1.4).",
- "ext-bcmath": "Required to use the multiple_of validation rule.",
- "ext-ftp": "Required to use the Flysystem FTP driver.",
- "ext-gd": "Required to use Illuminate\\Http\\Testing\\FileFactory::image().",
- "ext-memcached": "Required to use the memcache cache driver.",
- "ext-pcntl": "Required to use all features of the queue worker.",
- "ext-posix": "Required to use all features of the queue worker.",
- "ext-redis": "Required to use the Redis cache and queue drivers (^4.0|^5.0).",
- "fakerphp/faker": "Required to use the eloquent factory builder (^1.9.1).",
- "filp/whoops": "Required for friendly error pages in development (^2.14.3).",
- "guzzlehttp/guzzle": "Required to use the HTTP Client, Mailgun mail driver and the ping methods on schedules (^6.5.5|^7.0.1).",
- "laravel/tinker": "Required to use the tinker console command (^2.0).",
- "league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^1.0).",
- "league/flysystem-cached-adapter": "Required to use the Flysystem cache (^1.0).",
- "league/flysystem-sftp": "Required to use the Flysystem SFTP driver (^1.0).",
- "mockery/mockery": "Required to use mocking (^1.4.4).",
- "nyholm/psr7": "Required to use PSR-7 bridging features (^1.2).",
- "pda/pheanstalk": "Required to use the beanstalk queue driver (^4.0).",
- "phpunit/phpunit": "Required to use assertions and run tests (^8.5.19|^9.5.8).",
- "predis/predis": "Required to use the predis connector (^1.1.9).",
- "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
- "pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^4.0|^5.0|^6.0|^7.0).",
- "symfony/cache": "Required to PSR-6 cache bridge (^5.4).",
- "symfony/filesystem": "Required to enable support for relative symbolic links (^5.4).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^2.0).",
- "wildbit/swiftmailer-postmark": "Required to use Postmark mail driver (^3.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "8.x-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Illuminate/Collections/helpers.php",
- "src/Illuminate/Events/functions.php",
- "src/Illuminate/Foundation/helpers.php",
- "src/Illuminate/Support/helpers.php"
- ],
- "psr-4": {
- "Illuminate\\": "src/Illuminate/",
- "Illuminate\\Support\\": [
- "src/Illuminate/Macroable/",
- "src/Illuminate/Collections/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "The Laravel Framework.",
- "homepage": "https://laravel.com",
- "keywords": [
- "framework",
- "laravel"
- ],
- "support": {
- "issues": "https://github.com/laravel/framework/issues",
- "source": "https://github.com/laravel/framework"
- },
- "time": "2022-03-03T15:14:29+00:00"
- },
- {
- "name": "laravel/passport",
- "version": "v10.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/passport.git",
- "reference": "c56207e9a37c849da0164842a609a9f38747e95b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/passport/zipball/c56207e9a37c849da0164842a609a9f38747e95b",
- "reference": "c56207e9a37c849da0164842a609a9f38747e95b",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "firebase/php-jwt": "^5.0",
- "illuminate/auth": "^8.2|^9.0",
- "illuminate/console": "^8.2|^9.0",
- "illuminate/container": "^8.2|^9.0",
- "illuminate/contracts": "^8.2|^9.0",
- "illuminate/cookie": "^8.2|^9.0",
- "illuminate/database": "^8.2|^9.0",
- "illuminate/encryption": "^8.2|^9.0",
- "illuminate/http": "^8.2|^9.0",
- "illuminate/support": "^8.2|^9.0",
- "lcobucci/jwt": "^3.4|^4.0",
- "league/oauth2-server": "^8.2",
- "nyholm/psr7": "^1.3",
- "php": "^7.3|^8.0",
- "phpseclib/phpseclib": "^2.0|^3.0",
- "symfony/psr-http-message-bridge": "^2.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.0",
- "orchestra/testbench": "^6.0|^7.0",
- "phpunit/phpunit": "^9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "10.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Passport\\PassportServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Passport\\": "src/",
- "Laravel\\Passport\\Database\\Factories\\": "database/factories/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Laravel Passport provides OAuth2 server support to Laravel.",
- "keywords": [
- "laravel",
- "oauth",
- "passport"
- ],
- "support": {
- "issues": "https://github.com/laravel/passport/issues",
- "source": "https://github.com/laravel/passport"
- },
- "time": "2022-02-15T21:44:15+00:00"
- },
- {
- "name": "laravel/serializable-closure",
- "version": "v1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/serializable-closure.git",
- "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/9e4b005daa20b0c161f3845040046dc9ddc1d74e",
- "reference": "9e4b005daa20b0c161f3845040046dc9ddc1d74e",
- "shasum": ""
- },
- "require": {
- "php": "^7.3|^8.0"
- },
- "require-dev": {
- "pestphp/pest": "^1.18",
- "phpstan/phpstan": "^0.12.98",
- "symfony/var-dumper": "^5.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\SerializableClosure\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- },
- {
- "name": "Nuno Maduro",
- "email": "nuno@laravel.com"
- }
- ],
- "description": "Laravel Serializable Closure provides an easy and secure way to serialize closures in PHP.",
- "keywords": [
- "closure",
- "laravel",
- "serializable"
- ],
- "support": {
- "issues": "https://github.com/laravel/serializable-closure/issues",
- "source": "https://github.com/laravel/serializable-closure"
- },
- "time": "2022-02-11T19:23:53+00:00"
- },
- {
- "name": "laravel/tinker",
- "version": "v2.7.0",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/tinker.git",
- "reference": "5f2f9815b7631b9f586a3de7933c25f9327d4073"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/5f2f9815b7631b9f586a3de7933c25f9327d4073",
- "reference": "5f2f9815b7631b9f586a3de7933c25f9327d4073",
- "shasum": ""
- },
- "require": {
- "illuminate/console": "^6.0|^7.0|^8.0|^9.0",
- "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0",
- "illuminate/support": "^6.0|^7.0|^8.0|^9.0",
- "php": "^7.2.5|^8.0",
- "psy/psysh": "^0.10.4|^0.11.1",
- "symfony/var-dumper": "^4.3.4|^5.0|^6.0"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.3|^1.4.2",
- "phpunit/phpunit": "^8.5.8|^9.3.3"
- },
- "suggest": {
- "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0)."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Tinker\\TinkerServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Tinker\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Powerful REPL for the Laravel framework.",
- "keywords": [
- "REPL",
- "Tinker",
- "laravel",
- "psysh"
- ],
- "support": {
- "issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v2.7.0"
- },
- "time": "2022-01-10T08:52:49+00:00"
- },
- {
- "name": "lcobucci/clock",
- "version": "2.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/lcobucci/clock.git",
- "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/lcobucci/clock/zipball/353d83fe2e6ae95745b16b3d911813df6a05bfb3",
- "reference": "353d83fe2e6ae95745b16b3d911813df6a05bfb3",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "infection/infection": "^0.17",
- "lcobucci/coding-standard": "^6.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-deprecation-rules": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/php-code-coverage": "9.1.4",
- "phpunit/phpunit": "9.3.7"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Lcobucci\\Clock\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Luís Cobucci",
- "email": "lcobucci@gmail.com"
- }
- ],
- "description": "Yet another clock abstraction",
- "support": {
- "issues": "https://github.com/lcobucci/clock/issues",
- "source": "https://github.com/lcobucci/clock/tree/2.0.x"
- },
- "funding": [
- {
- "url": "https://github.com/lcobucci",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/lcobucci",
- "type": "patreon"
- }
- ],
- "time": "2020-08-27T18:56:02+00:00"
- },
- {
- "name": "lcobucci/jwt",
- "version": "4.1.5",
- "source": {
- "type": "git",
- "url": "https://github.com/lcobucci/jwt.git",
- "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/lcobucci/jwt/zipball/fe2d89f2eaa7087af4aa166c6f480ef04e000582",
- "reference": "fe2d89f2eaa7087af4aa166c6f480ef04e000582",
- "shasum": ""
- },
- "require": {
- "ext-hash": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "ext-openssl": "*",
- "ext-sodium": "*",
- "lcobucci/clock": "^2.0",
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "infection/infection": "^0.21",
- "lcobucci/coding-standard": "^6.0",
- "mikey179/vfsstream": "^1.6.7",
- "phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-deprecation-rules": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpstan/phpstan-strict-rules": "^0.12",
- "phpunit/php-invoker": "^3.1",
- "phpunit/phpunit": "^9.5"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Lcobucci\\JWT\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Luís Cobucci",
- "email": "lcobucci@gmail.com",
- "role": "Developer"
- }
- ],
- "description": "A simple library to work with JSON Web Token and JSON Web Signature",
- "keywords": [
- "JWS",
- "jwt"
- ],
- "support": {
- "issues": "https://github.com/lcobucci/jwt/issues",
- "source": "https://github.com/lcobucci/jwt/tree/4.1.5"
- },
- "funding": [
- {
- "url": "https://github.com/lcobucci",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/lcobucci",
- "type": "patreon"
- }
- ],
- "time": "2021-09-28T19:34:56+00:00"
- },
- {
- "name": "league/commonmark",
- "version": "2.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/commonmark.git",
- "reference": "47b015bc4e50fd4438c1ffef6139a1fb65d2ab71"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/47b015bc4e50fd4438c1ffef6139a1fb65d2ab71",
- "reference": "47b015bc4e50fd4438c1ffef6139a1fb65d2ab71",
- "shasum": ""
- },
- "require": {
- "ext-mbstring": "*",
- "league/config": "^1.1.1",
- "php": "^7.4 || ^8.0",
- "psr/event-dispatcher": "^1.0",
- "symfony/deprecation-contracts": "^2.1 || ^3.0",
- "symfony/polyfill-php80": "^1.15"
- },
- "require-dev": {
- "cebe/markdown": "^1.0",
- "commonmark/cmark": "0.30.0",
- "commonmark/commonmark.js": "0.30.0",
- "composer/package-versions-deprecated": "^1.8",
- "erusev/parsedown": "^1.0",
- "ext-json": "*",
- "github/gfm": "0.29.0",
- "michelf/php-markdown": "^1.4",
- "phpstan/phpstan": "^0.12.88 || ^1.0.0",
- "phpunit/phpunit": "^9.5.5",
- "scrutinizer/ocular": "^1.8.1",
- "symfony/finder": "^5.3",
- "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0 | ^6.0",
- "unleashedtech/php-coding-standard": "^3.1",
- "vimeo/psalm": "^4.7.3"
- },
- "suggest": {
- "symfony/yaml": "v2.3+ required if using the Front Matter extension"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.3-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\CommonMark\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
- }
- ],
- "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)",
- "homepage": "https://commonmark.thephpleague.com",
- "keywords": [
- "commonmark",
- "flavored",
- "gfm",
- "github",
- "github-flavored",
- "markdown",
- "md",
- "parser"
- ],
- "support": {
- "docs": "https://commonmark.thephpleague.com/",
- "forum": "https://github.com/thephpleague/commonmark/discussions",
- "issues": "https://github.com/thephpleague/commonmark/issues",
- "rss": "https://github.com/thephpleague/commonmark/releases.atom",
- "source": "https://github.com/thephpleague/commonmark"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/commonmark",
- "type": "tidelift"
- }
- ],
- "time": "2022-02-26T21:24:45+00:00"
- },
- {
- "name": "league/config",
- "version": "v1.1.1",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/config.git",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/config/zipball/a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
- "reference": "a9d39eeeb6cc49d10a6e6c36f22c4c1f4a767f3e",
- "shasum": ""
- },
- "require": {
- "dflydev/dot-access-data": "^3.0.1",
- "nette/schema": "^1.2",
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "phpstan/phpstan": "^0.12.90",
- "phpunit/phpunit": "^9.5.5",
- "scrutinizer/ocular": "^1.8.1",
- "unleashedtech/php-coding-standard": "^3.1",
- "vimeo/psalm": "^4.7.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Config\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Colin O'Dell",
- "email": "colinodell@gmail.com",
- "homepage": "https://www.colinodell.com",
- "role": "Lead Developer"
- }
- ],
- "description": "Define configuration arrays with strict schemas and access values with dot notation",
- "homepage": "https://config.thephpleague.com",
- "keywords": [
- "array",
- "config",
- "configuration",
- "dot",
- "dot-access",
- "nested",
- "schema"
- ],
- "support": {
- "docs": "https://config.thephpleague.com/",
- "issues": "https://github.com/thephpleague/config/issues",
- "rss": "https://github.com/thephpleague/config/releases.atom",
- "source": "https://github.com/thephpleague/config"
- },
- "funding": [
- {
- "url": "https://www.colinodell.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://www.paypal.me/colinpodell/10.00",
- "type": "custom"
- },
- {
- "url": "https://github.com/colinodell",
- "type": "github"
- }
- ],
- "time": "2021-08-14T12:15:32+00:00"
- },
- {
- "name": "league/event",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/event.git",
- "reference": "d2cc124cf9a3fab2bb4ff963307f60361ce4d119"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/event/zipball/d2cc124cf9a3fab2bb4ff963307f60361ce4d119",
- "reference": "d2cc124cf9a3fab2bb4ff963307f60361ce4d119",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4.0"
- },
- "require-dev": {
- "henrikbjorn/phpspec-code-coverage": "~1.0.1",
- "phpspec/phpspec": "^2.2"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Event\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
- }
- ],
- "description": "Event package",
- "keywords": [
- "emitter",
- "event",
- "listener"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/event/issues",
- "source": "https://github.com/thephpleague/event/tree/master"
- },
- "time": "2018-11-26T11:52:41+00:00"
- },
- {
- "name": "league/flysystem",
- "version": "1.1.9",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/flysystem.git",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/094defdb4a7001845300334e7c1ee2335925ef99",
- "reference": "094defdb4a7001845300334e7c1ee2335925ef99",
- "shasum": ""
- },
- "require": {
- "ext-fileinfo": "*",
- "league/mime-type-detection": "^1.3",
- "php": "^7.2.5 || ^8.0"
- },
- "conflict": {
- "league/flysystem-sftp": "<1.0.6"
- },
- "require-dev": {
- "phpspec/prophecy": "^1.11.1",
- "phpunit/phpunit": "^8.5.8"
- },
- "suggest": {
- "ext-ftp": "Allows you to use FTP server storage",
- "ext-openssl": "Allows you to use FTPS server storage",
- "league/flysystem-aws-s3-v2": "Allows you to use S3 storage with AWS SDK v2",
- "league/flysystem-aws-s3-v3": "Allows you to use S3 storage with AWS SDK v3",
- "league/flysystem-azure": "Allows you to use Windows Azure Blob storage",
- "league/flysystem-cached-adapter": "Flysystem adapter decorator for metadata caching",
- "league/flysystem-eventable-filesystem": "Allows you to use EventableFilesystem",
- "league/flysystem-rackspace": "Allows you to use Rackspace Cloud Files",
- "league/flysystem-sftp": "Allows you to use SFTP server storage via phpseclib",
- "league/flysystem-webdav": "Allows you to use WebDAV storage",
- "league/flysystem-ziparchive": "Allows you to use ZipArchive adapter",
- "spatie/flysystem-dropbox": "Allows you to use Dropbox storage",
- "srmklive/flysystem-dropbox-v2": "Allows you to use Dropbox storage for PHP 5 applications"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "League\\Flysystem\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frenky.net"
- }
- ],
- "description": "Filesystem abstraction: Many filesystems, one API.",
- "keywords": [
- "Cloud Files",
- "WebDAV",
- "abstraction",
- "aws",
- "cloud",
- "copy.com",
- "dropbox",
- "file systems",
- "files",
- "filesystem",
- "filesystems",
- "ftp",
- "rackspace",
- "remote",
- "s3",
- "sftp",
- "storage"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/1.1.9"
- },
- "funding": [
- {
- "url": "https://offset.earth/frankdejonge",
- "type": "other"
- }
- ],
- "time": "2021-12-09T09:40:50+00:00"
- },
- {
- "name": "league/mime-type-detection",
- "version": "1.9.0",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/aa70e813a6ad3d1558fc927863d47309b4c23e69",
- "reference": "aa70e813a6ad3d1558fc927863d47309b4c23e69",
- "shasum": ""
- },
- "require": {
- "ext-fileinfo": "*",
- "php": "^7.2 || ^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^3.2",
- "phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\MimeTypeDetection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Frank de Jonge",
- "email": "info@frankdejonge.nl"
- }
- ],
- "description": "Mime-type detection for Flysystem",
- "support": {
- "issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.9.0"
- },
- "funding": [
- {
- "url": "https://github.com/frankdejonge",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/league/flysystem",
- "type": "tidelift"
- }
- ],
- "time": "2021-11-21T11:48:40+00:00"
- },
- {
- "name": "league/oauth2-server",
- "version": "8.3.3",
- "source": {
- "type": "git",
- "url": "https://github.com/thephpleague/oauth2-server.git",
- "reference": "f5698a3893eda9a17bcd48636990281e7ca77b2a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/f5698a3893eda9a17bcd48636990281e7ca77b2a",
- "reference": "f5698a3893eda9a17bcd48636990281e7ca77b2a",
- "shasum": ""
- },
- "require": {
- "defuse/php-encryption": "^2.2.1",
- "ext-json": "*",
- "ext-openssl": "*",
- "lcobucci/jwt": "^3.4.6 || ^4.0.4",
- "league/event": "^2.2",
- "php": "^7.2 || ^8.0",
- "psr/http-message": "^1.0.1"
- },
- "replace": {
- "league/oauth2server": "*",
- "lncd/oauth2": "*"
- },
- "require-dev": {
- "laminas/laminas-diactoros": "^2.4.1",
- "phpstan/phpstan": "^0.12.57",
- "phpstan/phpstan-phpunit": "^0.12.16",
- "phpunit/phpunit": "^8.5.13",
- "roave/security-advisories": "dev-master"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "League\\OAuth2\\Server\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Alex Bilbie",
- "email": "hello@alexbilbie.com",
- "homepage": "http://www.alexbilbie.com",
- "role": "Developer"
- },
- {
- "name": "Andy Millington",
- "email": "andrew@noexceptions.io",
- "homepage": "https://www.noexceptions.io",
- "role": "Developer"
- }
- ],
- "description": "A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.",
- "homepage": "https://oauth2.thephpleague.com/",
- "keywords": [
- "Authentication",
- "api",
- "auth",
- "authorisation",
- "authorization",
- "oauth",
- "oauth 2",
- "oauth 2.0",
- "oauth2",
- "protect",
- "resource",
- "secure",
- "server"
- ],
- "support": {
- "issues": "https://github.com/thephpleague/oauth2-server/issues",
- "source": "https://github.com/thephpleague/oauth2-server/tree/8.3.3"
- },
- "funding": [
- {
- "url": "https://github.com/sephster",
- "type": "github"
- }
- ],
- "time": "2021-10-11T20:41:49+00:00"
- },
- {
- "name": "monolog/monolog",
- "version": "2.3.5",
- "source": {
- "type": "git",
- "url": "https://github.com/Seldaek/monolog.git",
- "reference": "fd4380d6fc37626e2f799f29d91195040137eba9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd4380d6fc37626e2f799f29d91195040137eba9",
- "reference": "fd4380d6fc37626e2f799f29d91195040137eba9",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2",
- "psr/log": "^1.0.1 || ^2.0 || ^3.0"
- },
- "provide": {
- "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
- },
- "require-dev": {
- "aws/aws-sdk-php": "^2.4.9 || ^3.0",
- "doctrine/couchdb": "~1.0@dev",
- "elasticsearch/elasticsearch": "^7",
- "graylog2/gelf-php": "^1.4.2",
- "mongodb/mongodb": "^1.8",
- "php-amqplib/php-amqplib": "~2.4 || ^3",
- "php-console/php-console": "^3.1.3",
- "phpspec/prophecy": "^1.6.1",
- "phpstan/phpstan": "^0.12.91",
- "phpunit/phpunit": "^8.5",
- "predis/predis": "^1.1",
- "rollbar/rollbar": "^1.3",
- "ruflin/elastica": ">=0.90@dev",
- "swiftmailer/swiftmailer": "^5.3|^6.0"
- },
- "suggest": {
- "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
- "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
- "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
- "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
- "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
- "ext-mbstring": "Allow to work properly with unicode symbols",
- "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
- "ext-openssl": "Required to send log messages using SSL",
- "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
- "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
- "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
- "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
- "php-console/php-console": "Allow sending log messages to Google Chrome",
- "rollbar/rollbar": "Allow sending log messages to Rollbar",
- "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Monolog\\": "src/Monolog"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jordi Boggiano",
- "email": "j.boggiano@seld.be",
- "homepage": "https://seld.be"
- }
- ],
- "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
- "homepage": "https://github.com/Seldaek/monolog",
- "keywords": [
- "log",
- "logging",
- "psr-3"
- ],
- "support": {
- "issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/2.3.5"
- },
- "funding": [
- {
- "url": "https://github.com/Seldaek",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-01T21:08:31+00:00"
- },
- {
- "name": "mtdowling/jmespath.php",
- "version": "2.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/jmespath/jmespath.php.git",
- "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
- "reference": "9b87907a81b87bc76d19a7fb2d61e61486ee9edb",
- "shasum": ""
- },
- "require": {
- "php": "^5.4 || ^7.0 || ^8.0",
- "symfony/polyfill-mbstring": "^1.17"
- },
- "require-dev": {
- "composer/xdebug-handler": "^1.4 || ^2.0",
- "phpunit/phpunit": "^4.8.36 || ^7.5.15"
- },
- "bin": [
- "bin/jp.php"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.6-dev"
- }
- },
- "autoload": {
- "files": [
- "src/JmesPath.php"
- ],
- "psr-4": {
- "JmesPath\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- }
- ],
- "description": "Declaratively specify how to extract elements from a JSON document",
- "keywords": [
- "json",
- "jsonpath"
- ],
- "support": {
- "issues": "https://github.com/jmespath/jmespath.php/issues",
- "source": "https://github.com/jmespath/jmespath.php/tree/2.6.1"
- },
- "time": "2021-06-14T00:11:39+00:00"
- },
- {
- "name": "nesbot/carbon",
- "version": "2.57.0",
- "source": {
- "type": "git",
- "url": "https://github.com/briannesbitt/Carbon.git",
- "reference": "4a54375c21eea4811dbd1149fe6b246517554e78"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/4a54375c21eea4811dbd1149fe6b246517554e78",
- "reference": "4a54375c21eea4811dbd1149fe6b246517554e78",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "php": "^7.1.8 || ^8.0",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation": "^3.4 || ^4.0 || ^5.0 || ^6.0"
- },
- "require-dev": {
- "doctrine/dbal": "^2.0 || ^3.0",
- "doctrine/orm": "^2.7",
- "friendsofphp/php-cs-fixer": "^3.0",
- "kylekatarnls/multi-tester": "^2.0",
- "phpmd/phpmd": "^2.9",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12.54 || ^1.0",
- "phpunit/phpunit": "^7.5.20 || ^8.5.14",
- "squizlabs/php_codesniffer": "^3.4"
- },
- "bin": [
- "bin/carbon"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-3.x": "3.x-dev",
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Carbon\\Laravel\\ServiceProvider"
- ]
- },
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Carbon\\": "src/Carbon/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Brian Nesbitt",
- "email": "brian@nesbot.com",
- "homepage": "https://markido.com"
- },
- {
- "name": "kylekatarnls",
- "homepage": "https://github.com/kylekatarnls"
- }
- ],
- "description": "An API extension for DateTime that supports 281 different languages.",
- "homepage": "https://carbon.nesbot.com",
- "keywords": [
- "date",
- "datetime",
- "time"
- ],
- "support": {
- "docs": "https://carbon.nesbot.com/docs",
- "issues": "https://github.com/briannesbitt/Carbon/issues",
- "source": "https://github.com/briannesbitt/Carbon"
- },
- "funding": [
- {
- "url": "https://opencollective.com/Carbon",
- "type": "open_collective"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/nesbot/carbon",
- "type": "tidelift"
- }
- ],
- "time": "2022-02-13T18:13:33+00:00"
- },
- {
- "name": "nette/schema",
- "version": "v1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/schema.git",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/9a39cef03a5b34c7de64f551538cbba05c2be5df",
- "reference": "9a39cef03a5b34c7de64f551538cbba05c2be5df",
- "shasum": ""
- },
- "require": {
- "nette/utils": "^2.5.7 || ^3.1.5 || ^4.0",
- "php": ">=7.1 <8.2"
- },
- "require-dev": {
- "nette/tester": "^2.3 || ^2.4",
- "phpstan/phpstan-nette": "^0.12",
- "tracy/tracy": "^2.7"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
- }
- ],
- "description": "📐 Nette Schema: validating data structures against a given Schema.",
- "homepage": "https://nette.org",
- "keywords": [
- "config",
- "nette"
- ],
- "support": {
- "issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.2.2"
- },
- "time": "2021-10-15T11:40:02+00:00"
- },
- {
- "name": "nette/utils",
- "version": "v3.2.7",
- "source": {
- "type": "git",
- "url": "https://github.com/nette/utils.git",
- "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/0af4e3de4df9f1543534beab255ccf459e7a2c99",
- "reference": "0af4e3de4df9f1543534beab255ccf459e7a2c99",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2 <8.2"
- },
- "conflict": {
- "nette/di": "<3.0.6"
- },
- "require-dev": {
- "nette/tester": "~2.0",
- "phpstan/phpstan": "^1.0",
- "tracy/tracy": "^2.3"
- },
- "suggest": {
- "ext-gd": "to use Image",
- "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
- "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
- "ext-json": "to use Nette\\Utils\\Json",
- "ext-mbstring": "to use Strings::lower() etc...",
- "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()",
- "ext-xml": "to use Strings::length() etc. when mbstring is not available"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.2-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause",
- "GPL-2.0-only",
- "GPL-3.0-only"
- ],
- "authors": [
- {
- "name": "David Grudl",
- "homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
- }
- ],
- "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.",
- "homepage": "https://nette.org",
- "keywords": [
- "array",
- "core",
- "datetime",
- "images",
- "json",
- "nette",
- "paginator",
- "password",
- "slugify",
- "string",
- "unicode",
- "utf-8",
- "utility",
- "validation"
- ],
- "support": {
- "issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v3.2.7"
- },
- "time": "2022-01-24T11:29:14+00:00"
- },
- {
- "name": "nikic/php-parser",
- "version": "v4.13.2",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "210577fe3cf7badcc5814d99455df46564f3c077"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077",
- "reference": "210577fe3cf7badcc5814d99455df46564f3c077",
- "shasum": ""
- },
- "require": {
- "ext-tokenizer": "*",
- "php": ">=7.0"
- },
- "require-dev": {
- "ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
- },
- "bin": [
- "bin/php-parse"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.9-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/v4.13.2"
- },
- "time": "2021-11-30T19:35:32+00:00"
- },
- {
- "name": "nyholm/psr7",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/Nyholm/psr7.git",
- "reference": "1461e07a0f2a975a52082ca3b769ca912b816226"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/Nyholm/psr7/zipball/1461e07a0f2a975a52082ca3b769ca912b816226",
- "reference": "1461e07a0f2a975a52082ca3b769ca912b816226",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "php-http/message-factory": "^1.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.0"
- },
- "provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "http-interop/http-factory-tests": "^0.9",
- "php-http/psr7-integration-tests": "^1.0",
- "phpunit/phpunit": "^7.5 || 8.5 || 9.4",
- "symfony/error-handler": "^4.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Nyholm\\Psr7\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com"
- },
- {
- "name": "Martijn van der Ven",
- "email": "martijn@vanderven.se"
- }
- ],
- "description": "A fast PHP7 implementation of PSR-7",
- "homepage": "https://tnyholm.se",
- "keywords": [
- "psr-17",
- "psr-7"
- ],
- "support": {
- "issues": "https://github.com/Nyholm/psr7/issues",
- "source": "https://github.com/Nyholm/psr7/tree/1.5.0"
- },
- "funding": [
- {
- "url": "https://github.com/Zegnat",
- "type": "github"
- },
- {
- "url": "https://github.com/nyholm",
- "type": "github"
- }
- ],
- "time": "2022-02-02T18:37:57+00:00"
- },
- {
- "name": "opis/closure",
- "version": "3.6.3",
- "source": {
- "type": "git",
- "url": "https://github.com/opis/closure.git",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/opis/closure/zipball/3d81e4309d2a927abbe66df935f4bb60082805ad",
- "reference": "3d81e4309d2a927abbe66df935f4bb60082805ad",
- "shasum": ""
- },
- "require": {
- "php": "^5.4 || ^7.0 || ^8.0"
- },
- "require-dev": {
- "jeremeamia/superclosure": "^2.0",
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.6.x-dev"
- }
- },
- "autoload": {
- "files": [
- "functions.php"
- ],
- "psr-4": {
- "Opis\\Closure\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Marius Sarca",
- "email": "marius.sarca@gmail.com"
- },
- {
- "name": "Sorin Sarca",
- "email": "sarca_sorin@hotmail.com"
- }
- ],
- "description": "A library that can be used to serialize closures (anonymous functions) and arbitrary objects.",
- "homepage": "https://opis.io/closure",
- "keywords": [
- "anonymous functions",
- "closure",
- "function",
- "serializable",
- "serialization",
- "serialize"
- ],
- "support": {
- "issues": "https://github.com/opis/closure/issues",
- "source": "https://github.com/opis/closure/tree/3.6.3"
- },
- "time": "2022-01-27T09:35:39+00:00"
- },
- {
- "name": "paragonie/constant_time_encoding",
- "version": "v2.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/paragonie/constant_time_encoding.git",
- "reference": "9229e15f2e6ba772f0c55dd6986c563b937170a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/9229e15f2e6ba772f0c55dd6986c563b937170a8",
- "reference": "9229e15f2e6ba772f0c55dd6986c563b937170a8",
- "shasum": ""
- },
- "require": {
- "php": "^7|^8"
- },
- "require-dev": {
- "phpunit/phpunit": "^6|^7|^8|^9",
- "vimeo/psalm": "^1|^2|^3|^4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "ParagonIE\\ConstantTime\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com",
- "role": "Maintainer"
- },
- {
- "name": "Steve 'Sc00bz' Thomas",
- "email": "steve@tobtu.com",
- "homepage": "https://www.tobtu.com",
- "role": "Original Developer"
- }
- ],
- "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
- "keywords": [
- "base16",
- "base32",
- "base32_decode",
- "base32_encode",
- "base64",
- "base64_decode",
- "base64_encode",
- "bin2hex",
- "encoding",
- "hex",
- "hex2bin",
- "rfc4648"
- ],
- "support": {
- "email": "info@paragonie.com",
- "issues": "https://github.com/paragonie/constant_time_encoding/issues",
- "source": "https://github.com/paragonie/constant_time_encoding"
- },
- "time": "2022-01-17T05:32:27+00:00"
- },
- {
- "name": "paragonie/random_compat",
- "version": "v9.99.100",
- "source": {
- "type": "git",
- "url": "https://github.com/paragonie/random_compat.git",
- "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
- "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
- "shasum": ""
- },
- "require": {
- "php": ">= 7"
- },
- "require-dev": {
- "phpunit/phpunit": "4.*|5.*",
- "vimeo/psalm": "^1"
- },
- "suggest": {
- "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
- },
- "type": "library",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com"
- }
- ],
- "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
- "keywords": [
- "csprng",
- "polyfill",
- "pseudorandom",
- "random"
- ],
- "support": {
- "email": "info@paragonie.com",
- "issues": "https://github.com/paragonie/random_compat/issues",
- "source": "https://github.com/paragonie/random_compat"
- },
- "time": "2020-10-15T08:29:30+00:00"
- },
- {
- "name": "php-http/message-factory",
- "version": "v1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-http/message-factory.git",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-http/message-factory/zipball/a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "reference": "a478cb11f66a6ac48d8954216cfed9aa06a501a1",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4",
- "psr/http-message": "^1.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-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/master"
- },
- "time": "2015-12-19T14:08:53+00:00"
- },
- {
- "name": "phpoption/phpoption",
- "version": "1.8.1",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/php-option.git",
- "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15",
- "reference": "eab7a0df01fe2344d172bff4cd6dbd3f8b84ad15",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "phpunit/phpunit": "^6.5.14 || ^7.5.20 || ^8.5.19 || ^9.5.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.8-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "PhpOption\\": "src/PhpOption/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache-2.0"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com",
- "homepage": "https://github.com/schmittjoh"
- },
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- }
- ],
- "description": "Option Type for PHP",
- "keywords": [
- "language",
- "option",
- "php",
- "type"
- ],
- "support": {
- "issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.8.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpoption/phpoption",
- "type": "tidelift"
- }
- ],
- "time": "2021-12-04T23:24:31+00:00"
- },
- {
- "name": "phpseclib/phpseclib",
- "version": "3.0.13",
- "source": {
- "type": "git",
- "url": "https://github.com/phpseclib/phpseclib.git",
- "reference": "1443ab79364eea48665fa8c09ac67f37d1025f7e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/1443ab79364eea48665fa8c09ac67f37d1025f7e",
- "reference": "1443ab79364eea48665fa8c09ac67f37d1025f7e",
- "shasum": ""
- },
- "require": {
- "paragonie/constant_time_encoding": "^1|^2",
- "paragonie/random_compat": "^1.4|^2.0|^9.99.99",
- "php": ">=5.6.1"
- },
- "require-dev": {
- "phing/phing": "~2.7",
- "phpunit/phpunit": "^5.7|^6.0|^9.4",
- "squizlabs/php_codesniffer": "~2.0"
- },
- "suggest": {
- "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
- "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
- "ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
- "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
- },
- "type": "library",
- "autoload": {
- "files": [
- "phpseclib/bootstrap.php"
- ],
- "psr-4": {
- "phpseclib3\\": "phpseclib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jim Wigginton",
- "email": "terrafrost@php.net",
- "role": "Lead Developer"
- },
- {
- "name": "Patrick Monnerat",
- "email": "pm@datasphere.ch",
- "role": "Developer"
- },
- {
- "name": "Andreas Fischer",
- "email": "bantu@phpbb.com",
- "role": "Developer"
- },
- {
- "name": "Hans-Jürgen Petrich",
- "email": "petrich@tronic-media.com",
- "role": "Developer"
- },
- {
- "name": "Graham Campbell",
- "email": "graham@alt-three.com",
- "role": "Developer"
- }
- ],
- "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
- "homepage": "http://phpseclib.sourceforge.net",
- "keywords": [
- "BigInteger",
- "aes",
- "asn.1",
- "asn1",
- "blowfish",
- "crypto",
- "cryptography",
- "encryption",
- "rsa",
- "security",
- "sftp",
- "signature",
- "signing",
- "ssh",
- "twofish",
- "x.509",
- "x509"
- ],
- "support": {
- "issues": "https://github.com/phpseclib/phpseclib/issues",
- "source": "https://github.com/phpseclib/phpseclib/tree/3.0.13"
- },
- "funding": [
- {
- "url": "https://github.com/terrafrost",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/phpseclib",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
- "type": "tidelift"
- }
- ],
- "time": "2022-01-30T08:50:05+00:00"
- },
- {
- "name": "psr/cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/cache.git",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
- "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Cache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for caching libraries",
- "keywords": [
- "cache",
- "psr",
- "psr-6"
- ],
- "support": {
- "source": "https://github.com/php-fig/cache/tree/master"
- },
- "time": "2016-08-06T20:24:11+00:00"
- },
- {
- "name": "psr/container",
- "version": "1.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/container.git",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
- "reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
- "shasum": ""
- },
- "require": {
- "php": ">=7.4.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Psr\\Container\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common Container Interface (PHP FIG PSR-11)",
- "homepage": "https://github.com/php-fig/container",
- "keywords": [
- "PSR-11",
- "container",
- "container-interface",
- "container-interop",
- "psr"
- ],
- "support": {
- "issues": "https://github.com/php-fig/container/issues",
- "source": "https://github.com/php-fig/container/tree/1.1.2"
- },
- "time": "2021-11-05T16:50:12+00:00"
- },
- {
- "name": "psr/event-dispatcher",
- "version": "1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/event-dispatcher.git",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\EventDispatcher\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Standard interfaces for event handling.",
- "keywords": [
- "events",
- "psr",
- "psr-14"
- ],
- "support": {
- "issues": "https://github.com/php-fig/event-dispatcher/issues",
- "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
- },
- "time": "2019-01-08T18:20:26+00:00"
- },
- {
- "name": "psr/http-client",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-client.git",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0"
- },
- "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": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-client/tree/master"
- },
- "time": "2020-06-29T06:28:15+00:00"
- },
- {
- "name": "psr/http-factory",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-factory.git",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0"
- },
- "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": "http://www.php-fig.org/"
- }
- ],
- "description": "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/tree/master"
- },
- "time": "2019-04-30T12:38:16+00:00"
- },
- {
- "name": "psr/http-message",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/http-message.git",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363",
- "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "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": "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/master"
- },
- "time": "2016-08-06T14:39:51+00:00"
- },
- {
- "name": "psr/log",
- "version": "1.1.4",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/log.git",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
- "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Log\\": "Psr/Log/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for logging libraries",
- "homepage": "https://github.com/php-fig/log",
- "keywords": [
- "log",
- "psr",
- "psr-3"
- ],
- "support": {
- "source": "https://github.com/php-fig/log/tree/1.1.4"
- },
- "time": "2021-05-03T11:20:27+00:00"
- },
- {
- "name": "psr/simple-cache",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/php-fig/simple-cache.git",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\SimpleCache\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "http://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for simple caching",
- "keywords": [
- "cache",
- "caching",
- "psr",
- "psr-16",
- "simple-cache"
- ],
- "support": {
- "source": "https://github.com/php-fig/simple-cache/tree/master"
- },
- "time": "2017-10-23T01:57:42+00:00"
- },
- {
- "name": "psy/psysh",
- "version": "v0.11.2",
- "source": {
- "type": "git",
- "url": "https://github.com/bobthecow/psysh.git",
- "reference": "7f7da640d68b9c9fec819caae7c744a213df6514"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7f7da640d68b9c9fec819caae7c744a213df6514",
- "reference": "7f7da640d68b9c9fec819caae7c744a213df6514",
- "shasum": ""
- },
- "require": {
- "ext-json": "*",
- "ext-tokenizer": "*",
- "nikic/php-parser": "^4.0 || ^3.1",
- "php": "^8.0 || ^7.0.8",
- "symfony/console": "^6.0 || ^5.0 || ^4.0 || ^3.4",
- "symfony/var-dumper": "^6.0 || ^5.0 || ^4.0 || ^3.4"
- },
- "conflict": {
- "symfony/console": "4.4.37 || 5.3.14 || 5.3.15 || 5.4.3 || 5.4.4 || 6.0.3 || 6.0.4"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.2",
- "hoa/console": "3.17.05.02"
- },
- "suggest": {
- "ext-pcntl": "Enabling the PCNTL extension makes PsySH a lot happier :)",
- "ext-pdo-sqlite": "The doc command requires SQLite to work.",
- "ext-posix": "If you have PCNTL, you'll want the POSIX extension as well.",
- "ext-readline": "Enables support for arrow-key history navigation, and showing and manipulating command history.",
- "hoa/console": "A pure PHP readline implementation. You'll want this if your PHP install doesn't already support readline or libedit."
- },
- "bin": [
- "bin/psysh"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "0.11.x-dev"
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Psy\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Justin Hileman",
- "email": "justin@justinhileman.info",
- "homepage": "http://justinhileman.com"
- }
- ],
- "description": "An interactive shell for modern PHP.",
- "homepage": "http://psysh.org",
- "keywords": [
- "REPL",
- "console",
- "interactive",
- "shell"
- ],
- "support": {
- "issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.11.2"
- },
- "time": "2022-02-28T15:28:54+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": "ramsey/collection",
- "version": "1.2.2",
- "source": {
- "type": "git",
- "url": "https://github.com/ramsey/collection.git",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ramsey/collection/zipball/cccc74ee5e328031b15640b51056ee8d3bb66c0a",
- "reference": "cccc74ee5e328031b15640b51056ee8d3bb66c0a",
- "shasum": ""
- },
- "require": {
- "php": "^7.3 || ^8",
- "symfony/polyfill-php81": "^1.23"
- },
- "require-dev": {
- "captainhook/captainhook": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "ergebnis/composer-normalize": "^2.6",
- "fakerphp/faker": "^1.5",
- "hamcrest/hamcrest-php": "^2",
- "jangregor/phpstan-prophecy": "^0.8",
- "mockery/mockery": "^1.3",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpstan/extension-installer": "^1",
- "phpstan/phpstan": "^0.12.32",
- "phpstan/phpstan-mockery": "^0.12.5",
- "phpstan/phpstan-phpunit": "^0.12.11",
- "phpunit/phpunit": "^8.5 || ^9",
- "psy/psysh": "^0.10.4",
- "slevomat/coding-standard": "^6.3",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.4"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Ramsey\\Collection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ben Ramsey",
- "email": "ben@benramsey.com",
- "homepage": "https://benramsey.com"
- }
- ],
- "description": "A PHP library for representing and manipulating collections.",
- "keywords": [
- "array",
- "collection",
- "hash",
- "map",
- "queue",
- "set"
- ],
- "support": {
- "issues": "https://github.com/ramsey/collection/issues",
- "source": "https://github.com/ramsey/collection/tree/1.2.2"
- },
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/collection",
- "type": "tidelift"
- }
- ],
- "time": "2021-10-10T03:01:02+00:00"
- },
- {
- "name": "ramsey/uuid",
- "version": "4.2.3",
- "source": {
- "type": "git",
- "url": "https://github.com/ramsey/uuid.git",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "reference": "fc9bb7fb5388691fd7373cd44dcb4d63bbcf24df",
- "shasum": ""
- },
- "require": {
- "brick/math": "^0.8 || ^0.9",
- "ext-json": "*",
- "php": "^7.2 || ^8.0",
- "ramsey/collection": "^1.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php80": "^1.14"
- },
- "replace": {
- "rhumsaa/uuid": "self.version"
- },
- "require-dev": {
- "captainhook/captainhook": "^5.10",
- "captainhook/plugin-composer": "^5.3",
- "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
- "doctrine/annotations": "^1.8",
- "ergebnis/composer-normalize": "^2.15",
- "mockery/mockery": "^1.3",
- "moontoast/math": "^1.1",
- "paragonie/random-lib": "^2",
- "php-mock/php-mock": "^2.2",
- "php-mock/php-mock-mockery": "^1.3",
- "php-parallel-lint/php-parallel-lint": "^1.1",
- "phpbench/phpbench": "^1.0",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-mockery": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpunit": "^8.5 || ^9",
- "slevomat/coding-standard": "^7.0",
- "squizlabs/php_codesniffer": "^3.5",
- "vimeo/psalm": "^4.9"
- },
- "suggest": {
- "ext-bcmath": "Enables faster math with arbitrary-precision integers using BCMath.",
- "ext-ctype": "Enables faster processing of character classification using ctype functions.",
- "ext-gmp": "Enables faster math with arbitrary-precision integers using GMP.",
- "ext-uuid": "Enables the use of PeclUuidTimeGenerator and PeclUuidRandomGenerator.",
- "paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
- "ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "4.x-dev"
- },
- "captainhook": {
- "force-install": true
- }
- },
- "autoload": {
- "files": [
- "src/functions.php"
- ],
- "psr-4": {
- "Ramsey\\Uuid\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A PHP library for generating and working with universally unique identifiers (UUIDs).",
- "keywords": [
- "guid",
- "identifier",
- "uuid"
- ],
- "support": {
- "issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.2.3"
- },
- "funding": [
- {
- "url": "https://github.com/ramsey",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/ramsey/uuid",
- "type": "tidelift"
- }
- ],
- "time": "2021-09-25T23:10:38+00:00"
- },
- {
- "name": "stripe/stripe-php",
- "version": "v7.121.0",
- "source": {
- "type": "git",
- "url": "https://github.com/stripe/stripe-php.git",
- "reference": "e36e7afb71ae5511aae23b52dca712a0ef06d981"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/stripe/stripe-php/zipball/e36e7afb71ae5511aae23b52dca712a0ef06d981",
- "reference": "e36e7afb71ae5511aae23b52dca712a0ef06d981",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": ">=5.6.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "3.5.0",
- "phpstan/phpstan": "^1.2",
- "phpunit/phpunit": "^5.7 || ^9.0",
- "squizlabs/php_codesniffer": "^3.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Stripe\\": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Stripe and contributors",
- "homepage": "https://github.com/stripe/stripe-php/contributors"
- }
- ],
- "description": "Stripe PHP Library",
- "homepage": "https://stripe.com/",
- "keywords": [
- "api",
- "payment processing",
- "stripe"
- ],
- "support": {
- "issues": "https://github.com/stripe/stripe-php/issues",
- "source": "https://github.com/stripe/stripe-php/tree/v7.121.0"
- },
- "time": "2022-03-30T15:51:23+00:00"
- },
- {
- "name": "swiftmailer/swiftmailer",
- "version": "v6.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/swiftmailer/swiftmailer.git",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "reference": "8a5d5072dca8f48460fce2f4131fcc495eec654c",
- "shasum": ""
- },
- "require": {
- "egulias/email-validator": "^2.0|^3.1",
- "php": ">=7.0.0",
- "symfony/polyfill-iconv": "^1.0",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0"
- },
- "require-dev": {
- "mockery/mockery": "^1.0",
- "symfony/phpunit-bridge": "^4.4|^5.4"
- },
- "suggest": {
- "ext-intl": "Needed to support internationalized email addresses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "6.2-dev"
- }
- },
- "autoload": {
- "files": [
- "lib/swift_required.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Chris Corbyn"
- },
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- }
- ],
- "description": "Swiftmailer, free feature-rich PHP mailer",
- "homepage": "https://swiftmailer.symfony.com",
- "keywords": [
- "email",
- "mail",
- "mailer"
- ],
- "support": {
- "issues": "https://github.com/swiftmailer/swiftmailer/issues",
- "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.3.0"
- },
- "funding": [
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/swiftmailer/swiftmailer",
- "type": "tidelift"
- }
- ],
- "abandoned": "symfony/mailer",
- "time": "2021-10-18T15:26:12+00:00"
- },
- {
- "name": "symfony/console",
- "version": "v5.4.5",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/console.git",
- "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad",
- "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/string": "^5.1|^6.0"
- },
- "conflict": {
- "psr/log": ">=3",
- "symfony/dependency-injection": "<4.4",
- "symfony/dotenv": "<5.1",
- "symfony/event-dispatcher": "<4.4",
- "symfony/lock": "<4.4",
- "symfony/process": "<4.4"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
- },
- "require-dev": {
- "psr/log": "^1|^2",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/lock": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log": "For using the console logger",
- "symfony/event-dispatcher": "",
- "symfony/lock": "",
- "symfony/process": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Console\\": ""
- },
- "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": "Eases the creation of beautiful and testable command line interfaces",
- "homepage": "https://symfony.com",
- "keywords": [
- "cli",
- "command line",
- "console",
- "terminal"
- ],
- "support": {
- "source": "https://github.com/symfony/console/tree/v5.4.5"
- },
- "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": "2022-02-24T12:45:35+00:00"
- },
- {
- "name": "symfony/css-selector",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/css-selector.git",
- "reference": "b0a190285cd95cb019237851205b8140ef6e368e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/b0a190285cd95cb019237851205b8140ef6e368e",
- "reference": "b0a190285cd95cb019237851205b8140ef6e368e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\CssSelector\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Jean-François Simon",
- "email": "jeanfrancois.simon@sensiolabs.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Converts CSS selectors to XPath expressions",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/css-selector/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/deprecation-contracts",
- "version": "v2.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
- "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.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/v2.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": "2021-07-12T14:48:14+00:00"
- },
- {
- "name": "symfony/error-handler",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/error-handler.git",
- "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5",
- "reference": "c4ffc2cd919950d13c8c9ce32a70c70214c3ffc5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2|^3",
- "symfony/var-dumper": "^4.4|^5.0|^6.0"
- },
- "require-dev": {
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/http-kernel": "^4.4|^5.0|^6.0",
- "symfony/serializer": "^4.4|^5.0|^6.0"
- },
- "bin": [
- "Resources/bin/patch-type-declarations"
- ],
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\ErrorHandler\\": ""
- },
- "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 tools to manage errors and ease debugging PHP code",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/error-handler/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/event-dispatcher",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d",
- "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/event-dispatcher-contracts": "^2|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "symfony/dependency-injection": "<4.4"
- },
- "provide": {
- "psr/event-dispatcher-implementation": "1.0",
- "symfony/event-dispatcher-implementation": "2.0"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/stopwatch": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/dependency-injection": "",
- "symfony/http-kernel": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\EventDispatcher\\": ""
- },
- "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 tools that allow your application components to communicate with each other by dispatching events and listening to them",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/event-dispatcher-contracts",
- "version": "v2.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
- "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/event-dispatcher": "^1"
- },
- "suggest": {
- "symfony/event-dispatcher-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\EventDispatcher\\": ""
- }
- },
- "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": "Generic abstractions related to dispatching event",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.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": "2021-07-12T14:48:14+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/finder.git",
- "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d",
- "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "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": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.3"
- },
- "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": "2022-01-26T16:34:36+00:00"
- },
- {
- "name": "symfony/http-foundation",
- "version": "v5.4.6",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-foundation.git",
- "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/34e89bc147633c0f9dd6caaaf56da3b806a21465",
- "reference": "34e89bc147633c0f9dd6caaaf56da3b806a21465",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.1",
- "symfony/polyfill-php80": "^1.16"
- },
- "require-dev": {
- "predis/predis": "~1.0",
- "symfony/cache": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/mime": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/mime": "To use the file extension guesser"
- },
- "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/v5.4.6"
- },
- "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": "2022-03-05T21:03:43+00:00"
- },
- {
- "name": "symfony/http-kernel",
- "version": "v5.4.6",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/http-kernel.git",
- "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/d41f29ae9af1b5f40c7ebcddf09082953229411d",
- "reference": "d41f29ae9af1b5f40c7ebcddf09082953229411d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/event-dispatcher": "^5.0|^6.0",
- "symfony/http-foundation": "^5.3.7|^6.0",
- "symfony/polyfill-ctype": "^1.8",
- "symfony/polyfill-php73": "^1.9",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "symfony/browser-kit": "<5.4",
- "symfony/cache": "<5.0",
- "symfony/config": "<5.0",
- "symfony/console": "<4.4",
- "symfony/dependency-injection": "<5.3",
- "symfony/doctrine-bridge": "<5.0",
- "symfony/form": "<5.0",
- "symfony/http-client": "<5.0",
- "symfony/mailer": "<5.0",
- "symfony/messenger": "<5.0",
- "symfony/translation": "<5.0",
- "symfony/twig-bridge": "<5.0",
- "symfony/validator": "<5.0",
- "twig/twig": "<2.13"
- },
- "provide": {
- "psr/log-implementation": "1.0|2.0"
- },
- "require-dev": {
- "psr/cache": "^1.0|^2.0|^3.0",
- "symfony/browser-kit": "^5.4|^6.0",
- "symfony/config": "^5.0|^6.0",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/css-selector": "^4.4|^5.0|^6.0",
- "symfony/dependency-injection": "^5.3|^6.0",
- "symfony/dom-crawler": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2|^3",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/routing": "^4.4|^5.0|^6.0",
- "symfony/stopwatch": "^4.4|^5.0|^6.0",
- "symfony/translation": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2|^3",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "symfony/browser-kit": "",
- "symfony/config": "",
- "symfony/console": "",
- "symfony/dependency-injection": ""
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\HttpKernel\\": ""
- },
- "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 a structured process for converting a Request into a Response",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/http-kernel/tree/v5.4.6"
- },
- "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": "2022-03-05T21:14:51+00:00"
- },
- {
- "name": "symfony/mime",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/mime.git",
- "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/e1503cfb5c9a225350f549d3bb99296f4abfb80f",
- "reference": "e1503cfb5c9a225350f549d3bb99296f4abfb80f",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-intl-idn": "^1.10",
- "symfony/polyfill-mbstring": "^1.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "egulias/email-validator": "~3.0.0",
- "phpdocumentor/reflection-docblock": "<3.2.2",
- "phpdocumentor/type-resolver": "<1.4.0",
- "symfony/mailer": "<4.4"
- },
- "require-dev": {
- "egulias/email-validator": "^2.1.10|^3.1",
- "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/property-access": "^4.4|^5.1|^6.0",
- "symfony/property-info": "^4.4|^5.1|^6.0",
- "symfony/serializer": "^5.2|^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Mime\\": ""
- },
- "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": "Allows manipulating MIME messages",
- "homepage": "https://symfony.com",
- "keywords": [
- "mime",
- "mime-type"
- ],
- "support": {
- "source": "https://github.com/symfony/mime/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/polyfill-ctype",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "30885182c981ab175d4d034db0f6f469898070ab"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
- "reference": "30885182c981ab175d4d034db0f6f469898070ab",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-ctype": "*"
- },
- "suggest": {
- "ext-ctype": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for ctype functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "ctype",
- "polyfill",
- "portable"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.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": "2021-10-20T20:35:02+00:00"
- },
- {
- "name": "symfony/polyfill-iconv",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-iconv.git",
- "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/f1aed619e28cb077fc83fac8c4c0383578356e40",
- "reference": "f1aed619e28cb077fc83fac8c4c0383578356e40",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-iconv": "*"
- },
- "suggest": {
- "ext-iconv": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Iconv\\": ""
- }
- },
- "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 Iconv extension",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "iconv",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-iconv/tree/v1.25.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": "2022-01-04T09:04:05+00:00"
- },
- {
- "name": "symfony/polyfill-intl-grapheme",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
- "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
- }
- },
- "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 intl's grapheme_* functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "grapheme",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.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": "2021-11-23T21:10:46+00:00"
- },
- {
- "name": "symfony/polyfill-intl-idn",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "749045c69efb97c70d25d7463abba812e91f3a44"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/749045c69efb97c70d25d7463abba812e91f3a44",
- "reference": "749045c69efb97c70d25d7463abba812e91f3a44",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "symfony/polyfill-intl-normalizer": "^1.10",
- "symfony/polyfill-php72": "^1.10"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Idn\\": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Laurent Bassin",
- "email": "laurent@bassin.info"
- },
- {
- "name": "Trevor Rowbotham",
- "email": "trevor.rowbotham@pm.me"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "idn",
- "intl",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.25.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": "2021-09-14T14:02:44+00:00"
- },
- {
- "name": "symfony/polyfill-intl-normalizer",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
- "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "suggest": {
- "ext-intl": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
- },
- "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 for intl's Normalizer class and related functions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "intl",
- "normalizer",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.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": "2021-02-19T12:13:01+00:00"
- },
- {
- "name": "symfony/polyfill-mbstring",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
- "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "provide": {
- "ext-mbstring": "*"
- },
- "suggest": {
- "ext-mbstring": "For best performance"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "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/v1.25.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": "2021-11-30T18:21:41+00:00"
- },
- {
- "name": "symfony/polyfill-php72",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "9a142215a36a3888e30d0a9eeea9766764e96976"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/9a142215a36a3888e30d0a9eeea9766764e96976",
- "reference": "9a142215a36a3888e30d0a9eeea9766764e96976",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php72\\": ""
- }
- },
- "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 7.2+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.25.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": "2021-05-27T09:17:38+00:00"
- },
- {
- "name": "symfony/polyfill-php73",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
- "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php73\\": ""
- },
- "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 7.3+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.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": "2021-06-05T21:20:04+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c",
- "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "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/v1.25.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": "2022-03-04T08:16:47+00:00"
- },
- {
- "name": "symfony/polyfill-php81",
- "version": "v1.25.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php81.git",
- "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
- "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.23-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php81\\": ""
- },
- "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.1+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php81/tree/v1.25.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": "2021-09-13T13:58:11+00:00"
- },
- {
- "name": "symfony/process",
- "version": "v5.4.5",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "95440409896f90a5f85db07a32b517ecec17fa4c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c",
- "reference": "95440409896f90a5f85db07a32b517ecec17fa4c",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Process\\": ""
- },
- "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": "Executes commands in sub-processes",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/process/tree/v5.4.5"
- },
- "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": "2022-01-30T18:16:22+00:00"
- },
- {
- "name": "symfony/psr-http-message-bridge",
- "version": "v2.1.2",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/psr-http-message-bridge.git",
- "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34",
- "reference": "22b37c8a3f6b5d94e9cdbd88e1270d96e2f97b34",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "psr/http-message": "^1.0",
- "symfony/http-foundation": "^4.4 || ^5.0 || ^6.0"
- },
- "require-dev": {
- "nyholm/psr7": "^1.1",
- "psr/log": "^1.1 || ^2 || ^3",
- "symfony/browser-kit": "^4.4 || ^5.0 || ^6.0",
- "symfony/config": "^4.4 || ^5.0 || ^6.0",
- "symfony/event-dispatcher": "^4.4 || ^5.0 || ^6.0",
- "symfony/framework-bundle": "^4.4 || ^5.0 || ^6.0",
- "symfony/http-kernel": "^4.4 || ^5.0 || ^6.0",
- "symfony/phpunit-bridge": "^5.4@dev || ^6.0"
- },
- "suggest": {
- "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
- },
- "type": "symfony-bridge",
- "extra": {
- "branch-alias": {
- "dev-main": "2.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Bridge\\PsrHttpMessage\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "http://symfony.com/contributors"
- }
- ],
- "description": "PSR HTTP message bridge",
- "homepage": "http://symfony.com",
- "keywords": [
- "http",
- "http-message",
- "psr-17",
- "psr-7"
- ],
- "support": {
- "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
- "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.1.2"
- },
- "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": "2021-11-05T13:13:39+00:00"
- },
- {
- "name": "symfony/routing",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/routing.git",
- "reference": "44b29c7a94e867ccde1da604792f11a469958981"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/44b29c7a94e867ccde1da604792f11a469958981",
- "reference": "44b29c7a94e867ccde1da604792f11a469958981",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "doctrine/annotations": "<1.12",
- "symfony/config": "<5.3",
- "symfony/dependency-injection": "<4.4",
- "symfony/yaml": "<4.4"
- },
- "require-dev": {
- "doctrine/annotations": "^1.12",
- "psr/log": "^1|^2|^3",
- "symfony/config": "^5.3|^6.0",
- "symfony/dependency-injection": "^4.4|^5.0|^6.0",
- "symfony/expression-language": "^4.4|^5.0|^6.0",
- "symfony/http-foundation": "^4.4|^5.0|^6.0",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/config": "For using the all-in-one router or any loader",
- "symfony/expression-language": "For using expression matching",
- "symfony/http-foundation": "For using a Symfony Request object",
- "symfony/yaml": "For using the YAML loader"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Routing\\": ""
- },
- "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": "Maps an HTTP request to a set of configuration variables",
- "homepage": "https://symfony.com",
- "keywords": [
- "router",
- "routing",
- "uri",
- "url"
- ],
- "support": {
- "source": "https://github.com/symfony/routing/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/service-contracts",
- "version": "v2.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/service-contracts.git",
- "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
- "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "psr/container": "^1.1",
- "symfony/deprecation-contracts": "^2.1"
- },
- "conflict": {
- "ext-psr": "<1.1|>=2"
- },
- "suggest": {
- "symfony/service-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Service\\": ""
- }
- },
- "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": "Generic abstractions related to writing services",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/service-contracts/tree/v2.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": "2021-11-04T16:48:04+00:00"
- },
- {
- "name": "symfony/string",
- "version": "v5.4.3",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/string.git",
- "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10",
- "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-intl-grapheme": "~1.0",
- "symfony/polyfill-intl-normalizer": "~1.0",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "~1.15"
- },
- "conflict": {
- "symfony/translation-contracts": ">=3.0"
- },
- "require-dev": {
- "symfony/error-handler": "^4.4|^5.0|^6.0",
- "symfony/http-client": "^4.4|^5.0|^6.0",
- "symfony/translation-contracts": "^1.1|^2",
- "symfony/var-exporter": "^4.4|^5.0|^6.0"
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\String\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "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": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way",
- "homepage": "https://symfony.com",
- "keywords": [
- "grapheme",
- "i18n",
- "string",
- "unicode",
- "utf-8",
- "utf8"
- ],
- "support": {
- "source": "https://github.com/symfony/string/tree/v5.4.3"
- },
- "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": "2022-01-02T09:53:40+00:00"
- },
- {
- "name": "symfony/translation",
- "version": "v5.4.6",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation.git",
- "reference": "a7ca9fdfffb0174209440c2ffa1dee228e15d95b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/a7ca9fdfffb0174209440c2ffa1dee228e15d95b",
- "reference": "a7ca9fdfffb0174209440c2ffa1dee228e15d95b",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16",
- "symfony/translation-contracts": "^2.3"
- },
- "conflict": {
- "symfony/config": "<4.4",
- "symfony/console": "<5.3",
- "symfony/dependency-injection": "<5.0",
- "symfony/http-kernel": "<5.0",
- "symfony/twig-bundle": "<5.0",
- "symfony/yaml": "<4.4"
- },
- "provide": {
- "symfony/translation-implementation": "2.3"
- },
- "require-dev": {
- "psr/log": "^1|^2|^3",
- "symfony/config": "^4.4|^5.0|^6.0",
- "symfony/console": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/http-client-contracts": "^1.1|^2.0|^3.0",
- "symfony/http-kernel": "^5.0|^6.0",
- "symfony/intl": "^4.4|^5.0|^6.0",
- "symfony/polyfill-intl-icu": "^1.21",
- "symfony/service-contracts": "^1.1.2|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "psr/log-implementation": "To use logging capability in translator",
- "symfony/config": "",
- "symfony/yaml": ""
- },
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions.php"
- ],
- "psr-4": {
- "Symfony\\Component\\Translation\\": ""
- },
- "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 tools to internationalize your application",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/translation/tree/v5.4.6"
- },
- "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": "2022-03-02T12:56:28+00:00"
- },
- {
- "name": "symfony/translation-contracts",
- "version": "v2.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/translation-contracts.git",
- "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/d28150f0f44ce854e942b671fc2620a98aae1b1e",
- "reference": "d28150f0f44ce854e942b671fc2620a98aae1b1e",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5"
- },
- "suggest": {
- "symfony/translation-implementation": ""
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "2.5-dev"
- },
- "thanks": {
- "name": "symfony/contracts",
- "url": "https://github.com/symfony/contracts"
- }
- },
- "autoload": {
- "psr-4": {
- "Symfony\\Contracts\\Translation\\": ""
- }
- },
- "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": "Generic abstractions related to translation",
- "homepage": "https://symfony.com",
- "keywords": [
- "abstractions",
- "contracts",
- "decoupling",
- "interfaces",
- "interoperability",
- "standards"
- ],
- "support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v2.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": "2021-08-17T14:20:01+00:00"
- },
- {
- "name": "symfony/var-dumper",
- "version": "v5.4.6",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/var-dumper.git",
- "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/294e9da6e2e0dd404e983daa5aa74253d92c05d0",
- "reference": "294e9da6e2e0dd404e983daa5aa74253d92c05d0",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/polyfill-mbstring": "~1.0",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "phpunit/phpunit": "<5.4.3",
- "symfony/console": "<4.4"
- },
- "require-dev": {
- "ext-iconv": "*",
- "symfony/console": "^4.4|^5.0|^6.0",
- "symfony/process": "^4.4|^5.0|^6.0",
- "symfony/uid": "^5.1|^6.0",
- "twig/twig": "^2.13|^3.0.4"
- },
- "suggest": {
- "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).",
- "ext-intl": "To show region name in time zone dump",
- "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script"
- },
- "bin": [
- "Resources/bin/var-dump-server"
- ],
- "type": "library",
- "autoload": {
- "files": [
- "Resources/functions/dump.php"
- ],
- "psr-4": {
- "Symfony\\Component\\VarDumper\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "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": "Provides mechanisms for walking through any arbitrary PHP variable",
- "homepage": "https://symfony.com",
- "keywords": [
- "debug",
- "dump"
- ],
- "support": {
- "source": "https://github.com/symfony/var-dumper/tree/v5.4.6"
- },
- "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": "2022-03-02T12:42:23+00:00"
- },
- {
- "name": "tijsverkoyen/css-to-inline-styles",
- "version": "2.2.4",
- "source": {
- "type": "git",
- "url": "https://github.com/tijsverkoyen/CssToInlineStyles.git",
- "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/tijsverkoyen/CssToInlineStyles/zipball/da444caae6aca7a19c0c140f68c6182e337d5b1c",
- "reference": "da444caae6aca7a19c0c140f68c6182e337d5b1c",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "php": "^5.5 || ^7.0 || ^8.0",
- "symfony/css-selector": "^2.7 || ^3.0 || ^4.0 || ^5.0 || ^6.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^7.5 || ^8.5.21 || ^9.5.10"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "TijsVerkoyen\\CssToInlineStyles\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Tijs Verkoyen",
- "email": "css_to_inline_styles@verkoyen.eu",
- "role": "Developer"
- }
- ],
- "description": "CssToInlineStyles is a class that enables you to convert HTML-pages/files into HTML-pages/files with inline styles. This is very useful when you're sending emails.",
- "homepage": "https://github.com/tijsverkoyen/CssToInlineStyles",
- "support": {
- "issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
- "source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/2.2.4"
- },
- "time": "2021-12-08T09:12:39+00:00"
- },
- {
- "name": "vlucas/phpdotenv",
- "version": "v5.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/264dce589e7ce37a7ba99cb901eed8249fbec92f",
- "reference": "264dce589e7ce37a7ba99cb901eed8249fbec92f",
- "shasum": ""
- },
- "require": {
- "ext-pcre": "*",
- "graham-campbell/result-type": "^1.0.2",
- "php": "^7.1.3 || ^8.0",
- "phpoption/phpoption": "^1.8",
- "symfony/polyfill-ctype": "^1.23",
- "symfony/polyfill-mbstring": "^1.23.1",
- "symfony/polyfill-php80": "^1.23.1"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "ext-filter": "*",
- "phpunit/phpunit": "^7.5.20 || ^8.5.21 || ^9.5.10"
- },
- "suggest": {
- "ext-filter": "Required to use the boolean validator."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.4-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Dotenv\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Vance Lucas",
- "email": "vance@vancelucas.com",
- "homepage": "https://github.com/vlucas"
- }
- ],
- "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
- "keywords": [
- "dotenv",
- "env",
- "environment"
- ],
- "support": {
- "issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.4.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/vlucas/phpdotenv",
- "type": "tidelift"
- }
- ],
- "time": "2021-12-12T23:22:04+00:00"
- },
- {
- "name": "voku/portable-ascii",
- "version": "1.6.1",
- "source": {
- "type": "git",
- "url": "https://github.com/voku/portable-ascii.git",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/voku/portable-ascii/zipball/87337c91b9dfacee02452244ee14ab3c43bc485a",
- "reference": "87337c91b9dfacee02452244ee14ab3c43bc485a",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~6.0 || ~7.0 || ~9.0"
- },
- "suggest": {
- "ext-intl": "Use Intl for transliterator_transliterate() support"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "voku\\": "src/voku/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Lars Moelleken",
- "homepage": "http://www.moelleken.org/"
- }
- ],
- "description": "Portable ASCII library - performance optimized (ascii) string functions for php.",
- "homepage": "https://github.com/voku/portable-ascii",
- "keywords": [
- "ascii",
- "clean",
- "php"
- ],
- "support": {
- "issues": "https://github.com/voku/portable-ascii/issues",
- "source": "https://github.com/voku/portable-ascii/tree/1.6.1"
- },
- "funding": [
- {
- "url": "https://www.paypal.me/moelleken",
- "type": "custom"
- },
- {
- "url": "https://github.com/voku",
- "type": "github"
- },
- {
- "url": "https://opencollective.com/portable-ascii",
- "type": "open_collective"
- },
- {
- "url": "https://www.patreon.com/voku",
- "type": "patreon"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/voku/portable-ascii",
- "type": "tidelift"
- }
- ],
- "time": "2022-01-24T18:55:24+00:00"
- },
- {
- "name": "webmozart/assert",
- "version": "1.10.0",
- "source": {
- "type": "git",
- "url": "https://github.com/webmozarts/assert.git",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25",
- "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "symfony/polyfill-ctype": "^1.8"
- },
- "conflict": {
- "phpstan/phpstan": "<0.12.20",
- "vimeo/psalm": "<4.6.1 || 4.6.2"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5.13"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.10-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Webmozart\\Assert\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Bernhard Schussek",
- "email": "bschussek@gmail.com"
- }
- ],
- "description": "Assertions to validate method input/output with nice error messages.",
- "keywords": [
- "assert",
- "check",
- "validate"
- ],
- "support": {
- "issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/1.10.0"
- },
- "time": "2021-03-09T10:59:23+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.4.1",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/instantiator/zipball/10dcfce151b967d20fde1b34ae6640712c3891bc",
- "reference": "10dcfce151b967d20fde1b34ae6640712c3891bc",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "require-dev": {
- "doctrine/coding-standard": "^9",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpbench/phpbench": "^0.16 || ^1",
- "phpstan/phpstan": "^1.4",
- "phpstan/phpstan-phpunit": "^1",
- "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
- "vimeo/psalm": "^4.22"
- },
- "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/1.4.1"
- },
- "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": "2022-03-03T08:28:38+00:00"
- },
- {
- "name": "facade/flare-client-php",
- "version": "1.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/flare-client-php.git",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/flare-client-php/zipball/b2adf1512755637d0cef4f7d1b54301325ac78ed",
- "reference": "b2adf1512755637d0cef4f7d1b54301325ac78ed",
- "shasum": ""
- },
- "require": {
- "facade/ignition-contracts": "~1.0",
- "illuminate/pipeline": "^5.5|^6.0|^7.0|^8.0",
- "php": "^7.1|^8.0",
- "symfony/http-foundation": "^3.3|^4.1|^5.0",
- "symfony/mime": "^3.4|^4.0|^5.1",
- "symfony/var-dumper": "^3.4|^4.0|^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "phpunit/phpunit": "^7.5.16",
- "spatie/phpunit-snapshot-assertions": "^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Facade\\FlareClient\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "Send PHP errors to Flare",
- "homepage": "https://github.com/facade/flare-client-php",
- "keywords": [
- "exception",
- "facade",
- "flare",
- "reporting"
- ],
- "support": {
- "issues": "https://github.com/facade/flare-client-php/issues",
- "source": "https://github.com/facade/flare-client-php/tree/1.9.1"
- },
- "funding": [
- {
- "url": "https://github.com/spatie",
- "type": "github"
- }
- ],
- "time": "2021-09-13T12:16:46+00:00"
- },
- {
- "name": "facade/ignition",
- "version": "2.17.5",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/ignition.git",
- "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/ignition/zipball/1d71996f83c9a5a7807331b8986ac890352b7a0c",
- "reference": "1d71996f83c9a5a7807331b8986ac890352b7a0c",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "ext-json": "*",
- "ext-mbstring": "*",
- "facade/flare-client-php": "^1.9.1",
- "facade/ignition-contracts": "^1.0.2",
- "illuminate/support": "^7.0|^8.0",
- "monolog/monolog": "^2.0",
- "php": "^7.2.5|^8.0",
- "symfony/console": "^5.0",
- "symfony/var-dumper": "^5.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.14",
- "livewire/livewire": "^2.4",
- "mockery/mockery": "^1.3",
- "orchestra/testbench": "^5.0|^6.0",
- "psalm/plugin-laravel": "^1.2"
- },
- "suggest": {
- "laravel/telescope": "^3.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- },
- "laravel": {
- "providers": [
- "Facade\\Ignition\\IgnitionServiceProvider"
- ],
- "aliases": {
- "Flare": "Facade\\Ignition\\Facades\\Flare"
- }
- }
- },
- "autoload": {
- "files": [
- "src/helpers.php"
- ],
- "psr-4": {
- "Facade\\Ignition\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "A beautiful error page for Laravel applications.",
- "homepage": "https://github.com/facade/ignition",
- "keywords": [
- "error",
- "flare",
- "laravel",
- "page"
- ],
- "support": {
- "docs": "https://flareapp.io/docs/ignition-for-laravel/introduction",
- "forum": "https://twitter.com/flareappio",
- "issues": "https://github.com/facade/ignition/issues",
- "source": "https://github.com/facade/ignition"
- },
- "time": "2022-02-23T18:31:24+00:00"
- },
- {
- "name": "facade/ignition-contracts",
- "version": "1.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/facade/ignition-contracts.git",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/facade/ignition-contracts/zipball/3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "reference": "3c921a1cdba35b68a7f0ccffc6dffc1995b18267",
- "shasum": ""
- },
- "require": {
- "php": "^7.3|^8.0"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^v2.15.8",
- "phpunit/phpunit": "^9.3.11",
- "vimeo/psalm": "^3.17.1"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Facade\\IgnitionContracts\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Freek Van der Herten",
- "email": "freek@spatie.be",
- "homepage": "https://flareapp.io",
- "role": "Developer"
- }
- ],
- "description": "Solution contracts for Ignition",
- "homepage": "https://github.com/facade/ignition-contracts",
- "keywords": [
- "contracts",
- "flare",
- "ignition"
- ],
- "support": {
- "issues": "https://github.com/facade/ignition-contracts/issues",
- "source": "https://github.com/facade/ignition-contracts/tree/1.0.2"
- },
- "time": "2020-10-16T08:27:54+00:00"
- },
- {
- "name": "fakerphp/faker",
- "version": "v1.19.0",
- "source": {
- "type": "git",
- "url": "https://github.com/FakerPHP/Faker.git",
- "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/d7f08a622b3346766325488aa32ddc93ccdecc75",
- "reference": "d7f08a622b3346766325488aa32ddc93ccdecc75",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "psr/container": "^1.0 || ^2.0",
- "symfony/deprecation-contracts": "^2.2 || ^3.0"
- },
- "conflict": {
- "fzaninotto/faker": "*"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.4.1",
- "doctrine/persistence": "^1.3 || ^2.0",
- "ext-intl": "*",
- "symfony/phpunit-bridge": "^4.4 || ^5.2"
- },
- "suggest": {
- "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
- "ext-curl": "Required by Faker\\Provider\\Image to download images.",
- "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
- "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
- "ext-mbstring": "Required for multibyte Unicode string functionality."
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "v1.19-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Faker\\": "src/Faker/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "François Zaninotto"
- }
- ],
- "description": "Faker is a PHP library that generates fake data for you.",
- "keywords": [
- "data",
- "faker",
- "fixtures"
- ],
- "support": {
- "issues": "https://github.com/FakerPHP/Faker/issues",
- "source": "https://github.com/FakerPHP/Faker/tree/v1.19.0"
- },
- "time": "2022-02-02T17:38:57+00:00"
- },
- {
- "name": "filp/whoops",
- "version": "2.14.5",
- "source": {
- "type": "git",
- "url": "https://github.com/filp/whoops.git",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
- "reference": "a63e5e8f26ebbebf8ed3c5c691637325512eb0dc",
- "shasum": ""
- },
- "require": {
- "php": "^5.5.9 || ^7.0 || ^8.0",
- "psr/log": "^1.0.1 || ^2.0 || ^3.0"
- },
- "require-dev": {
- "mockery/mockery": "^0.9 || ^1.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.3",
- "symfony/var-dumper": "^2.6 || ^3.0 || ^4.0 || ^5.0"
- },
- "suggest": {
- "symfony/var-dumper": "Pretty print complex values better with var-dumper available",
- "whoops/soap": "Formats errors as SOAP responses"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Whoops\\": "src/Whoops/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Filipe Dobreira",
- "homepage": "https://github.com/filp",
- "role": "Developer"
- }
- ],
- "description": "php error handling for cool kids",
- "homepage": "https://filp.github.io/whoops/",
- "keywords": [
- "error",
- "exception",
- "handling",
- "library",
- "throwable",
- "whoops"
- ],
- "support": {
- "issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.14.5"
- },
- "funding": [
- {
- "url": "https://github.com/denis-sokolov",
- "type": "github"
- }
- ],
- "time": "2022-01-07T12:00:00+00:00"
- },
- {
- "name": "hamcrest/hamcrest-php",
- "version": "v2.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/hamcrest/hamcrest-php.git",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "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"
- },
- "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/v2.0.1"
- },
- "time": "2020-07-09T08:09:16+00:00"
- },
- {
- "name": "laravel/sail",
- "version": "v1.13.5",
- "source": {
- "type": "git",
- "url": "https://github.com/laravel/sail.git",
- "reference": "aeb6eeb55b22c328d2f301145b97288127691d48"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/laravel/sail/zipball/aeb6eeb55b22c328d2f301145b97288127691d48",
- "reference": "aeb6eeb55b22c328d2f301145b97288127691d48",
- "shasum": ""
- },
- "require": {
- "illuminate/console": "^8.0|^9.0",
- "illuminate/contracts": "^8.0|^9.0",
- "illuminate/support": "^8.0|^9.0",
- "php": "^7.3|^8.0"
- },
- "bin": [
- "bin/sail"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- },
- "laravel": {
- "providers": [
- "Laravel\\Sail\\SailServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "Laravel\\Sail\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Taylor Otwell",
- "email": "taylor@laravel.com"
- }
- ],
- "description": "Docker files for running a basic Laravel application.",
- "keywords": [
- "docker",
- "laravel"
- ],
- "support": {
- "issues": "https://github.com/laravel/sail/issues",
- "source": "https://github.com/laravel/sail"
- },
- "time": "2022-02-17T19:59:03+00:00"
- },
- {
- "name": "mockery/mockery",
- "version": "1.5.0",
- "source": {
- "type": "git",
- "url": "https://github.com/mockery/mockery.git",
- "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/mockery/mockery/zipball/c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac",
- "reference": "c10a5f6e06fc2470ab1822fa13fa2a7380f8fbac",
- "shasum": ""
- },
- "require": {
- "hamcrest/hamcrest-php": "^2.0.1",
- "lib-pcre": ">=7.0",
- "php": "^7.3 || ^8.0"
- },
- "conflict": {
- "phpunit/phpunit": "<8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Mockery": "library/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Dave Marshall",
- "email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
- }
- ],
- "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": {
- "issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.5.0"
- },
- "time": "2022-01-20T13:18:17+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614",
- "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",
- "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
- },
- "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.11.0"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2022-03-03T13:19:32+00:00"
- },
- {
- "name": "nunomaduro/collision",
- "version": "v5.11.0",
- "source": {
- "type": "git",
- "url": "https://github.com/nunomaduro/collision.git",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/8b610eef8582ccdc05d8f2ab23305e2d37049461",
- "reference": "8b610eef8582ccdc05d8f2ab23305e2d37049461",
- "shasum": ""
- },
- "require": {
- "facade/ignition-contracts": "^1.0",
- "filp/whoops": "^2.14.3",
- "php": "^7.3 || ^8.0",
- "symfony/console": "^5.0"
- },
- "require-dev": {
- "brianium/paratest": "^6.1",
- "fideloper/proxy": "^4.4.1",
- "fruitcake/laravel-cors": "^2.0.3",
- "laravel/framework": "8.x-dev",
- "nunomaduro/larastan": "^0.6.2",
- "nunomaduro/mock-final-classes": "^1.0",
- "orchestra/testbench": "^6.0",
- "phpstan/phpstan": "^0.12.64",
- "phpunit/phpunit": "^9.5.0"
- },
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "NunoMaduro\\Collision\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Nuno Maduro",
- "email": "enunomaduro@gmail.com"
- }
- ],
- "description": "Cli error handling for console/command-line PHP applications.",
- "keywords": [
- "artisan",
- "cli",
- "command-line",
- "console",
- "error",
- "handling",
- "laravel",
- "laravel-zero",
- "php",
- "symfony"
- ],
- "support": {
- "issues": "https://github.com/nunomaduro/collision/issues",
- "source": "https://github.com/nunomaduro/collision"
- },
- "funding": [
- {
- "url": "https://www.paypal.com/paypalme/enunomaduro",
- "type": "custom"
- },
- {
- "url": "https://github.com/nunomaduro",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/nunomaduro",
- "type": "patreon"
- }
- ],
- "time": "2022-01-10T16:22:52+00:00"
- },
- {
- "name": "phar-io/manifest",
- "version": "2.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/phar-io/manifest.git",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
- "reference": "97803eca37d319dfa7826cc2437fc020857acb53",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-phar": "*",
- "ext-xmlwriter": "*",
- "phar-io/version": "^3.0.1",
- "php": "^7.2 || ^8.0"
- },
- "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.3"
- },
- "time": "2021-07-20T11:28:43+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": "phpdocumentor/reflection-common",
- "version": "2.2.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-2.x": "2.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
- }
- ],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
- "keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
- ],
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
- },
- "time": "2020-06-27T09:03:43+00:00"
- },
- {
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.3.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170",
- "reference": "622548b623e81ca6d78b721c5e029f4ce664f170",
- "shasum": ""
- },
- "require": {
- "ext-filter": "*",
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.3",
- "webmozart/assert": "^1.9.1"
- },
- "require-dev": {
- "mockery/mockery": "~1.3.2",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "5.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- },
- {
- "name": "Jaap van Otterdijk",
- "email": "account@ijaap.nl"
- }
- ],
- "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
- "support": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0"
- },
- "time": "2021-10-19T17:43:47+00:00"
- },
- {
- "name": "phpdocumentor/type-resolver",
- "version": "1.6.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706",
- "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0",
- "phpdocumentor/reflection-common": "^2.0"
- },
- "require-dev": {
- "ext-tokenizer": "*",
- "psalm/phar": "^4.8"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-1.x": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "phpDocumentor\\Reflection\\": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Mike van Riel",
- "email": "me@mikevanriel.com"
- }
- ],
- "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names",
- "support": {
- "issues": "https://github.com/phpDocumentor/TypeResolver/issues",
- "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0"
- },
- "time": "2022-01-04T19:58:01+00:00"
- },
- {
- "name": "phpspec/prophecy",
- "version": "v1.15.0",
- "source": {
- "type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.2",
- "php": "^7.2 || ~8.0, <8.2",
- "phpdocumentor/reflection-docblock": "^5.2",
- "sebastian/comparator": "^3.0 || ^4.0",
- "sebastian/recursion-context": "^3.0 || ^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^6.0 || ^7.0",
- "phpunit/phpunit": "^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
- },
- {
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
- }
- ],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
- "keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
- ],
- "support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.15.0"
- },
- "time": "2021-12-08T12:19:24+00:00"
- },
- {
- "name": "phpunit/php-code-coverage",
- "version": "9.2.15",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
- "reference": "2e9da11878c4202f97915c1cb4bb1ca318a63f5f",
- "shasum": ""
- },
- "require": {
- "ext-dom": "*",
- "ext-libxml": "*",
- "ext-xmlwriter": "*",
- "nikic/php-parser": "^4.13.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": "*",
- "ext-xdebug": "*"
- },
- "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",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.15"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-03-07T09:28:20+00:00"
- },
- {
- "name": "phpunit/php-file-iterator",
- "version": "3.0.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
- "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.6"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2021-12-02T12:48:52+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.5.17",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "5c5abcfaa2cbd44b2203995d7a339ef910fe0c8f"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/5c5abcfaa2cbd44b2203995d7a339ef910fe0c8f",
- "reference": "5c5abcfaa2cbd44b2203995d7a339ef910fe0c8f",
- "shasum": ""
- },
- "require": {
- "doctrine/instantiator": "^1.3.1",
- "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",
- "phpspec/prophecy": "^1.12.1",
- "phpunit/php-code-coverage": "^9.2.13",
- "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.5",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.3",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^2.3.4",
- "sebastian/version": "^3.0.2"
- },
- "require-dev": {
- "ext-pdo": "*",
- "phpspec/prophecy-phpunit": "^2.0.1"
- },
- "suggest": {
- "ext-soap": "*",
- "ext-xdebug": "*"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "9.5-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",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.17"
- },
- "funding": [
- {
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-03-05T16:54:31+00:00"
- },
- {
- "name": "sebastian/cli-parser",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
- "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.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:08:49+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.6",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382",
- "reference": "55f4261989e546dc112258c7a75935a81a7ce382",
- "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.6"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T15:49:45+00:00"
- },
- {
- "name": "sebastian/complexity",
- "version": "2.0.2",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.7",
- "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.2"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T15:52:27+00:00"
- },
- {
- "name": "sebastian/diff",
- "version": "4.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d",
- "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.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:10:38+00:00"
- },
- {
- "name": "sebastian/environment",
- "version": "5.1.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac",
- "reference": "388b6ced16caa751030f6a69e588299fa09200ac",
- "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.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T05:52:38+00:00"
- },
- {
- "name": "sebastian/exporter",
- "version": "4.0.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9",
- "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9",
- "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.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2021-11-11T14:18:36+00:00"
- },
- {
- "name": "sebastian/global-state",
- "version": "5.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2",
- "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.5"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-02-14T08:28:10+00:00"
- },
- {
- "name": "sebastian/lines-of-code",
- "version": "1.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "^4.6",
- "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.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-11-28T06:42:11+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.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172",
- "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172",
- "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": "http://www.github.com/sebastianbergmann/recursion-context",
- "support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-10-26T13:17:30+00:00"
- },
- {
- "name": "sebastian/resource-operations",
- "version": "3.0.3",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/resource-operations.git",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.0"
- },
- "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"
- }
- ],
- "description": "Provides a list of PHP built-in functions that operate on resources",
- "homepage": "https://www.github.com/sebastianbergmann/resource-operations",
- "support": {
- "issues": "https://github.com/sebastianbergmann/resource-operations/issues",
- "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2020-09-28T06:45:17+00:00"
- },
- {
- "name": "sebastian/type",
- "version": "2.3.4",
- "source": {
- "type": "git",
- "url": "https://github.com/sebastianbergmann/type.git",
- "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914",
- "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3"
- },
- "require-dev": {
- "phpunit/phpunit": "^9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.3-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/2.3.4"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2021-06-15T12:49:02+00:00"
- },
- {
- "name": "sebastian/version",
- "version": "3.0.2",
- "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": "theseer/tokenizer",
- "version": "1.2.1",
- "source": {
- "type": "git",
- "url": "https://github.com/theseer/tokenizer.git",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e",
- "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e",
- "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.1"
- },
- "funding": [
- {
- "url": "https://github.com/theseer",
- "type": "github"
- }
- ],
- "time": "2021-07-28T10:34:58+00:00"
- }
- ],
- "aliases": [],
- "minimum-stability": "dev",
- "stability-flags": [],
- "prefer-stable": true,
- "prefer-lowest": false,
- "platform": {
- "php": "^7.3|^8.0"
- },
- "platform-dev": [],
- "plugin-api-version": "2.1.0"
-}
diff --git a/database/migrations/2014_10_12_000000_create_users_table.php b/database/migrations/2014_10_12_000000_create_users_table.php
index f1c0d1db..ece16c7c 100644
--- a/database/migrations/2014_10_12_000000_create_users_table.php
+++ b/database/migrations/2014_10_12_000000_create_users_table.php
@@ -29,6 +29,9 @@ public function up()
$table->string('entity_register_country')->nullable();
$table->string('entity_tax')->nullable();
$table->timestamp('last_login_at')->nullable();
+ $table->string('role')->default('member');
+ $table->string('signed_file')->nullable();
+ $table->string('member_status')->nullable();
$table->rememberToken();
$table->timestamps();
$table->softDeletes();
diff --git a/database/migrations/2021_06_12_071427_add_column_user_table.php b/database/migrations/2021_06_12_071427_add_column_user_table.php
index 4e67fc0a..4d66e054 100644
--- a/database/migrations/2021_06_12_071427_add_column_user_table.php
+++ b/database/migrations/2021_06_12_071427_add_column_user_table.php
@@ -17,7 +17,6 @@ public function up()
$table->string('signature_request_id')->nullable();
$table->string('public_address_node')->nullable();
$table->timestamp('node_verified_at')->nullable();
- $table->string('status')->nullable();
$table->string('message_content')->nullable();
$table->timestamp('kyc_verified_at')->nullable();
$table->string('hellosign_form')->nullable();
diff --git a/database/migrations/2021_06_12_090258_create_profile_table.php b/database/migrations/2021_06_12_090258_create_profile_table.php
index 71bd06db..fdc18e97 100644
--- a/database/migrations/2021_06_12_090258_create_profile_table.php
+++ b/database/migrations/2021_06_12_090258_create_profile_table.php
@@ -16,15 +16,15 @@ public function up()
Schema::create('profile', function (Blueprint $table) {
$table->id();
$table->foreignId('user_id')->constrained('users');
- $table->string('first_name');
- $table->string('last_name');
+ $table->string('first_name', 255)->nullable();
+ $table->string('last_name', 255)->nullable();
$table->string('company')->nullable();
$table->date('dob')->nullable();
- $table->string('country_citizenship');
- $table->string('country_residence');
- $table->string('address');
- $table->string('city');
- $table->string('zip');
+ $table->string('country_citizenship', 255)->nullable();
+ $table->string('country_residence', 255)->nullable();
+ $table->string('address', 255)->nullable();
+ $table->string('city', 255)->nullable();
+ $table->string('zip', 255)->nullable();
$table->tinyInteger('type_owner_node')->nullable();
$table->timestamps();
$table->softDeletes();
diff --git a/database/migrations/2021_06_19_024422_update_column_profile1_table.php b/database/migrations/2021_06_19_024422_update_column_profile1_table.php
index 3ece427a..6c25565e 100644
--- a/database/migrations/2021_06_19_024422_update_column_profile1_table.php
+++ b/database/migrations/2021_06_19_024422_update_column_profile1_table.php
@@ -14,7 +14,7 @@ class UpdateColumnProfile1Table extends Migration
public function up()
{
Schema::table('profile', function (Blueprint $table) {
- $table->string('status')->default('pending');
+ $table->string('status', 255)->nullable();
});
}
diff --git a/database/migrations/2021_06_23_024422_update_column_profile2_table.php b/database/migrations/2021_06_23_024422_update_column_profile2_table.php
index 0d0e4071..1c40d120 100644
--- a/database/migrations/2021_06_23_024422_update_column_profile2_table.php
+++ b/database/migrations/2021_06_23_024422_update_column_profile2_table.php
@@ -14,7 +14,7 @@ class UpdateColumnProfile2Table extends Migration
public function up()
{
Schema::table('profile', function (Blueprint $table) {
- $table->string('type');
+ $table->string('type')->nullable();
});
}
diff --git a/database/migrations/2021_07_09_151020_update_profile1_table.php b/database/migrations/2021_07_09_151020_update_profile1_table.php
index 98ada2e2..cf831d9d 100644
--- a/database/migrations/2021_07_09_151020_update_profile1_table.php
+++ b/database/migrations/2021_07_09_151020_update_profile1_table.php
@@ -22,15 +22,6 @@ public function up()
$table->string('vat_number')->nullable();
$table->string('page_is_representative')->nullable();
});
-
- DB::statement("ALTER TABLE profile modify first_name varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify last_name varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify country_citizenship varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify country_residence varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify address varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify city varchar(255) NULL");
- DB::statement("ALTER TABLE profile modify zip varchar(255) NULL");
-
}
/**
diff --git a/database/migrations/2022_05_03_150005_user_addresses_table.php b/database/migrations/2022_05_03_150005_user_addresses_table.php
new file mode 100644
index 00000000..f7025242
--- /dev/null
+++ b/database/migrations/2022_05_03_150005_user_addresses_table.php
@@ -0,0 +1,34 @@
+id();
+ $table->integer('user_id');
+ $table->string('public_address_node');
+ $table->timestamp('node_verified_at')->nullable();
+ $table->timestamps();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2021_06_18_135938_update_user1_table.php b/database/migrations/2022_05_03_153706_update_users_table.php
similarity index 58%
rename from database/migrations/2021_06_18_135938_update_user1_table.php
rename to database/migrations/2022_05_03_153706_update_users_table.php
index 56a4c553..f596e552 100644
--- a/database/migrations/2021_06_18_135938_update_user1_table.php
+++ b/database/migrations/2022_05_03_153706_update_users_table.php
@@ -4,7 +4,7 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-class UpdateUser1Table extends Migration
+class UpdateUsersTable extends Migration
{
/**
* Run the migrations.
@@ -13,10 +13,9 @@ class UpdateUser1Table extends Migration
*/
public function up()
{
- Schema::table('users', function (Blueprint $table) {
- $table->renameColumn('status', 'member_status');
- $table->string('role')->default('member');
- $table->string('signed_file')->nullable();
+ Schema::table('users', function ($table) {
+ $table->boolean('has_address')->default(0);
+ $table->boolean('has_verified_address')->default(0);
});
}
diff --git a/database/migrations/2021_07_10_151020_update_profile2_table.php b/database/migrations/2022_05_11_082526_update_user_addresses_table.php
similarity index 68%
rename from database/migrations/2021_07_10_151020_update_profile2_table.php
rename to database/migrations/2022_05_11_082526_update_user_addresses_table.php
index 67e66e61..bf33152c 100644
--- a/database/migrations/2021_07_10_151020_update_profile2_table.php
+++ b/database/migrations/2022_05_11_082526_update_user_addresses_table.php
@@ -3,9 +3,8 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-use Illuminate\Support\Facades\DB;
-class UpdateProfile2Table extends Migration
+class UpdateUserAddressesTable extends Migration
{
/**
* Run the migrations.
@@ -14,7 +13,9 @@ class UpdateProfile2Table extends Migration
*/
public function up()
{
- DB::statement("ALTER TABLE profile modify status varchar(255) NULL");
+ Schema::table('user_addresses', function ($table) {
+ $table->text('signed_file')->nullable();
+ });
}
/**
diff --git a/database/migrations/2022_05_11_161022_update_user_addresses_2_table.php b/database/migrations/2022_05_11_161022_update_user_addresses_2_table.php
new file mode 100644
index 00000000..4d2f3244
--- /dev/null
+++ b/database/migrations/2022_05_11_161022_update_user_addresses_2_table.php
@@ -0,0 +1,31 @@
+tinyInteger('is_fail_node')->nullable()->default(0);
+ $table->integer('rank')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2022_05_12_141958_update_user_addresses_3_table.php b/database/migrations/2022_05_12_141958_update_user_addresses_3_table.php
new file mode 100644
index 00000000..f0ae16ff
--- /dev/null
+++ b/database/migrations/2022_05_12_141958_update_user_addresses_3_table.php
@@ -0,0 +1,31 @@
+tinyInteger('pending_node')->nullable()->default(0);
+ $table->float('validator_fee')->nullable()->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2022_05_12_211044_update_user_addresses_4_table.php b/database/migrations/2022_05_12_211044_update_user_addresses_4_table.php
new file mode 100644
index 00000000..8434fa24
--- /dev/null
+++ b/database/migrations/2022_05_12_211044_update_user_addresses_4_table.php
@@ -0,0 +1,30 @@
+string('node_status')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2022_05_16_020320_update_user_addresses_5_table.php b/database/migrations/2022_05_16_020320_update_user_addresses_5_table.php
new file mode 100644
index 00000000..9201eba6
--- /dev/null
+++ b/database/migrations/2022_05_16_020320_update_user_addresses_5_table.php
@@ -0,0 +1,30 @@
+string('extra_status')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/database/migrations/2022_06_08_184839_add_inactive_to_node_info_table.php b/database/migrations/2022_06_08_184839_add_inactive_to_node_info_table.php
new file mode 100644
index 00000000..ce05f7a0
--- /dev/null
+++ b/database/migrations/2022_06_08_184839_add_inactive_to_node_info_table.php
@@ -0,0 +1,30 @@
+tinyInteger('inactive')->nullable()->default(0);
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ //
+ }
+}
diff --git a/phpunit.xml b/phpunit.xml
index 4ae4d979..76a606bb 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -21,8 +21,8 @@