diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 000000000..4dddcaa4e
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,17 @@
+# http://editorconfig.org
+
+root = true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.php]
+indent_size = 4
\ No newline at end of file
diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml
new file mode 100644
index 000000000..5575cc46c
--- /dev/null
+++ b/.github/workflows/cd.yaml
@@ -0,0 +1,24 @@
+name: CD
+
+on:
+ push:
+ branches:
+ - main
+
+jobs:
+ release-please:
+ name: Release
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ pull-requests: write
+ outputs:
+ tag_name: ${{ steps.release.outputs.tag_name }}
+ release_created: ${{ steps.release.outputs.release_created }}
+ sha: ${{ steps.release.outputs.sha }}
+ steps:
+ - uses: google-github-actions/release-please-action@v3
+ id: release
+ with:
+ release-type: php
+ package-name: olcs-selfserve
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 000000000..c31ef5836
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,23 @@
+name: CI
+
+on:
+ pull_request:
+ schedule:
+ - cron: '0 0 * * 1'
+
+jobs:
+ security:
+ uses: dvsa/.github/.github/workflows/php-security.yml@main
+ secrets:
+ SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
+
+ static-analysis:
+ uses: dvsa/.github/.github/workflows/php-static.yml@main
+ with:
+ php-version: '7.4'
+
+ tests:
+ uses: dvsa/.github/.github/workflows/php-tests.yml@main
+ with:
+ php-versions: "[\"7.4\"]"
+ fail-fast: false
diff --git a/.gitignore b/.gitignore
index be0c4fd40..4442103b3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,7 +6,7 @@ nbproject
.idea
.project
.settings
-vendor/
+vendor
test/coverage-report
config/autoload/*.php
.sublime-project
@@ -17,3 +17,12 @@ node_modules
.vscode/
test/coverage/
.scannerwork/
+/vendor-bin/*/composer.lock
+.phpunit.result.cache
+
+# Non-dist files for the static analysis.
+# This allows developers to set a different (more strict) static analysis locally.
+phpcs.xml
+phpstan.neon
+phpunit.xml
+psalm.xml
diff --git a/composer.json b/composer.json
index db105bdab..051cc0237 100644
--- a/composer.json
+++ b/composer.json
@@ -1,40 +1,36 @@
{
"name": "olcs/olcs-selfserve",
"description": "OLCS Self Service Web Site",
- "repositories": [
- {
- "packagist": false
- },
- {
- "type": "composer",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy",
- "only": [
- "olcs/olcs-logging",
- "olcs/olcs-utils",
- "olcs/olcs-transfer",
- "olcs/olcs-auth",
- "olcs/olcs-common"
- ]
- },
- {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/OLCS",
- "type": "composer"
- },
- {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy",
- "type": "composer"
- }
- ],
"require": {
- "php": ">=7.4",
- "dvsa/laminas-config-cloud-parameters": "^0.1.0",
- "olcs/olcs-frontend-deps": "~4.206.0",
- "olcs/olcs-laminas": "~2.5.0"
+ "php": "^7.4",
+ "container-interop/container-interop": "^1.2",
+ "doctrine/annotations": "^1.14.2",
+ "doctrine/doctrine-module": "^1",
+ "dvsa/laminas-config-cloud-parameters": "^0.2.0",
+ "laminas/laminas-authentication": "^2.6",
+ "laminas/laminas-eventmanager": "^2.6",
+ "laminas/laminas-form": "^2.13",
+ "laminas/laminas-http": "^2.8",
+ "laminas/laminas-i18n": "^2.14",
+ "laminas/laminas-mvc": "^2.7",
+ "laminas/laminas-serializer": "^2.10",
+ "laminas/laminas-servicemanager": "^2.7",
+ "laminas/laminas-session": "^2.8",
+ "laminas/laminas-stdlib": "^2.7",
+ "laminas/laminas-view": "^2.11",
+ "lm-commons/lmc-rbac-mvc": "^2.6",
+ "olcs/olcs-auth": "^5.0.0",
+ "olcs/olcs-common": "^5.0.0",
+ "olcs/olcs-logging": "^5.0.0",
+ "olcs/olcs-transfer": "^5.0.0",
+ "olcs/olcs-utils": "^5.0.0"
},
"require-dev": {
+ "bamarni/composer-bin-plugin": "^1.8",
+ "johnkary/phpunit-speedtrap": "^4.0",
"laminas/laminas-developer-tools": "*",
- "olcs/olcs-devtools": "~4.206.0",
- "phpstan/phpstan": "^0.12.100",
+ "mockery/mockery": "^1.6",
+ "phpunit/phpunit": "^9.6",
"san/san-session-toolbar": "*"
},
"autoload": {
@@ -47,38 +43,41 @@
"Common\\": "vendor/olcs/olcs-common/Common/src/Common"
}
},
+ "autoload-dev": {
+ "psr-4": {
+ "OlcsTest\\": "test/Olcs/src",
+ "PermitsTest\\": "test/Permits/src"
+ }
+ },
"minimum-stability": "dev",
"prefer-stable": true,
"config": {
- "preferred-install": "dist",
- "secure-http": false,
- "platform": {
- "php": "7.4.33"
- },
"sort-packages": true,
"allow-plugins": {
- "laminas/laminas-component-installer": true,
- "laminas/laminas-dependency-plugin": true,
- "elendev/composer-push": true,
- "phpstan/extension-installer": true
+ "bamarni/composer-bin-plugin": true,
+ "laminas/laminas-dependency-plugin": true
}
},
- "scripts": {
- "ut": "vendor/bin/phpunit -c test/phpunit.xml --stop-on-failure",
- "review": "vendor/bin/review",
- "cs": "vendor/bin/phpcs --severity=1 --standard=vendor/dvsa/coding-standards/src/Profiles/DVSA/CS/ruleset.xml",
- "coverage": "vendor/bin/phpunit -c test/phpunit.xml --coverage-html ./test/coverage/html",
- "sonar": "vendor/bin/phpunit -c test/phpunit.xml --coverage-clover ./test/coverage/coverage-report.clover --log-junit ./test/coverage/log.junit",
- "update-syms": "vendor/bin/composer-update-syms"
- },
+ "scripts": {
+ "bin": "echo 'bin not installed'",
+ "post-install-cmd": [
+ "@composer bin all install"
+ ],
+ "test": "phpunit",
+ "phpcs": "phpcs",
+ "psalm": "psalm",
+ "phpstan": "phpstan",
+ "all": [
+ "@test",
+ "@phpcs",
+ "@psalm",
+ "@phpstan"
+ ]
+ },
"extra": {
- "nexus-push": {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/olcs-selfserve",
- "ignore": [
- "test/",
- "config/autoload/local.php",
- "node_modules/"
- ]
- }
+ "bamarni-bin": {
+ "bin-links": true,
+ "forward-command": true
+ }
}
}
diff --git a/composer.lock b/composer.lock
index 695b45ec2..444049080 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,14 +4,19 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "3cb79b91a181949f3067cf83a339cece",
+ "content-hash": "cb780a3f42a77a5ef183645c8186ac32",
"packages": [
{
"name": "brick/varexporter",
"version": "0.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/brick/varexporter.git",
+ "reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/brick/varexporter/0.3.8/brick-varexporter-0.3.8.zip",
+ "url": "https://api.github.com/repos/brick/varexporter/zipball/b5853edea6204ff8fa10633c3a4cccc4058410ed",
"reference": "b5853edea6204ff8fa10633c3a4cccc4058410ed",
"shasum": ""
},
@@ -30,6 +35,7 @@
"Brick\\VarExporter\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -52,9 +58,14 @@
{
"name": "container-interop/container-interop",
"version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/container-interop/container-interop.git",
+ "reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/container-interop/container-interop/1.2.0/container-interop-container-interop-1.2.0.zip",
+ "url": "https://api.github.com/repos/container-interop/container-interop/zipball/79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"reference": "79cbf1341c22ec75643d841642dd5d6acd83bdb8",
"shasum": ""
},
@@ -67,6 +78,7 @@
"Interop\\Container\\": "src/Interop/Container/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -82,9 +94,14 @@
{
"name": "doctrine/annotations",
"version": "1.14.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/annotations/1.14.3/doctrine-annotations-1.14.3.zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
"reference": "fb0d71a7393298a7b232cbf4c8b1f73f3ec3d5af",
"shasum": ""
},
@@ -111,6 +128,7 @@
"Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -152,9 +170,14 @@
{
"name": "doctrine/cache",
"version": "1.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "56cd022adb5514472cb144c087393c1821911d09"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/cache/1.13.0/doctrine-cache-1.13.0.zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/56cd022adb5514472cb144c087393c1821911d09",
"reference": "56cd022adb5514472cb144c087393c1821911d09",
"shasum": ""
},
@@ -184,6 +207,7 @@
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -245,9 +269,14 @@
{
"name": "doctrine/collections",
"version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/collections.git",
+ "reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/collections/1.8.0/doctrine-collections-1.8.0.zip",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
"reference": "2b44dd4cbca8b5744327de78bafef5945c7e7b5e",
"shasum": ""
},
@@ -267,6 +296,7 @@
"Doctrine\\Common\\Collections\\": "lib/Doctrine/Common/Collections"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -309,9 +339,14 @@
{
"name": "doctrine/common",
"version": "2.13.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/common.git",
+ "reference": "f3812c026e557892c34ef37f6ab808a6b567da7f"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/common/2.13.3/doctrine-common-2.13.3.zip",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/f3812c026e557892c34ef37f6ab808a6b567da7f",
"reference": "f3812c026e557892c34ef37f6ab808a6b567da7f",
"shasum": ""
},
@@ -345,6 +380,7 @@
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -404,9 +440,14 @@
{
"name": "doctrine/deprecations",
"version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/deprecations.git",
+ "reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/deprecations/1.1.2/doctrine-deprecations-1.1.2.zip",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
"reference": "4f2d4f2836e7ec4e7a8625e75c6aa916004db931",
"shasum": ""
},
@@ -431,6 +472,7 @@
"Doctrine\\Deprecations\\": "lib/Doctrine/Deprecations"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -445,9 +487,14 @@
{
"name": "doctrine/doctrine-module",
"version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/DoctrineModule.git",
+ "reference": "9407d04d0b08e7071dab05c9d068cefda9dc5a6f"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/doctrine-module/1.2.0/doctrine-doctrine-module-1.2.0.zip",
+ "url": "https://api.github.com/repos/doctrine/DoctrineModule/zipball/9407d04d0b08e7071dab05c9d068cefda9dc5a6f",
"reference": "9407d04d0b08e7071dab05c9d068cefda9dc5a6f",
"shasum": ""
},
@@ -495,6 +542,7 @@
"DoctrineModule\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -549,9 +597,14 @@
{
"name": "doctrine/event-manager",
"version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/event-manager.git",
+ "reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/event-manager/1.2.0/doctrine-event-manager-1.2.0.zip",
+ "url": "https://api.github.com/repos/doctrine/event-manager/zipball/95aa4cb529f1e96576f3fda9f5705ada4056a520",
"reference": "95aa4cb529f1e96576f3fda9f5705ada4056a520",
"shasum": ""
},
@@ -574,6 +627,7 @@
"Doctrine\\Common\\": "src"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -635,9 +689,14 @@
{
"name": "doctrine/inflector",
"version": "1.4.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/inflector/1.4.4/doctrine-inflector-1.4.4.zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9",
"reference": "4bd5c1cdfcd00e9e2d8c484f79150f67e5d355d9",
"shasum": ""
},
@@ -663,6 +722,7 @@
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -725,9 +785,14 @@
{
"name": "doctrine/lexer",
"version": "1.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/lexer/1.2.3/doctrine-lexer-1.2.3.zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/c268e882d4dbdd85e36e4ad69e02dc284f89d229",
"reference": "c268e882d4dbdd85e36e4ad69e02dc284f89d229",
"shasum": ""
},
@@ -746,6 +811,7 @@
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -795,9 +861,14 @@
{
"name": "doctrine/persistence",
"version": "1.3.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/persistence.git",
+ "reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/persistence/1.3.8/doctrine-persistence-1.3.8.zip",
+ "url": "https://api.github.com/repos/doctrine/persistence/zipball/7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"reference": "7a6eac9fb6f61bba91328f15aa7547f4806ca288",
"shasum": ""
},
@@ -830,6 +901,7 @@
"Doctrine\\Persistence\\": "lib/Doctrine/Persistence"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -891,9 +963,14 @@
{
"name": "doctrine/reflection",
"version": "1.2.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/reflection.git",
+ "reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/reflection/1.2.4/doctrine-reflection-1.2.4.zip",
+ "url": "https://api.github.com/repos/doctrine/reflection/zipball/6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7",
"reference": "6bcea3e81ab8b3d0abe5fde5300bbc8a968960c7",
"shasum": ""
},
@@ -918,6 +995,7 @@
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -962,11 +1040,16 @@
},
{
"name": "dvsa/laminas-config-cloud-parameters",
- "version": "v0.1.1",
+ "version": "v0.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/dvsa-laminas-config-cloud-parameters.git",
+ "reference": "073c97dd6fb426e31bec5a592e3119c3ffcb668d"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/dvsa/laminas-config-cloud-parameters/v0.1.1/dvsa-laminas-config-cloud-parameters-v0.1.1.zip",
- "reference": "1cec4e8cdf16bf61c848be45f758697977659c1e",
+ "url": "https://api.github.com/repos/dvsa/dvsa-laminas-config-cloud-parameters/zipball/073c97dd6fb426e31bec5a592e3119c3ffcb668d",
+ "reference": "073c97dd6fb426e31bec5a592e3119c3ffcb668d",
"shasum": ""
},
"require": {
@@ -975,7 +1058,8 @@
"laminas/laminas-config-aggregator": "^1.7",
"laminas/laminas-modulemanager": "^2.4|^3.0",
"php": "^7.4 || ^8.0",
- "symfony/dependency-injection": "^5.4"
+ "symfony/dependency-injection": "^5.4",
+ "symfony/property-access": "^5.4|^6.3"
},
"require-dev": {
"aws/aws-sdk-php": "^3.281",
@@ -999,21 +1083,27 @@
"Dvsa\\LaminasConfigCloudParameters\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"support": {
"issues": "https://github.com/dvsa/dvsa-laminas-config-cloud-parameters/issues",
- "source": "https://github.com/dvsa/dvsa-laminas-config-cloud-parameters/tree/v0.1.1"
+ "source": "https://github.com/dvsa/dvsa-laminas-config-cloud-parameters/tree/v0.2.0"
},
- "time": "2023-11-06T10:01:58+00:00"
+ "time": "2023-11-17T11:31:22+00:00"
},
{
"name": "ezyang/htmlpurifier",
"version": "v4.17.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/ezyang/htmlpurifier.git",
+ "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/ezyang/htmlpurifier/v4.17.0/ezyang-htmlpurifier-v4.17.0.zip",
+ "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
"reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
"shasum": ""
},
@@ -1042,6 +1132,7 @@
"/library/HTMLPurifier/Language/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"LGPL-2.1-or-later"
],
@@ -1063,69 +1154,17 @@
},
"time": "2023-11-17T15:01:25+00:00"
},
- {
- "name": "firebase/php-jwt",
- "version": "v6.9.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/firebase/php-jwt/v6.9.0/firebase-php-jwt-v6.9.0.zip",
- "reference": "f03270e63eaccf3019ef0f32849c497385774e11",
- "shasum": ""
- },
- "require": {
- "php": "^7.4||^8.0"
- },
- "require-dev": {
- "guzzlehttp/guzzle": "^6.5||^7.4",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.5",
- "psr/cache": "^1.0||^2.0",
- "psr/http-client": "^1.0",
- "psr/http-factory": "^1.0"
- },
- "suggest": {
- "ext-sodium": "Support EdDSA (Ed25519) signatures",
- "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Firebase\\JWT\\": "src"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Neuman Vong",
- "email": "neuman+pear@twilio.com",
- "role": "Developer"
- },
- {
- "name": "Anant Narayanan",
- "email": "anant@php.net",
- "role": "Developer"
- }
- ],
- "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
- "homepage": "https://github.com/firebase/php-jwt",
- "keywords": [
- "jwt",
- "php"
- ],
- "support": {
- "issues": "https://github.com/firebase/php-jwt/issues",
- "source": "https://github.com/firebase/php-jwt/tree/v6.9.0"
- },
- "time": "2023-10-05T00:24:42+00:00"
- },
{
"name": "laminas/laminas-authentication",
"version": "2.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-authentication.git",
+ "reference": "0c87644aee1b2ea8b8d040f97f4345f6695d5906"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-authentication/2.6.0/laminas-laminas-authentication-2.6.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-authentication/zipball/0c87644aee1b2ea8b8d040f97f4345f6695d5906",
"reference": "0c87644aee1b2ea8b8d040f97f4345f6695d5906",
"shasum": ""
},
@@ -1169,6 +1208,7 @@
"Laminas\\Authentication\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1191,9 +1231,14 @@
{
"name": "laminas/laminas-cache",
"version": "2.8.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-cache.git",
+ "reference": "8ee8877d9f7d27f73ec30d948ab3a8b1b7873514"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-cache/2.8.3/laminas-laminas-cache-2.8.3.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-cache/zipball/8ee8877d9f7d27f73ec30d948ab3a8b1b7873514",
"reference": "8ee8877d9f7d27f73ec30d948ab3a8b1b7873514",
"shasum": ""
},
@@ -1256,6 +1301,7 @@
"Laminas\\Cache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1280,9 +1326,14 @@
{
"name": "laminas/laminas-code",
"version": "3.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-code.git",
+ "reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-code/3.4.1/laminas-laminas-code-3.4.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-code/zipball/1cb8f203389ab1482bf89c0e70a04849bacd7766",
"reference": "1cb8f203389ab1482bf89c0e70a04849bacd7766",
"shasum": ""
},
@@ -1321,6 +1372,7 @@
"Laminas\\Code\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1343,9 +1395,14 @@
{
"name": "laminas/laminas-config",
"version": "3.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-config.git",
+ "reference": "e4d714780b2d0b3ad748d715fff6ab0a5f37c6a5"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-config/3.5.1/laminas-laminas-config-3.5.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-config/zipball/e4d714780b2d0b3ad748d715fff6ab0a5f37c6a5",
"reference": "e4d714780b2d0b3ad748d715fff6ab0a5f37c6a5",
"shasum": ""
},
@@ -1381,6 +1438,7 @@
"Laminas\\Config\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1409,9 +1467,14 @@
{
"name": "laminas/laminas-config-aggregator",
"version": "1.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-config-aggregator.git",
+ "reference": "8f1b66dd825dff95026844bdcf4ea0f5b604e907"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-config-aggregator/1.7.0/laminas-laminas-config-aggregator-1.7.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-config-aggregator/zipball/8f1b66dd825dff95026844bdcf4ea0f5b604e907",
"reference": "8f1b66dd825dff95026844bdcf4ea0f5b604e907",
"shasum": ""
},
@@ -1445,6 +1508,7 @@
"Laminas\\ConfigAggregator\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1473,9 +1537,14 @@
{
"name": "laminas/laminas-console",
"version": "2.7.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-console.git",
+ "reference": "bf9a61dddf0d64ff18d2582c2529761932e8872f"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-console/2.7.0/laminas-laminas-console-2.7.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-console/zipball/bf9a61dddf0d64ff18d2582c2529761932e8872f",
"reference": "bf9a61dddf0d64ff18d2582c2529761932e8872f",
"shasum": ""
},
@@ -1510,6 +1579,7 @@
"Laminas\\Console\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1533,9 +1603,14 @@
{
"name": "laminas/laminas-crypt",
"version": "3.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-crypt.git",
+ "reference": "a058eeb2fe57824b958ac56753faff790a649e18"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-crypt/3.4.0/laminas-laminas-crypt-3.4.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-crypt/zipball/a058eeb2fe57824b958ac56753faff790a649e18",
"reference": "a058eeb2fe57824b958ac56753faff790a649e18",
"shasum": ""
},
@@ -1563,6 +1638,7 @@
"Laminas\\Crypt\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1588,59 +1664,17 @@
],
"time": "2021-02-11T19:40:03+00:00"
},
- {
- "name": "laminas/laminas-dependency-plugin",
- "version": "2.2.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-dependency-plugin/2.2.0/laminas-laminas-dependency-plugin-2.2.0.zip",
- "reference": "73cfb63ddca9d6bfedad5e0a038f6d55063975a3",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1 || ^2.0",
- "php": "^7.3 || ~8.0.0 || ~8.1.0"
- },
- "require-dev": {
- "composer/composer": "^1.9 || ^2.0",
- "laminas/laminas-coding-standard": "^2.2.1",
- "mikey179/vfsstream": "^1.6.10@alpha",
- "phpunit/phpunit": "^9.5.5",
- "psalm/plugin-phpunit": "^0.15.1",
- "roave/security-advisories": "dev-master",
- "vimeo/psalm": "^4.5"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "Laminas\\DependencyPlugin\\DependencyRewriterPluginDelegator"
- },
- "autoload": {
- "psr-4": {
- "Laminas\\DependencyPlugin\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Replace zendframework and zfcampus packages with their Laminas Project equivalents.",
- "support": {
- "issues": "https://github.com/laminas/laminas-dependency-plugin/issues",
- "source": "https://github.com/laminas/laminas-dependency-plugin/tree/2.2.0"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2021-09-08T17:51:35+00:00"
- },
{
"name": "laminas/laminas-diactoros",
"version": "1.8.7p2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-diactoros.git",
+ "reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-diactoros/1.8.7p2/laminas-laminas-diactoros-1.8.7p2.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/6991c1af7c8d2c8efee81b22ba97024781824aaa",
"reference": "6991c1af7c8d2c8efee81b22ba97024781824aaa",
"shasum": ""
},
@@ -1691,6 +1725,7 @@
"Laminas\\Diactoros\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1715,9 +1750,14 @@
{
"name": "laminas/laminas-escaper",
"version": "2.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-escaper.git",
+ "reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-escaper/2.12.0/laminas-laminas-escaper-2.12.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-escaper/zipball/ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490",
"reference": "ee7a4c37bf3d0e8c03635d5bddb5bb3184ead490",
"shasum": ""
},
@@ -1743,6 +1783,7 @@
"Laminas\\Escaper\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1771,9 +1812,14 @@
{
"name": "laminas/laminas-eventmanager",
"version": "2.6.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-eventmanager.git",
+ "reference": "c894f427e40b9599284bfebf76480934b78e665b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-eventmanager/2.6.4/laminas-laminas-eventmanager-2.6.4.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-eventmanager/zipball/c894f427e40b9599284bfebf76480934b78e665b",
"reference": "c894f427e40b9599284bfebf76480934b78e665b",
"shasum": ""
},
@@ -1803,6 +1849,7 @@
"Laminas\\EventManager\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1824,9 +1871,14 @@
{
"name": "laminas/laminas-filter",
"version": "2.9.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-filter.git",
+ "reference": "3c4476e772a062cef7531c6793377ae585d89c82"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-filter/2.9.4/laminas-laminas-filter-2.9.4.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-filter/zipball/3c4476e772a062cef7531c6793377ae585d89c82",
"reference": "3c4476e772a062cef7531c6793377ae585d89c82",
"shasum": ""
},
@@ -1873,6 +1925,7 @@
"Laminas\\Filter\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1895,9 +1948,14 @@
{
"name": "laminas/laminas-form",
"version": "2.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-form.git",
+ "reference": "b9f267b9ebac27fa804306f05241cd49d5902261"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-form/2.13.0/laminas-laminas-form-2.13.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-form/zipball/b9f267b9ebac27fa804306f05241cd49d5902261",
"reference": "b9f267b9ebac27fa804306f05241cd49d5902261",
"shasum": ""
},
@@ -1957,6 +2015,7 @@
"Laminas\\Form\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -1979,9 +2038,14 @@
{
"name": "laminas/laminas-http",
"version": "2.8.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-http.git",
+ "reference": "c38959d605f225baf7f94e04c62f5f432d4ea5b2"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-http/2.8.4/laminas-laminas-http-2.8.4.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-http/zipball/c38959d605f225baf7f94e04c62f5f432d4ea5b2",
"reference": "c38959d605f225baf7f94e04c62f5f432d4ea5b2",
"shasum": ""
},
@@ -2016,6 +2080,7 @@
"Laminas\\Http\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2039,9 +2104,14 @@
{
"name": "laminas/laminas-hydrator",
"version": "1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-hydrator.git",
+ "reference": "1ae0a72885be9d74a6af5086c052191e7cbcae83"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-hydrator/1.1.0/laminas-laminas-hydrator-1.1.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-hydrator/zipball/1ae0a72885be9d74a6af5086c052191e7cbcae83",
"reference": "1ae0a72885be9d74a6af5086c052191e7cbcae83",
"shasum": ""
},
@@ -2082,6 +2152,7 @@
"Laminas\\Hydrator\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2103,9 +2174,14 @@
{
"name": "laminas/laminas-i18n",
"version": "2.14.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-i18n.git",
+ "reference": "1fa15c41b683bedb2a846af54491868ddc73db38"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-i18n/2.14.0/laminas-laminas-i18n-2.14.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-i18n/zipball/1fa15c41b683bedb2a846af54491868ddc73db38",
"reference": "1fa15c41b683bedb2a846af54491868ddc73db38",
"shasum": ""
},
@@ -2156,6 +2232,7 @@
"Laminas\\I18n\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2184,9 +2261,14 @@
{
"name": "laminas/laminas-inputfilter",
"version": "2.10.1",
+ "source": {
+ "type": "git",
+ "url": "git@github.com:laminas/laminas-inputfilter.git",
+ "reference": "b29ce8f512c966468eee37ea4873ae5fb545d00a"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-inputfilter/2.10.1/laminas-laminas-inputfilter-2.10.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-inputfilter/zipball/b29ce8f512c966468eee37ea4873ae5fb545d00a",
"reference": "b29ce8f512c966468eee37ea4873ae5fb545d00a",
"shasum": ""
},
@@ -2225,6 +2307,7 @@
"Laminas\\InputFilter\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2246,46 +2329,40 @@
},
{
"name": "laminas/laminas-json",
- "version": "2.6.1",
+ "version": "3.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-json.git",
+ "reference": "9a0ce9f330b7d11e70c4acb44d67e8c4f03f437f"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-json/2.6.1/laminas-laminas-json-2.6.1.zip",
- "reference": "db58425b7f0eba44a7539450cc926af80915951a",
+ "url": "https://api.github.com/repos/laminas/laminas-json/zipball/9a0ce9f330b7d11e70c4acb44d67e8c4f03f437f",
+ "reference": "9a0ce9f330b7d11e70c4acb44d67e8c4f03f437f",
"shasum": ""
},
"require": {
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^5.5 || ^7.0"
+ "php": "^7.3 || ~8.0.0 || ~8.1.0"
},
- "replace": {
- "zendframework/zend-json": "self.version"
+ "conflict": {
+ "zendframework/zend-json": "*"
},
"require-dev": {
- "fabpot/php-cs-fixer": "1.7.*",
- "laminas/laminas-http": "^2.5.4",
- "laminas/laminas-server": "^2.6.1",
- "laminas/laminas-stdlib": "^2.5 || ^3.0",
- "laminas/laminas-xml": "^1.0.2",
- "phpunit/phpunit": "~4.0"
+ "laminas/laminas-coding-standard": "~2.2.1",
+ "laminas/laminas-stdlib": "^2.7.7 || ^3.1",
+ "phpunit/phpunit": "^9.3"
},
"suggest": {
- "laminas/laminas-http": "Laminas\\Http component, required to use Laminas\\Json\\Server",
- "laminas/laminas-server": "Laminas\\Server component, required to use Laminas\\Json\\Server",
- "laminas/laminas-stdlib": "Laminas\\Stdlib component, for use with caching Laminas\\Json\\Server responses",
- "laminas/laminas-xml": "To support Laminas\\Json\\Json::fromXml() usage"
+ "laminas/laminas-json-server": "For implementing JSON-RPC servers",
+ "laminas/laminas-xml2json": "For converting XML documents to JSON"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.6-dev",
- "dev-develop": "2.7-dev"
- }
- },
"autoload": {
"psr-4": {
"Laminas\\Json\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2303,14 +2380,25 @@
"rss": "https://github.com/laminas/laminas-json/releases.atom",
"source": "https://github.com/laminas/laminas-json"
},
- "time": "2019-12-31T17:15:00+00:00"
+ "funding": [
+ {
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
+ }
+ ],
+ "time": "2021-09-02T18:02:31+00:00"
},
{
"name": "laminas/laminas-loader",
"version": "2.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-loader.git",
+ "reference": "d0589ec9dd48365fd95ad10d1c906efd7711c16b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-loader/2.8.0/laminas-laminas-loader-2.8.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-loader/zipball/d0589ec9dd48365fd95ad10d1c906efd7711c16b",
"reference": "d0589ec9dd48365fd95ad10d1c906efd7711c16b",
"shasum": ""
},
@@ -2330,6 +2418,7 @@
"Laminas\\Loader\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2358,9 +2447,14 @@
{
"name": "laminas/laminas-log",
"version": "2.12.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-log.git",
+ "reference": "4e92d841b48868714a070b10866e94be80fc92ff"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-log/2.12.0/laminas-laminas-log-2.12.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-log/zipball/4e92d841b48868714a070b10866e94be80fc92ff",
"reference": "4e92d841b48868714a070b10866e94be80fc92ff",
"shasum": ""
},
@@ -2411,6 +2505,7 @@
"Laminas\\Log\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2431,87 +2526,17 @@
},
"time": "2019-12-31T17:18:59+00:00"
},
- {
- "name": "laminas/laminas-mail",
- "version": "2.14.3",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-mail/2.14.3/laminas-laminas-mail-2.14.3.zip",
- "reference": "a496ab1c708b91809de211522057a6d6781bd0aa",
- "shasum": ""
- },
- "require": {
- "ext-iconv": "*",
- "laminas/laminas-loader": "^2.5",
- "laminas/laminas-mime": "^2.5",
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
- "laminas/laminas-validator": "^2.10.2",
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^7.3 || ~8.0.0",
- "symfony/polyfill-mbstring": "^1.12.0",
- "true/punycode": "^2.1"
- },
- "replace": {
- "zendframework/zend-mail": "^2.10.0"
- },
- "require-dev": {
- "laminas/laminas-coding-standard": "~1.0.0",
- "laminas/laminas-config": "^3.4",
- "laminas/laminas-crypt": "^2.6 || ^3.0",
- "laminas/laminas-db": "^2.12",
- "laminas/laminas-servicemanager": "^3.2.1",
- "phpunit/phpunit": "^9.3",
- "psalm/plugin-phpunit": "^0.15.1",
- "symfony/process": "^5.3",
- "vimeo/psalm": "^4.7"
- },
- "suggest": {
- "laminas/laminas-crypt": "Crammd5 support in SMTP Auth",
- "laminas/laminas-servicemanager": "^2.7.10 || ^3.3.1 when using SMTP to deliver messages"
- },
- "type": "library",
- "extra": {
- "laminas": {
- "component": "Laminas\\Mail",
- "config-provider": "Laminas\\Mail\\ConfigProvider"
- }
- },
- "autoload": {
- "psr-4": {
- "Laminas\\Mail\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Provides generalized functionality to compose and send both text and MIME-compliant multipart e-mail messages",
- "homepage": "https://laminas.dev",
- "keywords": [
- "laminas",
- "mail"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-mail/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-mail/issues",
- "rss": "https://github.com/laminas/laminas-mail/releases.atom",
- "source": "https://github.com/laminas/laminas-mail"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2021-09-23T07:17:22+00:00"
- },
{
"name": "laminas/laminas-math",
"version": "3.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-math.git",
+ "reference": "146d8187ab247ae152e811a6704a953d43537381"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-math/3.5.0/laminas-laminas-math-3.5.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-math/zipball/146d8187ab247ae152e811a6704a953d43537381",
"reference": "146d8187ab247ae152e811a6704a953d43537381",
"shasum": ""
},
@@ -2542,6 +2567,7 @@
"Laminas\\Math\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2567,67 +2593,17 @@
],
"time": "2021-12-06T02:02:07+00:00"
},
- {
- "name": "laminas/laminas-mime",
- "version": "2.10.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-mime/2.10.0/laminas-laminas-mime-2.10.0.zip",
- "reference": "62a899a7c9100889c2d2386b1357003a2cb52fa9",
- "shasum": ""
- },
- "require": {
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
- "php": "^7.3 || ~8.0.0 || ~8.1.0"
- },
- "conflict": {
- "zendframework/zend-mime": "*"
- },
- "require-dev": {
- "laminas/laminas-coding-standard": "~2.2.1",
- "laminas/laminas-mail": "^2.12",
- "phpunit/phpunit": "^9.5"
- },
- "suggest": {
- "laminas/laminas-mail": "Laminas\\Mail component"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Laminas\\Mime\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Create and parse MIME messages and parts",
- "homepage": "https://laminas.dev",
- "keywords": [
- "laminas",
- "mime"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-mime/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-mime/issues",
- "rss": "https://github.com/laminas/laminas-mime/releases.atom",
- "source": "https://github.com/laminas/laminas-mime"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2022-08-30T09:38:41+00:00"
- },
{
"name": "laminas/laminas-modulemanager",
"version": "2.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-modulemanager.git",
+ "reference": "789bbd4ab391da9221f265f6bb2d594f8f11855b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-modulemanager/2.9.0/laminas-laminas-modulemanager-2.9.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-modulemanager/zipball/789bbd4ab391da9221f265f6bb2d594f8f11855b",
"reference": "789bbd4ab391da9221f265f6bb2d594f8f11855b",
"shasum": ""
},
@@ -2669,6 +2645,7 @@
"Laminas\\ModuleManager\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2697,9 +2674,14 @@
{
"name": "laminas/laminas-mvc",
"version": "2.7.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-mvc.git",
+ "reference": "7e7198b03556a57fb5fd3ed919d9e1cf71500642"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-mvc/2.7.15/laminas-laminas-mvc-2.7.15.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-mvc/zipball/7e7198b03556a57fb5fd3ed919d9e1cf71500642",
"reference": "7e7198b03556a57fb5fd3ed919d9e1cf71500642",
"shasum": ""
},
@@ -2774,6 +2756,7 @@
"Laminas\\Mvc\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2795,9 +2778,14 @@
{
"name": "laminas/laminas-navigation",
"version": "2.13.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-navigation.git",
+ "reference": "1d29047b49ea978756e6f10921ec3e96f5bc6147"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-navigation/2.13.0/laminas-laminas-navigation-2.13.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-navigation/zipball/1d29047b49ea978756e6f10921ec3e96f5bc6147",
"reference": "1d29047b49ea978756e6f10921ec3e96f5bc6147",
"shasum": ""
},
@@ -2843,6 +2831,7 @@
"Laminas\\Navigation\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -2869,138 +2858,78 @@
"time": "2021-12-06T01:40:32+00:00"
},
{
- "name": "laminas/laminas-paginator",
- "version": "2.8.2",
+ "name": "laminas/laminas-psr7bridge",
+ "version": "0.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-psr7bridge.git",
+ "reference": "14780ef1d40effd59d77ab29c6d439b2af42cdfa"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-paginator/2.8.2/laminas-laminas-paginator-2.8.2.zip",
- "reference": "5e53d927776b2d20e420bc2b289fa0c364a6b0bd",
+ "url": "https://api.github.com/repos/laminas/laminas-psr7bridge/zipball/14780ef1d40effd59d77ab29c6d439b2af42cdfa",
+ "reference": "14780ef1d40effd59d77ab29c6d439b2af42cdfa",
"shasum": ""
},
"require": {
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
+ "laminas/laminas-diactoros": "^1.1",
+ "laminas/laminas-http": "^2.5",
"laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^7.0 || ^5.6"
+ "php": ">=5.5",
+ "psr/http-message": "^1.0"
},
"replace": {
- "zendframework/zend-paginator": "self.version"
+ "zendframework/zend-psr7bridge": "self.version"
},
"require-dev": {
- "laminas/laminas-cache": "^2.6.1",
- "laminas/laminas-coding-standard": "~1.0.0",
- "laminas/laminas-config": "^2.6.0",
- "laminas/laminas-db": "^2.9.2",
- "laminas/laminas-filter": "^2.6.1",
- "laminas/laminas-json": "^2.6.1",
- "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
- "laminas/laminas-view": "^2.6.3",
- "phpunit/phpunit": "^6.2.1 || ^5.7.15"
- },
- "suggest": {
- "laminas/laminas-cache": "Laminas\\Cache component to support cache features",
- "laminas/laminas-db": "Laminas\\Db component",
- "laminas/laminas-filter": "Laminas\\Filter component",
- "laminas/laminas-json": "Laminas\\Json component",
- "laminas/laminas-servicemanager": "Laminas\\ServiceManager component",
- "laminas/laminas-view": "Laminas\\View component"
+ "phpunit/phpunit": "^4.7",
+ "squizlabs/php_codesniffer": "^2.3"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.8.x-dev",
- "dev-develop": "2.9.x-dev"
- },
- "laminas": {
- "component": "Laminas\\Paginator",
- "config-provider": "Laminas\\Paginator\\ConfigProvider"
+ "dev-master": "1.0-dev",
+ "dev-develop": "1.1-dev"
}
},
"autoload": {
"psr-4": {
- "Laminas\\Paginator\\": "src/"
+ "Laminas\\Psr7Bridge\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
- "description": "Paginate collections of data from arbitrary sources",
+ "description": "PSR-7 <-> Laminas\\Http bridge",
"homepage": "https://laminas.dev",
"keywords": [
+ "http",
"laminas",
- "paginator"
+ "psr",
+ "psr-7"
],
"support": {
"chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-paginator/",
+ "docs": "https://docs.laminas.dev/laminas-psr7bridge/",
"forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-paginator/issues",
- "rss": "https://github.com/laminas/laminas-paginator/releases.atom",
- "source": "https://github.com/laminas/laminas-paginator"
- },
- "time": "2019-12-31T17:36:22+00:00"
- },
- {
- "name": "laminas/laminas-psr7bridge",
- "version": "0.2.2",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-psr7bridge/0.2.2/laminas-laminas-psr7bridge-0.2.2.zip",
- "reference": "14780ef1d40effd59d77ab29c6d439b2af42cdfa",
- "shasum": ""
- },
- "require": {
- "laminas/laminas-diactoros": "^1.1",
- "laminas/laminas-http": "^2.5",
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": ">=5.5",
- "psr/http-message": "^1.0"
- },
- "replace": {
- "zendframework/zend-psr7bridge": "self.version"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.7",
- "squizlabs/php_codesniffer": "^2.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev",
- "dev-develop": "1.1-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Laminas\\Psr7Bridge\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "PSR-7 <-> Laminas\\Http bridge",
- "homepage": "https://laminas.dev",
- "keywords": [
- "http",
- "laminas",
- "psr",
- "psr-7"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-psr7bridge/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-psr7bridge/issues",
- "rss": "https://github.com/laminas/laminas-psr7bridge/releases.atom",
- "source": "https://github.com/laminas/laminas-psr7bridge"
+ "issues": "https://github.com/laminas/laminas-psr7bridge/issues",
+ "rss": "https://github.com/laminas/laminas-psr7bridge/releases.atom",
+ "source": "https://github.com/laminas/laminas-psr7bridge"
},
"time": "2019-12-31T17:38:47+00:00"
},
{
"name": "laminas/laminas-serializer",
"version": "2.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-serializer.git",
+ "reference": "1c57f1bdf05da078493b774c9e8d77ee8b46b4bb"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-serializer/2.10.0/laminas-laminas-serializer-2.10.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-serializer/zipball/1c57f1bdf05da078493b774c9e8d77ee8b46b4bb",
"reference": "1c57f1bdf05da078493b774c9e8d77ee8b46b4bb",
"shasum": ""
},
@@ -3035,6 +2964,7 @@
"Laminas\\Serializer\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3063,9 +2993,14 @@
{
"name": "laminas/laminas-servicemanager",
"version": "2.7.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-servicemanager.git",
+ "reference": "841abb656c6018afebeec1f355be438426d6a3dd"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-servicemanager/2.7.11/laminas-laminas-servicemanager-2.7.11.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-servicemanager/zipball/841abb656c6018afebeec1f355be438426d6a3dd",
"reference": "841abb656c6018afebeec1f355be438426d6a3dd",
"shasum": ""
},
@@ -3100,6 +3035,7 @@
"Laminas\\ServiceManager\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3121,9 +3057,14 @@
{
"name": "laminas/laminas-session",
"version": "2.8.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-session.git",
+ "reference": "92cbffa0460e15425993047845c2298e81c24899"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-session/2.8.7/laminas-laminas-session-2.8.7.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-session/zipball/92cbffa0460e15425993047845c2298e81c24899",
"reference": "92cbffa0460e15425993047845c2298e81c24899",
"shasum": ""
},
@@ -3172,6 +3113,7 @@
"Laminas\\Session\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3194,9 +3136,14 @@
{
"name": "laminas/laminas-stdlib",
"version": "2.7.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-stdlib.git",
+ "reference": "2b7ee69318bf08ed094ebf0b30f860bb26ddd9f6"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-stdlib/2.7.9/laminas-laminas-stdlib-2.7.9.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-stdlib/zipball/2b7ee69318bf08ed094ebf0b30f860bb26ddd9f6",
"reference": "2b7ee69318bf08ed094ebf0b30f860bb26ddd9f6",
"shasum": ""
},
@@ -3232,6 +3179,7 @@
"Laminas\\Stdlib\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3256,66 +3204,17 @@
],
"time": "2022-01-20T16:23:34+00:00"
},
- {
- "name": "laminas/laminas-text",
- "version": "2.7.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-text/2.7.1/laminas-laminas-text-2.7.1.zip",
- "reference": "3601b5eacb06ed0a12f658df860cc0f9613cf4db",
- "shasum": ""
- },
- "require": {
- "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^5.6 || ^7.0"
- },
- "replace": {
- "zendframework/zend-text": "self.version"
- },
- "require-dev": {
- "laminas/laminas-coding-standard": "~1.0.0",
- "laminas/laminas-config": "^2.6",
- "phpunit/phpunit": "^5.7.27 || ^6.5.8 || ^7.1.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.7.x-dev",
- "dev-develop": "2.8.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Laminas\\Text\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Create FIGlets and text-based tables",
- "homepage": "https://laminas.dev",
- "keywords": [
- "laminas",
- "text"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "docs": "https://docs.laminas.dev/laminas-text/",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-text/issues",
- "rss": "https://github.com/laminas/laminas-text/releases.atom",
- "source": "https://github.com/laminas/laminas-text"
- },
- "time": "2019-12-31T17:54:52+00:00"
- },
{
"name": "laminas/laminas-uri",
"version": "2.8.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-uri.git",
+ "reference": "79bd4c614c8cf9a6ba715a49fca8061e84933d87"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-uri/2.8.1/laminas-laminas-uri-2.8.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-uri/zipball/79bd4c614c8cf9a6ba715a49fca8061e84933d87",
"reference": "79bd4c614c8cf9a6ba715a49fca8061e84933d87",
"shasum": ""
},
@@ -3338,6 +3237,7 @@
"Laminas\\Uri\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3366,9 +3266,14 @@
{
"name": "laminas/laminas-validator",
"version": "2.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-validator.git",
+ "reference": "1c2be519684c6ec5fd6d02f36167d95292682977"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-validator/2.11.1/laminas-laminas-validator-2.11.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-validator/zipball/1c2be519684c6ec5fd6d02f36167d95292682977",
"reference": "1c2be519684c6ec5fd6d02f36167d95292682977",
"shasum": ""
},
@@ -3423,6 +3328,7 @@
"Laminas\\Validator\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3445,9 +3351,14 @@
{
"name": "laminas/laminas-view",
"version": "2.11.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-view.git",
+ "reference": "16611035d7b3a6ef2c636a9268c213146123b663"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-view/2.11.5/laminas-laminas-view-2.11.5.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-view/zipball/16611035d7b3a6ef2c636a9268c213146123b663",
"reference": "16611035d7b3a6ef2c636a9268c213146123b663",
"shasum": ""
},
@@ -3510,6 +3421,7 @@
"Laminas\\View\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3538,9 +3450,14 @@
{
"name": "laminas/laminas-xml",
"version": "1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-xml.git",
+ "reference": "dcadeefdb6d7ed6b39d772b47e3845003d6ea60f"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-xml/1.4.0/laminas-laminas-xml-1.4.0.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-xml/zipball/dcadeefdb6d7ed6b39d772b47e3845003d6ea60f",
"reference": "dcadeefdb6d7ed6b39d772b47e3845003d6ea60f",
"shasum": ""
},
@@ -3564,6 +3481,7 @@
"Laminas\\Xml\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3592,9 +3510,14 @@
{
"name": "laminas/laminas-zendframework-bridge",
"version": "1.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-zendframework-bridge.git",
+ "reference": "e112dd2c099f4f6142c16fc65fda89a638e06885"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-zendframework-bridge/1.6.1/laminas-laminas-zendframework-bridge-1.6.1.zip",
+ "url": "https://api.github.com/repos/laminas/laminas-zendframework-bridge/zipball/e112dd2c099f4f6142c16fc65fda89a638e06885",
"reference": "e112dd2c099f4f6142c16fc65fda89a638e06885",
"shasum": ""
},
@@ -3621,6 +3544,7 @@
"Laminas\\ZendFrameworkBridge\\": "src//"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3649,9 +3573,14 @@
{
"name": "lm-commons/lmc-rbac-mvc",
"version": "v2.6.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/LM-Commons/LmcRbacMvc.git",
+ "reference": "dd1857a88474e2a77996b1fb858f927510762819"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/lm-commons/lmc-rbac-mvc/v2.6.3/lm-commons-lmc-rbac-mvc-v2.6.3.zip",
+ "url": "https://api.github.com/repos/LM-Commons/LmcRbacMvc/zipball/dd1857a88474e2a77996b1fb858f927510762819",
"reference": "dd1857a88474e2a77996b1fb858f927510762819",
"shasum": ""
},
@@ -3694,6 +3623,7 @@
"ZfcRbac\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3729,11 +3659,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.17.1",
+ "version": "v4.18.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nikic/PHP-Parser.git",
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/nikic/php-parser/v4.17.1/nikic-php-parser-v4.17.1.zip",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/1bcbb2179f97633e98bbbc87044ee2611c7d7999",
+ "reference": "1bcbb2179f97633e98bbbc87044ee2611c7d7999",
"shasum": ""
},
"require": {
@@ -3758,6 +3693,7 @@
"PhpParser\\": "lib/PhpParser"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -3773,16 +3709,21 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.18.0"
},
- "time": "2023-08-13T19:53:39+00:00"
+ "time": "2023-12-10T21:03:43+00:00"
},
{
"name": "olcs/olcs-auth",
"version": "5.0.0.alpha1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/olcs-auth.git",
+ "reference": "18c095f2dd4c89da0a7dae8a43588cf002234eef"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/olcs/olcs-auth/5.0.0.alpha1/olcs-olcs-auth-5.0.0.alpha1.zip",
+ "url": "https://api.github.com/repos/dvsa/olcs-auth/zipball/18c095f2dd4c89da0a7dae8a43588cf002234eef",
"reference": "18c095f2dd4c89da0a7dae8a43588cf002234eef",
"shasum": ""
},
@@ -3819,6 +3760,7 @@
"Dvsa\\Olcs\\Auth\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -3831,9 +3773,14 @@
{
"name": "olcs/olcs-common",
"version": "5.0.0-alpha.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/olcs-common.git",
+ "reference": "0a9748ed58e43b414dbe572383a0ff85bf98f3de"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/olcs/olcs-common/5.0.0-alpha.1/olcs-olcs-common-5.0.0-alpha.1.zip",
+ "url": "https://api.github.com/repos/dvsa/olcs-common/zipball/0a9748ed58e43b414dbe572383a0ff85bf98f3de",
"reference": "0a9748ed58e43b414dbe572383a0ff85bf98f3de",
"shasum": ""
},
@@ -3889,108 +3836,24 @@
"./Common/Module.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"description": "Common library for the OLCS Project",
"support": {
"source": "https://github.com/dvsa/olcs-common/tree/5.0.0-alpha.1"
},
"time": "2023-12-15T09:41:55+00:00"
},
- {
- "name": "olcs/olcs-frontend-deps",
- "version": "4.206.7",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/OLCS/olcs/olcs-frontend-deps/4.206.7/olcs-olcs-frontend-deps-4.206.7.zip",
- "reference": "d9cdc7c021ecb4e1ff7d88c8c6f55a3905f6366f",
- "shasum": "d9cdc7c021ecb4e1ff7d88c8c6f55a3905f6366f"
- },
- "require": {
- "doctrine/annotations": "^1.14.2",
- "doctrine/doctrine-module": "^1",
- "ext-intl": "*",
- "firebase/php-jwt": "^6.0",
- "olcs/olcs-auth": "^5.0.0",
- "olcs/olcs-common": "^5.0.0",
- "olcs/olcs-logging": "^5.0.0",
- "olcs/olcs-transfer": "^5.0.0",
- "olcs/olcs-utils": "^5.0.0",
- "php": ">=7.4",
- "soflomo/purifier": "^1.0",
- "symfony/filesystem": "^5",
- "symfony/lock": "^5"
- },
- "type": "library",
- "extra": {
- "nexus-push": {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/olcs-frontend-deps"
- }
- },
- "description": "List of front end dependencies, shared between internal and selfserve nodes",
- "time": "2023-12-15T11:08:53+00:00"
- },
- {
- "name": "olcs/olcs-laminas",
- "version": "2.5.2",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/OLCS/olcs/olcs-laminas/2.5.2/olcs-olcs-laminas-2.5.2.zip",
- "reference": "2905575ee2fd04fd364c9dc31289ff8aea92d912",
- "shasum": "2905575ee2fd04fd364c9dc31289ff8aea92d912"
- },
- "require": {
- "laminas/laminas-authentication": "^2.5",
- "laminas/laminas-cache": "^2.5",
- "laminas/laminas-code": "~3.4.1",
- "laminas/laminas-console": "^2.5",
- "laminas/laminas-crypt": "^3.0",
- "laminas/laminas-dependency-plugin": "^2.0",
- "laminas/laminas-escaper": "^2.5",
- "laminas/laminas-eventmanager": "^2.5",
- "laminas/laminas-filter": "^2.5",
- "laminas/laminas-form": "^2.5",
- "laminas/laminas-http": "^2.5",
- "laminas/laminas-i18n": "^2.5",
- "laminas/laminas-inputfilter": "^2.5",
- "laminas/laminas-json": "^2.5",
- "laminas/laminas-loader": "^2.5",
- "laminas/laminas-log": "^2.5",
- "laminas/laminas-mail": "^2.5",
- "laminas/laminas-math": "^3.0",
- "laminas/laminas-mime": "^2.5",
- "laminas/laminas-modulemanager": "^2.5",
- "laminas/laminas-mvc": "^2.5",
- "laminas/laminas-navigation": "<=2.13.0",
- "laminas/laminas-serializer": "^2.5",
- "laminas/laminas-servicemanager": "^2.5",
- "laminas/laminas-session": "^2.5",
- "laminas/laminas-stdlib": "^2.5",
- "laminas/laminas-text": "^2.5",
- "laminas/laminas-uri": "^2.5",
- "laminas/laminas-validator": "^2.5",
- "laminas/laminas-view": "^2.5",
- "laminas/laminas-xml": "^1.2.0",
- "lm-commons/lmc-rbac-mvc": "^2.6"
- },
- "require-dev": {
- "elendev/composer-push": "1.0.3",
- "laminas/laminas-developer-tools": "*",
- "san/san-session-toolbar": "*"
- },
- "type": "library",
- "extra": {
- "nexus-push": {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/olcs-laminas"
- }
- },
- "description": "List of olcs laminas dependencies that are common across all repos",
- "time": "2023-03-01T11:33:40+00:00"
- },
{
"name": "olcs/olcs-logging",
"version": "5.0.0.alpha1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/olcs-logging.git",
+ "reference": "2312891aeb3e67cd17c4fce9dbafe0f0e7c2e099"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/olcs/olcs-logging/5.0.0.alpha1/olcs-olcs-logging-5.0.0.alpha1.zip",
+ "url": "https://api.github.com/repos/dvsa/olcs-logging/zipball/2312891aeb3e67cd17c4fce9dbafe0f0e7c2e099",
"reference": "2312891aeb3e67cd17c4fce9dbafe0f0e7c2e099",
"shasum": ""
},
@@ -4022,6 +3885,7 @@
"Olcs\\Logging\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4033,11 +3897,16 @@
},
{
"name": "olcs/olcs-transfer",
- "version": "5.0.0.alpha1",
+ "version": "5.0.0-alpha.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/olcs-transfer.git",
+ "reference": "d83cd24b3a180167ed17add4a2557dff2d03a460"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/olcs/olcs-transfer/5.0.0.alpha1/olcs-olcs-transfer-5.0.0.alpha1.zip",
- "reference": "9d457fdb8d4bac53e7d484021c3d952979b12109",
+ "url": "https://api.github.com/repos/dvsa/olcs-transfer/zipball/d83cd24b3a180167ed17add4a2557dff2d03a460",
+ "reference": "d83cd24b3a180167ed17add4a2557dff2d03a460",
"shasum": ""
},
"require": {
@@ -4071,19 +3940,25 @@
"Dvsa\\Olcs\\Transfer\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"description": "OLCS Transfer",
"support": {
- "source": "https://github.com/dvsa/olcs-transfer/tree/5.0.0.alpha1"
+ "source": "https://github.com/dvsa/olcs-transfer/tree/5.0.0-alpha.3"
},
- "time": "2023-12-01T11:59:16+00:00"
+ "time": "2023-12-13T13:42:29+00:00"
},
{
"name": "olcs/olcs-utils",
- "version": "5.0.0.alpha1",
+ "version": "5.0.0-alpha.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/dvsa/olcs-utils.git",
+ "reference": "032a00a8e5dad25d771864acfe170ae9facbb626"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/olcs/olcs-utils/5.0.0.alpha1/olcs-olcs-utils-5.0.0.alpha1.zip",
- "reference": "82b2c2986397dfc8b5e615b48259747fb28ca1a8",
+ "url": "https://api.github.com/repos/dvsa/olcs-utils/zipball/032a00a8e5dad25d771864acfe170ae9facbb626",
+ "reference": "032a00a8e5dad25d771864acfe170ae9facbb626",
"shasum": ""
},
"require": {
@@ -4116,18 +3991,24 @@
"Dvsa\\Olcs\\Utils\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"description": "OLCS Utils",
"support": {
- "source": "https://github.com/dvsa/olcs-utils/tree/5.0.0.alpha1"
+ "source": "https://github.com/dvsa/olcs-utils/tree/5.0.0-alpha.2"
},
- "time": "2023-11-27T14:10:02+00:00"
+ "time": "2023-12-19T15:10:07+00:00"
},
{
"name": "psr/cache",
"version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/cache/1.0.1/psr-cache-1.0.1.zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
"reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
"shasum": ""
},
@@ -4145,6 +4026,7 @@
"Psr\\Cache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4168,9 +4050,14 @@
{
"name": "psr/container",
"version": "1.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "513e0666f7216c7459170d56df27dfcefe1689ea"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/container/1.1.2/psr-container-1.1.2.zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea",
"reference": "513e0666f7216c7459170d56df27dfcefe1689ea",
"shasum": ""
},
@@ -4183,6 +4070,7 @@
"Psr\\Container\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4210,9 +4098,14 @@
{
"name": "psr/http-message",
"version": "1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-message.git",
+ "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/http-message/1.1/psr-http-message-1.1.zip",
+ "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
"shasum": ""
},
@@ -4230,6 +4123,7 @@
"Psr\\Http\\Message\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4257,9 +4151,14 @@
{
"name": "psr/log",
"version": "1.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/log/1.1.4/psr-log-1.1.4.zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
"reference": "d49695b909c3b7628b6289db5479a1c204601f11",
"shasum": ""
},
@@ -4277,6 +4176,7 @@
"Psr\\Log\\": "Psr/Log/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4301,9 +4201,14 @@
{
"name": "psr/simple-cache",
"version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/simple-cache/1.0.1/psr-simple-cache-1.0.1.zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
"shasum": ""
},
@@ -4321,6 +4226,7 @@
"Psr\\SimpleCache\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4343,89 +4249,17 @@
},
"time": "2017-10-23T01:57:42+00:00"
},
- {
- "name": "soflomo/purifier",
- "version": "1.0.2",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/soflomo/purifier/1.0.2/soflomo-purifier-1.0.2.zip",
- "reference": "9302c64d0f2853e3486ff6b619a90083674136b4",
- "shasum": ""
- },
- "require": {
- "ezyang/htmlpurifier": "^4.5",
- "php": ">=5.5",
- "zendframework/zend-filter": "^2.5"
- },
- "require-dev": {
- "fabpot/php-cs-fixer": "^1.11",
- "php-vfs/php-vfs": "^1.3",
- "phpunit/phpunit": "^4.8",
- "zendframework/zend-console": "^2.5",
- "zendframework/zend-http": "^2.5",
- "zendframework/zend-i18n": "^2.5",
- "zendframework/zend-log": "^2.6",
- "zendframework/zend-modulemanager": "^2.5",
- "zendframework/zend-mvc": "^2.5",
- "zendframework/zend-serializer": "^2.5",
- "zendframework/zend-servicemanager": "^2.5",
- "zendframework/zend-view": "^2.5"
- },
- "suggest": {
- "zendframework/zend-modulemanager": "To load the filter as a module in a ZF2 application",
- "zendframework/zend-servicemanager": "For creating the filter with the SM factory",
- "zendframework/zend-view": "For using the purifier as view helper"
- },
- "bin": [
- "bin/purifier-generate-standalone"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Soflomo\\Purifier\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Jurian Sluiman",
- "email": "jurian@juriansluiman.nl",
- "homepage": "https://juriansluiman.nl"
- },
- {
- "name": "Stefano Torresi",
- "email": "stefano@torresi.io",
- "homepage": "https://stefanotorresi.it"
- }
- ],
- "description": "HTML Purifier integration module for Zend Framework 2 ",
- "homepage": "https://github.com/juriansluiman/Soflomo-Purifier",
- "keywords": [
- "Purifier",
- "filter",
- "html",
- "purify",
- "zf2"
- ],
- "support": {
- "issues": "https://github.com/juriansluiman/Soflomo-Purifier/issues",
- "source": "https://github.com/juriansluiman/Soflomo-Purifier/tree/1.0.2"
- },
- "time": "2016-03-10T20:32:46+00:00"
- },
{
"name": "symfony/console",
"version": "v3.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/console.git",
+ "reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/console/v3.4.47/symfony-console-v3.4.47.zip",
+ "url": "https://api.github.com/repos/symfony/console/zipball/a10b1da6fc93080c180bba7219b5ff5b7518fe81",
"reference": "a10b1da6fc93080c180bba7219b5ff5b7518fe81",
"shasum": ""
},
@@ -4464,6 +4298,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4501,9 +4336,14 @@
{
"name": "symfony/debug",
"version": "v4.4.44",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/debug.git",
+ "reference": "1a692492190773c5310bc7877cb590c04c2f05be"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/debug/v4.4.44/symfony-debug-v4.4.44.zip",
+ "url": "https://api.github.com/repos/symfony/debug/zipball/1a692492190773c5310bc7877cb590c04c2f05be",
"reference": "1a692492190773c5310bc7877cb590c04c2f05be",
"shasum": ""
},
@@ -4526,6 +4366,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4563,11 +4404,16 @@
},
{
"name": "symfony/dependency-injection",
- "version": "v5.4.32",
+ "version": "v5.4.34",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/dependency-injection.git",
+ "reference": "75d568165a65fa7d8124869ec7c3a90424352e6c"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/dependency-injection/v5.4.32/symfony-dependency-injection-v5.4.32.zip",
- "reference": "d5d48f215ed73f7973d01256b9a2fac729bef759",
+ "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/75d568165a65fa7d8124869ec7c3a90424352e6c",
+ "reference": "75d568165a65fa7d8124869ec7c3a90424352e6c",
"shasum": ""
},
"require": {
@@ -4610,6 +4456,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4626,7 +4473,7 @@
"description": "Allows you to standardize and centralize the way objects are constructed in your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dependency-injection/tree/v5.4.32"
+ "source": "https://github.com/symfony/dependency-injection/tree/v5.4.34"
},
"funding": [
{
@@ -4642,14 +4489,19 @@
"type": "tidelift"
}
],
- "time": "2023-11-29T06:58:28+00:00"
+ "time": "2023-12-28T09:31:38+00:00"
},
{
"name": "symfony/deprecation-contracts",
"version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/deprecation-contracts.git",
+ "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/deprecation-contracts/v2.5.2/symfony-deprecation-contracts-v2.5.2.zip",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
"shasum": ""
},
@@ -4671,6 +4523,7 @@
"function.php"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4706,46 +4559,70 @@
"time": "2022-01-02T09:53:40+00:00"
},
{
- "name": "symfony/filesystem",
- "version": "v5.4.25",
+ "name": "symfony/polyfill-ctype",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-ctype.git",
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/filesystem/v5.4.25/symfony-filesystem-v5.4.25.zip",
- "reference": "0ce3a62c9579a53358d3a7eb6b3dfb79789a6364",
+ "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-mbstring": "~1.8",
- "symfony/polyfill-php80": "^1.16"
+ "php": ">=7.1"
+ },
+ "provide": {
+ "ext-ctype": "*"
+ },
+ "suggest": {
+ "ext-ctype": "For best performance"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
"autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
"psr-4": {
- "Symfony\\Component\\Filesystem\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "Symfony\\Polyfill\\Ctype\\": ""
+ }
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
+ "name": "Gert de Pagter",
+ "email": "BackEndTea@gmail.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Provides basic utilities for the filesystem",
+ "description": "Symfony polyfill for ctype functions",
"homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "ctype",
+ "polyfill",
+ "portable"
+ ],
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v5.4.25"
+ "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
},
"funding": [
{
@@ -4761,64 +4638,72 @@
"type": "tidelift"
}
],
- "time": "2023-05-31T13:04:02+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
- "name": "symfony/lock",
- "version": "v5.4.32",
+ "name": "symfony/polyfill-intl-grapheme",
+ "version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
+ "reference": "875e90aeea2777b6f135677f618529449334a612"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/lock/v5.4.32/symfony-lock-v5.4.32.zip",
- "reference": "a6d7d829f4907134775a0e1b162780e61f80ed87",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/875e90aeea2777b6f135677f618529449334a612",
+ "reference": "875e90aeea2777b6f135677f618529449334a612",
"shasum": ""
},
"require": {
- "php": ">=7.2.5",
- "psr/log": "^1|^2|^3",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "conflict": {
- "doctrine/dbal": "<2.13"
+ "php": ">=7.1"
},
- "require-dev": {
- "doctrine/dbal": "^2.13|^3|^4",
- "predis/predis": "~1.0"
+ "suggest": {
+ "ext-intl": "For best performance"
},
"type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Lock\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.28-dev"
+ },
+ "thanks": {
+ "name": "symfony/polyfill",
+ "url": "https://github.com/symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Intl\\Grapheme\\": ""
+ }
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "Jérémy Derussé",
- "email": "jeremy@derusse.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Creates and manages locks, a mechanism to provide exclusive access to a shared resource",
+ "description": "Symfony polyfill for intl's grapheme_* functions",
"homepage": "https://symfony.com",
"keywords": [
- "cas",
- "flock",
- "locking",
- "mutex",
- "redlock",
- "semaphore"
+ "compatibility",
+ "grapheme",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
],
"support": {
- "source": "https://github.com/symfony/lock/tree/v5.4.32"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.28.0"
},
"funding": [
{
@@ -4834,25 +4719,27 @@
"type": "tidelift"
}
],
- "time": "2023-11-20T15:40:25+00:00"
+ "time": "2023-01-26T09:26:14+00:00"
},
{
- "name": "symfony/polyfill-ctype",
+ "name": "symfony/polyfill-intl-normalizer",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-ctype/v1.28.0/symfony-polyfill-ctype-v1.28.0.zip",
- "reference": "ea208ce43cbb04af6867b4fdddb1bdbf84cc28cb",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
+ "reference": "8c4ad05dd0120b6a53c1ca374dca2ad0a1c4ed92",
"shasum": ""
},
"require": {
"php": ">=7.1"
},
- "provide": {
- "ext-ctype": "*"
- },
"suggest": {
- "ext-ctype": "For best performance"
+ "ext-intl": "For best performance"
},
"type": "library",
"extra": {
@@ -4869,32 +4756,38 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Ctype\\": ""
- }
+ "Symfony\\Polyfill\\Intl\\Normalizer\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "Gert de Pagter",
- "email": "BackEndTea@gmail.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill for ctype functions",
+ "description": "Symfony polyfill for intl's Normalizer class and related functions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
- "ctype",
+ "intl",
+ "normalizer",
"polyfill",
- "portable"
+ "portable",
+ "shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-ctype/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.28.0"
},
"funding": [
{
@@ -4915,9 +4808,14 @@
{
"name": "symfony/polyfill-mbstring",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "42292d99c55abe617799667f454222c54c60e229"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-mbstring/v1.28.0/symfony-polyfill-mbstring-v1.28.0.zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
"reference": "42292d99c55abe617799667f454222c54c60e229",
"shasum": ""
},
@@ -4948,6 +4846,7 @@
"Symfony\\Polyfill\\Mbstring\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -4992,9 +4891,14 @@
{
"name": "symfony/polyfill-php73",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php73.git",
+ "reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-php73/v1.28.0/symfony-polyfill-php73-v1.28.0.zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/fe2f306d1d9d346a7fee353d0d5012e401e984b5",
"reference": "fe2f306d1d9d346a7fee353d0d5012e401e984b5",
"shasum": ""
},
@@ -5022,6 +4926,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5065,9 +4970,14 @@
{
"name": "symfony/polyfill-php80",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php80.git",
+ "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-php80/v1.28.0/symfony-polyfill-php80-v1.28.0.zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
"shasum": ""
},
@@ -5095,6 +5005,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5142,9 +5053,14 @@
{
"name": "symfony/polyfill-php81",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "7581cd600fa9fd681b797d00b02f068e2f13263b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-php81/v1.28.0/symfony-polyfill-php81-v1.28.0.zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/7581cd600fa9fd681b797d00b02f068e2f13263b",
"reference": "7581cd600fa9fd681b797d00b02f068e2f13263b",
"shasum": ""
},
@@ -5172,6 +5088,7 @@
"Resources/stubs"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5212,12 +5129,189 @@
],
"time": "2023-01-26T09:26:14+00:00"
},
+ {
+ "name": "symfony/property-access",
+ "version": "v5.4.26",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-access.git",
+ "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/0249e46f69e92049a488f39fcf531cb42c50caaa",
+ "reference": "0249e46f69e92049a488f39fcf531cb42c50caaa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/property-info": "^5.2|^6.0"
+ },
+ "require-dev": {
+ "symfony/cache": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "psr/cache-implementation": "To cache access methods."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyAccess\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Provides functions to read and write from/to an object or array using a simple string notation",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "access",
+ "array",
+ "extraction",
+ "index",
+ "injection",
+ "object",
+ "property",
+ "property-path",
+ "reflection"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-access/tree/v5.4.26"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-07-13T15:20:41+00:00"
+ },
+ {
+ "name": "symfony/property-info",
+ "version": "v5.4.24",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/property-info.git",
+ "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/d43b85b00699b4484964c297575b5c6f9dc5f6e1",
+ "reference": "d43b85b00699b4484964c297575b5c6f9dc5f6e1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2.5",
+ "symfony/deprecation-contracts": "^2.1|^3",
+ "symfony/polyfill-php80": "^1.16",
+ "symfony/string": "^5.1|^6.0"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.2.2",
+ "phpdocumentor/type-resolver": "<1.4.0",
+ "symfony/dependency-injection": "<4.4"
+ },
+ "require-dev": {
+ "doctrine/annotations": "^1.10.4|^2",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0",
+ "phpstan/phpdoc-parser": "^1.0",
+ "symfony/cache": "^4.4|^5.0|^6.0",
+ "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+ "symfony/serializer": "^4.4|^5.0|^6.0"
+ },
+ "suggest": {
+ "phpdocumentor/reflection-docblock": "To use the PHPDoc",
+ "psr/cache-implementation": "To cache results",
+ "symfony/doctrine-bridge": "To use Doctrine metadata",
+ "symfony/serializer": "To use Serializer metadata"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\PropertyInfo\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Kévin Dunglas",
+ "email": "dunglas@gmail.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Extracts information about PHP class' properties using metadata of popular sources",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "doctrine",
+ "phpdoc",
+ "property",
+ "symfony",
+ "type",
+ "validator"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/property-info/tree/v5.4.24"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-05-15T20:11:03+00:00"
+ },
{
"name": "symfony/service-contracts",
"version": "v2.5.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/service-contracts.git",
+ "reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/service-contracts/v2.5.2/symfony-service-contracts-v2.5.2.zip",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
"reference": "4b426aac47d6427cc1a1d0f7e2ac724627f5966c",
"shasum": ""
},
@@ -5247,6 +5341,7 @@
"Symfony\\Contracts\\Service\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5290,56 +5385,102 @@
"time": "2022-05-30T19:17:29+00:00"
},
{
- "name": "true/punycode",
- "version": "v2.1.1",
+ "name": "symfony/string",
+ "version": "v5.4.34",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/string.git",
+ "reference": "e3f98bfc7885c957488f443df82d97814a3ce061"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/true/punycode/v2.1.1/true-punycode-v2.1.1.zip",
- "reference": "a4d0c11a36dd7f4e7cd7096076cab6d3378a071e",
+ "url": "https://api.github.com/repos/symfony/string/zipball/e3f98bfc7885c957488f443df82d97814a3ce061",
+ "reference": "e3f98bfc7885c957488f443df82d97814a3ce061",
"shasum": ""
},
"require": {
- "php": ">=5.3.0",
- "symfony/polyfill-mbstring": "^1.3"
+ "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": {
- "phpunit/phpunit": "~4.7",
- "squizlabs/php_codesniffer": "~2.0"
+ "symfony/error-handler": "^4.4|^5.0|^6.0",
+ "symfony/http-client": "^4.4|^5.0|^6.0",
+ "symfony/translation-contracts": "^1.1|^2",
+ "symfony/var-exporter": "^4.4|^5.0|^6.0"
},
"type": "library",
"autoload": {
+ "files": [
+ "Resources/functions.php"
+ ],
"psr-4": {
- "TrueBV\\": "src/"
- }
+ "Symfony\\Component\\String\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "Renan Gonçalves",
- "email": "renan.saddam@gmail.com"
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
}
],
- "description": "A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)",
- "homepage": "https://github.com/true/php-punycode",
+ "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": [
- "idna",
- "punycode"
+ "grapheme",
+ "i18n",
+ "string",
+ "unicode",
+ "utf-8",
+ "utf8"
],
"support": {
- "issues": "https://github.com/true/php-punycode/issues",
- "source": "https://github.com/true/php-punycode/tree/master"
+ "source": "https://github.com/symfony/string/tree/v5.4.34"
},
- "abandoned": true,
- "time": "2016-11-16T10:37:54+00:00"
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-09T13:20:28+00:00"
},
{
"name": "webimpress/safe-writer",
"version": "2.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webimpress/safe-writer.git",
+ "reference": "9d37cc8bee20f7cb2f58f6e23e05097eab5072e6"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/webimpress/safe-writer/2.2.0/webimpress-safe-writer-2.2.0.zip",
+ "url": "https://api.github.com/repos/webimpress/safe-writer/zipball/9d37cc8bee20f7cb2f58f6e23e05097eab5072e6",
"reference": "9d37cc8bee20f7cb2f58f6e23e05097eab5072e6",
"shasum": ""
},
@@ -5364,6 +5505,7 @@
"Webimpress\\SafeWriter\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-2-Clause"
],
@@ -5387,12 +5529,91 @@
],
"time": "2021-04-19T16:34:45+00:00"
},
+ {
+ "name": "zendframework/zend-paginator",
+ "version": "2.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-paginator.git",
+ "reference": "2b4d07d9475ed581278a28d065b238a0941402e2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-paginator/zipball/2b4d07d9475ed581278a28d065b238a0941402e2",
+ "reference": "2b4d07d9475ed581278a28d065b238a0941402e2",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.0 || ^5.6",
+ "zendframework/zend-stdlib": "^2.7 || ^3.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^6.2.1 || ^5.7.15",
+ "zendframework/zend-cache": "^2.6.1",
+ "zendframework/zend-coding-standard": "~1.0.0",
+ "zendframework/zend-config": "^2.6.0",
+ "zendframework/zend-db": "^2.9.2",
+ "zendframework/zend-filter": "^2.6.1",
+ "zendframework/zend-json": "^2.6.1",
+ "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3",
+ "zendframework/zend-view": "^2.6.3"
+ },
+ "suggest": {
+ "zendframework/zend-cache": "Zend\\Cache component to support cache features",
+ "zendframework/zend-db": "Zend\\Db component",
+ "zendframework/zend-filter": "Zend\\Filter component",
+ "zendframework/zend-json": "Zend\\Json component",
+ "zendframework/zend-servicemanager": "Zend\\ServiceManager component",
+ "zendframework/zend-view": "Zend\\View component"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.8.x-dev",
+ "dev-develop": "2.9.x-dev"
+ },
+ "zf": {
+ "component": "Zend\\Paginator",
+ "config-provider": "Zend\\Paginator\\ConfigProvider"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Paginator\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "Paginate collections of data from arbitrary sources",
+ "keywords": [
+ "ZendFramework",
+ "paginator",
+ "zf"
+ ],
+ "support": {
+ "chat": "https://zendframework-slack.herokuapp.com",
+ "docs": "https://docs.zendframework.com/zend-paginator/",
+ "forum": "https://discourse.zendframework.com/c/questions/components",
+ "issues": "https://github.com/zendframework/zend-paginator/issues",
+ "rss": "https://github.com/zendframework/zend-paginator/releases.atom",
+ "source": "https://github.com/zendframework/zend-paginator"
+ },
+ "abandoned": "laminas/laminas-paginator",
+ "time": "2019-08-21T13:31:03+00:00"
+ },
{
"name": "zfr/rbac",
"version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zf-fr/rbac.git",
+ "reference": "493711bfc2a637fd7c6f23b71b7b55a621c35d9d"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/zfr/rbac/1.2.0/zfr-rbac-1.2.0.zip",
+ "url": "https://api.github.com/repos/zf-fr/rbac/zipball/493711bfc2a637fd7c6f23b71b7b55a621c35d9d",
"reference": "493711bfc2a637fd7c6f23b71b7b55a621c35d9d",
"shasum": ""
},
@@ -5411,6 +5632,7 @@
"Rbac\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5438,175 +5660,73 @@
],
"packages-dev": [
{
- "name": "composer/pcre",
- "version": "3.1.1",
+ "name": "bamarni/composer-bin-plugin",
+ "version": "1.8.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/bamarni/composer-bin-plugin.git",
+ "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/composer/pcre/3.1.1/composer-pcre-3.1.1.zip",
- "reference": "00104306927c7a0919b4ced2aaa6782c1e61a3c9",
+ "url": "https://api.github.com/repos/bamarni/composer-bin-plugin/zipball/92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880",
+ "reference": "92fd7b1e6e9cdae19b0d57369d8ad31a37b6a880",
"shasum": ""
},
"require": {
- "php": "^7.4 || ^8.0"
+ "composer-plugin-api": "^2.0",
+ "php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.3",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^5"
+ "composer/composer": "^2.0",
+ "ext-json": "*",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.8",
+ "phpstan/phpstan-phpunit": "^1.1",
+ "phpunit/phpunit": "^8.5 || ^9.5",
+ "symfony/console": "^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"
},
- "type": "library",
+ "type": "composer-plugin",
"extra": {
- "branch-alias": {
- "dev-main": "3.x-dev"
- }
+ "class": "Bamarni\\Composer\\Bin\\BamarniBinPlugin"
},
"autoload": {
"psr-4": {
- "Composer\\Pcre\\": "src"
+ "Bamarni\\Composer\\Bin\\": "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/3.1.1"
- },
- "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": "2023-10-11T07:11:09+00:00"
- },
- {
- "name": "composer/xdebug-handler",
- "version": "3.0.3",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/composer/xdebug-handler/3.0.3/composer-xdebug-handler-3.0.3.zip",
- "reference": "ced299686f41dce890debac69273b47ffe98a40c",
- "shasum": ""
- },
- "require": {
- "composer/pcre": "^1 || ^2 || ^3",
- "php": "^7.2.5 || ^8.0",
- "psr/log": "^1 || ^2 || ^3"
- },
- "require-dev": {
- "phpstan/phpstan": "^1.0",
- "phpstan/phpstan-strict-rules": "^1.1",
- "symfony/phpunit-bridge": "^6.0"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Composer\\XdebugHandler\\": "src"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "John Stevenson",
- "email": "john-stevenson@blueyonder.co.uk"
- }
- ],
- "description": "Restarts a process without Xdebug.",
+ "description": "No conflicts for your bin dependencies",
"keywords": [
- "Xdebug",
- "performance"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/composer",
- "issues": "https://github.com/composer/xdebug-handler/issues",
- "source": "https://github.com/composer/xdebug-handler/tree/3.0.3"
- },
- "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-25T21:32:43+00:00"
- },
- {
- "name": "dms/phpunit-arraysubset-asserts",
- "version": "v0.3.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/dms/phpunit-arraysubset-asserts/v0.3.1/dms-phpunit-arraysubset-asserts-v0.3.1.zip",
- "reference": "e1b47df99cd0dbb3f63528adc5c990256218c707",
- "shasum": ""
- },
- "require": {
- "php": "^5.4 || ^7.0 || ^8.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
- },
- "require-dev": {
- "dms/coding-standard": "^9",
- "squizlabs/php_codesniffer": "^3.4"
- },
- "type": "library",
- "autoload": {
- "files": [
- "assertarraysubset-autoload.php"
- ]
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Rafael Dohms",
- "email": "rdohms@gmail.com"
- }
+ "composer",
+ "conflict",
+ "dependency",
+ "executable",
+ "isolation",
+ "tool"
],
- "description": "This package provides ArraySubset and related asserts once deprecated in PHPUnit 8",
"support": {
- "issues": "https://github.com/rdohms/phpunit-arraysubset-asserts/issues",
- "source": "https://github.com/rdohms/phpunit-arraysubset-asserts/tree/v0.3.1"
+ "issues": "https://github.com/bamarni/composer-bin-plugin/issues",
+ "source": "https://github.com/bamarni/composer-bin-plugin/tree/1.8.2"
},
- "time": "2021-10-17T18:50:58+00:00"
+ "time": "2022-10-31T08:38:03+00:00"
},
{
"name": "doctrine/instantiator",
"version": "1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/doctrine/instantiator/1.5.0/doctrine-instantiator-1.5.0.zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b",
"reference": "0a0fa9780f5d4e507415a065172d26a98d02047b",
"shasum": ""
},
@@ -5629,6 +5749,7 @@
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -5666,718 +5787,245 @@
"time": "2022-12-30T00:15:36+00:00"
},
{
- "name": "dvsa/coding-standards",
- "version": "v2.0.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/dvsa/coding-standards/v2.0.0/dvsa-coding-standards-v2.0.0.zip",
- "reference": "22da6f5cbed2a3ba619d1552727a908fbf0f2098",
- "shasum": ""
- },
- "require": {
- "php": "^7.4|^8.0",
- "squizlabs/php_codesniffer": "^3.1"
- },
- "require-dev": {
- "friendsofphp/php-cs-fixer": "^2.0"
- },
- "suggest": {
- "friendsofphp/php-cs-fixer": "To use the shared coding standards ruleset for PHP CS Fixer"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Dvsa\\PhpCodingStandards\\PhpCsFixer\\": "src/Profiles/DVSA/PhpCsFixer"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Shaun Hare",
- "email": "shaun.hare@dvsa.gov.uk"
- },
- {
- "name": "Igor Stimoli",
- "email": "igor.stimoli@bjss.com"
- },
- {
- "name": "Chris Emerson",
- "email": "chris.emerson@bjss.com"
- }
- ],
- "description": "Coding Standards used for PHP in the Driver and Vehicle Standards Agency. PSR Compliant.",
- "support": {
- "issues": "https://github.com/dvsa/php-coding-standards/issues",
- "source": "https://github.com/dvsa/php-coding-standards/tree/v2.0.0"
+ "name": "hamcrest/hamcrest-php",
+ "version": "v2.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3"
},
- "time": "2022-01-17T15:41:57+00:00"
- },
- {
- "name": "elendev/composer-push",
- "version": "1.0.4",
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/elendev/composer-push/1.0.4/elendev-composer-push-1.0.4.zip",
- "reference": "74cd140d8481b68284291628c37d92e4c7caebbe",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
+ "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
"shasum": ""
},
"require": {
- "composer-plugin-api": "^1.1|^2.0",
- "ext-curl": "*",
- "ext-json": "*",
- "ext-zip": "*",
- "guzzlehttp/guzzle": "^6.0|^7.0",
- "php": ">=7.2 || ^8.0",
- "symfony/filesystem": "^4.0|^5.0|^6.0",
- "symfony/finder": "^4.0|^5.0|^6.0"
+ "php": "^5.3|^7.0|^8.0"
},
"replace": {
- "elendev/nexus-composer-push": "*"
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
},
"require-dev": {
- "composer/composer": "^1.8 || ^2.0",
- "friendsofphp/php-cs-fixer": "^2.18|^3.4.0",
- "phpunit/phpunit": "^8 || ^9 || ^10"
- },
- "suggest": {
- "elendev/composer-push": "Replaces the elendev/nexus-composer-push repository, which is deprecated."
+ "phpunit/php-file-iterator": "^1.4 || ^2.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
},
- "type": "composer-plugin",
+ "type": "library",
"extra": {
- "class": "Elendev\\ComposerPush\\Plugin"
+ "branch-alias": {
+ "dev-master": "2.1-dev"
+ }
},
"autoload": {
- "psr-4": {
- "Elendev\\ComposerPush\\": "src/"
- }
+ "classmap": [
+ "hamcrest"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "Apache-2.0"
+ "BSD-3-Clause"
],
- "authors": [
- {
- "name": "Elendev",
- "email": "jonas.renaudot@gmail.com"
- }
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
],
- "description": "Provide a Push command to composer to push to repositories",
"support": {
- "issues": "https://github.com/Elendev/composer-push/issues",
- "source": "https://github.com/Elendev/composer-push/tree/1.0.4"
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
},
- "time": "2023-02-21T09:59:18+00:00"
+ "time": "2020-07-09T08:09:16+00:00"
},
{
- "name": "fzaninotto/faker",
- "version": "v1.9.2",
+ "name": "johnkary/phpunit-speedtrap",
+ "version": "v4.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/johnkary/phpunit-speedtrap.git",
+ "reference": "d6600d2218396b78856c335f83479503957a5fa9"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/fzaninotto/faker/v1.9.2/fzaninotto-faker-v1.9.2.zip",
- "reference": "848d8125239d7dbf8ab25cb7f054f1a630e68c2e",
+ "url": "https://api.github.com/repos/johnkary/phpunit-speedtrap/zipball/d6600d2218396b78856c335f83479503957a5fa9",
+ "reference": "d6600d2218396b78856c335f83479503957a5fa9",
"shasum": ""
},
"require": {
- "php": "^5.3.3 || ^7.0"
- },
- "require-dev": {
- "ext-intl": "*",
- "phpunit/phpunit": "^4.8.35 || ^5.7",
- "squizlabs/php_codesniffer": "^2.9.2"
+ "php": ">=7.1",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.9-dev"
+ "dev-master": "4.0-dev"
}
},
"autoload": {
"psr-4": {
- "Faker\\": "src/Faker/"
+ "JohnKary\\PHPUnit\\Listener\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
- "name": "François Zaninotto"
+ "name": "John Kary",
+ "email": "john@johnkary.net"
}
],
- "description": "Faker is a PHP library that generates fake data for you.",
+ "description": "Find and report on slow tests in your PHPUnit test suite",
+ "homepage": "https://github.com/johnkary/phpunit-speedtrap",
"keywords": [
- "data",
- "faker",
- "fixtures"
+ "phpunit",
+ "profile",
+ "slow"
],
"support": {
- "issues": "https://github.com/fzaninotto/Faker/issues",
- "source": "https://github.com/fzaninotto/Faker/tree/v1.9.2"
+ "issues": "https://github.com/johnkary/phpunit-speedtrap/issues",
+ "source": "https://github.com/johnkary/phpunit-speedtrap/tree/v4.0.1"
},
- "abandoned": true,
- "time": "2020-12-11T09:56:16+00:00"
+ "time": "2022-10-17T00:56:56+00:00"
},
{
- "name": "guzzlehttp/guzzle",
- "version": "7.8.0",
+ "name": "laminas/laminas-developer-tools",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-developer-tools.git",
+ "reference": "f6a6cfe65a36f9284e106381d002c216be6df0bc"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/guzzlehttp/guzzle/7.8.0/guzzlehttp-guzzle-7.8.0.zip",
- "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9",
+ "url": "https://api.github.com/repos/laminas/laminas-developer-tools/zipball/f6a6cfe65a36f9284e106381d002c216be6df0bc",
+ "reference": "f6a6cfe65a36f9284e106381d002c216be6df0bc",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "guzzlehttp/promises": "^1.5.3 || ^2.0.1",
- "guzzlehttp/psr7": "^1.9.1 || ^2.5.1",
- "php": "^7.2.5 || ^8.0",
- "psr/http-client": "^1.0",
- "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ "laminas/laminas-eventmanager": "^2.6.2 || ^3.0",
+ "laminas/laminas-modulemanager": "^2.7",
+ "laminas/laminas-mvc": "^2.7 || ^3.0.1",
+ "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
+ "laminas/laminas-stdlib": "^2.7 || ^3.0",
+ "laminas/laminas-view": "^2.6",
+ "laminas/laminas-zendframework-bridge": "^1.0",
+ "php": "^5.6 || ^7.0",
+ "symfony/var-dumper": "^3.4.36 || ^4.4.1 || ^5.0.1"
},
- "provide": {
- "psr/http-client-implementation": "1.0"
+ "replace": {
+ "zendframework/zend-developer-tools": "^2.0.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "ext-curl": "*",
- "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
- "php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
- "psr/log": "^1.1 || ^2.0 || ^3.0"
+ "laminas/laminas-coding-standard": "~1.0.0",
+ "phpunit/phpunit": "^5.7.25 || ^6.4.4 || ^7.1"
},
"suggest": {
- "ext-curl": "Required for CURL handler support",
- "ext-intl": "Required for Internationalized Domain Name (IDN) support",
- "psr/log": "Required for using the Log middleware"
+ "aist/aist-git-tools": "Show you information about current GIT repository",
+ "bjyoungblood/bjy-profiler": "Version: dev-master, allows the usage of the (Laminas) Db collector.",
+ "doctrine/doctrine-orm-module": "Profile DoctrineORM queries",
+ "jhuet/zdt-logger-module": "Show you log data from Laminas\\Log",
+ "ocramius/ocra-service-manager": "OcraServiceManager can help you track dependencies within your application.",
+ "san/san-session-toolbar": "SanSessionToolbar can help you see current Laminas\\Session data you're using within your application.",
+ "snapshotpl/api-tools-snap-event-debugger": "ZfSnapEventDebugger can help you debug events from Laminas\\EventManager"
},
"type": "library",
"extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
+ "laminas": {
+ "module": "Laminas\\DeveloperTools"
}
},
"autoload": {
- "files": [
- "src/functions_include.php"
- ],
"psr-4": {
- "GuzzleHttp\\": "src/"
+ "Laminas\\DeveloperTools\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "Jeremy Lindblom",
- "email": "jeremeamia@gmail.com",
- "homepage": "https://github.com/jeremeamia"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://github.com/sagikazarmark"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- }
+ "BSD-3-Clause"
],
- "description": "Guzzle is a PHP HTTP client library",
+ "description": "Module for developer and debug tools for use with laminas-mvc applications.",
+ "homepage": "https://laminas.dev",
"keywords": [
- "client",
- "curl",
- "framework",
- "http",
- "http client",
- "psr-18",
- "psr-7",
- "rest",
- "web service"
+ "debug",
+ "developer",
+ "laminas",
+ "module"
],
"support": {
- "issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.8.0"
+ "chat": "https://laminas.dev/chat",
+ "forum": "https://discourse.laminas.dev",
+ "issues": "https://github.com/laminas/laminas-developer-tools/issues",
+ "rss": "https://github.com/laminas/laminas-developer-tools/releases.atom",
+ "source": "https://github.com/laminas/laminas-developer-tools"
},
"funding": [
{
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
- "type": "tidelift"
+ "url": "https://funding.communitybridge.org/projects/laminas-project",
+ "type": "community_bridge"
}
],
- "time": "2023-08-27T10:20:53+00:00"
+ "time": "2020-11-02T03:12:47+00:00"
},
{
- "name": "guzzlehttp/promises",
- "version": "2.0.1",
+ "name": "mockery/mockery",
+ "version": "1.6.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/guzzlehttp/promises/2.0.1/guzzlehttp-promises-2.0.1.zip",
- "reference": "111166291a0f8130081195ac4556a5587d7f1b5d",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
+ "reference": "0cc058854b3195ba21dc6b1f7b1f60f4ef3a9c06",
"shasum": ""
},
"require": {
- "php": "^7.2.5 || ^8.0"
+ "hamcrest/hamcrest-php": "^2.0.1",
+ "lib-pcre": ">=7.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "phpunit/phpunit": "^8.5 || ^9.6.10",
+ "symplify/easy-coding-standard": "^12.0.8"
},
"type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
"autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
"psr-4": {
- "GuzzleHttp\\Promise\\": "src/"
+ "Mockery\\": "library/Mockery"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
},
{
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
},
{
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- }
- ],
- "description": "Guzzle promises library",
- "keywords": [
- "promise"
- ],
- "support": {
- "issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
- "type": "tidelift"
- }
- ],
- "time": "2023-08-03T15:11:55+00:00"
- },
- {
- "name": "guzzlehttp/psr7",
- "version": "2.6.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/guzzlehttp/psr7/2.6.1/guzzlehttp-psr7-2.6.1.zip",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
- "shasum": ""
- },
- "require": {
- "php": "^7.2.5 || ^8.0",
- "psr/http-factory": "^1.0",
- "psr/http-message": "^1.1 || ^2.0",
- "ralouphie/getallheaders": "^3.0"
- },
- "provide": {
- "psr/http-factory-implementation": "1.0",
- "psr/http-message-implementation": "1.0"
- },
- "require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
- },
- "suggest": {
- "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
- },
- "type": "library",
- "extra": {
- "bamarni-bin": {
- "bin-links": true,
- "forward-command": false
- }
- },
- "autoload": {
- "psr-4": {
- "GuzzleHttp\\Psr7\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Graham Campbell",
- "email": "hello@gjcampbell.co.uk",
- "homepage": "https://github.com/GrahamCampbell"
- },
- {
- "name": "Michael Dowling",
- "email": "mtdowling@gmail.com",
- "homepage": "https://github.com/mtdowling"
- },
- {
- "name": "George Mponos",
- "email": "gmponos@gmail.com",
- "homepage": "https://github.com/gmponos"
- },
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com",
- "homepage": "https://github.com/Nyholm"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://github.com/sagikazarmark"
- },
- {
- "name": "Tobias Schultze",
- "email": "webmaster@tubo-world.de",
- "homepage": "https://github.com/Tobion"
- },
- {
- "name": "Márk Sági-Kazár",
- "email": "mark.sagikazar@gmail.com",
- "homepage": "https://sagikazarmark.hu"
- }
- ],
- "description": "PSR-7 message implementation that also provides common utility methods",
- "keywords": [
- "http",
- "message",
- "psr-7",
- "request",
- "response",
- "stream",
- "uri",
- "url"
- ],
- "support": {
- "issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.1"
- },
- "funding": [
- {
- "url": "https://github.com/GrahamCampbell",
- "type": "github"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
- "type": "tidelift"
- }
- ],
- "time": "2023-08-27T10:13:57+00:00"
- },
- {
- "name": "hamcrest/hamcrest-php",
- "version": "v2.0.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/hamcrest/hamcrest-php/v2.0.1/hamcrest-hamcrest-php-v2.0.1.zip",
- "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3",
- "shasum": ""
- },
- "require": {
- "php": "^5.3|^7.0|^8.0"
- },
- "replace": {
- "cordoval/hamcrest-php": "*",
- "davedevelopment/hamcrest-php": "*",
- "kodova/hamcrest-php": "*"
- },
- "require-dev": {
- "phpunit/php-file-iterator": "^1.4 || ^2.0",
- "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.1-dev"
- }
- },
- "autoload": {
- "classmap": [
- "hamcrest"
- ]
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "This is the PHP port of Hamcrest Matchers",
- "keywords": [
- "test"
- ],
- "support": {
- "issues": "https://github.com/hamcrest/hamcrest-php/issues",
- "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1"
- },
- "time": "2020-07-09T08:09:16+00:00"
- },
- {
- "name": "johnkary/phpunit-speedtrap",
- "version": "v3.3.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/johnkary/phpunit-speedtrap/v3.3.0/johnkary-phpunit-speedtrap-v3.3.0.zip",
- "reference": "9ba81d42676da31366c85d3ff8c10a8352d02030",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1",
- "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "4.0-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "JohnKary\\PHPUnit\\Listener\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "John Kary",
- "email": "john@johnkary.net"
- }
- ],
- "description": "Find and report on slow tests in your PHPUnit test suite",
- "homepage": "https://github.com/johnkary/phpunit-speedtrap",
- "keywords": [
- "phpunit",
- "profile",
- "slow"
- ],
- "support": {
- "issues": "https://github.com/johnkary/phpunit-speedtrap/issues",
- "source": "https://github.com/johnkary/phpunit-speedtrap/tree/v3.3.0"
- },
- "time": "2020-12-18T16:20:16+00:00"
- },
- {
- "name": "laminas/laminas-developer-tools",
- "version": "2.0.3",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/laminas/laminas-developer-tools/2.0.3/laminas-laminas-developer-tools-2.0.3.zip",
- "reference": "f6a6cfe65a36f9284e106381d002c216be6df0bc",
- "shasum": ""
- },
- "require": {
- "laminas/laminas-eventmanager": "^2.6.2 || ^3.0",
- "laminas/laminas-modulemanager": "^2.7",
- "laminas/laminas-mvc": "^2.7 || ^3.0.1",
- "laminas/laminas-servicemanager": "^2.7.5 || ^3.0.3",
- "laminas/laminas-stdlib": "^2.7 || ^3.0",
- "laminas/laminas-view": "^2.6",
- "laminas/laminas-zendframework-bridge": "^1.0",
- "php": "^5.6 || ^7.0",
- "symfony/var-dumper": "^3.4.36 || ^4.4.1 || ^5.0.1"
- },
- "replace": {
- "zendframework/zend-developer-tools": "^2.0.0"
- },
- "require-dev": {
- "laminas/laminas-coding-standard": "~1.0.0",
- "phpunit/phpunit": "^5.7.25 || ^6.4.4 || ^7.1"
- },
- "suggest": {
- "aist/aist-git-tools": "Show you information about current GIT repository",
- "bjyoungblood/bjy-profiler": "Version: dev-master, allows the usage of the (Laminas) Db collector.",
- "doctrine/doctrine-orm-module": "Profile DoctrineORM queries",
- "jhuet/zdt-logger-module": "Show you log data from Laminas\\Log",
- "ocramius/ocra-service-manager": "OcraServiceManager can help you track dependencies within your application.",
- "san/san-session-toolbar": "SanSessionToolbar can help you see current Laminas\\Session data you're using within your application.",
- "snapshotpl/api-tools-snap-event-debugger": "ZfSnapEventDebugger can help you debug events from Laminas\\EventManager"
- },
- "type": "library",
- "extra": {
- "laminas": {
- "module": "Laminas\\DeveloperTools"
- }
- },
- "autoload": {
- "psr-4": {
- "Laminas\\DeveloperTools\\": "src/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "description": "Module for developer and debug tools for use with laminas-mvc applications.",
- "homepage": "https://laminas.dev",
- "keywords": [
- "debug",
- "developer",
- "laminas",
- "module"
- ],
- "support": {
- "chat": "https://laminas.dev/chat",
- "forum": "https://discourse.laminas.dev",
- "issues": "https://github.com/laminas/laminas-developer-tools/issues",
- "rss": "https://github.com/laminas/laminas-developer-tools/releases.atom",
- "source": "https://github.com/laminas/laminas-developer-tools"
- },
- "funding": [
- {
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
- }
- ],
- "time": "2020-11-02T03:12:47+00:00"
- },
- {
- "name": "mikey179/vfsstream",
- "version": "v1.6.11",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/mikey179/vfsstream/v1.6.11/mikey179-vfsstream-v1.6.11.zip",
- "reference": "17d16a85e6c26ce1f3e2fa9ceeacdc2855db1e9f",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.5|^5.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.6.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "org\\bovigo\\vfs\\": "src/main/php"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Frank Kleine",
- "homepage": "http://frankkleine.de/",
- "role": "Developer"
- }
- ],
- "description": "Virtual file system to mock the real file system in unit tests.",
- "homepage": "http://vfs.bovigo.org/",
- "support": {
- "issues": "https://github.com/bovigo/vfsStream/issues",
- "source": "https://github.com/bovigo/vfsStream/tree/master",
- "wiki": "https://github.com/bovigo/vfsStream/wiki"
- },
- "time": "2022-02-23T02:02:42+00:00"
- },
- {
- "name": "mockery/mockery",
- "version": "1.4.4",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/mockery/mockery/1.4.4/mockery-mockery-1.4.4.zip",
- "reference": "e01123a0e847d52d186c5eb4b9bf58b0c6d00346",
- "shasum": ""
- },
- "require": {
- "hamcrest/hamcrest-php": "^2.0.1",
- "lib-pcre": ">=7.0",
- "php": "^7.3 || ^8.0"
- },
- "conflict": {
- "phpunit/phpunit": "<8.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^8.5 || ^9.3"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.4.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Mockery": "library/"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Pádraic Brady",
- "email": "padraic.brady@gmail.com",
- "homepage": "http://blog.astrumfutura.com"
- },
- {
- "name": "Dave Marshall",
- "email": "dave.marshall@atstsolutions.co.uk",
- "homepage": "http://davedevelopment.co.uk"
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
}
],
"description": "Mockery is a simple yet flexible PHP mock object framework",
@@ -6388,211 +6036,91 @@
"library",
"mock",
"mock objects",
- "mockery",
- "stub",
- "test",
- "test double",
- "testing"
- ],
- "support": {
- "issues": "https://github.com/mockery/mockery/issues",
- "source": "https://github.com/mockery/mockery/tree/1.4.4"
- },
- "time": "2021-09-13T15:28:59+00:00"
- },
- {
- "name": "myclabs/deep-copy",
- "version": "1.11.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/myclabs/deep-copy/1.11.1/myclabs-deep-copy-1.11.1.zip",
- "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0"
- },
- "conflict": {
- "doctrine/collections": "<1.6.8",
- "doctrine/common": "<2.13.3 || >=3,<3.2.2"
- },
- "require-dev": {
- "doctrine/collections": "^1.6.8",
- "doctrine/common": "^2.13.3 || ^3.2.2",
- "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
- },
- "type": "library",
- "autoload": {
- "files": [
- "src/DeepCopy/deep_copy.php"
- ],
- "psr-4": {
- "DeepCopy\\": "src/DeepCopy/"
- }
- },
- "license": [
- "MIT"
- ],
- "description": "Create deep copies (clones) of your objects",
- "keywords": [
- "clone",
- "copy",
- "duplicate",
- "object",
- "object graph"
- ],
- "support": {
- "issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
- }
- ],
- "time": "2023-03-08T13:26:56+00:00"
- },
- {
- "name": "olcs/olcs-devtools",
- "version": "4.206.21",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/OLCS/olcs/olcs-devtools/4.206.21/olcs-olcs-devtools-4.206.21.zip",
- "reference": "08058c29491b81313069fc373000d581101fede2",
- "shasum": "08058c29491b81313069fc373000d581101fede2"
- },
- "require": {
- "dms/phpunit-arraysubset-asserts": "^0.3.1",
- "dvsa/coding-standards": "^2.0.0",
- "elendev/composer-push": "^1.0.3",
- "fzaninotto/faker": "^1.9",
- "johnkary/phpunit-speedtrap": "^3.2",
- "mikey179/vfsstream": "^1.6",
- "mockery/mockery": "~1.4.4",
- "olcs/olcs-testhelpers": "~4.206.0",
- "php": ">=7.4",
- "phpmd/phpmd": "^2.11.1",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^0.12",
- "phpstan/phpstan-doctrine": "^0.12",
- "phpstan/phpstan-mockery": "^0.12",
- "phpstan/phpstan-phpunit": "^0.12",
- "phpunit/phpcov": "8.*",
- "phpunit/phpunit": "^9",
- "squizlabs/php_codesniffer": "~3.6.2"
- },
- "bin": [
- "bin/review",
- "bin/composer-install-syms",
- "bin/composer-update-syms"
- ],
- "type": "library",
- "extra": {
- "nexus-push": {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/olcs-devtools/"
- }
- },
- "autoload": {
- "psr-4": {
- "Devtools\\": "src/"
- }
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
},
- "description": "Dev tools",
- "time": "2023-06-16T14:43:09+00:00"
+ "time": "2023-12-10T02:24:34+00:00"
},
{
- "name": "olcs/olcs-testhelpers",
- "version": "4.206.22",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/OLCS/olcs/olcs-testhelpers/4.206.22/olcs-olcs-testhelpers-4.206.22.zip",
- "reference": "ab4c0103cf90ca52c4340ea776f3349b98931c16",
- "shasum": "ab4c0103cf90ca52c4340ea776f3349b98931c16"
- },
- "require": {
- "elendev/composer-push": "^1.0.3",
- "olcs/olcs-laminas": "~2.5.0 || ~3.0.0",
- "php": ">=7.4"
- },
- "type": "library",
- "extra": {
- "nexus-push": {
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/olcs-testhelpers"
- }
- },
- "autoload": {
- "psr-4": {
- "Olcs\\TestHelpers\\": "src/TestHelpers/"
- }
+ "name": "myclabs/deep-copy",
+ "version": "1.11.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/myclabs/DeepCopy.git",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c"
},
- "description": "OLCS Test helpers",
- "time": "2023-10-18T11:28:11+00:00"
- },
- {
- "name": "pdepend/pdepend",
- "version": "2.16.0",
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/pdepend/pdepend/2.16.0/pdepend-pdepend-2.16.0.zip",
- "reference": "8dfc0c46529e2073fa97986552f80646eedac562",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
+ "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c",
"shasum": ""
},
"require": {
- "php": ">=5.3.7",
- "symfony/config": "^2.3.0|^3|^4|^5|^6.0|^7.0",
- "symfony/dependency-injection": "^2.3.0|^3|^4|^5|^6.0|^7.0",
- "symfony/filesystem": "^2.3.0|^3|^4|^5|^6.0|^7.0",
- "symfony/polyfill-mbstring": "^1.19"
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "doctrine/collections": "<1.6.8",
+ "doctrine/common": "<2.13.3 || >=3,<3.2.2"
},
"require-dev": {
- "easy-doc/easy-doc": "0.0.0|^1.2.3",
- "gregwar/rst": "^1.0",
- "phpunit/phpunit": "^4.8.36|^5.7.27",
- "squizlabs/php_codesniffer": "^2.0.0"
+ "doctrine/collections": "^1.6.8",
+ "doctrine/common": "^2.13.3 || ^3.2.2",
+ "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13"
},
- "bin": [
- "src/bin/pdepend"
- ],
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "2.x-dev"
- }
- },
"autoload": {
+ "files": [
+ "src/DeepCopy/deep_copy.php"
+ ],
"psr-4": {
- "PDepend\\": "src/main/php/PDepend"
+ "DeepCopy\\": "src/DeepCopy/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "BSD-3-Clause"
+ "MIT"
],
- "description": "Official version of pdepend to be handled with Composer",
+ "description": "Create deep copies (clones) of your objects",
"keywords": [
- "PHP Depend",
- "PHP_Depend",
- "dev",
- "pdepend"
+ "clone",
+ "copy",
+ "duplicate",
+ "object",
+ "object graph"
],
"support": {
- "issues": "https://github.com/pdepend/pdepend/issues",
- "source": "https://github.com/pdepend/pdepend/tree/2.16.0"
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1"
},
"funding": [
{
- "url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend",
+ "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
"type": "tidelift"
}
],
- "time": "2023-11-29T08:52:35+00:00"
+ "time": "2023-03-08T13:26:56+00:00"
},
{
"name": "phar-io/manifest",
"version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/manifest.git",
+ "reference": "97803eca37d319dfa7826cc2437fc020857acb53"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phar-io/manifest/2.0.3/phar-io-manifest-2.0.3.zip",
+ "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53",
"reference": "97803eca37d319dfa7826cc2437fc020857acb53",
"shasum": ""
},
@@ -6614,6 +6142,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -6626,407 +6155,91 @@
{
"name": "Sebastian Heuer",
"email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
- "support": {
- "issues": "https://github.com/phar-io/manifest/issues",
- "source": "https://github.com/phar-io/manifest/tree/2.0.3"
- },
- "time": "2021-07-20T11:28:43+00:00"
- },
- {
- "name": "phar-io/version",
- "version": "3.2.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phar-io/version/3.2.1/phar-io-version-3.2.1.zip",
- "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
- "shasum": ""
- },
- "require": {
- "php": "^7.2 || ^8.0"
- },
- "type": "library",
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Arne Blankerts",
- "email": "arne@blankerts.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Heuer",
- "email": "sebastian@phpeople.de",
- "role": "Developer"
- },
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "Developer"
- }
- ],
- "description": "Library for handling version information and constraints",
- "support": {
- "issues": "https://github.com/phar-io/version/issues",
- "source": "https://github.com/phar-io/version/tree/3.2.1"
- },
- "time": "2022-02-21T01:04:05+00:00"
- },
- {
- "name": "phpmd/phpmd",
- "version": "2.14.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpmd/phpmd/2.14.1/phpmd-phpmd-2.14.1.zip",
- "reference": "442fc2c34edcd5198b442d8647c7f0aec3afabe8",
- "shasum": ""
- },
- "require": {
- "composer/xdebug-handler": "^1.0 || ^2.0 || ^3.0",
- "ext-xml": "*",
- "pdepend/pdepend": "^2.15.1",
- "php": ">=5.3.9"
- },
- "require-dev": {
- "easy-doc/easy-doc": "0.0.0 || ^1.3.2",
- "ext-json": "*",
- "ext-simplexml": "*",
- "gregwar/rst": "^1.0",
- "mikey179/vfsstream": "^1.6.8",
- "phpunit/phpunit": "^4.8.36 || ^5.7.27",
- "squizlabs/php_codesniffer": "^2.9.2 || ^3.7.2"
- },
- "bin": [
- "src/bin/phpmd"
- ],
- "type": "library",
- "autoload": {
- "psr-0": {
- "PHPMD\\": "src/main/php"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Manuel Pichler",
- "email": "github@manuel-pichler.de",
- "homepage": "https://github.com/manuelpichler",
- "role": "Project Founder"
- },
- {
- "name": "Marc Würth",
- "email": "ravage@bluewin.ch",
- "homepage": "https://github.com/ravage84",
- "role": "Project Maintainer"
- },
- {
- "name": "Other contributors",
- "homepage": "https://github.com/phpmd/phpmd/graphs/contributors",
- "role": "Contributors"
- }
- ],
- "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.",
- "homepage": "https://phpmd.org/",
- "keywords": [
- "dev",
- "mess detection",
- "mess detector",
- "pdepend",
- "phpmd",
- "pmd"
- ],
- "support": {
- "irc": "irc://irc.freenode.org/phpmd",
- "issues": "https://github.com/phpmd/phpmd/issues",
- "source": "https://github.com/phpmd/phpmd/tree/2.14.1"
- },
- "funding": [
- {
- "url": "https://tidelift.com/funding/github/packagist/phpmd/phpmd",
- "type": "tidelift"
- }
- ],
- "time": "2023-09-28T13:07:44+00:00"
- },
- {
- "name": "phpstan/extension-installer",
- "version": "1.1.0",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpstan/extension-installer/1.1.0/phpstan-extension-installer-1.1.0.zip",
- "reference": "66c7adc9dfa38b6b5838a9fb728b68a7d8348051",
- "shasum": ""
- },
- "require": {
- "composer-plugin-api": "^1.1 || ^2.0",
- "php": "^7.1 || ^8.0",
- "phpstan/phpstan": ">=0.11.6"
- },
- "require-dev": {
- "composer/composer": "^1.8",
- "phing/phing": "^2.16.3",
- "php-parallel-lint/php-parallel-lint": "^1.2.0",
- "phpstan/phpstan-strict-rules": "^0.11 || ^0.12"
- },
- "type": "composer-plugin",
- "extra": {
- "class": "PHPStan\\ExtensionInstaller\\Plugin"
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\ExtensionInstaller\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "description": "Composer plugin for automatic installation of PHPStan extensions",
- "support": {
- "issues": "https://github.com/phpstan/extension-installer/issues",
- "source": "https://github.com/phpstan/extension-installer/tree/1.1.0"
- },
- "time": "2020-12-13T13:06:13+00:00"
- },
- {
- "name": "phpstan/phpstan",
- "version": "0.12.100",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpstan/phpstan/0.12.100/phpstan-phpstan-0.12.100.zip",
- "reference": "48236ddf823547081b2b153d1cd2994b784328c3",
- "shasum": ""
- },
- "require": {
- "php": "^7.1|^8.0"
- },
- "conflict": {
- "phpstan/phpstan-shim": "*"
- },
- "bin": [
- "phpstan",
- "phpstan.phar"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.12-dev"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ]
- },
- "license": [
- "MIT"
- ],
- "description": "PHPStan - PHP Static Analysis Tool",
- "support": {
- "issues": "https://github.com/phpstan/phpstan/issues",
- "source": "https://github.com/phpstan/phpstan/tree/0.12.100"
- },
- "funding": [
- {
- "url": "https://github.com/ondrejmirtes",
- "type": "github"
- },
- {
- "url": "https://github.com/phpstan",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan",
- "type": "tidelift"
- }
- ],
- "time": "2022-11-01T09:52:08+00:00"
- },
- {
- "name": "phpstan/phpstan-doctrine",
- "version": "0.12.44",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpstan/phpstan-doctrine/0.12.44/phpstan-phpstan-doctrine-0.12.44.zip",
- "reference": "5fe9a9b15707d9bc5178fa7cf0899e904d112ccd",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "phpstan/phpstan": "^0.12.85"
- },
- "conflict": {
- "doctrine/collections": "<1.0",
- "doctrine/common": "<2.7",
- "doctrine/mongodb-odm": "<1.2",
- "doctrine/orm": "<2.5",
- "doctrine/persistence": "<1.3"
- },
- "require-dev": {
- "doctrine/annotations": "^1.11.0",
- "doctrine/collections": "^1.6",
- "doctrine/common": "^2.7 || ^3.0",
- "doctrine/dbal": "^2.13.1",
- "doctrine/mongodb-odm": "^1.3 || ^2.1",
- "doctrine/orm": "^2.9.1",
- "doctrine/persistence": "^1.1 || ^2.0",
- "nesbot/carbon": "^2.49",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-phpunit": "^0.12.16",
- "phpstan/phpstan-strict-rules": "^0.12.5",
- "phpunit/phpunit": "^9.5",
- "ramsey/uuid-doctrine": "^1.5.0"
- },
- "type": "phpstan-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "0.12-dev"
- },
- "phpstan": {
- "includes": [
- "extension.neon",
- "rules.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "description": "Doctrine extensions for PHPStan",
- "support": {
- "issues": "https://github.com/phpstan/phpstan-doctrine/issues",
- "source": "https://github.com/phpstan/phpstan-doctrine/tree/0.12.44"
- },
- "time": "2021-09-01T06:46:16+00:00"
- },
- {
- "name": "phpstan/phpstan-mockery",
- "version": "0.12.14",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpstan/phpstan-mockery/0.12.14/phpstan-phpstan-mockery-0.12.14.zip",
- "reference": "7cc74bf434b3c2190f7f4cfc08c74f7c0b65667f",
- "shasum": ""
- },
- "require": {
- "php": "^7.1 || ^8.0",
- "phpstan/phpstan": "^0.12.60"
- },
- "require-dev": {
- "mockery/mockery": "^1.2.4",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-phpunit": "^0.12.16",
- "phpstan/phpstan-strict-rules": "^0.12.5",
- "phpunit/phpunit": "^9.5"
- },
- "type": "phpstan-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "0.12-dev"
+ "role": "Developer"
},
- "phpstan": {
- "includes": [
- "extension.neon"
- ]
- }
- },
- "autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
}
- },
- "license": [
- "MIT"
],
- "description": "PHPStan Mockery extension",
+ "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)",
"support": {
- "issues": "https://github.com/phpstan/phpstan-mockery/issues",
- "source": "https://github.com/phpstan/phpstan-mockery/tree/0.12.14"
+ "issues": "https://github.com/phar-io/manifest/issues",
+ "source": "https://github.com/phar-io/manifest/tree/2.0.3"
},
- "time": "2021-06-10T12:12:36+00:00"
+ "time": "2021-07-20T11:28:43+00:00"
},
{
- "name": "phpstan/phpstan-phpunit",
- "version": "0.12.22",
+ "name": "phar-io/version",
+ "version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phar-io/version.git",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpstan/phpstan-phpunit/0.12.22/phpstan-phpstan-phpunit-0.12.22.zip",
- "reference": "7c01ef93bf128b4ac8bdad38c54b2a4fd6b0b3cc",
+ "url": "https://api.github.com/repos/phar-io/version/zipball/4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
+ "reference": "4f7fd7836c6f332bb2933569e566a0d6c4cbed74",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0",
- "phpstan/phpstan": "^0.12.92"
- },
- "conflict": {
- "phpunit/phpunit": "<7.0"
- },
- "require-dev": {
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/phpstan-strict-rules": "^0.12.6",
- "phpunit/phpunit": "^9.5"
- },
- "type": "phpstan-extension",
- "extra": {
- "branch-alias": {
- "dev-master": "0.12-dev"
- },
- "phpstan": {
- "includes": [
- "extension.neon",
- "rules.neon"
- ]
- }
+ "php": "^7.2 || ^8.0"
},
+ "type": "library",
"autoload": {
- "psr-4": {
- "PHPStan\\": "src/"
- }
+ "classmap": [
+ "src/"
+ ]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Arne Blankerts",
+ "email": "arne@blankerts.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Heuer",
+ "email": "sebastian@phpeople.de",
+ "role": "Developer"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "Developer"
+ }
],
- "description": "PHPUnit extensions and rules for PHPStan",
+ "description": "Library for handling version information and constraints",
"support": {
- "issues": "https://github.com/phpstan/phpstan-phpunit/issues",
- "source": "https://github.com/phpstan/phpstan-phpunit/tree/0.12.22"
+ "issues": "https://github.com/phar-io/version/issues",
+ "source": "https://github.com/phar-io/version/tree/3.2.1"
},
- "time": "2021-08-12T10:53:43+00:00"
+ "time": "2022-02-21T01:04:05+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "9.2.29",
+ "version": "9.2.30",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/php-code-coverage/9.2.29/phpunit-php-code-coverage-9.2.29.zip",
- "reference": "6a3a87ac2bbe33b25042753df8195ba4aa534c76",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ca2bd87d2f9215904682a9cb9bb37dda98e76089",
+ "reference": "ca2bd87d2f9215904682a9cb9bb37dda98e76089",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3",
"phpunit/php-file-iterator": "^3.0.3",
"phpunit/php-text-template": "^2.0.2",
@@ -7055,6 +6268,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7075,7 +6289,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.29"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.30"
},
"funding": [
{
@@ -7083,14 +6297,19 @@
"type": "github"
}
],
- "time": "2023-09-19T04:57:46+00:00"
+ "time": "2023-12-22T06:47:57+00:00"
},
{
"name": "phpunit/php-file-iterator",
"version": "3.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/php-file-iterator/3.0.6/phpunit-php-file-iterator-3.0.6.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
"reference": "cf1c2e7c203ac650e352f4cc675a7021e7d1b3cf",
"shasum": ""
},
@@ -7111,6 +6330,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7142,9 +6362,14 @@
{
"name": "phpunit/php-invoker",
"version": "3.1.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-invoker.git",
+ "reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/php-invoker/3.1.1/phpunit-php-invoker-3.1.1.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-invoker/zipball/5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"reference": "5a10147d0aaf65b58940a0b72f71c9ac0423cc67",
"shasum": ""
},
@@ -7169,6 +6394,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7199,9 +6425,14 @@
{
"name": "phpunit/php-text-template",
"version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/php-text-template/2.0.4/phpunit-php-text-template-2.0.4.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"reference": "5da5f67fc95621df9ff4c4e5a84d6a8a2acf7c28",
"shasum": ""
},
@@ -7222,6 +6453,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7252,9 +6484,14 @@
{
"name": "phpunit/php-timer",
"version": "5.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/php-timer/5.0.3/phpunit-php-timer-5.0.3.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"reference": "5a63ce20ed1b5bf577850e2c4e87f4aa902afbd2",
"shasum": ""
},
@@ -7275,6 +6512,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7302,69 +6540,18 @@
],
"time": "2020-10-26T13:16:10+00:00"
},
- {
- "name": "phpunit/phpcov",
- "version": "8.2.1",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/phpcov/8.2.1/phpunit-phpcov-8.2.1.zip",
- "reference": "8ec45dde34a84914a0ace355fbd6d7af2242c9a4",
- "shasum": ""
- },
- "require": {
- "php": ">=7.3",
- "phpunit/php-code-coverage": "^9.2",
- "phpunit/php-file-iterator": "^3.0",
- "phpunit/phpunit": "^9.3",
- "sebastian/cli-parser": "^1.0",
- "sebastian/diff": "^4.0",
- "sebastian/version": "^3.0"
- },
- "bin": [
- "phpcov"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "8.2-dev"
- }
- },
- "autoload": {
- "classmap": [
- "src/"
- ]
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "CLI frontend for php-code-coverage",
- "homepage": "https://github.com/sebastianbergmann/phpcov",
- "support": {
- "issues": "https://github.com/sebastianbergmann/phpcov/issues",
- "source": "https://github.com/sebastianbergmann/phpcov/tree/8.2.1"
- },
- "funding": [
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- }
- ],
- "time": "2022-03-24T12:07:05+00:00"
- },
{
"name": "phpunit/phpunit",
- "version": "9.6.14",
+ "version": "9.6.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/phpunit/phpunit/9.6.14/phpunit-phpunit-9.6.14.zip",
- "reference": "43653e6ad7adc22e7b667dd561bf8fcb74c10cf0",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/05017b80304e0eb3f31d90194a563fd53a6021f1",
+ "reference": "05017b80304e0eb3f31d90194a563fd53a6021f1",
"shasum": ""
},
"require": {
@@ -7382,238 +6569,111 @@
"phpunit/php-code-coverage": "^9.2.28",
"phpunit/php-file-iterator": "^3.0.5",
"phpunit/php-invoker": "^3.1.1",
- "phpunit/php-text-template": "^2.0.3",
- "phpunit/php-timer": "^5.0.2",
- "sebastian/cli-parser": "^1.0.1",
- "sebastian/code-unit": "^1.0.6",
- "sebastian/comparator": "^4.0.8",
- "sebastian/diff": "^4.0.3",
- "sebastian/environment": "^5.1.3",
- "sebastian/exporter": "^4.0.5",
- "sebastian/global-state": "^5.0.1",
- "sebastian/object-enumerator": "^4.0.3",
- "sebastian/resource-operations": "^3.0.3",
- "sebastian/type": "^3.2",
- "sebastian/version": "^3.0.2"
- },
- "suggest": {
- "ext-soap": "To be able to generate mocks based on WSDL files",
- "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
- },
- "bin": [
- "phpunit"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "9.6-dev"
- }
- },
- "autoload": {
- "files": [
- "src/Framework/Assert/Functions.php"
- ],
- "classmap": [
- "src/"
- ]
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Sebastian Bergmann",
- "email": "sebastian@phpunit.de",
- "role": "lead"
- }
- ],
- "description": "The PHP Unit Testing framework.",
- "homepage": "https://phpunit.de/",
- "keywords": [
- "phpunit",
- "testing",
- "xunit"
- ],
- "support": {
- "issues": "https://github.com/sebastianbergmann/phpunit/issues",
- "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.14"
- },
- "funding": [
- {
- "url": "https://phpunit.de/sponsors.html",
- "type": "custom"
- },
- {
- "url": "https://github.com/sebastianbergmann",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
- "type": "tidelift"
- }
- ],
- "time": "2023-12-01T06:10:48+00:00"
- },
- {
- "name": "psr/http-client",
- "version": "1.0.3",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/http-client/1.0.3/psr-http-client-1.0.3.zip",
- "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
- "shasum": ""
- },
- "require": {
- "php": "^7.0 || ^8.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Client\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interface for HTTP clients",
- "homepage": "https://github.com/php-fig/http-client",
- "keywords": [
- "http",
- "http-client",
- "psr",
- "psr-18"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-client"
- },
- "time": "2023-09-23T14:17:50+00:00"
- },
- {
- "name": "psr/http-factory",
- "version": "1.0.2",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/psr/http-factory/1.0.2/psr-http-factory-1.0.2.zip",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
- "shasum": ""
- },
- "require": {
- "php": ">=7.0.0",
- "psr/http-message": "^1.0 || ^2.0"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-4": {
- "Psr\\Http\\Message\\": "src/"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "PHP-FIG",
- "homepage": "https://www.php-fig.org/"
- }
- ],
- "description": "Common interfaces for PSR-7 HTTP message factories",
- "keywords": [
- "factory",
- "http",
- "message",
- "psr",
- "psr-17",
- "psr-7",
- "request",
- "response"
- ],
- "support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
- },
- "time": "2023-04-10T20:10:41+00:00"
- },
- {
- "name": "ralouphie/getallheaders",
- "version": "3.0.3",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/ralouphie/getallheaders/3.0.3/ralouphie-getallheaders-3.0.3.zip",
- "reference": "120b605dfeb996808c31b6477290a714d356e822",
- "shasum": ""
- },
- "require": {
- "php": ">=5.6"
+ "phpunit/php-text-template": "^2.0.3",
+ "phpunit/php-timer": "^5.0.2",
+ "sebastian/cli-parser": "^1.0.1",
+ "sebastian/code-unit": "^1.0.6",
+ "sebastian/comparator": "^4.0.8",
+ "sebastian/diff": "^4.0.3",
+ "sebastian/environment": "^5.1.3",
+ "sebastian/exporter": "^4.0.5",
+ "sebastian/global-state": "^5.0.1",
+ "sebastian/object-enumerator": "^4.0.3",
+ "sebastian/resource-operations": "^3.0.3",
+ "sebastian/type": "^3.2",
+ "sebastian/version": "^3.0.2"
},
- "require-dev": {
- "php-coveralls/php-coveralls": "^2.1",
- "phpunit/phpunit": "^5 || ^6.5"
+ "suggest": {
+ "ext-soap": "To be able to generate mocks based on WSDL files",
+ "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage"
},
+ "bin": [
+ "phpunit"
+ ],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.6-dev"
+ }
+ },
"autoload": {
"files": [
- "src/getallheaders.php"
+ "src/Framework/Assert/Functions.php"
+ ],
+ "classmap": [
+ "src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "BSD-3-Clause"
],
"authors": [
{
- "name": "Ralph Khattar",
- "email": "ralph.khattar@gmail.com"
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
}
],
- "description": "A polyfill for getallheaders.",
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
"support": {
- "issues": "https://github.com/ralouphie/getallheaders/issues",
- "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+ "issues": "https://github.com/sebastianbergmann/phpunit/issues",
+ "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.15"
},
- "time": "2019-03-08T08:55:37+00:00"
+ "funding": [
+ {
+ "url": "https://phpunit.de/sponsors.html",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/sebastianbergmann",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2023-12-01T16:55:19+00:00"
},
{
"name": "san/san-session-toolbar",
- "version": "1.0.12",
+ "version": "0.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/samsonasik/SanSessionToolbar.git",
+ "reference": "453fb0557ea45de984fa7702b9e2477aba0a489a"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/san/san-session-toolbar/1.0.12/san-san-session-toolbar-1.0.12.zip",
- "reference": "8dcabb057041ee80c258795ca2ce1a736367e8df",
+ "url": "https://api.github.com/repos/samsonasik/SanSessionToolbar/zipball/453fb0557ea45de984fa7702b9e2477aba0a489a",
+ "reference": "453fb0557ea45de984fa7702b9e2477aba0a489a",
"shasum": ""
},
"require": {
- "php": "^5.6 || ^7.0",
- "zendframework/zend-json": "^2.5 || ^3.0",
- "zendframework/zend-session": "^2.8.4"
+ "php": ">=5.3.23,<8",
+ "zendframework/zend-debug": "~2.3",
+ "zendframework/zend-session": "~2.3"
},
"require-dev": {
"container-interop/container-interop": "^1.1",
- "zendframework/zend-developer-tools": "^1.0.0 || ^1.1.0",
- "zendframework/zend-i18n": "^2.5",
- "zendframework/zend-log": "^2.5",
- "zendframework/zend-serializer": "^2.5",
- "zendframework/zend-test": "^2.5",
- "zendframework/zend-view": "^2.5"
+ "phpunit/phpcov": "~2.0",
+ "satooshi/php-coveralls": "^1.0",
+ "zendframework/zend-developer-tools": "dev-master",
+ "zendframework/zend-i18n": "~2.3",
+ "zendframework/zend-log": "~2.3",
+ "zendframework/zend-serializer": "~2.3",
+ "zendframework/zend-test": "~2.3"
},
"suggest": {
- "ext-xdebug": "For better output format of session data, Xdebug should already installed",
- "zendframework/zend-mvc-plugin-flashmessenger": "^1.0 for zend-mvc ^3.0 usage to be able to use flashMessenger"
+ "ext-xdebug": "For better output format of session data, Xdebug should already installed"
},
"type": "library",
"autoload": {
@@ -7621,6 +6681,7 @@
"SanSessionToolbar\\": "src/"
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -7632,25 +6693,29 @@
"role": "Developer"
}
],
- "description": "ZF2/ZF3 Session Toolbar for ZendDeveloperTools ",
+ "description": "ZF2 Session Toolbar for ZendDeveloperTools ",
"homepage": "https://github.com/samsonasik/SanSessionToolbar",
"keywords": [
"session",
- "zf2",
- "zf3"
+ "zf2"
],
"support": {
"issues": "https://github.com/samsonasik/SanSessionToolbar/issues",
"source": "https://github.com/samsonasik/SanSessionToolbar/tree/master"
},
- "time": "2018-01-31T23:17:00+00:00"
+ "time": "2016-05-04T21:13:28+00:00"
},
{
"name": "sebastian/cli-parser",
"version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/cli-parser.git",
+ "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/cli-parser/1.0.1/sebastian-cli-parser-1.0.1.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2",
"reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2",
"shasum": ""
},
@@ -7671,6 +6736,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7698,9 +6764,14 @@
{
"name": "sebastian/code-unit",
"version": "1.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit.git",
+ "reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/code-unit/1.0.8/sebastian-code-unit-1.0.8.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit/zipball/1fc9f64c0927627ef78ba436c9b17d967e68e120",
"reference": "1fc9f64c0927627ef78ba436c9b17d967e68e120",
"shasum": ""
},
@@ -7721,6 +6792,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7748,9 +6820,14 @@
{
"name": "sebastian/code-unit-reverse-lookup",
"version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
+ "reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/code-unit-reverse-lookup/2.0.3/sebastian-code-unit-reverse-lookup-2.0.3.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
"reference": "ac91f01ccec49fb77bdc6fd1e548bc70f7faa3e5",
"shasum": ""
},
@@ -7771,6 +6848,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7797,9 +6875,14 @@
{
"name": "sebastian/comparator",
"version": "4.0.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "fa0f136dd2334583309d32b62544682ee972b51a"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/comparator/4.0.8/sebastian-comparator-4.0.8.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a",
"reference": "fa0f136dd2334583309d32b62544682ee972b51a",
"shasum": ""
},
@@ -7822,6 +6905,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7864,15 +6948,20 @@
},
{
"name": "sebastian/complexity",
- "version": "2.0.2",
+ "version": "2.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/complexity.git",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/complexity/2.0.2/sebastian-complexity-2.0.2.zip",
- "reference": "739b35e53379900cc9ac327b2147867b8b6efd88",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/25f207c40d62b8b7aa32f5ab026c53561964053a",
+ "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.7",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -7889,6 +6978,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7903,7 +6993,7 @@
"homepage": "https://github.com/sebastianbergmann/complexity",
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
- "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.2"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/2.0.3"
},
"funding": [
{
@@ -7911,14 +7001,19 @@
"type": "github"
}
],
- "time": "2020-10-26T15:52:27+00:00"
+ "time": "2023-12-22T06:19:30+00:00"
},
{
"name": "sebastian/diff",
"version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/diff/4.0.5/sebastian-diff-4.0.5.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
"reference": "74be17022044ebaaecfdf0c5cd504fc9cd5a7131",
"shasum": ""
},
@@ -7940,6 +7035,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -7976,9 +7072,14 @@
{
"name": "sebastian/environment",
"version": "5.1.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/environment/5.1.5/sebastian-environment-5.1.5.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed",
"shasum": ""
},
@@ -8002,6 +7103,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8033,9 +7135,14 @@
{
"name": "sebastian/exporter",
"version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/exporter/4.0.5/sebastian-exporter-4.0.5.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"reference": "ac230ed27f0f98f597c8a2b6eb7ac563af5e5b9d",
"shasum": ""
},
@@ -8058,6 +7165,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8104,9 +7212,14 @@
{
"name": "sebastian/global-state",
"version": "5.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "bde739e7565280bda77be70044ac1047bc007e34"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/global-state/5.0.6/sebastian-global-state-5.0.6.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bde739e7565280bda77be70044ac1047bc007e34",
"reference": "bde739e7565280bda77be70044ac1047bc007e34",
"shasum": ""
},
@@ -8133,6 +7246,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8161,15 +7275,20 @@
},
{
"name": "sebastian/lines-of-code",
- "version": "1.0.3",
+ "version": "1.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/lines-of-code.git",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/lines-of-code/1.0.3/sebastian-lines-of-code-1.0.3.zip",
- "reference": "c1c2e997aa3146983ed888ad08b15470a2e22ecc",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/e1e4a170560925c26d424b6a03aed157e7dcc5c5",
+ "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.6",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=7.3"
},
"require-dev": {
@@ -8186,6 +7305,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8200,7 +7320,7 @@
"homepage": "https://github.com/sebastianbergmann/lines-of-code",
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.3"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/1.0.4"
},
"funding": [
{
@@ -8208,14 +7328,19 @@
"type": "github"
}
],
- "time": "2020-11-28T06:42:11+00:00"
+ "time": "2023-12-22T06:20:34+00:00"
},
{
"name": "sebastian/object-enumerator",
"version": "4.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-enumerator.git",
+ "reference": "5c9eeac41b290a3712d88851518825ad78f45c71"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/object-enumerator/4.0.4/sebastian-object-enumerator-4.0.4.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/5c9eeac41b290a3712d88851518825ad78f45c71",
"reference": "5c9eeac41b290a3712d88851518825ad78f45c71",
"shasum": ""
},
@@ -8238,6 +7363,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8264,9 +7390,14 @@
{
"name": "sebastian/object-reflector",
"version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/object-reflector.git",
+ "reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/object-reflector/2.0.4/sebastian-object-reflector-2.0.4.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"reference": "b4f479ebdbf63ac605d183ece17d8d7fe49c15c7",
"shasum": ""
},
@@ -8287,6 +7418,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8313,9 +7445,14 @@
{
"name": "sebastian/recursion-context",
"version": "4.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/recursion-context/4.0.5/sebastian-recursion-context-4.0.5.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
"reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1",
"shasum": ""
},
@@ -8336,6 +7473,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8370,9 +7508,14 @@
{
"name": "sebastian/resource-operations",
"version": "3.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/resource-operations.git",
+ "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/resource-operations/3.0.3/sebastian-resource-operations-3.0.3.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
"reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8",
"shasum": ""
},
@@ -8393,6 +7536,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8419,9 +7563,14 @@
{
"name": "sebastian/type",
"version": "3.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/type.git",
+ "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/type/3.2.1/sebastian-type-3.2.1.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7",
"shasum": ""
},
@@ -8442,6 +7591,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8469,9 +7619,14 @@
{
"name": "sebastian/version",
"version": "3.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "c6c1022351a901512170118436c764e473f6de8c"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/sebastian/version/3.0.2/sebastian-version-3.0.2.zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/c6c1022351a901512170118436c764e473f6de8c",
"reference": "c6c1022351a901512170118436c764e473f6de8c",
"shasum": ""
},
@@ -8489,6 +7644,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8513,192 +7669,17 @@
],
"time": "2020-09-28T06:39:44+00:00"
},
- {
- "name": "squizlabs/php_codesniffer",
- "version": "3.6.2",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/squizlabs/php_codesniffer/3.6.2/squizlabs-php_codesniffer-3.6.2.zip",
- "reference": "5e4e71592f69da17871dba6e80dd51bce74a351a",
- "shasum": ""
- },
- "require": {
- "ext-simplexml": "*",
- "ext-tokenizer": "*",
- "ext-xmlwriter": "*",
- "php": ">=5.4.0"
- },
- "require-dev": {
- "phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
- },
- "bin": [
- "bin/phpcs",
- "bin/phpcbf"
- ],
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "3.x-dev"
- }
- },
- "license": [
- "BSD-3-Clause"
- ],
- "authors": [
- {
- "name": "Greg Sherwood",
- "role": "lead"
- }
- ],
- "description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
- "homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
- "keywords": [
- "phpcs",
- "standards"
- ],
- "support": {
- "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
- "source": "https://github.com/squizlabs/PHP_CodeSniffer",
- "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
- },
- "time": "2021-12-12T21:44:58+00:00"
- },
- {
- "name": "symfony/config",
- "version": "v5.4.31",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/config/v5.4.31/symfony-config-v5.4.31.zip",
- "reference": "dd5ea39de228813aba0c23c3a4153da2a4cf3cd9",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/filesystem": "^4.4|^5.0|^6.0",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php80": "^1.16",
- "symfony/polyfill-php81": "^1.22"
- },
- "conflict": {
- "symfony/finder": "<4.4"
- },
- "require-dev": {
- "symfony/event-dispatcher": "^4.4|^5.0|^6.0",
- "symfony/finder": "^4.4|^5.0|^6.0",
- "symfony/messenger": "^4.4|^5.0|^6.0",
- "symfony/service-contracts": "^1.1|^2|^3",
- "symfony/yaml": "^4.4|^5.0|^6.0"
- },
- "suggest": {
- "symfony/yaml": "To use the yaml reference dumper"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Config\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Helps you find, load, combine, autofill and validate configuration values of any kind",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/config/tree/v5.4.31"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-11-09T08:22:43+00:00"
- },
- {
- "name": "symfony/finder",
- "version": "v5.4.27",
- "dist": {
- "type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/finder/v5.4.27/symfony-finder-v5.4.27.zip",
- "reference": "ff4bce3c33451e7ec778070e45bd23f74214cd5d",
- "shasum": ""
- },
- "require": {
- "php": ">=7.2.5",
- "symfony/deprecation-contracts": "^2.1|^3",
- "symfony/polyfill-php80": "^1.16"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "Symfony\\Component\\Finder\\": ""
- },
- "exclude-from-classmap": [
- "/Tests/"
- ]
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Fabien Potencier",
- "email": "fabien@symfony.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Finds files and directories via an intuitive fluent interface",
- "homepage": "https://symfony.com",
- "support": {
- "source": "https://github.com/symfony/finder/tree/v5.4.27"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-07-31T08:02:31+00:00"
- },
{
"name": "symfony/polyfill-php72",
"version": "v1.28.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php72.git",
+ "reference": "70f4aebd92afca2f865444d30a4d2151c13c3179"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/polyfill-php72/v1.28.0/symfony-polyfill-php72-v1.28.0.zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/70f4aebd92afca2f865444d30a4d2151c13c3179",
"reference": "70f4aebd92afca2f865444d30a4d2151c13c3179",
"shasum": ""
},
@@ -8723,6 +7704,7 @@
"Symfony\\Polyfill\\Php72\\": ""
}
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -8766,9 +7748,14 @@
{
"name": "symfony/var-dumper",
"version": "v4.4.47",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/var-dumper.git",
+ "reference": "1069c7a3fca74578022fab6f81643248d02f8e63"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/symfony/var-dumper/v4.4.47/symfony-var-dumper-v4.4.47.zip",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/1069c7a3fca74578022fab6f81643248d02f8e63",
"reference": "1069c7a3fca74578022fab6f81643248d02f8e63",
"shasum": ""
},
@@ -8808,6 +7795,7 @@
"/Tests/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@@ -8849,9 +7837,14 @@
{
"name": "theseer/tokenizer",
"version": "1.2.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/theseer/tokenizer.git",
+ "reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96"
+ },
"dist": {
"type": "zip",
- "url": "https://nexus.olcs.dev-dvsacloud.uk/repository/Packagist-Proxy/theseer/tokenizer/1.2.2/theseer-tokenizer-1.2.2.zip",
+ "url": "https://api.github.com/repos/theseer/tokenizer/zipball/b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"reference": "b2ad5003ca10d4ee50a12da31de12a5774ba6b96",
"shasum": ""
},
@@ -8867,6 +7860,7 @@
"src/"
]
},
+ "notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
@@ -8889,6 +7883,60 @@
}
],
"time": "2023-11-20T00:12:19+00:00"
+ },
+ {
+ "name": "zendframework/zend-debug",
+ "version": "2.5.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/zendframework/zend-debug.git",
+ "reference": "b6f9df59155391ca683c479a0d758f66ef73b3b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/zendframework/zend-debug/zipball/b6f9df59155391ca683c479a0d758f66ef73b3b3",
+ "reference": "b6f9df59155391ca683c479a0d758f66ef73b3b3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.23"
+ },
+ "require-dev": {
+ "fabpot/php-cs-fixer": "1.7.*",
+ "phpunit/phpunit": "~4.0",
+ "zendframework/zend-escaper": "2.*"
+ },
+ "suggest": {
+ "ext/xdebug": "XDebug, for better backtrace output",
+ "zendframework/zend-escaper": "To support escaped output"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5-dev",
+ "dev-develop": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Zend\\Debug\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "homepage": "https://github.com/zendframework/zend-debug",
+ "keywords": [
+ "debug",
+ "zf2"
+ ],
+ "support": {
+ "issues": "https://github.com/zendframework/zend-debug/issues",
+ "source": "https://github.com/zendframework/zend-debug/tree/release-2.5.0"
+ },
+ "abandoned": true,
+ "time": "2015-06-03T14:05:35+00:00"
}
],
"aliases": [],
@@ -8897,11 +7945,8 @@
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
- "php": ">=7.4"
+ "php": "^7.4"
},
"platform-dev": [],
- "platform-overrides": {
- "php": "7.4.33"
- },
"plugin-api-version": "2.6.0"
}
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
new file mode 100644
index 000000000..e9328f469
--- /dev/null
+++ b/phpcs.xml.dist
@@ -0,0 +1,9 @@
+
+
+ ./module
+ ./test
+
+ */vendor/*
+
+
+
diff --git a/phpstan.neon.dist b/phpstan.neon.dist
new file mode 100644
index 000000000..afa6c17b4
--- /dev/null
+++ b/phpstan.neon.dist
@@ -0,0 +1,5 @@
+parameters:
+ level: 1
+ paths:
+ - module
+ - test
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 000000000..14eafd084
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+ test
+
+
+
+
+
+
+
diff --git a/psalm.xml.dist b/psalm.xml.dist
new file mode 100644
index 000000000..be5908bf0
--- /dev/null
+++ b/psalm.xml.dist
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/test/Bootstrap.php b/test/Bootstrap.php
deleted file mode 100644
index b023f96a9..000000000
--- a/test/Bootstrap.php
+++ /dev/null
@@ -1,106 +0,0 @@
-addPsr4('OlcsTest\\', __DIR__ . '/Olcs/src');
-
- // Grab the application config
- $config = include dirname(__DIR__) . '/config/application.config.php';
-
- self::$config = $config;
-
- // call this once to load module config
- self::getRealServiceManager();
-
- self::setupLogger();
- }
-
- public static function setupLogger()
- {
- $logWriter = new \Laminas\Log\Writer\Mock();
- $logger = new \Laminas\Log\Logger();
- $logger->addWriter($logWriter);
-
- Logger::setLogger($logger);
- }
-
- /**
- * Changed this method to return a mock
- *
- * @return \Laminas\ServiceManager\ServiceManager
- */
- public static function getServiceManager()
- {
- $sm = m::mock('\Laminas\ServiceManager\ServiceManager')
- ->makePartial()
- ->setAllowOverride(true);
-
- // inject a real string helper
- $sm->setService('Helper\String', new \Common\Service\Helper\StringHelperService());
-
- return $sm;
- }
-
- /**
- * Added this method for backwards compatibility
- *
- * @return \Laminas\ServiceManager\ServiceManager
- */
- public static function getRealServiceManager()
- {
- $serviceManager = new ServiceManager(new ServiceManagerConfig());
- $serviceManager->setService('ApplicationConfig', self::$config);
- $serviceManager->get('ModuleManager')->loadModules();
- $serviceManager->setAllowOverride(true);
-
- $mockTranslationLoader = m::mock(TranslationLoader::class);
- $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
- $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
- $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
-
- $pluginManager = new LoaderPluginManager($serviceManager);
- $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
- $serviceManager->setService('TranslatorPluginManager', $pluginManager);
-
- // Mess up the backend, so any real rest calls will fail
- $config = $serviceManager->get('Config');
- $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
- $serviceManager->setService('Config', $config);
-
- return $serviceManager;
- }
-
- protected static function initAutoloader()
- {
- require('init_autoloader.php');
-
- return $loader;
- }
-}
-
-Bootstrap::init();
diff --git a/test/Olcs/src/Controller/Auth/LoginControllerFactoryTest.php b/test/Olcs/src/Controller/Auth/LoginControllerFactoryTest.php
index 8704b8a96..8946de34c 100644
--- a/test/Olcs/src/Controller/Auth/LoginControllerFactoryTest.php
+++ b/test/Olcs/src/Controller/Auth/LoginControllerFactoryTest.php
@@ -15,8 +15,8 @@
use Olcs\Auth\Adapter\SelfserveCommandAdapter;
use Olcs\Controller\Auth\LoginController;
use Olcs\Controller\Auth\LoginControllerFactory;
-use Olcs\TestHelpers\MockeryTestCase;
-use Olcs\TestHelpers\Service\MocksServicesTrait;
+use Mockery\Adapter\Phpunit\MockeryTestCase;
+use Common\Test\MocksServicesTrait;
use Mockery as m;
class LoginControllerFactoryTest extends MockeryTestCase
diff --git a/test/Olcs/src/Controller/Auth/LoginControllerTest.php b/test/Olcs/src/Controller/Auth/LoginControllerTest.php
index e08cd97f9..26e4cf2a9 100644
--- a/test/Olcs/src/Controller/Auth/LoginControllerTest.php
+++ b/test/Olcs/src/Controller/Auth/LoginControllerTest.php
@@ -25,8 +25,9 @@
use Olcs\Auth\Adapter\SelfserveCommandAdapter;
use Olcs\Controller\Auth\LoginController;
use Olcs\Form\Model\Form\Auth\Login;
-use Olcs\TestHelpers\MockeryTestCase;
-use Olcs\TestHelpers\Service\MocksServicesTrait;
+use Mockery\Adapter\Phpunit\MockeryTestCase;
+use Common\Test\MocksServicesTrait;
+use Olcs\Logging\Log\Logger;
class LoginControllerTest extends MockeryTestCase
{
@@ -75,6 +76,7 @@ class LoginControllerTest extends MockeryTestCase
protected function setUp(): void
{
$this->setUpServiceManager();
+ self::setupLogger();
}
/**
@@ -651,4 +653,13 @@ protected function postRequest(array $data = null, array $query = null): Request
$request->setUri('https://localhost');
return $request;
}
+
+ private static function setupLogger()
+ {
+ $logWriter = new \Laminas\Log\Writer\Mock();
+ $logger = new \Laminas\Log\Logger();
+ $logger->addWriter($logWriter);
+
+ Logger::setLogger($logger);
+ }
}
diff --git a/test/Olcs/src/Controller/DashboardControllerTest.php b/test/Olcs/src/Controller/DashboardControllerTest.php
index 03a4ba7e8..d8348697f 100644
--- a/test/Olcs/src/Controller/DashboardControllerTest.php
+++ b/test/Olcs/src/Controller/DashboardControllerTest.php
@@ -15,7 +15,7 @@
use Common\RefData;
use Dvsa\Olcs\Transfer\Query\Organisation\Dashboard as DashboardQry;
use Olcs\Service\Processing\DashboardProcessingService;
-use Olcs\TestHelpers\Controller\Traits\ControllerTestTrait;
+use OlcsTest\Controller\Traits\ControllerTestTrait;
use Olcs\Mvc\Controller\Plugin\Placeholder;
use Common\Service\Cqrs\Response as QueryResponse;
use ReflectionClass;
diff --git a/test/Olcs/src/Controller/Entity/ViewControllerTest.php b/test/Olcs/src/Controller/Entity/ViewControllerTest.php
index a38ada231..2e781263e 100644
--- a/test/Olcs/src/Controller/Entity/ViewControllerTest.php
+++ b/test/Olcs/src/Controller/Entity/ViewControllerTest.php
@@ -10,7 +10,7 @@
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Olcs\Controller\Entity\ViewController;
-use Olcs\TestHelpers\ControllerPluginManagerHelper;
+use OlcsTest\TestHelpers\ControllerPluginManagerHelper;
use Laminas\View\Model\ViewModel;
use ZfcRbac\Mvc\Controller\Plugin\IsGranted;
diff --git a/test/Olcs/src/Controller/Lva/AbstractLvaControllerTestCase.php b/test/Olcs/src/Controller/Lva/AbstractLvaControllerTestCase.php
index 9e76e3ab7..8d3683cf7 100644
--- a/test/Olcs/src/Controller/Lva/AbstractLvaControllerTestCase.php
+++ b/test/Olcs/src/Controller/Lva/AbstractLvaControllerTestCase.php
@@ -4,7 +4,7 @@
use OlcsTest\Bootstrap;
use Mockery\Adapter\Phpunit\MockeryTestCase;
-use Olcs\TestHelpers\Controller\Traits\ControllerTestTrait;
+use OlcsTest\Controller\Traits\ControllerTestTrait;
/**
* Helper functions for testing LVA controllers
diff --git a/test/Olcs/src/Controller/SessionTimeoutControllerTest.php b/test/Olcs/src/Controller/SessionTimeoutControllerTest.php
index 4e4de03a7..c86c8d13f 100644
--- a/test/Olcs/src/Controller/SessionTimeoutControllerTest.php
+++ b/test/Olcs/src/Controller/SessionTimeoutControllerTest.php
@@ -7,7 +7,9 @@
use Common\Rbac\JWTIdentityProvider;
use Common\Rbac\PidIdentityProvider;
use Common\Rbac\User;
-use Common\Test\MockeryTestCase;
+use Common\Test\MocksServicesTrait;
+use Laminas\ServiceManager\ServiceManager;
+use Mockery\Adapter\Phpunit\MockeryTestCase;
use Dvsa\Olcs\Auth\Service\Auth\CookieService;
use Dvsa\Olcs\Auth\Service\Auth\LogoutService;
use Laminas\Http\Request;
@@ -21,9 +23,9 @@
use Laminas\Uri\Http;
use Laminas\View\Model\ViewModel;
use Mockery as m;
+use Mockery\MockInterface;
use Olcs\Controller\SessionTimeoutController;
use Olcs\Controller\SessionTimeoutControllerFactory;
-use Olcs\TestHelpers\Service\MocksServicesTrait;
use ZfcRbac\Identity\IdentityProviderInterface;
/**
@@ -37,13 +39,27 @@ class SessionTimeoutControllerTest extends MockeryTestCase
private $identityProviderClass = PidIdentityProvider::class;
+ /**
+ * @var ServiceManager
+ */
+ private $serviceManager;
+
+ /**
+ * @return ServiceManager
+ */
+ protected function serviceManager(): ServiceManager
+ {
+ assert(null !== $this->serviceManager, 'Expected service manager to be set. Hint: You may need to call `setUpServiceManager` before trying to get a service manager');
+ return $this->serviceManager;
+ }
+
/**
* @test
*/
public function indexAction_IsCallable()
{
// Setup
- $serviceLocator = $this->setUpServiceLocator();
+ $serviceLocator = $this->setUpServiceManager();
$sut = $this->setUpSut($serviceLocator, new Request());
@@ -51,6 +67,30 @@ public function indexAction_IsCallable()
$this->assertTrue(method_exists($sut, 'indexAction') && is_callable([$sut, 'indexAction']));
}
+ /**
+ * @return ServiceManager
+ */
+ protected function setUpServiceManager(): ServiceManager
+ {
+ $this->serviceManager = new ServiceManager();
+ $this->serviceManager->setAllowOverride(true);
+ $services = $this->setUpDefaultServices($this->serviceManager);
+
+ // Maintain support for deprecated way of registering services via an array of services. Instead, services
+ // should be registered by calling the available setter methods on the ServiceManager instance.
+ if (is_array($services)) {
+ foreach ($services as $serviceName => $service) {
+ $this->serviceManager->setService($serviceName, $service);
+ }
+ }
+
+ // Set controller plugin manager to the main service manager so that all services can be resolved from the one
+ // service manager instance.
+ $this->serviceManager->setService('ControllerPluginManager', $this->serviceManager);
+
+ return $this->serviceManager;
+ }
+
/**
* @test
* @depends indexAction_IsCallable
@@ -286,6 +326,18 @@ protected function setUpIdentity(string $identityProvider): m\MockInterface
return $currentUser;
}
+ protected function getMockServiceWithName(string $class, string $serviceName): MockInterface
+ {
+ if (!$this->serviceManager->has($serviceName)) {
+ $this->serviceManager->setService(
+ $serviceName,
+ $this->setUpMockService($class)
+ );
+ }
+
+ return $this->serviceManager->get($serviceName);
+ }
+
protected function setUpIdentityWithClearSession(string $identityProvider): void
{
$identity = $this->setUpMockService(User::class);
diff --git a/test/Olcs/src/Controller/Traits/ControllerTestTrait.php b/test/Olcs/src/Controller/Traits/ControllerTestTrait.php
new file mode 100644
index 000000000..c34b6f378
--- /dev/null
+++ b/test/Olcs/src/Controller/Traits/ControllerTestTrait.php
@@ -0,0 +1,176 @@
+
+ */
+trait ControllerTestTrait
+{
+ protected $sut;
+ protected $request;
+ protected $form;
+ protected $view;
+ protected $formHelper;
+ protected $services = [];
+
+ protected function mockController($className, array $constructorParams = [])
+ {
+ $this->request = m::mock('\Laminas\Http\Request')->makePartial();
+
+ // If constructor params are provided, pass them to the mock, otherwise mock without them
+ if (!empty($constructorParams)) {
+ $this->sut = m::mock($className, $constructorParams)
+ ->makePartial()
+ ->shouldAllowMockingProtectedMethods();
+ } else {
+ $this->sut = m::mock($className)
+ ->makePartial()
+ ->shouldAllowMockingProtectedMethods();
+ }
+
+ $this->sut
+ ->shouldReceive('getRequest')
+ ->andReturn($this->request);
+ }
+
+ protected function mockRender()
+ {
+ $this->sut->shouldReceive('render')
+ ->once()
+ ->andReturnUsing(
+ function ($view, $form = null) {
+
+ /**
+ * assign the view variable so we can interrogate it later
+ */
+ $this->view = $view;
+
+ /*
+ * but also return it, since that's a closer simulation
+ * of what 'render' would normally do
+ */
+
+ return $this->view;
+ }
+ );
+
+ return $this->sut;
+ }
+
+ protected function setPost($data = [])
+ {
+ $this->request
+ ->shouldReceive('isPost')
+ ->andReturn(true)
+ ->shouldReceive('getPost')
+ ->andReturn($data);
+ }
+
+ protected function shouldRemoveElements($form, $elements)
+ {
+ $helper = $this->mockFormHelper;
+ foreach ($elements as $e) {
+ $helper->shouldReceive('remove')
+ ->with($form, $e)
+ ->andReturn($helper);
+ }
+ }
+
+ protected function createMockForm($formName)
+ {
+ $mockForm = m::mock('\Common\Form\Form');
+
+ $formHelper = $this->getMockFormHelper();
+
+ $formHelper
+ ->shouldReceive('createForm')
+ ->with($formName)
+ ->andReturn($mockForm)
+ ->shouldReceive('createFormWithRequest')
+ ->with($formName, $this->request)
+ ->andReturn($mockForm);
+
+ return $mockForm;
+ }
+
+ protected function getMockFormHelper()
+ {
+ if ($this->formHelper === null) {
+ $this->formHelper = m::mock('\Common\Service\Helper\FormHelperService');
+ $this->setService('Helper\Form', $this->formHelper);
+ }
+ return $this->formHelper;
+ }
+
+ /**
+ * @param string $class expected Command class name
+ * @param array $expectedDtoData
+ * @param array $result to be returned by $response->getResult()
+ * @param boolean $ok to be returned by $response->isOk()
+ * @param int $times call count
+ */
+ protected function expectCommand($class, array $expectedDtoData, array $result, $ok = true, $times = 1)
+ {
+ return $this->mockCommandOrQueryCall('handleCommand', $class, $expectedDtoData, $result, $ok, $times);
+ }
+
+ /**
+ * @param string $class expected Query class name
+ * @param array $expectedDtoData
+ * @param array $result to be returned by $response->getResult()
+ * @param boolean $ok to be returned by $response->isOk()
+ * @param int $times call count
+ */
+ protected function expectQuery($class, array $expectedDtoData, array $result, $ok = true, $times = 1)
+ {
+ return $this->mockCommandOrQueryCall('handleQuery', $class, $expectedDtoData, $result, $ok, $times);
+ }
+
+ /**
+ * @param string $method controller/plugin method to mock 'handleQuery'|'handleCommand'
+ * @param string $class expected Query/Command class name
+ * @param array $expectedDtoData
+ * @param array $result to be returned by $response->getResult()
+ * @param boolean $ok to be returned by $response->isOk()
+ * @param int $times call count
+ */
+ private function mockCommandOrQueryCall(
+ $method,
+ $class,
+ array $expectedDtoData,
+ array $result,
+ $ok = true,
+ $times = 1
+ ) {
+ $response = m::mock()
+ ->shouldReceive('isOk')
+ ->andReturn($ok)
+ ->shouldReceive('isForbidden')
+ ->andReturn(false)
+ ->shouldReceive('getResult')
+ ->andReturn($result)
+ ->getMock();
+
+ $this->sut
+ ->shouldReceive($method)
+ ->with(
+ m::on(
+ function ($cmd) use ($expectedDtoData, $class) {
+ $matched = (
+ is_a($cmd, $class)
+ &&
+ $cmd->getArrayCopy() == $expectedDtoData
+ );
+ return $matched;
+ }
+ )
+ )
+ ->times($times)
+ ->andReturn($response);
+ }
+}
diff --git a/test/Olcs/src/Form/Model/Form/BusRegApplicationsFilterFormTest.php b/test/Olcs/src/Form/Model/Form/BusRegApplicationsFilterFormTest.php
index 40f2e853e..39e26d5b0 100644
--- a/test/Olcs/src/Form/Model/Form/BusRegApplicationsFilterFormTest.php
+++ b/test/Olcs/src/Form/Model/Form/BusRegApplicationsFilterFormTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class BusRegApplicationsFilterFormTest
diff --git a/test/Olcs/src/Form/Model/Form/BusRegApplicationsOperatorFilterFormTest.php b/test/Olcs/src/Form/Model/Form/BusRegApplicationsOperatorFilterFormTest.php
index f52b7da17..ec833ed87 100644
--- a/test/Olcs/src/Form/Model/Form/BusRegApplicationsOperatorFilterFormTest.php
+++ b/test/Olcs/src/Form/Model/Form/BusRegApplicationsOperatorFilterFormTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class BusRegApplicationsOperatorFilterFormTest
diff --git a/test/Olcs/src/Form/Model/Form/BusRegBrowseFormTest.php b/test/Olcs/src/Form/Model/Form/BusRegBrowseFormTest.php
index c856cd57b..e04dd6b69 100644
--- a/test/Olcs/src/Form/Model/Form/BusRegBrowseFormTest.php
+++ b/test/Olcs/src/Form/Model/Form/BusRegBrowseFormTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class BusRegBrowseFormTest
diff --git a/test/Olcs/src/Form/Model/Form/BusRegRegistrationsFilterFormTest.php b/test/Olcs/src/Form/Model/Form/BusRegRegistrationsFilterFormTest.php
index 6f1e60f6b..1ab0b62c3 100644
--- a/test/Olcs/src/Form/Model/Form/BusRegRegistrationsFilterFormTest.php
+++ b/test/Olcs/src/Form/Model/Form/BusRegRegistrationsFilterFormTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class BusRegRegistrationsFilterFormTest
diff --git a/test/Olcs/src/Form/Model/Form/EbsrPackUploadTest.php b/test/Olcs/src/Form/Model/Form/EbsrPackUploadTest.php
index 30d236591..4ed83f3ff 100644
--- a/test/Olcs/src/Form/Model/Form/EbsrPackUploadTest.php
+++ b/test/Olcs/src/Form/Model/Form/EbsrPackUploadTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class EbsrPackUploadTest
diff --git a/test/Olcs/src/Form/Model/Form/FeePaymentTest.php b/test/Olcs/src/Form/Model/Form/FeePaymentTest.php
index 3061b5a27..dd62ed076 100644
--- a/test/Olcs/src/Form/Model/Form/FeePaymentTest.php
+++ b/test/Olcs/src/Form/Model/Form/FeePaymentTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class FeePaymentTest
diff --git a/test/Olcs/src/Form/Model/Form/Lva/AddGoodsVehicleTest.php b/test/Olcs/src/Form/Model/Form/Lva/AddGoodsVehicleTest.php
index 1b62e738e..b4ba624ad 100644
--- a/test/Olcs/src/Form/Model/Form/Lva/AddGoodsVehicleTest.php
+++ b/test/Olcs/src/Form/Model/Form/Lva/AddGoodsVehicleTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form\Lva;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class AddGoodsVehicleTest
diff --git a/test/Olcs/src/Form/Model/Form/Lva/ApplicationUndertakingsTest.php b/test/Olcs/src/Form/Model/Form/Lva/ApplicationUndertakingsTest.php
index 33a1a93e3..539879f4e 100644
--- a/test/Olcs/src/Form/Model/Form/Lva/ApplicationUndertakingsTest.php
+++ b/test/Olcs/src/Form/Model/Form/Lva/ApplicationUndertakingsTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form\Lva;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class ApplicationUndertakingsTest
diff --git a/test/Olcs/src/Form/Model/Form/Lva/EditGoodsVehicleTest.php b/test/Olcs/src/Form/Model/Form/Lva/EditGoodsVehicleTest.php
index 3144d97d0..2cdf5f0dd 100644
--- a/test/Olcs/src/Form/Model/Form/Lva/EditGoodsVehicleTest.php
+++ b/test/Olcs/src/Form/Model/Form/Lva/EditGoodsVehicleTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form\Lva;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class EditGoodsVehicleTest
diff --git a/test/Olcs/src/Form/Model/Form/Lva/NewTmUserTest.php b/test/Olcs/src/Form/Model/Form/Lva/NewTmUserTest.php
index 5ad1337a4..a51d4adc7 100644
--- a/test/Olcs/src/Form/Model/Form/Lva/NewTmUserTest.php
+++ b/test/Olcs/src/Form/Model/Form/Lva/NewTmUserTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form\Lva;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class NewTmUserTest
diff --git a/test/Olcs/src/Form/Model/Form/Lva/VariationUndertakingsTest.php b/test/Olcs/src/Form/Model/Form/Lva/VariationUndertakingsTest.php
index 453f96619..26c8af5bb 100644
--- a/test/Olcs/src/Form/Model/Form/Lva/VariationUndertakingsTest.php
+++ b/test/Olcs/src/Form/Model/Form/Lva/VariationUndertakingsTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form\Lva;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class VariationUndertakingsTest
diff --git a/test/Olcs/src/Form/Model/Form/MyDetailsTest.php b/test/Olcs/src/Form/Model/Form/MyDetailsTest.php
index c7c11661c..b5c8b515e 100644
--- a/test/Olcs/src/Form/Model/Form/MyDetailsTest.php
+++ b/test/Olcs/src/Form/Model/Form/MyDetailsTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class MyDetailsTest
diff --git a/test/Olcs/src/Form/Model/Form/SearchFilterTest.php b/test/Olcs/src/Form/Model/Form/SearchFilterTest.php
index a98b1878c..3229cd726 100644
--- a/test/Olcs/src/Form/Model/Form/SearchFilterTest.php
+++ b/test/Olcs/src/Form/Model/Form/SearchFilterTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class SearchFilterTest
diff --git a/test/Olcs/src/Form/Model/Form/SearchOperatorTest.php b/test/Olcs/src/Form/Model/Form/SearchOperatorTest.php
index 5e4e94286..e768f5e07 100644
--- a/test/Olcs/src/Form/Model/Form/SearchOperatorTest.php
+++ b/test/Olcs/src/Form/Model/Form/SearchOperatorTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class SearchOperatorTest
diff --git a/test/Olcs/src/Form/Model/Form/SimpleSearchTest.php b/test/Olcs/src/Form/Model/Form/SimpleSearchTest.php
index 0a3925bb5..561b9109f 100644
--- a/test/Olcs/src/Form/Model/Form/SimpleSearchTest.php
+++ b/test/Olcs/src/Form/Model/Form/SimpleSearchTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class SimpleSearchTest
diff --git a/test/Olcs/src/Form/Model/Form/Surrender/CurrentDiscsTest.php b/test/Olcs/src/Form/Model/Form/Surrender/CurrentDiscsTest.php
index 5f4b610a5..4c8fc79f0 100644
--- a/test/Olcs/src/Form/Model/Form/Surrender/CurrentDiscsTest.php
+++ b/test/Olcs/src/Form/Model/Form/Surrender/CurrentDiscsTest.php
@@ -4,7 +4,7 @@
use Common\Form\Elements\Custom\OlcsCheckbox;
use Common\Form\Elements\Types\HtmlTranslated;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
use Olcs\Form\Model\Form\Surrender\CurrentDiscs\CurrentDiscs;
use Laminas\Form\Element\Button;
use Laminas\Form\Element\Checkbox;
diff --git a/test/Olcs/src/Form/Model/Form/Surrender/OperatorLicenceTest.php b/test/Olcs/src/Form/Model/Form/Surrender/OperatorLicenceTest.php
index 14ae95bf6..665fa72f9 100644
--- a/test/Olcs/src/Form/Model/Form/Surrender/OperatorLicenceTest.php
+++ b/test/Olcs/src/Form/Model/Form/Surrender/OperatorLicenceTest.php
@@ -5,7 +5,7 @@
use Common\Form\Elements\InputFilters\ActionButton;
use Common\Form\Elements\Types\Radio;
use Common\Form\Elements\Types\HtmlTranslated;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
use Laminas\Form\Element\Button;
use Laminas\Form\Element\Textarea;
diff --git a/test/Olcs/src/Form/Model/Form/TransportManagerApplicationResendTest.php b/test/Olcs/src/Form/Model/Form/TransportManagerApplicationResendTest.php
index d86d85592..e31ff1fe8 100644
--- a/test/Olcs/src/Form/Model/Form/TransportManagerApplicationResendTest.php
+++ b/test/Olcs/src/Form/Model/Form/TransportManagerApplicationResendTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class TransportManagerApplicationResendTest
diff --git a/test/Olcs/src/Form/Model/Form/UserForgotUsernameTest.php b/test/Olcs/src/Form/Model/Form/UserForgotUsernameTest.php
index f0d0930a5..662de75cf 100644
--- a/test/Olcs/src/Form/Model/Form/UserForgotUsernameTest.php
+++ b/test/Olcs/src/Form/Model/Form/UserForgotUsernameTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class UserForgotUsernameTest
diff --git a/test/Olcs/src/Form/Model/Form/UserRegistrationAddressTest.php b/test/Olcs/src/Form/Model/Form/UserRegistrationAddressTest.php
index 7acfdfb44..187ba165c 100644
--- a/test/Olcs/src/Form/Model/Form/UserRegistrationAddressTest.php
+++ b/test/Olcs/src/Form/Model/Form/UserRegistrationAddressTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class UserRegistrationAddressTest
diff --git a/test/Olcs/src/Form/Model/Form/UserRegistrationTest.php b/test/Olcs/src/Form/Model/Form/UserRegistrationTest.php
index 9ba4c3d57..e49b2cd62 100644
--- a/test/Olcs/src/Form/Model/Form/UserRegistrationTest.php
+++ b/test/Olcs/src/Form/Model/Form/UserRegistrationTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class UserRegistrationTest
diff --git a/test/Olcs/src/Form/Model/Form/UserTest.php b/test/Olcs/src/Form/Model/Form/UserTest.php
index baf9bcbb9..1539ec3ae 100644
--- a/test/Olcs/src/Form/Model/Form/UserTest.php
+++ b/test/Olcs/src/Form/Model/Form/UserTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class UserTest
diff --git a/test/Olcs/src/Form/Model/Form/Vehicle/OCRSOptInTest.php b/test/Olcs/src/Form/Model/Form/Vehicle/OCRSOptInTest.php
index aeb8c298c..50ee77258 100644
--- a/test/Olcs/src/Form/Model/Form/Vehicle/OCRSOptInTest.php
+++ b/test/Olcs/src/Form/Model/Form/Vehicle/OCRSOptInTest.php
@@ -2,7 +2,7 @@
namespace OlcsTest\Form\Model\Form;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class OCRSOptInTest
diff --git a/test/Olcs/src/FormService/Form/Lva/AbstractOverviewSubmissionTest.php b/test/Olcs/src/FormService/Form/Lva/AbstractOverviewSubmissionTest.php
index 635c53305..0da9274c1 100644
--- a/test/Olcs/src/FormService/Form/Lva/AbstractOverviewSubmissionTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/AbstractOverviewSubmissionTest.php
@@ -2,10 +2,16 @@
namespace OlcsTest\FormService\Form\Lva;
+use Common\Form\Element\DynamicMultiCheckbox;
+use Common\Form\Element\DynamicRadio;
+use Common\Form\Element\DynamicSelect;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
use Laminas\I18n\View\Helper\Translate;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
-use OlcsTest\Bootstrap;
use OlcsTest\FormService\Form\Lva\Stub\AbstractOverviewSubmissionStub;
/**
@@ -25,11 +31,99 @@ class AbstractOverviewSubmissionTest extends MockeryTestCase
private $mockTranslationHelper;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getServiceManager()
+ {
+ $serviceManager = $this->getRealServiceManager();
+ $serviceManager->setAllowOverride(true);
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ return $serviceManager;
+ }
+
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->mockForm = m::mock(\Laminas\Form\FormInterface::class);
- $this->mockSm = Bootstrap::getServiceManager();
+ $this->mockSm = $this->getServiceManager();
$this->mockTranslationHelper = m::mock(Translate::class);
$this->mockTranslationHelper
diff --git a/test/Olcs/src/FormService/Form/Lva/ApplicationFinancialEvidenceTest.php b/test/Olcs/src/FormService/Form/Lva/ApplicationFinancialEvidenceTest.php
index 45879886f..b88bc2b95 100644
--- a/test/Olcs/src/FormService/Form/Lva/ApplicationFinancialEvidenceTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/ApplicationFinancialEvidenceTest.php
@@ -2,16 +2,22 @@
namespace OlcsTest\FormService\Form\Lva;
+use Common\Form\Element\DynamicMultiCheckbox;
+use Common\Form\Element\DynamicRadio;
+use Common\Form\Element\DynamicSelect;
use Common\Service\Helper\FormHelperService;
use Common\Service\Helper\TranslationHelperService;
use Common\Service\Helper\UrlHelperService;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Olcs\FormService\Form\Lva\ApplicationFinancialEvidence;
use Laminas\Form\Form;
use Laminas\Http\Request;
use OlcsTest\FormService\Form\Lva\Traits\ButtonsAlterations;
-use OlcsTest\Bootstrap;
use ZfcRbac\Service\AuthorizationService;
/**
@@ -37,6 +43,94 @@ class ApplicationFinancialEvidenceTest extends MockeryTestCase
/** @var m\MockInterface */
protected $translator;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getServiceManager()
+ {
+ $serviceManager = self::getRealServiceManager();
+ $serviceManager->setAllowOverride(true);
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ return $serviceManager;
+ }
+
+ /**
+ * Added this method for backwards compatibility
+ *
+ * @return \Laminas\ServiceManager\ServiceManager
+ */
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->fh = m::mock(FormHelperService::class)->makePartial();
@@ -44,7 +138,7 @@ public function setUp(): void
$this->urlHelper = m::mock(UrlHelperService::class);
$this->translator = m::mock(TranslationHelperService::class);
- $sm = Bootstrap::getServiceManager();
+ $sm = $this->getServiceManager();
$sm->setService('Helper\Url', $this->urlHelper);
$sm->setService('Helper\Translation', $this->translator);
diff --git a/test/Olcs/src/FormService/Form/Lva/OperatingCentres/VariationOperatingCentresTest.php b/test/Olcs/src/FormService/Form/Lva/OperatingCentres/VariationOperatingCentresTest.php
index e8e92c9b3..82390b6ba 100644
--- a/test/Olcs/src/FormService/Form/Lva/OperatingCentres/VariationOperatingCentresTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/OperatingCentres/VariationOperatingCentresTest.php
@@ -2,11 +2,17 @@
namespace OlcsTest\FormService\Form\Lva\OperatingCentres;
+use Common\Form\Element\DynamicMultiCheckbox;
+use Common\Form\Element\DynamicRadio;
+use Common\Form\Element\DynamicSelect;
use Common\Service\Helper\TranslationHelperService;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Olcs\FormService\Form\Lva\OperatingCentres\VariationOperatingCentres;
use Common\FormService\FormServiceManager;
use Common\Service\Table\TableBuilder;
-use OlcsTest\Bootstrap;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Laminas\Form\Element;
@@ -31,13 +37,101 @@ class VariationOperatingCentresTest extends MockeryTestCase
protected $translator;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getServiceManager()
+ {
+ $serviceManager = self::getRealServiceManager();
+ $serviceManager->setAllowOverride(true);
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ return $serviceManager;
+ }
+
+ /**
+ * Added this method for backwards compatibility
+ *
+ * @return \Laminas\ServiceManager\ServiceManager
+ */
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->tableBuilder = m::mock();
$this->translator = m::mock(TranslationHelperService::class);
- $sm = Bootstrap::getServiceManager();
+ $sm = $this->getServiceManager();
$sm->setService('Table', $this->tableBuilder);
$sm->setService('Helper\Translation', $this->translator);
diff --git a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/ApplicationSoleTraderTest.php b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/ApplicationSoleTraderTest.php
index 25c9dfeba..d998daefe 100644
--- a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/ApplicationSoleTraderTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/ApplicationSoleTraderTest.php
@@ -2,11 +2,17 @@
namespace OlcsTest\FormService\Form\Lva\People\SoleTrader;
+use Common\Form\Element\DynamicMultiCheckbox;
+use Common\Form\Element\DynamicRadio;
+use Common\Form\Element\DynamicSelect;
use Common\FormService\FormServiceManager;
use Common\Service\Helper\FormHelperService;
use Common\Service\Lva\PeopleLvaService;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Olcs\FormService\Form\Lva\People\SoleTrader\ApplicationSoleTrader;
-use OlcsTest\Bootstrap;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Olcs\FormService\Form\Lva\People\SoleTrader\ApplicationSoleTrader as Sut;
@@ -43,11 +49,100 @@ class ApplicationSoleTraderTest extends MockeryTestCase
*/
private $peopleLvaService;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getServiceManager()
+ {
+
+ $this->serviceManager = self::getRealServiceManager();
+ $this->serviceManager->setAllowOverride(true);
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ return $this->serviceManager;
+ }
+
+ /**
+ * Added this method for backwards compatibility
+ *
+ * @return \Laminas\ServiceManager\ServiceManager
+ */
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->formHelper = m::mock('\Common\Service\Helper\FormHelperService');
- $this->sm = Bootstrap::getServiceManager();
+ $this->sm = self::getServiceManager();
/** @var FormServiceManager fsm */
$this->fsm = m::mock('\Common\FormService\FormServiceManager')->makePartial();
diff --git a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/LicenceSoleTraderTest.php b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/LicenceSoleTraderTest.php
index 955b61a4d..16d3bcf1a 100644
--- a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/LicenceSoleTraderTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/LicenceSoleTraderTest.php
@@ -2,9 +2,15 @@
namespace OlcsTest\FormService\Form\Lva\People\SoleTrader;
+use Common\Form\Element\DynamicMultiCheckbox;
+use Common\Form\Element\DynamicRadio;
+use Common\Form\Element\DynamicSelect;
use Common\FormService\FormServiceManager;
use Common\Service\Lva\PeopleLvaService;
-use OlcsTest\Bootstrap;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Olcs\FormService\Form\Lva\People\SoleTrader\LicenceSoleTrader as Sut;
@@ -24,6 +30,65 @@ class LicenceSoleTraderTest extends MockeryTestCase
protected $mockLicenceService;
private $peopleLvaService;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public function getServiceManager()
+ {
+ $serviceManager = self::getRealServiceManager();
+ $serviceManager->setAllowOverride(true);
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->formHelper = m::mock('\Common\Service\Helper\FormHelperService');
@@ -31,7 +96,7 @@ public function setUp(): void
$this->mockLicenceService = m::mock(Form::class);
$this->peopleLvaService = m::mock(PeopleLvaService::class);
- $this->sm = Bootstrap::getServiceManager();
+ $this->sm = $this->getServiceManager();
/** @var FormServiceManager fsm */
$this->fsm = m::mock('\Common\FormService\FormServiceManager')->makePartial();
@@ -179,4 +244,34 @@ public function noDisqualifyProvider()
],
];
}
+
+ /**
+ * Added this method for backwards compatibility
+ *
+ * @return \Laminas\ServiceManager\ServiceManager
+ */
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
}
diff --git a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/VariationSoleTraderTest.php b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/VariationSoleTraderTest.php
index 416fdc6de..e578a1eb5 100644
--- a/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/VariationSoleTraderTest.php
+++ b/test/Olcs/src/FormService/Form/Lva/People/SoleTrader/VariationSoleTraderTest.php
@@ -4,7 +4,10 @@
use Common\FormService\FormServiceManager;
use Common\Service\Lva\PeopleLvaService;
-use OlcsTest\Bootstrap;
+use Common\Service\Translator\TranslationLoader;
+use Laminas\I18n\Translator\LoaderPluginManager;
+use Laminas\Mvc\Service\ServiceManagerConfig;
+use Laminas\ServiceManager\ServiceManager;
use Mockery as m;
use Mockery\Adapter\Phpunit\MockeryTestCase;
use Olcs\FormService\Form\Lva\People\SoleTrader\VariationSoleTrader as Sut;
@@ -28,13 +31,43 @@ class VariationSoleTraderTest extends MockeryTestCase
protected $mockVariationService;
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $config = include 'config/application.config.php';
+ $serviceManager->setService('ApplicationConfig', $config);
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
public function setUp(): void
{
$this->formHelper = m::mock('\Common\Service\Helper\FormHelperService');
$this->mockVariationService = m::mock(Form::class);
- $this->sm = Bootstrap::getServiceManager();
+ $this->sm = $this->getRealServiceManager();
/** @var FormServiceManager fsm */
$this->fsm = m::mock('\Common\FormService\FormServiceManager')->makePartial();
diff --git a/test/Olcs/src/TestHelpers/AbstractFormValidationTestCase.php b/test/Olcs/src/TestHelpers/AbstractFormValidationTestCase.php
new file mode 100644
index 000000000..3fa964725
--- /dev/null
+++ b/test/Olcs/src/TestHelpers/AbstractFormValidationTestCase.php
@@ -0,0 +1,1307 @@
+getName(), 'testMissingTest') === false) {
+ $this->sut = $this->getForm();
+ }
+ }
+
+ /**
+ * We can access service manager if we need to add a mock for certain applications
+ *
+ * @return \Laminas\ServiceManager\ServiceLocatorInterface
+ */
+ protected function getServiceManager()
+ {
+ if ($this->serviceManager === null) {
+
+ $this->serviceManager = self::getRealServiceManager();
+
+ // inject a real string helper
+
+ $this->serviceManager->setAllowOverride(true);
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicSelect',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicSelect();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'DynamicRadio',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicRadio();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+
+ $this->serviceManager->get('FormElementManager')->setFactory(
+ 'Common\Form\Element\DynamicMultiCheckbox',
+ function ($serviceLocator, $name, $requestedName) {
+ $element = new DynamicMultiCheckbox();
+ $element->setValueOptions(
+ [
+ '1' => 'one',
+ '2' => 'two',
+ '3' => 'three'
+ ]
+ );
+ return $element;
+ }
+ );
+ }
+
+ return $this->serviceManager;
+ }
+
+ public static function getRealServiceManager()
+ {
+ $serviceManager = new ServiceManager(new ServiceManagerConfig());
+ $serviceManager->setService('ApplicationConfig', include __DIR__. '/../../../../config/application.config.php');
+ $serviceManager->get('ModuleManager')->loadModules();
+ $serviceManager->setAllowOverride(true);
+
+ $mockTranslationLoader = m::mock(TranslationLoader::class);
+ $mockTranslationLoader->shouldReceive('load')->andReturn(['default' => ['en_GB' => []]]);
+ $mockTranslationLoader->shouldReceive('loadReplacements')->andReturn([]);
+ $serviceManager->setService(TranslationLoader::class, $mockTranslationLoader);
+
+ $pluginManager = new LoaderPluginManager($serviceManager);
+ $pluginManager->setService(TranslationLoader::class, $mockTranslationLoader);
+ $serviceManager->setService('TranslatorPluginManager', $pluginManager);
+
+ // Mess up the backend, so any real rest calls will fail
+ $config = $serviceManager->get('Config');
+ $config['service_api_mapping']['endpoints']['backend'] = 'http://some-fake-backend/';
+ $serviceManager->setService('Config', $config);
+
+ return $serviceManager;
+ }
+
+ /**
+ * Get the form object
+ *
+ * @return \Common\Form\Form
+ */
+ protected function getForm()
+ {
+ if ($this->formName == null) {
+ throw new \Exception('formName property is not defined');
+ }
+
+ if (!isset(self::$forms[$this->formName])) {
+ /** @var \Common\Form\Annotation\CustomAnnotationBuilder $c */
+ $frmAnnotBuilder = $this->getServiceManager()->get('FormAnnotationBuilder');
+
+ self::$forms[$this->formName] = $frmAnnotBuilder->createForm($this->formName);
+ }
+
+ return clone self::$forms[$this->formName];
+ }
+
+ /**
+ * Assert that a form element with a value is valid
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param mixed $value The value to be tested in the form element
+ * @param array $context Form data context required to test the validation
+ *
+ * @return void
+ */
+ protected function assertFormElementValid(array $elementHierarchy, $value, array $context = [])
+ {
+ self::$testedElements[implode('.', $elementHierarchy)] = true;
+
+ $this->assertElementExists($elementHierarchy);
+ $this->setData($elementHierarchy, $value, $context);
+ $this->setValidationGroup($elementHierarchy);
+
+ $valid = $this->sut->isValid();
+ $message = sprintf(
+ '"%s" form element with value "%s" should be valid : %s',
+ implode('.', $elementHierarchy),
+ print_r($value, true),
+ implode(', ', array_keys($this->getFormMessages($elementHierarchy)))
+ );
+
+ $this->assertTrue($valid, $message);
+ }
+
+ /**
+ * Get the form validation messages for an element
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return array
+ */
+ protected function getFormMessages(array $elementHierarchy)
+ {
+ $messages = $this->sut->getMessages();
+ foreach ($elementHierarchy as $name) {
+ if (isset($messages[$name])) {
+ $messages = $messages[$name];
+ }
+ }
+ return $messages;
+ }
+
+ /**
+ * Set the validation group so that ony the form element is validated
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function setValidationGroup(array $elementHierarchy)
+ {
+ $array = null;
+ foreach (array_reverse($elementHierarchy) as $name) {
+ if ($array == null) {
+ $array = [$name];
+ } else {
+ $array = [$name => $array];
+ }
+ }
+
+ $this->sut->setValidationGroup($array);
+ }
+
+ /**
+ * Set the form data
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param mixed $value Form element (being tested) value
+ * @param array $context Form data context required to test the validation
+ *
+ * @return void
+ */
+ protected function setData(array $elementHierarchy, $value, $context = [])
+ {
+ $element = $this->getElementByHierarchy($elementHierarchy);
+ if (empty($value) && $element instanceof MonthSelect) {
+ $value = [
+ 'month' => null,
+ 'year' => null,
+ ];
+ if($element instanceof DateSelect) {
+ $value['day'] = null;
+ }
+ if($element instanceof DateTimeSelect) {
+ $value['hour'] = null;
+ $value['minute'] = null;
+ $value['second'] = null;
+ }
+ }
+
+ $array = $value;
+ foreach (array_reverse($elementHierarchy) as $name) {
+ $array = [$name => $array];
+ }
+ $this->sut->setData(array_merge_recursive($context, $array));
+ }
+
+ /**
+ * Assert that the form element exists in the form
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertElementExists(array $elementHierarchy)
+ {
+ try {
+ $this->getFormElement($elementHierarchy);
+ } catch (\Exception $e) {
+ $this->fail($e->getMessage());
+ }
+ }
+
+ /**
+ * Get the form element
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return \Laminas\Form\Element
+ */
+ protected function getFormElement(array $elementHierarchy)
+ {
+ $element = $this->sut;
+ foreach ($elementHierarchy as $name) {
+ if (!$element->has($name)) {
+ throw new \Exception(
+ sprintf('Cannot find element by name "%s" in "%s"', $name, implode('.', $elementHierarchy))
+ );
+ }
+ $element = $element->get($name);
+ }
+ return $element;
+ }
+
+ /**
+ * Assert the type of a form element
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param string $type Class name of the type
+ *
+ * @return void
+ */
+ protected function assertFormElementType(array $elementHierarchy, $type)
+ {
+ $this->assertInstanceOf($type, $this->getFormElement($elementHierarchy));
+ }
+
+ /**
+ * Assert that a form element with a value is NOT valid
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param mixed $value The value to be tested in the form element
+ * @param string|array $validationMessages A single or an array of expected validation messages keys
+ * @param array $context Form data context required to test the validation
+ *
+ * @return void
+ */
+ protected function assertFormElementNotValid(
+ array $elementHierarchy,
+ $value,
+ $validationMessages,
+ array $context = []
+ ) {
+ self::$testedElements[implode('.', $elementHierarchy)] = true;
+
+ if (!is_array($validationMessages)) {
+ $validationMessages = [$validationMessages];
+ }
+
+ $this->assertElementExists($elementHierarchy);
+ $this->setData($elementHierarchy, $value, $context);
+ $this->setValidationGroup($elementHierarchy);
+
+ $valid = $this->sut->isValid();
+
+ $this->assertFalse(
+ $valid,
+ sprintf(
+ '"%s" form element with value "%s" should *not* be valid',
+ implode('.', $elementHierarchy),
+ print_r($value, true)
+ )
+ );
+
+ $errorMessages = array_keys($this->getFormMessages($elementHierarchy));
+ // If error messages has no keys, it is probably because the top level ErrorMessage has been used
+ // therefore check the contents of the error, rather than the key
+ if (array_keys($this->getFormMessages($elementHierarchy)) === [0 => 0]) {
+ $errorMessages = $this->getFormMessages($elementHierarchy);
+ }
+
+ $this->assertSame(
+ $validationMessages,
+ $errorMessages,
+ sprintf(
+ '"%s" form element with value "%s" error messages not as expected',
+ implode('.', $elementHierarchy),
+ print_r($value, true)
+ )
+ );
+ }
+
+ /**
+ * Assert than a form element is a text input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param int $min Minimum allowed string length
+ * @param int $max Maximum allowed string length
+ * @param array $context Any form context required for this validation
+ *
+ * @return void
+ */
+ protected function assertFormElementText(
+ $elementHierarchy,
+ $min = 0,
+ $max = null,
+ array $context = []
+ ) {
+ if ($min > 0) {
+ $this->assertFormElementValid($elementHierarchy, str_pad('', $min, 'x'), $context);
+ }
+ if ($min > 1) {
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ str_pad('', $min - 1, 'x'),
+ Validator\StringLength::TOO_SHORT,
+ $context
+ );
+ } else {
+ $this->assertFormElementValid($elementHierarchy, 'x', $context);
+ }
+
+ if ($max !== null) {
+ $this->assertFormElementValid($elementHierarchy, str_pad('', $max, 'x'), $context);
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ str_pad('', $max + 1, 'x'),
+ Validator\StringLength::TOO_LONG,
+ $context
+ );
+ }
+ }
+
+ /**
+ * Assert than a form element is a number input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param int $min Minimum allowed value
+ * @param int $max Maximum allowed value
+ * @param string|array $validationMessages A single or an array of expected validation messages keys
+ *
+ * @return void
+ */
+ protected function assertFormElementNumber($elementHierarchy, $min = 0, $max = null, $validationMessages = null)
+ {
+ $this->assertFormElementValid($elementHierarchy, $min);
+ $this->assertFormElementValid($elementHierarchy, $min + 1);
+
+ if ($min > 0) {
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ $min - 1,
+ $validationMessages ? : Validator\Between::NOT_BETWEEN
+ );
+ }
+
+ if ($max !== null) {
+ $this->assertFormElementValid($elementHierarchy, $max);
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ $max + 1,
+ $validationMessages ? : Validator\Between::NOT_BETWEEN
+ );
+ }
+
+ if ($validationMessages === null) {
+ $validationMessages = [Validator\Digits::NOT_DIGITS];
+
+ if ($min > 0 || $max !== null) {
+ $validationMessages[] = Validator\Between::VALUE_NOT_NUMERIC;
+ }
+
+ $this->assertFormElementNotValid($elementHierarchy, 'X', $validationMessages);
+ }
+ }
+
+ /**
+ * Assert than a form element is a float input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param int $min Minimum allowed value
+ * @param int $max Maximum allowed value
+ *
+ * @return void
+ */
+ protected function assertFormElementFloat($elementHierarchy, $min = 0, $max = null)
+ {
+ $this->assertFormElementValid($elementHierarchy, $min);
+ $this->assertFormElementValid($elementHierarchy, $min + 0.1);
+
+ if ($min > 0) {
+ $this->assertFormElementNotValid($elementHierarchy, $min - 0.1, Validator\Between::NOT_BETWEEN);
+ }
+
+ if ($max !== null) {
+ $this->assertFormElementValid($elementHierarchy, $max);
+ $this->assertFormElementNotValid($elementHierarchy, $max + 0.1, Validator\LessThan::NOT_LESS_INCLUSIVE);
+ }
+
+ $this->assertFormElementNotValid($elementHierarchy, 'X', [\Laminas\I18n\Validator\IsFloat::NOT_FLOAT]);
+ }
+
+ /**
+ * Assert than a form element is a checkbox input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementCheckbox($elementHierarchy, $uncheckedValue = 'N', $checkedValue = 'Y')
+ {
+ $this->assertFormElementValid($elementHierarchy, $checkedValue);
+ $this->assertFormElementValid($elementHierarchy, $uncheckedValue);
+ $this->assertFormElementNotValid($elementHierarchy, 'X', [Validator\InArray::NOT_IN_ARRAY]);
+ }
+
+ /**
+ * Assert than a form element is a hidden input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementHidden($elementHierarchy)
+ {
+ $this->assertFormElementRequired($elementHierarchy, false);
+ $this->assertFormElementAllowEmpty($elementHierarchy, true);
+ $this->assertFormElementValid($elementHierarchy, 'X');
+ }
+
+ /**
+ * Assert than a form element is a html input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementHtml($elementHierarchy)
+ {
+ $this->assertFormElementRequired($elementHierarchy, false);
+ $this->assertFormElementAllowEmpty($elementHierarchy, true);
+ $this->assertFormElementValid($elementHierarchy, 'X');
+ }
+
+ /**
+ * Assert than a form element is a action button input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementActionButton($elementHierarchy)
+ {
+ $this->assertFormElementRequired($elementHierarchy, false);
+ $this->assertFormElementAllowEmpty($elementHierarchy, true);
+ $this->assertFormElementValid($elementHierarchy, 'X');
+ }
+
+ /**
+ * Assert than a form element is a usernameCreate input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementUsernameCreate($elementHierarchy)
+ {
+ $this->assertFormElementText($elementHierarchy, 4, 40);
+
+ $this->assertFormElementValid($elementHierarchy, 'usr0001');
+ $this->assertFormElementValid($elementHierarchy, 'USR0001'); // Should be transformed to lowercase
+ $this->assertFormElementValid($elementHierarchy, 'abcdefghijklmnoprstuvwxyz');
+ $this->assertFormElementValid($elementHierarchy, 'ABCDEFGHIJKLMNOPRSTUVWXYZ'); // Should be transformed to lowercase
+
+ $this->assertFormElementNotValid($elementHierarchy, '0usr0001', TransferValidator\UsernameCreate::USERNAME_INVALID);
+
+ $this->assertFormElementNotValid($elementHierarchy, 'a¬bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a!bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a£bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a&bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a*bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a(bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a)bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a+bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a_bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a.bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a\bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a/bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a=bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a@bs', TransferValidator\UsernameCreate::USERNAME_INVALID);
+ }
+
+ /**
+ * Assert than a form element is a username legacy input (supporting legacy usernames)
+ *
+ * @deprecated
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementUsername($elementHierarchy)
+ {
+ $this->assertFormElementText($elementHierarchy, 2, 40);
+
+ $this->assertFormElementValid($elementHierarchy, '0123456789');
+ $this->assertFormElementValid($elementHierarchy, 'abcdefghijklmnoprstuvwxyz');
+ $this->assertFormElementValid($elementHierarchy, 'ABCDEFGHIJKLMNOPRSTUVWXYZ');
+ $this->assertFormElementValid($elementHierarchy, '#$%\'+-/=?^_.@`|~",:;<>');
+
+ $this->assertFormElementNotValid($elementHierarchy, 'a¬b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a!b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a£b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a&b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a*b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a(b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a)b', TransferValidator\Username::USERNAME_INVALID);
+ $this->assertFormElementNotValid($elementHierarchy, 'a b', TransferValidator\Username::USERNAME_INVALID);
+ }
+
+ /**
+ * Assert than a form element is an email address
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementEmailAddress($elementHierarchy)
+ {
+ $this->assertFormElementValid($elementHierarchy, 'valid@email.com');
+ $this->assertFormElementValid(
+ $elementHierarchy,
+ '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@'.
+ '123456789012345678901234567890123456789012345678901234567890.com'
+ );
+ // total length greater than 254
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890@'.
+ '123456789012345678901234567890123456789012345678901234567890.'.
+ '123456789012345678901234567890123456789012345678901234567890.'.
+ '123456789012345678901234567890123456789012345678901234567890.com',
+ TransferValidator\EmailAddress::ERROR_INVALID
+ );
+ // domain parts max greate than 63 chars
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ '1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890'.
+ '@1234567890123456789012345678901234567890123456789012345678901234.com',
+ TransferValidator\EmailAddress::INVALID_FORMAT
+ );
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ '1234567890123456789012345678901234567890123456789012345678901',
+ TransferValidator\EmailAddress::INVALID_FORMAT
+ );
+ }
+
+ /**
+ * Assert than a form element is a postcode
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementPostcode($elementHierarchy)
+ {
+ $this->assertFormElementValid($elementHierarchy, 'LS9 6NF');
+ $this->assertFormElementValid($elementHierarchy, 'ls9 6nf');
+ $this->assertFormElementValid($elementHierarchy, 'ls96NF');
+ $this->assertFormElementNotValid($elementHierarchy, 'not a postcode', Validator\StringLength::TOO_LONG);
+ }
+
+ /**
+ * Assert than a form element is a phone
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementPhone($elementHierarchy)
+ {
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\InputFilters\Phone::class);
+ $this->assertFormElementValid($elementHierarchy, '0123456789');
+ $this->assertFormElementValid($elementHierarchy, '+44123456789');
+ $this->assertFormElementValid($elementHierarchy, '(0044)1234567889');
+ $this->assertFormElementValid($elementHierarchy, '0123-456789');
+ $this->assertFormElementNotValid($elementHierarchy, 'not a phone number', Validator\Regex::NOT_MATCH);
+ }
+
+ /**
+ * Note for developers
+ * We are not really testing here. There is a custom validation on the
+ * frontend (mainly AJAX functionality). For this purpose there is no real
+ * use testing case. So we skip these searchPostcode elements.
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementPostcodeSearch($elementHierarchy)
+ {
+ $searchPostcodeElements = [
+ 'postcode',
+ 'search',
+ 'addresses',
+ 'select',
+ 'manual-link',
+ ];
+
+ foreach ($searchPostcodeElements as $element) {
+ $elementToSkip = array_merge(
+ $elementHierarchy,
+ [
+ $element,
+ ]
+ );
+
+ self::$testedElements[implode('.', $elementToSkip)] = true;
+ }
+ }
+
+ /**
+ * Assert than a form element is a company number
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementCompanyNumber($elementHierarchy)
+ {
+ $this->assertFormElementText($elementHierarchy, 1, 8);
+ $this->assertFormElementNotValid($elementHierarchy, '#', \Laminas\I18n\Validator\Alnum::NOT_ALNUM);
+ }
+
+ /**
+ * Assert than a form element is a company number type
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementCompanyNumberType($elementHierarchy)
+ {
+ $this->assertFormElementHtml(array_merge($elementHierarchy, ['description']));
+ $this->assertFormElementCompanyNumber(array_merge($elementHierarchy, ['company_number']));
+ $this->assertFormElementActionButton(array_merge($elementHierarchy, ['submit_lookup_company']));
+ }
+
+ /**
+ * Assert than a form element is a table
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementTable($elementHierarchy)
+ {
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\Types\Table::class);
+ }
+
+ /**
+ * Assert than a form element is a NoRender
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementNoRender($elementHierarchy)
+ {
+ $this->assertFormElementRequired($elementHierarchy, false);
+ $this->assertFormElementAllowEmpty($elementHierarchy, true);
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\InputFilters\NoRender::class);
+ }
+
+ /**
+ * Assert than a form element is an ActionLink
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementActionLink($elementHierarchy)
+ {
+ $this->assertFormElementRequired($elementHierarchy, false);
+ $this->assertFormElementAllowEmpty($elementHierarchy, true);
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\InputFilters\ActionLink::class);
+ }
+
+ /**
+ * Assert than a form element is a MultipleFileUpload
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementMultipleFileUpload($elementHierarchy)
+ {
+ $fileCountElement = $fileElement = $messagesElement = $uploadElement = $elementHierarchy;
+
+ $fileCountElement[] = 'fileCount';
+ $this->assertFormElementRequired($fileCountElement, false);
+ $this->assertFormElementAllowEmpty($fileCountElement, true);
+
+ $fileElement[] = 'file';
+ $this->assertFormElementRequired($fileElement, false);
+ $this->assertFormElementAllowEmpty($fileElement, true);
+ $this->assertFormElementType($fileElement, \Common\Form\Elements\Types\AttachFilesButton::class);
+
+ $messagesElement[] = '__messages__';
+ $this->assertFormElementHidden($messagesElement);
+
+ $uploadElement[] = 'upload';
+ $this->assertFormElementType($uploadElement, \Common\Form\Elements\InputFilters\ActionButton::class);
+ $this->assertFormElementRequired($uploadElement, false);
+
+ // FileUploadCountV2 validator
+ $this->assertFormElementValid($elementHierarchy, []);
+ $this->assertFormElementValid($elementHierarchy, ['fileCount' => 1, 'list' => [1]]);
+ $this->assertFormElementValid($elementHierarchy, ['fileCount' => 4, 'list' => [1, 2, 3, 4]]);
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['fileCount' => 0],
+ 'fileCount'
+ );
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['fileCount' => 0, 'list' => []],
+ 'fileCount'
+ );
+ $this->assertSame(
+ [
+ 'fileCount' => [
+ CommonValidator\FileUploadCountV2::TOO_FEW => 'Too few files uploaded',
+ ]
+ ],
+ $this->getFormMessages($elementHierarchy),
+ sprintf(
+ '"%s" form element with value "%s" error messages not as expected',
+ implode('.', $elementHierarchy),
+ print_r(['fileCount' => 0, 'list' => []], true)
+ )
+ );
+ }
+
+ /**
+ * Assert than a form element is a VRM
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementVrm($elementHierarchy)
+ {
+ $this->assertFormElementValid($elementHierarchy, 'XX59 GTB');
+ $this->assertFormElementValid($elementHierarchy, 'FOO1');
+ $this->assertFormElementNotValid($elementHierarchy, 'FOO', 'invalid');
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\Custom\VehicleVrm::class);
+ }
+
+ /**
+ * Assert than a form element is a vehicle plated weight
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementVehiclePlatedWeight($elementHierarchy)
+ {
+ $this->assertFormElementNumber($elementHierarchy, 0, 999999);
+ $this->assertFormElementType($elementHierarchy, \Common\Form\Elements\Custom\VehiclePlatedWeight::class);
+ }
+
+ /**
+ * Assert that a form element is a dynamic multi checkbox
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param bool $required Is the form element required
+ *
+ * @return void
+ * @SuppressWarnings(PHPMD.UnusedFormalParameter)
+ */
+ protected function assertFormElementDynamicMultiCheckbox($elementHierarchy, $required = true)
+ {
+ $this->assertFormElementValid($elementHierarchy, 1);
+ $this->assertFormElementValid($elementHierarchy, '1');
+ }
+
+ /**
+ * Assert that a form element is a dynamic radio
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param bool $required Is the form element required
+ *
+ * @return void
+ */
+ protected function assertFormElementDynamicRadio($elementHierarchy, $required = true)
+ {
+ $this->assertFormElementValid($elementHierarchy, 1);
+ $this->assertFormElementValid($elementHierarchy, '1');
+ if ($required) {
+ $this->assertFormElementNotValid($elementHierarchy, 'X', Validator\InArray::NOT_IN_ARRAY);
+ }
+ }
+
+ /**
+ * Assert that a form element is a dynamic select
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param bool $required Is the form element required
+ *
+ * @return void
+ */
+ protected function assertFormElementDynamicSelect(
+ $elementHierarchy,
+ $required = true
+ ) {
+ $this->assertFormElementValid($elementHierarchy, 1);
+ $this->assertFormElementValid($elementHierarchy, '1');
+ if ($required) {
+ //uncomment the following line once "prefer_form_input_filter": true has been removed from the forms
+ //$this->assertFormElementNotValid($elementHierarchy, 'X', Validator\InArray::NOT_IN_ARRAY);
+ }
+ }
+
+ /**
+ * Assert that a form element is a month select input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementMonthSelect($elementHierarchy)
+ {
+ $this->assertFormElementValid($elementHierarchy, ['month' => '2', 'year' => '1999']);
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['month' => 'X', 'year' => '1999'],
+ [
+ \Laminas\Validator\Regex::NOT_MATCH
+ ]
+ );
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['month' => '3', 'year' => 'XXXX'],
+ [
+ \Laminas\Validator\Regex::NOT_MATCH
+ ]
+ );
+ }
+
+ /**
+ * Assert that a form element is a date input
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ *
+ * @return void
+ */
+ protected function assertFormElementDate($elementHierarchy, array $context = [])
+ {
+ $errorMessages = [
+ \Common\Validator\Date::DATE_ERR_CONTAINS_STRING,
+ \Laminas\Validator\Date::INVALID_DATE
+ ];
+
+ $this->assertFormElementValid($elementHierarchy, ['day' => 1, 'month' => '2', 'year' => 1999], $context);
+
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['day' => 'X', 'month' => '2', 'year' => 1999],
+ $errorMessages,
+ $context
+ );
+
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['day' => '1', 'month' => 'X', 'year' => 1999],
+ $errorMessages,
+ $context
+ );
+
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ ['day' => 1, 'month' => 3, 'year' => 'XXXX'],
+ [
+ \Common\Validator\Date::DATE_ERR_CONTAINS_STRING,
+ \Common\Validator\Date::DATE_ERR_YEAR_LENGTH,
+ Validator\Date::INVALID_DATE
+ ],
+ $context
+ );
+ }
+
+ /**
+ * Assert that a form element is a date time input. For any complex
+ * logic such as; `endDate` with contexts - use the individual methods.
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param bool|true $required Is this input required? Default is 'true'
+ * @param null $value Currently the default will be tomorrow's date
+ *
+ * @return void
+ */
+ protected function assertFormElementDateTime(array $elementHierarchy, $required = true, $value = null)
+ {
+ if ($value === null) {
+ $currentDate = new \DateTimeImmutable('tomorrow');
+
+ // Date inputted will be exact time tomorrow.
+ $value = [
+ 'year' => $currentDate->format('Y'),
+ 'month' => $currentDate->format('m'),
+ 'day' => $currentDate->format('j'),
+ 'hour' => $currentDate->format('h'),
+ 'minute' => $currentDate->format('i'),
+ 'second' => $currentDate->format('s'),
+ ];
+ }
+
+ $this->assertFormElementRequired($elementHierarchy, $required);
+ $this->assertFormElementDateTimeNotValidCheck($elementHierarchy);
+ $this->assertFormElementDateTimeValidCheck($elementHierarchy, $value);
+ }
+
+ /**
+ * To avoid duplication, you can call this method separately and
+ * pass custom validation messages
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param array $validationMessages Specify if validation messages are expected to be different
+ *
+ * @return void
+ */
+ protected function assertFormElementDateTimeNotValidCheck(array $elementHierarchy, $validationMessages = [])
+ {
+ if (empty($validationMessages)) {
+ $validationMessages = [
+ \Common\Validator\Date::DATE_ERR_CONTAINS_STRING,
+ \Common\Validator\Date::DATE_ERR_YEAR_LENGTH,
+ Validator\Date::INVALID_DATE,
+ ];
+ }
+
+ // String in values
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ [
+ 'year' => 'XXXX',
+ 'month' => 'XX',
+ 'day' => 'XX',
+ 'hour' => 'XX',
+ 'minute' => 'XX',
+ 'second' => 'XX',
+ ],
+ $validationMessages
+ );
+
+ $validationMessages = [
+ Validator\Date::INVALID_DATE
+ ];
+
+ // Invalid date
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ [
+ 'year' => 2000,
+ 'month' => 15,
+ 'day' => 35,
+ 'hour' => 27,
+ 'minute' => 100,
+ 'second' => 5000,
+ ],
+ $validationMessages
+ );
+ }
+
+ /**
+ * Developer note;
+ * Value is expected to be an array with 'year', 'month', 'day', 'hour', 'minute', 'second'
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param null|mixed $value Default date is tomorrows date. Can be changed if future not allowed
+ * @param array $context Context is normally used for startDate/endDates
+ *
+ * @return void
+ */
+ protected function assertFormElementDateTimeValidCheck(array $elementHierarchy, $value = null, array $context = [])
+ {
+ if ($value === null) {
+ $currentDate = new \DateTimeImmutable('tomorrow');
+
+ // Date inputted will be exact time tomorrow.
+ $value = [
+ 'year' => $currentDate->format('Y'),
+ 'month' => $currentDate->format('m'),
+ 'day' => $currentDate->format('j'),
+ 'hour' => $currentDate->format('h'),
+ 'minute' => $currentDate->format('i'),
+ 'second' => $currentDate->format('s'),
+ ];
+ }
+
+ // Valid scenario
+ $this->assertFormElementValid($elementHierarchy, $value, $context);
+ }
+
+ /**
+ * Assert whether a form element allows empty
+ *
+ * @param array $elementHierarchy Form element name eg ['fields','numOfCows']
+ * @param bool $allowEmpty if true, form element allows empty
+ * @param array $context Context
+ * @param string|array $validationMessages A single or an array of expected validation messages keys
+ *
+ * @return void
+ */
+ protected function assertFormElementAllowEmpty(
+ $elementHierarchy,
+ $allowEmpty,
+ $context = [],
+ $validationMessages = null
+ ) {
+ if ($allowEmpty === true) {
+ $this->assertFormElementValid($elementHierarchy, '', $context);
+ } else {
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ '',
+ $validationMessages ? : Validator\NotEmpty::IS_EMPTY,
+ $context
+ );
+ }
+ }
+
+ /**
+ * Assert whether a form element is required
+ *
+ * This method checks the value, but 'required' is about checking for the key.
+ * New method is: assertFormElementIsRequired. You will notice some of the field validations
+ * will fail after using the new method. In this scenario, check the requirement of the field
+ * and check for any clashes. AllowEmpty(true) and Required(true) fields make no sense.
+ * Resource: http://stackoverflow.com/questions/7242703/zend-framework-how-to-allow-empty-field-for-form-element
+ *
+ * @param string $elementHierarchy Form element name
+ * @param bool $required true, form element is required
+ * @param string|array $validationMessages A single or an array of expected validation messages keys
+ *
+ * @return void
+ * @deprecated
+ */
+ protected function assertFormElementRequired($elementHierarchy, $required, $validationMessages = null)
+ {
+ if ($required === true) {
+ $this->assertFormElementNotValid(
+ $elementHierarchy,
+ null,
+ $validationMessages ? : Validator\NotEmpty::IS_EMPTY
+ );
+ } else {
+ $this->assertFormElementValid($elementHierarchy, null);
+ }
+ }
+
+ /**
+ * New method used apart from assertFormElementRequired()
+ * Avoid using assertFormElementRequired()
+ *
+ * @param array $elementHierarchy Element hierarchy as array (including fieldsets)
+ * @param bool|true $required true, form element is required
+ * @param array $expectedValidationMessages A single or an array of expected validation messages keys
+ *
+ * @return void
+ */
+ protected function assertFormElementIsRequired(
+ $elementHierarchy,
+ $required = true,
+ $expectedValidationMessages = [Validator\NotEmpty::IS_EMPTY]
+ ) {
+ self::$testedElements[implode('.', $elementHierarchy)] = true;
+
+ // set no data to get the response from the Validation Groups
+ $this->setData($elementHierarchy, null);
+ $this->setValidationGroup($elementHierarchy);
+
+ $this->sut->isValid();
+
+ $formErrorMessages = $this->sut->getMessages();
+ $elementErrorMessages = $this->getElementMessages(
+ $elementHierarchy,
+ $formErrorMessages
+ );
+
+ if ($required === true) {
+ $this->assertTrue((!empty($elementErrorMessages)));
+ $this->assertEquals(
+ array_keys($elementErrorMessages),
+ $expectedValidationMessages
+ );
+ } else {
+ $this->assertFalse($elementErrorMessages);
+ }
+ }
+
+ /**
+ * Test if service name as expected
+ *
+ * @param $elementHierarchy
+ * @param $serviceName
+ *
+ * @throws \Exception
+ */
+ public function assertServiceEquals($elementHierarchy, $serviceName)
+ {
+
+ $element = $this->getFormElement($elementHierarchy);
+ $this->assertContains('service_name', array_keys($element->getOptions()), "service name option not set");
+ $this->assertEquals($element->getOption('service_name'), $serviceName, "service_name option does not match class name provided");
+ }
+
+ /**
+ * Get messages for specified element
+ *
+ * @param array $elementHierarchy Element and/or Fieldset hierarchy
+ * @param array $formErrorMessages Error messages from Form service
+ *
+ * @return array|false
+ */
+ private function getElementMessages($elementHierarchy, $formErrorMessages)
+ {
+ $elementOrFieldsetName = (is_array($elementHierarchy))?
+ current($elementHierarchy) : next($elementHierarchy);
+
+ if (isset($formErrorMessages[$elementOrFieldsetName]) &&
+ is_array($formErrorMessages[$elementOrFieldsetName])
+ ) {
+ // are we at the end?
+ if (next($elementHierarchy) === false) {
+ return $formErrorMessages[$elementOrFieldsetName];
+ }
+
+ return $this->getElementMessages(
+ $elementHierarchy,
+ $formErrorMessages[$elementOrFieldsetName]
+ );
+ }
+
+ return false;
+ }
+
+ /**
+ * Check that tests exists for all form elements
+ * This needs to be the last test that runs
+ *
+ * @param string $elementName Element name to test
+ *
+ * @dataProvider dataProviderAllElementNames
+ * @doesNotPerformAssertions
+ *
+ * @return void
+ */
+ public function testMissingTest($elementName)
+ {
+ if (!array_key_exists($elementName, self::$testedElements)) {
+ $this->markTestIncomplete(sprintf('"%s" form element not tested', $elementName));
+ }
+ }
+
+ /**
+ * Data provider, a full list of element names on this form
+ *
+ * @return array
+ */
+ public function dataProviderAllElementNames()
+ {
+ $elementList = $this->getElementList($this->getForm());
+ foreach ($elementList as &$elementName) {
+ $elementName = [$elementName];
+ }
+ return $elementList;
+ }
+
+ /**
+ * Get a list of all form elements
+ *
+ * @param \Laminas\Form\Fieldset $fieldsset Fieldset
+ * @param string $prefix Prefix
+ *
+ * @return array eg ['fields.numOfCows', 'fields.numOfDogs']
+ */
+ private function getElementList(\Laminas\Form\Fieldset $fieldsset, $prefix = '')
+ {
+ $elementList = [];
+ /** @var \Laminas\Form\Element $element */
+ foreach ($fieldsset->getFieldsets() as $childFieldSet) {
+ $elementList = array_merge(
+ $elementList,
+ $this->getElementList(
+ $childFieldSet,
+ $prefix . $childFieldSet->getName() .'.'
+ )
+ );
+ }
+ foreach ($fieldsset->getElements() as $element) {
+ $elementList[] = $prefix . $element->getName();
+ }
+ return $elementList;
+ }
+
+ protected function getElementByHierarchy($elementHierarchy): ElementInterface
+ {
+ $elementOrFieldSet = $this->sut;
+ foreach($elementHierarchy as $name) {
+ $elementOrFieldSet = $elementOrFieldSet->get($name);
+ }
+ return $elementOrFieldSet;
+ }
+}
diff --git a/test/Olcs/src/TestHelpers/ControllerPluginManagerHelper.php b/test/Olcs/src/TestHelpers/ControllerPluginManagerHelper.php
new file mode 100644
index 000000000..3d7bd8edb
--- /dev/null
+++ b/test/Olcs/src/TestHelpers/ControllerPluginManagerHelper.php
@@ -0,0 +1,41 @@
+shouldReceive('__invoke')->andReturnSelf();
+ return $mockPlugin;
+ }
+
+ /**
+ * @param $plugins
+ * @return m\MockInterface|\Laminas\Mvc\Controller\PluginManager
+ */
+ public function getMockPluginManager($plugins)
+ {
+ $mockPluginManager = m::mock('Laminas\Mvc\Controller\PluginManager');
+ $mockPluginManager->shouldReceive('setController');
+
+ foreach ($plugins as $name => $class) {
+ $mockPlugin = $this->getMockPlugin($class);
+ $mockPluginManager->shouldReceive('get')->with($name, '')->andReturn($mockPlugin);
+ $mockPluginManager->shouldReceive('get')->with($name)->andReturn($mockPlugin);
+ }
+
+ return $mockPluginManager;
+ }
+}
diff --git a/test/Permits/src/Form/Model/Form/DeclineApplicationFormTest.php b/test/Permits/src/Form/Model/Form/DeclineApplicationFormTest.php
index aaa8c77ab..7a0dbe44d 100644
--- a/test/Permits/src/Form/Model/Form/DeclineApplicationFormTest.php
+++ b/test/Permits/src/Form/Model/Form/DeclineApplicationFormTest.php
@@ -3,7 +3,7 @@
namespace PermitsTest\Form\Model\Form;
use Common\Form\Elements\InputFilters\ActionButton;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
use Laminas\Validator;
/**
diff --git a/test/Permits/src/Form/Model/Form/LicenceSelectionFormTest.php b/test/Permits/src/Form/Model/Form/LicenceSelectionFormTest.php
index 02f08ca21..55eb5a4cd 100644
--- a/test/Permits/src/Form/Model/Form/LicenceSelectionFormTest.php
+++ b/test/Permits/src/Form/Model/Form/LicenceSelectionFormTest.php
@@ -4,7 +4,7 @@
use \Common\Form\Elements\InputFilters\ActionButton;
use Common\Form\Elements\Types\Radio;
-use Olcs\TestHelpers\FormTester\AbstractFormValidationTestCase;
+use OlcsTest\TestHelpers\AbstractFormValidationTestCase;
/**
* Class LicenceSelectionFormTest
diff --git a/test/Permits/src/View/Helper/PermitsCheckAnswerLinkTest.php b/test/Permits/src/View/Helper/PermitsCheckAnswerLinkTest.php
index eaee4e2a4..2e2900962 100644
--- a/test/Permits/src/View/Helper/PermitsCheckAnswerLinkTest.php
+++ b/test/Permits/src/View/Helper/PermitsCheckAnswerLinkTest.php
@@ -4,9 +4,9 @@
namespace PermitsTest\View\Helper;
-use Permits\View\Helper\PermitsCheckAnswerLink;
use Mockery as m;
use Laminas\View\Renderer\RendererInterface;
+use Permits\View\Helper\PermitsCheckAnswerLink;
class PermitsCheckAnswerLinkTest extends m\Adapter\Phpunit\MockeryTestCase
{
@@ -27,7 +27,7 @@ public function testInvoke(): void
$params = ['params'];
$options = ['options'];
-
+
$view = m::mock(RendererInterface::class);
$view->shouldReceive('translate')
->once()
diff --git a/test/phpunit.xml b/test/phpunit.xml
deleted file mode 100644
index 984b3b870..000000000
--- a/test/phpunit.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-
-
-
-
- ../module/Application/src
- ../module/Olcs/src
- ../module/Permits/src
-
-
- ../module/Olcs/src/Table/
- ../module/Olcs/src/Form/
- ../module/Permits/src/Permits/Table/
- ../module/Permits/src/Permits/Form/
-
-
-
-
- ./
- ../module/Application/test
-
-
-
-
-
-
-
- 250
-
-
- 5
-
-
-
-
-
-
diff --git a/vendor-bin/phpcs/composer.json b/vendor-bin/phpcs/composer.json
new file mode 100644
index 000000000..251773c9f
--- /dev/null
+++ b/vendor-bin/phpcs/composer.json
@@ -0,0 +1,6 @@
+{
+ "require-dev": {
+ "squizlabs/php_codesniffer": "^3.7",
+ "dvsa/coding-standards": "^2.0"
+ }
+}
diff --git a/vendor-bin/phpstan/composer.json b/vendor-bin/phpstan/composer.json
new file mode 100644
index 000000000..e452dbff1
--- /dev/null
+++ b/vendor-bin/phpstan/composer.json
@@ -0,0 +1,5 @@
+{
+ "require-dev": {
+ "phpstan/phpstan": "^1.10"
+ }
+}
diff --git a/vendor-bin/psalm/composer.json b/vendor-bin/psalm/composer.json
new file mode 100644
index 000000000..376009c7c
--- /dev/null
+++ b/vendor-bin/psalm/composer.json
@@ -0,0 +1,5 @@
+{
+ "require-dev": {
+ "vimeo/psalm": "^5.15"
+ }
+}