';
+ $controlCode = $this->Form->text($fieldName, $coptions)
+ . $this->getView()->element('datePicker', $date_args);
$liClass = "fields-datepicker";
} else {
@@ -198,7 +154,9 @@ public function control(string $fieldName,
return $this->startLine($liClass)
. $this->formNameDiv($fieldName, $labelText)
- . $this->formInfoDiv($controlCode)
+ . ( !empty($config['prefix']) ?
+ $this->formInfoWithPrefixDiv($controlCode, $config['prefix']) :
+ $this->formInfoDiv($controlCode) )
. $this->endLine();
}
@@ -239,6 +197,27 @@ protected function formInfoDiv(string $content) {
' . $content . '
';
}
+
+ /**
+ * Generate a form info (control, value) box with a non editable prefix.
+ *
+ * @since COmanage Registry v5.0.0
+ * @param string $content Content HTML
+ * @param string $prefix Prefix value
+ * @return string Form Info HTML
+ */
+
+ protected function formInfoWithPrefixDiv(string $context, string $prefix) {
+ $div = '
' . PHP_EOL
+ . '
' . PHP_EOL
+ . '
' . PHP_EOL
+ . '' . $prefix . ''
+ . '
' . PHP_EOL
+ . $context
+ . '
';
+
+ return $div;
+ }
/**
* Generate a form name (label, description) box.
diff --git a/app/src/View/Helper/MenuHelper.php b/app/src/View/Helper/MenuHelper.php
index 3ac9dd8b6..0752e1052 100644
--- a/app/src/View/Helper/MenuHelper.php
+++ b/app/src/View/Helper/MenuHelper.php
@@ -80,7 +80,8 @@ public function getMenuIcon($action) {
'Delete' => 'delete'
);
- return $icon[$action];
+ // For the actions with Default order we can pass directly the name of the icon
+ return $icon[$action] ?? $action;
}
}
\ No newline at end of file
diff --git a/app/templates/ApiUsers/columns.inc b/app/templates/ApiUsers/columns.inc
index 29d9aef96..87c426e6b 100644
--- a/app/templates/ApiUsers/columns.inc
+++ b/app/templates/ApiUsers/columns.inc
@@ -32,6 +32,9 @@ if($vv_cur_co->id == 1) {
];
}
+// Turn off the search/filter box for this index view
+//$disableFiltering = true;
+
$indexColumns = [
'username' => [
'type' => 'link',
diff --git a/app/templates/ApiUsers/fields.inc b/app/templates/ApiUsers/fields.inc
index 967b63547..e4eb9bc02 100644
--- a/app/templates/ApiUsers/fields.inc
+++ b/app/templates/ApiUsers/fields.inc
@@ -32,7 +32,7 @@ if($vv_action == 'add' || $vv_action == 'edit') {
}
// AR-ApiUser-3 For namespacing purposes, API Users are named with a prefix consisting of the string "co_#.".
- print $this->Field->control('username', ['default' => "co_" . $vv_cur_co->id .'.']);
+ print $this->Field->control('username', [], null, ['prefix' => "co_" . $vv_cur_co->id .'.']);
// We link to the "Generate" button on edit only
$generateLink = [];
diff --git a/app/templates/Cous/columns.inc b/app/templates/Cous/columns.inc
index 72f9f5fd3..d50fd5ed2 100644
--- a/app/templates/Cous/columns.inc
+++ b/app/templates/Cous/columns.inc
@@ -25,6 +25,9 @@
* @license Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
*/
+// Turn off the search/filter box for this index view
+//$disableFiltering = true;
+
$indexColumns = [
'name' => [
'type' => 'link'
diff --git a/app/templates/Standard/index.php b/app/templates/Standard/index.php
index b3b437dec..170bbfcab 100644
--- a/app/templates/Standard/index.php
+++ b/app/templates/Standard/index.php
@@ -46,6 +46,9 @@
// Otherwise, we'll print out a "no records" message.
$recordsExist = false;
+// By default Index filtering is on and we need to explicitly disable it
+$disableFiltering = false;
+
// Our default link actions, in order of preference, unless the column config overrides it
$linkActions = ['edit', 'view'];
@@ -92,38 +95,52 @@ function _column_key($modelsName, $c, $tz=null) {
', $error);
endif;
+if (isset($varsMaxDepth)) {
+ $msg = sprintf(__d('debug_kit', '%s levels of nested data shown.'), $varsMaxDepth);
+ $msg .= ' ' . __d('debug_kit', 'You can overwrite this via the config key');
+ $msg .= ' DebugKit.variablesPanelMaxDepth ';
+ $msg .= __d('debug_kit', 'Increasing the depth value can lead to an out of memory error.');
+ printf('
%s
', $msg);
+}
+
// Backwards compatibility for old debug kit data.
if (!empty($content)) :
printf('', $sort ? ' checked="checked"' : '', __d('debug_kit', 'Sort variables by name'));
diff --git a/app/vendor/cakephp/debug_kit/webroot/css/toolbar.css b/app/vendor/cakephp/debug_kit/webroot/css/toolbar.css
index f5f1f148f..d59bc9931 100644
--- a/app/vendor/cakephp/debug_kit/webroot/css/toolbar.css
+++ b/app/vendor/cakephp/debug_kit/webroot/css/toolbar.css
@@ -1,19 +1,19 @@
@font-face {
- font-family: 'CakeFont';
- src: url('./raleway-medium.eot');
- src: url('./raleway-regular.eot?#iefix') format('embedded-opentype'),
- url('./raleway-regular.woff') format('woff'),
- url('./raleway-regular.ttf') format('truetype'),
- url('./raleway-regular.svg#ralewayregular') format('svg');
- font-weight: normal;
- font-style: normal;
+ font-family: 'CakeFont';
+ src: url('./raleway-medium.eot');
+ src: url('./raleway-regular.eot?#iefix') format('embedded-opentype'),
+ url('./raleway-regular.woff') format('woff'),
+ url('./raleway-regular.ttf') format('truetype'),
+ url('./raleway-regular.svg#ralewayregular') format('svg');
+ font-weight: normal;
+ font-style: normal;
}
body {
- padding: 0;
- margin: 0;
- font-family: "Helvetica-Neue", Helvetica, Arial, sans-serif;
- overflow: hidden;
+ padding: 0;
+ margin: 0;
+ font-family: "Helvetica-Neue", Helvetica, Arial, sans-serif;
+ overflow: hidden;
}
/**
@@ -23,204 +23,204 @@ h1,
h2,
h3,
h4 {
- font-family: 'CakeFont', sans-serif;
- margin: 15px 0;
- font-weight: 300;
- line-height: 20px;
- text-rendering: optimizelegibility;
+ font-family: 'CakeFont', sans-serif;
+ margin: 15px 0;
+ font-weight: 300;
+ line-height: 20px;
+ text-rendering: optimizelegibility;
}
h1,
h2,
h3 {
- line-height: 40px;
+ line-height: 40px;
}
h1 {
- font-size: 38.5px;
+ font-size: 38.5px;
}
h2 {
- font-size: 31.5px;
+ font-size: 31.5px;
}
h3 {
- font-size: 24.5px;
+ font-size: 24.5px;
}
h4 {
- font-size: 17.5px;
+ font-size: 17.5px;
}
p {
- margin-bottom: 10px;
+ margin-bottom: 10px;
}
strong {
- font-weight: bold;
+ font-weight: bold;
}
.centered-text {
- text-align: center;
+ text-align: center;
}
.right-text {
- text-align: right;
+ text-align: right;
}
.toolbar {
- background: #D33C44;
- height: 40px;
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
+ background: #D33C44;
+ height: 40px;
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ right: 0;
}
.toolbar.open {
- border-radius: 0;
- overflow: auto;
- padding-right: 40px;
+ border-radius: 0;
+ overflow: auto;
+ padding-right: 40px;
}
.toolbar-inner {
- position: relative;
- overflow: hidden;
- white-space: nowrap;
- display: flex;
- justify-content: flex-end;
+ position: relative;
+ overflow: hidden;
+ white-space: nowrap;
+ display: flex;
+ justify-content: flex-end;
}
.hidden {
- display: none;
+ display: none;
}
/* Open close button */
#panel-button,
.panel {
- height: 40px;
- line-height: 40px;
- text-align: center;
- cursor: pointer;
- float: left;
+ height: 40px;
+ line-height: 40px;
+ text-align: center;
+ cursor: pointer;
+ float: left;
}
#panel-button {
- line-height: 20px;
- height: 40px;
- width: 40px;
- position: absolute;
- right: 0;
- bottom: 0;
+ line-height: 20px;
+ height: 40px;
+ width: 40px;
+ position: absolute;
+ right: 0;
+ bottom: 0;
}
#panel-button img {
- margin: 0;
- display: block;
+ margin: 0;
+ display: block;
}
.panel {
- border-left: 1px solid rgba(0, 0, 0, 0.075);
- padding: 0px 9px;
- position: relative;
+ border-left: 1px solid rgba(0, 0, 0, 0.075);
+ padding: 0px 9px;
+ position: relative;
}
.panel:first-child {
- border-left: 0;
+ border-left: 0;
}
.panel-active {
- background: #fff;
- color: #D33C44;
- transition: background-color 300ms linear;
+ background: #fff;
+ color: #D33C44;
+ transition: background-color 300ms linear;
}
.panel-active .panel-button {
- color: #D33C44;
+ color: #D33C44;
}
.panel-button {
- color: #fff;
- font-family: CakeFont, Helvetica, Arial, sans-serif;
+ color: #fff;
+ font-family: CakeFont, Helvetica, Arial, sans-serif;
}
.panel-summary {
- background: rgba(60, 60, 60, 0.3);
- color: #fff;
- font-size: 12px;
- line-height: 20px;
- padding: 4px;
- border-radius: 4px;
- vertical-align: middle;
+ background: rgba(60, 60, 60, 0.3);
+ color: #fff;
+ font-size: 12px;
+ line-height: 20px;
+ padding: 4px;
+ border-radius: 4px;
+ vertical-align: middle;
}
.panel-button-left {
- padding-left: 0;
+ padding-left: 0;
}
.panel-button-right {
- padding-right: 0;
- border-right: 1px solid rgba(0, 0, 0, 0.075);
+ padding-right: 0;
+ border-right: 1px solid rgba(0, 0, 0, 0.075);
}
.history-mode .panel-active .panel-button {
- color: #ab47bc;
+ color: #ab47bc;
}
/**
* Panel layout
*/
#panel-content-container {
- background: #fff;
- position: absolute;
- top: 100%;
- bottom: 40px;
- left: 0;
- right: 0;
- overflow-y: auto;
- transition: top 0.25s ease-out;
+ background: #fff;
+ position: absolute;
+ top: 100%;
+ bottom: 40px;
+ left: 0;
+ right: 0;
+ overflow-y: auto;
+ transition: top 0.25s ease-out;
}
#panel-content-container.enabled {
- top: 0;
- transition: top 0.25s ease-out-expo;
+ top: 0;
+ transition: top 0.25s ease-out-expo;
}
@keyframes slideup {
- from {
- top: 100%;
- }
- to {
- top: 0%;
- }
+ from {
+ top: 100%;
+ }
+ to {
+ top: 0%;
+ }
}
.panel-title {
- color: #fff;
- font-family: CakeFont, sans-serif;
- font-weight: normal;
- background: #D33C44;
- padding: 10px;
- margin: 0;
- transition: background-color 300ms linear;
+ color: #fff;
+ font-family: CakeFont, sans-serif;
+ font-weight: normal;
+ background: #D33C44;
+ padding: 10px;
+ margin: 0;
+ transition: background-color 300ms linear;
}
.history-mode .panel-title {
- background: #ab47bc;
+ background: #ab47bc;
}
.panel-content {
- padding: 10px;
+ padding: 10px;
}
.button-close {
- position: absolute;
- top: 15px;
- right: 15px;
- background: rgba(0, 0, 0, 0.3);
- color: #fff;
- display: inline-block;
- padding: 8px;
- line-height: 12px;
- font-size: 20px;
- height: 12px;
- width: 12px;
- border-radius: 15px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- vertical-align: middle;
- cursor: pointer;
+ position: absolute;
+ top: 15px;
+ right: 15px;
+ background: rgba(0, 0, 0, 0.3);
+ color: #fff;
+ display: inline-block;
+ padding: 8px;
+ line-height: 12px;
+ font-size: 20px;
+ height: 12px;
+ width: 12px;
+ border-radius: 15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+ vertical-align: middle;
+ cursor: pointer;
}
.button-close:hover {
- background: rgba(0, 0, 0, 0.5);
+ background: rgba(0, 0, 0, 0.5);
}
.section-tile {
- box-sizing: border-box;
- float: left;
- width: 50%;
- padding: 10px;
+ box-sizing: border-box;
+ float: left;
+ width: 50%;
+ padding: 10px;
}
@@ -228,61 +228,64 @@ strong {
* Tables
*/
table {
- width: 100%;
- border: 0;
- clear: both;
- margin: 10px 0;
- border-spacing: 0;
+ width: 100%;
+ border: 0;
+ clear: both;
+ margin: 10px 0;
+ border-spacing: 0;
}
table td,
table th {
- text-align: left;
- border: 0;
- padding: 9px;
- margin: 0;
+ text-align: left;
+ border: 0;
+ padding: 9px;
+ margin: 0;
}
table td {
- border-bottom: 1px solid #ccc;
+ border-bottom: 1px solid #ccc;
}
table th {
- border-bottom: 3px solid #2a6496;
- color: #111;
- font-weight: bold;
- line-height: 16px;
+ border-bottom: 3px solid #2a6496;
+ color: #111;
+ font-weight: bold;
+ line-height: 16px;
}
pre,
.debug-table td {
- font-family: Monaco, Consolas, monospace;
+ font-family: Monaco, Consolas, monospace;
}
/* X column tables have the 2nd+ cell right aligned */
.debug-table th:nth-child(n+2),
.debug-table td:nth-child(n+2) {
- text-align:right;
+ text-align:right;
}
.debug-table td:nth-child(n+2) {
- word-wrap: break-word;
- word-break: break-all;
- word-break: break-word; /* Not standard for webkit */
+ word-wrap: break-word;
+ word-break: break-all;
+ word-break: break-word; /* Not standard for webkit */
}
.debug-table th.left,
.debug-table td.left {
text-align: left;
}
+.debug-table .duplicate-route td {
+ background: #ffea96;
+}
.debug-table .highlighted td {
- background: #e7e9fd;
+ background: #e7e9fd;
}
.list {
- list-style: disc;
- margin: 10px 0 10px 20px;
+ list-style: disc;
+ margin: 10px 0 10px 20px;
}
.list li {
- margin: 10px 0;
+ margin: 10px 0;
}
.deprecation-list li {
- font-family: Monaco, Consolas, monospace;
+ font-family: Monaco, Consolas, monospace;
}
/**
@@ -290,71 +293,71 @@ pre,
*/
.neat-array,
.neat-array li {
- list-style:none;
- list-style-image:none;
+ list-style:none;
+ list-style-image:none;
}
.neat-array {
- padding: 1px 2px 1px 20px;
- background: #eaeae7;
- list-style: none;
- margin: 0 0 1em 0;
+ padding: 1px 2px 1px 20px;
+ background: #eaeae7;
+ list-style: none;
+ margin: 0 0 1em 0;
}
.neat-array .neat-array {
- padding: 0 0 0 20px;
- margin: 0;
- border-top: 1px solid #eaeae7;
+ padding: 0 0 0 20px;
+ margin: 0;
+ border-top: 1px solid #eaeae7;
}
.neat-array li {
- border-top: 1px solid #eaeae7;
- border-bottom: 1px solid #eaeae7;
- background: rgba(255, 255, 255, 0.95);
- margin: 0;
- line-height: 1.5em;
+ border-top: 1px solid #eaeae7;
+ border-bottom: 1px solid #eaeae7;
+ background: rgba(255, 255, 255, 0.95);
+ margin: 0;
+ line-height: 1.5em;
}
.neat-array li:hover {
- background: #fff;
+ background: #fff;
}
.neat-array li strong {
- padding-left: 8px;
- font-weight: bold;
+ padding-left: 8px;
+ font-weight: bold;
}
.neat-array li > strong:before {
- position: relative;
- left: -3px;
- content: "\2003 ";
+ position: relative;
+ left: -3px;
+ content: "\2003 ";
}
/* expandable sections */
.neat-array li.expandable {
- cursor: pointer;
+ cursor: pointer;
}
.neat-array .expanded {
- border-bottom:0;
+ border-bottom:0;
}
.neat-array li.expandable.expanded > strong:before {
- position: relative;
- left: -3px;
- content: "\2937 ";
+ position: relative;
+ left: -3px;
+ content: "\2937 ";
}
.neat-array li.expandable.collapsed > strong:before,
.neat-array li.expandable.expanded .expandable.collapsed > strong:before {
- position: relative;
- left: -3px;
- content: "\2192 ";
+ position: relative;
+ left: -3px;
+ content: "\2192 ";
}
.neat-array li {
- cursor: default;
+ cursor: default;
}
.toggle-checkbox {
- display: block;
- margin-bottom: 10px;
- font-size: 12px;
- color: #666;
+ display: block;
+ margin-bottom: 10px;
+ font-size: 12px;
+ color: #666;
}
.toggle-checkbox input[type=checkbox] {
- vertical-align: middle;
- margin-top: 0;
+ vertical-align: middle;
+ margin-top: 0;
}
@@ -363,17 +366,17 @@ pre,
*/
.graph-bar,
.graph-bar-value {
- margin: 0;
- padding: 0;
- border: none;
- overflow: hidden;
- height: 14px;
+ margin: 0;
+ padding: 0;
+ border: none;
+ overflow: hidden;
+ height: 14px;
}
.graph-bar {
- background: #ddd;
+ background: #ddd;
}
.graph-bar-value {
- background: #428bca;
+ background: #428bca;
}
@@ -381,69 +384,69 @@ pre,
* History panel
*/
.history-list li {
- padding-left: 10px;
- border-bottom: 1px solid #ccc;
- position: relative;
+ padding-left: 10px;
+ border-bottom: 1px solid #ccc;
+ position: relative;
}
.history-list .active:before {
- content: "\2022 ";
- font-size: 40px;
- color: #42bd41;
- line-height: 12px;
- position: absolute;
- top: 38%;
- left: 0;
- vertical-align: middle;
+ content: "\2022 ";
+ font-size: 40px;
+ color: #42bd41;
+ line-height: 12px;
+ position: absolute;
+ top: 38%;
+ left: 0;
+ vertical-align: middle;
}
.history-list li:last-child {
- border-bottom: 0;
+ border-bottom: 0;
}
.history-list li:hover {
- background-color: #e7e9fd;
+ background-color: #e7e9fd;
}
.history-link {
- color: #222;
- display: block;
- text-decoration: none;
- padding: 6px;
+ color: #222;
+ display: block;
+ text-decoration: none;
+ padding: 6px;
}
.history-bubble {
- font-size: 12px;
- line-height: 14px;
- display: inline-block;
- background: #eee;
- padding: 2px;
- border-radius: 4px;
+ font-size: 12px;
+ line-height: 14px;
+ display: inline-block;
+ background: #eee;
+ padding: 2px;
+ border-radius: 4px;
}
.xhr {
- background:#7CFF46
+ background:#7CFF46
}
.history-time {
- font-size: 12px;
- display: block;
+ font-size: 12px;
+ display: block;
}
.history-url {
- font-size: 14px;
- font-family: Monaco, Consolas, monospace;
+ font-size: 14px;
+ font-family: Monaco, Consolas, monospace;
}
/**
* Packages panel
*/
.package-version {
- background: #D33C44;
- border-radius: 4px;
- line-height: 20px;
- display: inline-block;
- white-space: nowrap;
+ background: #D33C44;
+ border-radius: 4px;
+ line-height: 20px;
+ display: inline-block;
+ white-space: nowrap;
}
.package-link {
- color: #000000;
- text-decoration: none;
+ color: #000000;
+ text-decoration: none;
}
/**
@@ -451,162 +454,198 @@ pre,
*/
.warning,
.info {
- padding: 10px 10px 10px 20px;
- font-size: 14px;
+ position: relative;
+ padding: 10px 10px 10px 50px;
+ font-size: 14px;
}
.warning {
- background: #f2dede;
+ background: #f2dede;
}
.info {
- background: #d9edf7;
+ background: #d9edf7;
}
.warning:before,
.info:before {
- padding: 8px;
- line-height: 12px;
- font-size: 20px;
- font-family: "CakeFont";
- font-weight: bold;
- height: 12px;
- width: 12px;
- border-radius: 15px;
- -moz-border-radius: 15px;
- -webkit-border-radius: 15px;
- text-align: center;
- vertical-align: middle;
- display: inline-block;
- position: relative;
- left: -11px;
-
- background-color: #fff;
+ padding: 8px;
+ line-height: 12px;
+ font-size: 20px;
+ font-family: "CakeFont";
+ font-weight: bold;
+ height: 12px;
+ width: 12px;
+ border-radius: 15px;
+ -moz-border-radius: 15px;
+ -webkit-border-radius: 15px;
+ text-align: center;
+ vertical-align: middle;
+ display: inline-block;
+ position: absolute;
+ left: 10px;
+ top: 50%;
+ transform: translate(0, -50%);
+
+ background-color: #fff;
}
.warning:before {
- color: #f2dede;
- content: '!';
+ color: #f2dede;
+ content: '!';
}
.info:before {
- color: #d9edf7;
- content: 'i';
+ color: #d9edf7;
+ content: 'i';
}
/**
* Buttons
*/
.btn-primary {
- font-size: 14px;
- border: 1px solid #2a6496;
- background-color: #428bca;
- color: #fff;
- border-radius: 4px;
- box-shadow: 0 2px 0 #2a6496;
- padding: 4px 10px;
+ font-size: 14px;
+ border: 1px solid #2a6496;
+ background-color: #428bca;
+ color: #fff;
+ border-radius: 4px;
+ box-shadow: 0 2px 0 #2a6496;
+ padding: 4px 10px;
}
.btn-primary:active {
- box-shadow: none;
- position: relative;
- top: 2px;
+ box-shadow: none;
+ position: relative;
+ top: 2px;
}
-
.btn-primary:hover {
- cursor:pointer;
+ cursor: pointer;
+}
+.toggle-plugin-route-active {
+ background-color: #fff !important;
+ color: #555;
+ border-color: #6f6f6f;
+ box-shadow: 0 2px 0 #6f6f6f;
}
#loader {
- background: rgba(255, 255, 255, 0.7);
- position: absolute;
- top: 0;
- bottom: 40px;
- left: 0;
- right: 0;
- overflow: hidden;
- z-index: 100;
- display: none;
- opacity: 0;
- transition: opacity 0.5s ease-in;
+ background: rgba(255, 255, 255, 0.7);
+ position: absolute;
+ top: 0;
+ bottom: 40px;
+ left: 0;
+ right: 0;
+ overflow: hidden;
+ z-index: 100;
+ display: none;
+ opacity: 0;
+ transition: opacity 0.5s ease-in;
}
#loader.loading {
- display: block;
- opacity: 1;
+ display: block;
+ opacity: 1;
}
#loader .indicator {
- width: 30px;
- height: 30px;
- position: absolute;
- top: 50%;
- left: 50%;
- margin: -15px 0 0 -15px;
- -webkit-animation: spin 4s linear infinite;
- -moz-animation: spin 4s linear infinite;
- animation: spin 4s linear infinite;
+ width: 30px;
+ height: 30px;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ margin: -15px 0 0 -15px;
+ -webkit-animation: spin 4s linear infinite;
+ -moz-animation: spin 4s linear infinite;
+ animation: spin 4s linear infinite;
}
@-moz-keyframes spin {
- 100% {
- -moz-transform: rotate(360deg);
- }
+ 100% {
+ -moz-transform: rotate(360deg);
+ }
}
@-webkit-keyframes spin {
- 100% {
- -webkit-transform: rotate(360deg);
- }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ }
}
@keyframes spin {
- 100% {
- -webkit-transform: rotate(360deg);
- transform: rotate(360deg);
- }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ transform: rotate(360deg);
+ }
}
.panel-content .filtered-credentials {
- text-decoration: underline;
- cursor: pointer;
+ text-decoration: underline;
+ cursor: pointer;
}
.terminal {
- margin: 20px 0;
- padding: 20px;
- background-color: #1a1a1a;
- color: #ffffff;
- line-height: 1.4;
- display: none;
+ margin: 20px 0;
+ padding: 20px;
+ background-color: #1a1a1a;
+ color: #ffffff;
+ line-height: 1.4;
+ display: none;
}
.terminal .section-header {
- color: #428bca;
+ color: #428bca;
}
.terminal .section-header:nth-of-type(1) {
- margin-top: 0;
+ margin-top: 0;
}
.terminal highlight {
- color: #D33C44;
+ color: #D33C44;
}
.terminal .loading {
- margin: 0;
+ margin: 0;
}
.terminal .indicator {
- vertical-align: middle;
- width: 30px;
- height: 30px;
- -webkit-animation: spin 4s linear infinite;
- -moz-animation: spin 4s linear infinite;
- animation: spin 4s linear infinite;
+ vertical-align: middle;
+ width: 30px;
+ height: 30px;
+ -webkit-animation: spin 4s linear infinite;
+ -moz-animation: spin 4s linear infinite;
+ animation: spin 4s linear infinite;
}
.terminal .warning-message {
- color: #ffcc00;
+ color: #ffcc00;
}
.terminal .success-message {
- color: #42bd41;
+ color: #42bd41;
+}
+
+.debugkit-plugin-routes-button-wrapper {
+ display: flex;
+ gap: 5px;
+ flex-wrap: wrap;
+ margin: 0 -5px;
+}
+
+.color-info-type {
+ align-items: center;
+ display: flex;
+}
+
+.color-info-type:before {
+ content: '';
+ display: inline-block;
+ height: 20px;
+ margin-right: 10px;
+ width: 20px;
+}
+
+.color-info-type--current-route:before {
+ background: #e7e9fd;
+}
+
+.color-info-type--duplicate-route:before {
+ background: #ffea96;
}
diff --git a/app/vendor/cakephp/migrations/README.md b/app/vendor/cakephp/migrations/README.md
index d929c681d..55f1edf60 100644
--- a/app/vendor/cakephp/migrations/README.md
+++ b/app/vendor/cakephp/migrations/README.md
@@ -1,8 +1,8 @@
# Migrations plugin for CakePHP
-[](LICENSE.txt)
-[](https://travis-ci.com/cakephp/migrations)
+[](https://github.com/cakephp/migrations/actions/workflows/ci.yml)
[](https://codecov.io/github/cakephp/migrations?branch=master)
+[](LICENSE.txt)
[](https://packagist.org/packages/cakephp/migrations)
This is a Database Migrations system for CakePHP.
@@ -41,4 +41,4 @@ Additionally, you will need to configure the ``default`` database configuration
## Documentation
-Full documentation of the plugin can be found on the [CakePHP Cookbook](https://book.cakephp.org/migrations/2/).
+Full documentation of the plugin can be found on the [CakePHP Cookbook](https://book.cakephp.org/migrations/3/).
diff --git a/app/vendor/cakephp/migrations/composer.json b/app/vendor/cakephp/migrations/composer.json
index b277a25ee..0c1bb60b2 100644
--- a/app/vendor/cakephp/migrations/composer.json
+++ b/app/vendor/cakephp/migrations/composer.json
@@ -2,7 +2,10 @@
"name": "cakephp/migrations",
"description": "Database Migration plugin for CakePHP based on Phinx",
"type": "cakephp-plugin",
- "keywords": ["cakephp", "migrations"],
+ "keywords": [
+ "cakephp",
+ "migrations"
+ ],
"homepage": "https://github.com/cakephp/migrations",
"license": "MIT",
"authors": [
@@ -20,14 +23,14 @@
"require": {
"php": ">=7.2.0",
"robmorgan/phinx": "^0.12",
- "cakephp/orm": "^4.0.5",
- "cakephp/cache": "^4.0.5"
+ "cakephp/orm": "^4.3.0",
+ "cakephp/cache": "^4.3.0"
},
"require-dev": {
- "phpunit/phpunit": "~8.5.0",
- "cakephp/cakephp": "^4.0.5",
- "cakephp/bake": "^2.1.0",
- "cakephp/cakephp-codesniffer": "~4.1.0"
+ "phpunit/phpunit": "^8.5.0 || ^9.5.0",
+ "cakephp/cakephp": "^4.3.0",
+ "cakephp/bake": "^2.6.0",
+ "cakephp/cakephp-codesniffer": "^4.1"
},
"autoload": {
"psr-4": {
@@ -53,11 +56,16 @@
"@test",
"@stan"
],
- "cs-check": "phpcs --colors -p -s --ignore=/tests/comparisons/,/test_app/config/,/TestBlog/config/ src/ tests/",
- "cs-fix": "phpcbf --colors -p --ignore=/tests/comparisons/,/test_app/config/,/TestBlog/config/ src/ tests/",
+ "cs-check": "phpcs --colors -p -s src/ tests/",
+ "cs-fix": "phpcbf --colors -p src/ tests/",
"stan": "phpstan analyse src/ && psalm.phar --show-info=false",
- "stan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:^0.12 psalm/phar:~3.11.2 && mv composer.backup composer.json",
+ "stan-setup": "cp composer.json composer.backup && composer require --dev phpstan/phpstan:~1.4.0 psalm/phar:~4.19.0 && mv composer.backup composer.json",
"test": "phpunit",
"test-coverage": "phpunit --coverage-clover=clover.xml"
+ },
+ "config": {
+ "allow-plugins": {
+ "dealerdirect/phpcodesniffer-composer-installer": true
+ }
}
}
diff --git a/app/vendor/cakephp/migrations/docs.Dockerfile b/app/vendor/cakephp/migrations/docs.Dockerfile
index 57e67529a..c1bb3db8f 100644
--- a/app/vendor/cakephp/migrations/docs.Dockerfile
+++ b/app/vendor/cakephp/migrations/docs.Dockerfile
@@ -8,11 +8,17 @@ RUN cd /data/docs-builder && \
make website LANGS="en fr ja pt ru" SOURCE=/data/docs DEST=/data/website/
# Build a small nginx container with just the static site in it.
-FROM nginx:1.15-alpine
+FROM markstory/cakephp-docs-builder:runtime as runtime
+ENV LANGS="en fr ja pt ru"
+ENV SEARCH_SOURCE="/usr/share/nginx/html"
+ENV SEARCH_URL_PREFIX="/migrations/3"
+
+COPY --from=builder /data/docs /data/docs
COPY --from=builder /data/website /data/website
COPY --from=builder /data/docs-builder/nginx.conf /etc/nginx/conf.d/default.conf
+
# Move each version into place
RUN cp -R /data/website/html/* /usr/share/nginx/html \
&& rm -rf /data/website/
diff --git a/app/vendor/cakephp/migrations/docs/config/all.py b/app/vendor/cakephp/migrations/docs/config/all.py
index ff278a201..68ab45555 100644
--- a/app/vendor/cakephp/migrations/docs/config/all.py
+++ b/app/vendor/cakephp/migrations/docs/config/all.py
@@ -23,8 +23,8 @@
# Other versions that display in the version picker menu.
version_list = [
- {'name': '2.x', 'number': '/migrations/2', 'title': '2.x'},
- {'name': '3.x', 'number': '/migrations/3', 'title': '3.x', 'current': True},
+ {'name': '2.x', 'number': 'migrations/2', 'title': '2.x'},
+ {'name': '3.x', 'number': 'migrations/3', 'title': '3.x', 'current': True},
]
# Languages available.
@@ -32,7 +32,7 @@
# The GitHub branch name for this version of the docs
# for edit links to point at.
-branch = 'master'
+branch = '3.x'
# Current version being built
version = '3.x'
diff --git a/app/vendor/cakephp/migrations/docs/en/index.rst b/app/vendor/cakephp/migrations/docs/en/index.rst
index 292ab119a..ddeb819e3 100644
--- a/app/vendor/cakephp/migrations/docs/en/index.rst
+++ b/app/vendor/cakephp/migrations/docs/en/index.rst
@@ -364,7 +364,10 @@ will generate::
{
$table = $this->table('products');
$table->addColumn('name', 'string')
+ ->addColumn('email', 'string')
->addIndex(['name'])
+ // add a unique index:
+ ->addIndex('email', ['unique' => true])
->update();
}
}
@@ -831,6 +834,59 @@ Dump files are created in the same directory as your migrations files.
You can also use the ``--source``, ``--connection`` and ``--plugin`` options
just like for the ``migrate`` command.
+
+Using Migrations for Tests
+==========================
+
+If you are using migrations for your application schema you can also use those
+same migrations to build schema in your tests. In your application's
+``tests/bootstrap.php`` file you can use the ``Migrator`` class to build schema
+when tests are run. The ``Migrator`` will use existing schema if it is current,
+and if the migration history that is in the database differs from what is in the
+filesystem, all tables will be dropped and migrations will be rerun from the
+beginning::
+
+ // in tests/bootstrap.php
+ use Migrations\TestSuite\Migrator;
+
+ $migrator = new Migrator();
+
+ // Simple setup for with no plugins
+ $migrator->run();
+
+ // Run a non 'test' database
+ $migrator->run(['connection' => 'test_other']);
+
+ // Run migrations for plugins
+ $migrator->run(['plugin' => 'Contacts']);
+
+ // Run the Documents migrations on the test_docs connection.
+ $migrator->run(['plugin' => 'Documents', 'connection' => 'test_docs']);
+
+
+If you need to run multiple sets of migrations, those can be run as follows::
+
+ // Run migrations for plugin Contacts on the ``test`` connection, and Documents on the ``test_docs`` connection
+ $migrator->runMany([
+ ['plugin' => 'Contacts'],
+ ['plugin' => 'Documents', 'connection' => 'test_docs']
+ ]);
+
+If your database also contains tables that are not managed by your application
+like those created by PostGIS, then you can exclude those tables from the drop
+& truncate behavior using the ``skip`` option::
+
+ $migrator->run(['connection' => 'test', 'skip' => ['postgis*']]);
+
+The ``skip`` option accepts a ``fnmatch()`` compatible pattern to exclude tables
+from drop & truncate operations.
+
+If you need to see additional debugging output from migrations are being run,
+you can enable a ``debug`` level logger.
+
+.. versionadded: 3.2.0
+ Migrator was added to complement the new fixtures in CakePHP 4.3.0.
+
Using Migrations In Plugins
===========================
diff --git a/app/vendor/cakephp/migrations/docs/fr/index.rst b/app/vendor/cakephp/migrations/docs/fr/index.rst
index b8e78cd0a..6437333d5 100644
--- a/app/vendor/cakephp/migrations/docs/fr/index.rst
+++ b/app/vendor/cakephp/migrations/docs/fr/index.rst
@@ -31,7 +31,8 @@ localisé):
Pour utiliser le plugin, vous devrez le charger dans le fichier
**config/bootstrap.php** de votre application.
-Vous pouvez utiliser :ref:`le shell de Plugin de CakePHP ` pour
+Vous pouvez utiliser `le shell de Plugin de CakePHP
+`__ pour
charger et décharger les plugins de votre **config/bootstrap.php**:
.. code-block:: bash
@@ -45,7 +46,8 @@ Ou vous pouvez charger le plugin en modifiant votre fichier
De plus, vous devrez configurer la base de données par défaut pour votre
application dans le fichier **config/app.php** comme expliqué dans la section
-sur la :ref:`configuration des bases de données `.
+sur la `configuration des bases de données
+`__.
Vue d'ensemble
==============
@@ -142,7 +144,7 @@ Voici quelques exemples de noms de fichiers de migration:
* 20160210133047_AddRatingToProducts.php
La meilleure façon de créer un fichier de migration est d'utiliser la ligne de
-commande :doc:`/bake/usage`.
+commande ``bin/cake bake migration``.
Assurez-vous de bien lire la `documentation officielle de Phinx `_ afin de connaître la liste
complète des méthodes que vous pouvez utiliser dans l'écriture des fichiers de
@@ -722,6 +724,7 @@ En ce qui concerne migrations, une interface ``bake`` est fournie pour les
fichiers de seed:
.. code-block:: bash
+
# Ceci va créer un fichier ArticlesSeed.php dans le répertoire config/Seeds
# de votre application
# Par défaut, la table que le seed va essayer de modifier est la version
@@ -854,6 +857,50 @@ migrations.
Vous pouvez aussi utiliser les options ``--source``, ``--connection`` et
``--plugin`` comme pour la commande ``migrate``.
+
+Utiliser Migrations dans les Tests
+==================================
+
+Si votre application fait usage des migrations, vous pouvez ré-utiliser
+celles-ci afin de maintenir le schéma de votre base de données de test. Dans
+le fichier ``tests/bootstrap.php``, vous pouvez utiliser la
+classe ``Migrator`` pour construire le schéma avant que vos tests ne soient lancés.
+La classe ``Migrator`` réutilisera le schéma existant si il correspond à vos migrations.
+Si vos migrations ont évolué depuis le dernier lancement de vos tests, toutes les
+tables des connections de test concernées seront effacées et les migrations seront relancées
+afin d'actualiser le schéma::
+
+ // dans tests/bootstrap.php
+ use Migrations\TestSuite\Migrator;
+
+ $migrator = new Migrator();
+
+ // Simple setup sans plugins
+ $migrator->run();
+
+ // Setup sur une base de données autre que 'test'
+ $migrator->run(['connection' => 'test_other']);
+
+ // Setup pour un plugin
+ $migrator->run(['plugin' => 'Contacts']);
+
+ // Lancer les migrations du plugin Documents sur la connection test_docs.
+ $migrator->run(['plugin' => 'Documents', 'connection' => 'test_docs']);
+
+
+Si vos migrations se trouvent à différents endroits, celles-ci doivent être executées ainsi::
+
+ // Migrations du plugin Contacts sur la connection ``test``, et du plugin Documents sur la connection ``test_docs``
+ $migrator->runMany([
+ ['plugin' => 'Contacts'],
+ ['plugin' => 'Documents', 'connection' => 'test_docs']
+ ]);
+
+Les informations relatives au status des migrations de test sont rapportées dans les logs de l'application.
+
+.. versionadded: 3.2.0
+ Migrator was added to complement the new fixtures in CakePHP 4.3.0.
+
Utiliser Migrations dans les Plugins
====================================
@@ -1084,8 +1131,8 @@ vider le cache de l'ORM pour qu'il renouvelle les _metadata_ des colonnes de vos
tables.
Autrement, vous pourrez rencontrer des erreurs de colonnes inexistantes quand
vous effectuerez des opérations sur vos nouvelles colonnes.
-Le Core de CakePHP inclut un
-:doc:`Shell de Cache du Schéma ` que vous pouvez
+Le Core de CakePHP inclut un `Shell de Cache du Schéma
+`__ que vous pouvez
utilisez pour vider le cache:
.. code-block:: bash
@@ -1093,8 +1140,8 @@ utilisez pour vider le cache:
// Avant 3.6, utilisez orm_cache
bin/cake schema_cache clear
-Veuillez vous référer à la section du cookbook à propos du
-:doc:`Shell du Cache du Schéma ` si vous voulez
+Veuillez vous référer à la section du cookbook à propos du `Shell du Cache du Schéma
+`__ si vous voulez
plus de détails à propos de ce shell.
Renommer une table
diff --git a/app/vendor/cakephp/migrations/docs/ja/index.rst b/app/vendor/cakephp/migrations/docs/ja/index.rst
index a819f6a49..3dc5a6020 100644
--- a/app/vendor/cakephp/migrations/docs/ja/index.rst
+++ b/app/vendor/cakephp/migrations/docs/ja/index.rst
@@ -29,7 +29,8 @@ Migrations
このプラグインを使用するためには、あなたは、アプリケーションの **config/bootstrap.php**
ファイルでロードする必要があります。あなたの **config/bootstrap.php** からプラグインを
-ロード・アンロードするために :ref:`CakePHP の Plugin シェル `
+ロード・アンロードするために `CakePHP の Plugin シェル
+`__
が利用できます。 :
.. code-block:: bash
@@ -43,7 +44,8 @@ Migrations
// 3.6.0 より前は Plugin::load() を使用する必要があります
-また、 :ref:`データベース設定 ` の項で説明したように、
+また、 `データベース設定
+`__ の項で説明したように、
あなたの **config/app.php** ファイル内のデフォルトのデータベース構成を設定する必要が
あります。
@@ -120,7 +122,7 @@ Migrations
bin/cake migrations migrate
以下の ``migrations`` コマンドは、 ``rollback`` を実行するとあなたのデータベースから
-テーブルが削除されます。 :
+テーブルが削除されます。
.. code-block:: bash
@@ -168,7 +170,7 @@ Migrations
規約のために、すべてのスキーマの変更がこれらのシェルコマンドで動作するわけではありません。
さらに、実行内容を完全に制御したいのであれば、空のマイグレーションファイルを
-作る事ができます。 ::
+作る事ができます。
.. code-block:: bash
@@ -1005,8 +1007,8 @@ Table オブジェクトのレジストリーは、 ``update()`` が呼ばれた
もし、アプリケーションをデプロイする時にプラグインを使用する場合、
テーブルのカラムメタデータを更新するように、必ず ORM キャッシュをクリアしてください。
そうしなければ、それらの新しいカラムの操作を実行する時に、カラムが存在しないエラーになります。
-CakePHP コアは、この操作を行うために使用できる :doc:`スキーマキャッシュシェル
-` を含みます。 :
+CakePHP コアは、この操作を行うために使用できる `スキーマキャッシュシェル
+`__ を含みます。 :
.. code-block:: bash
@@ -1014,7 +1016,7 @@ CakePHP コアは、この操作を行うために使用できる :doc:`スキ
bin/cake schema_cache clear
このシェルについてもっと知りたい場合、クックブックの
-:doc:`スキーマキャッシュシェル `
+`スキーマキャッシュシェル `__
セクションをご覧ください。
テーブルのリネーム
diff --git a/app/vendor/cakephp/migrations/docs/pt/index.rst b/app/vendor/cakephp/migrations/docs/pt/index.rst
index d993770d4..aed3deba0 100644
--- a/app/vendor/cakephp/migrations/docs/pt/index.rst
+++ b/app/vendor/cakephp/migrations/docs/pt/index.rst
@@ -30,7 +30,8 @@ diretório **ROOT** da sua aplicação
Para usar o plugin você precisa carregá-lo no arquivo **config/bootstrap.php**
da sua aplicação. Você pode usar o
-:ref:`shell de plugins do CakePHP ` para carregar e descarregar
+`shell de plugins do CakePHP
+`__ para carregar e descarregar
plugins do seu arquivo **config/bootstrap.php**::
$ bin/cake plugin load Migrations
@@ -42,7 +43,7 @@ adicionando a linha::
Adicionalmente, você precisará configurar o banco de dados padrão da sua
aplicação, no arquivo **config/app.php** como explicado na seção
-:ref:`Configuração de banco de dados `.
+`Configuração de banco de dados `__.
Visão Geral
===========
@@ -133,7 +134,7 @@ estão exemplos de arquivos de migração:
* 20160210133047_AddRatingToProducts.php
A maneira mais fácil de criar um arquivo de migrações é usando o
-:doc:`/bake/usage` a linha de comando.
+``bin/cake bake migration`` a linha de comando.
Por favor, leia a `documentação do Phinx `
a fim de conhecer a lista completa dos métodos que você pode usar para escrever
@@ -931,10 +932,12 @@ Se você usa o plugin ao fazer o **deploy** de sua aplicação, garanta que o ca
ORM seja limpo para renovar os metadados das colunas de suas tabelas.
Caso contrário, você pode acabar recebendo erros relativos a colunas
inexistentes ao criar operações nessas mesmas colunas.
-O **core** do CakePHP possui uma :doc:`Schema Cache Shell `
+O **core** do CakePHP possui uma
+`Schema Cache Shell `__
que você pode usar para realizar essas operação::
$ bin/cake schema_cache clear
-Leia a seção :doc:`Schema Cache Shell ` do cookbook
+Leia a seção `Schema Cache Shell
+`__ do cookbook
se você quiser conhecer mais sobre essa **shell**.
diff --git a/app/vendor/cakephp/migrations/docs/ru/index.rst b/app/vendor/cakephp/migrations/docs/ru/index.rst
index f0574835d..63acaf52f 100644
--- a/app/vendor/cakephp/migrations/docs/ru/index.rst
+++ b/app/vendor/cakephp/migrations/docs/ru/index.rst
@@ -28,7 +28,8 @@
Чтобы использовать плагин, вам нужно загрузить его в файле **config/bootstrap.php**
вашего приложения. Вы можете использовать
-:ref:`CakePHP's Plugin shell ` для загрузки и выгрузки плагинов из
+`CakePHP's Plugin shell
+`__ для загрузки и выгрузки плагинов из
вашего **config/bootstrap.php**::
$ bin/cake plugin load Migrations
@@ -40,7 +41,8 @@
Кроме того, вам нужно будет настроить конфигурацию базы данных по умолчанию для вашего
приложения в файле **config/app.php**, как описано в
-:ref:`Раздел о конфигурации БД `.
+`Раздел о конфигурации БД
+`__.
Обзор
=====
@@ -131,7 +133,7 @@
* 20160210133047_AddRatingToProducts.php
Самый простой способ создать файл миграции - это использовать команду CLI
-:doc:`/bake/usage`.
+``bin/cake bake migration``.
Пожалуйста, убедитесь, что вы читали официальную
`Phinx documentation `_
@@ -977,12 +979,14 @@ unsigned или not, limit, comment и т.д.
кэш ORM, чтобы он обновил метаданные столбца ваших таблиц. В противном случае
вы можете столкнуться с ошибками в отношении столбцов, которые не существуют
при выполнении операций над этими новыми столбцами.
-Ядро CakePHP включает :doc:`Schema Cache Shell `
+Ядро CakePHP включает `Schema Cache Shell
+`__
который вы можете использовать для выполнения этой операции::
$ bin/cake schema_cache clear
-Обязательно прочитайте раздел :doc:`Schema Cache Shell `,
+Обязательно прочитайте раздел `Schema Cache Shell
+`__,
если вы хотите узнать больше об этой оболочке.
Переименование таблицы
diff --git a/app/vendor/cakephp/migrations/psalm-baseline.xml b/app/vendor/cakephp/migrations/psalm-baseline.xml
index 8eb333857..ea364eabb 100644
--- a/app/vendor/cakephp/migrations/psalm-baseline.xml
+++ b/app/vendor/cakephp/migrations/psalm-baseline.xml
@@ -1,15 +1,28 @@
-
+
+
+ $Migration
+ array|string
+
+
+ return $line !== false;
+
+ setInput
+
+
+ new $value()
+
+ $name
@@ -23,6 +36,16 @@
find
+
+
+ new ConnectionHelper()
+
+
+ dropTables
+ truncateTables
+ truncateTables
+
+ $fieldType
@@ -33,4 +56,29 @@
string|null
+
+
+ $defaultName
+
+
+
+
+ $defaultName
+
+
+
+
+ $defaultName
+
+
+
+
+ $defaultName
+
+
+
+
+ $defaultName
+
+
diff --git a/app/vendor/cakephp/migrations/psalm.xml b/app/vendor/cakephp/migrations/psalm.xml
index bbcc1b2b4..958f4f1f4 100644
--- a/app/vendor/cakephp/migrations/psalm.xml
+++ b/app/vendor/cakephp/migrations/psalm.xml
@@ -2,7 +2,6 @@
+
+
+
-
diff --git a/app/vendor/cakephp/migrations/src/CakeAdapter.php b/app/vendor/cakephp/migrations/src/CakeAdapter.php
index 565b85cda..6622f443e 100644
--- a/app/vendor/cakephp/migrations/src/CakeAdapter.php
+++ b/app/vendor/cakephp/migrations/src/CakeAdapter.php
@@ -41,7 +41,7 @@ class CakeAdapter extends AdapterWrapper
public function __construct(AdapterInterface $adapter, ?Connection $connection = null)
{
if ($connection === null) {
- throw new \InvalidArgumentException("The cake connection cannot be null");
+ throw new \InvalidArgumentException('The cake connection cannot be null');
}
parent::__construct($adapter);
diff --git a/app/vendor/cakephp/migrations/src/Command/BakeMigrationCommand.php b/app/vendor/cakephp/migrations/src/Command/BakeMigrationCommand.php
index a8ca32ac4..e8a21b5cc 100644
--- a/app/vendor/cakephp/migrations/src/Command/BakeMigrationCommand.php
+++ b/app/vendor/cakephp/migrations/src/Command/BakeMigrationCommand.php
@@ -17,6 +17,7 @@
use Cake\Console\Arguments;
use Cake\Console\ConsoleIo;
+use Cake\Console\ConsoleOptionParser;
use Cake\Core\Configure;
use Cake\Event\Event;
use Cake\Event\EventManager;
@@ -116,12 +117,74 @@ public function templateData(Arguments $arguments): array
];
}
+ /**
+ * Gets the option parser instance and configures it.
+ *
+ * @return \Cake\Console\ConsoleOptionParser
+ */
+ public function getOptionParser(): ConsoleOptionParser
+ {
+ $parser = parent::getOptionParser();
+ $text = <<<'TEXT'
+Create a blank or generated migration. Using the name of the migration
+Operations and table names will be inferred.
+
+Examples
+
+bin/cake bake migration CreateUsers
+
+This command will generate a migration that creates
+a table named users.
+
+bin/cake bake migration DropGroups
+This command will generate a migration that drops
+the groups table.
+
+bin/cake bake migration AlterUsers
+This command will generate a migration that alters the users table.
+
+bin/cake bake migration AddFieldToUsers role:string
+This command will generate a migration that adds a 'role' field
+with a 'string' type to the users table. Migrations that operate
+on columns can use the Column Grammar to describe
+the column in detail.
+
+bin/cake bake migration AlterFieldOnUsers role
+These commands will generate a migration that will alter the 'role'
+field on the users table.
+
+bin/cake bake migration RemoveFieldsFromUsers role
+bin/cake bake migration RemoveRoleFromUsers
+These commands will generate a migration that will remove the 'role'
+field on the users table.
+
+Column Grammar
+
+When describing columns you can use the following syntax:
+
+{name}:{primary}{type}{nullable}[{length}]:{index}
+
+All sections other than name are optional.
+
+* The types are the abstract database column types in CakePHP.
+* The ? value indicates if a column is nullable.
+ e.x. `role:string?`.
+* Length option must be enclosed in `[]` e.x. `name:string[100]`
+* The `index` attribute can define the column as having a unique
+ key with `unique` or a primary key with `primary`.
+TEXT;
+
+ $parser->setDescription($text);
+
+ return $parser;
+ }
+
/**
* Detects the action and table from the name of a migration
*
* @param string $name Name of migration
* @return array
- **/
+ */
public function detectAction($name)
{
if (preg_match('/^(Create|Drop)(.*)/', $name, $matches)) {
diff --git a/app/vendor/cakephp/migrations/src/Command/BakeMigrationDiffCommand.php b/app/vendor/cakephp/migrations/src/Command/BakeMigrationDiffCommand.php
index c6cce9d5b..85ff4f0f0 100644
--- a/app/vendor/cakephp/migrations/src/Command/BakeMigrationDiffCommand.php
+++ b/app/vendor/cakephp/migrations/src/Command/BakeMigrationDiffCommand.php
@@ -547,7 +547,7 @@ protected function getCurrentSchema()
}
$collection = $connection->getSchemaCollection();
foreach ($this->tables as $table) {
- if (preg_match("/^.*phinxlog$/", $table) === 1) {
+ if (preg_match('/^.*phinxlog$/', $table) === 1) {
continue;
}
@@ -574,7 +574,11 @@ public function getOptionParser(): ConsoleOptionParser
{
$parser = parent::getOptionParser();
- $parser->addArgument('name', [
+ $parser->setDescription(
+ 'Create a migration that captures the difference between ' .
+ 'the migration state is expected to be and what the schema ' .
+ 'reflection contains.'
+ )->addArgument('name', [
'help' => 'Name of the migration to bake. Can use Plugin.name to bake migration files into plugins.',
'required' => true,
]);
diff --git a/app/vendor/cakephp/migrations/src/Command/BakeMigrationSnapshotCommand.php b/app/vendor/cakephp/migrations/src/Command/BakeMigrationSnapshotCommand.php
index 0defa204c..b8ac5c4bf 100644
--- a/app/vendor/cakephp/migrations/src/Command/BakeMigrationSnapshotCommand.php
+++ b/app/vendor/cakephp/migrations/src/Command/BakeMigrationSnapshotCommand.php
@@ -147,7 +147,10 @@ public function getOptionParser(): ConsoleOptionParser
$parser = parent::getOptionParser();
$parser->setDescription(
- 'Bake migration snapshot class.'
+ "Bake migration snapshot class\n" .
+ "\n" .
+ 'Migration snapshots capture the current schema of an application into a ' .
+ 'migration that will reproduce the current state as accurately as possible.'
)->addArgument('name', [
'help' => 'Name of the migration to bake. Can use Plugin.name to bake migration files into plugins.',
'required' => true,
diff --git a/app/vendor/cakephp/migrations/src/Command/BakeSeedCommand.php b/app/vendor/cakephp/migrations/src/Command/BakeSeedCommand.php
index 498092e21..4f33524f3 100644
--- a/app/vendor/cakephp/migrations/src/Command/BakeSeedCommand.php
+++ b/app/vendor/cakephp/migrations/src/Command/BakeSeedCommand.php
@@ -117,19 +117,23 @@ public function templateData(Arguments $arguments): array
if ($fields !== '*') {
$fields = explode(',', $fields);
}
+ $model = $this->getTableLocator()->get('BakeSeed', [
+ 'table' => $table,
+ 'connection' => ConnectionManager::get($this->connection),
+ ]);
- $connection = ConnectionManager::get($this->connection);
-
- $query = $connection->newQuery()
- ->from($table)
- ->select($fields);
+ $query = $model->find('all')
+ ->enableHydration(false);
if ($limit) {
$query->limit($limit);
}
+ if ($fields !== '*') {
+ $query->select($fields);
+ }
/** @var array $records */
- $records = $connection->execute($query->sql())->fetchAll('assoc');
+ $records = $query->toArray();
$records = $this->prettifyArray($records);
}
@@ -191,7 +195,7 @@ public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionPar
* @param string $indentCharacter Desired indent for the code.
* @return string
*/
- protected function prettifyArray(array $array, $tabCount = 3, $indentCharacter = " ")
+ protected function prettifyArray(array $array, $tabCount = 3, $indentCharacter = ' ')
{
$content = var_export($array, true);
@@ -216,7 +220,7 @@ protected function prettifyArray(array $array, $tabCount = 3, $indentCharacter =
if (!$inString) {
if ($line === '),') {
- //Check for closing bracket
+ // Check for closing bracket
$line = '],';
$tabCount--;
} elseif (preg_match("/^\d+\s\=\>\s$/", $line)) {
@@ -232,15 +236,15 @@ protected function prettifyArray(array $array, $tabCount = 3, $indentCharacter =
$length = strlen($line);
for ($j = 0; $j < $length; $j++) {
if ($line[$j] === '\\') {
- //skip character right after an escape \
+ // skip character right after an escape \
$j++;
} elseif ($line[$j] === '\'') {
- //check string open/end
+ // check string open/end
$inString = !$inString;
}
}
- //check for opening bracket
+ // check for opening bracket
if (!$inString && trim($line) === 'array (') {
$line = str_replace('array (', '[', $line);
$tabCount++;
diff --git a/app/vendor/cakephp/migrations/src/Command/Phinx/MarkMigrated.php b/app/vendor/cakephp/migrations/src/Command/Phinx/MarkMigrated.php
index f9553d63c..ce579a610 100644
--- a/app/vendor/cakephp/migrations/src/Command/Phinx/MarkMigrated.php
+++ b/app/vendor/cakephp/migrations/src/Command/Phinx/MarkMigrated.php
@@ -117,7 +117,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
if ($this->invalidOnlyOrExclude()) {
$output->writeln(
- "You should use `--exclude` OR `--only` (not both) along with a `--target` !"
+ 'You should use `--exclude` OR `--only` (not both) along with a `--target` !'
);
return BaseCommand::CODE_ERROR;
@@ -134,7 +134,7 @@ protected function execute(InputInterface $input, OutputInterface $output)
try {
$versions = $this->getManager()->getVersionsToMark($input);
} catch (InvalidArgumentException $e) {
- $output->writeln(sprintf("%s", $e->getMessage()));
+ $output->writeln(sprintf('%s', $e->getMessage()));
return BaseCommand::CODE_ERROR;
}
@@ -207,9 +207,9 @@ protected function invalidOnlyOrExclude()
*/
protected function outputDeprecatedAllMessage()
{
- $msg = "DEPRECATED: `all` or `*` as version is deprecated. Use `bin/cake migrations mark_migrated` instead";
+ $msg = 'DEPRECATED: `all` or `*` as version is deprecated. Use `bin/cake migrations mark_migrated` instead';
$output = $this->output();
- $output->writeln(sprintf("%s", $msg));
+ $output->writeln(sprintf('%s', $msg));
}
/**
@@ -222,6 +222,6 @@ protected function outputDeprecatedVersionMessage()
$msg = 'DEPRECATED: VERSION as argument is deprecated. Use: ' .
'`bin/cake migrations mark_migrated --target=VERSION --only`';
$output = $this->output();
- $output->writeln(sprintf("%s", $msg));
+ $output->writeln(sprintf('%s', $msg));
}
}
diff --git a/app/vendor/cakephp/migrations/src/ConfigurationTrait.php b/app/vendor/cakephp/migrations/src/ConfigurationTrait.php
index c213b6af4..6851190f1 100644
--- a/app/vendor/cakephp/migrations/src/ConfigurationTrait.php
+++ b/app/vendor/cakephp/migrations/src/ConfigurationTrait.php
@@ -13,6 +13,11 @@
*/
namespace Migrations;
+use Cake\Core\Configure;
+use Cake\Database\Driver\Mysql;
+use Cake\Database\Driver\Postgres;
+use Cake\Database\Driver\Sqlite;
+use Cake\Database\Driver\Sqlserver;
use Cake\Datasource\ConnectionManager;
use Migrations\Util\UtilTrait;
use Phinx\Config\Config;
@@ -78,11 +83,11 @@ public function getConfig($forceRefresh = false)
$seedsPath = $this->getOperationsPath($this->input(), 'Seeds');
$plugin = $this->getPlugin($this->input());
- if (!is_dir($migrationsPath)) {
+ if (Configure::read('debug') && !is_dir($migrationsPath)) {
mkdir($migrationsPath, 0777, true);
}
- if (!is_dir($seedsPath)) {
+ if (Configure::read('debug') && !is_dir($seedsPath)) {
mkdir($seedsPath, 0777, true);
}
@@ -146,28 +151,15 @@ public function getConfig($forceRefresh = false)
*/
$config['environments']['default']['mysql_attr_ssl_ca'] = $connectionConfig['ssl_ca'];
}
-
- /** @psalm-suppress PossiblyNullReference */
- if (!empty($connectionConfig['flags'])) {
- /**
- * @psalm-suppress PossiblyNullArrayAccess
- * @psalm-suppress PossiblyNullArgument
- */
- $config['environments']['default'] +=
- $this->translateConnectionFlags($connectionConfig['flags'], $adapterName);
- }
}
- if ($adapterName === 'sqlsrv') {
- /** @psalm-suppress PossiblyNullReference */
- if (!empty($connectionConfig['flags'])) {
- /**
- * @psalm-suppress PossiblyNullArrayAccess
- * @psalm-suppress PossiblyNullArgument
- */
- $config['environments']['default'] +=
- $this->translateConnectionFlags($connectionConfig['flags'], $adapterName);
- }
+ if (!empty($connectionConfig['flags'])) {
+ /**
+ * @psalm-suppress PossiblyNullArrayAccess
+ * @psalm-suppress PossiblyNullArgument
+ */
+ $config['environments']['default'] +=
+ $this->translateConnectionFlags($connectionConfig['flags'], $adapterName);
}
return $this->configuration = new Config($config);
@@ -185,17 +177,17 @@ public function getConfig($forceRefresh = false)
public function getAdapterName($driver)
{
switch ($driver) {
- case 'Cake\Database\Driver\Mysql':
- case is_subclass_of($driver, 'Cake\Database\Driver\Mysql'):
+ case Mysql::class:
+ case is_subclass_of($driver, Mysql::class):
return 'mysql';
- case 'Cake\Database\Driver\Postgres':
- case is_subclass_of($driver, 'Cake\Database\Driver\Postgres'):
+ case Postgres::class:
+ case is_subclass_of($driver, Postgres::class):
return 'pgsql';
- case 'Cake\Database\Driver\Sqlite':
- case is_subclass_of($driver, 'Cake\Database\Driver\Sqlite'):
+ case Sqlite::class:
+ case is_subclass_of($driver, Sqlite::class):
return 'sqlite';
- case 'Cake\Database\Driver\Sqlserver':
- case is_subclass_of($driver, 'Cake\Database\Driver\Sqlserver'):
+ case Sqlserver::class:
+ case is_subclass_of($driver, Sqlserver::class):
return 'sqlsrv';
}
@@ -218,8 +210,12 @@ protected function getConnectionName(InputInterface $input)
* Translates driver specific connection flags (PDO attributes) to
* Phinx compatible adapter options.
*
- * Currently Phinx supports the `PDO::MYSQL_ATTR_*` and
- * `PDO::SQLSRV_ATTR_*` attributes.
+ * Currently Phinx supports of the following flags:
+ *
+ * - *Most* of `PDO::ATTR_*`
+ * - `PDO::MYSQL_ATTR_*`
+ * - `PDO::PGSQL_ATTR_*`
+ * - `PDO::SQLSRV_ATTR_*`
*
* ### Example:
*
@@ -253,7 +249,7 @@ protected function translateConnectionFlags(array $flags, $adapterName)
$attributes = [];
foreach ($constants as $name => $value) {
$name = strtolower($name);
- if (strpos($name, "{$adapterName}_attr_") === 0) {
+ if (strpos($name, "{$adapterName}_attr_") === 0 || strpos($name, 'attr_') === 0) {
$attributes[$value] = $name;
}
}
diff --git a/app/vendor/cakephp/migrations/src/Plugin.php b/app/vendor/cakephp/migrations/src/Plugin.php
index 282a42456..84f3eb2a4 100644
--- a/app/vendor/cakephp/migrations/src/Plugin.php
+++ b/app/vendor/cakephp/migrations/src/Plugin.php
@@ -54,29 +54,29 @@ class Plugin extends BasePlugin
/**
* Add migrations commands.
*
- * @param \Cake\Console\CommandCollection $collection The command collection to update
+ * @param \Cake\Console\CommandCollection $commands The command collection to update
* @return \Cake\Console\CommandCollection
*/
- public function console(CommandCollection $collection): CommandCollection
+ public function console(CommandCollection $commands): CommandCollection
{
if (class_exists('Bake\Command\SimpleBakeCommand')) {
- $commands = $collection->discoverPlugin($this->getName());
+ $found = $commands->discoverPlugin($this->getName());
- return $collection->addMany($commands);
+ return $commands->addMany($found);
}
- $commands = [];
+ $found = [];
foreach ($this->migrationCommandsList as $class) {
$name = $class::defaultName();
// If the short name has been used, use the full name.
// This allows app commands to have name preference.
// and app commands to overwrite migration commands.
- if (!$collection->has($name)) {
- $commands[$name] = $class;
+ if (!$commands->has($name)) {
+ $found[$name] = $class;
}
// full name
- $commands['migrations.' . $name] = $class;
+ $found['migrations.' . $name] = $class;
}
- return $collection->addMany($commands);
+ return $commands->addMany($found);
}
}
diff --git a/app/vendor/cakephp/migrations/src/Shell/Task/SimpleMigrationTask.php b/app/vendor/cakephp/migrations/src/Shell/Task/SimpleMigrationTask.php
index 4287bfab2..189ba9269 100644
--- a/app/vendor/cakephp/migrations/src/Shell/Task/SimpleMigrationTask.php
+++ b/app/vendor/cakephp/migrations/src/Shell/Task/SimpleMigrationTask.php
@@ -57,7 +57,7 @@ public function fileName($name): string
public function getPath(): string
{
$path = ROOT . DS . $this->pathFragment;
- if (isset($this->plugin)) {
+ if ($this->plugin !== null) {
$path = $this->_pluginPath($this->plugin) . $this->pathFragment;
}
diff --git a/app/vendor/cakephp/migrations/src/Table.php b/app/vendor/cakephp/migrations/src/Table.php
index 55414fa4d..afd1c5b86 100644
--- a/app/vendor/cakephp/migrations/src/Table.php
+++ b/app/vendor/cakephp/migrations/src/Table.php
@@ -121,14 +121,12 @@ public function create()
if ($this->getAdapter()->getAdapterType() === 'mysql' && empty($options['collation'])) {
$encodingRequest = 'SELECT DEFAULT_CHARACTER_SET_NAME, DEFAULT_COLLATION_NAME
- FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = "%s"';
+ FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = :dbname';
$cakeConnection = $this->getAdapter()->getCakeConnection();
$connectionConfig = $cakeConnection->config();
- $encodingRequest = sprintf($encodingRequest, $connectionConfig['database']);
- /** @var \Cake\Database\StatementInterface $statement */
- $statement = $cakeConnection->execute($encodingRequest);
+ $statement = $cakeConnection->execute($encodingRequest, ['dbname' => $connectionConfig['database']]);
$defaultEncoding = $statement->fetch('assoc');
if (!empty($defaultEncoding['DEFAULT_COLLATION_NAME'])) {
$options['collation'] = $defaultEncoding['DEFAULT_COLLATION_NAME'];
diff --git a/app/vendor/cakephp/migrations/src/View/Helper/MigrationHelper.php b/app/vendor/cakephp/migrations/src/View/Helper/MigrationHelper.php
index b15c67b60..2e36e4e0a 100644
--- a/app/vendor/cakephp/migrations/src/View/Helper/MigrationHelper.php
+++ b/app/vendor/cakephp/migrations/src/View/Helper/MigrationHelper.php
@@ -339,8 +339,14 @@ public function primaryKeysColumnsList($table)
*/
public function column($tableSchema, $column)
{
+ $columnType = $tableSchema->getColumnType($column);
+ // Phinx doesn't understand timestampfractional.
+ if ($columnType === 'timestampfractional') {
+ $columnType = 'timestamp';
+ }
+
return [
- 'columnType' => $tableSchema->getColumnType($column),
+ 'columnType' => $columnType,
'options' => $this->attributes($tableSchema, $column),
];
}
@@ -398,7 +404,7 @@ public function getColumnOption(array $options)
/**
* Returns a string-like representation of a value
*
- * @param string|bool|null $value A value to represent as a string
+ * @param string|int|bool|null $value A value to represent as a string
* @param bool $numbersAsString Set tu true to return as string.
* @return mixed
*/
@@ -460,7 +466,7 @@ public function attributes($table, $column)
break;
case 'unsigned':
$option = 'signed';
- $value = (bool)!$value;
+ $value = !$value;
break;
case 'unique':
$value = (bool)$value;
@@ -530,9 +536,9 @@ public function stringifyList(array $list, array $options = [], array $wantedOpt
$join = ', ';
if ($options['indent']) {
$join = ',';
- $start = "\n" . str_repeat(" ", $options['indent']);
+ $start = "\n" . str_repeat(' ', $options['indent']);
$join .= $start;
- $end = "\n" . str_repeat(" ", $options['indent'] - 1);
+ $end = "\n" . str_repeat(' ', $options['indent'] - 1);
}
return $start . implode($join, $list) . ',' . $end;
@@ -630,7 +636,7 @@ public function getCreateTableData($table): array
$indexes = array_filter($indexes, function ($index) use ($foreignKeys) {
return !in_array($index['columns'], $foreignKeys, true);
});
- $result = compact('constraints', 'constraints', 'indexes', 'foreignKeys');
+ $result = compact('constraints', 'indexes', 'foreignKeys');
return $result;
}
diff --git a/app/vendor/composer/ClassLoader.php b/app/vendor/composer/ClassLoader.php
index 1a58957d2..afef3fa2a 100644
--- a/app/vendor/composer/ClassLoader.php
+++ b/app/vendor/composer/ClassLoader.php
@@ -42,21 +42,75 @@
*/
class ClassLoader
{
+ /** @var ?string */
+ private $vendorDir;
+
// PSR-4
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
private $prefixLengthsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
private $prefixDirsPsr4 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
private $fallbackDirsPsr4 = array();
// PSR-0
+ /**
+ * @var array[]
+ * @psalm-var array>
+ */
private $prefixesPsr0 = array();
+ /**
+ * @var array[]
+ * @psalm-var array
+ */
private $fallbackDirsPsr0 = array();
+ /** @var bool */
private $useIncludePath = false;
+
+ /**
+ * @var string[]
+ * @psalm-var array
+ */
private $classMap = array();
+
+ /** @var bool */
private $classMapAuthoritative = false;
+
+ /**
+ * @var bool[]
+ * @psalm-var array
+ */
private $missingClasses = array();
+
+ /** @var ?string */
private $apcuPrefix;
+ /**
+ * @var self[]
+ */
+ private static $registeredLoaders = array();
+
+ /**
+ * @param ?string $vendorDir
+ */
+ public function __construct($vendorDir = null)
+ {
+ $this->vendorDir = $vendorDir;
+ }
+
+ /**
+ * @return string[]
+ */
public function getPrefixes()
{
if (!empty($this->prefixesPsr0)) {
@@ -66,28 +120,47 @@ public function getPrefixes()
return array();
}
+ /**
+ * @return array[]
+ * @psalm-return array>
+ */
public function getPrefixesPsr4()
{
return $this->prefixDirsPsr4;
}
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
public function getFallbackDirs()
{
return $this->fallbackDirsPsr0;
}
+ /**
+ * @return array[]
+ * @psalm-return array
+ */
public function getFallbackDirsPsr4()
{
return $this->fallbackDirsPsr4;
}
+ /**
+ * @return string[] Array of classname => path
+ * @psalm-return array
+ */
public function getClassMap()
{
return $this->classMap;
}
/**
- * @param array $classMap Class to filename map
+ * @param string[] $classMap Class to filename map
+ * @psalm-param array $classMap
+ *
+ * @return void
*/
public function addClassMap(array $classMap)
{
@@ -102,9 +175,11 @@ public function addClassMap(array $classMap)
* Registers a set of PSR-0 directories for a given prefix, either
* appending or prepending to the ones previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 root directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 root directories
+ * @param bool $prepend Whether to prepend the directories
+ *
+ * @return void
*/
public function add($prefix, $paths, $prepend = false)
{
@@ -147,11 +222,13 @@ public function add($prefix, $paths, $prepend = false)
* Registers a set of PSR-4 directories for a given namespace, either
* appending or prepending to the ones previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
- * @param bool $prepend Whether to prepend the directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
+ * @param bool $prepend Whether to prepend the directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function addPsr4($prefix, $paths, $prepend = false)
{
@@ -195,8 +272,10 @@ public function addPsr4($prefix, $paths, $prepend = false)
* Registers a set of PSR-0 directories for a given prefix,
* replacing any others previously set for this prefix.
*
- * @param string $prefix The prefix
- * @param array|string $paths The PSR-0 base directories
+ * @param string $prefix The prefix
+ * @param string[]|string $paths The PSR-0 base directories
+ *
+ * @return void
*/
public function set($prefix, $paths)
{
@@ -211,10 +290,12 @@ public function set($prefix, $paths)
* Registers a set of PSR-4 directories for a given namespace,
* replacing any others previously set for this namespace.
*
- * @param string $prefix The prefix/namespace, with trailing '\\'
- * @param array|string $paths The PSR-4 base directories
+ * @param string $prefix The prefix/namespace, with trailing '\\'
+ * @param string[]|string $paths The PSR-4 base directories
*
* @throws \InvalidArgumentException
+ *
+ * @return void
*/
public function setPsr4($prefix, $paths)
{
@@ -234,6 +315,8 @@ public function setPsr4($prefix, $paths)
* Turns on searching the include path for class files.
*
* @param bool $useIncludePath
+ *
+ * @return void
*/
public function setUseIncludePath($useIncludePath)
{
@@ -256,6 +339,8 @@ public function getUseIncludePath()
* that have not been registered with the class map.
*
* @param bool $classMapAuthoritative
+ *
+ * @return void
*/
public function setClassMapAuthoritative($classMapAuthoritative)
{
@@ -276,6 +361,8 @@ public function isClassMapAuthoritative()
* APCu prefix to use to cache found/not-found classes, if the extension is enabled.
*
* @param string|null $apcuPrefix
+ *
+ * @return void
*/
public function setApcuPrefix($apcuPrefix)
{
@@ -296,25 +383,44 @@ public function getApcuPrefix()
* Registers this instance as an autoloader.
*
* @param bool $prepend Whether to prepend the autoloader or not
+ *
+ * @return void
*/
public function register($prepend = false)
{
spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+
+ if (null === $this->vendorDir) {
+ return;
+ }
+
+ if ($prepend) {
+ self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders;
+ } else {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ self::$registeredLoaders[$this->vendorDir] = $this;
+ }
}
/**
* Unregisters this instance as an autoloader.
+ *
+ * @return void
*/
public function unregister()
{
spl_autoload_unregister(array($this, 'loadClass'));
+
+ if (null !== $this->vendorDir) {
+ unset(self::$registeredLoaders[$this->vendorDir]);
+ }
}
/**
* Loads the given class or interface.
*
* @param string $class The name of the class
- * @return bool|null True if loaded, null otherwise
+ * @return true|null True if loaded, null otherwise
*/
public function loadClass($class)
{
@@ -323,6 +429,8 @@ public function loadClass($class)
return true;
}
+
+ return null;
}
/**
@@ -367,6 +475,21 @@ public function findFile($class)
return $file;
}
+ /**
+ * Returns the currently registered loaders indexed by their corresponding vendor directories.
+ *
+ * @return self[]
+ */
+ public static function getRegisteredLoaders()
+ {
+ return self::$registeredLoaders;
+ }
+
+ /**
+ * @param string $class
+ * @param string $ext
+ * @return string|false
+ */
private function findFileWithExtension($class, $ext)
{
// PSR-4 lookup
@@ -438,6 +561,10 @@ private function findFileWithExtension($class, $ext)
* Scope isolated include.
*
* Prevents access to $this/self from included files.
+ *
+ * @param string $file
+ * @return void
+ * @private
*/
function includeFile($file)
{
diff --git a/app/vendor/composer/InstalledVersions.php b/app/vendor/composer/InstalledVersions.php
index f06c911b9..41bc143c1 100644
--- a/app/vendor/composer/InstalledVersions.php
+++ b/app/vendor/composer/InstalledVersions.php
@@ -1,1259 +1,352 @@
+ * Jordi Boggiano
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
namespace Composer;
+use Composer\Autoload\ClassLoader;
use Composer\Semver\VersionParser;
-
-
-
-
-
+/**
+ * This class is copied in every Composer installed project and available to all
+ *
+ * See also https://getcomposer.org/doc/07-runtime.md#installed-versions
+ *
+ * To require its presence, you can require `composer-runtime-api ^2.0`
+ *
+ * @final
+ */
class InstalledVersions
{
-private static $installed = array (
- 'root' =>
- array (
- 'pretty_version' => 'dev-develop',
- 'version' => 'dev-develop',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e9e35cc04f182202ee69f7923f435979daf95502',
- 'name' => 'cakephp/app',
- ),
- 'versions' =>
- array (
- 'brick/varexporter' =>
- array (
- 'pretty_version' => '0.3.5',
- 'version' => '0.3.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '05241f28dfcba2b51b11e2d750e296316ebbe518',
- ),
- 'cakephp/app' =>
- array (
- 'pretty_version' => 'dev-develop',
- 'version' => 'dev-develop',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e9e35cc04f182202ee69f7923f435979daf95502',
- ),
- 'cakephp/bake' =>
- array (
- 'pretty_version' => '2.5.2',
- 'version' => '2.5.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bfb856afcfbc70c5cf5341669c3036a45ca15d94',
- ),
- 'cakephp/cache' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/cakephp' =>
- array (
- 'pretty_version' => '4.2.9',
- 'version' => '4.2.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '6cb068fd328219d79a02ef6df439b73459071368',
- ),
- 'cakephp/cakephp-codesniffer' =>
- array (
- 'pretty_version' => '4.2.4',
- 'version' => '4.2.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c5bb1faeebf09cd4a3604bdb0c84f7bc92dc5475',
- ),
- 'cakephp/chronos' =>
- array (
- 'pretty_version' => '2.2.0',
- 'version' => '2.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '556e14da67307ffc2e68beeb7df0694dc8d1207d',
- ),
- 'cakephp/collection' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/console' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/core' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/database' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/datasource' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/debug_kit' =>
- array (
- 'pretty_version' => '4.4.4',
- 'version' => '4.4.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '10d7d9ba36945844211f1d8763e59618917e1784',
- ),
- 'cakephp/event' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/filesystem' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/form' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/http' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/i18n' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/log' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/migrations' =>
- array (
- 'pretty_version' => '3.1.0',
- 'version' => '3.1.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd22737c31243db89774abfe6a077d254c0eae75a',
- ),
- 'cakephp/orm' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/plugin-installer' =>
- array (
- 'pretty_version' => '1.3.1',
- 'version' => '1.3.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e27027aa2d3d8ab64452c6817629558685a064cb',
- ),
- 'cakephp/twig-view' =>
- array (
- 'pretty_version' => '1.3.0',
- 'version' => '1.3.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '14df50360b809a171d0688020fbdfe513763f89b',
- ),
- 'cakephp/utility' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'cakephp/validation' =>
- array (
- 'replaced' =>
- array (
- 0 => '4.2.9',
- ),
- ),
- 'composer/ca-bundle' =>
- array (
- 'pretty_version' => '1.2.11',
- 'version' => '1.2.11.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0b072d51c5a9c6f3412f7ea3ab043d6603cb2582',
- ),
- 'composer/composer' =>
- array (
- 'pretty_version' => '2.1.9',
- 'version' => '2.1.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e558c88f28d102d497adec4852802c0dc14c7077',
- ),
- 'composer/metadata-minifier' =>
- array (
- 'pretty_version' => '1.0.0',
- 'version' => '1.0.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c549d23829536f0d0e984aaabbf02af91f443207',
- ),
- 'composer/package-versions-deprecated' =>
- array (
- 'pretty_version' => '1.11.99.4',
- 'version' => '1.11.99.4',
- 'aliases' =>
- array (
- ),
- 'reference' => 'b174585d1fe49ceed21928a945138948cb394600',
- ),
- 'composer/semver' =>
- array (
- 'pretty_version' => '3.2.5',
- 'version' => '3.2.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '31f3ea725711245195f62e54ffa402d8ef2fdba9',
- ),
- 'composer/spdx-licenses' =>
- array (
- 'pretty_version' => '1.5.5',
- 'version' => '1.5.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'de30328a7af8680efdc03e396aad24befd513200',
- ),
- 'composer/xdebug-handler' =>
- array (
- 'pretty_version' => '2.0.2',
- 'version' => '2.0.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '84674dd3a7575ba617f5a76d7e9e29a7d3891339',
- ),
- 'dealerdirect/phpcodesniffer-composer-installer' =>
- array (
- 'pretty_version' => 'v0.7.1',
- 'version' => '0.7.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'fe390591e0241955f22eb9ba327d137e501c771c',
- ),
- 'doctrine/cache' =>
- array (
- 'pretty_version' => '2.1.1',
- 'version' => '2.1.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '331b4d5dbaeab3827976273e9356b3b453c300ce',
- ),
- 'doctrine/dbal' =>
- array (
- 'pretty_version' => '3.1.3',
- 'version' => '3.1.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '96b0053775a544b4a6ab47654dac0621be8b4cf8',
- ),
- 'doctrine/deprecations' =>
- array (
- 'pretty_version' => 'v0.5.3',
- 'version' => '0.5.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9504165960a1f83cc1480e2be1dd0a0478561314',
- ),
- 'doctrine/event-manager' =>
- array (
- 'pretty_version' => '1.1.1',
- 'version' => '1.1.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '41370af6a30faa9dc0368c4a6814d596e81aba7f',
- ),
- 'doctrine/instantiator' =>
- array (
- 'pretty_version' => '1.4.0',
- 'version' => '1.4.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd56bf6102915de5702778fe20f2de3b2fe570b5b',
- ),
- 'jasny/twig-extensions' =>
- array (
- 'pretty_version' => 'v1.3.0',
- 'version' => '1.3.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a694eb02f6fc14ff8e2fceb8b80882c0c926102b',
- ),
- 'jdorn/sql-formatter' =>
- array (
- 'pretty_version' => 'v1.2.17',
- 'version' => '1.2.17.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '64990d96e0959dff8e059dfcdc1af130728d92bc',
- ),
- 'josegonzalez/dotenv' =>
- array (
- 'pretty_version' => '3.2.0',
- 'version' => '3.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f19174d9d7213a6c20e8e5e268aa7dd042d821ca',
- ),
- 'justinrainbow/json-schema' =>
- array (
- 'pretty_version' => '5.2.11',
- 'version' => '5.2.11.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '2ab6744b7296ded80f8cc4f9509abbff393399aa',
- ),
- 'laminas/laminas-diactoros' =>
- array (
- 'pretty_version' => '2.8.0',
- 'version' => '2.8.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0c26ef1d95b6d7e6e3943a243ba3dc0797227199',
- ),
- 'laminas/laminas-httphandlerrunner' =>
- array (
- 'pretty_version' => '1.5.0',
- 'version' => '1.5.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5f94e55d93f756e8ad07b9049aeb3d6d84582d0e',
- ),
- 'laminas/laminas-zendframework-bridge' =>
- array (
- 'pretty_version' => '1.4.0',
- 'version' => '1.4.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bf180a382393e7db5c1e8d0f2ec0c4af9c724baf',
- ),
- 'league/container' =>
- array (
- 'pretty_version' => '3.4.1',
- 'version' => '3.4.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '84ecbc2dbecc31bd23faf759a0e329ee49abddbd',
- ),
- 'm1/env' =>
- array (
- 'pretty_version' => '2.2.0',
- 'version' => '2.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5c296e3e13450a207e12b343f3af1d7ab569f6f3',
- ),
- 'mobiledetect/mobiledetectlib' =>
- array (
- 'pretty_version' => '2.8.37',
- 'version' => '2.8.37.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9841e3c46f5bd0739b53aed8ac677fa712943df7',
- ),
- 'myclabs/deep-copy' =>
- array (
- 'pretty_version' => '1.10.2',
- 'version' => '1.10.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '776f831124e9c62e1a2c601ecc52e776d8bb7220',
- 'replaced' =>
- array (
- 0 => '1.10.2',
- ),
- ),
- 'nikic/php-parser' =>
- array (
- 'pretty_version' => 'v4.13.0',
- 'version' => '4.13.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '50953a2691a922aa1769461637869a0a2faa3f53',
- ),
- 'ocramius/package-versions' =>
- array (
- 'replaced' =>
- array (
- 0 => '1.11.99',
- ),
- ),
- 'orno/di' =>
- array (
- 'replaced' =>
- array (
- 0 => '~2.0',
- ),
- ),
- 'phar-io/manifest' =>
- array (
- 'pretty_version' => '2.0.3',
- 'version' => '2.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '97803eca37d319dfa7826cc2437fc020857acb53',
- ),
- 'phar-io/version' =>
- array (
- 'pretty_version' => '3.1.0',
- 'version' => '3.1.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'bae7c545bef187884426f042434e561ab1ddb182',
- ),
- 'phpdocumentor/reflection-common' =>
- array (
- 'pretty_version' => '2.2.0',
- 'version' => '2.2.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1d01c49d4ed62f25aa84a747ad35d5a16924662b',
- ),
- 'phpdocumentor/reflection-docblock' =>
- array (
- 'pretty_version' => '5.2.2',
- 'version' => '5.2.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '069a785b2141f5bcf49f3e353548dc1cce6df556',
- ),
- 'phpdocumentor/type-resolver' =>
- array (
- 'pretty_version' => '1.5.1',
- 'version' => '1.5.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a12f7e301eb7258bb68acd89d4aefa05c2906cae',
- ),
- 'phpspec/prophecy' =>
- array (
- 'pretty_version' => '1.14.0',
- 'version' => '1.14.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd86dfc2e2a3cd366cee475e52c6bb3bbc371aa0e',
- ),
- 'phpstan/phpdoc-parser' =>
- array (
- 'pretty_version' => '0.4.9',
- 'version' => '0.4.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '98a088b17966bdf6ee25c8a4b634df313d8aa531',
- ),
- 'phpunit/php-code-coverage' =>
- array (
- 'pretty_version' => '9.2.7',
- 'version' => '9.2.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd4c798ed8d51506800b441f7a13ecb0f76f12218',
- ),
- 'phpunit/php-file-iterator' =>
- array (
- 'pretty_version' => '3.0.5',
- 'version' => '3.0.5.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'aa4be8575f26070b100fccb67faabb28f21f66f8',
- ),
- 'phpunit/php-invoker' =>
- array (
- 'pretty_version' => '3.1.1',
- 'version' => '3.1.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5a10147d0aaf65b58940a0b72f71c9ac0423cc67',
- ),
- 'phpunit/php-text-template' =>
- array (
- 'pretty_version' => '2.0.4',
- 'version' => '2.0.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28',
- ),
- 'phpunit/php-timer' =>
- array (
- 'pretty_version' => '5.0.3',
- 'version' => '5.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2',
- ),
- 'phpunit/phpunit' =>
- array (
- 'pretty_version' => '9.5.10',
- 'version' => '9.5.10.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c814a05837f2edb0d1471d6e3f4ab3501ca3899a',
- ),
- 'psr/container' =>
- array (
- 'pretty_version' => '1.1.1',
- 'version' => '1.1.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '8622567409010282b7aeebe4bb841fe98b58dcaf',
- ),
- 'psr/container-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '^1.0',
- ),
- ),
- 'psr/http-client' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '2dfb5f6c5eff0e91e20e913f8c5452ed95b86621',
- ),
- 'psr/http-factory' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '12ac7fcd07e5b077433f5f2bee95b3a771bf61be',
- ),
- 'psr/http-factory-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0',
- ),
- ),
- 'psr/http-message' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f6561bf28d520154e4b0ec72be95418abe6d9363',
- ),
- 'psr/http-message-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0',
- ),
- ),
- 'psr/http-server-handler' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'aff2f80e33b7f026ec96bb42f63242dc50ffcae7',
- ),
- 'psr/http-server-middleware' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '2296f45510945530b9dceb8bcedb5cb84d40c5f5',
- ),
- 'psr/log' =>
- array (
- 'pretty_version' => '1.1.4',
- 'version' => '1.1.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd49695b909c3b7628b6289db5479a1c204601f11',
- ),
- 'psr/log-implementation' =>
- array (
- 'provided' =>
- array (
- 0 => '1.0|2.0',
- ),
- ),
- 'psr/simple-cache' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '408d5eafb83c57f6365a3ca330ff23aa4a5fa39b',
- ),
- 'psy/psysh' =>
- array (
- 'pretty_version' => 'v0.10.9',
- 'version' => '0.10.9.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '01281336c4ae557fe4a994544f30d3a1bc204375',
- ),
- 'react/promise' =>
- array (
- 'pretty_version' => 'v2.8.0',
- 'version' => '2.8.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f3cff96a19736714524ca0dd1d4130de73dbbbc4',
- ),
- 'robmorgan/phinx' =>
- array (
- 'pretty_version' => '0.12.8',
- 'version' => '0.12.8.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd2ed1b452cc90f4cae4ea6b5976b94fb9e5ed2a2',
- ),
- 'sebastian/cli-parser' =>
- array (
- 'pretty_version' => '1.0.1',
- 'version' => '1.0.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '442e7c7e687e42adc03470c7b668bc4b2402c0b2',
- ),
- 'sebastian/code-unit' =>
- array (
- 'pretty_version' => '1.0.8',
- 'version' => '1.0.8.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1fc9f64c0927627ef78ba436c9b17d967e68e120',
- ),
- 'sebastian/code-unit-reverse-lookup' =>
- array (
- 'pretty_version' => '2.0.3',
- 'version' => '2.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5',
- ),
- 'sebastian/comparator' =>
- array (
- 'pretty_version' => '4.0.6',
- 'version' => '4.0.6.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '55f4261989e546dc112258c7a75935a81a7ce382',
- ),
- 'sebastian/complexity' =>
- array (
- 'pretty_version' => '2.0.2',
- 'version' => '2.0.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '739b35e53379900cc9ac327b2147867b8b6efd88',
- ),
- 'sebastian/diff' =>
- array (
- 'pretty_version' => '4.0.4',
- 'version' => '4.0.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '3461e3fccc7cfdfc2720be910d3bd73c69be590d',
- ),
- 'sebastian/environment' =>
- array (
- 'pretty_version' => '5.1.3',
- 'version' => '5.1.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '388b6ced16caa751030f6a69e588299fa09200ac',
- ),
- 'sebastian/exporter' =>
- array (
- 'pretty_version' => '4.0.3',
- 'version' => '4.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'd89cc98761b8cb5a1a235a6b703ae50d34080e65',
- ),
- 'sebastian/global-state' =>
- array (
- 'pretty_version' => '5.0.3',
- 'version' => '5.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '23bd5951f7ff26f12d4e3242864df3e08dec4e49',
- ),
- 'sebastian/lines-of-code' =>
- array (
- 'pretty_version' => '1.0.3',
- 'version' => '1.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c1c2e997aa3146983ed888ad08b15470a2e22ecc',
- ),
- 'sebastian/object-enumerator' =>
- array (
- 'pretty_version' => '4.0.4',
- 'version' => '4.0.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5c9eeac41b290a3712d88851518825ad78f45c71',
- ),
- 'sebastian/object-reflector' =>
- array (
- 'pretty_version' => '2.0.4',
- 'version' => '2.0.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'b4f479ebdbf63ac605d183ece17d8d7fe49c15c7',
- ),
- 'sebastian/recursion-context' =>
- array (
- 'pretty_version' => '4.0.4',
- 'version' => '4.0.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'cd9d8cf3c5804de4341c283ed787f099f5506172',
- ),
- 'sebastian/resource-operations' =>
- array (
- 'pretty_version' => '3.0.3',
- 'version' => '3.0.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8',
- ),
- 'sebastian/type' =>
- array (
- 'pretty_version' => '2.3.4',
- 'version' => '2.3.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'b8cd8a1c753c90bc1a0f5372170e3e489136f914',
- ),
- 'sebastian/version' =>
- array (
- 'pretty_version' => '3.0.2',
- 'version' => '3.0.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'c6c1022351a901512170118436c764e473f6de8c',
- ),
- 'seld/jsonlint' =>
- array (
- 'pretty_version' => '1.8.3',
- 'version' => '1.8.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9ad6ce79c342fbd44df10ea95511a1b24dee5b57',
- ),
- 'seld/phar-utils' =>
- array (
- 'pretty_version' => '1.1.2',
- 'version' => '1.1.2.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '749042a2315705d2dfbbc59234dd9ceb22bf3ff0',
- ),
- 'slevomat/coding-standard' =>
- array (
- 'pretty_version' => '6.4.1',
- 'version' => '6.4.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '696dcca217d0c9da2c40d02731526c1e25b65346',
- ),
- 'squizlabs/php_codesniffer' =>
- array (
- 'pretty_version' => '3.5.8',
- 'version' => '3.5.8.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9d583721a7157ee997f235f327de038e7ea6dac4',
- ),
- 'symfony/config' =>
- array (
- 'pretty_version' => 'v5.3.4',
- 'version' => '5.3.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '4268f3059c904c61636275182707f81645517a37',
- ),
- 'symfony/console' =>
- array (
- 'pretty_version' => 'v5.3.7',
- 'version' => '5.3.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '8b1008344647462ae6ec57559da166c2bfa5e16a',
- ),
- 'symfony/deprecation-contracts' =>
- array (
- 'pretty_version' => 'v2.4.0',
- 'version' => '2.4.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '5f38c8804a9e97d23e0c8d63341088cd8a22d627',
- ),
- 'symfony/filesystem' =>
- array (
- 'pretty_version' => 'v5.3.4',
- 'version' => '5.3.4.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '343f4fe324383ca46792cae728a3b6e2f708fb32',
- ),
- 'symfony/finder' =>
- array (
- 'pretty_version' => 'v5.3.7',
- 'version' => '5.3.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a10000ada1e600d109a6c7632e9ac42e8bf2fb93',
- ),
- 'symfony/polyfill-ctype' =>
- array (
- 'pretty_version' => 'v1.23.0',
- 'version' => '1.23.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '46cd95797e9df938fdd2b03693b5fca5e64b01ce',
- ),
- 'symfony/polyfill-intl-grapheme' =>
- array (
- 'pretty_version' => 'v1.23.1',
- 'version' => '1.23.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '16880ba9c5ebe3642d1995ab866db29270b36535',
- ),
- 'symfony/polyfill-intl-normalizer' =>
- array (
- 'pretty_version' => 'v1.23.0',
- 'version' => '1.23.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '8590a5f561694770bdcd3f9b5c69dde6945028e8',
- ),
- 'symfony/polyfill-mbstring' =>
- array (
- 'pretty_version' => 'v1.23.1',
- 'version' => '1.23.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '9174a3d80210dca8daa7f31fec659150bbeabfc6',
- ),
- 'symfony/polyfill-php73' =>
- array (
- 'pretty_version' => 'v1.23.0',
- 'version' => '1.23.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'fba8933c384d6476ab14fb7b8526e5287ca7e010',
- ),
- 'symfony/polyfill-php80' =>
- array (
- 'pretty_version' => 'v1.23.1',
- 'version' => '1.23.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '1100343ed1a92e3a38f9ae122fc0eb21602547be',
- ),
- 'symfony/polyfill-php81' =>
- array (
- 'pretty_version' => 'v1.23.0',
- 'version' => '1.23.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'e66119f3de95efc359483f810c4c3e6436279436',
- ),
- 'symfony/process' =>
- array (
- 'pretty_version' => 'v5.3.7',
- 'version' => '5.3.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '38f26c7d6ed535217ea393e05634cb0b244a1967',
- ),
- 'symfony/service-contracts' =>
- array (
- 'pretty_version' => 'v2.4.0',
- 'version' => '2.4.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'f040a30e04b57fbcc9c6cbcf4dbaa96bd318b9bb',
- ),
- 'symfony/string' =>
- array (
- 'pretty_version' => 'v5.3.7',
- 'version' => '5.3.7.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '8d224396e28d30f81969f083a58763b8b9ceb0a5',
- ),
- 'symfony/var-dumper' =>
- array (
- 'pretty_version' => 'v5.3.8',
- 'version' => '5.3.8.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'eaaea4098be1c90c8285543e1356a09c8aa5c8da',
- ),
- 'theseer/tokenizer' =>
- array (
- 'pretty_version' => '1.2.1',
- 'version' => '1.2.1.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '34a41e998c2183e22995f158c581e7b5e755ab9e',
- ),
- 'twig/markdown-extra' =>
- array (
- 'pretty_version' => 'v3.3.3',
- 'version' => '3.3.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '725a4ef89d93bb80fc63c67cf261bf7512649290',
- ),
- 'twig/twig' =>
- array (
- 'pretty_version' => 'v3.3.3',
- 'version' => '3.3.3.0',
- 'aliases' =>
- array (
- ),
- 'reference' => 'a27fa056df8a6384316288ca8b0fa3a35fdeb569',
- ),
- 'webmozart/assert' =>
- array (
- 'pretty_version' => '1.10.0',
- 'version' => '1.10.0.0',
- 'aliases' =>
- array (
- ),
- 'reference' => '6964c76c7804814a842473e0c8fd15bab0f18e25',
- ),
- 'zendframework/zend-httphandlerrunner' =>
- array (
- 'replaced' =>
- array (
- 0 => '^1.1.0',
- ),
- ),
- ),
-);
-
-
-
-
-
-
-
-public static function getInstalledPackages()
-{
-return array_keys(self::$installed['versions']);
-}
-
-
-
-
-
-
-
-
-
-public static function isInstalled($packageName)
-{
-return isset(self::$installed['versions'][$packageName]);
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-public static function satisfies(VersionParser $parser, $packageName, $constraint)
-{
-$constraint = $parser->parseConstraints($constraint);
-$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
-
-return $provided->matches($constraint);
-}
-
-
-
-
-
-
-
-
-
-
-public static function getVersionRanges($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-$ranges = array();
-if (isset(self::$installed['versions'][$packageName]['pretty_version'])) {
-$ranges[] = self::$installed['versions'][$packageName]['pretty_version'];
-}
-if (array_key_exists('aliases', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['aliases']);
-}
-if (array_key_exists('replaced', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['replaced']);
-}
-if (array_key_exists('provided', self::$installed['versions'][$packageName])) {
-$ranges = array_merge($ranges, self::$installed['versions'][$packageName]['provided']);
-}
-
-return implode(' || ', $ranges);
-}
-
-
-
-
-
-public static function getVersion($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['version'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['version'];
-}
-
-
-
-
-
-public static function getPrettyVersion($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['pretty_version'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['pretty_version'];
-}
-
-
-
-
-
-public static function getReference($packageName)
-{
-if (!isset(self::$installed['versions'][$packageName])) {
-throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
-}
-
-if (!isset(self::$installed['versions'][$packageName]['reference'])) {
-return null;
-}
-
-return self::$installed['versions'][$packageName]['reference'];
-}
-
-
-
-
-
-public static function getRootPackage()
-{
-return self::$installed['root'];
-}
-
-
-
-
-
-
-
-public static function getRawData()
-{
-return self::$installed;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-public static function reload($data)
-{
-self::$installed = $data;
-}
+ /**
+ * @var mixed[]|null
+ * @psalm-var array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}|array{}|null
+ */
+ private static $installed;
+
+ /**
+ * @var bool|null
+ */
+ private static $canGetVendors;
+
+ /**
+ * @var array[]
+ * @psalm-var array}>
+ */
+ private static $installedByVendor = array();
+
+ /**
+ * Returns a list of all package names which are present, either by being installed, replaced or provided
+ *
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackages()
+ {
+ $packages = array();
+ foreach (self::getInstalled() as $installed) {
+ $packages[] = array_keys($installed['versions']);
+ }
+
+ if (1 === \count($packages)) {
+ return $packages[0];
+ }
+
+ return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
+ }
+
+ /**
+ * Returns a list of all package names with a specific type e.g. 'library'
+ *
+ * @param string $type
+ * @return string[]
+ * @psalm-return list
+ */
+ public static function getInstalledPackagesByType($type)
+ {
+ $packagesByType = array();
+
+ foreach (self::getInstalled() as $installed) {
+ foreach ($installed['versions'] as $name => $package) {
+ if (isset($package['type']) && $package['type'] === $type) {
+ $packagesByType[] = $name;
+ }
+ }
+ }
+
+ return $packagesByType;
+ }
+
+ /**
+ * Checks whether the given package is installed
+ *
+ * This also returns true if the package name is provided or replaced by another package
+ *
+ * @param string $packageName
+ * @param bool $includeDevRequirements
+ * @return bool
+ */
+ public static function isInstalled($packageName, $includeDevRequirements = true)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (isset($installed['versions'][$packageName])) {
+ return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks whether the given package satisfies a version constraint
+ *
+ * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
+ *
+ * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
+ *
+ * @param VersionParser $parser Install composer/semver to have access to this class and functionality
+ * @param string $packageName
+ * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
+ * @return bool
+ */
+ public static function satisfies(VersionParser $parser, $packageName, $constraint)
+ {
+ $constraint = $parser->parseConstraints($constraint);
+ $provided = $parser->parseConstraints(self::getVersionRanges($packageName));
+
+ return $provided->matches($constraint);
+ }
+
+ /**
+ * Returns a version constraint representing all the range(s) which are installed for a given package
+ *
+ * It is easier to use this via isInstalled() with the $constraint argument if you need to check
+ * whether a given version of a package is installed, and not just whether it exists
+ *
+ * @param string $packageName
+ * @return string Version constraint usable with composer/semver
+ */
+ public static function getVersionRanges($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ $ranges = array();
+ if (isset($installed['versions'][$packageName]['pretty_version'])) {
+ $ranges[] = $installed['versions'][$packageName]['pretty_version'];
+ }
+ if (array_key_exists('aliases', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
+ }
+ if (array_key_exists('replaced', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
+ }
+ if (array_key_exists('provided', $installed['versions'][$packageName])) {
+ $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
+ }
+
+ return implode(' || ', $ranges);
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
+ */
+ public static function getPrettyVersion($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['pretty_version'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['pretty_version'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
+ */
+ public static function getReference($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ if (!isset($installed['versions'][$packageName]['reference'])) {
+ return null;
+ }
+
+ return $installed['versions'][$packageName]['reference'];
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @param string $packageName
+ * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
+ */
+ public static function getInstallPath($packageName)
+ {
+ foreach (self::getInstalled() as $installed) {
+ if (!isset($installed['versions'][$packageName])) {
+ continue;
+ }
+
+ return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
+ }
+
+ throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
+ }
+
+ /**
+ * @return array
+ * @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}
+ */
+ public static function getRootPackage()
+ {
+ $installed = self::getInstalled();
+
+ return $installed[0]['root'];
+ }
+
+ /**
+ * Returns the raw installed.php data for custom implementations
+ *
+ * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
+ * @return array[]
+ * @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array}
+ */
+ public static function getRawData()
+ {
+ @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = include __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+
+ return self::$installed;
+ }
+
+ /**
+ * Returns the raw data of all installed.php which are currently loaded for custom implementations
+ *
+ * @return array[]
+ * @psalm-return list}>
+ */
+ public static function getAllRawData()
+ {
+ return self::getInstalled();
+ }
+
+ /**
+ * Lets you reload the static array from another file
+ *
+ * This is only useful for complex integrations in which a project needs to use
+ * this class but then also needs to execute another project's autoloader in process,
+ * and wants to ensure both projects have access to their version of installed.php.
+ *
+ * A typical case would be PHPUnit, where it would need to make sure it reads all
+ * the data it needs from this class, then call reload() with
+ * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
+ * the project in which it runs can then also use this class safely, without
+ * interference between PHPUnit's dependencies and the project's dependencies.
+ *
+ * @param array[] $data A vendor/composer/installed.php data set
+ * @return void
+ *
+ * @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string, type: string}, versions: array} $data
+ */
+ public static function reload($data)
+ {
+ self::$installed = $data;
+ self::$installedByVendor = array();
+ }
+
+ /**
+ * @return array[]
+ * @psalm-return list}>
+ */
+ private static function getInstalled()
+ {
+ if (null === self::$canGetVendors) {
+ self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
+ }
+
+ $installed = array();
+
+ if (self::$canGetVendors) {
+ foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
+ if (isset(self::$installedByVendor[$vendorDir])) {
+ $installed[] = self::$installedByVendor[$vendorDir];
+ } elseif (is_file($vendorDir.'/composer/installed.php')) {
+ $installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
+ if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
+ self::$installed = $installed[count($installed) - 1];
+ }
+ }
+ }
+ }
+
+ if (null === self::$installed) {
+ // only require the installed.php file if this file is loaded from its dumped location,
+ // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
+ if (substr(__DIR__, -8, 1) !== 'C') {
+ self::$installed = require __DIR__ . '/installed.php';
+ } else {
+ self::$installed = array();
+ }
+ }
+ $installed[] = self::$installed;
+
+ return $installed;
+ }
}
diff --git a/app/vendor/composer/autoload_classmap.php b/app/vendor/composer/autoload_classmap.php
index 71d8d303b..f592b89e2 100644
--- a/app/vendor/composer/autoload_classmap.php
+++ b/app/vendor/composer/autoload_classmap.php
@@ -2,7 +2,7 @@
// autoload_classmap.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
@@ -131,7 +131,6 @@
'PHPUnit\\Framework\\MockObject\\MockObject' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
'PHPUnit\\Framework\\MockObject\\MockTrait' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
'PHPUnit\\Framework\\MockObject\\MockType' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
- 'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
'PHPUnit\\Framework\\MockObject\\ReflectionException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
@@ -162,7 +161,6 @@
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
- 'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\Verifiable' => $vendorDir . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
'PHPUnit\\Framework\\NoChildTestSuiteException' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
'PHPUnit\\Framework\\OutputError' => $vendorDir . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
@@ -411,11 +409,13 @@
'PharIo\\Version\\AbstractVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
'PharIo\\Version\\AndVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
'PharIo\\Version\\AnyVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
+ 'PharIo\\Version\\BuildMetaData' => $vendorDir . '/phar-io/version/src/BuildMetaData.php',
'PharIo\\Version\\ExactVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
'PharIo\\Version\\Exception' => $vendorDir . '/phar-io/version/src/exceptions/Exception.php',
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => $vendorDir . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
'PharIo\\Version\\InvalidPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
'PharIo\\Version\\InvalidVersionException' => $vendorDir . '/phar-io/version/src/exceptions/InvalidVersionException.php',
+ 'PharIo\\Version\\NoBuildMetaDataException' => $vendorDir . '/phar-io/version/src/exceptions/NoBuildMetaDataException.php',
'PharIo\\Version\\NoPreReleaseSuffixException' => $vendorDir . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
'PharIo\\Version\\OrVersionConstraintGroup' => $vendorDir . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
'PharIo\\Version\\PreReleaseSuffix' => $vendorDir . '/phar-io/version/src/PreReleaseSuffix.php',
@@ -427,6 +427,7 @@
'PharIo\\Version\\VersionConstraintParser' => $vendorDir . '/phar-io/version/src/VersionConstraintParser.php',
'PharIo\\Version\\VersionConstraintValue' => $vendorDir . '/phar-io/version/src/VersionConstraintValue.php',
'PharIo\\Version\\VersionNumber' => $vendorDir . '/phar-io/version/src/VersionNumber.php',
+ 'PhpToken' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
'ReturnTypeWillChange' => $vendorDir . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php',
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
'SebastianBergmann\\CliParser\\Exception' => $vendorDir . '/sebastian/cli-parser/src/exceptions/Exception.php',
@@ -436,10 +437,7 @@
'SebastianBergmann\\CliParser\\UnknownOptionException' => $vendorDir . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php',
'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php',
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => $vendorDir . '/phpunit/php-code-coverage/src/CodeCoverage.php',
- 'SebastianBergmann\\CodeCoverage\\CrapIndex' => $vendorDir . '/phpunit/php-code-coverage/src/CrapIndex.php',
'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php',
- 'SebastianBergmann\\CodeCoverage\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Directory.php',
- 'SebastianBergmann\\CodeCoverage\\DirectoryCouldNotBeCreatedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/Driver.php',
'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php',
'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => $vendorDir . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php',
@@ -461,11 +459,11 @@
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php',
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => $vendorDir . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Builder.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\CrapIndex' => $vendorDir . '/phpunit/php-code-coverage/src/Node/CrapIndex.php',
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Directory.php',
'SebastianBergmann\\CodeCoverage\\Node\\File' => $vendorDir . '/phpunit/php-code-coverage/src/Node/File.php',
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => $vendorDir . '/phpunit/php-code-coverage/src/Node/Iterator.php',
'SebastianBergmann\\CodeCoverage\\ParserException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ParserException.php',
- 'SebastianBergmann\\CodeCoverage\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Percentage.php',
'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php',
'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => $vendorDir . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php',
'SebastianBergmann\\CodeCoverage\\ReflectionException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php',
@@ -494,19 +492,18 @@
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => $vendorDir . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Cache' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/Cache.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingCoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingCoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingUncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingUncoveredFileAnalyser.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/CoveredFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingCoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingCoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingUncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingUncoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\UncoveredFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/UncoveredFileAnalyser.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => $vendorDir . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php',
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\DirectoryCouldNotBeCreatedException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\Filesystem' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Filesystem.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => $vendorDir . '/phpunit/php-code-coverage/src/Util/Percentage.php',
'SebastianBergmann\\CodeCoverage\\Version' => $vendorDir . '/phpunit/php-code-coverage/src/Version.php',
'SebastianBergmann\\CodeCoverage\\XmlException' => $vendorDir . '/phpunit/php-code-coverage/src/Exception/XmlException.php',
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => $vendorDir . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
@@ -610,24 +607,25 @@
'SebastianBergmann\\Timer\\ResourceUsageFormatter' => $vendorDir . '/phpunit/php-timer/src/ResourceUsageFormatter.php',
'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => $vendorDir . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php',
'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
- 'SebastianBergmann\\Type\\CallableType' => $vendorDir . '/sebastian/type/src/CallableType.php',
+ 'SebastianBergmann\\Type\\CallableType' => $vendorDir . '/sebastian/type/src/type/CallableType.php',
'SebastianBergmann\\Type\\Exception' => $vendorDir . '/sebastian/type/src/exception/Exception.php',
- 'SebastianBergmann\\Type\\FalseType' => $vendorDir . '/sebastian/type/src/FalseType.php',
- 'SebastianBergmann\\Type\\GenericObjectType' => $vendorDir . '/sebastian/type/src/GenericObjectType.php',
- 'SebastianBergmann\\Type\\IterableType' => $vendorDir . '/sebastian/type/src/IterableType.php',
- 'SebastianBergmann\\Type\\LogicException' => $vendorDir . '/sebastian/type/src/exception/LogicException.php',
- 'SebastianBergmann\\Type\\MixedType' => $vendorDir . '/sebastian/type/src/MixedType.php',
- 'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/NullType.php',
- 'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/ObjectType.php',
+ 'SebastianBergmann\\Type\\FalseType' => $vendorDir . '/sebastian/type/src/type/FalseType.php',
+ 'SebastianBergmann\\Type\\GenericObjectType' => $vendorDir . '/sebastian/type/src/type/GenericObjectType.php',
+ 'SebastianBergmann\\Type\\IntersectionType' => $vendorDir . '/sebastian/type/src/type/IntersectionType.php',
+ 'SebastianBergmann\\Type\\IterableType' => $vendorDir . '/sebastian/type/src/type/IterableType.php',
+ 'SebastianBergmann\\Type\\MixedType' => $vendorDir . '/sebastian/type/src/type/MixedType.php',
+ 'SebastianBergmann\\Type\\NeverType' => $vendorDir . '/sebastian/type/src/type/NeverType.php',
+ 'SebastianBergmann\\Type\\NullType' => $vendorDir . '/sebastian/type/src/type/NullType.php',
+ 'SebastianBergmann\\Type\\ObjectType' => $vendorDir . '/sebastian/type/src/type/ObjectType.php',
'SebastianBergmann\\Type\\ReflectionMapper' => $vendorDir . '/sebastian/type/src/ReflectionMapper.php',
'SebastianBergmann\\Type\\RuntimeException' => $vendorDir . '/sebastian/type/src/exception/RuntimeException.php',
- 'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/SimpleType.php',
- 'SebastianBergmann\\Type\\StaticType' => $vendorDir . '/sebastian/type/src/StaticType.php',
- 'SebastianBergmann\\Type\\Type' => $vendorDir . '/sebastian/type/src/Type.php',
+ 'SebastianBergmann\\Type\\SimpleType' => $vendorDir . '/sebastian/type/src/type/SimpleType.php',
+ 'SebastianBergmann\\Type\\StaticType' => $vendorDir . '/sebastian/type/src/type/StaticType.php',
+ 'SebastianBergmann\\Type\\Type' => $vendorDir . '/sebastian/type/src/type/Type.php',
'SebastianBergmann\\Type\\TypeName' => $vendorDir . '/sebastian/type/src/TypeName.php',
- 'SebastianBergmann\\Type\\UnionType' => $vendorDir . '/sebastian/type/src/UnionType.php',
- 'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/UnknownType.php',
- 'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/VoidType.php',
+ 'SebastianBergmann\\Type\\UnionType' => $vendorDir . '/sebastian/type/src/type/UnionType.php',
+ 'SebastianBergmann\\Type\\UnknownType' => $vendorDir . '/sebastian/type/src/type/UnknownType.php',
+ 'SebastianBergmann\\Type\\VoidType' => $vendorDir . '/sebastian/type/src/type/VoidType.php',
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
'SqlFormatter' => $vendorDir . '/jdorn/sql-formatter/lib/SqlFormatter.php',
'Stringable' => $vendorDir . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
diff --git a/app/vendor/composer/autoload_files.php b/app/vendor/composer/autoload_files.php
index a483e2c54..a467d8df0 100644
--- a/app/vendor/composer/autoload_files.php
+++ b/app/vendor/composer/autoload_files.php
@@ -2,21 +2,17 @@
// autoload_files.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
- 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => $vendorDir . '/symfony/polyfill-mbstring/bootstrap.php',
- '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
- '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => $vendorDir . '/symfony/polyfill-intl-grapheme/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => $vendorDir . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '34122c0574b76bf21c9a8db62b5b9cf3' => $vendorDir . '/cakephp/chronos/src/carbon_compat.php',
+ '7e9bd612cc444b3eed788ebbe46263a0' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/autoload.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => $vendorDir . '/symfony/string/Resources/functions.php',
- 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
'07d7f1a47144818725fd8d91a907ac57' => $vendorDir . '/laminas/laminas-diactoros/src/functions/create_uploaded_file.php',
'da94ac5d3ca7d2dbab84ce561ce72bfd' => $vendorDir . '/laminas/laminas-diactoros/src/functions/marshal_headers_from_sapi.php',
'3d97c8dcdfba8cb85d3b34f116bb248b' => $vendorDir . '/laminas/laminas-diactoros/src/functions/marshal_method_from_sapi.php',
@@ -33,14 +29,18 @@
'cc8e14526dc240491e17a838cb78508c' => $vendorDir . '/laminas/laminas-diactoros/src/functions/normalize_server.legacy.php',
'786bf90caabc9e09b6ad4cc5ca8f0e30' => $vendorDir . '/laminas/laminas-diactoros/src/functions/normalize_uploaded_files.legacy.php',
'751a5a3f463e4be759be31748b61737c' => $vendorDir . '/laminas/laminas-diactoros/src/functions/parse_cookie_header.legacy.php',
- '34122c0574b76bf21c9a8db62b5b9cf3' => $vendorDir . '/cakephp/chronos/src/carbon_compat.php',
- '7e9bd612cc444b3eed788ebbe46263a0' => $vendorDir . '/laminas/laminas-zendframework-bridge/src/autoload.php',
'c720f792236cd163ece8049879166850' => $vendorDir . '/cakephp/cakephp/src/Core/functions.php',
'ede59e3a405fb689cd1cebb7bb1db3fb' => $vendorDir . '/cakephp/cakephp/src/Collection/functions.php',
'90236b492da7ca2983a2ad6e33e4152e' => $vendorDir . '/cakephp/cakephp/src/I18n/functions.php',
'2cb76c05856dfb60ada40ef54138d49a' => $vendorDir . '/cakephp/cakephp/src/Routing/functions.php',
'b1fc73705e1bec51cd2b20a32cf1c60a' => $vendorDir . '/cakephp/cakephp/src/Utility/bootstrap.php',
- '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
+ '6e3fae29631ef280660b3cdad06f25a8' => $vendorDir . '/symfony/deprecation-contracts/function.php',
+ '23c18046f52bef3eea034657bafda50f' => $vendorDir . '/symfony/polyfill-php81/bootstrap.php',
+ 'ad155f8f1cf0d418fe49e248db8c661b' => $vendorDir . '/react/promise/src/functions_include.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => $vendorDir . '/symfony/polyfill-php80/bootstrap.php',
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
+ '667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
+ 'ec07570ca5a812141189b1fa81503674' => $vendorDir . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
);
diff --git a/app/vendor/composer/autoload_namespaces.php b/app/vendor/composer/autoload_namespaces.php
index 7be99901a..136acb8a1 100644
--- a/app/vendor/composer/autoload_namespaces.php
+++ b/app/vendor/composer/autoload_namespaces.php
@@ -2,7 +2,7 @@
// autoload_namespaces.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
diff --git a/app/vendor/composer/autoload_psr4.php b/app/vendor/composer/autoload_psr4.php
index 8dc35eadb..7fc2f0c35 100644
--- a/app/vendor/composer/autoload_psr4.php
+++ b/app/vendor/composer/autoload_psr4.php
@@ -2,11 +2,11 @@
// autoload_psr4.php @generated by Composer
-$vendorDir = dirname(dirname(__FILE__));
+$vendorDir = dirname(__DIR__);
$baseDir = dirname($vendorDir);
return array(
- 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/reflection-docblock/src', $vendorDir . '/phpdocumentor/type-resolver/src'),
+ 'phpDocumentor\\Reflection\\' => array($vendorDir . '/phpdocumentor/reflection-common/src', $vendorDir . '/phpdocumentor/type-resolver/src', $vendorDir . '/phpdocumentor/reflection-docblock/src'),
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
'Twig\\Extra\\Markdown\\' => array($vendorDir . '/twig/markdown-extra'),
'Twig\\' => array($vendorDir . '/twig/twig/src'),
@@ -31,15 +31,15 @@
'React\\Promise\\' => array($vendorDir . '/react/promise/src'),
'Psy\\' => array($vendorDir . '/psy/psysh/src'),
'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
- 'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
+ 'Psr\\Log\\' => array($vendorDir . '/psr/log/src'),
'Psr\\Http\\Server\\' => array($vendorDir . '/psr/http-server-handler/src', $vendorDir . '/psr/http-server-middleware/src'),
'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'),
'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'),
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
+ 'Psr\\Cache\\' => array($vendorDir . '/psr/cache/src'),
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
'Phinx\\' => array($vendorDir . '/robmorgan/phinx/src/Phinx'),
- 'PackageVersions\\' => array($vendorDir . '/composer/package-versions-deprecated/src/PackageVersions'),
'PHPStan\\PhpDocParser\\' => array($vendorDir . '/phpstan/phpdoc-parser/src'),
'Migrations\\' => array($vendorDir . '/cakephp/migrations/src'),
'M1\\Env\\' => array($vendorDir . '/m1/env/src'),
@@ -61,6 +61,7 @@
'Composer\\XdebugHandler\\' => array($vendorDir . '/composer/xdebug-handler/src'),
'Composer\\Spdx\\' => array($vendorDir . '/composer/spdx-licenses/src'),
'Composer\\Semver\\' => array($vendorDir . '/composer/semver/src'),
+ 'Composer\\Pcre\\' => array($vendorDir . '/composer/pcre/src'),
'Composer\\MetadataMinifier\\' => array($vendorDir . '/composer/metadata-minifier/src'),
'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'),
'Composer\\' => array($vendorDir . '/composer/composer/src/Composer'),
diff --git a/app/vendor/composer/autoload_real.php b/app/vendor/composer/autoload_real.php
index aac91c05c..ea4df5fa0 100644
--- a/app/vendor/composer/autoload_real.php
+++ b/app/vendor/composer/autoload_real.php
@@ -25,38 +25,15 @@ public static function getLoader()
require __DIR__ . '/platform_check.php';
spl_autoload_register(array('ComposerAutoloaderInitb25f76eec921984aa94dcf4015a4846e', 'loadClassLoader'), true, true);
- self::$loader = $loader = new \Composer\Autoload\ClassLoader();
+ self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
spl_autoload_unregister(array('ComposerAutoloaderInitb25f76eec921984aa94dcf4015a4846e', 'loadClassLoader'));
- $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if ($useStaticLoader) {
- require __DIR__ . '/autoload_static.php';
-
- call_user_func(\Composer\Autoload\ComposerStaticInitb25f76eec921984aa94dcf4015a4846e::getInitializer($loader));
- } else {
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
-
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
-
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
- }
+ require __DIR__ . '/autoload_static.php';
+ call_user_func(\Composer\Autoload\ComposerStaticInitb25f76eec921984aa94dcf4015a4846e::getInitializer($loader));
$loader->register(true);
- if ($useStaticLoader) {
- $includeFiles = Composer\Autoload\ComposerStaticInitb25f76eec921984aa94dcf4015a4846e::$files;
- } else {
- $includeFiles = require __DIR__ . '/autoload_files.php';
- }
+ $includeFiles = \Composer\Autoload\ComposerStaticInitb25f76eec921984aa94dcf4015a4846e::$files;
foreach ($includeFiles as $fileIdentifier => $file) {
composerRequireb25f76eec921984aa94dcf4015a4846e($fileIdentifier, $file);
}
@@ -65,11 +42,16 @@ public static function getLoader()
}
}
+/**
+ * @param string $fileIdentifier
+ * @param string $file
+ * @return void
+ */
function composerRequireb25f76eec921984aa94dcf4015a4846e($fileIdentifier, $file)
{
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
- require $file;
-
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;
+
+ require $file;
}
}
diff --git a/app/vendor/composer/autoload_static.php b/app/vendor/composer/autoload_static.php
index b78566ba4..f3e4ccdf3 100644
--- a/app/vendor/composer/autoload_static.php
+++ b/app/vendor/composer/autoload_static.php
@@ -7,17 +7,13 @@
class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
{
public static $files = array (
- 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
- 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
- '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'0e6d7bf4a5811bfa5cf40c5ccd6fae6a' => __DIR__ . '/..' . '/symfony/polyfill-mbstring/bootstrap.php',
- '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
- '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
- 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
'8825ede83f2f289127722d4e842cf7e8' => __DIR__ . '/..' . '/symfony/polyfill-intl-grapheme/bootstrap.php',
- '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
+ 'e69f7f6ee287b969198c3c9d6777bd38' => __DIR__ . '/..' . '/symfony/polyfill-intl-normalizer/bootstrap.php',
+ '34122c0574b76bf21c9a8db62b5b9cf3' => __DIR__ . '/..' . '/cakephp/chronos/src/carbon_compat.php',
+ '7e9bd612cc444b3eed788ebbe46263a0' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/autoload.php',
'b6b991a57620e2fb6b2f66f03fe9ddc2' => __DIR__ . '/..' . '/symfony/string/Resources/functions.php',
- 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
'07d7f1a47144818725fd8d91a907ac57' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/create_uploaded_file.php',
'da94ac5d3ca7d2dbab84ce561ce72bfd' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/marshal_headers_from_sapi.php',
'3d97c8dcdfba8cb85d3b34f116bb248b' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/marshal_method_from_sapi.php',
@@ -34,15 +30,19 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'cc8e14526dc240491e17a838cb78508c' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/normalize_server.legacy.php',
'786bf90caabc9e09b6ad4cc5ca8f0e30' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/normalize_uploaded_files.legacy.php',
'751a5a3f463e4be759be31748b61737c' => __DIR__ . '/..' . '/laminas/laminas-diactoros/src/functions/parse_cookie_header.legacy.php',
- '34122c0574b76bf21c9a8db62b5b9cf3' => __DIR__ . '/..' . '/cakephp/chronos/src/carbon_compat.php',
- '7e9bd612cc444b3eed788ebbe46263a0' => __DIR__ . '/..' . '/laminas/laminas-zendframework-bridge/src/autoload.php',
'c720f792236cd163ece8049879166850' => __DIR__ . '/..' . '/cakephp/cakephp/src/Core/functions.php',
'ede59e3a405fb689cd1cebb7bb1db3fb' => __DIR__ . '/..' . '/cakephp/cakephp/src/Collection/functions.php',
'90236b492da7ca2983a2ad6e33e4152e' => __DIR__ . '/..' . '/cakephp/cakephp/src/I18n/functions.php',
'2cb76c05856dfb60ada40ef54138d49a' => __DIR__ . '/..' . '/cakephp/cakephp/src/Routing/functions.php',
'b1fc73705e1bec51cd2b20a32cf1c60a' => __DIR__ . '/..' . '/cakephp/cakephp/src/Utility/bootstrap.php',
- '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
+ '6e3fae29631ef280660b3cdad06f25a8' => __DIR__ . '/..' . '/symfony/deprecation-contracts/function.php',
+ '23c18046f52bef3eea034657bafda50f' => __DIR__ . '/..' . '/symfony/polyfill-php81/bootstrap.php',
+ 'ad155f8f1cf0d418fe49e248db8c661b' => __DIR__ . '/..' . '/react/promise/src/functions_include.php',
+ '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php',
+ 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php',
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
+ '667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
+ 'ec07570ca5a812141189b1fa81503674' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Assert/Functions.php',
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
);
@@ -94,10 +94,10 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'Psr\\Http\\Message\\' => 17,
'Psr\\Http\\Client\\' => 16,
'Psr\\Container\\' => 14,
+ 'Psr\\Cache\\' => 10,
'Prophecy\\' => 9,
'PhpParser\\' => 10,
'Phinx\\' => 6,
- 'PackageVersions\\' => 16,
'PHPStan\\PhpDocParser\\' => 21,
),
'M' =>
@@ -134,6 +134,7 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'Composer\\XdebugHandler\\' => 23,
'Composer\\Spdx\\' => 14,
'Composer\\Semver\\' => 16,
+ 'Composer\\Pcre\\' => 14,
'Composer\\MetadataMinifier\\' => 26,
'Composer\\CaBundle\\' => 18,
'Composer\\' => 9,
@@ -160,8 +161,8 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'phpDocumentor\\Reflection\\' =>
array (
0 => __DIR__ . '/..' . '/phpdocumentor/reflection-common/src',
- 1 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
- 2 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
+ 1 => __DIR__ . '/..' . '/phpdocumentor/type-resolver/src',
+ 2 => __DIR__ . '/..' . '/phpdocumentor/reflection-docblock/src',
),
'Webmozart\\Assert\\' =>
array (
@@ -261,7 +262,7 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
),
'Psr\\Log\\' =>
array (
- 0 => __DIR__ . '/..' . '/psr/log/Psr/Log',
+ 0 => __DIR__ . '/..' . '/psr/log/src',
),
'Psr\\Http\\Server\\' =>
array (
@@ -281,6 +282,10 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
array (
0 => __DIR__ . '/..' . '/psr/container/src',
),
+ 'Psr\\Cache\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/psr/cache/src',
+ ),
'Prophecy\\' =>
array (
0 => __DIR__ . '/..' . '/phpspec/prophecy/src/Prophecy',
@@ -293,10 +298,6 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
array (
0 => __DIR__ . '/..' . '/robmorgan/phinx/src/Phinx',
),
- 'PackageVersions\\' =>
- array (
- 0 => __DIR__ . '/..' . '/composer/package-versions-deprecated/src/PackageVersions',
- ),
'PHPStan\\PhpDocParser\\' =>
array (
0 => __DIR__ . '/..' . '/phpstan/phpdoc-parser/src',
@@ -381,6 +382,10 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
array (
0 => __DIR__ . '/..' . '/composer/semver/src',
),
+ 'Composer\\Pcre\\' =>
+ array (
+ 0 => __DIR__ . '/..' . '/composer/pcre/src',
+ ),
'Composer\\MetadataMinifier\\' =>
array (
0 => __DIR__ . '/..' . '/composer/metadata-minifier/src',
@@ -579,7 +584,6 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'PHPUnit\\Framework\\MockObject\\MockObject' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockObject.php',
'PHPUnit\\Framework\\MockObject\\MockTrait' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockTrait.php',
'PHPUnit\\Framework\\MockObject\\MockType' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/MockType.php',
- 'PHPUnit\\Framework\\MockObject\\MockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/MockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\OriginalConstructorInvocationRequiredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/OriginalConstructorInvocationRequiredException.php',
'PHPUnit\\Framework\\MockObject\\ReflectionException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReflectionException.php',
'PHPUnit\\Framework\\MockObject\\ReturnValueNotConfiguredException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/ReturnValueNotConfiguredException.php',
@@ -610,7 +614,6 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'PHPUnit\\Framework\\MockObject\\UnknownClassException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownClassException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTraitException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTraitException.php',
'PHPUnit\\Framework\\MockObject\\UnknownTypeException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Exception/UnknownTypeException.php',
- 'PHPUnit\\Framework\\MockObject\\UnmockedCloneMethod' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Api/UnmockedCloneMethod.php',
'PHPUnit\\Framework\\MockObject\\Verifiable' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/MockObject/Verifiable.php',
'PHPUnit\\Framework\\NoChildTestSuiteException' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/NoChildTestSuiteException.php',
'PHPUnit\\Framework\\OutputError' => __DIR__ . '/..' . '/phpunit/phpunit/src/Framework/Exception/OutputError.php',
@@ -859,11 +862,13 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'PharIo\\Version\\AbstractVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AbstractVersionConstraint.php',
'PharIo\\Version\\AndVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AndVersionConstraintGroup.php',
'PharIo\\Version\\AnyVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/AnyVersionConstraint.php',
+ 'PharIo\\Version\\BuildMetaData' => __DIR__ . '/..' . '/phar-io/version/src/BuildMetaData.php',
'PharIo\\Version\\ExactVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/ExactVersionConstraint.php',
'PharIo\\Version\\Exception' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/Exception.php',
'PharIo\\Version\\GreaterThanOrEqualToVersionConstraint' => __DIR__ . '/..' . '/phar-io/version/src/constraints/GreaterThanOrEqualToVersionConstraint.php',
'PharIo\\Version\\InvalidPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidPreReleaseSuffixException.php',
'PharIo\\Version\\InvalidVersionException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/InvalidVersionException.php',
+ 'PharIo\\Version\\NoBuildMetaDataException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoBuildMetaDataException.php',
'PharIo\\Version\\NoPreReleaseSuffixException' => __DIR__ . '/..' . '/phar-io/version/src/exceptions/NoPreReleaseSuffixException.php',
'PharIo\\Version\\OrVersionConstraintGroup' => __DIR__ . '/..' . '/phar-io/version/src/constraints/OrVersionConstraintGroup.php',
'PharIo\\Version\\PreReleaseSuffix' => __DIR__ . '/..' . '/phar-io/version/src/PreReleaseSuffix.php',
@@ -875,6 +880,7 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'PharIo\\Version\\VersionConstraintParser' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintParser.php',
'PharIo\\Version\\VersionConstraintValue' => __DIR__ . '/..' . '/phar-io/version/src/VersionConstraintValue.php',
'PharIo\\Version\\VersionNumber' => __DIR__ . '/..' . '/phar-io/version/src/VersionNumber.php',
+ 'PhpToken' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/PhpToken.php',
'ReturnTypeWillChange' => __DIR__ . '/..' . '/symfony/polyfill-php81/Resources/stubs/ReturnTypeWillChange.php',
'SebastianBergmann\\CliParser\\AmbiguousOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/AmbiguousOptionException.php',
'SebastianBergmann\\CliParser\\Exception' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/Exception.php',
@@ -884,10 +890,7 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'SebastianBergmann\\CliParser\\UnknownOptionException' => __DIR__ . '/..' . '/sebastian/cli-parser/src/exceptions/UnknownOptionException.php',
'SebastianBergmann\\CodeCoverage\\BranchAndPathCoverageNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/BranchAndPathCoverageNotSupportedException.php',
'SebastianBergmann\\CodeCoverage\\CodeCoverage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CodeCoverage.php',
- 'SebastianBergmann\\CodeCoverage\\CrapIndex' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/CrapIndex.php',
'SebastianBergmann\\CodeCoverage\\DeadCodeDetectionNotSupportedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DeadCodeDetectionNotSupportedException.php',
- 'SebastianBergmann\\CodeCoverage\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Directory.php',
- 'SebastianBergmann\\CodeCoverage\\DirectoryCouldNotBeCreatedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
'SebastianBergmann\\CodeCoverage\\Driver\\Driver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/Driver.php',
'SebastianBergmann\\CodeCoverage\\Driver\\PathExistsButIsNotDirectoryException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/PathExistsButIsNotDirectoryException.php',
'SebastianBergmann\\CodeCoverage\\Driver\\PcovDriver' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Driver/PcovDriver.php',
@@ -909,11 +912,11 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'SebastianBergmann\\CodeCoverage\\NoCodeCoverageDriverWithPathCoverageSupportAvailableException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/NoCodeCoverageDriverWithPathCoverageSupportAvailableException.php',
'SebastianBergmann\\CodeCoverage\\Node\\AbstractNode' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/AbstractNode.php',
'SebastianBergmann\\CodeCoverage\\Node\\Builder' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Builder.php',
+ 'SebastianBergmann\\CodeCoverage\\Node\\CrapIndex' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/CrapIndex.php',
'SebastianBergmann\\CodeCoverage\\Node\\Directory' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Directory.php',
'SebastianBergmann\\CodeCoverage\\Node\\File' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/File.php',
'SebastianBergmann\\CodeCoverage\\Node\\Iterator' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Node/Iterator.php',
'SebastianBergmann\\CodeCoverage\\ParserException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ParserException.php',
- 'SebastianBergmann\\CodeCoverage\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Percentage.php',
'SebastianBergmann\\CodeCoverage\\ProcessedCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/ProcessedCodeCoverageData.php',
'SebastianBergmann\\CodeCoverage\\RawCodeCoverageData' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/RawCodeCoverageData.php',
'SebastianBergmann\\CodeCoverage\\ReflectionException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/ReflectionException.php',
@@ -942,19 +945,18 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Totals' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Totals.php',
'SebastianBergmann\\CodeCoverage\\Report\\Xml\\Unit' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Report/Xml/Unit.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysisCacheNotConfiguredException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/StaticAnalysisCacheNotConfiguredException.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\Cache' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/Cache.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CacheWarmer' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CacheWarmer.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingCoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingCoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingUncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingUncoveredFileAnalyser.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CachingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CachingFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CodeUnitFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CodeUnitFindingVisitor.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\CoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/CoveredFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ExecutableLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ExecutableLinesFindingVisitor.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\FileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/FileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\IgnoredLinesFindingVisitor' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/IgnoredLinesFindingVisitor.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingCoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingCoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingUncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingUncoveredFileAnalyser.php',
- 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\UncoveredFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/UncoveredFileAnalyser.php',
+ 'SebastianBergmann\\CodeCoverage\\StaticAnalysis\\ParsingFileAnalyser' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/StaticAnalysis/ParsingFileAnalyser.php',
'SebastianBergmann\\CodeCoverage\\TestIdMissingException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/TestIdMissingException.php',
'SebastianBergmann\\CodeCoverage\\UnintentionallyCoveredCodeException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/UnintentionallyCoveredCodeException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\DirectoryCouldNotBeCreatedException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/DirectoryCouldNotBeCreatedException.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\Filesystem' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Filesystem.php',
+ 'SebastianBergmann\\CodeCoverage\\Util\\Percentage' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Util/Percentage.php',
'SebastianBergmann\\CodeCoverage\\Version' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Version.php',
'SebastianBergmann\\CodeCoverage\\XmlException' => __DIR__ . '/..' . '/phpunit/php-code-coverage/src/Exception/XmlException.php',
'SebastianBergmann\\CodeUnitReverseLookup\\Wizard' => __DIR__ . '/..' . '/sebastian/code-unit-reverse-lookup/src/Wizard.php',
@@ -1058,24 +1060,25 @@ class ComposerStaticInitb25f76eec921984aa94dcf4015a4846e
'SebastianBergmann\\Timer\\ResourceUsageFormatter' => __DIR__ . '/..' . '/phpunit/php-timer/src/ResourceUsageFormatter.php',
'SebastianBergmann\\Timer\\TimeSinceStartOfRequestNotAvailableException' => __DIR__ . '/..' . '/phpunit/php-timer/src/exceptions/TimeSinceStartOfRequestNotAvailableException.php',
'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
- 'SebastianBergmann\\Type\\CallableType' => __DIR__ . '/..' . '/sebastian/type/src/CallableType.php',
+ 'SebastianBergmann\\Type\\CallableType' => __DIR__ . '/..' . '/sebastian/type/src/type/CallableType.php',
'SebastianBergmann\\Type\\Exception' => __DIR__ . '/..' . '/sebastian/type/src/exception/Exception.php',
- 'SebastianBergmann\\Type\\FalseType' => __DIR__ . '/..' . '/sebastian/type/src/FalseType.php',
- 'SebastianBergmann\\Type\\GenericObjectType' => __DIR__ . '/..' . '/sebastian/type/src/GenericObjectType.php',
- 'SebastianBergmann\\Type\\IterableType' => __DIR__ . '/..' . '/sebastian/type/src/IterableType.php',
- 'SebastianBergmann\\Type\\LogicException' => __DIR__ . '/..' . '/sebastian/type/src/exception/LogicException.php',
- 'SebastianBergmann\\Type\\MixedType' => __DIR__ . '/..' . '/sebastian/type/src/MixedType.php',
- 'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/NullType.php',
- 'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/ObjectType.php',
+ 'SebastianBergmann\\Type\\FalseType' => __DIR__ . '/..' . '/sebastian/type/src/type/FalseType.php',
+ 'SebastianBergmann\\Type\\GenericObjectType' => __DIR__ . '/..' . '/sebastian/type/src/type/GenericObjectType.php',
+ 'SebastianBergmann\\Type\\IntersectionType' => __DIR__ . '/..' . '/sebastian/type/src/type/IntersectionType.php',
+ 'SebastianBergmann\\Type\\IterableType' => __DIR__ . '/..' . '/sebastian/type/src/type/IterableType.php',
+ 'SebastianBergmann\\Type\\MixedType' => __DIR__ . '/..' . '/sebastian/type/src/type/MixedType.php',
+ 'SebastianBergmann\\Type\\NeverType' => __DIR__ . '/..' . '/sebastian/type/src/type/NeverType.php',
+ 'SebastianBergmann\\Type\\NullType' => __DIR__ . '/..' . '/sebastian/type/src/type/NullType.php',
+ 'SebastianBergmann\\Type\\ObjectType' => __DIR__ . '/..' . '/sebastian/type/src/type/ObjectType.php',
'SebastianBergmann\\Type\\ReflectionMapper' => __DIR__ . '/..' . '/sebastian/type/src/ReflectionMapper.php',
'SebastianBergmann\\Type\\RuntimeException' => __DIR__ . '/..' . '/sebastian/type/src/exception/RuntimeException.php',
- 'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/SimpleType.php',
- 'SebastianBergmann\\Type\\StaticType' => __DIR__ . '/..' . '/sebastian/type/src/StaticType.php',
- 'SebastianBergmann\\Type\\Type' => __DIR__ . '/..' . '/sebastian/type/src/Type.php',
+ 'SebastianBergmann\\Type\\SimpleType' => __DIR__ . '/..' . '/sebastian/type/src/type/SimpleType.php',
+ 'SebastianBergmann\\Type\\StaticType' => __DIR__ . '/..' . '/sebastian/type/src/type/StaticType.php',
+ 'SebastianBergmann\\Type\\Type' => __DIR__ . '/..' . '/sebastian/type/src/type/Type.php',
'SebastianBergmann\\Type\\TypeName' => __DIR__ . '/..' . '/sebastian/type/src/TypeName.php',
- 'SebastianBergmann\\Type\\UnionType' => __DIR__ . '/..' . '/sebastian/type/src/UnionType.php',
- 'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/UnknownType.php',
- 'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/VoidType.php',
+ 'SebastianBergmann\\Type\\UnionType' => __DIR__ . '/..' . '/sebastian/type/src/type/UnionType.php',
+ 'SebastianBergmann\\Type\\UnknownType' => __DIR__ . '/..' . '/sebastian/type/src/type/UnknownType.php',
+ 'SebastianBergmann\\Type\\VoidType' => __DIR__ . '/..' . '/sebastian/type/src/type/VoidType.php',
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
'SqlFormatter' => __DIR__ . '/..' . '/jdorn/sql-formatter/lib/SqlFormatter.php',
'Stringable' => __DIR__ . '/..' . '/symfony/polyfill-php80/Resources/stubs/Stringable.php',
diff --git a/app/vendor/composer/ca-bundle/res/cacert.pem b/app/vendor/composer/ca-bundle/res/cacert.pem
index 456003b9e..0bf312fe5 100644
--- a/app/vendor/composer/ca-bundle/res/cacert.pem
+++ b/app/vendor/composer/ca-bundle/res/cacert.pem
@@ -1,7 +1,7 @@
##
## Bundle of CA Root Certificates
##
-## Certificate data from Mozilla as of: Mon Jul 5 21:35:54 2021 GMT
+## Certificate data from Mozilla as of: Tue Oct 26 03:12:05 2021 GMT
##
## This is a bundle of X.509 certificates of public Certificate Authorities
## (CA). These were automatically extracted from Mozilla's root certificates
@@ -14,9 +14,7 @@
## Just configure this file as the SSLCACertificateFile.
##
## Conversion done with mk-ca-bundle.pl version 1.28.
-## SHA256: c8f6733d1ff4e6a4769c182971a1234f95ae079247a9c439a13423fe8ba5c24f
-##
-## Modified to remove expiring DST Root CA X3: 2021-09-25.
+## SHA256: bb36818a81feaa4cca61101e6d6276cd09e972efcb08112dfed846918ca41d7f
##
@@ -3154,3 +3152,81 @@ WWRrJ8/vJ8HjJLWG965+Mk2weWjROeiQWMODvA8s1pfrzgzhIMfatz7DP78v3DSk+yshzWePS/Tj
OPQD8rv7gmsHINFSH5pkAnuYZttcTVoP0ISVoDwUQwbKytu4QTbaakRnh6+v40URFWkIsr4WOZck
bxJF0WddCajJFdr60qZfE2Efv4WstK2tBZQIgx51F9NxO5NQI1mg7TyRVJ12AMXDuDjb
-----END CERTIFICATE-----
+
+TunTrust Root CA
+================
+-----BEGIN CERTIFICATE-----
+MIIFszCCA5ugAwIBAgIUEwLV4kBMkkaGFmddtLu7sms+/BMwDQYJKoZIhvcNAQELBQAwYTELMAkG
+A1UEBhMCVE4xNzA1BgNVBAoMLkFnZW5jZSBOYXRpb25hbGUgZGUgQ2VydGlmaWNhdGlvbiBFbGVj
+dHJvbmlxdWUxGTAXBgNVBAMMEFR1blRydXN0IFJvb3QgQ0EwHhcNMTkwNDI2MDg1NzU2WhcNNDQw
+NDI2MDg1NzU2WjBhMQswCQYDVQQGEwJUTjE3MDUGA1UECgwuQWdlbmNlIE5hdGlvbmFsZSBkZSBD
+ZXJ0aWZpY2F0aW9uIEVsZWN0cm9uaXF1ZTEZMBcGA1UEAwwQVHVuVHJ1c3QgUm9vdCBDQTCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMPN0/y9BFPdDCA61YguBUtB9YOCfvdZn56eY+hz
+2vYGqU8ftPkLHzmMmiDQfgbU7DTZhrx1W4eI8NLZ1KMKsmwb60ksPqxd2JQDoOw05TDENX37Jk0b
+bjBU2PWARZw5rZzJJQRNmpA+TkBuimvNKWfGzC3gdOgFVwpIUPp6Q9p+7FuaDmJ2/uqdHYVy7BG7
+NegfJ7/Boce7SBbdVtfMTqDhuazb1YMZGoXRlJfXyqNlC/M4+QKu3fZnz8k/9YosRxqZbwUN/dAd
+gjH8KcwAWJeRTIAAHDOFli/LQcKLEITDCSSJH7UP2dl3RxiSlGBcx5kDPP73lad9UKGAwqmDrViW
+VSHbhlnUr8a83YFuB9tgYv7sEG7aaAH0gxupPqJbI9dkxt/con3YS7qC0lH4Zr8GRuR5KiY2eY8f
+Tpkdso8MDhz/yV3A/ZAQprE38806JG60hZC/gLkMjNWb1sjxVj8agIl6qeIbMlEsPvLfe/ZdeikZ
+juXIvTZxi11Mwh0/rViizz1wTaZQmCXcI/m4WEEIcb9PuISgjwBUFfyRbVinljvrS5YnzWuioYas
+DXxU5mZMZl+QviGaAkYt5IPCgLnPSz7ofzwB7I9ezX/SKEIBlYrilz0QIX32nRzFNKHsLA4KUiwS
+VXAkPcvCFDVDXSdOvsC9qnyW5/yeYa1E0wCXAgMBAAGjYzBhMB0GA1UdDgQWBBQGmpsfU33x9aTI
+04Y+oXNZtPdEITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFAaamx9TffH1pMjThj6hc1m0
+90QhMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAqgVutt0Vyb+zxiD2BkewhpMl
+0425yAA/l/VSJ4hxyXT968pk21vvHl26v9Hr7lxpuhbI87mP0zYuQEkHDVneixCwSQXi/5E/S7fd
+Ao74gShczNxtr18UnH1YeA32gAm56Q6XKRm4t+v4FstVEuTGfbvE7Pi1HE4+Z7/FXxttbUcoqgRY
+YdZ2vyJ/0Adqp2RT8JeNnYA/u8EH22Wv5psymsNUk8QcCMNE+3tjEUPRahphanltkE8pjkcFwRJp
+adbGNjHh/PqAulxPxOu3Mqz4dWEX1xAZufHSCe96Qp1bWgvUxpVOKs7/B9dPfhgGiPEZtdmYu65x
+xBzndFlY7wyJz4sfdZMaBBSSSFCp61cpABbjNhzI+L/wM9VBD8TMPN3pM0MBkRArHtG5Xc0yGYuP
+jCB31yLEQtyEFpslbei0VXF/sHyz03FJuc9SpAQ/3D2gu68zngowYI7bnV2UqL1g52KAdoGDDIzM
+MEZJ4gzSqK/rYXHv5yJiqfdcZGyfFoxnNidF9Ql7v/YQCvGwjVRDjAS6oz/v4jXH+XTgbzRB0L9z
+ZVcg+ZtnemZoJE6AZb0QmQZZ8mWvuMZHu/2QeItBcy6vVR/cO5JyboTT0GFMDcx2V+IthSIVNg3r
+AZ3r2OvEhJn7wAzMMujjd9qDRIueVSjAi1jTkD5OGwDxFa2DK5o=
+-----END CERTIFICATE-----
+
+HARICA TLS RSA Root CA 2021
+===========================
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIQOcqTHO9D88aOk8f0ZIk4fjANBgkqhkiG9w0BAQsFADBsMQswCQYDVQQG
+EwJHUjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u
+cyBDQTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBSU0EgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTEwNTUz
+OFoXDTQ1MDIxMzEwNTUzN1owbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRl
+bWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgUlNB
+IFJvb3QgQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAIvC569lmwVnlskN
+JLnQDmT8zuIkGCyEf3dRywQRNrhe7Wlxp57kJQmXZ8FHws+RFjZiPTgE4VGC/6zStGndLuwRo0Xu
+a2s7TL+MjaQenRG56Tj5eg4MmOIjHdFOY9TnuEFE+2uva9of08WRiFukiZLRgeaMOVig1mlDqa2Y
+Ulhu2wr7a89o+uOkXjpFc5gH6l8Cct4MpbOfrqkdtx2z/IpZ525yZa31MJQjB/OCFks1mJxTuy/K
+5FrZx40d/JiZ+yykgmvwKh+OC19xXFyuQnspiYHLA6OZyoieC0AJQTPb5lh6/a6ZcMBaD9YThnEv
+dmn8kN3bLW7R8pv1GmuebxWMevBLKKAiOIAkbDakO/IwkfN4E8/BPzWr8R0RI7VDIp4BkrcYAuUR
+0YLbFQDMYTfBKnya4dC6s1BG7oKsnTH4+yPiAwBIcKMJJnkVU2DzOFytOOqBAGMUuTNe3QvboEUH
+GjMJ+E20pwKmafTCWQWIZYVWrkvL4N48fS0ayOn7H6NhStYqE613TBoYm5EPWNgGVMWX+Ko/IIqm
+haZ39qb8HOLubpQzKoNQhArlT4b4UEV4AIHrW2jjJo3Me1xR9BQsQL4aYB16cmEdH2MtiKrOokWQ
+CPxrvrNQKlr9qEgYRtaQQJKQCoReaDH46+0N0x3GfZkYVVYnZS6NRcUk7M7jAgMBAAGjQjBAMA8G
+A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFApII6ZgpJIKM+qTW8VX6iVNvRLuMA4GA1UdDwEB/wQE
+AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAPpBIqm5iFSVmewzVjIuJndftTgfvnNAUX15QvWiWkKQU
+EapobQk1OUAJ2vQJLDSle1mESSmXdMgHHkdt8s4cUCbjnj1AUz/3f5Z2EMVGpdAgS1D0NTsY9FVq
+QRtHBmg8uwkIYtlfVUKqrFOFrJVWNlar5AWMxajaH6NpvVMPxP/cyuN+8kyIhkdGGvMA9YCRotxD
+QpSbIPDRzbLrLFPCU3hKTwSUQZqPJzLB5UkZv/HywouoCjkxKLR9YjYsTewfM7Z+d21+UPCfDtcR
+j88YxeMn/ibvBZ3PzzfF0HvaO7AWhAw6k9a+F9sPPg4ZeAnHqQJyIkv3N3a6dcSFA1pj1bF1BcK5
+vZStjBWZp5N99sXzqnTPBIWUmAD04vnKJGW/4GKvyMX6ssmeVkjaef2WdhW+o45WxLM0/L5H9MG0
+qPzVMIho7suuyWPEdr6sOBjhXlzPrjoiUevRi7PzKzMHVIf6tLITe7pTBGIBnfHAT+7hOtSLIBD6
+Alfm78ELt5BGnBkpjNxvoEppaZS3JGWg/6w/zgH7IS79aPib8qXPMThcFarmlwDB31qlpzmq6YR/
+PFGoOtmUW4y/Twhx5duoXNTSpv4Ao8YWxw/ogM4cKGR0GQjTQuPOAF1/sdwTsOEFy9EgqoZ0njnn
+kf3/W9b3raYvAwtt41dU63ZTGI0RmLo=
+-----END CERTIFICATE-----
+
+HARICA TLS ECC Root CA 2021
+===========================
+-----BEGIN CERTIFICATE-----
+MIICVDCCAdugAwIBAgIQZ3SdjXfYO2rbIvT/WeK/zjAKBggqhkjOPQQDAzBsMQswCQYDVQQGEwJH
+UjE3MDUGA1UECgwuSGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBD
+QTEkMCIGA1UEAwwbSEFSSUNBIFRMUyBFQ0MgUm9vdCBDQSAyMDIxMB4XDTIxMDIxOTExMDExMFoX
+DTQ1MDIxMzExMDEwOVowbDELMAkGA1UEBhMCR1IxNzA1BgNVBAoMLkhlbGxlbmljIEFjYWRlbWlj
+IGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ0ExJDAiBgNVBAMMG0hBUklDQSBUTFMgRUNDIFJv
+b3QgQ0EgMjAyMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABDgI/rGgltJ6rK9JOtDA4MM7KKrxcm1l
+AEeIhPyaJmuqS7psBAqIXhfyVYf8MLA04jRYVxqEU+kw2anylnTDUR9YSTHMmE5gEYd103KUkE+b
+ECUqqHgtvpBBWJAVcqeht6NCMEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUyRtTgRL+BNUW
+0aq8mm+3oJUZbsowDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMDA2cAMGQCMBHervjcToiwqfAi
+rcJRQO9gcS3ujwLEXQNwSaSS6sUUiHCm0w2wqsosQJz76YJumgIwK0eaB8bRwoF8yguWGEEbo/Qw
+CZ61IygNnxS2PFOiTAZpffpskcYqSUXm7LcT4Tps
+-----END CERTIFICATE-----
diff --git a/app/vendor/composer/ca-bundle/src/CaBundle.php b/app/vendor/composer/ca-bundle/src/CaBundle.php
index 0109ba037..d99c00f69 100644
--- a/app/vendor/composer/ca-bundle/src/CaBundle.php
+++ b/app/vendor/composer/ca-bundle/src/CaBundle.php
@@ -108,7 +108,7 @@ public static function getSystemCaRootBundlePath(LoggerInterface $logger = null)
return self::$caPath = $caBundle;
}
- if ($caBundle && self::caDirUsable($caBundle)) {
+ if ($caBundle && self::caDirUsable($caBundle, $logger)) {
return self::$caPath = $caBundle;
}
}
@@ -335,19 +335,97 @@ private static function getEnvVariable($name)
/**
* @param string|false $certFile
+ * @param LoggerInterface|null $logger
* @return bool
*/
private static function caFileUsable($certFile, LoggerInterface $logger = null)
{
- return $certFile && @is_file($certFile) && @is_readable($certFile) && static::validateCaFile($certFile, $logger);
+ return $certFile
+ && static::isFile($certFile, $logger)
+ && static::isReadable($certFile, $logger)
+ && static::validateCaFile($certFile, $logger);
}
/**
* @param string|false $certDir
+ * @param LoggerInterface|null $logger
* @return bool
*/
- private static function caDirUsable($certDir)
+ private static function caDirUsable($certDir, LoggerInterface $logger = null)
{
- return $certDir && @is_dir($certDir) && @is_readable($certDir) && glob($certDir . '/*');
+ return $certDir
+ && static::isDir($certDir, $logger)
+ && static::isReadable($certDir, $logger)
+ && static::glob($certDir . '/*', $logger);
+ }
+
+ /**
+ * @param string $certFile
+ * @param LoggerInterface|null $logger
+ * @return bool
+ */
+ private static function isFile($certFile, LoggerInterface $logger = null)
+ {
+ $isFile = @is_file($certFile);
+ if (!$isFile && $logger) {
+ $logger->debug(sprintf('Checked CA file %s does not exist or it is not a file.', $certFile));
+ }
+
+ return $isFile;
+ }
+
+ /**
+ * @param string $certDir
+ * @param LoggerInterface|null $logger
+ * @return bool
+ */
+ private static function isDir($certDir, LoggerInterface $logger = null)
+ {
+ $isDir = @is_dir($certDir);
+ if (!$isDir && $logger) {
+ $logger->debug(sprintf('Checked directory %s does not exist or it is not a directory.', $certDir));
+ }
+
+ return $isDir;
+ }
+
+ /**
+ * @param string $certFileOrDir
+ * @param LoggerInterface|null $logger
+ * @return bool
+ */
+ private static function isReadable($certFileOrDir, LoggerInterface $logger = null)
+ {
+ $isReadable = @is_readable($certFileOrDir);
+ if (!$isReadable && $logger) {
+ $logger->debug(sprintf('Checked file or directory %s is not readable.', $certFileOrDir));
+ }
+
+ return $isReadable;
+ }
+
+ /**
+ * @param string $pattern
+ * @param LoggerInterface|null $logger
+ * @return bool
+ */
+ private static function glob($pattern, LoggerInterface $logger = null)
+ {
+ $certs = glob($pattern);
+ if ($certs === false) {
+ if ($logger) {
+ $logger->debug(sprintf("An error occurred while trying to find certificates for pattern: %s", $pattern));
+ }
+ return false;
+ }
+
+ if (count($certs) === 0) {
+ if ($logger) {
+ $logger->debug(sprintf("No CA files found for pattern: %s", $pattern));
+ }
+ return false;
+ }
+
+ return true;
}
}
diff --git a/app/vendor/composer/composer/.gitignore b/app/vendor/composer/composer/.gitignore
index 0b1fb77c0..3db374fdf 100644
--- a/app/vendor/composer/composer/.gitignore
+++ b/app/vendor/composer/composer/.gitignore
@@ -9,4 +9,4 @@ phpunit.xml
.vagrant
Vagrantfile
.idea
-.php_cs.cache
+.php-cs-fixer.cache
diff --git a/app/vendor/composer/composer/CHANGELOG.md b/app/vendor/composer/composer/CHANGELOG.md
index 983bc68a3..decb5b05c 100644
--- a/app/vendor/composer/composer/CHANGELOG.md
+++ b/app/vendor/composer/composer/CHANGELOG.md
@@ -1,3 +1,229 @@
+### [2.3.5] 2022-04-13
+
+ * Security: Fixed command injection vulnerability in HgDriver/GitDriver (GHSA-x7cr-6qr6-2hh6 / CVE-2022-24828)
+ * Added warning when downloading a file with `verify_peer[_name]` disabled (#10722)
+ * Fixed curl downloader not retrying when a DNS resolution failure occurs (#10716)
+ * Fixed composer.lock file still being used/read when the `lock` config option is disabled (#10726)
+ * Fixed `validate` command checking the lock file even if the `lock` option is disabled (#10723)
+ * Fixed detection of default branch name when it changed since a git repo was mirrored in cache dir (#10701)
+
+### [2.3.4] 2022-04-07
+
+ * Fixed the generated autoload.php to support running on PHP 5.6+ (down from 7.0+) and warn clearly on older PHP versions (#10714)
+ * Fixed run-script --list flag regression (#10710)
+ * Fixed curl downloader handling of DNS resolution failures to do an automatic retry (#10716)
+ * Fixed script handling of external commands not setting the Path env correctly on windows (#10700)
+ * Fixed various type errors (#10694, #10696, #10702, #10712, #10703)
+
+### [2.3.3] 2022-04-01
+
+ * Added --2.2 flag to `self-update` to pin the Composer version to the 2.2 LTS range (#10682)
+ * Added missing config.bitbucket-oauth in composer-schema.json
+ * Fixed type errors in SvnDriver (#10681)
+ * Fixed --version output to match the pre-2.3 one (#10684)
+ * Fixed config/auth.json files not being validated against the composer-schema.json (#10685)
+ * Fixed generation of autoload crashing if a package has a broken path (#10688)
+ * Fixed GitDriver state issue when reusing old cache dirs and the default branch was renamed (#10687)
+ * Updated semver, jsonlint deps for minor fixes
+ * Removed dev-master=>dev-main alias from #10372 as it does not work when reloading from lock file and extracting dev deps (#10651)
+
+### [2.3.2] 2022-03-30
+
+ * Fixed type error when running `exec` command (#10672)
+ * Fixed endless loop in plugin activation prompt when input is not fully interactive yet appears to be (#10648)
+ * Fixed type error in ComposerRepository (#10675)
+ * Fixed issues loading platform packages where the version of a library cannot be established (#10631)
+
+### [2.3.1] 2022-03-30
+
+ * Fixed type error when HOME env var is not set (#10670)
+
+### [2.3.0] 2022-03-30
+
+ * Fixed many strict types errors (#10646, #10642, #10647, #10658, #10656, #10665, #10660, #10663, #10662)
+
+### [2.3.0-RC2] 2022-03-20
+
+ * Fixed invalid return value in ComposerRepository::findPackage (#10622)
+ * Fixed many `show` command issues due to a flipped condition (#10623)
+ * Fixed `phpversion()` handling when it returns false due to an extension defining no version (#10631)
+ * Fixed `remove` command failing when no `allow-plugin` is defined in config (#10629)
+ * Performance improvement in Composer bootstrapping (version guessing) when on a feature branch (#10632)
+
+### [2.3.0-RC1] 2022-03-16
+
+ * BC Break: the minimum PHP version is now 7.2.5+, use the [Composer 2.2 LTS](https://github.com/composer/composer/issues/10340) if you are stuck with an older PHP (#10343)
+ * BC Break: added native parameter & return types to many internal APIs, we explicitly left the most extended/implemented symbols untouched but if this causes problems nonetheless please report it ASAP (#10547, #10561)
+ * BC Break: added visibility to all constants, a few internal ones have been made private/protected, if this causes problems please report it ASAP (#10550)
+ * BC Break: the minimum supported Symfony components version is now 5.4, this only affects you if you are requiring composer/composer directly however, which is generally frowned upon
+ * Bumped `composer-plugin-api` to `2.3.0`
+ * Bumped bundled Symfony components from 2.8 to 5.4 🥳
+ * Added `declare(strict_types=1)` to all the classes, which for sure could cause regressions in edge cases, please report with stack traces (#10567)
+ * Added `--patch-only` to the `outdated` command to only show updates to patch versions and ignore new major/minor versions (#10589)
+ * Added clickable links to various commands for terminals which support it (#10430)
+ * Added ProcessExecutor ability to receive commands as arrays by (internals/plugin change only) (#10435)
+ * Added abandoned flag to `show`/`outdated` commands JSON-formatted output (#10485)
+ * Added config.reference option to `path` repositories to configure the way the reference is generated, and possibly reduce composer.lock conflicts (#10488)
+ * Added automatic removal of allow-plugins rules when removing a plugin via the `remove` command (#10615)
+ * Added COMPOSER_IGNORE_PLATFOR_REQ & COMPOSER_IGNORE_PLATFOR_REQS env vars to configure the equivalent flags (#10616)
+ * Added support for Symfony 6.0 components
+ * Added support for psr/log 3.x (#10454)
+ * Fixed symlink creation in linux VM guest filesystems to be recognized by Windows (#10592)
+ * Performance improvement in pool optimization step (#10585)
+
+### [2.2.12] 2022-04-13
+
+ * Security: Fixed command injection vulnerability in HgDriver/GitDriver (GHSA-x7cr-6qr6-2hh6 / CVE-2022-24828)
+ * Fixed curl downloader not retrying when a DNS resolution failure occurs (#10716)
+ * Fixed composer.lock file still being used/read when the `lock` config option is disabled (#10726)
+ * Fixed `validate` command checking the lock file even if the `lock` option is disabled (#10723)
+
+### [2.2.11] 2022-04-01
+
+ * Added missing config.bitbucket-oauth in composer-schema.json
+ * Added --2.2 flag to `self-update` to pin the Composer version to the 2.2 LTS range (#10682)
+ * Updated semver, jsonlint deps for minor fixes
+ * Fixed generation of autoload crashing if a package has a broken path (#10688)
+ * Removed dev-master=>dev-main alias from #10372 as it does not work when reloading from lock file and extracting dev deps (#10651)
+
+### [2.2.10] 2022-03-29
+
+ * Fixed Bitbucket authorization detection due to API changes (#10657)
+ * Fixed validate command warning about dist/source keys if defined (#10655)
+ * Fixed deletion/handling of corrupted 0-bytes zip archives (#10666)
+
+### [2.2.9] 2022-03-15
+
+ * Fixed regression with plugins that modify install path of packages, [see docs](https://getcomposer.org/doc/articles/plugins.md#plugin-modifies-install-path) if you are authoring such a plugin (#10621)
+
+### [2.2.8] 2022-03-15
+
+ * Fixed `files` autoloading sort order to be fully deterministic (#10617)
+ * Fixed pool optimization pass edge cases (#10579)
+ * Fixed `require` command failing when `self.version` is used as constraint (#10593)
+ * Fixed --no-ansi / undecorated output still showing color in repo warnings (#10601)
+ * Performance improvement in pool optimization step (composer/semver#131)
+
+### [2.2.7] 2022-02-25
+
+ * Allow installation together with composer/xdebug-handler ^3 (#10528)
+ * Fixed support for packages with no licenses in `licenses` command output (#10537)
+ * Fixed handling of `allow-plugins: false` which kept warning (#10530)
+ * Fixed enum parsing in classmap generation when the enum keyword is not lowercased (#10521)
+ * Fixed author parsing in `init` command requiring an email whereas the schema allows a name only (#10538)
+ * Fixed issues in `require` command when requiring packages which do not exist (but are provided by something else you require) (#10541)
+ * Performance improvement in pool optimization step (#10546)
+
+### [2.2.6] 2022-02-04
+
+ * BC Break: due to an oversight, the `COMPOSER_BIN_DIR` env var for binaries added in Composer 2.2.2 had to be renamed to `COMPOSER_RUNTIME_BIN_DIR` (#10512)
+ * Fixed enum parsing in classmap generation with syntax like `enum foo:string` without space after `:` (#10498)
+ * Fixed package search not urlencoding the input (#10500)
+ * Fixed `reinstall` command not firing `pre-install-cmd`/`post-install-cmd` events (#10514)
+ * Fixed edge case in path repositories where a symlink: true option would be ignored on old Windows and old PHP combos (#10482)
+ * Fixed test suite compatibility with latest symfony/console releases (#10499)
+ * Fixed some error reporting edge cases (#10484, #10451, #10493)
+
+### [2.2.5] 2022-01-21
+
+ * Disabled `composer/package-versions-deprecated` by default as it can function using `Composer\InstalledVersions` at runtime (#10458)
+ * Fixed artifact repositories crashing if a phar file was present in the directory (#10406)
+ * Fixed binary proxy issue on PHP <8 when fseek is used on the proxied binary path (#10468)
+ * Fixed handling of non-string versions in package repositories metadata (#10470)
+
+### [2.2.4] 2022-01-08
+
+ * Fixed handling of process timeout when running async processes during installation
+ * Fixed GitLab API handling when projects have a repository disabled (#10440)
+ * Fixed reading of environment variables (e.g. APPDATA) containing unicode characters to workaround a PHP bug on Windows (#10434)
+ * Fixed partial update issues with path repos missing if a path repo is required by a path repo (#10431)
+ * Fixed support for sourcing binaries via the new bin proxies ([#10389](https://github.com/composer/composer/issues/10389#issuecomment-1007372740))
+ * Fixed messaging when GitHub tokens need SSO authorization (#10432)
+
+### [2.2.3] 2021-12-31
+
+ * Fixed issue with PHPUnit and process isolation now including PHPUnit <6.5 (#10387)
+ * Fixed interoperability issue with laminas/laminas-zendframework-bridge and Composer 2.2 (#10401)
+ * Fixed binary proxies for shell scripts to work correctly when they are symlinked (jakzal/phpqa#336)
+ * Fixed overly greedy pool optimization in cases where a locked package is not required by anything anymore in a partial update (#10405)
+
+### [2.2.2] 2021-12-29
+
+ * Added [`COMPOSER_BIN_DIR` env var and `_composer_bin_dir` global](https://getcomposer.org/doc/articles/vendor-binaries.md#finding-the-composer-bin-dir-from-a-binary) containing the path to the bin-dir for binaries. Packages relying on finding the bin dir with `$BASH_SOURCES[0]` will need to update their binaries (#10402)
+ * Fixed issue when new binary proxies are combined with PHPUnit and process isolation (#10387)
+ * Fixed deprecation warnings when using Symfony 5.4+ and requiring composer/composer itself (#10404)
+ * Fixed UX of plugin warnings (#10381)
+
+### [2.2.1] 2021-12-22
+
+ * Fixed plugin autoloading including files autoload rules from the root package (#10382)
+ * Fixed issue parsing php files with unterminated comments found inside backticks (#10385)
+
+### [2.2.0] 2021-12-22
+
+ * Added support for using `dev-main` as the default path repo package version if no VCS info is available (#10372)
+ * Added --no-scripts as a globally supported flag to all Composer commands to disable scripts execution (#10371)
+ * Fixed self-update failing in some edge cases due to loading plugins (#10371)
+ * Fixed display of conflicts showing the wrong package name in some conditions (#10355)
+
+### [2.2.0-RC1] 2021-12-08
+
+ * Bumped `composer-runtime-api` and `composer-plugin-api` to `2.2.0`
+ * UX Change: Added [`allow-plugins`](https://getcomposer.org/doc/06-config.md#allow-plugins) config value to enhance security against runtime execution, this will prompt you the first time you use a plugin and may hang pipelines if they aren't using --no-interaction (-n) as they should (#10314)
+ * Added an optimization pass to reduce the amount of redundant inspected during resolution, drastically improving memory and CPU usage (#9261, #9620)
+ * Added a [global $_composer_autoload_path variable](https://getcomposer.org/doc/articles/vendor-binaries.md#finding-the-composer-autoloader-from-a-binary) containing the path to autoload.php for binaries (#10137)
+ * Added wildcard support to --ignore-platform-req (e.g. `ext-*`) (#10083)
+ * Added support for ignoring the upper bound of platform requirements using "name+" notation e.g. using `--ignore-platform-req=php+` would allow installing a package requiring `php: 8.0.*` on PHP 8.1, but not on PHP 7.4. Useful for CI builds of upcoming PHP versions (#10318)
+ * Added support for setting platform packages to false in config.platform to disable/hide them (#10308)
+ * Added [`use-parent-dir`](https://getcomposer.org/doc/06-config.md#use-parent-dir) option to configure the prompt for using composer.json in upper directory when none is present in current dir (#10307)
+ * Added [`composer` platform package](https://getcomposer.org/doc/articles/composer-platform-dependencies.md) which is always the exact version of Composer running unlike `composer-*-api` packages (#10313)
+ * Added a --source flag to `config` command to show where config values are loaded from (#10129)
+ * Added support for `files` autoloaders in the runtime scripts/plugins contexts (#10065)
+ * Added retry behavior on certain http status and curl error codes (#10162)
+ * Added abandoned flag display in search command output
+ * Added support for --ignore-platform-reqs in `outdated` command (#10293)
+ * Added --only-vendor (-O) flag to `search` command to search (and return) vendor names (#10336)
+ * Added COMPOSER_NO_DEV environment variable to set the --no-dev flag (#10262)
+ * Fixed `archive` command to behave more like git archive, gitignore/hgignore are not taken into account anymore, and gitattributes support was improved (#10309)
+ * Fixed unlocking of replacers when a replaced package is unlocked (#10280)
+ * Fixed auto-unlocked path repo packages also unlocking their transitive deps when -w/-W is used (#10157)
+ * Fixed handling of recursive package links (e.g. requiring or replacing oneself)
+ * Fixed env var reads to check $_SERVER and $_ENV before getenv for broader ecosystem compatibility (#10218)
+ * Fixed `archive` command to produce archives with files sorted by name (#10274)
+ * Fixed VcsRepository issues where server failure could cause missing tags/branches (#10319)
+ * Fixed some error reporting issues (#10283, #10339)
+
+### [2.1.14] 2021-11-30
+
+ * Fixed invalid release build
+
+### [2.1.13] 2021-11-30
+
+ * Removed `symfony/console ^6` support as we cannot be compatible until Composer 2.3.0 is released. If you have issues with Composer required as a dependency + Symfony make sure you stay on Symfony 5.4 for now. (#10321)
+
+### [2.1.12] 2021-11-09
+
+ * Fixed issues in proxied binary files relying on __FILE__ / __DIR__ on php <8 (#10261)
+ * Fixed 9999999-dev being shown in some cases by the `show` command (#10260)
+ * Fixed GitHub Actions output escaping regression on PHP 8.1 (#10250)
+
+### [2.1.11] 2021-11-02
+
+ * Fixed issues in proxied binary files when using declare() on php <8 (#10249)
+ * Fixed GitHub Actions output escaping issues (#10243)
+
+### [2.1.10] 2021-10-29
+
+ * Added type annotations to all classes, which may have an effect on CI/static analysis for people using Composer as a dependency (#10159)
+ * Fixed CurlDownloader requesting gzip encoding even when no gzip support is present (#10153)
+ * Fixed regression in 2.1.6 where the help command was not working for plugin commands (#10147)
+ * Fixed warning showing when an invalid cache dir is configured but unused (#10125)
+ * Fixed `require` command reverting changes even though dependency resolution succeeded when something fails in scripts for example (#10118)
+ * Fixed `require` not finding the right package version when some newly required extension is missing from the system (#10167)
+ * Fixed proxied binary file issues, now using output buffering (e1dbd65aff)
+ * Fixed and improved error reporting in several edge cases (#9804, #10136, #10163, #10224, #10209)
+ * Fixed some more Windows CLI parameter escaping edge cases
+
### [2.1.9] 2021-10-05
* Security: Fixed command injection vulnerability on Windows (GHSA-frqg-7g38-6gcf / CVE-2021-41116)
@@ -235,7 +461,7 @@
### [2.0.1] 2020-10-24
- * Fixed crash on PHP8
+ * Fixed crash on PHP 8
### [2.0.0] 2020-10-24
@@ -1274,6 +1500,33 @@
* Initial release
+[2.3.5]: https://github.com/composer/composer/compare/2.3.4...2.3.5
+[2.3.4]: https://github.com/composer/composer/compare/2.3.3...2.3.4
+[2.3.3]: https://github.com/composer/composer/compare/2.3.2...2.3.3
+[2.3.2]: https://github.com/composer/composer/compare/2.3.1...2.3.2
+[2.3.1]: https://github.com/composer/composer/compare/2.3.0...2.3.1
+[2.3.0]: https://github.com/composer/composer/compare/2.3.0-RC2...2.3.0
+[2.3.0-RC2]: https://github.com/composer/composer/compare/2.3.0-RC1...2.3.0-RC2
+[2.3.0-RC1]: https://github.com/composer/composer/compare/2.2.9...2.3.0-RC1
+[2.2.12]: https://github.com/composer/composer/compare/2.2.11...2.2.12
+[2.2.11]: https://github.com/composer/composer/compare/2.2.10...2.2.11
+[2.2.10]: https://github.com/composer/composer/compare/2.2.9...2.2.10
+[2.2.9]: https://github.com/composer/composer/compare/2.2.8...2.2.9
+[2.2.8]: https://github.com/composer/composer/compare/2.2.7...2.2.8
+[2.2.7]: https://github.com/composer/composer/compare/2.2.6...2.2.7
+[2.2.6]: https://github.com/composer/composer/compare/2.2.5...2.2.6
+[2.2.5]: https://github.com/composer/composer/compare/2.2.4...2.2.5
+[2.2.4]: https://github.com/composer/composer/compare/2.2.3...2.2.4
+[2.2.3]: https://github.com/composer/composer/compare/2.2.2...2.2.3
+[2.2.2]: https://github.com/composer/composer/compare/2.2.1...2.2.2
+[2.2.1]: https://github.com/composer/composer/compare/2.2.0...2.2.1
+[2.2.0]: https://github.com/composer/composer/compare/2.2.0-RC1...2.2.0
+[2.2.0-RC1]: https://github.com/composer/composer/compare/2.1.14...2.2.0-RC1
+[2.1.14]: https://github.com/composer/composer/compare/2.1.13...2.1.14
+[2.1.13]: https://github.com/composer/composer/compare/2.1.12...2.1.13
+[2.1.12]: https://github.com/composer/composer/compare/2.1.11...2.1.12
+[2.1.11]: https://github.com/composer/composer/compare/2.1.10...2.1.11
+[2.1.10]: https://github.com/composer/composer/compare/2.1.9...2.1.10
[2.1.9]: https://github.com/composer/composer/compare/2.1.8...2.1.9
[2.1.8]: https://github.com/composer/composer/compare/2.1.7...2.1.8
[2.1.7]: https://github.com/composer/composer/compare/2.1.6...2.1.7
diff --git a/app/vendor/composer/composer/README.md b/app/vendor/composer/composer/README.md
index 99c2cc866..2d9fc7990 100644
--- a/app/vendor/composer/composer/README.md
+++ b/app/vendor/composer/composer/README.md
@@ -5,7 +5,7 @@ Composer helps you declare, manage, and install dependencies of PHP projects.
See [https://getcomposer.org/](https://getcomposer.org/) for more information and documentation.
-[](https://github.com/composer/composer/actions)
+[](https://github.com/composer/composer/actions)
Installation / Usage
--------------------
@@ -17,7 +17,7 @@ For usage, see [the documentation](https://getcomposer.org/doc/).
Packages
--------
-Find packages on [Packagist](https://packagist.org).
+Find public packages on [Packagist.org](https://packagist.org). For private package hosting take a look at [Private Packagist](https://packagist.com).
Community
---------
@@ -34,7 +34,15 @@ By participating in this project and its community you agree to abide by those t
Requirements
------------
-PHP 5.3.2 or above (at least 5.3.4 recommended to avoid potential bugs)
+#### Latest Composer
+
+PHP 7.2.5 or above for the latest version.
+
+#### Composer 2.2 LTS (Long Term Support)
+
+PHP versions 5.3.2 - 8.1 are still supported via the LTS releases of Composer (2.2.x). If you
+run the installer or the `self-update` command the appropriate Composer version for your PHP
+should be automatically selected.
Authors
-------
diff --git a/app/vendor/composer/composer/bin/compile b/app/vendor/composer/composer/bin/compile
index f9156245f..1e2e4be1c 100755
--- a/app/vendor/composer/composer/bin/compile
+++ b/app/vendor/composer/composer/bin/compile
@@ -2,17 +2,30 @@
=')) {
echo 'HHVM 4.0 has dropped support for Composer, please use PHP instead. Aborting.'.PHP_EOL;
exit(1);
}
+if (!extension_loaded('iconv') && !extension_loaded('mbstring')) {
+ echo 'The iconv OR mbstring extension is required and both are missing.'
+ .PHP_EOL.'Install either of them or recompile php without --disable-iconv.'
+ .PHP_EOL.'Aborting.'.PHP_EOL;
+ exit(1);
+}
if (function_exists('ini_set')) {
@ini_set('display_errors', '1');
@@ -59,6 +70,16 @@ if (function_exists('ini_set')) {
unset($memoryLimit);
}
+// Workaround PHP bug on Windows where env vars containing Unicode chars are mangled in $_SERVER
+// see https://github.com/php/php-src/issues/7896
+if (PHP_VERSION_ID >= 70113 && (PHP_VERSION_ID < 80016 || (PHP_VERSION_ID >= 80100 && PHP_VERSION_ID < 80103)) && Platform::isWindows()) {
+ foreach ($_SERVER as $serverVar => $serverVal) {
+ if (($serverVal = getenv($serverVar)) !== false) {
+ $_SERVER[$serverVar] = $serverVal;
+ }
+ }
+}
+
Platform::putEnv('COMPOSER_BINARY', realpath($_SERVER['argv'][0]));
ErrorHandler::register();
diff --git a/app/vendor/composer/composer/composer.json b/app/vendor/composer/composer/composer.json
index 9225f2e5f..80b97d6ad 100644
--- a/app/vendor/composer/composer/composer.json
+++ b/app/vendor/composer/composer/composer.json
@@ -22,25 +22,32 @@
}
],
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0",
+ "php": "^7.2.5 || ^8.0",
"composer/ca-bundle": "^1.0",
"composer/metadata-minifier": "^1.0",
"composer/semver": "^3.0",
"composer/spdx-licenses": "^1.2",
- "composer/xdebug-handler": "^2.0",
+ "composer/xdebug-handler": "^2.0.2 || ^3.0.3",
"justinrainbow/json-schema": "^5.2.11",
- "psr/log": "^1.0",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
"seld/jsonlint": "^1.4",
- "seld/phar-utils": "^1.0",
- "symfony/console": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/filesystem": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/finder": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "symfony/process": "^2.8.52 || ^3.4.35 || ^4.4 || ^5.0 || ^6.0",
- "react/promise": "^1.2 || ^2.7"
+ "seld/phar-utils": "^1.2",
+ "symfony/console": "^5.4.1 || ^6.0",
+ "symfony/filesystem": "^5.4 || ^6.0",
+ "symfony/finder": "^5.4 || ^6.0",
+ "symfony/process": "^5.4 || ^6.0",
+ "react/promise": "^2.8",
+ "composer/pcre": "^2 || ^3",
+ "symfony/polyfill-php73": "^1.24",
+ "symfony/polyfill-php80": "^1.24"
},
"require-dev": {
- "symfony/phpunit-bridge": "^4.2 || ^5.0 || ^6.0",
- "phpspec/prophecy": "^1.10"
+ "symfony/phpunit-bridge": "^6.0",
+ "phpstan/phpstan": "^1.4.1",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan-deprecation-rules": "^1",
+ "phpstan/phpstan-strict-rules": "^1",
+ "phpstan/phpstan-symfony": "^1.1"
},
"suggest": {
"ext-openssl": "Enabling the openssl extension allows you to access https URLs for repositories and packages",
@@ -49,13 +56,13 @@
},
"config": {
"platform": {
- "php": "5.3.9"
+ "php": "7.2.5"
},
"platform-check": false
},
"extra": {
"branch-alias": {
- "dev-master": "2.1-dev"
+ "dev-main": "2.3-dev"
}
},
"autoload": {
@@ -65,33 +72,21 @@
},
"autoload-dev": {
"psr-4": {
- "Composer\\Test\\": "tests/Composer/Test",
- "Composer\\PHPStanRules\\": "phpstan/Rules/src",
- "Composer\\PHPStanRulesTests\\": "phpstan/Rules/tests"
- },
- "classmap": [
- "phpstan/Rules/tests/data"
- ]
+ "Composer\\Test\\": "tests/Composer/Test"
+ }
},
"bin": [
"bin/composer"
],
"scripts": {
"compile": "@php -dphar.readonly=0 bin/compile",
- "test": "simple-phpunit",
- "phpstan-setup": [
- "@composer config platform --unset",
- "@php composer.phar update",
- "@composer require --dev phpstan/phpstan:^0.12.93 phpstan/phpstan-phpunit:^0.12.17 phpunit/phpunit:^7.5.20 --with-all-dependencies",
- "git checkout composer.json composer.lock"
- ],
+ "test": "@php simple-phpunit",
"phpstan": "@php vendor/bin/phpstan analyse --configuration=phpstan/config.neon"
},
"scripts-descriptions": {
"compile": "Compile composer.phar",
"test": "Run all tests",
- "phpstan-setup": "Prepare environment to run PHPStan locally (must be run with PHP7.4)",
- "phpstan": "Runs PHPStan (after phpstan-setup was executed, must be run with PHP7.4)"
+ "phpstan": "Runs PHPStan"
},
"support": {
"issues": "https://github.com/composer/composer/issues",
diff --git a/app/vendor/composer/composer/composer.lock b/app/vendor/composer/composer/composer.lock
index 22981a039..c652dca6c 100644
--- a/app/vendor/composer/composer/composer.lock
+++ b/app/vendor/composer/composer/composer.lock
@@ -4,20 +4,20 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "dfe550a024c0c2bb0784765e457968af",
+ "content-hash": "3a7c7da73f59287030b9704930778e2b",
"packages": [
{
"name": "composer/ca-bundle",
- "version": "1.2.11",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/composer/ca-bundle.git",
- "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582"
+ "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/ca-bundle/zipball/0b072d51c5a9c6f3412f7ea3ab043d6603cb2582",
- "reference": "0b072d51c5a9c6f3412f7ea3ab043d6603cb2582",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b",
+ "reference": "4c679186f2aca4ab6a0f1b0b9cf9252decb44d0b",
"shasum": ""
},
"require": {
@@ -64,7 +64,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/ca-bundle/issues",
- "source": "https://github.com/composer/ca-bundle/tree/1.2.11"
+ "source": "https://github.com/composer/ca-bundle/tree/1.3.1"
},
"funding": [
{
@@ -80,7 +80,7 @@
"type": "tidelift"
}
],
- "time": "2021-09-25T20:32:43+00:00"
+ "time": "2021-10-28T20:44:15+00:00"
},
{
"name": "composer/metadata-minifier",
@@ -151,25 +151,96 @@
],
"time": "2021-04-07T13:37:33+00:00"
},
+ {
+ "name": "composer/pcre",
+ "version": "2.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/pcre.git",
+ "reference": "c8e9d27cfc5ed22643c19c160455b473ffd8aabe"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/c8e9d27cfc5ed22643c19c160455b473ffd8aabe",
+ "reference": "c8e9d27cfc5ed22643c19c160455b473ffd8aabe",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.3",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\Pcre\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "PCRE wrapping library that offers type-safe preg_* replacements.",
+ "keywords": [
+ "PCRE",
+ "preg",
+ "regex",
+ "regular expression"
+ ],
+ "support": {
+ "issues": "https://github.com/composer/pcre/issues",
+ "source": "https://github.com/composer/pcre/tree/2.0.0"
+ },
+ "funding": [
+ {
+ "url": "https://packagist.com",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/composer",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/composer/composer",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-25T20:05:29+00:00"
+ },
{
"name": "composer/semver",
- "version": "3.2.5",
+ "version": "3.3.2",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9"
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/31f3ea725711245195f62e54ffa402d8ef2fdba9",
- "reference": "31f3ea725711245195f62e54ffa402d8ef2fdba9",
+ "url": "https://api.github.com/repos/composer/semver/zipball/3953f23262f2bff1919fc82183ad9acb13ff62c9",
+ "reference": "3953f23262f2bff1919fc82183ad9acb13ff62c9",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.54",
+ "phpstan/phpstan": "^1.4",
"symfony/phpunit-bridge": "^4.2 || ^5"
},
"type": "library",
@@ -214,7 +285,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.2.5"
+ "source": "https://github.com/composer/semver/tree/3.3.2"
},
"funding": [
{
@@ -230,27 +301,28 @@
"type": "tidelift"
}
],
- "time": "2021-05-24T12:41:47+00:00"
+ "time": "2022-04-01T19:23:25+00:00"
},
{
"name": "composer/spdx-licenses",
- "version": "1.5.5",
+ "version": "1.5.6",
"source": {
"type": "git",
"url": "https://github.com/composer/spdx-licenses.git",
- "reference": "de30328a7af8680efdc03e396aad24befd513200"
+ "reference": "a30d487169d799745ca7280bc90fdfa693536901"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/de30328a7af8680efdc03e396aad24befd513200",
- "reference": "de30328a7af8680efdc03e396aad24befd513200",
+ "url": "https://api.github.com/repos/composer/spdx-licenses/zipball/a30d487169d799745ca7280bc90fdfa693536901",
+ "reference": "a30d487169d799745ca7280bc90fdfa693536901",
"shasum": ""
},
"require": {
"php": "^5.3.2 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 7"
+ "phpstan/phpstan": "^0.12.55",
+ "symfony/phpunit-bridge": "^4.2 || ^5"
},
"type": "library",
"extra": {
@@ -293,7 +365,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/spdx-licenses/issues",
- "source": "https://github.com/composer/spdx-licenses/tree/1.5.5"
+ "source": "https://github.com/composer/spdx-licenses/tree/1.5.6"
},
"funding": [
{
@@ -309,29 +381,31 @@
"type": "tidelift"
}
],
- "time": "2020-12-03T16:04:16+00:00"
+ "time": "2021-11-18T10:14:14+00:00"
},
{
"name": "composer/xdebug-handler",
- "version": "2.0.2",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/composer/xdebug-handler.git",
- "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339"
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/84674dd3a7575ba617f5a76d7e9e29a7d3891339",
- "reference": "84674dd3a7575ba617f5a76d7e9e29a7d3891339",
+ "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/ced299686f41dce890debac69273b47ffe98a40c",
+ "reference": "ced299686f41dce890debac69273b47ffe98a40c",
"shasum": ""
},
"require": {
- "php": "^5.3.2 || ^7.0 || ^8.0",
+ "composer/pcre": "^1 || ^2 || ^3",
+ "php": "^7.2.5 || ^8.0",
"psr/log": "^1 || ^2 || ^3"
},
"require-dev": {
- "phpstan/phpstan": "^0.12.55",
- "symfony/phpunit-bridge": "^4.2 || ^5"
+ "phpstan/phpstan": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.1",
+ "symfony/phpunit-bridge": "^6.0"
},
"type": "library",
"autoload": {
@@ -357,7 +431,7 @@
"support": {
"irc": "irc://irc.freenode.org/composer",
"issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/2.0.2"
+ "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
},
"funding": [
{
@@ -373,7 +447,7 @@
"type": "tidelift"
}
],
- "time": "2021-07-31T17:03:58+00:00"
+ "time": "2022-02-25T21:32:43+00:00"
},
{
"name": "justinrainbow/json-schema",
@@ -445,6 +519,54 @@
},
"time": "2021-07-22T09:24:00+00:00"
},
+ {
+ "name": "psr/container",
+ "version": "1.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "reference": "8622567409010282b7aeebe4bb841fe98b58dcaf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.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.1"
+ },
+ "time": "2021-03-05T17:36:06+00:00"
+ },
{
"name": "psr/log",
"version": "1.1.4",
@@ -497,34 +619,32 @@
},
{
"name": "react/promise",
- "version": "v1.2.1",
+ "version": "v2.9.0",
"source": {
"type": "git",
"url": "https://github.com/reactphp/promise.git",
- "reference": "eefff597e67ff66b719f8171480add3c91474a1e"
+ "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/reactphp/promise/zipball/eefff597e67ff66b719f8171480add3c91474a1e",
- "reference": "eefff597e67ff66b719f8171480add3c91474a1e",
+ "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910",
+ "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=5.4.0"
},
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
+ "require-dev": {
+ "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
},
+ "type": "library",
"autoload": {
- "psr-0": {
- "React\\Promise": "src/"
- },
"files": [
- "src/React/Promise/functions_include.php"
- ]
+ "src/functions_include.php"
+ ],
+ "psr-4": {
+ "React\\Promise\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -533,35 +653,66 @@
"authors": [
{
"name": "Jan Sorgalla",
- "email": "jsorgalla@gmail.com"
+ "email": "jsorgalla@gmail.com",
+ "homepage": "https://sorgalla.com/"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering",
+ "homepage": "https://clue.engineering/"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "reactphp@ceesjankiewiet.nl",
+ "homepage": "https://wyrihaximus.net/"
+ },
+ {
+ "name": "Chris Boden",
+ "email": "cboden@gmail.com",
+ "homepage": "https://cboden.dev/"
}
],
"description": "A lightweight implementation of CommonJS Promises/A for PHP",
+ "keywords": [
+ "promise",
+ "promises"
+ ],
"support": {
"issues": "https://github.com/reactphp/promise/issues",
- "source": "https://github.com/reactphp/promise/tree/1.0"
+ "source": "https://github.com/reactphp/promise/tree/v2.9.0"
},
- "time": "2016-03-07T13:46:50+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/WyriHaximus",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/clue",
+ "type": "github"
+ }
+ ],
+ "time": "2022-02-11T10:27:51+00:00"
},
{
"name": "seld/jsonlint",
- "version": "1.8.3",
+ "version": "1.9.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/jsonlint.git",
- "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57"
+ "reference": "4211420d25eba80712bff236a98960ef68b866b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
- "reference": "9ad6ce79c342fbd44df10ea95511a1b24dee5b57",
+ "url": "https://api.github.com/repos/Seldaek/jsonlint/zipball/4211420d25eba80712bff236a98960ef68b866b7",
+ "reference": "4211420d25eba80712bff236a98960ef68b866b7",
"shasum": ""
},
"require": {
"php": "^5.3 || ^7.0 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ "phpstan/phpstan": "^1.5",
+ "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0 || ^8.5.13"
},
"bin": [
"bin/jsonlint"
@@ -592,7 +743,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/jsonlint/issues",
- "source": "https://github.com/Seldaek/jsonlint/tree/1.8.3"
+ "source": "https://github.com/Seldaek/jsonlint/tree/1.9.0"
},
"funding": [
{
@@ -604,20 +755,20 @@
"type": "tidelift"
}
],
- "time": "2020-11-11T09:19:24+00:00"
+ "time": "2022-04-01T13:37:23+00:00"
},
{
"name": "seld/phar-utils",
- "version": "1.1.2",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/phar-utils.git",
- "reference": "749042a2315705d2dfbbc59234dd9ceb22bf3ff0"
+ "reference": "9f3452c93ff423469c0d56450431562ca423dcee"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/749042a2315705d2dfbbc59234dd9ceb22bf3ff0",
- "reference": "749042a2315705d2dfbbc59234dd9ceb22bf3ff0",
+ "url": "https://api.github.com/repos/Seldaek/phar-utils/zipball/9f3452c93ff423469c0d56450431562ca423dcee",
+ "reference": "9f3452c93ff423469c0d56450431562ca423dcee",
"shasum": ""
},
"require": {
@@ -650,45 +801,60 @@
],
"support": {
"issues": "https://github.com/Seldaek/phar-utils/issues",
- "source": "https://github.com/Seldaek/phar-utils/tree/1.1.2"
+ "source": "https://github.com/Seldaek/phar-utils/tree/1.2.0"
},
- "time": "2021-08-19T21:01:38+00:00"
+ "time": "2021-12-10T11:20:11+00:00"
},
{
"name": "symfony/console",
- "version": "v2.8.52",
+ "version": "v5.4.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12"
+ "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12",
- "reference": "cbcf4b5e233af15cd2bbd50dee1ccc9b7927dc12",
+ "url": "https://api.github.com/repos/symfony/console/zipball/d8111acc99876953f52fe16d4c50eb60940d49ad",
+ "reference": "d8111acc99876953f52fe16d4c50eb60940d49ad",
"shasum": ""
},
"require": {
- "php": ">=5.3.9",
- "symfony/debug": "^2.7.2|~3.0.0",
- "symfony/polyfill-mbstring": "~1.0"
+ "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.0",
- "symfony/event-dispatcher": "~2.1|~3.0.0",
- "symfony/process": "~2.1|~3.0.0"
+ "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-implementation": "For using the console logger",
+ "psr/log": "For using the console logger",
"symfony/event-dispatcher": "",
+ "symfony/lock": "",
"symfony/process": ""
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
"autoload": {
"psr-4": {
"Symfony\\Component\\Console\\": ""
@@ -711,50 +877,63 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Console Component",
+ "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/v2.8.52"
+ "source": "https://github.com/symfony/console/tree/v5.4.5"
},
- "time": "2018-11-20T15:55:20+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-02-24T12:45:35+00:00"
},
{
- "name": "symfony/debug",
- "version": "v2.8.52",
+ "name": "symfony/deprecation-contracts",
+ "version": "v2.5.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/debug.git",
- "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0"
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/debug/zipball/74251c8d50dd3be7c4ce0c7b862497cdc641a5d0",
- "reference": "74251c8d50dd3be7c4ce0c7b862497cdc641a5d0",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8",
+ "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8",
"shasum": ""
},
"require": {
- "php": ">=5.3.9",
- "psr/log": "~1.0"
- },
- "conflict": {
- "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
- },
- "require-dev": {
- "symfony/class-loader": "~2.2|~3.0.0",
- "symfony/http-kernel": "~2.3.24|~2.5.9|^2.6.2|~3.0.0"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.8-dev"
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Component\\Debug\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
+ "files": [
+ "function.php"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -763,45 +942,56 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Debug Component",
+ "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/debug/tree/v2.8.50"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0"
},
- "time": "2018-11-11T11:18:13+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-07-12T14:48:14+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v2.8.52",
+ "version": "v5.4.6",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080"
+ "reference": "d53a45039974952af7f7ebc461ccdd4295e29440"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/7ae46872dad09dffb7fe1e93a0937097339d0080",
- "reference": "7ae46872dad09dffb7fe1e93a0937097339d0080",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/d53a45039974952af7f7ebc461ccdd4295e29440",
+ "reference": "d53a45039974952af7f7ebc461ccdd4295e29440",
"shasum": ""
},
"require": {
- "php": ">=5.3.9",
- "symfony/polyfill-ctype": "~1.8"
+ "php": ">=7.2.5",
+ "symfony/polyfill-ctype": "~1.8",
+ "symfony/polyfill-mbstring": "~1.8",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
"autoload": {
"psr-4": {
"Symfony\\Component\\Filesystem\\": ""
@@ -824,36 +1014,47 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Filesystem Component",
+ "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v2.8.52"
+ "source": "https://github.com/symfony/filesystem/tree/v5.4.6"
},
- "time": "2018-11-11T11:18:13+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-02T12:42:23+00:00"
},
{
"name": "symfony/finder",
- "version": "v2.8.52",
+ "version": "v5.4.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "1444eac52273e345d9b95129bf914639305a9ba4"
+ "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/1444eac52273e345d9b95129bf914639305a9ba4",
- "reference": "1444eac52273e345d9b95129bf914639305a9ba4",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d",
+ "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d",
"shasum": ""
},
"require": {
- "php": ">=5.3.9"
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.8-dev"
- }
- },
"autoload": {
"psr-4": {
"Symfony\\Component\\Finder\\": ""
@@ -876,29 +1077,46 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Finder Component",
+ "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v2.8.50"
+ "source": "https://github.com/symfony/finder/tree/v5.4.3"
},
- "time": "2018-11-11T11:18:13+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-26T16:34:36+00:00"
},
{
"name": "symfony/polyfill-ctype",
- "version": "v1.19.0",
+ "version": "v1.25.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git",
- "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b"
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/aed596913b70fae57be53d86faa2e9ef85a2297b",
- "reference": "aed596913b70fae57be53d86faa2e9ef85a2297b",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab",
+ "reference": "30885182c981ab175d4d034db0f6f469898070ab",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
},
"suggest": {
"ext-ctype": "For best performance"
@@ -906,7 +1124,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.19-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -914,12 +1132,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -944,7 +1162,7 @@
"portable"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.19.0"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.25.0"
},
"funding": [
{
@@ -960,32 +1178,32 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T09:01:57+00:00"
+ "time": "2021-10-20T20:35:02+00:00"
},
{
- "name": "symfony/polyfill-mbstring",
- "version": "v1.19.0",
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.25.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce"
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "81b86b50cf841a64252b439e738e97f4a34e2783"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/b5f7b932ee6fa802fc792eabd77c4c88084517ce",
- "reference": "b5f7b932ee6fa802fc792eabd77c4c88084517ce",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783",
+ "reference": "81b86b50cf841a64252b439e738e97f4a34e2783",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1"
},
"suggest": {
- "ext-mbstring": "For best performance"
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.19-dev"
+ "dev-main": "1.23-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -993,12 +1211,12 @@
}
},
"autoload": {
- "psr-4": {
- "Symfony\\Polyfill\\Mbstring\\": ""
- },
"files": [
"bootstrap.php"
- ]
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1014,17 +1232,18 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for the Mbstring extension",
+ "description": "Symfony polyfill for intl's grapheme_* functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "mbstring",
+ "grapheme",
+ "intl",
"polyfill",
"portable",
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.19.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.25.0"
},
"funding": [
{
@@ -1040,37 +1259,47 @@
"type": "tidelift"
}
],
- "time": "2020-10-23T09:01:57+00:00"
+ "time": "2021-11-23T21:10:46+00:00"
},
{
- "name": "symfony/process",
- "version": "v2.8.52",
+ "name": "symfony/polyfill-intl-normalizer",
+ "version": "v1.25.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/process.git",
- "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8"
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/c3591a09c78639822b0b290d44edb69bf9f05dc8",
- "reference": "c3591a09c78639822b0b290d44edb69bf9f05dc8",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8",
+ "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8",
"shasum": ""
},
"require": {
- "php": ">=5.3.9"
+ "php": ">=7.1"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.8-dev"
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Symfony\\Component\\Process\\": ""
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
},
- "exclude-from-classmap": [
- "/Tests/"
+ "classmap": [
+ "Resources/stubs"
]
},
"notification-url": "https://packagist.org/downloads/",
@@ -1079,56 +1308,82 @@
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony Process Component",
+ "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/process/tree/v2.8.50"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.25.0"
},
- "time": "2018-11-11T11:18:13+00:00"
- }
- ],
- "packages-dev": [
- {
- "name": "doctrine/instantiator",
- "version": "1.0.5",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/instantiator.git",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+ "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/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
- "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825",
+ "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825",
"shasum": ""
},
"require": {
- "php": ">=5.3,<8.0-DEV"
+ "php": ">=7.1"
},
- "require-dev": {
- "athletic/athletic": "~0.1.8",
- "ext-pdo": "*",
- "ext-phar": "*",
- "phpunit/phpunit": "~4.0",
- "squizlabs/php_codesniffer": "~2.0"
+ "provide": {
+ "ext-mbstring": "*"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.0.x-dev"
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ "Symfony\\Polyfill\\Mbstring\\": ""
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1137,59 +1392,79 @@
],
"authors": [
{
- "name": "Marco Pivetta",
- "email": "ocramius@gmail.com",
- "homepage": "http://ocramius.github.com/"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
- "homepage": "https://github.com/doctrine/instantiator",
+ "description": "Symfony polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
"keywords": [
- "constructor",
- "instantiate"
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/doctrine/instantiator/issues",
- "source": "https://github.com/doctrine/instantiator/tree/master"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.25.0"
},
- "time": "2015-06-14T21:17:01+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-11-30T18:21:41+00:00"
},
{
- "name": "phpdocumentor/reflection-docblock",
- "version": "2.0.5",
+ "name": "symfony/polyfill-php73",
+ "version": "v1.25.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b"
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
- "reference": "e6a969a640b00d8daa3c66518b0405fb41ae0c4b",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5",
+ "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.0"
- },
- "suggest": {
- "dflydev/markdown": "~1.0",
- "erusev/parsedown": "~1.0"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
- "psr-0": {
- "phpDocumentor": [
- "src/"
- ]
- }
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php73\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1197,51 +1472,78 @@
],
"authors": [
{
- "name": "Mike van Riel",
- "email": "mike.vanriel@naenius.com"
+ "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": {
- "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues",
- "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/release/2.x"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.25.0"
},
- "time": "2016-01-25T08:17:30+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-06-05T21:20:04+00:00"
},
{
- "name": "phpspec/prophecy",
- "version": "v1.10.3",
+ "name": "symfony/polyfill-php80",
+ "version": "v1.25.0",
"source": {
"type": "git",
- "url": "https://github.com/phpspec/prophecy.git",
- "reference": "451c3cd1418cf640de218914901e51b064abb093"
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpspec/prophecy/zipball/451c3cd1418cf640de218914901e51b064abb093",
- "reference": "451c3cd1418cf640de218914901e51b064abb093",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/4407588e0d3f1f52efb65fbe92babe41f37fe50c",
+ "reference": "4407588e0d3f1f52efb65fbe92babe41f37fe50c",
"shasum": ""
},
"require": {
- "doctrine/instantiator": "^1.0.2",
- "php": "^5.3|^7.0",
- "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0",
- "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0",
- "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0"
- },
- "require-dev": {
- "phpspec/phpspec": "^2.5 || ^3.2",
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.10.x-dev"
+ "dev-main": "1.23-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
}
},
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Prophecy\\": "src/Prophecy"
- }
+ "Symfony\\Polyfill\\Php80\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -1249,314 +1551,596 @@
],
"authors": [
{
- "name": "Konstantin Kudryashov",
- "email": "ever.zet@gmail.com",
- "homepage": "http://everzet.com"
+ "name": "Ion Bazan",
+ "email": "ion.bazan@gmail.com"
+ },
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Marcello Duarte",
- "email": "marcello.duarte@gmail.com"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Highly opinionated mocking framework for PHP 5.3+",
- "homepage": "https://github.com/phpspec/prophecy",
+ "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
"keywords": [
- "Double",
- "Dummy",
- "fake",
- "mock",
- "spy",
- "stub"
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "issues": "https://github.com/phpspec/prophecy/issues",
- "source": "https://github.com/phpspec/prophecy/tree/v1.10.3"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.25.0"
},
- "time": "2020-03-05T15:02:03+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-03-04T08:16:47+00:00"
},
{
- "name": "sebastian/comparator",
- "version": "1.2.4",
+ "name": "symfony/process",
+ "version": "v5.4.5",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
+ "url": "https://github.com/symfony/process.git",
+ "reference": "95440409896f90a5f85db07a32b517ecec17fa4c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
- "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
+ "url": "https://api.github.com/repos/symfony/process/zipball/95440409896f90a5f85db07a32b517ecec17fa4c",
+ "reference": "95440409896f90a5f85db07a32b517ecec17fa4c",
"shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/diff": "~1.2",
- "sebastian/exporter": "~1.2 || ~2.0"
- },
- "require-dev": {
- "phpunit/phpunit": "~4.4"
+ "php": ">=7.2.5",
+ "symfony/polyfill-php80": "^1.16"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.2.x-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "psr-4": {
+ "Symfony\\Component\\Process\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
},
{
- "name": "Volker Dusch",
- "email": "github@wallbash.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"
},
{
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
+ "url": "https://github.com/fabpot",
+ "type": "github"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Provides the functionality to compare PHP values for equality",
- "homepage": "http://www.github.com/sebastianbergmann/comparator",
- "keywords": [
- "comparator",
- "compare",
- "equality"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/comparator/issues",
- "source": "https://github.com/sebastianbergmann/comparator/tree/1.2"
- },
- "time": "2017-01-29T09:50:25+00:00"
+ "time": "2022-01-30T18:16:22+00:00"
},
{
- "name": "sebastian/diff",
- "version": "1.4.3",
+ "name": "symfony/service-contracts",
+ "version": "v2.5.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
- "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
+ "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
+ "php": ">=7.2.5",
+ "psr/container": "^1.1",
+ "symfony/deprecation-contracts": "^2.1"
},
- "require-dev": {
- "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
+ "conflict": {
+ "ext-psr": "<1.1|>=2"
+ },
+ "suggest": {
+ "symfony/service-implementation": ""
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.4-dev"
+ "dev-main": "2.5-dev"
+ },
+ "thanks": {
+ "name": "symfony/contracts",
+ "url": "https://github.com/symfony/contracts"
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "Symfony\\Contracts\\Service\\": ""
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Kore Nordmann",
- "email": "mail@kore-nordmann.de"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "Diff implementation",
- "homepage": "https://github.com/sebastianbergmann/diff",
+ "description": "Generic abstractions related to writing services",
+ "homepage": "https://symfony.com",
"keywords": [
- "diff"
+ "abstractions",
+ "contracts",
+ "decoupling",
+ "interfaces",
+ "interoperability",
+ "standards"
],
"support": {
- "issues": "https://github.com/sebastianbergmann/diff/issues",
- "source": "https://github.com/sebastianbergmann/diff/tree/1.4"
+ "source": "https://github.com/symfony/service-contracts/tree/v2.5.0"
},
- "time": "2017-05-22T07:24:03+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2021-11-04T16:48:04+00:00"
},
{
- "name": "sebastian/exporter",
- "version": "2.0.0",
+ "name": "symfony/string",
+ "version": "v5.4.3",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
+ "url": "https://github.com/symfony/string.git",
+ "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
- "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
+ "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10",
+ "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10",
"shasum": ""
},
"require": {
- "php": ">=5.3.3",
- "sebastian/recursion-context": "~2.0"
+ "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": {
- "ext-mbstring": "*",
- "phpunit/phpunit": "~4.4"
+ "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",
- "extra": {
- "branch-alias": {
- "dev-master": "2.0.x-dev"
- }
- },
"autoload": {
- "classmap": [
- "src/"
+ "files": [
+ "Resources/functions.php"
+ ],
+ "psr-4": {
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
"authors": [
{
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
- "name": "Volker Dusch",
- "email": "github@wallbash.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": [
{
- "name": "Bernhard Schussek",
- "email": "bschussek@2bepublished.at"
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
},
{
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "url": "https://github.com/fabpot",
+ "type": "github"
},
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
}
],
- "description": "Provides the functionality to export PHP variables for visualization",
- "homepage": "http://www.github.com/sebastianbergmann/exporter",
- "keywords": [
- "export",
- "exporter"
+ "time": "2022-01-02T09:53:40+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "phpstan/phpstan",
+ "version": "1.5.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan.git",
+ "reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
+ "reference": "bbf68cae24f6dc023c607ea0f87da55dd9d55c2b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2|^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan-shim": "*"
+ },
+ "bin": [
+ "phpstan",
+ "phpstan.phar"
],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPStan - PHP Static Analysis Tool",
"support": {
- "issues": "https://github.com/sebastianbergmann/exporter/issues",
- "source": "https://github.com/sebastianbergmann/exporter/tree/master"
+ "issues": "https://github.com/phpstan/phpstan/issues",
+ "source": "https://github.com/phpstan/phpstan/tree/1.5.4"
},
- "time": "2016-11-19T08:54:04+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/ondrejmirtes",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/phpstan",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpstan",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-04-03T12:39:00+00:00"
},
{
- "name": "sebastian/recursion-context",
- "version": "2.0.0",
+ "name": "phpstan/phpstan-deprecation-rules",
+ "version": "1.0.0",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/recursion-context.git",
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
+ "url": "https://github.com/phpstan/phpstan-deprecation-rules.git",
+ "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
- "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
+ "url": "https://api.github.com/repos/phpstan/phpstan-deprecation-rules/zipball/e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682",
+ "reference": "e5ccafb0dd8d835dd65d8d7a1a0d2b1b75414682",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": "^7.1 || ^8.0",
+ "phpstan/phpstan": "^1.0"
},
"require-dev": {
- "phpunit/phpunit": "~4.4"
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^9.5"
},
- "type": "library",
+ "type": "phpstan-extension",
"extra": {
"branch-alias": {
- "dev-master": "2.0.x-dev"
+ "dev-master": "1.0-dev"
+ },
+ "phpstan": {
+ "includes": [
+ "rules.neon"
+ ]
}
},
"autoload": {
- "classmap": [
- "src/"
- ]
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
- "authors": [
- {
- "name": "Jeff Welch",
- "email": "whatthejeff@gmail.com"
+ "description": "PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-deprecation-rules/issues",
+ "source": "https://github.com/phpstan/phpstan-deprecation-rules/tree/1.0.0"
+ },
+ "time": "2021-09-23T11:02:21+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-phpunit",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-phpunit.git",
+ "reference": "09133ce914f1388a8bb8c7f8573aaa3723cff52a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-phpunit/zipball/09133ce914f1388a8bb8c7f8573aaa3723cff52a",
+ "reference": "09133ce914f1388a8bb8c7f8573aaa3723cff52a",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.2 || ^8.0",
+ "phpstan/phpstan": "^1.5.0"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<7.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "phpstan": {
+ "includes": [
+ "extension.neon",
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "PHPUnit extensions and rules for PHPStan",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
+ "source": "https://github.com/phpstan/phpstan-phpunit/tree/1.1.0"
+ },
+ "time": "2022-03-28T09:20:49+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-strict-rules",
+ "version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-strict-rules.git",
+ "reference": "e12d55f74a8cca18c6e684c6450767e055ba7717"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-strict-rules/zipball/e12d55f74a8cca18c6e684c6450767e055ba7717",
+ "reference": "e12d55f74a8cca18c6e684c6450767e055ba7717",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.1 || ^8.0",
+ "phpstan/phpstan": "^1.2.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpunit/phpunit": "^9.5"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
},
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de"
+ "phpstan": {
+ "includes": [
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "Extra strict and opinionated rules for PHPStan",
+ "support": {
+ "issues": "https://github.com/phpstan/phpstan-strict-rules/issues",
+ "source": "https://github.com/phpstan/phpstan-strict-rules/tree/1.1.0"
+ },
+ "time": "2021-11-18T09:30:29+00:00"
+ },
+ {
+ "name": "phpstan/phpstan-symfony",
+ "version": "1.1.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpstan/phpstan-symfony.git",
+ "reference": "4bdffcf1033b6c60662a28419d0192e0dda5684f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpstan/phpstan-symfony/zipball/4bdffcf1033b6c60662a28419d0192e0dda5684f",
+ "reference": "4bdffcf1033b6c60662a28419d0192e0dda5684f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-simplexml": "*",
+ "php": "^7.1 || ^8.0",
+ "phpstan/phpstan": "^1.4"
+ },
+ "conflict": {
+ "symfony/framework-bundle": "<3.0"
+ },
+ "require-dev": {
+ "nikic/php-parser": "^4.13.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/phpstan-phpunit": "^1.0",
+ "phpstan/phpstan-strict-rules": "^1.0",
+ "phpunit/phpunit": "^9.5",
+ "psr/container": "1.0 || 1.1.1",
+ "symfony/config": "^4.2 || ^5.0",
+ "symfony/console": "^4.0 || ^5.0",
+ "symfony/dependency-injection": "^4.0 || ^5.0",
+ "symfony/form": "^4.0 || ^5.0",
+ "symfony/framework-bundle": "^4.4 || ^5.0",
+ "symfony/http-foundation": "^5.1",
+ "symfony/messenger": "^4.2 || ^5.0",
+ "symfony/polyfill-php80": "^1.24",
+ "symfony/serializer": "^4.0 || ^5.0"
+ },
+ "type": "phpstan-extension",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
},
+ "phpstan": {
+ "includes": [
+ "extension.neon",
+ "rules.neon"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "PHPStan\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
{
- "name": "Adam Harvey",
- "email": "aharvey@php.net"
+ "name": "Lukáš Unger",
+ "email": "looky.msc@gmail.com",
+ "homepage": "https://lookyman.net"
}
],
- "description": "Provides functionality to recursively process PHP variables",
- "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "description": "Symfony Framework extensions and rules for PHPStan",
"support": {
- "issues": "https://github.com/sebastianbergmann/recursion-context/issues",
- "source": "https://github.com/sebastianbergmann/recursion-context/tree/master"
+ "issues": "https://github.com/phpstan/phpstan-symfony/issues",
+ "source": "https://github.com/phpstan/phpstan-symfony/tree/1.1.8"
},
- "time": "2016-11-19T07:33:16+00:00"
+ "time": "2022-03-24T07:56:03+00:00"
},
{
"name": "symfony/phpunit-bridge",
- "version": "v4.2.12",
+ "version": "v6.0.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/phpunit-bridge.git",
- "reference": "80f9ffa6afcc27c7b00e8b8446b1d5d48d94bae7"
+ "reference": "81f5e8e453433e0182a49ca45d4734cb3a2f818f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/80f9ffa6afcc27c7b00e8b8446b1d5d48d94bae7",
- "reference": "80f9ffa6afcc27c7b00e8b8446b1d5d48d94bae7",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/81f5e8e453433e0182a49ca45d4734cb3a2f818f",
+ "reference": "81f5e8e453433e0182a49ca45d4734cb3a2f818f",
"shasum": ""
},
"require": {
- "php": ">=5.3.3"
+ "php": ">=7.1.3"
},
"conflict": {
- "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+ "phpunit/phpunit": "<7.5|9.1.2"
+ },
+ "require-dev": {
+ "symfony/deprecation-contracts": "^2.1|^3.0",
+ "symfony/error-handler": "^5.4|^6.0"
},
"suggest": {
- "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
+ "symfony/error-handler": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
},
"bin": [
"bin/simple-phpunit"
],
"type": "symfony-bridge",
"extra": {
- "branch-alias": {
- "dev-master": "4.2-dev"
- },
"thanks": {
"name": "phpunit/phpunit",
"url": "https://github.com/sebastianbergmann/phpunit"
@@ -1587,12 +2171,26 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony PHPUnit Bridge",
+ "description": "Provides utilities for PHPUnit, especially user deprecation notices management",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/phpunit-bridge/tree/4.2"
+ "source": "https://github.com/symfony/phpunit-bridge/tree/v6.0.3"
},
- "time": "2019-07-05T06:33:37+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2022-01-26T17:23:29+00:00"
}
],
"aliases": [],
@@ -1601,11 +2199,11 @@
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
- "php": "^5.3.2 || ^7.0 || ^8.0"
+ "php": "^7.2.5 || ^8.0"
},
"platform-dev": [],
"platform-overrides": {
- "php": "5.3.9"
+ "php": "7.2.5"
},
- "plugin-api-version": "2.1.0"
+ "plugin-api-version": "2.3.0"
}
diff --git a/app/vendor/composer/composer/doc/00-intro.md b/app/vendor/composer/composer/doc/00-intro.md
index 8afd60090..96df2e21f 100644
--- a/app/vendor/composer/composer/doc/00-intro.md
+++ b/app/vendor/composer/composer/doc/00-intro.md
@@ -33,9 +33,11 @@ dependencies.
## System Requirements
-Composer requires PHP 5.3.2+ to run. A few sensitive php settings and compile
-flags are also required, but when using the installer you will be warned about
-any incompatibilities.
+Composer in its latest version requires PHP 7.2.5 to run. A long-term-support
+version (2.2.x) still offers support for PHP 5.3.2+ in case you are stuck with
+a legacy PHP version. A few sensitive php settings and compile flags are also
+required, but when using the installer you will be warned about any
+incompatibilities.
To install packages from sources instead of plain zip archives, you will need
git, svn, fossil or hg depending on how the package is version-controlled.
@@ -49,11 +51,11 @@ Linux and macOS.
Composer offers a convenient installer that you can execute directly from the
command line. Feel free to [download this file](https://getcomposer.org/installer)
-or review it on [GitHub](https://github.com/composer/getcomposer.org/blob/master/web/installer)
+or review it on [GitHub](https://github.com/composer/getcomposer.org/blob/main/web/installer)
if you wish to know more about the inner workings of the installer. The source
is plain PHP.
-There are in short, two ways to install Composer. Locally as part of your
+There are, in short, two ways to install Composer. Locally as part of your
project, or globally as a system wide executable.
#### Locally
@@ -99,7 +101,7 @@ you can use `~/.local/bin` instead which is available by default on some
Linux distributions.
> **Note:** If the above fails due to permissions, you may need to run it again
-> with sudo.
+> with `sudo`.
> **Note:** On some versions of macOS the `/usr` directory does not exist by
> default. If you receive the error "/usr/local/bin/composer: No such file or
diff --git a/app/vendor/composer/composer/doc/01-basic-usage.md b/app/vendor/composer/composer/doc/01-basic-usage.md
index 4ccc50965..671e46dd6 100644
--- a/app/vendor/composer/composer/doc/01-basic-usage.md
+++ b/app/vendor/composer/composer/doc/01-basic-usage.md
@@ -41,8 +41,8 @@ Composer uses this information to search for the right set of files in package
key, or in [Packagist.org](https://packagist.org), the default package repository.
In the above example, since no other repository has been registered in the
`composer.json` file, it is assumed that the `monolog/monolog` package is registered
-on Packagist.org. (See more about Packagist [below](#packagist), or read more
-about repositories [here](05-repositories.md)).
+on Packagist.org. (Read more [about Packagist](#packagist), and
+[about repositories](05-repositories.md)).
### Package names
@@ -51,7 +51,7 @@ will be identical - the vendor name only exists to prevent naming clashes. For
example, it would allow two different people to create a library named `json`.
One might be named `igorw/json` while the other might be `seldaek/json`.
-Read more about publishing packages and package naming [here](02-libraries.md).
+Read more about [publishing packages and package naming](02-libraries.md).
(Note that you can also specify "platform packages" as dependencies, allowing
you to require certain versions of server software. See
[platform packages](#platform-packages) below.)
@@ -243,7 +243,7 @@ Composer will register a [PSR-4](https://www.php-fig.org/psr/psr-4/) autoloader
for the `Acme` namespace.
You define a mapping from namespaces to directories. The `src` directory would
-be in your project root, on the same level as `vendor` directory is. An example
+be in your project root, on the same level as the `vendor` directory. An example
filename would be `src/Foo.php` containing an `Acme\Foo` class.
After adding the [`autoload`](04-schema.md#autoload) field, you have to re-run
diff --git a/app/vendor/composer/composer/doc/03-cli.md b/app/vendor/composer/composer/doc/03-cli.md
index c35eabb61..b76891b6f 100644
--- a/app/vendor/composer/composer/doc/03-cli.md
+++ b/app/vendor/composer/composer/doc/03-cli.md
@@ -9,7 +9,7 @@ can give you more information.
As Composer uses [symfony/console](https://github.com/symfony/console) you can call commands by short name if it's not ambiguous.
```sh
-composer dump
+php composer.phar dump
```
calls `composer dump-autoload`.
@@ -22,6 +22,7 @@ The following options are available with every command:
* **--quiet (-q):** Do not output any message.
* **--no-interaction (-n):** Do not ask any interactive question.
* **--no-plugins:** Disables plugins.
+* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--no-cache:** Disables the use of the cache directory. Same as setting the COMPOSER_CACHE_DIR
env var to /dev/null (or NUL on Windows).
* **--working-dir (-d):** If specified, use the given directory as working directory.
@@ -100,7 +101,6 @@ resolution.
* **--no-dev:** Skip installing packages listed in `require-dev`. The autoloader
generation skips the `autoload-dev` rules.
* **--no-autoloader:** Skips autoloader generation.
-* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--no-progress:** Removes the progress display that can mess with some
terminals or scripts which don't handle backspace characters.
* **--optimize-autoloader (-o):** Convert PSR-0/4 autoloading to classmap to get a faster
@@ -117,7 +117,10 @@ resolution.
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
`hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
- does not fulfill it.
+ does not fulfill it. Multiple requirements can be ignored via wildcard. Appending
+ a `+` makes it only ignore the upper-bound of the requirements. For example, if a package
+ requires `php: ^7`, then the option `--ignore-platform-req=php+` would allow installing on PHP 8,
+ but installation on PHP 5.6 would still fail.
## update / u
@@ -153,17 +156,17 @@ composer.json you can use `--with` and provide a custom version constraint:
php composer.phar update --with vendor/package:2.0.1
```
-The custom constraint has to be a subset of the existing constraint you have,
-and this feature is only available for your root package dependencies.
-
-If you only want to update the package(s) for which you provide custom constraints
-using `--with`, you can skip `--with` and just use constraints with the partial
-update syntax:
+Note that with the above all packages will be updated. If you only want to
+update the package(s) for which you provide custom constraints using `--with`,
+you can skip `--with` and instead use constraints with the partial update syntax:
```sh
php composer.phar update vendor/package:2.0.1 vendor/package2:3.0.*
```
+The custom constraint has to be a subset of the existing constraint you have,
+and this feature is only available for your root package dependencies.
+
### Options
@@ -183,7 +186,6 @@ php composer.phar update vendor/package:2.0.1 vendor/package2:3.0.*
lock file being out of date.
* **--with:** Temporary version constraint to add, e.g. foo/bar:1.0.0 or foo/bar=1.0.0
* **--no-autoloader:** Skips autoloader generation.
-* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--no-progress:** Removes the progress display that can mess with some
terminals or scripts which don't handle backspace characters.
* **--with-dependencies (-w):** Update also dependencies of packages in the argument list, except those which are root requirements.
@@ -202,7 +204,10 @@ php composer.phar update vendor/package:2.0.1 vendor/package2:3.0.*
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
`hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
- does not fulfill it.
+ does not fulfill it. Multiple requirements can be ignored via wildcard. Appending
+ a `+` makes it only ignore the upper-bound of the requirements. For example, if a package
+ requires `php: ^7`, then the option `--ignore-platform-req=php+` would allow installing on PHP 8,
+ but installation on PHP 5.6 would still fail.
* **--prefer-stable:** Prefer stable versions of dependencies.
* **--prefer-lowest:** Prefer lowest versions of dependencies. Useful for testing minimal
versions of requirements, generally used with `--prefer-stable`.
@@ -230,7 +235,7 @@ to the command.
php composer.phar require "vendor/package:2.*" vendor/package2:dev-master
```
-If you do not specify a package, composer will prompt you to search for a package, and given results, provide a list of matches to require.
+If you do not specify a package, Composer will prompt you to search for a package, and given results, provide a list of matches to require.
### Options
@@ -248,7 +253,6 @@ If you do not specify a package, composer will prompt you to search for a packag
terminals or scripts which don't handle backspace characters.
* **--no-update:** Disables the automatic update of the dependencies (implies --no-install).
* **--no-install:** Does not run the install step after updating the composer.lock file.
-* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--update-no-dev:** Run the dependency update with the `--no-dev` option.
* **--update-with-dependencies (-w):** Also update dependencies of the newly required packages, except those that are root requirements.
* **--update-with-all-dependencies (-W):** Also update dependencies of the newly required packages, including those that are root requirements.
@@ -258,7 +262,7 @@ If you do not specify a package, composer will prompt you to search for a packag
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
`hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
- does not fulfill it.
+ does not fulfill it. Multiple requirements can be ignored via wildcard.
* **--prefer-stable:** Prefer stable versions of dependencies.
* **--prefer-lowest:** Prefer lowest versions of dependencies. Useful for testing minimal
versions of requirements, generally used with `--prefer-stable`.
@@ -291,7 +295,6 @@ uninstalled.
terminals or scripts which don't handle backspace characters.
* **--no-update:** Disables the automatic update of the dependencies (implies --no-install).
* **--no-install:** Does not run the install step after updating the composer.lock file.
-* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--update-no-dev:** Run the dependency update with the --no-dev option.
* **--update-with-dependencies (-w):** Also update dependencies of the removed packages.
(Deprecated, is now default behavior)
@@ -303,7 +306,7 @@ uninstalled.
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
`hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
- does not fulfill it.
+ does not fulfill it. Multiple requirements can be ignored via wildcard.
* **--optimize-autoloader (-o):** Convert PSR-0/4 autoloading to classmap to
get a faster autoloader. This is recommended especially for production, but
can take a bit of time to run so it is currently not done by default.
@@ -342,7 +345,6 @@ php composer.phar reinstall "acme/*"
versions of packages, use `--prefer-install=auto`. See also [config.preferred-install](06-config.md#preferred-install).
Passing this flag will override the config value.
* **--no-autoloader:** Skips autoloader generation.
-* **--no-scripts:** Skips execution of scripts defined in `composer.json`.
* **--no-progress:** Removes the progress display that can mess with some
terminals or scripts which don't handle backspace characters.
* **--optimize-autoloader (-o):** Convert PSR-0/4 autoloading to classmap to get a faster
@@ -358,7 +360,7 @@ php composer.phar reinstall "acme/*"
reinstall command.
* **--ignore-platform-req:** ignore a specific platform requirement. This only
has an effect in the context of the autoloader generation for the
- reinstall command.
+ reinstall command. Multiple requirements can be ignored via wildcard.
## check-platform-reqs
@@ -414,7 +416,9 @@ You can also search for more than one term by passing multiple arguments.
### Options
-* **--only-name (-N):** Search only in name.
+* **--only-name (-N):** Search only in package names.
+* **--only-vendor (-O):** Search only for vendor / organization names, returns only "vendor"
+ as a result.
* **--type (-t):** Search for a specific package type.
* **--format (-f):** Lets you pick between text (default) or json output format.
Note that in the json, only the name and description keys are guaranteed to be
@@ -485,6 +489,13 @@ php composer.phar show monolog/monolog 1.0.2
* **--direct (-D):** Restricts the list of packages to your direct dependencies.
* **--strict:** Return a non-zero exit code when there are outdated packages.
* **--format (-f):** Lets you pick between text (default) or json output format.
+* **--ignore-platform-reqs:** ignore all platform requirements (`php`, `hhvm`,
+ `lib-*` and `ext-*`) and force the installation even if the local machine does
+ not fulfill these. Use with the --outdated option.
+* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
+ `hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
+ does not fulfill it. Multiple requirements can be ignored via wildcard. Use with
+ the --outdated option.
## outdated
@@ -508,6 +519,12 @@ The color coding is as such:
* **--format (-f):** Lets you pick between text (default) or json output format.
* **--no-dev:** Do not show outdated dev dependencies.
* **--locked:** Shows updates for packages from the lock file, regardless of what is currently in vendor dir.
+* **--ignore-platform-reqs:** ignore all platform requirements (`php`, `hhvm`,
+ `lib-*` and `ext-*`) and force the installation even if the local machine does
+ not fulfill these.
+* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
+ `hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
+ does not fulfill it. Multiple requirements can be ignored via wildcard.
## browse / home
@@ -521,7 +538,7 @@ in your browser.
## suggests
-Lists all packages suggested by currently installed set of packages. You can
+Lists all packages suggested by the currently installed set of packages. You can
optionally pass one or multiple package names in the format of `vendor/package`
to limit output to suggestions made by those packages only.
@@ -694,7 +711,7 @@ If Composer was not installed as a PHAR, this command is not available.
## config
-The `config` command allows you to edit composer config settings and repositories
+The `config` command allows you to edit Composer config settings and repositories
in either the local `composer.json` file or the global `config.json` file.
Additionally it lets you edit most properties in the local `composer.json`.
@@ -709,7 +726,7 @@ php composer.phar config --list
`setting-key` is a configuration option name and `setting-value1` is a
configuration value. For settings that can take an array of values (like
-`github-protocols`), more than one setting-value arguments are allowed.
+`github-protocols`), multiple setting-value arguments are allowed.
You can also edit the values of the following properties:
@@ -736,6 +753,8 @@ See the [Config](06-config.md) chapter for valid configuration options.
instead of relative.
* **--json:** JSON decode the setting value, to be used with `extra.*` keys.
* **--merge:** Merge the setting value with the current value, to be used with `extra.*` keys in combination with `--json`.
+* **--append:** When adding a repository, append it (lowest priority) to the existing ones instead of prepending it (highest priority).
+* **--source:** Display where the config value is loaded from.
### Modifying Repositories
@@ -786,7 +805,7 @@ There are several applications for this:
To create a new project using Composer you can use the `create-project` command.
Pass it a package name, and the directory to create the project in. You can also
-provide a version as third argument, otherwise the latest version is used.
+provide a version as a third argument, otherwise the latest version is used.
If the directory does not currently exist, it will be created during installation.
@@ -816,7 +835,7 @@ By default the command checks for the packages on packagist.org.
JSON string which similar to what the [repositories](04-schema.md#repositories)
key accepts. You can use this multiple times to configure multiple repositories.
* **--add-repository:** Add the custom repository in the composer.json. If a lock
- file is present it will be deleted and an update will be run instead of install.
+ file is present, it will be deleted and an update will be run instead of an install.
* **--dev:** Install packages listed in `require-dev`.
* **--no-dev:** Disables installation of require-dev packages.
* **--no-scripts:** Disables the execution of the scripts defined in the root
@@ -837,8 +856,8 @@ By default the command checks for the packages on packagist.org.
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement(`php`,
`hhvm`, `lib-*` and `ext-*`) and force the installation even if the local machine
- does not fulfill it.
-* **--ask:** Ask user to provide target directory for new project.
+ does not fulfill it. Multiple requirements can be ignored via wildcard.
+* **--ask:** Ask the user to provide a target directory for the new project.
## dump-autoload (dumpautoload)
@@ -854,7 +873,6 @@ using this option you can still use PSR-0/4 for convenience and classmaps for
performance.
### Options
-* **--no-scripts:** Skips the execution of all scripts defined in `composer.json` file.
* **--optimize (-o):** Convert PSR-0/4 autoloading to classmap to get a faster
autoloader. This is recommended especially for production, but can take
a bit of time to run, so it is currently not done by default.
@@ -872,6 +890,7 @@ performance.
See also the [`platform`](06-config.md#platform) config option.
* **--ignore-platform-req:** ignore a specific platform requirement (`php`, `hhvm`,
`lib-*` and `ext-*`) and skip the [platform check](07-runtime.md#platform-check) for it.
+ Multiple requirements can be ignored via wildcard.
## clear-cache / clearcache / cc
@@ -907,7 +926,7 @@ runs.
### Options
-* **--list (-l):** List the available composer binaries.
+* **--list (-l):** List the available Composer binaries.
## diagnose
@@ -931,8 +950,8 @@ php composer.phar archive vendor/package 2.0.21 --format=zip
### Options
-* **--format (-f):** Format of the resulting archive: tar or zip (default:
- "tar")
+* **--format (-f):** Format of the resulting archive: tar, tar.gz, tar.bz2
+ or zip (default: "tar").
* **--dir:** Write the archive to this directory (default: ".")
* **--file:** Write the archive with the given file name.
@@ -973,7 +992,7 @@ The generated lock file will use the same name: `composer-other.lock` in this ex
If set to 1, this env disables the warning about running commands as root/super user.
It also disables automatic clearing of sudo sessions, so you should really only set this
-if you use Composer as super user at all times like in docker containers.
+if you use Composer as a super user at all times like in docker containers.
### COMPOSER_ALLOW_XDEBUG
@@ -997,8 +1016,11 @@ directory to something other than `vendor/bin`.
The `COMPOSER_CACHE_DIR` var allows you to change the Composer cache directory,
which is also configurable via the [`cache-dir`](06-config.md#cache-dir) option.
-By default, it points to `$COMPOSER_HOME/cache` on \*nix and macOS, and
-`C:\Users\\AppData\Local\Composer` (or `%LOCALAPPDATA%/Composer`) on Windows.
+By default, it points to `C:\Users\\AppData\Local\Composer` (or `%LOCALAPPDATA%/Composer`) on Windows.
+On \*nix systems that follow the [XDG Base
+Directory Specifications](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html),
+it points to `$XDG_CACHE_HOME/composer`. On other \*nix systems and on macOS, it points to
+`$COMPOSER_HOME/cache`.
### COMPOSER_CAFILE
@@ -1030,8 +1052,9 @@ it points to `$XDG_CONFIG_HOME/composer`. On other \*nix systems, it points to
#### COMPOSER_HOME/config.json
You may put a `config.json` file into the location which `COMPOSER_HOME` points
-to. Composer will merge this configuration with your project's `composer.json`
-when you run the `install` and `update` commands.
+to. Composer will partially (only `config` and `repositories` keys) merge this
+configuration with your project's `composer.json` when you run the `install` and
+`update` commands.
This file allows you to set [repositories](05-repositories.md) and
[configuration](06-config.md) for the user's projects.
@@ -1042,7 +1065,7 @@ configuration in the project's `composer.json` always wins.
### COMPOSER_HTACCESS_PROTECT
Defaults to `1`. If set to `0`, Composer will not create `.htaccess` files in the
-composer home, cache, and data directories.
+Composer home, cache, and data directories.
### COMPOSER_MEMORY_LIMIT
@@ -1120,7 +1143,7 @@ from setting the request_fulluri option.
### COMPOSER_SELF_UPDATE_TARGET
-If set, makes the self-update command write the new Composer phar file into that path instead of overwriting itself. Useful for updating Composer on read-only filesystem.
+If set, makes the self-update command write the new Composer phar file into that path instead of overwriting itself. Useful for updating Composer on a read-only filesystem.
### no_proxy or NO_PROXY
@@ -1146,3 +1169,16 @@ If set to `1`, outputs information about events being dispatched, which can be
useful for plugin authors to identify what is firing when exactly.
← [Libraries](02-libraries.md) | [Schema](04-schema.md) →
+
+### COMPOSER_NO_DEV
+
+If set to `1`, it is the equivalent of passing the `--no-dev` argument to `install` or
+`update`. You can override this for a single command by setting `COMPOSER_NO_DEV=0`.
+
+### COMPOSER_IGNORE_PLATFORM_REQ or COMPOSER_IGNORE_PLATFORM_REQS
+
+If `COMPOSER_IGNORE_PLATFORM_REQS` set to `1`, it is the equivalent of passing the `--ignore-platform-reqs` argument.
+Otherwise, specifying a comma separated list in `COMPOSER_IGNORE_PLATFORM_REQ` will ignore those specific requirements.
+
+For example, if a development workstation will never run database queries, this can be used to ignore the requirement for the database extensions to be available.
+If you set `COMPOSER_IGNORE_PLATFORM_REQ=ext-oci8`, then composer will allow packages to be installed even if the `oci8` PHP extension is not enabled.
diff --git a/app/vendor/composer/composer/doc/04-schema.md b/app/vendor/composer/composer/doc/04-schema.md
index 849e5ee68..bfe70d9bf 100644
--- a/app/vendor/composer/composer/doc/04-schema.md
+++ b/app/vendor/composer/composer/doc/04-schema.md
@@ -34,7 +34,7 @@ separated by `/`. Examples:
* monolog/monolog
* igorw/event-source
-The name must be lowercased and consist of words separated by `-`, `.` or `_`.
+The name must be lowercase and consist of words separated by `-`, `.` or `_`.
The complete name should match `^[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$`.
The `name` property is required for published packages (libraries).
@@ -171,7 +171,7 @@ An Example:
```
For a package, when there is a choice between licenses ("disjunctive license"),
-multiple can be specified as array.
+multiple can be specified as an array.
An Example for disjunctive licenses:
@@ -203,7 +203,7 @@ Each author object can have following properties:
* **name:** The author's name. Usually their real name.
* **email:** The author's email address.
-* **homepage:** An URL to the author's website.
+* **homepage:** URL to the author's website.
* **role:** The author's role in the project (e.g. developer or translator)
An example:
@@ -675,7 +675,7 @@ for more details on how to reduce this impact.
### autoload-dev ([root-only](04-schema.md#root-package))
-This section allows to define autoload rules for development purposes.
+This section allows defining autoload rules for development purposes.
Classes needed to run the test suite should not be included in the main autoload
rules to avoid polluting the autoloader in production and when other people use
@@ -791,7 +791,7 @@ The following repository types are supported:
* **vcs:** The version control system repository can fetch packages from git,
svn, fossil and hg repositories.
* **package:** If you depend on a project that does not have any support for
- composer whatsoever you can define the package inline using a `package`
+ Composer whatsoever you can define the package inline using a `package`
repository. You basically inline the `composer.json` object.
For more information on any of these, see [Repositories](05-repositories.md).
@@ -884,8 +884,8 @@ Optional.
### bin
-A set of files that should be treated as binaries and symlinked into the `bin-dir`
-(from config).
+A set of files that should be treated as binaries and made available
+into the `bin-dir` (from config).
See [Vendor Binaries](articles/vendor-binaries.md) for more details.
@@ -941,9 +941,9 @@ It can be boolean or a package name/URL pointing to a recommended alternative.
Examples:
-Use `"abandoned": true` to indicates this package is abandoned.
-Use `"abandoned": "monolog/monolog"` to indicates this package is abandoned, and the
-recommended alternative is `monolog/monolog`.
+Use `"abandoned": true` to indicate this package is abandoned.
+Use `"abandoned": "monolog/monolog"` to indicate this package is abandoned, and that
+the recommended alternative is `monolog/monolog`.
Defaults to false.
@@ -962,7 +962,7 @@ version of the parent branch or at least master or something.
To handle non-numeric named branches as versions instead of searching for a parent branch
with a valid version or special branch name like master, you can set patterns for branch
-names, that should be handled as dev version branches.
+names that should be handled as dev version branches.
This is really helpful when you have dependencies using "self.version", so that not dev-master,
but the same branch is installed (in the example: latest-testing).
diff --git a/app/vendor/composer/composer/doc/05-repositories.md b/app/vendor/composer/composer/doc/05-repositories.md
index f8a68fa30..a403fd9bf 100644
--- a/app/vendor/composer/composer/doc/05-repositories.md
+++ b/app/vendor/composer/composer/doc/05-repositories.md
@@ -46,7 +46,7 @@ add more repositories to your project by declaring them in `composer.json`.
Repositories are only available to the root package and the repositories
defined in your dependencies will not be loaded. Read the
-[FAQ entry](faqs/why-can't-composer-load-repositories-recursively.md) if you
+[FAQ entry](faqs/why-cant-composer-load-repositories-recursively.md) if you
want to learn why.
When resolving dependencies, packages are looked up from repositories from
@@ -186,7 +186,7 @@ The array of versions can also optionally be minified using
[composer/metadata-minifier](https://packagist.org/packages/composer/metadata-minifier).
If you do that, you should add a `"minified": "composer/2.0"` key
at the top level to indicate to Composer it must expand the version
-list back into the original data. See
+list back into the original data. See
https://repo.packagist.org/p2/monolog/monolog.json for an example.
Any requested package which does not exist MUST return a 404 status code,
@@ -197,9 +197,9 @@ Avoid redirects to alternative 404 pages.
If your repository only has a small number of packages, and you want to avoid
the 404-requests, you can also specify an `"available-packages"` key in
`packages.json` which should be an array with all the package names that your
-repository contain. Alternatively you can specify an
+repository contains. Alternatively you can specify an
`"available-package-patterns"` key which is an array of package name patterns
-(with `*` matching any string, e.g. `vendor/*` would make composer look up
+(with `*` matching any string, e.g. `vendor/*` would make Composer look up
every matching package name in this repository).
This field is optional.
@@ -299,12 +299,33 @@ described [above](#packages).
These fields are optional. You probably don't need them for your own custom
repository.
-#### stream options
+#### cURL or stream options
-The `packages.json` file is loaded using a PHP stream. You can set extra
-options on that stream using the `options` parameter. You can set any valid
-PHP stream context option. See [Context options and
-parameters](https://php.net/manual/en/context.php) for more information.
+The repository is accessed either using cURL (Composer 2 with ext-curl enabled)
+or PHP streams. You can set extra options using the `options` parameter. For
+PHP streams, you can set any valid PHP stream context option. See [Context
+options and parameters](https://php.net/manual/en/context.php) for more
+information. When cURL is used, only a limited set of `http` and `ssl` options
+can be configured.
+
+```json
+{
+ "repositories": [
+ {
+ "type": "composer",
+ "url": "https://example.org",
+ "options": {
+ "http": {
+ "timeout": 60
+ }
+ }
+ }
+ ],
+ "require": {
+ "acme/package": "^1.0"
+ }
+}
+```
### VCS
@@ -321,8 +342,9 @@ project to use the patched version. If the library is on GitHub (this is the
case most of the time), you can fork it there and push your changes to
your fork. After that you update the project's `composer.json`. All you have
to do is add your fork as a repository and update the version constraint to
-point to your custom branch. In `composer.json`, you should prefix your custom
-branch name with `"dev-"`. For version constraint naming conventions see
+point to your custom branch. In `composer.json` only, you should prefix your
+custom branch name with `"dev-"` (without making it part of the actual branch
+name). For version constraint naming conventions see
[Libraries](02-libraries.md) for more information.
Example assuming you patched monolog to fix a bug in the `bugfix` branch:
@@ -362,7 +384,7 @@ For more information [see the aliases article](articles/aliases.md).
#### Using private repositories
Exactly the same solution allows you to work with your private repositories at
-GitHub and BitBucket:
+GitHub and Bitbucket:
```json
{
@@ -392,16 +414,16 @@ The following are supported:
To get packages from these systems you need to have their respective clients
installed. That can be inconvenient. And for this reason there is special
-support for GitHub and BitBucket that use the APIs provided by these sites, to
+support for GitHub and Bitbucket that use the APIs provided by these sites, to
fetch the packages without having to install the version control system. The
VCS repository provides `dist`s for them that fetch the packages as zips.
* **GitHub:** [github.com](https://github.com) (Git)
-* **BitBucket:** [bitbucket.org](https://bitbucket.org) (Git and Mercurial)
+* **Bitbucket:** [bitbucket.org](https://bitbucket.org) (Git)
The VCS driver to be used is detected automatically based on the URL. However,
-should you need to specify one for whatever reason, you can use `git-bitbucket`,
-`hg-bitbucket`, `github`, `gitlab`, `perforce`, `fossil`, `git`, `svn` or `hg`
+should you need to specify one for whatever reason, you can use `bitbucket`,
+`github`, `gitlab`, `perforce`, `fossil`, `git`, `svn` or `hg`
as the repository type instead of `vcs`.
If you set the `no-api` key to `true` on a github repository it will clone the
@@ -411,11 +433,12 @@ attempt to use github's zip files.
Please note:
* **To let Composer choose which driver to use** the repository type needs to be defined as "vcs"
-* **If you already used a private repository**, this means Composer should have cloned it in cache. If you want to install the same package with drivers, remember to launch the command `composer clearcache` followed by the command `composer update` to update composer cache and install the package from dist.
+* **If you already used a private repository**, this means Composer should have cloned it in cache. If you want to install the same package with drivers, remember to launch the command `composer clearcache` followed by the command `composer update` to update Composer cache and install the package from dist.
+* VCS driver `git-bitbucket` is deprecated in favor of `bitbucket`
-#### BitBucket Driver Configuration
+#### Bitbucket Driver Configuration
-> **Note that the repository endpoint for BitBucket needs to be https rather than git.**
+> **Note that the repository endpoint for Bitbucket needs to be https rather than git.**
After setting up your bitbucket repository, you will also need to
[set up authentication](articles/authentication-for-private-packages.md#bitbucket-oauth).
@@ -445,7 +468,7 @@ repository like this:
If you have no branches or tags directory you can disable them entirely by
setting the `branches-path` or `tags-path` to `false`.
-If the package is in a sub-directory, e.g. `/trunk/foo/bar/composer.json` and
+If the package is in a subdirectory, e.g. `/trunk/foo/bar/composer.json` and
`/tags/1.0/foo/bar/composer.json`, then you can make Composer access it by
setting the `"package-path"` option to the sub-directory, in this example it
would be `"package-path": "foo/bar/"`.
@@ -732,6 +755,31 @@ variables are parsed in both Windows and Linux/Mac notations. For example
> **Note:** Repository paths can also contain wildcards like `*` and `?`.
> For details, see the [PHP glob function](https://php.net/glob).
+You can configure the way the package's dist reference (which appears in
+the composer.lock file) is built.
+
+The following modes exist:
+- `none` - reference will be always null. This can help reduce lock file conflicts
+ in the lock file but reduces clarity as to when the last update happened and whether
+ the package is in the latest state.
+- `config` - reference is built based on a hash of the package's composer.json and repo config
+- `auto` (used by default) - reference is built basing on the hash like with `config`, but if
+ the package folder contains a git repository, the HEAD commit's hash is used as reference instead.
+
+```json
+{
+ "repositories": [
+ {
+ "type": "path",
+ "url": "../../packages/my-package",
+ "options": {
+ "reference": "config"
+ }
+ }
+ ]
+}
+```
+
## Disabling Packagist.org
You can disable the default Packagist.org repository by adding this to your
@@ -750,7 +798,7 @@ You can disable the default Packagist.org repository by adding this to your
You can disable Packagist.org globally by using the global config flag:
```bash
-composer config -g repo.packagist false
+php composer.phar config -g repo.packagist false
```
← [Schema](04-schema.md) | [Config](06-config.md) →
diff --git a/app/vendor/composer/composer/doc/06-config.md b/app/vendor/composer/composer/doc/06-config.md
index dffff2104..5217b18f2 100644
--- a/app/vendor/composer/composer/doc/06-config.md
+++ b/app/vendor/composer/composer/doc/06-config.md
@@ -24,6 +24,37 @@ helper is available:
}
```
+## allow-plugins
+
+Defaults to `null` (allow all plugins implicitly) for backwards compatibility until July 2022.
+At that point the default will become `{}` and plugins will not load anymore unless allowed.
+
+As of Composer 2.2.0, the `allow-plugins` option adds a layer of security
+allowing you to restrict which Composer plugins are able to execute code during
+a Composer run.
+
+When a new plugin is first activated, which is not yet listed in the config option,
+Composer will print a warning. If you run Composer interactively it will
+prompt you to decide if you want to execute the plugin or not.
+
+Use this setting to allow only packages you trust to execute code. Set it to
+an object with package name patterns as keys. The values are **true** to allow
+and **false** to disallow while suppressing further warnings and prompts.
+
+```json
+{
+ "config": {
+ "allow-plugins": {
+ "third-party/required-plugin": true,
+ "my-organization/*": true,
+ "unnecessary/plugin": false
+ }
+ }
+}
+```
+
+You can also set the config option itself to `false` to disallow all plugins, or `true` to allow all plugins to run (NOT recommended).
+
## use-include-path
Defaults to `false`. If `true`, the Composer autoloader will also look for classes
@@ -33,7 +64,7 @@ in the PHP include path.
Defaults to `dist` and can be any of `source`, `dist` or `auto`. This option
allows you to set the install method Composer will prefer to use. Can
-optionally be a hash of patterns for more granular install preferences.
+optionally be an object with package name patterns for keys for more granular install preferences.
```json
{
@@ -63,6 +94,19 @@ optionally be a hash of patterns for more granular install preferences.
> configuration in global and package configurations the string notation
> is translated to a `*` package pattern.
+## use-parent-dir
+
+When running Composer in a directory where there is no composer.json, if there
+is one present in a directory above Composer will by default ask you whether
+you want to use that directory's composer.json instead.
+
+If you always want to answer yes to this prompt, you can set this config value
+to `true`. To never be prompted, set it to `false`. The default is `"prompt"`.
+
+> **Note:** This config must be set in your global user-wide config for it
+> to work. Use for example `php composer.phar config --global use-parent-dir true`
+> to set it.
+
## store-auths
What to do after prompting for authentication, one of: `true` (always store),
@@ -191,6 +235,9 @@ you may ignore it instead by passing `--ignore-platform-req=ext-foo` to `update`
extensions as if you ignore one now and a new package you add a month later also
requires it, you may introduce issues in production unknowingly.
+If you have an extension installed locally but *not* on production, you may want
+to artificially hide it from Composer using `{"ext-foo": false}`.
+
## vendor-dir
Defaults to `vendor`. You can install dependencies into a different directory if
@@ -206,8 +253,8 @@ into this directory.
Defaults to `C:\Users\\AppData\Roaming\Composer` on Windows,
`$XDG_DATA_HOME/composer` on unix systems that follow the XDG Base Directory
-Specifications, and `$home` on other unix systems. Right now it is only
-used for storing past composer.phar files to be able to rollback to older
+Specifications, and `$COMPOSER_HOME` on other unix systems. Right now it is only
+used for storing past composer.phar files to be able to roll back to older
versions. See also [COMPOSER_HOME](03-cli.md#composer-home).
## cache-dir
@@ -215,8 +262,8 @@ versions. See also [COMPOSER_HOME](03-cli.md#composer-home).
Defaults to `C:\Users\\AppData\Local\Composer` on Windows,
`/Users//Library/Caches/composer` on macOS, `$XDG_CACHE_HOME/composer`
on unix systems that follow the XDG Base Directory Specifications, and
-`$home/cache` on other unix systems. Stores all the caches used by Composer.
-See also [COMPOSER_HOME](03-cli.md#composer-home).
+`$COMPOSER_HOME/cache` on other unix systems. Stores all the caches used by
+Composer. See also [COMPOSER_HOME](03-cli.md#composer-home).
## cache-files-dir
@@ -257,8 +304,8 @@ If it is `auto` then Composer only installs .bat proxy files when on Windows or
set to `full` then both .bat files for Windows and scripts for Unix-based
operating systems will be installed for each binary. This is mainly useful if you
run Composer inside a linux VM but still want the `.bat` proxies available for use
-in the Windows host OS. If set to `symlink` Composer will always symlink even on
-Windows/WSL.
+in the Windows host OS. If set to `proxy` Composer will only create bash/Unix-style
+proxy files and no .bat files even on Windows/WSL.
## prepend-autoloader
@@ -268,8 +315,8 @@ with other autoloaders.
## autoloader-suffix
-Defaults to `null`. String to be used as a suffix for the generated Composer
-autoloader. When null a random one will be generated.
+Defaults to `null`. Non-empty string to be used as a suffix for the generated
+Composer autoloader. When null a random one will be generated.
## optimize-autoloader
@@ -344,12 +391,12 @@ Example:
## htaccess-protect
Defaults to `true`. If set to `false`, Composer will not create `.htaccess` files
-in the composer home, cache, and data directories.
+in the Composer home, cache, and data directories.
## lock
Defaults to `true`. If set to `false`, Composer will not create a `composer.lock`
-file.
+file and will ignore it if one is present.
## platform-check
diff --git a/app/vendor/composer/composer/doc/07-runtime.md b/app/vendor/composer/composer/doc/07-runtime.md
index 3e345ad38..fef0b3923 100644
--- a/app/vendor/composer/composer/doc/07-runtime.md
+++ b/app/vendor/composer/composer/doc/07-runtime.md
@@ -95,7 +95,7 @@ possible for safety.
----
A few other methods are available for more complex usages, please refer to the
-source/docblocks of [the class itself](https://github.com/composer/composer/blob/master/src/Composer/InstalledVersions.php).
+source/docblocks of [the class itself](https://github.com/composer/composer/blob/main/src/Composer/InstalledVersions.php).
### Knowing the path in which a package is installed
@@ -152,4 +152,23 @@ not its exact version.
`lib-*` requirements are never supported/checked by the platform check feature.
+## Autoloader path in binaries
+
+composer-runtime-api 2.2 introduced a new `$_composer_autoload_path` global
+variable set when running binaries installed with Composer. Read more
+about this [on the vendor binaries docs](articles/vendor-binaries.md#finding-the-composer-autoloader-from-a-binary).
+
+This is set by the binary proxy and as such is not made available to projects
+by Composer's `vendor/autoload.php`, which would be useless as it would point back
+to itself.
+
+## Binary (bin-dir) path in binaries
+
+composer-runtime-api 2.2.2 introduced a new `$_composer_bin_dir` global
+variable set when running binaries installed with Composer. Read more
+about this [on the vendor binaries docs](articles/vendor-binaries.md#finding-the-composer-bin-dir-from-a-binary).
+
+This is set by the binary proxy and as such is not made available to projects
+by Composer's `vendor/autoload.php`.
+
← [Config](06-config.md) | [Community](08-community.md) →
diff --git a/app/vendor/composer/composer/doc/08-community.md b/app/vendor/composer/composer/doc/08-community.md
index 7c48a94a8..210256451 100644
--- a/app/vendor/composer/composer/doc/08-community.md
+++ b/app/vendor/composer/composer/doc/08-community.md
@@ -7,7 +7,7 @@ contributing.
If you would like to contribute to Composer, please read the
[README](https://github.com/composer/composer) and
-[CONTRIBUTING](https://github.com/composer/composer/blob/master/.github/CONTRIBUTING.md)
+[CONTRIBUTING](https://github.com/composer/composer/blob/main/.github/CONTRIBUTING.md)
documents.
The most important guidelines are described as follows:
diff --git a/app/vendor/composer/composer/doc/articles/aliases.md b/app/vendor/composer/composer/doc/articles/aliases.md
index c03ec52f2..193396e06 100644
--- a/app/vendor/composer/composer/doc/articles/aliases.md
+++ b/app/vendor/composer/composer/doc/articles/aliases.md
@@ -89,7 +89,7 @@ Add this to your project's root `composer.json`:
}
```
-Or let composer add it for you with:
+Or let Composer add it for you with:
```
php composer.phar require monolog/monolog:"dev-bugfix as 1.0.x-dev"
diff --git a/app/vendor/composer/composer/doc/articles/authentication-for-private-packages.md b/app/vendor/composer/composer/doc/articles/authentication-for-private-packages.md
index bbc21ee0d..1c6081afd 100644
--- a/app/vendor/composer/composer/doc/articles/authentication-for-private-packages.md
+++ b/app/vendor/composer/composer/doc/articles/authentication-for-private-packages.md
@@ -63,7 +63,7 @@ For all authentication methods it is possible to edit them using the command lin
To manually edit it, run:
```sh
-composer config --global --editor [--auth]
+php composer.phar config --global --editor [--auth]
```
For specific authentication implementations, see their sections;
@@ -80,7 +80,7 @@ To fix this you need to open the file in an editor and fix the error. To find th
your global `auth.json`, execute:
```sh
-composer config --global home
+php composer.phar config --global home
```
The folder will contain your global `auth.json` if it exists.
@@ -115,13 +115,13 @@ Read more about the usage of this environment variable [here](../03-cli.md#compo
### Command line http-basic
```sh
-composer config [--global] http-basic.example.org username password
+php composer.phar config [--global] http-basic.example.org username password
```
### Manual http-basic
```sh
-composer config [--global] --editor --auth
+php composer.phar config [--global] --editor --auth
```
```json
@@ -147,13 +147,13 @@ If the username e.g. is an email address it needs to be passed as `name%40exampl
### Command line inline http-basic
```sh
-composer config [--global] repositories composer.unique-name https://username:password@repo.example.org
+php composer.phar config [--global] repositories composer.unique-name https://username:password@repo.example.org
```
### Manual inline http-basic
```sh
-composer config [--global] --editor
+php composer.phar config [--global] --editor
```
```json
@@ -172,7 +172,7 @@ composer config [--global] --editor
### Manual custom token authentication
```sh
-composer config [--global] --editor
+php composer.phar config [--global] --editor
```
```json
@@ -201,13 +201,13 @@ composer config [--global] --editor
### Command line gitlab-oauth
```sh
-composer config [--global] gitlab-oauth.example.org token
+php composer.phar config [--global] gitlab-oauth.example.org token
```
### Manual gitlab-oauth
```sh
-composer config [--global] --editor --auth
+php composer.phar config [--global] --editor --auth
```
```json
@@ -224,20 +224,20 @@ composer config [--global] --editor --auth
> [`gitlab-domains`](../06-config.md#gitlab-domains) section should also contain the url.
To create a new access token, go to your [access tokens section on GitLab](https://gitlab.com/-/profile/personal_access_tokens)
-(or the equivalent URL on your private instance) and create a new token. See also [the GitLab access token documentation](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token) for more informations.
+(or the equivalent URL on your private instance) and create a new token. See also [the GitLab access token documentation](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#creating-a-personal-access-token) for more information.
-When creating a gitlab token manually, make sure it has either the `read_api` or `api` scope.
+When creating a gitlab token manually, make sure it has either the `read_api` or `api` scope.
### Command line gitlab-token
```sh
-composer config [--global] gitlab-token.example.org token
+php composer.phar config [--global] gitlab-token.example.org token
```
### Manual gitlab-token
```sh
-composer config [--global] --editor --auth
+php composer.phar config [--global] --editor --auth
```
```json
@@ -250,19 +250,24 @@ composer config [--global] --editor --auth
## github-oauth
-To create a new access token, head to your [token settings section on Github](https://github.com/settings/tokens) and [generate a new token](https://github.com/settings/tokens/new). For public repositories when rate limited, the `public_repo` scope is required, for private repositories the `repo:status` scope is needed.
-Read more about it [here](https://github.com/blog/1509-personal-api-tokens).
+To create a new access token, head to your [token settings section on Github](https://github.com/settings/tokens) and [generate a new token](https://github.com/settings/tokens/new).
+
+For public repositories when rate limited, a token *without* any particular scope is sufficient (see `(no scope)` in the [scopes documentation](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps)). Such tokens grant read-only access to public information.
+
+For private repositories, the `repo` scope is needed. Note that the token will be given broad read/write access to all of your private repositories and much more - see the [scopes documentation](https://docs.github.com/en/developers/apps/building-oauth-apps/scopes-for-oauth-apps) for a complete list. As of writing (November 2021), it seems not to be possible to further limit permissions for such tokens.
+
+Read more about [Personal Access Tokens](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token), or subscribe to the [roadmap item for better scoped tokens in GitHub](https://github.com/github/roadmap/issues/184).
### Command line github-oauth
```sh
-composer config [--global] github-oauth.github.com token
+php composer.phar config [--global] github-oauth.github.com token
```
### Manual github-oauth
```sh
-composer config [--global] --editor --auth
+php composer.phar config [--global] --editor --auth
```
```json
@@ -280,13 +285,13 @@ The BitBucket driver uses OAuth to access your private repositories via the BitB
### Command line bitbucket-oauth
```sh
-composer config [--global] bitbucket-oauth.bitbucket.org consumer-key consumer-secret
+php composer.phar config [--global] bitbucket-oauth.bitbucket.org consumer-key consumer-secret
```
### Manual bitbucket-oauth
```sh
-composer config [--global] --editor --auth
+php composer.phar config [--global] --editor --auth
```
```json
diff --git a/app/vendor/composer/composer/doc/articles/custom-installers.md b/app/vendor/composer/composer/doc/articles/custom-installers.md
index 9c0ee2b65..6e2ad8670 100644
--- a/app/vendor/composer/composer/doc/articles/custom-installers.md
+++ b/app/vendor/composer/composer/doc/articles/custom-installers.md
@@ -13,6 +13,16 @@ library.
In these cases you could consider creating a Custom Installer to handle your
specific logic.
+## Alternative to custom installers with Composer 2.1+
+
+As of Composer 2.1, the `Composer\InstalledVersions` class has a
+[`getInstalledPackagesByType`](https://getcomposer.org/doc/07-runtime.md#knowing-which-packages-of-a-given-type-are-installed)
+method which can let you figure out at runtime which plugins/modules/extensions are installed.
+
+It is highly recommended to use that instead of building new custom
+installers if you are building a new application. This has the advantage of leaving
+all vendor code in the vendor directory, and not requiring custom installer code.
+
## Calling a Custom Installer
Suppose that your project already has a Custom Installer for specific modules
@@ -68,7 +78,7 @@ requirements:
1. the [type][1] attribute must be `composer-plugin`.
2. the [extra][2] attribute must contain an element `class` defining the
class name of the plugin (including namespace). If a package contains
- multiple plugins this can be array of class names.
+ multiple plugins, this can be an array of class names.
Example:
@@ -164,7 +174,7 @@ use Composer\Installer\LibraryInstaller;
class TemplateInstaller extends LibraryInstaller
{
/**
- * {@inheritDoc}
+ * @inheritDoc
*/
public function getInstallPath(PackageInterface $package)
{
@@ -181,7 +191,7 @@ class TemplateInstaller extends LibraryInstaller
}
/**
- * {@inheritDoc}
+ * @inheritDoc
*/
public function supports($packageType)
{
@@ -200,6 +210,6 @@ different installation path.
[1]: ../04-schema.md#type
[2]: ../04-schema.md#extra
-[3]: https://github.com/composer/composer/blob/master/src/Composer/Plugin/PluginInterface.php
-[4]: https://github.com/composer/composer/blob/master/src/Composer/Installer/InstallerInterface.php
-[5]: https://github.com/composer/composer/blob/master/src/Composer/Installer/LibraryInstaller.php
+[3]: https://github.com/composer/composer/blob/main/src/Composer/Plugin/PluginInterface.php
+[4]: https://github.com/composer/composer/blob/main/src/Composer/Installer/InstallerInterface.php
+[5]: https://github.com/composer/composer/blob/main/src/Composer/Installer/LibraryInstaller.php
diff --git a/app/vendor/composer/composer/doc/articles/handling-private-packages.md b/app/vendor/composer/composer/doc/articles/handling-private-packages.md
index 6dd0b8ee9..3e3c93bb2 100644
--- a/app/vendor/composer/composer/doc/articles/handling-private-packages.md
+++ b/app/vendor/composer/composer/doc/articles/handling-private-packages.md
@@ -132,7 +132,7 @@ it, pass the VCS repository URL as an optional argument:
## Usage
-In your projects all you need to add now is your own composer repository using
+In your projects all you need to add now is your own Composer repository using
the `packages.example.org` as URL, then you can require your private packages
and everything should work smoothly. You don't need to copy all your
repositories in every project anymore. Only that one unique repository that
@@ -323,7 +323,7 @@ is set to true.
* `providers`: optional, `false` by default, when enabled (`true`) each
package will be dumped into a separate include file which will be only
- loaded by composer when the package is really required. Speeds up composer
+ loaded by Composer when the package is really required. Speeds up composer
handling for repositories with huge number of packages like f.i. packagist.
* `output-dir`: optional, defines where to output the repository files if not
provided as an argument when calling the `build` command.
diff --git a/app/vendor/composer/composer/doc/articles/plugins.md b/app/vendor/composer/composer/doc/articles/plugins.md
index df374405b..bcbbe2cad 100644
--- a/app/vendor/composer/composer/doc/articles/plugins.md
+++ b/app/vendor/composer/composer/doc/articles/plugins.md
@@ -27,19 +27,19 @@ requirements:
1. The [type][1] attribute must be `composer-plugin`.
2. The [extra][2] attribute must contain an element `class` defining the
class name of the plugin (including namespace). If a package contains
- multiple plugins, this can be array of class names.
+ multiple plugins, this can be an array of class names.
3. You must require the special package called `composer-plugin-api`
to define which Plugin API versions your plugin is compatible with.
Requiring this package doesn't actually include any extra dependencies,
it only specifies which version of the plugin API to use.
> **Note:** When developing a plugin, although not required, it's useful to add
-> a require-dev dependency on `composer/composer` to have IDE auto completion on Composer classes.
+> a require-dev dependency on `composer/composer` to have IDE autocompletion on Composer classes.
The required version of the `composer-plugin-api` follows the same [rules][7]
-as a normal package's.
+as a normal package's rules.
-The current Composer plugin API version is `2.1.0`.
+The current Composer plugin API version is `2.3.0`.
An example of a valid plugin `composer.json` file (with the autoloading
part omitted and an optional require-dev dependency on `composer/composer` for IDE auto completion):
@@ -263,12 +263,12 @@ class CommandProvider implements CommandProviderCapability
class Command extends BaseCommand
{
- protected function configure()
+ protected function configure(): void
{
$this->setName('custom-plugin-command');
}
- protected function execute(InputInterface $input, OutputInterface $output)
+ protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('Executing');
}
@@ -323,14 +323,30 @@ hint to Composer that the plugin should be installed on its own before proceedin
the rest of the package downloads. This slightly slows down the overall installation
process however, so do not use it in plugins which do not absolutely require it.
+### plugin-modifies-install-path
+
+Some special plugins modify the install path of packages.
+
+As of Composer 2.2.9, you can specify `{"extra": {"plugin-modifies-install-path": true}}`
+in your composer.json to hint to Composer that the plugin should be activated as soon
+as possible to prevent any bad side-effects from Composer assuming packages are installed
+in another location than they actually are.
+
+## Plugin Autoloading
+
+Due to plugins being loaded by Composer at runtime, and to ensure that plugins which
+depend on other packages can function correctly, a runtime autoloader is created whenever
+a plugin is loaded. That autoloader is only configured to load with the plugin dependencies,
+so you may not have access to all the packages which are installed.
+
[1]: ../04-schema.md#type
[2]: ../04-schema.md#extra
-[3]: https://github.com/composer/composer/blob/master/src/Composer/Plugin/PluginInterface.php
-[4]: https://github.com/composer/composer/blob/master/src/Composer/Composer.php
-[5]: https://github.com/composer/composer/blob/master/src/Composer/IO/IOInterface.php
-[6]: https://github.com/composer/composer/blob/master/src/Composer/EventDispatcher/EventSubscriberInterface.php
+[3]: https://github.com/composer/composer/blob/main/src/Composer/Plugin/PluginInterface.php
+[4]: https://github.com/composer/composer/blob/main/src/Composer/Composer.php
+[5]: https://github.com/composer/composer/blob/main/src/Composer/IO/IOInterface.php
+[6]: https://github.com/composer/composer/blob/main/src/Composer/EventDispatcher/EventSubscriberInterface.php
[7]: ../01-basic-usage.md#package-versions
-[8]: https://github.com/composer/composer/blob/master/src/Composer/Plugin/Capable.php
-[9]: https://github.com/composer/composer/blob/master/src/Composer/Plugin/Capability/CommandProvider.php
+[8]: https://github.com/composer/composer/blob/main/src/Composer/Plugin/Capable.php
+[9]: https://github.com/composer/composer/blob/main/src/Composer/Plugin/Capability/CommandProvider.php
[10]: https://symfony.com/doc/current/components/console.html
-[11]: https://github.com/composer/composer/blob/master/src/Composer/Util/SyncHelper.php
+[11]: https://github.com/composer/composer/blob/main/src/Composer/Util/SyncHelper.php
diff --git a/app/vendor/composer/composer/doc/articles/repository-priorities.md b/app/vendor/composer/composer/doc/articles/repository-priorities.md
index e0053a80b..baaefb314 100644
--- a/app/vendor/composer/composer/doc/articles/repository-priorities.md
+++ b/app/vendor/composer/composer/doc/articles/repository-priorities.md
@@ -13,17 +13,17 @@ goes on to the next one, until one repository contains it and the process ends.
Canonical repositories are better for a few reasons:
- Performance wise, it is more efficient to stop looking for a package once it
-has been found somewhere. It also avoids loading duplicate packages in case
-the same package is present in several of your repositories.
+ has been found somewhere. It also avoids loading duplicate packages in case
+ the same package is present in several of your repositories.
- Security wise, it is safer to treat them canonically as it means that packages you
-expect to come from your most important repositories will never be loaded from
-another repository instead. Let's
-say you have a private repository which is not canonical, and you require your
-private package `foo/bar ^2.0` for example. Now if someone publishes
-`foo/bar 2.999` to packagist.org, suddenly Composer will pick that package as it
-has a higher version than your latest release (say 2.4.3), and you end up installing
-something you may not have meant to. If the private repository is canonical
-however, that 2.999 version from packagist.org will not be considered at all.
+ expect to come from your most important repositories will never be loaded from
+ another repository instead. Let's
+ say you have a private repository which is not canonical, and you require your
+ private package `foo/bar ^2.0` for example. Now if someone publishes
+ `foo/bar 2.999` to packagist.org, suddenly Composer will pick that package as it
+ has a higher version than your latest release (say 2.4.3), and you end up installing
+ something you may not have meant to. However, if the private repository is canonical,
+ that 2.999 version from packagist.org will not be considered at all.
There are however a few cases where you may want to specifically load some packages
from a given repository, but not all. Or you may want a given repository to not be
@@ -62,7 +62,7 @@ You can also filter packages which a repository will be able to load, either by
selecting which ones you want, or by excluding those you do not want.
For example here we want to pick only the package `foo/bar` and all the packages from
-`some-vendor/` from this composer repository.
+`some-vendor/` from this Composer repository.
```json
{
@@ -92,4 +92,4 @@ we may not want to load in this project.
```
Both `only` and `exclude` should be arrays of package names, which can also
-contain wildcards (`*`) which will match any characters.
+contain wildcards (`*`), which will match any character.
diff --git a/app/vendor/composer/composer/doc/articles/resolving-merge-conflicts.md b/app/vendor/composer/composer/doc/articles/resolving-merge-conflicts.md
index 2ee30a6d1..2733a186a 100644
--- a/app/vendor/composer/composer/doc/articles/resolving-merge-conflicts.md
+++ b/app/vendor/composer/composer/doc/articles/resolving-merge-conflicts.md
@@ -33,9 +33,9 @@ An example where we have two branches:
To resolve the conflict when we merge these two branches:
- We choose the branch that has the most changes, and accept the `composer.json` and `composer.lock`
- files from that branch. In this case, we choose the composer files from branch 2.
+ files from that branch. In this case, we choose the Composer files from branch 2.
- We reapply the changes from the other branch (branch 1). In this case we have to run
- ```composer require package/A``` again.
+ `composer require package/A` again.
## 2. Validating your merged files
@@ -43,14 +43,14 @@ Before committing, make sure the resulting `composer.json` and `composer.lock` f
To do this, run the following commands:
```sh
-composer validate
-composer install [--dry-run]
+php composer.phar validate
+php composer.phar install [--dry-run]
```
## Important considerations
-Keep in mind that whenever merge conflicts occur on the lock file, the information about the exact version
-new packages were locked on for one of the branches gets lost. When package A in branch 1 is constrained
+Keep in mind that whenever merge conflicts occur on the lock file, the information, about the exact version
+new packages were locked on for one of the branches, is lost. When package A in branch 1 is constrained
as `^1.2.0` and locked as `1.2.0`, it might get updated when branch 2 is used as baseline and a new
`composer require package/A:^1.2.0` is executed, as that will use the most recent version that the
constraint allows when possible. There might be a version 1.3.0 for that package available by now, which
diff --git a/app/vendor/composer/composer/doc/articles/scripts.md b/app/vendor/composer/composer/doc/articles/scripts.md
index ae43f26a0..37fe8e7ff 100644
--- a/app/vendor/composer/composer/doc/articles/scripts.md
+++ b/app/vendor/composer/composer/doc/articles/scripts.md
@@ -46,7 +46,9 @@ Composer fires the following named events during its execution process:
### Installer Events
- **pre-operations-exec**: occurs before the install/upgrade/.. operations
- are executed when installing a lock file.
+ are executed when installing a lock file. Plugins that need to hook into
+ this event will need to be installed globally to be usable, as otherwise
+ they would not be loaded yet when a fresh install of a project happens.
### Package Events
@@ -71,7 +73,7 @@ Composer fires the following named events during its execution process:
manipulate the `InputInterface` object's options and arguments to tweak
a command's behavior.
- **pre-pool-create**: occurs before the Pool of packages is created, and lets
- you filter the list of packages which is going to enter the Solver.
+ you filter the list of packages that is going to enter the Solver.
> **Note:** Composer makes no assumptions about the state of your dependencies
> prior to `install` or `update`. Therefore, you should not specify scripts
@@ -166,7 +168,7 @@ class MyClass
`COMPOSER_DEV_MODE` will be added to the environment. If the command was run
with the `--no-dev` flag, this variable will be set to 0, otherwise it will be
set to 1. The variable is also available while `dump-autoload` runs, and it
-will be set to same as the last `install` or `update` was run in.
+will be set to the same as the last `install` or `update` was run in.
## Event classes
@@ -178,22 +180,22 @@ Depending on the [script types](#event-names) you will get various event
subclasses containing various getters with relevant data and associated
objects:
-- Base class: [`Composer\EventDispatcher\Event`](https://github.com/composer/composer/blob/master/src/Composer/EventDispatcher/Event.php)
-- Command Events: [`Composer\Script\Event`](https://github.com/composer/composer/blob/master/src/Composer/Script/Event.php)
-- Installer Events: [`Composer\Installer\InstallerEvent`](https://github.com/composer/composer/blob/master/src/Composer/Installer/InstallerEvent.php)
-- Package Events: [`Composer\Installer\PackageEvent`](https://github.com/composer/composer/blob/master/src/Composer/Installer/PackageEvent.php)
+- Base class: [`Composer\EventDispatcher\Event`](https://github.com/composer/composer/blob/main/src/Composer/EventDispatcher/Event.php)
+- Command Events: [`Composer\Script\Event`](https://github.com/composer/composer/blob/main/src/Composer/Script/Event.php)
+- Installer Events: [`Composer\Installer\InstallerEvent`](https://github.com/composer/composer/blob/main/src/Composer/Installer/InstallerEvent.php)
+- Package Events: [`Composer\Installer\PackageEvent`](https://github.com/composer/composer/blob/main/src/Composer/Installer/PackageEvent.php)
- Plugin Events:
- - init: [`Composer\EventDispatcher\Event`](https://github.com/composer/composer/blob/master/src/Composer/EventDispatcher/Event.php)
- - command: [`Composer\Plugin\CommandEvent`](https://github.com/composer/composer/blob/master/src/Composer/Plugin/CommandEvent.php)
- - pre-file-download: [`Composer\Plugin\PreFileDownloadEvent`](https://github.com/composer/composer/blob/master/src/Composer/Plugin/PreFileDownloadEvent.php)
- - post-file-download: [`Composer\Plugin\PostFileDownloadEvent`](https://github.com/composer/composer/blob/master/src/Composer/Plugin/PostFileDownloadEvent.php)
+ - init: [`Composer\EventDispatcher\Event`](https://github.com/composer/composer/blob/main/src/Composer/EventDispatcher/Event.php)
+ - command: [`Composer\Plugin\CommandEvent`](https://github.com/composer/composer/blob/main/src/Composer/Plugin/CommandEvent.php)
+ - pre-file-download: [`Composer\Plugin\PreFileDownloadEvent`](https://github.com/composer/composer/blob/main/src/Composer/Plugin/PreFileDownloadEvent.php)
+ - post-file-download: [`Composer\Plugin\PostFileDownloadEvent`](https://github.com/composer/composer/blob/main/src/Composer/Plugin/PostFileDownloadEvent.php)
## Running scripts manually
If you would like to run the scripts for an event manually, the syntax is:
```sh
-composer run-script [--dev] [--no-dev] script
+php composer.phar run-script [--dev] [--no-dev] script
```
For example `composer run-script post-install-cmd` will run any
@@ -276,7 +278,7 @@ To disable the timeout of a single script call, you must use the `run-script` co
command and specify the `--timeout` parameter:
```
-composer run-script --timeout=0 test
+php composer.phar run-script --timeout=0 test
```
## Referencing scripts
diff --git a/app/vendor/composer/composer/doc/articles/troubleshooting.md b/app/vendor/composer/composer/doc/articles/troubleshooting.md
index 669d4ce55..6e5a4018c 100644
--- a/app/vendor/composer/composer/doc/articles/troubleshooting.md
+++ b/app/vendor/composer/composer/doc/articles/troubleshooting.md
@@ -5,11 +5,12 @@
This is a list of common pitfalls on using Composer, and how to avoid them.
+
## General
1. When facing any kind of problems using Composer, be sure to **work with the
latest version**. See [self-update](../03-cli.md#self-update) for details.
-
+
2. Before asking anyone, run [`composer diagnose`](../03-cli.md#diagnose) to check
for common problems. If it all checks out, proceed to the next steps.
@@ -23,6 +24,7 @@ This is a list of common pitfalls on using Composer, and how to avoid them.
possible interferences with existing vendor installations or `composer.lock`
entries.
+
## Package not found
1. Double-check you **don't have typos** in your `composer.json` or repository
@@ -47,6 +49,12 @@ This is a list of common pitfalls on using Composer, and how to avoid them.
In this case add the `--with-dependencies` argument **or** add all dependencies which
need an update to the command.
+
+## Package is not updating to the expected version
+
+Try running `php composer.phar why-not [package-name] [expected-version]`.
+
+
## Dependencies on the root package
When your root package depends on a package which ends up depending (directly or
@@ -69,6 +77,7 @@ indirectly) back on the root package itself, issues can occur in two cases:
the variable only for the call to composer, or you can define it globally in the
CI env vars.
+
## Package not found in a Jenkins-build
1. Check the ["Package not found"](#package-not-found) item above.
@@ -81,13 +90,15 @@ indirectly) back on the root package itself, issues can occur in two cases:
branch as you are checking out. Using this, the checkout will not be in detached state any more
and the dependency on the root package should become satisfied.
+
## I have a dependency which contains a "repositories" definition in its composer.json, but it seems to be ignored.
The [`repositories`](../04-schema.md#repositories) configuration property is defined as [root-only](../04-schema.md#root-package). It is not inherited. You can read more about the reasons behind this in the "[why can't
-composer load repositories recursively?](../faqs/why-can't-composer-load-repositories-recursively.md)" article.
+Composer load repositories recursively?](../faqs/why-cant-composer-load-repositories-recursively.md)" article.
The simplest work-around to this limitation, is moving or duplicating the `repositories` definition into your root
composer.json.
+
## I have locked a dependency to a specific commit but get unexpected results.
While Composer supports locking dependencies to a specific commit using the `#commit-ref` syntax, there are certain
@@ -103,6 +114,7 @@ frequently overlooked:
There is no simple work-around to this limitation. It is therefore strongly recommended that you do not use it.
+
## Need to override a package version
Let's say your project depends on package A, which in turn depends on a specific
@@ -123,8 +135,18 @@ composer.json:
See [aliases](aliases.md) for more information.
+
+## Figuring out where a config value came from
+
+Use `php composer.phar config --list --source` to see where each config value originated from.
+
+
## Memory limit errors
+The first thing to do is to make sure you are running Composer 2, and if possible 2.2.0 or above.
+
+Composer 1 used much more memory and upgrading to the latest version will give you much better and faster results.
+
Composer may sometimes fail on some commands with this message:
`PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted <...>`
@@ -161,6 +183,7 @@ php -d memory_limit=-1 composer.phar <...>
This issue can also happen on cPanel instances, when the shell fork bomb protection is activated. For more information, see the [documentation](https://documentation.cpanel.net/display/68Docs/Shell+Fork+Bomb+Protection) of the fork bomb feature on the cPanel site.
+
## Xdebug impact on Composer
To improve performance when the Xdebug extension is enabled, Composer automatically restarts PHP without it.
@@ -170,13 +193,15 @@ Composer will always show a warning if Xdebug is being used, but you can overrid
`COMPOSER_DISABLE_XDEBUG_WARN=1`. If you see this warning unexpectedly, then the restart process has failed:
please report this [issue](https://github.com/composer/composer/issues).
+
## "The system cannot find the path specified" (Windows)
1. Open regedit.
2. Search for an `AutoRun` key inside `HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor`,
`HKEY_CURRENT_USER\Software\Microsoft\Command Processor`
or `HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Command Processor`.
-3. Check if it contains any path to non-existent file, if it's the case, remove them.
+3. Check if it contains any path to a non-existent file, if it's the case, remove them.
+
## API rate limit and OAuth tokens
@@ -188,8 +213,10 @@ manually create a token using the [procedure documented here](authentication-for
Now Composer should install/update without asking for authentication.
+
## proc_open(): fork failed errors
-If composer shows proc_open() fork failed on some commands:
+
+If Composer shows proc_open() fork failed on some commands:
`PHP Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar`
@@ -214,9 +241,10 @@ To enable the swap you can use for example:
```
You can make a permanent swap file following this [tutorial](https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-14-04).
+
## proc_open(): failed to open stream errors (Windows)
-If composer shows proc_open(NUL) errors on Windows:
+If Composer shows proc_open(NUL) errors on Windows:
`proc_open(NUL): failed to open stream: No such file or directory`
@@ -227,6 +255,7 @@ service. The issue was fixed in PHP 7.2.23 and 7.3.10.
Alternatively it could be because the Windows Null Service is not enabled. For
more information, see this [issue](https://github.com/composer/composer/issues/7186#issuecomment-373134916).
+
## Degraded Mode
Due to some intermittent issues on Travis and other systems, we introduced a
@@ -244,11 +273,11 @@ If you have been pointed to this page, you want to check a few things:
- If you are using IPv6, try disabling it. If that solves your issues, get in touch
with your ISP or server host, the problem is not at the Packagist level but in the
routing rules between you and Packagist (i.e. the internet at large). The best way to get
- these fixed is raise awareness to the network engineers that have the power to fix it.
+ these fixed is to raise awareness to the network engineers that have the power to fix it.
Take a look at the next section for IPv6 workarounds.
-
- If none of the above helped, please report the error.
+
## Operation timed out (IPv6 issues)
You may run into errors if IPv6 is not configured correctly. A common error is:
@@ -264,7 +293,7 @@ following workarounds:
**Workaround Linux:**
On linux, it seems that running this command helps to make ipv4 traffic have a
-higher prio than ipv6, which is a better alternative than disabling ipv6 entirely:
+higher priority than ipv6, which is a better alternative than disabling ipv6 entirely:
```bash
sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"
@@ -288,7 +317,7 @@ Disable IPv6 on that device (in this case "Wi-Fi"):
networksetup -setv6off Wi-Fi
```
-Run composer ...
+Run Composer ...
You can enable IPv6 again with:
@@ -297,9 +326,10 @@ networksetup -setv6automatic Wi-Fi
```
That said, if this fixes your problem, please talk to your ISP about it to
-try and resolve the routing errors. That's the best way to get things resolved
+try to resolve the routing errors. That's the best way to get things resolved
for everyone.
+
## Composer hangs with SSH ControlMaster
When you try to install packages from a Git repository and you use the `ControlMaster`
@@ -312,14 +342,38 @@ As a workaround, open a SSH connection to your Git host before running Composer:
```bash
ssh -t git@mygitserver.tld
-composer update
+php composer.phar update
```
See also https://github.com/composer/composer/issues/4180 for more information.
+
## Zip archives are not unpacked correctly.
-Composer can unpack zipballs using either a system-provided `unzip` utility or PHP's
-native `ZipArchive` class. The `ZipArchive` class is preferred on Windows. On other
-OSes where ZIP files can contain permissions and symlinks, the `unzip` utility is
-preferred. You're advised to install it if you need these features.
+Composer can unpack zipballs using either a system-provided `unzip` or `7z` (7-Zip) utility, or PHP's
+native `ZipArchive` class. On OSes where ZIP files can contain permissions and symlinks, we recommend
+installing `unzip` or `7z` as these features are not supported by `ZipArchive`.
+
+
+## Disabling the pool optimizer
+
+In Composer, the `Pool` class contains all the packages that are relevant for the dependency
+resolving process. That is what is used to generate all the rules which are then
+passed on to the dependency solver.
+In order to improve performance, Composer tries to optimize this `Pool` by removing useless
+package information early on.
+
+If all goes well, you should never notice any issues with it but in case you run into
+an unexpected result such as an unresolvable set of dependencies or conflicts where you
+think Composer is wrong, you might want to disable the optimizer by using the environment
+variable `COMPOSER_POOL_OPTIMIZER` and run the update again like so:
+
+```bash
+COMPOSER_POOL_OPTIMIZER=0 php composer.phar update
+```
+
+Now double check if the result is still the same. It will take significantly longer and use
+a lot more memory to run the dependency resolving process.
+
+If the result is different, you likely hit a problem in the pool optimizer.
+Please [report this issue](https://github.com/composer/composer/issues) so it can be fixed.
diff --git a/app/vendor/composer/composer/doc/articles/vendor-binaries.md b/app/vendor/composer/composer/doc/articles/vendor-binaries.md
index 0022b90b9..6ce952a4e 100644
--- a/app/vendor/composer/composer/doc/articles/vendor-binaries.md
+++ b/app/vendor/composer/composer/doc/articles/vendor-binaries.md
@@ -40,7 +40,8 @@ For the binaries that a package defines directly, nothing happens.
## What happens when Composer is run on a composer.json that has dependencies with vendor binaries listed?
Composer looks for the binaries defined in all of the dependencies. A
-symlink is created from each dependency's binaries to `vendor/bin`.
+proxy file (or two on Windows/WSL) is created from each dependency's
+binaries to `vendor/bin`.
Say package `my-vendor/project-a` has binaries setup like this:
@@ -69,8 +70,62 @@ Running `composer install` for this `composer.json` will look at
all of project-a's binaries and install them to `vendor/bin`.
In this case, Composer will make `vendor/my-vendor/project-a/bin/project-a-bin`
-available as `vendor/bin/project-a-bin`. On a Unix-like platform
-this is accomplished by creating a symlink.
+available as `vendor/bin/project-a-bin`.
+
+## Finding the Composer autoloader from a binary
+
+As of Composer 2.2, a new `$_composer_autoload_path` global variable
+is defined by the bin proxy file, so that when your binary gets executed
+it can use it to easily locate the project's autoloader.
+
+This global will not be available however when running binaries defined
+by the root package itself, so you need to have a fallback in place.
+
+This can look like this for example:
+
+```php
+` (e.g. `@dev`) to let composer know that a given package
+`@` (e.g. `@dev`) to let Composer know that a given package
can be installed in a different stability than your default minimum-stability
setting. All available stability flags are listed on the minimum-stability
section of the [schema page](../04-schema.md#minimum-stability).
@@ -242,7 +242,7 @@ section of the [schema page](../04-schema.md#minimum-stability).
## Testing Version Constraints
-You can test version constraints using [semver.mwl.be](https://semver.mwl.be).
+You can test version constraints using [semver.madewithlove.com](https://semver.madewithlove.com).
Fill in a package name and it will autofill the default version constraint
which Composer would add to your `composer.json` file. You can adjust the
version constraint and the tool will highlight all releases that match.
diff --git a/app/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md b/app/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md
index 986fd5ec8..845204873 100644
--- a/app/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md
+++ b/app/vendor/composer/composer/doc/faqs/how-do-i-install-a-package-to-a-custom-path-for-my-framework.md
@@ -30,7 +30,7 @@ for your package.
As a **package consumer** you can set or override the install path for a package
that requires composer/installers by configuring the `installer-paths` extra. A
useful example would be for a Drupal multisite setup where the package should be
-installed into your sites subdirectory. Here we are overriding the install path
+installed into your site's subdirectory. Here we are overriding the install path
for a module that uses composer/installers, as well as putting all packages of type
`drupal-theme` into a themes folder:
diff --git a/app/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md b/app/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md
index 6299b6d40..77666f6e3 100644
--- a/app/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md
+++ b/app/vendor/composer/composer/doc/faqs/how-to-install-composer-programmatically.md
@@ -39,4 +39,4 @@ wget https://raw.githubusercontent.com/composer/getcomposer.org/76a7060ccb93902c
```
You may replace the commit hash by whatever the last commit hash is on
-https://github.com/composer/getcomposer.org/commits/master
+https://github.com/composer/getcomposer.org/commits/main
diff --git a/app/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md b/app/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md
index 1b3e9d383..bfa23b5b9 100644
--- a/app/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md
+++ b/app/vendor/composer/composer/doc/faqs/how-to-install-untrusted-packages-safely.md
@@ -3,17 +3,23 @@
Certain Composer commands, including `exec`, `install`, and `update` allow third party code to
execute on your system. This is from its "plugins" and "scripts" features. Plugins and scripts have
full access to the user account which runs Composer. For this reason, it is strongly advised to
-**avoid running Composer as super-user/root**.
+**avoid running Composer as super-user/root**. All commands also dispatch events which can be
+caught by plugins so unless explicitly disabled installed plugins will be loaded/executed by **every**
+Composer command.
You can disable plugins and scripts during package installation or updates with the following
syntax so only Composer's code, and no third party code, will execute:
```sh
-composer install --no-plugins --no-scripts ...
-composer update --no-plugins --no-scripts ...
+php composer.phar install --no-plugins --no-scripts ...
+php composer.phar update --no-plugins --no-scripts ...
```
-The `exec` command will always run third party code as the user which runs `composer`.
+Depending on the operating system we have seen cases where it is possible to trigger execution
+of files in the repository using specially crafted `composer.json`. So in general if you do want
+to install untrusted dependencies you should sandbox them completely in a container or equivalent.
-In some cases, like in CI systems or such where you want to install untrusted dependencies, the
-safest way to do it is to run the above command.
+Also note that the `exec` command will always run third party code as the user which runs `composer`.
+
+See [Environment variable - COMPOSER_ALLOW_SUPERUSER](../03-cli.md#composer-allow-superuser)
+for more info on how to disable warning
diff --git a/app/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md b/app/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
index 67d4133d4..32552e067 100644
--- a/app/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
+++ b/app/vendor/composer/composer/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md
@@ -26,7 +26,7 @@ If you really feel like you must do this, you have a few options:
you can add them to your git repo. You can do that with `rm -rf vendor/**/.git`
in ZSH or `find vendor/ -type d -name ".git" -exec rm -rf {} \;` in Bash.
But this means you will have to delete those dependencies from disk before
- running composer update.
+ running `composer update`.
4. Add a .gitignore rule (`/vendor/**/.git`) to ignore all the vendor `.git` folders.
This approach does not require that you delete dependencies from disk prior to
- running a composer update.
+ running a `composer update`.
diff --git a/app/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md b/app/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md
deleted file mode 100644
index 1dff52c40..000000000
--- a/app/vendor/composer/composer/doc/faqs/why-can't-composer-load-repositories-recursively.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Why can't Composer load repositories recursively?
-
-You may run into problems when using custom repositories because Composer does
-not load the repositories of your requirements, so you have to redefine those
-repositories in all your `composer.json` files.
-
-Before going into details as to why this is like that, you have to understand
-that the main use of custom VCS & package repositories is to temporarily try
-some things, or use a fork of a project until your pull request is merged, etc.
-You should not use them to keep track of private packages. For that you should
-rather look into [Private Packagist](https://packagist.com) which lets you
-configure all your private packages in one place, and avoids the slow-downs
-associated with inline VCS repositories.
-
-There are three ways the dependency solver could work with custom repositories:
-
-- Fetch the repositories of root package, get all the packages from the defined
-repositories, then resolve requirements. This is the current state and it works well
-except for the limitation of not loading repositories recursively.
-
-- Fetch the repositories of root package, while initializing packages from the
-defined repos, initialize recursively all repos found in those packages, and
-their package's packages, etc, then resolve requirements. It could work, but it
-slows down the initialization a lot since VCS repos can each take a few seconds,
-and it could end up in a completely broken state since many versions of a package
-could define the same packages inside a package repository, but with different
-dist/source. There are many ways this could go wrong.
-
-- Fetch the repositories of root package, then fetch the repositories of the
-first level dependencies, then fetch the repositories of their dependencies, etc,
-then resolve requirements. This sounds more efficient, but it suffers from the
-same problems as the second solution, because loading the repositories of the
-dependencies is not as easy as it sounds. You need to load all the repos of all
-the potential matches for a requirement, which again might have conflicting
-package definitions.
diff --git a/app/vendor/composer/composer/res/composer-schema.json b/app/vendor/composer/composer/res/composer-schema.json
index bb86996e7..166a80820 100644
--- a/app/vendor/composer/composer/res/composer-schema.json
+++ b/app/vendor/composer/composer/res/composer-schema.json
@@ -8,18 +8,38 @@
"description": "Package name, including 'vendor-name/' prefix.",
"pattern": "^[a-z0-9]([_.-]?[a-z0-9]+)*/[a-z0-9](([_.]?|-{0,2})[a-z0-9]+)*$"
},
+ "description": {
+ "type": "string",
+ "description": "Short package description."
+ },
+ "license": {
+ "type": ["string", "array"],
+ "description": "License name. Or an array of license names."
+ },
"type": {
"description": "Package type, either 'library' for common packages, 'composer-plugin' for plugins, 'metapackage' for empty packages, or a custom type ([a-z0-9-]+) defined by whatever project this package applies to.",
"type": "string",
"pattern": "^[a-z0-9-]+$"
},
- "target-dir": {
- "description": "DEPRECATED: Forces the package to be installed into the given subdirectory path. This is used for autoloading PSR-0 packages that do not contain their full path. Use forward slashes for cross-platform compatibility.",
- "type": "string"
+ "abandoned": {
+ "type": ["boolean", "string"],
+ "description": "Indicates whether this package has been abandoned, it can be boolean or a package name/URL pointing to a recommended alternative. Defaults to false."
},
- "description": {
+ "version": {
"type": "string",
- "description": "Short package description."
+ "description": "Package version, see https://getcomposer.org/doc/04-schema.md#version for more info on valid schemes.",
+ "pattern": "^v?\\d+(\\.\\d+){0,3}|^dev-"
+ },
+ "default-branch": {
+ "type": ["boolean"],
+ "description": "Internal use only, do not specify this in composer.json. Indicates whether this version is the default branch of the linked VCS repository. Defaults to false."
+ },
+ "non-feature-branches": {
+ "type": ["array"],
+ "description": "A set of string or regex patterns for non-numeric branch names that will not be handled as feature branches.",
+ "items": {
+ "type": "string"
+ }
},
"keywords": {
"type": "array",
@@ -28,77 +48,259 @@
"description": "A tag/keyword that this package relates to."
}
},
- "homepage": {
- "type": "string",
- "description": "Homepage URL for the project.",
- "format": "uri"
- },
"readme": {
"type": "string",
"description": "Relative path to the readme document."
},
- "version": {
- "type": "string",
- "description": "Package version, see https://getcomposer.org/doc/04-schema.md#version for more info on valid schemes.",
- "pattern": "^v?\\d+(\\.\\d+){0,3}|^dev-"
- },
"time": {
"type": "string",
"description": "Package release date, in 'YYYY-MM-DD', 'YYYY-MM-DD HH:MM:SS' or 'YYYY-MM-DDTHH:MM:SSZ' format."
},
- "license": {
- "type": ["string", "array"],
- "description": "License name. Or an array of license names."
- },
"authors": {
"$ref": "#/definitions/authors"
},
+ "homepage": {
+ "type": "string",
+ "description": "Homepage URL for the project.",
+ "format": "uri"
+ },
+ "support": {
+ "type": "object",
+ "properties": {
+ "email": {
+ "type": "string",
+ "description": "Email address for support.",
+ "format": "email"
+ },
+ "issues": {
+ "type": "string",
+ "description": "URL to the issue tracker.",
+ "format": "uri"
+ },
+ "forum": {
+ "type": "string",
+ "description": "URL to the forum.",
+ "format": "uri"
+ },
+ "wiki": {
+ "type": "string",
+ "description": "URL to the wiki.",
+ "format": "uri"
+ },
+ "irc": {
+ "type": "string",
+ "description": "IRC channel for support, as irc://server/channel.",
+ "format": "uri"
+ },
+ "chat": {
+ "type": "string",
+ "description": "URL to the support chat.",
+ "format": "uri"
+ },
+ "source": {
+ "type": "string",
+ "description": "URL to browse or download the sources.",
+ "format": "uri"
+ },
+ "docs": {
+ "type": "string",
+ "description": "URL to the documentation.",
+ "format": "uri"
+ },
+ "rss": {
+ "type": "string",
+ "description": "URL to the RSS feed.",
+ "format": "uri"
+ }
+ }
+ },
+ "funding": {
+ "type": "array",
+ "description": "A list of options to fund the development and maintenance of the package.",
+ "items": {
+ "type": "object",
+ "properties": {
+ "type": {
+ "type": "string",
+ "description": "Type of funding or platform through which funding is possible."
+ },
+ "url": {
+ "type": "string",
+ "description": "URL to a website with details on funding and a way to fund the package.",
+ "format": "uri"
+ }
+ }
+ }
+ },
+ "source": {
+ "$ref": "#/definitions/source"
+ },
+ "dist": {
+ "$ref": "#/definitions/dist"
+ },
+ "_comment": {
+ "type": ["array", "string"],
+ "description": "A key to store comments in"
+ },
"require": {
"type": "object",
- "description": "This is a hash of package name (keys) and version constraints (values) that are required to run this package.",
+ "description": "This is an object of package name (keys) and version constraints (values) that are required to run this package.",
+ "additionalProperties": {
+ "type": "string"
+ }
+ },
+ "require-dev": {
+ "type": "object",
+ "description": "This is an object of package name (keys) and version constraints (values) that this package requires for developing it (testing tools and such).",
"additionalProperties": {
"type": "string"
}
},
"replace": {
"type": "object",
- "description": "This is a hash of package name (keys) and version constraints (values) that can be replaced by this package.",
+ "description": "This is an object of package name (keys) and version constraints (values) that can be replaced by this package.",
"additionalProperties": {
"type": "string"
}
},
"conflict": {
"type": "object",
- "description": "This is a hash of package name (keys) and version constraints (values) that conflict with this package.",
+ "description": "This is an object of package name (keys) and version constraints (values) that conflict with this package.",
"additionalProperties": {
"type": "string"
}
},
"provide": {
"type": "object",
- "description": "This is a hash of package name (keys) and version constraints (values) that this package provides in addition to this package's name.",
+ "description": "This is an object of package name (keys) and version constraints (values) that this package provides in addition to this package's name.",
"additionalProperties": {
"type": "string"
}
},
- "require-dev": {
+ "suggest": {
"type": "object",
- "description": "This is a hash of package name (keys) and version constraints (values) that this package requires for developing it (testing tools and such).",
+ "description": "This is an object of package name (keys) and descriptions (values) that this package suggests work well with it (this will be suggested to the user during installation).",
"additionalProperties": {
"type": "string"
}
},
- "suggest": {
- "type": "object",
- "description": "This is a hash of package name (keys) and descriptions (values) that this package suggests work well with it (this will be suggested to the user during installation).",
+ "repositories": {
+ "type": ["object", "array"],
+ "description": "A set of additional repositories where packages can be found.",
"additionalProperties": {
+ "anyOf": [
+ { "$ref": "#/definitions/repository" },
+ { "type": "boolean", "enum": [false] }
+ ]
+ },
+ "items": {
+ "anyOf": [
+ { "$ref": "#/definitions/repository" },
+ {
+ "type": "object",
+ "additionalProperties": { "type": "boolean", "enum": [false] },
+ "minProperties": 1,
+ "maxProperties": 1
+ }
+ ]
+ }
+ },
+ "minimum-stability": {
+ "type": ["string"],
+ "description": "The minimum stability the packages must have to be install-able. Possible values are: dev, alpha, beta, RC, stable.",
+ "enum": ["dev", "alpha", "beta", "rc", "RC", "stable"]
+ },
+ "prefer-stable": {
+ "type": ["boolean"],
+ "description": "If set to true, stable packages will be preferred to dev packages when possible, even if the minimum-stability allows unstable packages."
+ },
+ "autoload": {
+ "$ref": "#/definitions/autoload"
+ },
+ "autoload-dev": {
+ "type": "object",
+ "description": "Description of additional autoload rules for development purpose (eg. a test suite).",
+ "properties": {
+ "psr-0": {
+ "type": "object",
+ "description": "This is an object of namespaces (keys) and the directories they can be found into (values, can be arrays of paths) by the autoloader.",
+ "additionalProperties": {
+ "type": ["string", "array"],
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "psr-4": {
+ "type": "object",
+ "description": "This is an object of namespaces (keys) and the PSR-4 directories they can map to (values, can be arrays of paths) by the autoloader.",
+ "additionalProperties": {
+ "type": ["string", "array"],
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "classmap": {
+ "type": "array",
+ "description": "This is an array of paths that contain classes to be included in the class-map generation process."
+ },
+ "files": {
+ "type": "array",
+ "description": "This is an array of files that are always required on every request."
+ }
+ }
+ },
+ "target-dir": {
+ "description": "DEPRECATED: Forces the package to be installed into the given subdirectory path. This is used for autoloading PSR-0 packages that do not contain their full path. Use forward slashes for cross-platform compatibility.",
+ "type": "string"
+ },
+ "include-path": {
+ "type": ["array"],
+ "description": "DEPRECATED: A list of directories which should get added to PHP's include path. This is only present to support legacy projects, and all new code should preferably use autoloading.",
+ "items": {
+ "type": "string"
+ }
+ },
+ "bin": {
+ "type": ["string", "array"],
+ "description": "A set of files, or a single file, that should be treated as binaries and symlinked into bin-dir (from config).",
+ "items": {
"type": "string"
}
},
+ "archive": {
+ "type": ["object"],
+ "description": "Options for creating package archives for distribution.",
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "A base name for archive."
+ },
+ "exclude": {
+ "type": "array",
+ "description": "A list of patterns for paths to exclude or include if prefixed with an exclamation mark."
+ }
+ }
+ },
"config": {
"type": "object",
"description": "Composer options.",
"properties": {
+ "platform": {
+ "type": "object",
+ "description": "This is an object of package name (keys) and version (values) that will be used to mock the platform packages on this machine.",
+ "additionalProperties": {
+ "type": ["string", "boolean"]
+ }
+ },
+ "allow-plugins": {
+ "type": ["object", "boolean"],
+ "description": "This is an object of {\"pattern\": true|false} with packages which are allowed to be loaded as plugins, or true to allow all, false to allow none. Defaults to {} which prompts when an unknown plugin is added.",
+ "additionalProperties": {
+ "type": ["boolean"]
+ }
+ },
"process-timeout": {
"type": "integer",
"description": "The timeout in seconds for process executions, defaults to 300 (5mins)."
@@ -107,9 +309,16 @@
"type": "boolean",
"description": "If true, the Composer autoloader will also look for classes in the PHP include path."
},
+ "use-parent-dir": {
+ "type": ["string", "boolean"],
+ "description": "When running Composer in a directory where there is no composer.json, if there is one present in a directory above Composer will by default ask you whether you want to use that directory's composer.json instead. One of: true (always use parent if needed), false (never ask or use it) or \"prompt\" (ask every time), defaults to prompt."
+ },
"preferred-install": {
"type": ["string", "object"],
- "description": "The install method Composer will prefer to use, defaults to auto and can be any of source, dist, auto, or a hash of {\"pattern\": \"preference\"}."
+ "description": "The install method Composer will prefer to use, defaults to auto and can be any of source, dist, auto, or an object of {\"pattern\": \"preference\"}.",
+ "additionalProperties": {
+ "type": ["string"]
+ }
},
"notify-on-install": {
"type": "boolean",
@@ -124,21 +333,21 @@
},
"github-oauth": {
"type": "object",
- "description": "A hash of domain name => github API oauth tokens, typically {\"github.com\":\"\"}.",
+ "description": "An object of domain name => github API oauth tokens, typically {\"github.com\":\"\"}.",
"additionalProperties": {
"type": "string"
}
},
"gitlab-oauth": {
"type": "object",
- "description": "A hash of domain name => gitlab API oauth tokens, typically {\"gitlab.com\":\"\"}.",
+ "description": "An object of domain name => gitlab API oauth tokens, typically {\"gitlab.com\":\"\"}.",
"additionalProperties": {
"type": "string"
}
},
"gitlab-token": {
"type": "object",
- "description": "A hash of domain name => gitlab private tokens, typically {\"gitlab.com\":\"\"}.",
+ "description": "An object of domain name => gitlab private tokens, typically {\"gitlab.com\":\"\"}.",
"additionalProperties": {
"type": "string"
}
@@ -149,7 +358,7 @@
},
"bearer": {
"type": "object",
- "description": "A hash of domain name => bearer authentication token, for example {\"example.com\":\"\"}.",
+ "description": "An object of domain name => bearer authentication token, for example {\"example.com\":\"\"}.",
"additionalProperties": {
"type": "string"
}
@@ -179,7 +388,7 @@
},
"http-basic": {
"type": "object",
- "description": "A hash of domain name => {\"username\": \"...\", \"password\": \"...\"}.",
+ "description": "An object of domain name => {\"username\": \"...\", \"password\": \"...\"}.",
"additionalProperties": {
"type": "object",
"required": ["username", "password"],
@@ -199,13 +408,6 @@
"type": ["string", "boolean"],
"description": "What to do after prompting for authentication, one of: true (store), false (do not store) or \"prompt\" (ask every time), defaults to prompt."
},
- "platform": {
- "type": "object",
- "description": "This is a hash of package name (keys) and version (values) that will be used to mock the platform packages on this machine.",
- "additionalProperties": {
- "type": "string"
- }
- },
"vendor-dir": {
"type": "string",
"description": "The location where all packages are installed, defaults to \"vendor\"."
@@ -251,8 +453,8 @@
"description": "Whether to use the Composer cache in read-only mode."
},
"bin-compat": {
- "enum": ["auto", "full", "symlink"],
- "description": "The compatibility of the binaries, defaults to \"auto\" (automatically guessed), can be \"full\" (compatible with both Windows and Unix-based systems) and \"symlink\" (symlink also for WSL)."
+ "enum": ["auto", "full", "proxy", "symlink"],
+ "description": "The compatibility of the binaries, defaults to \"auto\" (automatically guessed), can be \"full\" (compatible with both Windows and Unix-based systems) and \"proxy\" (only bash-style proxy)."
},
"discard-changes": {
"type": ["string", "boolean"],
@@ -296,6 +498,24 @@
"type": "string"
}
},
+ "bitbucket-oauth": {
+ "type": "object",
+ "description": "An object of domain name => {\"consumer-key\": \"...\", \"consumer-secret\": \"...\"}.",
+ "additionalProperties": {
+ "type": "object",
+ "required": ["consumer-key", "consumer-secret"],
+ "properties": {
+ "consumer-key": {
+ "type": "string",
+ "description": "The consumer-key used for OAuth authentication"
+ },
+ "consumer-secret": {
+ "type": "string",
+ "description": "The consumer-secret used for OAuth authentication"
+ }
+ }
+ }
+ },
"use-github-api": {
"type": "boolean",
"description": "Defaults to true. If set to false, globally disables the use of the GitHub API for all GitHub repositories and clones the repository as it would for any other repository."
@@ -331,101 +551,6 @@
"description": "Arbitrary extra data that can be used by plugins, for example, package of type composer-plugin may have a 'class' key defining an installer class name.",
"additionalProperties": true
},
- "autoload": {
- "$ref": "#/definitions/autoload"
- },
- "autoload-dev": {
- "type": "object",
- "description": "Description of additional autoload rules for development purpose (eg. a test suite).",
- "properties": {
- "psr-0": {
- "type": "object",
- "description": "This is a hash of namespaces (keys) and the directories they can be found into (values, can be arrays of paths) by the autoloader.",
- "additionalProperties": {
- "type": ["string", "array"],
- "items": {
- "type": "string"
- }
- }
- },
- "psr-4": {
- "type": "object",
- "description": "This is a hash of namespaces (keys) and the PSR-4 directories they can map to (values, can be arrays of paths) by the autoloader.",
- "additionalProperties": {
- "type": ["string", "array"],
- "items": {
- "type": "string"
- }
- }
- },
- "classmap": {
- "type": "array",
- "description": "This is an array of paths that contain classes to be included in the class-map generation process."
- },
- "files": {
- "type": "array",
- "description": "This is an array of files that are always required on every request."
- }
- }
- },
- "archive": {
- "type": ["object"],
- "description": "Options for creating package archives for distribution.",
- "properties": {
- "name": {
- "type": "string",
- "description": "A base name for archive."
- },
- "exclude": {
- "type": "array",
- "description": "A list of patterns for paths to exclude or include if prefixed with an exclamation mark."
- }
- }
- },
- "repositories": {
- "type": ["object", "array"],
- "description": "A set of additional repositories where packages can be found.",
- "additionalProperties": {
- "anyOf": [
- { "$ref": "#/definitions/repository" },
- { "type": "boolean", "enum": [false] }
- ]
- },
- "items": {
- "anyOf": [
- { "$ref": "#/definitions/repository" },
- {
- "type": "object",
- "additionalProperties": { "type": "boolean", "enum": [false] },
- "minProperties": 1,
- "maxProperties": 1
- }
- ]
- }
- },
- "minimum-stability": {
- "type": ["string"],
- "description": "The minimum stability the packages must have to be install-able. Possible values are: dev, alpha, beta, RC, stable.",
- "enum": ["dev", "alpha", "beta", "rc", "RC", "stable"]
- },
- "prefer-stable": {
- "type": ["boolean"],
- "description": "If set to true, stable packages will be preferred to dev packages when possible, even if the minimum-stability allows unstable packages."
- },
- "bin": {
- "type": ["string", "array"],
- "description": "A set of files, or a single file, that should be treated as binaries and symlinked into bin-dir (from config).",
- "items": {
- "type": "string"
- }
- },
- "include-path": {
- "type": ["array"],
- "description": "DEPRECATED: A list of directories which should get added to PHP's include path. This is only present to support legacy projects, and all new code should preferably use autoloading.",
- "items": {
- "type": "string"
- }
- },
"scripts": {
"type": ["object"],
"description": "Script listeners that will be executed before/after some events.",
@@ -502,93 +627,6 @@
"additionalProperties": {
"type": "string"
}
- },
- "support": {
- "type": "object",
- "properties": {
- "email": {
- "type": "string",
- "description": "Email address for support.",
- "format": "email"
- },
- "issues": {
- "type": "string",
- "description": "URL to the issue tracker.",
- "format": "uri"
- },
- "forum": {
- "type": "string",
- "description": "URL to the forum.",
- "format": "uri"
- },
- "wiki": {
- "type": "string",
- "description": "URL to the wiki.",
- "format": "uri"
- },
- "irc": {
- "type": "string",
- "description": "IRC channel for support, as irc://server/channel.",
- "format": "uri"
- },
- "chat": {
- "type": "string",
- "description": "URL to the support chat.",
- "format": "uri"
- },
- "source": {
- "type": "string",
- "description": "URL to browse or download the sources.",
- "format": "uri"
- },
- "docs": {
- "type": "string",
- "description": "URL to the documentation.",
- "format": "uri"
- },
- "rss": {
- "type": "string",
- "description": "URL to the RSS feed.",
- "format": "uri"
- }
- }
- },
- "funding": {
- "type": "array",
- "description": "A list of options to fund the development and maintenance of the package.",
- "items": {
- "type": "object",
- "properties": {
- "type": {
- "type": "string",
- "description": "Type of funding or platform through which funding is possible."
- },
- "url": {
- "type": "string",
- "description": "URL to a website with details on funding and a way to fund the package.",
- "format": "uri"
- }
- }
- }
- },
- "non-feature-branches": {
- "type": ["array"],
- "description": "A set of string or regex patterns for non-numeric branch names that will not be handled as feature branches.",
- "items": {
- "type": "string"
- }
- },
- "default-branch": {
- "type": ["boolean"],
- "description": "Internal use only, do not specify this in composer.json. Indicates whether this version is the default branch of the linked VCS repository. Defaults to false."
- },
- "abandoned": {
- "type": ["boolean", "string"],
- "description": "Indicates whether this package has been abandoned, it can be boolean or a package name/URL pointing to a recommended alternative. Defaults to false."
- },
- "_comment": {
- "type": ["array", "string"],
- "description": "A key to store comments in"
}
},
"definitions": {
@@ -627,7 +665,7 @@
"properties": {
"psr-0": {
"type": "object",
- "description": "This is a hash of namespaces (keys) and the directories they can be found in (values, can be arrays of paths) by the autoloader.",
+ "description": "This is an object of namespaces (keys) and the directories they can be found in (values, can be arrays of paths) by the autoloader.",
"additionalProperties": {
"type": ["string", "array"],
"items": {
@@ -637,7 +675,7 @@
},
"psr-4": {
"type": "object",
- "description": "This is a hash of namespaces (keys) and the PSR-4 directories they can map to (values, can be arrays of paths) by the autoloader.",
+ "description": "This is an object of namespaces (keys) and the PSR-4 directories they can map to (values, can be arrays of paths) by the autoloader.",
"additionalProperties": {
"type": ["string", "array"],
"items": {
@@ -701,7 +739,7 @@
"type": "object",
"required": ["type", "url"],
"properties": {
- "type": { "type": "string", "enum": ["vcs", "github", "git", "gitlab", "git-bitbucket", "hg", "hg-bitbucket", "fossil", "perforce", "svn"] },
+ "type": { "type": "string", "enum": ["vcs", "github", "git", "gitlab", "bitbucket", "git-bitbucket", "hg", "fossil", "perforce", "svn"] },
"url": { "type": "string" },
"canonical": { "type": "boolean" },
"only": {
@@ -939,46 +977,52 @@
}
},
"source": {
- "type": "object",
- "required": ["type", "url", "reference"],
- "properties": {
- "type": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "reference": {
- "type": "string"
- },
- "mirrors": {
- "type": "array"
- }
- }
+ "$ref": "#/definitions/source"
},
"dist": {
- "type": "object",
- "required": ["type", "url"],
- "properties": {
- "type": {
- "type": "string"
- },
- "url": {
- "type": "string"
- },
- "reference": {
- "type": "string"
- },
- "shasum": {
- "type": "string"
- },
- "mirrors": {
- "type": "array"
- }
- }
+ "$ref": "#/definitions/dist"
}
},
"additionalProperties": true
+ },
+ "source": {
+ "type": "object",
+ "required": ["type", "url", "reference"],
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "reference": {
+ "type": "string"
+ },
+ "mirrors": {
+ "type": "array"
+ }
+ }
+ },
+ "dist": {
+ "type": "object",
+ "required": ["type", "url"],
+ "properties": {
+ "type": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ },
+ "reference": {
+ "type": "string"
+ },
+ "shasum": {
+ "type": "string"
+ },
+ "mirrors": {
+ "type": "array"
+ }
+ }
}
}
}
diff --git a/app/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php b/app/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php
index 47c888ab7..3496e1dc4 100644
--- a/app/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php
+++ b/app/vendor/composer/composer/src/Composer/Autoload/AutoloadGenerator.php
@@ -1,4 +1,4 @@
-eventDispatcher = $eventDispatcher;
$this->io = $io;
+
+ $this->platformRequirementFilter = PlatformRequirementFilterFactory::ignoreNothing();
}
- public function setDevMode($devMode = true)
+ /**
+ * @param bool $devMode
+ * @return void
+ */
+ public function setDevMode(bool $devMode = true)
{
- $this->devMode = (bool) $devMode;
+ $this->devMode = $devMode;
}
/**
- * Whether or not generated autoloader considers the class map
- * authoritative.
+ * Whether generated autoloader considers the class map authoritative.
*
* @param bool $classMapAuthoritative
+ * @return void
*/
- public function setClassMapAuthoritative($classMapAuthoritative)
+ public function setClassMapAuthoritative(bool $classMapAuthoritative)
{
- $this->classMapAuthoritative = (bool) $classMapAuthoritative;
+ $this->classMapAuthoritative = $classMapAuthoritative;
}
/**
- * Whether or not generated autoloader considers APCu caching.
+ * Whether generated autoloader considers APCu caching.
*
* @param bool $apcu
* @param string|null $apcuPrefix
+ * @return void
*/
- public function setApcu($apcu, $apcuPrefix = null)
+ public function setApcu(bool $apcu, ?string $apcuPrefix = null)
{
- $this->apcu = (bool) $apcu;
- $this->apcuPrefix = $apcuPrefix !== null ? (string) $apcuPrefix : $apcuPrefix;
+ $this->apcu = $apcu;
+ $this->apcuPrefix = $apcuPrefix !== null ? $apcuPrefix : $apcuPrefix;
}
/**
- * Set whether to run scripts or not
+ * Whether to run scripts or not
*
* @param bool $runScripts
+ * @return void
*/
- public function setRunScripts($runScripts = true)
+ public function setRunScripts(bool $runScripts = true)
{
- $this->runScripts = (bool) $runScripts;
+ $this->runScripts = $runScripts;
}
/**
- * Sets whether platform requirements should be ignored
+ * Whether platform requirements should be ignored.
*
* If this is set to true, the platform check file will not be generated
* If this is set to false, the platform check file will be generated with all requirements
* If this is set to string[], those packages will be ignored from the platform check file
*
- * @param array|bool $ignorePlatformReqs
+ * @param bool|string[] $ignorePlatformReqs
+ * @return void
+ *
+ * @deprecated use setPlatformRequirementFilter instead
*/
public function setIgnorePlatformRequirements($ignorePlatformReqs)
{
- if (is_array($ignorePlatformReqs)) {
- $this->ignorePlatformReqs = array_filter($ignorePlatformReqs, function ($req) {
- return PlatformRepository::isPlatformPackage($req);
- });
- } else {
- $this->ignorePlatformReqs = (bool) $ignorePlatformReqs;
- }
+ trigger_error('AutoloadGenerator::setIgnorePlatformRequirements is deprecated since Composer 2.2, use setPlatformRequirementFilter instead.', E_USER_DEPRECATED);
+
+ $this->setPlatformRequirementFilter(PlatformRequirementFilterFactory::fromBoolOrList($ignorePlatformReqs));
}
- public function dump(Config $config, InstalledRepositoryInterface $localRepo, RootPackageInterface $rootPackage, InstallationManager $installationManager, $targetDir, $scanPsrPackages = false, $suffix = '')
+ /**
+ * @return void
+ */
+ public function setPlatformRequirementFilter(PlatformRequirementFilterInterface $platformRequirementFilter)
+ {
+ $this->platformRequirementFilter = $platformRequirementFilter;
+ }
+
+ /**
+ * @param string $targetDir
+ * @param bool $scanPsrPackages
+ * @return int
+ * @throws \Seld\JsonLint\ParsingException
+ * @throws \RuntimeException
+ */
+ public function dump(Config $config, InstalledRepositoryInterface $localRepo, RootPackageInterface $rootPackage, InstallationManager $installationManager, string $targetDir, bool $scanPsrPackages = false, ?string $suffix = null)
{
if ($this->classMapAuthoritative) {
// Force scanPsrPackages when classmap is authoritative
@@ -167,7 +191,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
}
$this->eventDispatcher->dispatchScript(ScriptEvents::PRE_AUTOLOAD_DUMP, $this->devMode, array(), array(
- 'optimize' => (bool) $scanPsrPackages,
+ 'optimize' => $scanPsrPackages,
));
}
@@ -176,7 +200,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
// Do not remove double realpath() calls.
// Fixes failing Windows realpath() implementation.
// See https://bugs.php.net/bug.php?id=72738
- $basePath = $filesystem->normalizePath(realpath(realpath(getcwd())));
+ $basePath = $filesystem->normalizePath(realpath(realpath(Platform::getCwd())));
$vendorPath = $filesystem->normalizePath(realpath(realpath($config->get('vendor-dir'))));
$useGlobalIncludePath = (bool) $config->get('use-include-path');
$prependAutoloader = $config->get('prepend-autoloader') === false ? 'false' : 'true';
@@ -184,7 +208,6 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
$filesystem->ensureDirectoryExists($targetDir);
$vendorPathCode = $filesystem->findShortestPathCode(realpath($targetDir), $vendorPath, true);
- $vendorPathCode52 = str_replace('__DIR__', 'dirname(__FILE__)', $vendorPathCode);
$vendorPathToTargetDirCode = $filesystem->findShortestPathCode($vendorPath, realpath($targetDir), true);
$appBaseDirCode = $filesystem->findShortestPathCode($vendorPath, $basePath, true);
@@ -195,7 +218,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
// autoload_namespaces.php @generated by Composer
-\$vendorDir = $vendorPathCode52;
+\$vendorDir = $vendorPathCode;
\$baseDir = $appBaseDirCode;
return array(
@@ -207,7 +230,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
// autoload_psr4.php @generated by Composer
-\$vendorDir = $vendorPathCode52;
+\$vendorDir = $vendorPathCode;
\$baseDir = $appBaseDirCode;
return array(
@@ -255,7 +278,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
// autoload_classmap.php @generated by Composer
-\$vendorDir = $vendorPathCode52;
+\$vendorDir = $vendorPathCode;
\$baseDir = $appBaseDirCode;
return array(
@@ -267,7 +290,7 @@ public function dump(Config $config, InstalledRepositoryInterface $localRepo, Ro
$mainAutoload = $rootPackage->getAutoload();
if ($rootPackage->getTargetDir() && !empty($mainAutoload['psr-0'])) {
$levels = substr_count($filesystem->normalizePath($rootPackage->getTargetDir()), '/') + 1;
- $prefixes = implode(', ', array_map(function ($prefix) {
+ $prefixes = implode(', ', array_map(function ($prefix): string {
return var_export($prefix, true);
}, array_keys($mainAutoload['psr-0'])));
$baseDirFromTargetDirCode = $filesystem->findShortestPathCode($targetDir, $basePath, true);
@@ -333,12 +356,12 @@ public static function autoload(\$class)
}
}
- foreach ($ambiguousClasses as $className => $ambigiousPaths) {
+ foreach ($ambiguousClasses as $className => $ambiguousPaths) {
$cleanPath = str_replace(array('$vendorDir . \'', '$baseDir . \'', "',\n"), array($vendorPath, $basePath, ''), $classMap[$className]);
$this->io->writeError(
'Warning: Ambiguous class resolution, "'.$className.'"'.
- ' was found '. (count($ambigiousPaths) + 1) .'x: in "'.$cleanPath.'" and "'. implode('", "', $ambigiousPaths) .'", the first will be used.'
+ ' was found '. (count($ambiguousPaths) + 1) .'x: in "'.$cleanPath.'" and "'. implode('", "', $ambiguousPaths) .'", the first will be used.'
);
}
@@ -349,16 +372,23 @@ public static function autoload(\$class)
}
$classmapFile .= ");\n";
- if (!$suffix) {
- if (!$config->get('autoloader-suffix') && Filesystem::isReadable($vendorPath.'/autoload.php')) {
+ if ('' === $suffix) {
+ $suffix = null;
+ }
+ if (null === $suffix) {
+ $suffix = $config->get('autoloader-suffix');
+
+ // carry over existing autoload.php's suffix if possible and none is configured
+ if (null === $suffix && Filesystem::isReadable($vendorPath.'/autoload.php')) {
$content = file_get_contents($vendorPath.'/autoload.php');
- if (preg_match('{ComposerAutoloaderInit([^:\s]+)::}', $content, $match)) {
+ if (Preg::isMatch('{ComposerAutoloaderInit([^:\s]+)::}', $content, $match)) {
$suffix = $match[1];
}
}
- if (!$suffix) {
- $suffix = $config->get('autoloader-suffix') ?: md5(uniqid('', true));
+ // generate one if we still haven't got a suffix
+ if (null === $suffix) {
+ $suffix = md5(uniqid('', true));
}
}
@@ -366,22 +396,22 @@ public static function autoload(\$class)
$filesystem->filePutContentsIfModified($targetDir.'/autoload_psr4.php', $psr4File);
$filesystem->filePutContentsIfModified($targetDir.'/autoload_classmap.php', $classmapFile);
$includePathFilePath = $targetDir.'/include_paths.php';
- if ($includePathFileContents = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode52, $appBaseDirCode)) {
+ if ($includePathFileContents = $this->getIncludePathsFile($packageMap, $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode)) {
$filesystem->filePutContentsIfModified($includePathFilePath, $includePathFileContents);
} elseif (file_exists($includePathFilePath)) {
unlink($includePathFilePath);
}
$includeFilesFilePath = $targetDir.'/autoload_files.php';
- if ($includeFilesFileContents = $this->getIncludeFilesFile($autoloads['files'], $filesystem, $basePath, $vendorPath, $vendorPathCode52, $appBaseDirCode)) {
+ if ($includeFilesFileContents = $this->getIncludeFilesFile($autoloads['files'], $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode)) {
$filesystem->filePutContentsIfModified($includeFilesFilePath, $includeFilesFileContents);
} elseif (file_exists($includeFilesFilePath)) {
unlink($includeFilesFilePath);
}
- $filesystem->filePutContentsIfModified($targetDir.'/autoload_static.php', $this->getStaticFile($suffix, $targetDir, $vendorPath, $basePath, $staticPhpVersion));
- $checkPlatform = $config->get('platform-check') && $this->ignorePlatformReqs !== true;
+ $filesystem->filePutContentsIfModified($targetDir.'/autoload_static.php', $this->getStaticFile($suffix, $targetDir, $vendorPath, $basePath));
+ $checkPlatform = $config->get('platform-check') && !($this->platformRequirementFilter instanceof IgnoreAllPlatformRequirementFilter);
$platformCheckContent = null;
if ($checkPlatform) {
- $platformCheckContent = $this->getPlatformCheck($packageMap, $this->ignorePlatformReqs ?: array(), $config->get('platform-check'), $devPackageNames);
+ $platformCheckContent = $this->getPlatformCheck($packageMap, $config->get('platform-check'), $devPackageNames);
if (null === $platformCheckContent) {
$checkPlatform = false;
}
@@ -392,7 +422,7 @@ public static function autoload(\$class)
unlink($targetDir.'/platform_check.php');
}
$filesystem->filePutContentsIfModified($vendorPath.'/autoload.php', $this->getAutoloadFile($vendorPathToTargetDirCode, $suffix));
- $filesystem->filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion, $checkPlatform));
+ $filesystem->filePutContentsIfModified($targetDir.'/autoload_real.php', $this->getAutoloadRealFile(true, (bool) $includePathFileContents, $targetDirLoader, (bool) $includeFilesFileContents, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $checkPlatform));
$filesystem->safeCopy(__DIR__.'/ClassLoader.php', $targetDir.'/ClassLoader.php');
$filesystem->safeCopy(__DIR__.'/../../../LICENSE', $targetDir.'/LICENSE');
@@ -406,13 +436,25 @@ public static function autoload(\$class)
return count($classMap);
}
- private function addClassMapCode($filesystem, $basePath, $vendorPath, $dir, $excluded, $namespaceFilter, $autoloadType, array $classMap, array &$ambiguousClasses, array &$scannedFiles)
+ /**
+ * @param string $basePath
+ * @param string $vendorPath
+ * @param string $dir
+ * @param null|array $excluded
+ * @param null|string $namespaceFilter
+ * @param null|string $autoloadType
+ * @param array $classMap
+ * @param array> $ambiguousClasses
+ * @param array $scannedFiles
+ * @return array
+ */
+ private function addClassMapCode(Filesystem $filesystem, string $basePath, string $vendorPath, string $dir, ?array $excluded, ?string $namespaceFilter, ?string $autoloadType, array $classMap, array &$ambiguousClasses, array &$scannedFiles): array
{
foreach ($this->generateClassMap($dir, $excluded, $namespaceFilter, $autoloadType, true, $scannedFiles) as $class => $path) {
$pathCode = $this->getPathCode($filesystem, $basePath, $vendorPath, $path).",\n";
if (!isset($classMap[$class])) {
$classMap[$class] = $pathCode;
- } elseif ($this->io && $classMap[$class] !== $pathCode && !preg_match('{/(test|fixture|example|stub)s?/}i', strtr($classMap[$class].' '.$path, '\\', '/'))) {
+ } elseif ($this->io && $classMap[$class] !== $pathCode && !Preg::isMatch('{/(test|fixture|example|stub)s?/}i', strtr($classMap[$class].' '.$path, '\\', '/'))) {
$ambiguousClasses[$class][] = $path;
}
}
@@ -421,9 +463,15 @@ private function addClassMapCode($filesystem, $basePath, $vendorPath, $dir, $exc
}
/**
- * @param ?array $excluded
+ * @param string $dir
+ * @param null|array $excluded
+ * @param null|string $namespaceFilter
+ * @param null|string $autoloadType
+ * @param bool $showAmbiguousWarning
+ * @param array $scannedFiles
+ * @return array
*/
- private function generateClassMap($dir, $excluded, $namespaceFilter, $autoloadType, $showAmbiguousWarning, array &$scannedFiles)
+ private function generateClassMap(string $dir, ?array $excluded, ?string $namespaceFilter, ?string $autoloadType, bool $showAmbiguousWarning, array &$scannedFiles): array
{
if ($excluded) {
// filter excluded patterns here to only use those matching $dir
@@ -434,7 +482,7 @@ private function generateClassMap($dir, $excluded, $namespaceFilter, $autoloadTy
$dirMatch = preg_quote(strtr(realpath($dir), '\\', '/'));
foreach ($excluded as $index => $pattern) {
// extract the constant string prefix of the pattern here, until we reach a non-escaped regex special character
- $pattern = preg_replace('{^(([^.+*?\[^\]$(){}=!<>|:\\\\#-]+|\\\\[.+*?\[^\]$(){}=!<>|:#-])*).*}', '$1', $pattern);
+ $pattern = Preg::replace('{^(([^.+*?\[^\]$(){}=!<>|:\\\\#-]+|\\\\[.+*?\[^\]$(){}=!<>|:#-])*).*}', '$1', $pattern);
// if the pattern is not a subset or superset of $dir, it is unrelated and we skip it
if (0 !== strpos($pattern, $dirMatch) && 0 !== strpos($dirMatch, $pattern)) {
unset($excluded[$index]);
@@ -449,7 +497,9 @@ private function generateClassMap($dir, $excluded, $namespaceFilter, $autoloadTy
}
/**
- * @param RootPackageInterface $rootPackage
+ * @param InstallationManager $installationManager
+ * @param PackageInterface[] $packages
+ * @return array
*/
public function buildPackageMap(InstallationManager $installationManager, PackageInterface $rootPackage, array $packages)
{
@@ -472,8 +522,7 @@ public function buildPackageMap(InstallationManager $installationManager, Packag
}
/**
- * @param PackageInterface $package
- *
+ * @return void
* @throws \InvalidArgumentException Throws an exception, if the package has illegal settings.
*/
protected function validatePackage(PackageInterface $package)
@@ -496,16 +545,23 @@ protected function validatePackage(PackageInterface $package)
/**
* Compiles an ordered list of namespace => path mappings
*
- * @param array $packageMap array of array(package, installDir-relative-to-composer.json)
- * @param RootPackageInterface $rootPackage root package instance
- * @param bool|string[] $filteredDevPackages If an array, the list of packages that must be removed. If bool, whether to filter out require-dev packages
- * @return array array('psr-0' => array('Ns\\Foo' => array('installDir')))
+ * @param array $packageMap array of array(package, installDir-relative-to-composer.json)
+ * @param RootPackageInterface $rootPackage root package instance
+ * @param bool|string[] $filteredDevPackages If an array, the list of packages that must be removed. If bool, whether to filter out require-dev packages
+ * @return array
+ * @phpstan-return array{
+ * 'psr-0': array>,
+ * 'psr-4': array>,
+ * 'classmap': array,
+ * 'files': array,
+ * 'exclude-from-classmap': array,
+ * }
*/
public function parseAutoloads(array $packageMap, PackageInterface $rootPackage, $filteredDevPackages = false)
{
$rootPackageMap = array_shift($packageMap);
if (is_array($filteredDevPackages)) {
- $packageMap = array_filter($packageMap, function ($item) use ($filteredDevPackages) {
+ $packageMap = array_filter($packageMap, function ($item) use ($filteredDevPackages): bool {
return !in_array($item[0]->getName(), $filteredDevPackages, true);
});
} elseif ($filteredDevPackages) {
@@ -534,12 +590,13 @@ public function parseAutoloads(array $packageMap, PackageInterface $rootPackage,
}
/**
- * Registers an autoloader based on an autoload map returned by parseAutoloads
+ * Registers an autoloader based on an autoload-map returned by parseAutoloads
*
- * @param array $autoloads see parseAutoloads return value
+ * @param array $autoloads see parseAutoloads return value
+ * @param null|string $vendorDir
* @return ClassLoader
*/
- public function createLoader(array $autoloads, $vendorDir = null)
+ public function createLoader(array $autoloads, ?string $vendorDir = null)
{
$loader = new ClassLoader($vendorDir);
@@ -574,7 +631,15 @@ public function createLoader(array $autoloads, $vendorDir = null)
return $loader;
}
- protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode)
+ /**
+ * @param array $packageMap
+ * @param string $basePath
+ * @param string $vendorPath
+ * @param string $vendorPathCode
+ * @param string $appBaseDirCode
+ * @return ?string
+ */
+ protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem, string $basePath, string $vendorPath, string $vendorPathCode, string $appBaseDirCode)
{
$includePaths = array();
@@ -592,7 +657,7 @@ protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem
}
if (!$includePaths) {
- return;
+ return null;
}
$includePathsCode = '';
@@ -614,7 +679,15 @@ protected function getIncludePathsFile(array $packageMap, Filesystem $filesystem
EOF;
}
- protected function getIncludeFilesFile(array $files, Filesystem $filesystem, $basePath, $vendorPath, $vendorPathCode, $appBaseDirCode)
+ /**
+ * @param array $files
+ * @param string $basePath
+ * @param string $vendorPath
+ * @param string $vendorPathCode
+ * @param string $appBaseDirCode
+ * @return ?string
+ */
+ protected function getIncludeFilesFile(array $files, Filesystem $filesystem, string $basePath, string $vendorPath, string $vendorPathCode, string $appBaseDirCode)
{
$filesCode = '';
foreach ($files as $fileIdentifier => $functionFile) {
@@ -623,7 +696,7 @@ protected function getIncludeFilesFile(array $files, Filesystem $filesystem, $ba
}
if (!$filesCode) {
- return false;
+ return null;
}
return <<isAbsolutePath($path)) {
$path = $basePath . '/' . $path;
@@ -649,12 +728,8 @@ protected function getPathCode(Filesystem $filesystem, $basePath, $vendorPath, $
$baseDir = '';
if (strpos($path.'/', $vendorPath.'/') === 0) {
- $path = substr($path, strlen($vendorPath));
- $baseDir = '$vendorDir';
-
- if ($path !== false) {
- $baseDir .= " . ";
- }
+ $path = (string) substr($path, strlen($vendorPath));
+ $baseDir = '$vendorDir . ';
} else {
$path = $filesystem->normalizePath($filesystem->findShortestPath($basePath, $path, true));
if (!$filesystem->isAbsolutePath($path)) {
@@ -670,7 +745,13 @@ protected function getPathCode(Filesystem $filesystem, $basePath, $vendorPath, $
return $baseDir . var_export($path, true);
}
- protected function getPlatformCheck(array $packageMap, array $ignorePlatformReqs, $checkPlatform, array $devPackageNames)
+ /**
+ * @param array $packageMap
+ * @param bool|'php-only' $checkPlatform
+ * @param string[] $devPackageNames
+ * @return ?string
+ */
+ protected function getPlatformCheck(array $packageMap, $checkPlatform, array $devPackageNames)
{
$lowestPhpVersion = Bound::zero();
$requiredExtensions = array();
@@ -679,8 +760,8 @@ protected function getPlatformCheck(array $packageMap, array $ignorePlatformReqs
foreach ($packageMap as $item) {
$package = $item[0];
foreach (array_merge($package->getReplaces(), $package->getProvides()) as $link) {
- if (preg_match('{^ext-(.+)$}iD', $link->getTarget(), $match)) {
- $extensionProviders[$match[1]][] = $link->getConstraint() ?: new MatchAllConstraint();
+ if (Preg::isMatch('{^ext-(.+)$}iD', $link->getTarget(), $match)) {
+ $extensionProviders[$match[1]][] = $link->getConstraint();
}
}
}
@@ -693,21 +774,22 @@ protected function getPlatformCheck(array $packageMap, array $ignorePlatformReqs
}
foreach ($package->getRequires() as $link) {
- if (in_array($link->getTarget(), $ignorePlatformReqs, true)) {
+ if ($this->platformRequirementFilter->isIgnored($link->getTarget())) {
continue;
}
- if ('php' === $link->getTarget() && ($constraint = $link->getConstraint())) {
+ if ('php' === $link->getTarget()) {
+ $constraint = $link->getConstraint();
if ($constraint->getLowerBound()->compareTo($lowestPhpVersion, '>')) {
$lowestPhpVersion = $constraint->getLowerBound();
}
}
- if ($checkPlatform === true && preg_match('{^ext-(.+)$}iD', $link->getTarget(), $match)) {
+ if ($checkPlatform === true && Preg::isMatch('{^ext-(.+)$}iD', $link->getTarget(), $match)) {
// skip extension checks if they have a valid provider/replacer
if (isset($extensionProviders[$match[1]])) {
foreach ($extensionProviders[$match[1]] as $provided) {
- if (!$link->getConstraint() || $provided->matches($link->getConstraint())) {
+ if ($provided->matches($link->getConstraint())) {
continue 2;
}
}
@@ -729,7 +811,7 @@ protected function getPlatformCheck(array $packageMap, array $ignorePlatformReqs
ksort($requiredExtensions);
- $formatToPhpVersionId = function (Bound $bound) {
+ $formatToPhpVersionId = function (Bound $bound): int {
if ($bound->isZero()) {
return 0;
}
@@ -822,7 +904,12 @@ protected function getPlatformCheck(array $packageMap, array $ignorePlatformReqs
PLATFORM_CHECK;
}
- protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix)
+ /**
+ * @param string $vendorPathToTargetDirCode
+ * @param string $suffix
+ * @return string
+ */
+ protected function getAutoloadFile(string $vendorPathToTargetDirCode, string $suffix)
{
$lastChar = $vendorPathToTargetDirCode[strlen($vendorPathToTargetDirCode) - 1];
if ("'" === $lastChar || '"' === $lastChar) {
@@ -836,6 +923,11 @@ protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix)
// autoload.php @generated by Composer
+if (PHP_VERSION_ID < 50600) {
+ echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
+ exit(1);
+}
+
require_once $vendorPathToTargetDirCode;
return ComposerAutoloaderInit$suffix::getLoader();
@@ -843,7 +935,20 @@ protected function getAutoloadFile($vendorPathToTargetDirCode, $suffix)
AUTOLOAD;
}
- protected function getAutoloadRealFile($useClassMap, $useIncludePath, $targetDirLoader, $useIncludeFiles, $vendorPathCode, $appBaseDirCode, $suffix, $useGlobalIncludePath, $prependAutoloader, $staticPhpVersion, $checkPlatform)
+ /**
+ * @param bool $useClassMap
+ * @param bool $useIncludePath
+ * @param null|string $targetDirLoader
+ * @param bool $useIncludeFiles
+ * @param string $vendorPathCode unused in this method
+ * @param string $appBaseDirCode unused in this method
+ * @param string $suffix
+ * @param bool $useGlobalIncludePath
+ * @param string $prependAutoloader 'true'|'false'
+ * @param bool $checkPlatform
+ * @return string
+ */
+ protected function getAutoloadRealFile(bool $useClassMap, bool $useIncludePath, ?string $targetDirLoader, bool $useIncludeFiles, string $vendorPathCode, string $appBaseDirCode, string $suffix, bool $useGlobalIncludePath, string $prependAutoloader, bool $checkPlatform)
{
$file = <<= $staticPhpVersion && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
- if (\$useStaticLoader) {
- require __DIR__ . '/autoload_static.php';
+ require __DIR__ . '/autoload_static.php';
+ call_user_func(\Composer\Autoload\ComposerStaticInit$suffix::getInitializer(\$loader));
- call_user_func(\Composer\Autoload\ComposerStaticInit$suffix::getInitializer(\$loader));
- } else {
STATIC_INIT;
- if (!$this->classMapAuthoritative) {
- $file .= <<<'PSR04'
- $map = require __DIR__ . '/autoload_namespaces.php';
- foreach ($map as $namespace => $path) {
- $loader->set($namespace, $path);
- }
-
- $map = require __DIR__ . '/autoload_psr4.php';
- foreach ($map as $namespace => $path) {
- $loader->setPsr4($namespace, $path);
- }
-
-
-PSR04;
- }
-
- if ($useClassMap) {
- $file .= <<<'CLASSMAP'
- $classMap = require __DIR__ . '/autoload_classmap.php';
- if ($classMap) {
- $loader->addClassMap($classMap);
- }
-
-CLASSMAP;
- }
-
- $file .= " }\n\n";
-
if ($this->classMapAuthoritative) {
$file .= <<<'CLASSMAPAUTHORITATIVE'
$loader->setClassMapAuthoritative(true);
@@ -975,11 +1050,7 @@ public static function getLoader()
if ($useIncludeFiles) {
$file .= << \$file) {
composerRequire$suffix(\$fileIdentifier, \$file);
}
@@ -1000,12 +1071,17 @@ public static function getLoader()
return $file . <<