From 173950bfbdefe10696f88c8f0c5602a07d45c90b Mon Sep 17 00:00:00 2001 From: Anvit Srivastav Date: Tue, 1 Oct 2024 14:08:39 -0700 Subject: [PATCH 1/5] Update ElasticSearch and Elastica dependencies Update ElasticSearch to 6.8.23 in the Dockerfile and update Elastica to 6.x in composer. --- composer.json | 2 +- composer.lock | 2256 +++++++++++++++++---------------- docker/docker-compose.dev.yml | 2 +- 3 files changed, 1199 insertions(+), 1061 deletions(-) diff --git a/composer.json b/composer.json index 835de761ad..d8ca93e00e 100644 --- a/composer.json +++ b/composer.json @@ -20,7 +20,7 @@ "league/csv": "^9.4", "jasig/phpcas": "^1.3.8", "ezyang/htmlpurifier": "^4.13", - "ruflin/elastica": "5.*", + "ruflin/elastica": "6.*", "jumbojett/openid-connect-php": "^1.0" }, "autoload-dev": { diff --git a/composer.lock b/composer.lock index 6c893e5845..b278f89079 100644 --- a/composer.lock +++ b/composer.lock @@ -4,35 +4,37 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9ba934b7c4bd12ce351fe9badbe5120b", + "content-hash": "faad54129d36a5739c08b800ba4b4c62", "packages": [ { "name": "elasticsearch/elasticsearch", - "version": "v5.4.0", + "version": "v6.8.3", "source": { "type": "git", "url": "https://github.com/elastic/elasticsearch-php.git", - "reference": "d3c5b55ad94f5053ca76c48585b4cde2cdc6bc59" + "reference": "a48d84b133453136b9bfab4e561147129dde3b2d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/d3c5b55ad94f5053ca76c48585b4cde2cdc6bc59", - "reference": "d3c5b55ad94f5053ca76c48585b4cde2cdc6bc59", + "url": "https://api.github.com/repos/elastic/elasticsearch-php/zipball/a48d84b133453136b9bfab4e561147129dde3b2d", + "reference": "a48d84b133453136b9bfab4e561147129dde3b2d", "shasum": "" }, "require": { - "guzzlehttp/ringphp": "~1.0", - "php": "^5.6|^7.0", - "psr/log": "~1.0" + "ext-json": ">=1.3.7", + "ezimuel/ringphp": "^1.1.2", + "php": "^7.3 || ^8.0", + "psr/log": "^1|^2" }, "require-dev": { - "cpliakas/git-wrapper": "~1.0", - "doctrine/inflector": "^1.1", - "mockery/mockery": "0.9.4", - "phpunit/phpunit": "^4.7|^5.4", - "sami/sami": "~3.2", - "symfony/finder": "^2.8", - "symfony/yaml": "^2.8" + "doctrine/inflector": "^1.3", + "mockery/mockery": "^1.2", + "phpstan/phpstan": "^0.12", + "phpunit/phpunit": "^9.3", + "squizlabs/php_codesniffer": "^3.4", + "symfony/finder": "~4.0", + "symfony/yaml": "~4.0", + "symplify/git-wrapper": ">=9.0 <9.3.27" }, "suggest": { "ext-curl": "*", @@ -40,6 +42,9 @@ }, "type": "library", "autoload": { + "files": [ + "src/autoload.php" + ], "psr-4": { "Elasticsearch\\": "src/Elasticsearch/" } @@ -51,6 +56,9 @@ "authors": [ { "name": "Zachary Tong" + }, + { + "name": "Enrico Zimuel" } ], "description": "PHP Client for Elasticsearch", @@ -61,83 +69,88 @@ ], "support": { "issues": "https://github.com/elastic/elasticsearch-php/issues", - "source": "https://github.com/elastic/elasticsearch-php/tree/v5.4.0" + "source": "https://github.com/elastic/elasticsearch-php/tree/v6.8.3" }, - "time": "2019-01-08T18:57:00+00:00" + "time": "2024-04-12T13:12:26+00:00" }, { - "name": "ezyang/htmlpurifier", - "version": "v4.14.0", + "name": "ezimuel/guzzlestreams", + "version": "3.1.0", "source": { "type": "git", - "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75" + "url": "https://github.com/ezimuel/guzzlestreams.git", + "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/12ab42bd6e742c70c0a52f7b82477fcd44e64b75", - "reference": "12ab42bd6e742c70c0a52f7b82477fcd44e64b75", + "url": "https://api.github.com/repos/ezimuel/guzzlestreams/zipball/b4b5a025dfee70d6cd34c780e07330eb93d5b997", + "reference": "b4b5a025dfee70d6cd34c780e07330eb93d5b997", "shasum": "" }, "require": { - "php": ">=5.2" + "php": ">=5.4.0" + }, + "require-dev": { + "phpunit/phpunit": "~9.0" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, "autoload": { - "psr-0": { - "HTMLPurifier": "library/" - }, - "files": [ - "library/HTMLPurifier.composer.php" - ], - "exclude-from-classmap": [ - "/library/HTMLPurifier/Language/" - ] + "psr-4": { + "GuzzleHttp\\Stream\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1-or-later" + "MIT" ], "authors": [ { - "name": "Edward Z. Yang", - "email": "admin@htmlpurifier.org", - "homepage": "http://ezyang.com" + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" } ], - "description": "Standards compliant HTML filter written in PHP", - "homepage": "http://htmlpurifier.org/", + "description": "Fork of guzzle/streams (abandoned) to be used with elasticsearch-php", + "homepage": "http://guzzlephp.org/", "keywords": [ - "html" + "Guzzle", + "stream" ], "support": { - "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.14.0" + "source": "https://github.com/ezimuel/guzzlestreams/tree/3.1.0" }, - "time": "2021-12-25T01:21:49+00:00" + "time": "2022-10-24T12:58:50+00:00" }, { - "name": "guzzlehttp/ringphp", - "version": "1.1.1", + "name": "ezimuel/ringphp", + "version": "1.2.2", "source": { "type": "git", - "url": "https://github.com/guzzle/RingPHP.git", - "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b" + "url": "https://github.com/ezimuel/ringphp.git", + "reference": "7887fc8488013065f72f977dcb281994f5fde9f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/5e2a174052995663dd68e6b5ad838afd47dd615b", - "reference": "5e2a174052995663dd68e6b5ad838afd47dd615b", + "url": "https://api.github.com/repos/ezimuel/ringphp/zipball/7887fc8488013065f72f977dcb281994f5fde9f4", + "reference": "7887fc8488013065f72f977dcb281994f5fde9f4", "shasum": "" }, "require": { - "guzzlehttp/streams": "~3.0", + "ezimuel/guzzlestreams": "^3.0.1", "php": ">=5.4.0", "react/promise": "~2.0" }, + "replace": { + "guzzlehttp/ringphp": "self.version" + }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0" + "phpunit/phpunit": "~9.0" }, "suggest": { "ext-curl": "Guzzle will use specific adapters if cURL is present" @@ -164,91 +177,97 @@ "homepage": "https://github.com/mtdowling" } ], - "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.", + "description": "Fork of guzzle/RingPHP (abandoned) to be used with elasticsearch-php", "support": { - "issues": "https://github.com/guzzle/RingPHP/issues", - "source": "https://github.com/guzzle/RingPHP/tree/1.1.1" + "source": "https://github.com/ezimuel/ringphp/tree/1.2.2" }, - "abandoned": true, - "time": "2018-07-31T13:22:33+00:00" + "time": "2022-12-07T11:28:53+00:00" }, { - "name": "guzzlehttp/streams", - "version": "3.0.0", + "name": "ezyang/htmlpurifier", + "version": "v4.17.0", "source": { "type": "git", - "url": "https://github.com/guzzle/streams.git", - "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5" + "url": "https://github.com/ezyang/htmlpurifier.git", + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/streams/zipball/47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5", - "reference": "47aaa48e27dae43d39fc1cea0ccf0d84ac1a2ba5", + "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", + "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", "shasum": "" }, "require": { - "php": ">=5.4.0" + "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" }, "require-dev": { - "phpunit/phpunit": "~4.0" + "cerdic/css-tidy": "^1.7 || ^2.0", + "simpletest/simpletest": "dev-master" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.0-dev" - } + "suggest": { + "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", + "ext-bcmath": "Used for unit conversion and imagecrash protection", + "ext-iconv": "Converts text to and from non-UTF-8 encodings", + "ext-tidy": "Used for pretty-printing HTML" }, + "type": "library", "autoload": { - "psr-4": { - "GuzzleHttp\\Stream\\": "src/" - } + "files": [ + "library/HTMLPurifier.composer.php" + ], + "psr-0": { + "HTMLPurifier": "library/" + }, + "exclude-from-classmap": [ + "/library/HTMLPurifier/Language/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "LGPL-2.1-or-later" ], "authors": [ { - "name": "Michael Dowling", - "email": "mtdowling@gmail.com", - "homepage": "https://github.com/mtdowling" + "name": "Edward Z. Yang", + "email": "admin@htmlpurifier.org", + "homepage": "http://ezyang.com" } ], - "description": "Provides a simple abstraction over streams of data", - "homepage": "http://guzzlephp.org/", + "description": "Standards compliant HTML filter written in PHP", + "homepage": "http://htmlpurifier.org/", "keywords": [ - "Guzzle", - "stream" + "html" ], "support": { - "issues": "https://github.com/guzzle/streams/issues", - "source": "https://github.com/guzzle/streams/tree/master" + "issues": "https://github.com/ezyang/htmlpurifier/issues", + "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" }, - "abandoned": true, - "time": "2014-10-12T19:18:40+00:00" + "time": "2023-11-17T15:01:25+00:00" }, { "name": "jasig/phpcas", - "version": "1.4.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/apereo/phpCAS.git", - "reference": "ea27d122c4c7114006b33d15668c90f1904d53df" + "reference": "c129708154852656aabb13d8606cd5b12dbbabac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apereo/phpCAS/zipball/ea27d122c4c7114006b33d15668c90f1904d53df", - "reference": "ea27d122c4c7114006b33d15668c90f1904d53df", + "url": "https://api.github.com/repos/apereo/phpCAS/zipball/c129708154852656aabb13d8606cd5b12dbbabac", + "reference": "c129708154852656aabb13d8606cd5b12dbbabac", "shasum": "" }, "require": { "ext-curl": "*", - "php": ">=7.0.0", - "psr/log": "^1.0.0" + "ext-dom": "*", + "php": ">=7.1.0", + "psr/log": "^1.0 || ^2.0 || ^3.0" }, "require-dev": { - "monolog/monolog": "^1.0.0", - "phpunit/phpunit": ">=4.8.35 <8" + "monolog/monolog": "^1.0.0 || ^2.0.0", + "phpstan/phpstan": "^1.5", + "phpunit/phpunit": ">=7.5" }, "type": "library", "extra": { @@ -257,6 +276,9 @@ } }, "autoload": { + "files": [ + "source/CAS.php" + ], "classmap": [ "source/" ] @@ -289,33 +311,35 @@ ], "support": { "issues": "https://github.com/apereo/phpCAS/issues", - "source": "https://github.com/apereo/phpCAS/tree/1.4.0" + "source": "https://github.com/apereo/phpCAS/tree/1.6.1" }, - "time": "2021-05-30T19:53:34+00:00" + "abandoned": "apereo/phpcas", + "time": "2023-02-19T19:52:35+00:00" }, { "name": "jumbojett/openid-connect-php", - "version": "v1.0.0", + "version": "v1.0.2", "source": { "type": "git", "url": "https://github.com/jumbojett/OpenID-Connect-PHP.git", - "reference": "4af1d11497ec765dccddf928c14c04535ca96017" + "reference": "f327e7eb0626d55ddb6abc7b7c9e6ad3af4e5d51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jumbojett/OpenID-Connect-PHP/zipball/4af1d11497ec765dccddf928c14c04535ca96017", - "reference": "4af1d11497ec765dccddf928c14c04535ca96017", + "url": "https://api.github.com/repos/jumbojett/OpenID-Connect-PHP/zipball/f327e7eb0626d55ddb6abc7b7c9e6ad3af4e5d51", + "reference": "f327e7eb0626d55ddb6abc7b7c9e6ad3af4e5d51", "shasum": "" }, "require": { "ext-curl": "*", "ext-json": "*", "php": ">=7.0", - "phpseclib/phpseclib": "~3.0" + "phpseclib/phpseclib": "^3.0.7" }, "require-dev": { + "phpunit/phpunit": "<10", "roave/security-advisories": "dev-latest", - "yoast/phpunit-polyfills": "^1.0" + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "autoload": { @@ -330,9 +354,9 @@ "description": "Bare-bones OpenID Connect client", "support": { "issues": "https://github.com/jumbojett/OpenID-Connect-PHP/issues", - "source": "https://github.com/jumbojett/OpenID-Connect-PHP/tree/v1.0.0" + "source": "https://github.com/jumbojett/OpenID-Connect-PHP/tree/v1.0.2" }, - "time": "2023-12-13T09:52:12+00:00" + "time": "2024-09-13T07:08:11+00:00" }, { "name": "league/csv", @@ -420,16 +444,16 @@ }, { "name": "paragonie/constant_time_encoding", - "version": "v2.6.3", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/paragonie/constant_time_encoding.git", - "reference": "58c3f47f650c94ec05a151692652a868995d2938" + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/58c3f47f650c94ec05a151692652a868995d2938", - "reference": "58c3f47f650c94ec05a151692652a868995d2938", + "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/52a0d99e69f56b9ec27ace92ba56897fe6993105", + "reference": "52a0d99e69f56b9ec27ace92ba56897fe6993105", "shasum": "" }, "require": { @@ -483,7 +507,7 @@ "issues": "https://github.com/paragonie/constant_time_encoding/issues", "source": "https://github.com/paragonie/constant_time_encoding" }, - "time": "2022-06-14T06:56:20+00:00" + "time": "2024-05-08T12:18:48+00:00" }, { "name": "paragonie/random_compat", @@ -537,20 +561,20 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.37", + "version": "3.0.42", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8" + "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/cfa2013d0f68c062055180dd4328cc8b9d1f30b8", - "reference": "cfa2013d0f68c062055180dd4328cc8b9d1f30b8", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/db92f1b1987b12b13f248fe76c3a52cadb67bb98", + "reference": "db92f1b1987b12b13f248fe76c3a52cadb67bb98", "shasum": "" }, "require": { - "paragonie/constant_time_encoding": "^1|^2", + "paragonie/constant_time_encoding": "^1|^2|^3", "paragonie/random_compat": "^1.4|^2.0|^9.99.99", "php": ">=5.6.1" }, @@ -627,7 +651,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.37" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.42" }, "funding": [ { @@ -643,7 +667,7 @@ "type": "tidelift" } ], - "time": "2024-03-03T02:14:58+00:00" + "time": "2024-09-16T03:06:04+00:00" }, { "name": "psr/log", @@ -697,23 +721,23 @@ }, { "name": "react/promise", - "version": "v2.9.0", + "version": "v2.11.0", "source": { "type": "git", "url": "https://github.com/reactphp/promise.git", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910" + "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/promise/zipball/234f8fd1023c9158e2314fa9d7d0e6a83db42910", - "reference": "234f8fd1023c9158e2314fa9d7d0e6a83db42910", + "url": "https://api.github.com/repos/reactphp/promise/zipball/1a8460931ea36dc5c76838fec5734d55c88c6831", + "reference": "1a8460931ea36dc5c76838fec5734d55c88c6831", "shasum": "" }, "require": { "php": ">=5.4.0" }, "require-dev": { - "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36" + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, "type": "library", "autoload": { @@ -757,42 +781,44 @@ ], "support": { "issues": "https://github.com/reactphp/promise/issues", - "source": "https://github.com/reactphp/promise/tree/v2.9.0" + "source": "https://github.com/reactphp/promise/tree/v2.11.0" }, "funding": [ { - "url": "https://github.com/WyriHaximus", - "type": "github" - }, - { - "url": "https://github.com/clue", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2022-02-11T10:27:51+00:00" + "time": "2023-11-16T16:16:50+00:00" }, { "name": "ruflin/elastica", - "version": "5.3.6", + "version": "6.2.1", "source": { "type": "git", "url": "https://github.com/ruflin/Elastica.git", - "reference": "1ed6f587a38d4d6455b688ffc9a9d370d4ae60e9" + "reference": "f95cf646f884a8e7b73bd12eda3e5753994b24d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ruflin/Elastica/zipball/1ed6f587a38d4d6455b688ffc9a9d370d4ae60e9", - "reference": "1ed6f587a38d4d6455b688ffc9a9d370d4ae60e9", + "url": "https://api.github.com/repos/ruflin/Elastica/zipball/f95cf646f884a8e7b73bd12eda3e5753994b24d3", + "reference": "f95cf646f884a8e7b73bd12eda3e5753994b24d3", "shasum": "" }, "require": { - "elasticsearch/elasticsearch": "5.4.*", - "php": ">=5.6.0", + "elasticsearch/elasticsearch": "^6.0", + "ext-json": "*", + "php": "^7.0||^8.0", "psr/log": "~1.0" }, + "conflict": { + "elasticsearch/elasticsearch": "6.8.0 || 6.8.1" + }, "require-dev": { "aws/aws-sdk-php": "~3.0", - "guzzlehttp/guzzle": "~6.0" + "guzzlehttp/guzzle": "~6.0", + "phpunit/phpunit": "^6.0||^8.5.20", + "yoast/phpunit-polyfills": "1.0.1" }, "suggest": { "aws/aws-sdk-php": "Allow using IAM authentication with Amazon ElasticSearch Service", @@ -803,7 +829,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3.x-dev" + "dev-master": "6.0.x-dev" } }, "autoload": { @@ -829,38 +855,110 @@ ], "support": { "issues": "https://github.com/ruflin/Elastica/issues", - "source": "https://github.com/ruflin/Elastica/tree/5.3.6" + "source": "https://github.com/ruflin/Elastica/tree/6.2.1" }, - "time": "2019-08-29T06:34:21+00:00" + "time": "2022-04-14T06:57:28+00:00" } ], "packages-dev": [ + { + "name": "clue/ndjson-react", + "version": "v1.3.0", + "source": { + "type": "git", + "url": "https://github.com/clue/reactphp-ndjson.git", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/clue/reactphp-ndjson/zipball/392dc165fce93b5bb5c637b67e59619223c931b0", + "reference": "392dc165fce93b5bb5c637b67e59619223c931b0", + "shasum": "" + }, + "require": { + "php": ">=5.3", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35", + "react/event-loop": "^1.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Clue\\React\\NDJson\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering" + } + ], + "description": "Streaming newline-delimited JSON (NDJSON) parser and encoder for ReactPHP.", + "homepage": "https://github.com/clue/reactphp-ndjson", + "keywords": [ + "NDJSON", + "json", + "jsonlines", + "newline", + "reactphp", + "streaming" + ], + "support": { + "issues": "https://github.com/clue/reactphp-ndjson/issues", + "source": "https://github.com/clue/reactphp-ndjson/tree/v1.3.0" + }, + "funding": [ + { + "url": "https://clue.engineering/support", + "type": "custom" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-12-23T10:58:28+00:00" + }, { "name": "composer/pcre", - "version": "1.0.1", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/67a32d7d6f9f560b726ab25a061b38ff3a80c560", - "reference": "67a32d7d6f9f560b726ab25a061b38ff3a80c560", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { - "php": "^5.3.2 || ^7.0 || ^8.0" + "php": "^7.4 || ^8.0" + }, + "conflict": { + "phpstan/phpstan": "<1.11.10" }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.10", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { - "dev-main": "1.x-dev" + "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -888,7 +986,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/1.0.1" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -904,28 +1002,28 @@ "type": "tidelift" } ], - "time": "2022-01-21T20:24:37+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", - "version": "3.2.9", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/a951f614bd64dcd26137bc9b7b2637ddcfc57649", - "reference": "a951f614bd64dcd26137bc9b7b2637ddcfc57649", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -967,9 +1065,9 @@ "versioning" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.2.9" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -985,31 +1083,31 @@ "type": "tidelift" } ], - "time": "2022-02-04T13:58:43+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "composer/xdebug-handler", - "version": "3.0.1", + "version": "3.0.5", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "12f1b79476638a5615ed00ea6adbb269cec96fd8" + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/12f1b79476638a5615ed00ea6adbb269cec96fd8", - "reference": "12f1b79476638a5615ed00ea6adbb269cec96fd8", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/6c1925561632e83d60a44492e0b344cf48ab85ef", + "reference": "6c1925561632e83d60a44492e0b344cf48ab85ef", "shasum": "" }, "require": { - "composer/pcre": "^1", + "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" + "phpunit/phpunit": "^8.5 || ^9.6 || ^10.5" }, "type": "library", "autoload": { @@ -1033,9 +1131,9 @@ "performance" ], "support": { - "irc": "irc://irc.freenode.org/composer", + "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/3.0.1" + "source": "https://github.com/composer/xdebug-handler/tree/3.0.5" }, "funding": [ { @@ -1051,39 +1149,39 @@ "type": "tidelift" } ], - "time": "2022-01-04T18:29:42+00:00" + "time": "2024-05-06T16:37:16+00:00" }, { - "name": "doctrine/annotations", - "version": "1.13.2", + "name": "doctrine/instantiator", + "version": "1.5.0", "source": { "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08" + "url": "https://github.com/doctrine/instantiator.git", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/5b668aef16090008790395c02c893b1ba13f7e08", - "reference": "5b668aef16090008790395c02c893b1ba13f7e08", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/0a0fa9780f5d4e507415a065172d26a98d02047b", + "reference": "0a0fa9780f5d4e507415a065172d26a98d02047b", "shasum": "" }, "require": { - "doctrine/lexer": "1.*", - "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", - "psr/cache": "^1 || ^2 || ^3" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^6.0 || ^8.1", - "phpstan/phpstan": "^0.12.20", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.1.5", - "symfony/cache": "^4.4 || ^5.2" + "doctrine/coding-standard": "^9 || ^11", + "ext-pdo": "*", + "ext-phar": "*", + "phpbench/phpbench": "^0.16 || ^1", + "phpstan/phpstan": "^1.4", + "phpstan/phpstan-phpunit": "^1", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", + "vimeo/psalm": "^4.30 || ^5.4" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Annotations\\": "lib/Doctrine/Common/Annotations" + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1092,69 +1190,61 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "https://ocramius.github.io/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "keywords": [ + "constructor", + "instantiate" + ], + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.5.0" + }, + "funding": [ { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" }, { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com" + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" }, { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" } ], - "description": "Docblock Annotations Parser", - "homepage": "https://www.doctrine-project.org/projects/annotations.html", - "keywords": [ - "annotations", - "docblock", - "parser" - ], - "support": { - "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.13.2" - }, - "time": "2021-08-05T19:00:23+00:00" + "time": "2022-12-30T00:15:36+00:00" }, { - "name": "doctrine/instantiator", - "version": "1.4.0", + "name": "evenement/evenement", + "version": "v3.0.2", "source": { "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" + "url": "https://github.com/igorw/evenement.git", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", - "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", + "url": "https://api.github.com/repos/igorw/evenement/zipball/0a16b0d71ab13284339abb99d9d2bd813640efbc", + "reference": "0a16b0d71ab13284339abb99d9d2bd813640efbc", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": ">=7.0" }, "require-dev": { - "doctrine/coding-standard": "^8.0", - "ext-pdo": "*", - "ext-phar": "*", - "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", - "phpstan/phpstan": "^0.12", - "phpstan/phpstan-phpunit": "^0.12", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9 || ^6" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" + "Evenement\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1163,64 +1253,53 @@ ], "authors": [ { - "name": "Marco Pivetta", - "email": "ocramius@gmail.com", - "homepage": "https://ocramius.github.io/" + "name": "Igor Wiedler", + "email": "igor@wiedler.ch" } ], - "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://www.doctrine-project.org/projects/instantiator.html", + "description": "Événement is a very simple event dispatching library for PHP", "keywords": [ - "constructor", - "instantiate" + "event-dispatcher", + "event-emitter" ], "support": { - "issues": "https://github.com/doctrine/instantiator/issues", - "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + "issues": "https://github.com/igorw/evenement/issues", + "source": "https://github.com/igorw/evenement/tree/v3.0.2" }, - "funding": [ - { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", - "type": "tidelift" - } - ], - "time": "2020-11-10T18:47:58+00:00" + "time": "2023-08-08T05:53:35+00:00" }, { - "name": "doctrine/lexer", - "version": "1.2.2", + "name": "fidry/cpu-core-counter", + "version": "1.2.0", "source": { "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c" + "url": "https://github.com/theofidry/cpu-core-counter.git", + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", - "reference": "9c50f840f257bbb941e6f4a0e94ccf5db5c3f76c", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { - "php": "^7.1 || ^8.0" + "php": "^7.2 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "phpstan/phpstan": "1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "vimeo/psalm": "^4.11" + "fidry/makefile": "^0.2.0", + "fidry/php-cs-fixer-config": "^1.1.2", + "phpstan/extension-installer": "^1.2.0", + "phpstan/phpstan": "^1.9.2", + "phpstan/phpstan-deprecation-rules": "^1.0.0", + "phpstan/phpstan-phpunit": "^1.2.2", + "phpstan/phpstan-strict-rules": "^1.4.4", + "phpunit/phpunit": "^8.5.31 || ^9.5.26", + "webmozarts/strict-phpunit": "^7.5" }, "type": "library", "autoload": { "psr-4": { - "Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer" + "Fidry\\CpuCoreCounter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1229,95 +1308,80 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com" + "name": "Théo FIDRY", + "email": "theo.fidry@gmail.com" } ], - "description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.", - "homepage": "https://www.doctrine-project.org/projects/lexer.html", + "description": "Tiny utility to get the number of CPU cores.", "keywords": [ - "annotations", - "docblock", - "lexer", - "parser", - "php" + "CPU", + "core" ], "support": { - "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/1.2.2" + "issues": "https://github.com/theofidry/cpu-core-counter/issues", + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { - "url": "https://www.doctrine-project.org/sponsorship.html", - "type": "custom" - }, - { - "url": "https://www.patreon.com/phpdoctrine", - "type": "patreon" - }, - { - "url": "https://tidelift.com/funding/github/packagist/doctrine%2Flexer", - "type": "tidelift" + "url": "https://github.com/theofidry", + "type": "github" } ], - "time": "2022-01-12T08:27:12+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.6.0", + "version": "v3.64.0", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/PHP-CS-Fixer.git", - "reference": "1975e4453eb2726d1f50da0ce7fa91295029a4fa" + "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", + "reference": "58dd9c931c785a79739310aef5178928305ffa67" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/PHP-CS-Fixer/zipball/1975e4453eb2726d1f50da0ce7fa91295029a4fa", - "reference": "1975e4453eb2726d1f50da0ce7fa91295029a4fa", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/58dd9c931c785a79739310aef5178928305ffa67", + "reference": "58dd9c931c785a79739310aef5178928305ffa67", "shasum": "" }, "require": { - "composer/semver": "^3.2", - "composer/xdebug-handler": "^3.0", - "doctrine/annotations": "^1.13", + "clue/ndjson-react": "^1.0", + "composer/semver": "^3.4", + "composer/xdebug-handler": "^3.0.3", + "ext-filter": "*", "ext-json": "*", "ext-tokenizer": "*", + "fidry/cpu-core-counter": "^1.0", "php": "^7.4 || ^8.0", - "php-cs-fixer/diff": "^2.0", - "symfony/console": "^5.4 || ^6.0", - "symfony/event-dispatcher": "^5.4 || ^6.0", - "symfony/filesystem": "^5.4 || ^6.0", - "symfony/finder": "^5.4 || ^6.0", - "symfony/options-resolver": "^5.4 || ^6.0", - "symfony/polyfill-mbstring": "^1.23", - "symfony/polyfill-php80": "^1.23", - "symfony/polyfill-php81": "^1.23", - "symfony/process": "^5.4 || ^6.0", - "symfony/stopwatch": "^5.4 || ^6.0" + "react/child-process": "^0.6.5", + "react/event-loop": "^1.0", + "react/promise": "^2.0 || ^3.0", + "react/socket": "^1.0", + "react/stream": "^1.0", + "sebastian/diff": "^4.0 || ^5.0 || ^6.0", + "symfony/console": "^5.4 || ^6.0 || ^7.0", + "symfony/event-dispatcher": "^5.4 || ^6.0 || ^7.0", + "symfony/filesystem": "^5.4 || ^6.0 || ^7.0", + "symfony/finder": "^5.4 || ^6.0 || ^7.0", + "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0", + "symfony/polyfill-mbstring": "^1.28", + "symfony/polyfill-php80": "^1.28", + "symfony/polyfill-php81": "^1.28", + "symfony/process": "^5.4 || ^6.0 || ^7.0", + "symfony/stopwatch": "^5.4 || ^6.0 || ^7.0" }, "require-dev": { + "facile-it/paraunit": "^1.3 || ^2.3", + "infection/infection": "^0.29.5", "justinrainbow/json-schema": "^5.2", - "keradus/cli-executor": "^1.5", - "mikey179/vfsstream": "^1.6.10", - "php-coveralls/php-coveralls": "^2.5.2", + "keradus/cli-executor": "^2.1", + "mikey179/vfsstream": "^1.6.11", + "php-coveralls/php-coveralls": "^2.7", "php-cs-fixer/accessible-object": "^1.1", - "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.2", - "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.2.1", - "phpspec/prophecy": "^1.15", - "phpspec/prophecy-phpunit": "^2.0", - "phpunit/phpunit": "^9.5", - "phpunitgoodpractices/polyfill": "^1.5", - "phpunitgoodpractices/traits": "^1.9.1", - "symfony/phpunit-bridge": "^6.0", - "symfony/yaml": "^5.4 || ^6.0" + "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.5", + "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.5", + "phpunit/phpunit": "^9.6.19 || ^10.5.21 || ^11.2", + "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -1330,7 +1394,10 @@ "autoload": { "psr-4": { "PhpCsFixer\\": "src/" - } + }, + "exclude-from-classmap": [ + "src/Fixer/Internal/*" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1347,9 +1414,15 @@ } ], "description": "A tool to automatically fix PHP code style", + "keywords": [ + "Static code analysis", + "fixer", + "standards", + "static analysis" + ], "support": { - "issues": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/issues", - "source": "https://github.com/FriendsOfPHP/PHP-CS-Fixer/tree/v3.6.0" + "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.64.0" }, "funding": [ { @@ -1357,27 +1430,28 @@ "type": "github" } ], - "time": "2022-02-07T18:02:40+00:00" + "time": "2024-08-30T23:09:38+00:00" }, { "name": "mikey179/vfsstream", - "version": "v1.6.10", + "version": "v1.6.12", "source": { "type": "git", "url": "https://github.com/bovigo/vfsStream.git", - "reference": "250c0825537d501e327df879fb3d4cd751933b85" + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/250c0825537d501e327df879fb3d4cd751933b85", - "reference": "250c0825537d501e327df879fb3d4cd751933b85", + "url": "https://api.github.com/repos/bovigo/vfsStream/zipball/fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", + "reference": "fe695ec993e0a55c3abdda10a9364eb31c6f1bf0", "shasum": "" }, "require": { - "php": ">=5.3.0" + "php": ">=7.1.0" }, "require-dev": { - "phpunit/phpunit": "^4.5|^5.0" + "phpunit/phpunit": "^7.5||^8.5||^9.6", + "yoast/phpunit-polyfills": "^2.0" }, "type": "library", "extra": { @@ -1408,32 +1482,34 @@ "source": "https://github.com/bovigo/vfsStream/tree/master", "wiki": "https://github.com/bovigo/vfsStream/wiki" }, - "time": "2021-09-25T08:05:01+00:00" + "time": "2024-08-29T18:43:31+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.10.2", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", - "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", "shasum": "" }, "require": { "php": "^7.1 || ^8.0" }, - "replace": { - "myclabs/deep-copy": "self.version" + "conflict": { + "doctrine/collections": "<1.6.8", + "doctrine/common": "<2.13.3 || >=3 <3.2.2" }, "require-dev": { - "doctrine/collections": "^1.0", - "doctrine/common": "^2.6", - "phpunit/phpunit": "^7.1" + "doctrine/collections": "^1.6.8", + "doctrine/common": "^2.13.3 || ^3.2.2", + "phpspec/prophecy": "^1.10", + "phpunit/phpunit": "^7.5.20 || ^8.5.23 || ^9.5.13" }, "type": "library", "autoload": { @@ -1458,7 +1534,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" }, "funding": [ { @@ -1466,29 +1542,31 @@ "type": "tidelift" } ], - "time": "2020-11-13T09:40:50+00:00" + "time": "2024-06-12T14:39:25+00:00" }, { "name": "nikic/php-parser", - "version": "v4.13.2", + "version": "v5.3.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077" + "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/210577fe3cf7badcc5814d99455df46564f3c077", - "reference": "210577fe3cf7badcc5814d99455df46564f3c077", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/3abf7425cd284141dc5d8d14a9ee444de3345d1a", + "reference": "3abf7425cd284141dc5d8d14a9ee444de3345d1a", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.0" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -1496,7 +1574,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -1520,26 +1598,27 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.13.2" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.3.0" }, - "time": "2021-11-30T19:35:32+00:00" + "time": "2024-09-29T13:56:26+00:00" }, { "name": "phar-io/manifest", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53" + "reference": "54750ef60c58e43759730615a392c31c80e23176" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/97803eca37d319dfa7826cc2437fc020857acb53", - "reference": "97803eca37d319dfa7826cc2437fc020857acb53", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/54750ef60c58e43759730615a392c31c80e23176", + "reference": "54750ef60c58e43759730615a392c31c80e23176", "shasum": "" }, "require": { "ext-dom": "*", + "ext-libxml": "*", "ext-phar": "*", "ext-xmlwriter": "*", "phar-io/version": "^3.0.1", @@ -1580,9 +1659,15 @@ "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" + "source": "https://github.com/phar-io/manifest/tree/2.0.4" }, - "time": "2021-07-20T11:28:43+00:00" + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2024-03-03T12:33:53+00:00" }, { "name": "phar-io/version", @@ -1637,16 +1722,16 @@ }, { "name": "phing/phing", - "version": "2.17.2", + "version": "2.17.4", "source": { "type": "git", "url": "https://github.com/phingofficial/phing.git", - "reference": "8b8cee3eb12c24502fc4c227ac5889746248a140" + "reference": "9f3bc8c72e65452686dcf64497e02a082f138908" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phingofficial/phing/zipball/8b8cee3eb12c24502fc4c227ac5889746248a140", - "reference": "8b8cee3eb12c24502fc4c227ac5889746248a140", + "url": "https://api.github.com/repos/phingofficial/phing/zipball/9f3bc8c72e65452686dcf64497e02a082f138908", + "reference": "9f3bc8c72e65452686dcf64497e02a082f138908", "shasum": "" }, "require": { @@ -1729,7 +1814,7 @@ "support": { "irc": "irc://irc.freenode.net/phing", "issues": "https://www.phing.info/trac/report", - "source": "https://github.com/phingofficial/phing/tree/2.17.2" + "source": "https://github.com/phingofficial/phing/tree/2.17.4" }, "funding": [ { @@ -1745,327 +1830,48 @@ "type": "patreon" } ], - "time": "2022-02-09T09:50:58+00:00" + "time": "2022-07-08T09:07:07+00:00" }, { - "name": "php-cs-fixer/diff", - "version": "v2.0.2", + "name": "phpunit/php-code-coverage", + "version": "9.2.32", "source": { "type": "git", - "url": "https://github.com/PHP-CS-Fixer/diff.git", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3" + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/diff/zipball/29dc0d507e838c4580d018bd8b5cb412474f7ec3", - "reference": "29dc0d507e838c4580d018bd8b5cb412474f7ec3", - "shasum": "" - }, - "require": { - "php": "^5.6 || ^7.0 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.7.23 || ^6.4.3 || ^7.0", - "symfony/process": "^3.3" - }, - "type": "library", - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" - }, - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - } - ], - "description": "sebastian/diff v3 backport support for PHP 5.6+", - "homepage": "https://github.com/PHP-CS-Fixer", - "keywords": [ - "diff" - ], - "support": { - "issues": "https://github.com/PHP-CS-Fixer/diff/issues", - "source": "https://github.com/PHP-CS-Fixer/diff/tree/v2.0.2" - }, - "time": "2020-10-14T08:32:19+00:00" - }, - { - "name": "phpdocumentor/reflection-common", - "version": "2.2.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-2.x": "2.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" - } - ], - "description": "Common reflection classes used by phpdocumentor to reflect the code structure", - "homepage": "http://www.phpdoc.org", - "keywords": [ - "FQSEN", - "phpDocumentor", - "phpdoc", - "reflection", - "static analysis" - ], - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", - "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" - }, - "time": "2020-06-27T09:03:43+00:00" - }, - { - "name": "phpdocumentor/reflection-docblock", - "version": "5.3.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", - "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", - "shasum": "" - }, - "require": { - "ext-filter": "*", - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.3", - "webmozart/assert": "^1.9.1" - }, - "require-dev": { - "mockery/mockery": "~1.3.2", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - }, - { - "name": "Jaap van Otterdijk", - "email": "account@ijaap.nl" - } - ], - "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "support": { - "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" - }, - "time": "2021-10-19T17:43:47+00:00" - }, - { - "name": "phpdocumentor/type-resolver", - "version": "1.6.0", - "source": { - "type": "git", - "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "reference": "93ebd0014cab80c4ea9f5e297ea48672f1b87706", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "phpdocumentor/reflection-common": "^2.0" - }, - "require-dev": { - "ext-tokenizer": "*", - "psalm/phar": "^4.8" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-1.x": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "phpDocumentor\\Reflection\\": "src" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mike van Riel", - "email": "me@mikevanriel.com" - } - ], - "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "support": { - "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.6.0" - }, - "time": "2022-01-04T19:58:01+00:00" - }, - { - "name": "phpspec/prophecy", - "version": "v1.15.0", - "source": { - "type": "git", - "url": "https://github.com/phpspec/prophecy.git", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "reference": "bbcd7380b0ebf3961ee21409db7b38bc31d69a13", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.2", - "php": "^7.2 || ~8.0, <8.2", - "phpdocumentor/reflection-docblock": "^5.2", - "sebastian/comparator": "^3.0 || ^4.0", - "sebastian/recursion-context": "^3.0 || ^4.0" - }, - "require-dev": { - "phpspec/phpspec": "^6.0 || ^7.0", - "phpunit/phpunit": "^8.0 || ^9.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Prophecy\\": "src/Prophecy" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" - }, - { - "name": "Marcello Duarte", - "email": "marcello.duarte@gmail.com" - } - ], - "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "https://github.com/phpspec/prophecy", - "keywords": [ - "Double", - "Dummy", - "fake", - "mock", - "spy", - "stub" - ], - "support": { - "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.15.0" - }, - "time": "2021-12-08T12:19:24+00:00" - }, - { - "name": "phpunit/php-code-coverage", - "version": "9.2.12", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631", - "reference": "c011a0b6aaa4acd2f39b7f51fb4ad4442b6ec631", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/85402a822d1ecf1db1096959413d35e1c37cf1a5", + "reference": "85402a822d1ecf1db1096959413d35e1c37cf1a5", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.13.0", + "nikic/php-parser": "^4.19.1 || ^5.1.0", "php": ">=7.3", - "phpunit/php-file-iterator": "^3.0.3", - "phpunit/php-text-template": "^2.0.2", - "sebastian/code-unit-reverse-lookup": "^2.0.2", - "sebastian/complexity": "^2.0", - "sebastian/environment": "^5.1.2", - "sebastian/lines-of-code": "^1.0.3", - "sebastian/version": "^3.0.1", - "theseer/tokenizer": "^1.2.0" + "phpunit/php-file-iterator": "^3.0.6", + "phpunit/php-text-template": "^2.0.4", + "sebastian/code-unit-reverse-lookup": "^2.0.3", + "sebastian/complexity": "^2.0.3", + "sebastian/environment": "^5.1.5", + "sebastian/lines-of-code": "^1.0.4", + "sebastian/version": "^3.0.2", + "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.6" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "9.2-dev" + "dev-main": "9.2.x-dev" } }, "autoload": { @@ -2093,7 +1899,8 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.12" + "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.32" }, "funding": [ { @@ -2101,7 +1908,7 @@ "type": "github" } ], - "time": "2022-02-23T06:30:26+00:00" + "time": "2024-08-22T04:23:01+00:00" }, { "name": "phpunit/php-file-iterator", @@ -2346,55 +2153,50 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.15", + "version": "9.6.21", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "dc738383c519243b0a967f63943a848d3fd861aa" + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/dc738383c519243b0a967f63943a848d3fd861aa", - "reference": "dc738383c519243b0a967f63943a848d3fd861aa", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", + "reference": "de6abf3b6f8dd955fac3caad3af7a9504e8c2ffa", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.3.1", + "doctrine/instantiator": "^1.5.0 || ^2", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.10.1", - "phar-io/manifest": "^2.0.3", - "phar-io/version": "^3.0.2", + "myclabs/deep-copy": "^1.12.0", + "phar-io/manifest": "^2.0.4", + "phar-io/version": "^3.2.1", "php": ">=7.3", - "phpspec/prophecy": "^1.12.1", - "phpunit/php-code-coverage": "^9.2.12", - "phpunit/php-file-iterator": "^3.0.5", + "phpunit/php-code-coverage": "^9.2.32", + "phpunit/php-file-iterator": "^3.0.6", "phpunit/php-invoker": "^3.1.1", - "phpunit/php-text-template": "^2.0.3", - "phpunit/php-timer": "^5.0.2", - "sebastian/cli-parser": "^1.0.1", - "sebastian/code-unit": "^1.0.6", - "sebastian/comparator": "^4.0.5", - "sebastian/diff": "^4.0.3", - "sebastian/environment": "^5.1.3", - "sebastian/exporter": "^4.0.3", - "sebastian/global-state": "^5.0.1", - "sebastian/object-enumerator": "^4.0.3", - "sebastian/resource-operations": "^3.0.3", - "sebastian/type": "^2.3.4", + "phpunit/php-text-template": "^2.0.4", + "phpunit/php-timer": "^5.0.3", + "sebastian/cli-parser": "^1.0.2", + "sebastian/code-unit": "^1.0.8", + "sebastian/comparator": "^4.0.8", + "sebastian/diff": "^4.0.6", + "sebastian/environment": "^5.1.5", + "sebastian/exporter": "^4.0.6", + "sebastian/global-state": "^5.0.7", + "sebastian/object-enumerator": "^4.0.4", + "sebastian/resource-operations": "^3.0.4", + "sebastian/type": "^3.2.1", "sebastian/version": "^3.0.2" }, - "require-dev": { - "ext-pdo": "*", - "phpspec/prophecy-phpunit": "^2.0.1" - }, "suggest": { - "ext-soap": "*", - "ext-xdebug": "*" + "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" @@ -2402,77 +2204,408 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "9.5-dev" + "dev-master": "9.6-dev" + } + }, + "autoload": { + "files": [ + "src/Framework/Assert/Functions.php" + ], + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "https://phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "security": "https://github.com/sebastianbergmann/phpunit/security/policy", + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.6.21" + }, + "funding": [ + { + "url": "https://phpunit.de/sponsors.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", + "type": "tidelift" } + ], + "time": "2024-09-19T10:50:18+00:00" + }, + { + "name": "psr/container", + "version": "1.1.2", + "source": { + "type": "git", + "url": "https://github.com/php-fig/container.git", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", + "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Psr\\Container\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common Container Interface (PHP FIG PSR-11)", + "homepage": "https://github.com/php-fig/container", + "keywords": [ + "PSR-11", + "container", + "container-interface", + "container-interop", + "psr" + ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/1.1.2" + }, + "time": "2021-11-05T16:50:12+00:00" + }, + { + "name": "psr/event-dispatcher", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/event-dispatcher.git", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", + "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "shasum": "" + }, + "require": { + "php": ">=7.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\EventDispatcher\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Standard interfaces for event handling.", + "keywords": [ + "events", + "psr", + "psr-14" + ], + "support": { + "issues": "https://github.com/php-fig/event-dispatcher/issues", + "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + }, + "time": "2019-01-08T18:20:26+00:00" + }, + { + "name": "react/cache", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/cache.git", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/cache/zipball/d47c472b64aa5608225f47965a484b75c7817d5b", + "reference": "d47c472b64aa5608225f47965a484b75c7817d5b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/promise": "^3.0 || ^2.0 || ^1.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Async, Promise-based cache interface for ReactPHP", + "keywords": [ + "cache", + "caching", + "promise", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/cache/issues", + "source": "https://github.com/reactphp/cache/tree/v1.2.0" + }, + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2022-11-30T15:59:55+00:00" + }, + { + "name": "react/child-process", + "version": "v0.6.5", + "source": { + "type": "git", + "url": "https://github.com/reactphp/child-process.git", + "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/child-process/zipball/e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", + "reference": "e71eb1aa55f057c7a4a0d08d06b0b0a484bead43", + "shasum": "" + }, + "require": { + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/event-loop": "^1.2", + "react/stream": "^1.2" + }, + "require-dev": { + "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.35", + "react/socket": "^1.8", + "sebastian/environment": "^5.0 || ^3.0 || ^2.0 || ^1.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "React\\ChildProcess\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" + } + ], + "description": "Event-driven library for executing child processes with ReactPHP.", + "keywords": [ + "event-driven", + "process", + "reactphp" + ], + "support": { + "issues": "https://github.com/reactphp/child-process/issues", + "source": "https://github.com/reactphp/child-process/tree/v0.6.5" + }, + "funding": [ + { + "url": "https://github.com/WyriHaximus", + "type": "github" + }, + { + "url": "https://github.com/clue", + "type": "github" + } + ], + "time": "2022-09-16T13:41:56+00:00" + }, + { + "name": "react/dns", + "version": "v1.13.0", + "source": { + "type": "git", + "url": "https://github.com/reactphp/dns.git", + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/reactphp/dns/zipball/eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "reference": "eb8ae001b5a455665c89c1df97f6fb682f8fb0f5", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "react/cache": "^1.0 || ^0.6 || ^0.5", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.7 || ^1.2.1" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3 || ^2", + "react/promise-timer": "^1.11" }, + "type": "library", "autoload": { - "files": [ - "src/Framework/Assert/Functions.php" - ], - "classmap": [ - "src/" - ] + "psr-4": { + "React\\Dns\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "The PHP Unit Testing framework.", - "homepage": "https://phpunit.de/", + "description": "Async DNS resolver for ReactPHP", "keywords": [ - "phpunit", - "testing", - "xunit" + "async", + "dns", + "dns-resolver", + "reactphp" ], "support": { - "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.15" + "issues": "https://github.com/reactphp/dns/issues", + "source": "https://github.com/reactphp/dns/tree/v1.13.0" }, "funding": [ { - "url": "https://phpunit.de/sponsors.html", - "type": "custom" - }, - { - "url": "https://github.com/sebastianbergmann", - "type": "github" + "url": "https://opencollective.com/reactphp", + "type": "open_collective" } ], - "time": "2022-02-23T08:53:20+00:00" + "time": "2024-06-13T14:18:03+00:00" }, { - "name": "psr/cache", - "version": "1.0.1", + "name": "react/event-loop", + "version": "v1.5.0", "source": { "type": "git", - "url": "https://github.com/php-fig/cache.git", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8" + "url": "https://github.com/reactphp/event-loop.git", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8", - "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8", + "url": "https://api.github.com/repos/reactphp/event-loop/zipball/bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", + "reference": "bbe0bd8c51ffc05ee43f1729087ed3bdf7d53354", "shasum": "" }, "require": { "php": ">=5.3.0" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" + }, + "suggest": { + "ext-pcntl": "For signal handling support when using the StreamSelectLoop" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\Cache\\": "src/" + "React\\EventLoop\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2481,42 +2614,75 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Common interface for caching libraries", + "description": "ReactPHP's core reactor event loop that libraries can use for evented I/O.", "keywords": [ - "cache", - "psr", - "psr-6" + "asynchronous", + "event-loop" ], "support": { - "source": "https://github.com/php-fig/cache/tree/master" + "issues": "https://github.com/reactphp/event-loop/issues", + "source": "https://github.com/reactphp/event-loop/tree/v1.5.0" }, - "time": "2016-08-06T20:24:11+00:00" + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2023-11-13T13:48:05+00:00" }, { - "name": "psr/container", - "version": "1.1.2", + "name": "react/socket", + "version": "v1.16.0", "source": { "type": "git", - "url": "https://github.com/php-fig/container.git", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea" + "url": "https://github.com/reactphp/socket.git", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/container/zipball/513e0666f7216c7459170d56df27dfcefe1689ea", - "reference": "513e0666f7216c7459170d56df27dfcefe1689ea", + "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", "shasum": "" }, "require": { - "php": ">=7.4.0" + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.0", + "react/dns": "^1.13", + "react/event-loop": "^1.2", + "react/promise": "^3.2 || ^2.6 || ^1.2.1", + "react/stream": "^1.4" + }, + "require-dev": { + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36", + "react/async": "^4.3 || ^3.3 || ^2", + "react/promise-stream": "^1.4", + "react/promise-timer": "^1.11" }, "type": "library", "autoload": { "psr-4": { - "Psr\\Container\\": "src/" + "React\\Socket\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2525,51 +2691,73 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Common Container Interface (PHP FIG PSR-11)", - "homepage": "https://github.com/php-fig/container", + "description": "Async, streaming plaintext TCP/IP and secure TLS socket server and client connections for ReactPHP", "keywords": [ - "PSR-11", - "container", - "container-interface", - "container-interop", - "psr" + "Connection", + "Socket", + "async", + "reactphp", + "stream" ], "support": { - "issues": "https://github.com/php-fig/container/issues", - "source": "https://github.com/php-fig/container/tree/1.1.2" + "issues": "https://github.com/reactphp/socket/issues", + "source": "https://github.com/reactphp/socket/tree/v1.16.0" }, - "time": "2021-11-05T16:50:12+00:00" + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-07-26T10:38:09+00:00" }, { - "name": "psr/event-dispatcher", - "version": "1.0.0", + "name": "react/stream", + "version": "v1.4.0", "source": { "type": "git", - "url": "https://github.com/php-fig/event-dispatcher.git", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0" + "url": "https://github.com/reactphp/stream.git", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0", - "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0", + "url": "https://api.github.com/repos/reactphp/stream/zipball/1e5b0acb8fe55143b5b426817155190eb6f5b18d", + "reference": "1e5b0acb8fe55143b5b426817155190eb6f5b18d", "shasum": "" }, "require": { - "php": ">=7.2.0" + "evenement/evenement": "^3.0 || ^2.0 || ^1.0", + "php": ">=5.3.8", + "react/event-loop": "^1.2" }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } + "require-dev": { + "clue/stream-filter": "~1.2", + "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36" }, + "type": "library", "autoload": { "psr-4": { - "Psr\\EventDispatcher\\": "src/" + "React\\Stream\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -2578,34 +2766,61 @@ ], "authors": [ { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" + "name": "Christian Lück", + "email": "christian@clue.engineering", + "homepage": "https://clue.engineering/" + }, + { + "name": "Cees-Jan Kiewiet", + "email": "reactphp@ceesjankiewiet.nl", + "homepage": "https://wyrihaximus.net/" + }, + { + "name": "Jan Sorgalla", + "email": "jsorgalla@gmail.com", + "homepage": "https://sorgalla.com/" + }, + { + "name": "Chris Boden", + "email": "cboden@gmail.com", + "homepage": "https://cboden.dev/" } ], - "description": "Standard interfaces for event handling.", + "description": "Event-driven readable and writable streams for non-blocking I/O in ReactPHP", "keywords": [ - "events", - "psr", - "psr-14" + "event-driven", + "io", + "non-blocking", + "pipe", + "reactphp", + "readable", + "stream", + "writable" ], "support": { - "issues": "https://github.com/php-fig/event-dispatcher/issues", - "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0" + "issues": "https://github.com/reactphp/stream/issues", + "source": "https://github.com/reactphp/stream/tree/v1.4.0" }, - "time": "2019-01-08T18:20:26+00:00" + "funding": [ + { + "url": "https://opencollective.com/reactphp", + "type": "open_collective" + } + ], + "time": "2024-06-11T12:45:25+00:00" }, { "name": "sebastian/cli-parser", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2" + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/442e7c7e687e42adc03470c7b668bc4b2402c0b2", - "reference": "442e7c7e687e42adc03470c7b668bc4b2402c0b2", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/2b56bea83a09de3ac06bb18b92f068e60cc6f50b", + "reference": "2b56bea83a09de3ac06bb18b92f068e60cc6f50b", "shasum": "" }, "require": { @@ -2640,7 +2855,7 @@ "homepage": "https://github.com/sebastianbergmann/cli-parser", "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.1" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/1.0.2" }, "funding": [ { @@ -2648,7 +2863,7 @@ "type": "github" } ], - "time": "2020-09-28T06:08:49+00:00" + "time": "2024-03-02T06:27:43+00:00" }, { "name": "sebastian/code-unit", @@ -2763,16 +2978,16 @@ }, { "name": "sebastian/comparator", - "version": "4.0.6", + "version": "4.0.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382" + "reference": "fa0f136dd2334583309d32b62544682ee972b51a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/55f4261989e546dc112258c7a75935a81a7ce382", - "reference": "55f4261989e546dc112258c7a75935a81a7ce382", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/fa0f136dd2334583309d32b62544682ee972b51a", + "reference": "fa0f136dd2334583309d32b62544682ee972b51a", "shasum": "" }, "require": { @@ -2825,7 +3040,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/comparator/issues", - "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.6" + "source": "https://github.com/sebastianbergmann/comparator/tree/4.0.8" }, "funding": [ { @@ -2833,24 +3048,24 @@ "type": "github" } ], - "time": "2020-10-26T15:49:45+00:00" + "time": "2022-09-14T12:41:17+00:00" }, { "name": "sebastian/complexity", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/complexity.git", - "reference": "739b35e53379900cc9ac327b2147867b8b6efd88" + "reference": "25f207c40d62b8b7aa32f5ab026c53561964053a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/739b35e53379900cc9ac327b2147867b8b6efd88", - "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": { @@ -2882,7 +3097,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": [ { @@ -2890,20 +3105,20 @@ "type": "github" } ], - "time": "2020-10-26T15:52:27+00:00" + "time": "2023-12-22T06:19:30+00:00" }, { "name": "sebastian/diff", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d" + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/3461e3fccc7cfdfc2720be910d3bd73c69be590d", - "reference": "3461e3fccc7cfdfc2720be910d3bd73c69be590d", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/ba01945089c3a293b01ba9badc29ad55b106b0bc", + "reference": "ba01945089c3a293b01ba9badc29ad55b106b0bc", "shasum": "" }, "require": { @@ -2948,7 +3163,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/diff/issues", - "source": "https://github.com/sebastianbergmann/diff/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/diff/tree/4.0.6" }, "funding": [ { @@ -2956,20 +3171,20 @@ "type": "github" } ], - "time": "2020-10-26T13:10:38+00:00" + "time": "2024-03-02T06:30:58+00:00" }, { "name": "sebastian/environment", - "version": "5.1.3", + "version": "5.1.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac" + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/388b6ced16caa751030f6a69e588299fa09200ac", - "reference": "388b6ced16caa751030f6a69e588299fa09200ac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", + "reference": "830c43a844f1f8d5b7a1f6d6076b784454d8b7ed", "shasum": "" }, "require": { @@ -3011,7 +3226,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", - "source": "https://github.com/sebastianbergmann/environment/tree/5.1.3" + "source": "https://github.com/sebastianbergmann/environment/tree/5.1.5" }, "funding": [ { @@ -3019,20 +3234,20 @@ "type": "github" } ], - "time": "2020-09-28T05:52:38+00:00" + "time": "2023-02-03T06:03:51+00:00" }, { "name": "sebastian/exporter", - "version": "4.0.4", + "version": "4.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9" + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/65e8b7db476c5dd267e65eea9cab77584d3cfff9", - "reference": "65e8b7db476c5dd267e65eea9cab77584d3cfff9", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/78c00df8f170e02473b682df15bfcdacc3d32d72", + "reference": "78c00df8f170e02473b682df15bfcdacc3d32d72", "shasum": "" }, "require": { @@ -3088,7 +3303,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", - "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/exporter/tree/4.0.6" }, "funding": [ { @@ -3096,20 +3311,20 @@ "type": "github" } ], - "time": "2021-11-11T14:18:36+00:00" + "time": "2024-03-02T06:33:00+00:00" }, { "name": "sebastian/global-state", - "version": "5.0.5", + "version": "5.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2" + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/0ca8db5a5fc9c8646244e629625ac486fa286bf2", - "reference": "0ca8db5a5fc9c8646244e629625ac486fa286bf2", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", + "reference": "bca7df1f32ee6fe93b4d4a9abbf69e13a4ada2c9", "shasum": "" }, "require": { @@ -3152,7 +3367,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", - "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.5" + "source": "https://github.com/sebastianbergmann/global-state/tree/5.0.7" }, "funding": [ { @@ -3160,24 +3375,24 @@ "type": "github" } ], - "time": "2022-02-14T08:28:10+00:00" + "time": "2024-03-02T06:35:11+00:00" }, { "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": "c1c2e997aa3146983ed888ad08b15470a2e22ecc" + "reference": "e1e4a170560925c26d424b6a03aed157e7dcc5c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/c1c2e997aa3146983ed888ad08b15470a2e22ecc", - "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": { @@ -3209,7 +3424,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": [ { @@ -3217,7 +3432,7 @@ "type": "github" } ], - "time": "2020-11-28T06:42:11+00:00" + "time": "2023-12-22T06:20:34+00:00" }, { "name": "sebastian/object-enumerator", @@ -3333,16 +3548,16 @@ }, { "name": "sebastian/recursion-context", - "version": "4.0.4", + "version": "4.0.5", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172" + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/cd9d8cf3c5804de4341c283ed787f099f5506172", - "reference": "cd9d8cf3c5804de4341c283ed787f099f5506172", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", + "reference": "e75bd0f07204fec2a0af9b0f3cfe97d05f92efc1", "shasum": "" }, "require": { @@ -3381,10 +3596,10 @@ } ], "description": "Provides functionality to recursively process PHP variables", - "homepage": "http://www.github.com/sebastianbergmann/recursion-context", + "homepage": "https://github.com/sebastianbergmann/recursion-context", "support": { "issues": "https://github.com/sebastianbergmann/recursion-context/issues", - "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.4" + "source": "https://github.com/sebastianbergmann/recursion-context/tree/4.0.5" }, "funding": [ { @@ -3392,20 +3607,20 @@ "type": "github" } ], - "time": "2020-10-26T13:17:30+00:00" + "time": "2023-02-03T06:07:39+00:00" }, { "name": "sebastian/resource-operations", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8" + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", - "reference": "0f4443cb3a1d92ce809899753bc0d5d5a8dd19a8", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/05d5692a7993ecccd56a03e40cd7e5b09b1d404e", + "reference": "05d5692a7993ecccd56a03e40cd7e5b09b1d404e", "shasum": "" }, "require": { @@ -3417,7 +3632,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.0-dev" + "dev-main": "3.0-dev" } }, "autoload": { @@ -3438,8 +3653,7 @@ "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", "support": { - "issues": "https://github.com/sebastianbergmann/resource-operations/issues", - "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.3" + "source": "https://github.com/sebastianbergmann/resource-operations/tree/3.0.4" }, "funding": [ { @@ -3447,32 +3661,32 @@ "type": "github" } ], - "time": "2020-09-28T06:45:17+00:00" + "time": "2024-03-14T16:00:52+00:00" }, { "name": "sebastian/type", - "version": "2.3.4", + "version": "3.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914" + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/b8cd8a1c753c90bc1a0f5372170e3e489136f914", - "reference": "b8cd8a1c753c90bc1a0f5372170e3e489136f914", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", + "reference": "75e2c2a32f5e0b3aef905b9ed0b179b953b3d7c7", "shasum": "" }, "require": { "php": ">=7.3" }, "require-dev": { - "phpunit/phpunit": "^9.3" + "phpunit/phpunit": "^9.5" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev" + "dev-master": "3.2-dev" } }, "autoload": { @@ -3495,7 +3709,7 @@ "homepage": "https://github.com/sebastianbergmann/type", "support": { "issues": "https://github.com/sebastianbergmann/type/issues", - "source": "https://github.com/sebastianbergmann/type/tree/2.3.4" + "source": "https://github.com/sebastianbergmann/type/tree/3.2.1" }, "funding": [ { @@ -3503,7 +3717,7 @@ "type": "github" } ], - "time": "2021-06-15T12:49:02+00:00" + "time": "2023-02-03T06:13:03+00:00" }, { "name": "sebastian/version", @@ -3560,16 +3774,16 @@ }, { "name": "symfony/console", - "version": "v5.4.3", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8" + "reference": "5b5a0aa66e3296e303e22490f90f521551835a83" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/a2a86ec353d825c75856c6fd14fac416a7bdb6b8", - "reference": "a2a86ec353d825c75856c6fd14fac416a7bdb6b8", + "url": "https://api.github.com/repos/symfony/console/zipball/5b5a0aa66e3296e303e22490f90f521551835a83", + "reference": "5b5a0aa66e3296e303e22490f90f521551835a83", "shasum": "" }, "require": { @@ -3634,12 +3848,12 @@ "homepage": "https://symfony.com", "keywords": [ "cli", - "command line", + "command-line", "console", "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.4.3" + "source": "https://github.com/symfony/console/tree/v5.4.44" }, "funding": [ { @@ -3655,20 +3869,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2024-09-20T07:56:40+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v2.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8" + "reference": "80d075412b557d41002320b96a096ca65aa2c98d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/6f981ee24cf69ee7ce9736146d1c57c2780598a8", - "reference": "6f981ee24cf69ee7ce9736146d1c57c2780598a8", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", + "reference": "80d075412b557d41002320b96a096ca65aa2c98d", "shasum": "" }, "require": { @@ -3706,7 +3920,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" }, "funding": [ { @@ -3722,20 +3936,20 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2023-01-24T14:02:46+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.4.3", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d" + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/dec8a9f58d20df252b9cd89f1c6c1530f747685d", - "reference": "dec8a9f58d20df252b9cd89f1c6c1530f747685d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a54e2a8a114065f31020d6a89ede83e34c3b27a4", + "reference": "a54e2a8a114065f31020d6a89ede83e34c3b27a4", "shasum": "" }, "require": { @@ -3791,7 +4005,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.40" }, "funding": [ { @@ -3807,20 +4021,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/event-dispatcher-contracts", - "version": "v2.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher-contracts.git", - "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a" + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", - "reference": "66bea3b09be61613cd3b4043a65a8ec48cfa6d2a", + "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/540f4c73e87fd0c71ca44a6aa305d024ac68cb73", + "reference": "540f4c73e87fd0c71ca44a6aa305d024ac68cb73", "shasum": "" }, "require": { @@ -3870,7 +4084,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.3" }, "funding": [ { @@ -3886,20 +4100,20 @@ "type": "tidelift" } ], - "time": "2021-07-12T14:48:14+00:00" + "time": "2024-01-23T13:51:25+00:00" }, { "name": "symfony/filesystem", - "version": "v5.4.3", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b" + "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/0f0c4bf1840420f4aef3f32044a9dbb24682731b", - "reference": "0f0c4bf1840420f4aef3f32044a9dbb24682731b", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/76c3818964e9d32be3862c9318ae3ba9aa280ddc", + "reference": "76c3818964e9d32be3862c9318ae3ba9aa280ddc", "shasum": "" }, "require": { @@ -3908,6 +4122,9 @@ "symfony/polyfill-mbstring": "~1.8", "symfony/polyfill-php80": "^1.16" }, + "require-dev": { + "symfony/process": "^5.4|^6.4" + }, "type": "library", "autoload": { "psr-4": { @@ -3934,7 +4151,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.4.3" + "source": "https://github.com/symfony/filesystem/tree/v5.4.44" }, "funding": [ { @@ -3950,20 +4167,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-09-16T14:52:48+00:00" }, { "name": "symfony/finder", - "version": "v5.4.3", + "version": "v5.4.43", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d" + "reference": "ae25a9145a900764158d439653d5630191155ca0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/231313534dded84c7ecaa79d14bc5da4ccb69b7d", - "reference": "231313534dded84c7ecaa79d14bc5da4ccb69b7d", + "url": "https://api.github.com/repos/symfony/finder/zipball/ae25a9145a900764158d439653d5630191155ca0", + "reference": "ae25a9145a900764158d439653d5630191155ca0", "shasum": "" }, "require": { @@ -3997,7 +4214,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.4.3" + "source": "https://github.com/symfony/finder/tree/v5.4.43" }, "funding": [ { @@ -4013,20 +4230,20 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:34:36+00:00" + "time": "2024-08-13T14:03:51+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.4.3", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8" + "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/cc1147cb11af1b43f503ac18f31aa3bec213aba8", - "reference": "cc1147cb11af1b43f503ac18f31aa3bec213aba8", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/bd1afbde6613a8d6b956115e0e14b196191fd0c4", + "reference": "bd1afbde6613a8d6b956115e0e14b196191fd0c4", "shasum": "" }, "require": { @@ -4066,7 +4283,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.4.3" + "source": "https://github.com/symfony/options-resolver/tree/v5.4.40" }, "funding": [ { @@ -4082,24 +4299,24 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "30885182c981ab175d4d034db0f6f469898070ab" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/30885182c981ab175d4d034db0f6f469898070ab", - "reference": "30885182c981ab175d4d034db0f6f469898070ab", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -4109,21 +4326,18 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" } }, "autoload": { - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - }, "files": [ "bootstrap.php" - ] + ], + "psr-4": { + "Symfony\\Polyfill\\Ctype\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -4148,7 +4362,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -4164,33 +4378,30 @@ "type": "tidelift" } ], - "time": "2021-10-20T20:35:02+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/81b86b50cf841a64252b439e738e97f4a34e2783", - "reference": "81b86b50cf841a64252b439e738e97f4a34e2783", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4229,7 +4440,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -4245,33 +4456,30 @@ "type": "tidelift" } ], - "time": "2021-11-23T21:10:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/8590a5f561694770bdcd3f9b5c69dde6945028e8", - "reference": "8590a5f561694770bdcd3f9b5c69dde6945028e8", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4313,7 +4521,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -4329,24 +4537,24 @@ "type": "tidelift" } ], - "time": "2021-02-19T12:13:01+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/0abb51d2f102e00a4eefcf46ba7fec406d245825", - "reference": "0abb51d2f102e00a4eefcf46ba7fec406d245825", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -4356,9 +4564,6 @@ }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4396,7 +4601,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -4412,30 +4617,27 @@ "type": "tidelift" } ], - "time": "2021-11-30T18:21:41+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5" + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/cc5db0e22b3cb4111010e48785a97f670b350ca5", - "reference": "cc5db0e22b3cb4111010e48785a97f670b350ca5", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb", + "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4475,7 +4677,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0" }, "funding": [ { @@ -4491,30 +4693,27 @@ "type": "tidelift" } ], - "time": "2021-06-05T21:20:04+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9" + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/57b712b08eddb97c762a8caa32c84e037892d2e9", - "reference": "57b712b08eddb97c762a8caa32c84e037892d2e9", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4558,7 +4757,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" }, "funding": [ { @@ -4574,30 +4773,27 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:33+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.24.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", - "reference": "5de4ba2d41b15f9bd0e19b2ab9674135813ec98f", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { - "branch-alias": { - "dev-main": "1.23-dev" - }, "thanks": { "name": "symfony/polyfill", "url": "https://github.com/symfony/polyfill" @@ -4637,7 +4833,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.24.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -4653,20 +4849,20 @@ "type": "tidelift" } ], - "time": "2021-09-13T13:58:11+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/process", - "version": "v5.4.3", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "553f50487389a977eb31cf6b37faae56da00f753" + "reference": "1b9fa82b5c62cd49da8c9e3952dd8531ada65096" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/553f50487389a977eb31cf6b37faae56da00f753", - "reference": "553f50487389a977eb31cf6b37faae56da00f753", + "url": "https://api.github.com/repos/symfony/process/zipball/1b9fa82b5c62cd49da8c9e3952dd8531ada65096", + "reference": "1b9fa82b5c62cd49da8c9e3952dd8531ada65096", "shasum": "" }, "require": { @@ -4699,7 +4895,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.4.3" + "source": "https://github.com/symfony/process/tree/v5.4.44" }, "funding": [ { @@ -4715,26 +4911,26 @@ "type": "tidelift" } ], - "time": "2022-01-26T16:28:35+00:00" + "time": "2024-09-17T12:46:43+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.5.0", + "version": "v2.5.3", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc" + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", - "reference": "1ab11b933cd6bc5464b08e81e2c5b07dec58b0fc", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a2329596ddc8fd568900e3fc76cba42489ecc7f3", + "reference": "a2329596ddc8fd568900e3fc76cba42489ecc7f3", "shasum": "" }, "require": { "php": ">=7.2.5", "psr/container": "^1.1", - "symfony/deprecation-contracts": "^2.1" + "symfony/deprecation-contracts": "^2.1|^3" }, "conflict": { "ext-psr": "<1.1|>=2" @@ -4782,7 +4978,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v2.5.0" + "source": "https://github.com/symfony/service-contracts/tree/v2.5.3" }, "funding": [ { @@ -4798,20 +4994,20 @@ "type": "tidelift" } ], - "time": "2021-11-04T16:48:04+00:00" + "time": "2023-04-21T15:04:16+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.4.3", + "version": "v5.4.40", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "395220730edceb6bd745236ccb5c9125c748f779" + "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/395220730edceb6bd745236ccb5c9125c748f779", - "reference": "395220730edceb6bd745236ccb5c9125c748f779", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/0e9daf3b7c805c747638b2cc48f1649e594f9625", + "reference": "0e9daf3b7c805c747638b2cc48f1649e594f9625", "shasum": "" }, "require": { @@ -4844,7 +5040,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.4.3" + "source": "https://github.com/symfony/stopwatch/tree/v5.4.40" }, "funding": [ { @@ -4860,20 +5056,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-05-31T14:33:22+00:00" }, { "name": "symfony/string", - "version": "v5.4.3", + "version": "v5.4.44", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10" + "reference": "832caa16b6d9aac6bf11747315225f5aba384c24" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/92043b7d8383e48104e411bc9434b260dbeb5a10", - "reference": "92043b7d8383e48104e411bc9434b260dbeb5a10", + "url": "https://api.github.com/repos/symfony/string/zipball/832caa16b6d9aac6bf11747315225f5aba384c24", + "reference": "832caa16b6d9aac6bf11747315225f5aba384c24", "shasum": "" }, "require": { @@ -4895,12 +5091,12 @@ }, "type": "library", "autoload": { - "psr-4": { - "Symfony\\Component\\String\\": "" - }, "files": [ "Resources/functions.php" ], + "psr-4": { + "Symfony\\Component\\String\\": "" + }, "exclude-from-classmap": [ "/Tests/" ] @@ -4930,7 +5126,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.4.3" + "source": "https://github.com/symfony/string/tree/v5.4.44" }, "funding": [ { @@ -4946,20 +5142,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:53:40+00:00" + "time": "2024-09-20T07:56:40+00:00" }, { "name": "theseer/tokenizer", - "version": "1.2.1", + "version": "1.2.3", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", - "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", + "reference": "737eda637ed5e28c3413cb1ebe8bb52cbf1ca7a2", "shasum": "" }, "require": { @@ -4988,7 +5184,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/1.2.1" + "source": "https://github.com/theseer/tokenizer/tree/1.2.3" }, "funding": [ { @@ -4996,65 +5192,7 @@ "type": "github" } ], - "time": "2021-07-28T10:34:58+00:00" - }, - { - "name": "webmozart/assert", - "version": "1.10.0", - "source": { - "type": "git", - "url": "https://github.com/webmozarts/assert.git", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6964c76c7804814a842473e0c8fd15bab0f18e25", - "reference": "6964c76c7804814a842473e0c8fd15bab0f18e25", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "phpstan/phpstan": "<0.12.20", - "vimeo/psalm": "<4.6.1 || 4.6.2" - }, - "require-dev": { - "phpunit/phpunit": "^8.5.13" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.10-dev" - } - }, - "autoload": { - "psr-4": { - "Webmozart\\Assert\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Bernhard Schussek", - "email": "bschussek@gmail.com" - } - ], - "description": "Assertions to validate method input/output with nice error messages.", - "keywords": [ - "assert", - "check", - "validate" - ], - "support": { - "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/1.10.0" - }, - "time": "2021-03-09T10:59:23+00:00" + "time": "2024-03-03T12:36:25+00:00" } ], "aliases": [], diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 92ed06742c..b3545284e7 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -43,7 +43,7 @@ services: - "63001:80" elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:5.6.16 + image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23 env_file: etc/environment ulimits: memlock: From ff1ba0a29ee5219d13b39e76425b2e5d22c92888 Mon Sep 17 00:00:00 2001 From: melaniekung Date: Thu, 3 Oct 2024 10:35:01 -0700 Subject: [PATCH 2/5] Remove arElasticSearchIndexDecorator. - 'inline' scripts are deprecated, changed to 'source' --- .../arUpdatePublicationStatusJob.class.php | 2 +- .../updatePublicationStatusTask.class.php | 2 +- .../arElasticSearchIndexDecorator.class.php | 83 ------------------- .../lib/arElasticSearchPlugin.class.php | 4 +- 4 files changed, 3 insertions(+), 88 deletions(-) delete mode 100644 plugins/arElasticSearchPlugin/lib/arElasticSearchIndexDecorator.class.php diff --git a/lib/job/arUpdatePublicationStatusJob.class.php b/lib/job/arUpdatePublicationStatusJob.class.php index f3f524b4cc..fc13012741 100644 --- a/lib/job/arUpdatePublicationStatusJob.class.php +++ b/lib/job/arUpdatePublicationStatusJob.class.php @@ -78,7 +78,7 @@ public function runJob($parameters) $queryScript = \Elastica\Script\AbstractScript::create([ 'script' => [ - 'inline' => 'ctx._source.publicationStatusId = '.$publicationStatus->id, + 'source' => 'ctx._source.publicationStatusId = '.$publicationStatus->id, 'lang' => 'painless', ], ]); diff --git a/lib/task/tools/updatePublicationStatusTask.class.php b/lib/task/tools/updatePublicationStatusTask.class.php index eee2a902eb..0c343826bc 100644 --- a/lib/task/tools/updatePublicationStatusTask.class.php +++ b/lib/task/tools/updatePublicationStatusTask.class.php @@ -166,7 +166,7 @@ protected function updatePublicationStatusDescendants($resource, $publicationSta $queryScript = \Elastica\Script\AbstractScript::create([ 'script' => [ - 'inline' => 'ctx._source.publicationStatusId = '.$publicationStatus->id, + 'source' => 'ctx._source.publicationStatusId = '.$publicationStatus->id, 'lang' => 'painless', ], ]); diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchIndexDecorator.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchIndexDecorator.class.php deleted file mode 100644 index 02a45ec56e..0000000000 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchIndexDecorator.class.php +++ /dev/null @@ -1,83 +0,0 @@ -. - */ - -use Elastica\Query; -use Elastica\Response; -use Elastica\Script\AbstractScript; -use Elasticsearch\Endpoints\UpdateByQuery; - -/** - * arElasticSearchIndexDecorator can be removed when Elastica >= 6.x. It is present to - * provide Elastica/Index::updateByQuery(). - * - * @author sbreker - */ -class arElasticSearchIndexDecorator -{ - protected $_instance; - - public function __construct(Elastica\Index $instance) - { - $this->_instance = $instance; - } - - public function __call($method, $args) - { - return call_user_func_array([$this->_instance, $method], $args); - } - - public function __get($key) - { - return $this->_instance->{$key}; - } - - public function __set($key, $val) - { - return $this->_instance->{$key} = $val; - } - - public function getInstance() - { - return $this->_instance; - } - - /** - * Update entries in the db based on a query. - * - * @param AbstractQuery|array|Collapse|Query|string|Suggest $query Query object or array - * @param AbstractScript $script Script - * @param array $options Optional params - * - * @see https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-update-by-query.html - */ - public function updateByQuery($query, AbstractScript $script, array $options = []): Response - { - $endpoint = new UpdateByQuery(); - $q = Query::create($query)->getQuery(); - $body = [ - 'query' => \is_array($q) ? $q : $q->toArray(), - 'script' => $script->toArray()['script'], - ]; - - $endpoint->setBody($body); - $endpoint->setParams($options); - - return $this->requestEndpoint($endpoint); - } -} diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php index 07e9179900..cdc1401951 100644 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php +++ b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php @@ -90,9 +90,7 @@ public function __construct(array $options = []) // Verify the version running in the server $this->checkVersion(); - // TODO: arElasticSearchIndexDecorator can be removed when Elastica >= 6.x. It is present to - // provide Elastica/Index::updateByQuery(). - $this->index = new arElasticSearchIndexDecorator($this->client->getIndex($this->config['index']['name'])); + $this->index = $this->client->getIndex($this->config['index']['name']); // Load batch mode configuration $this->batchMode = true === $this->config['batch_mode']; From 6c0a625507b9063f1a99dfc291ba20ae442643d6 Mon Sep 17 00:00:00 2001 From: melaniekung Date: Thu, 3 Oct 2024 13:07:18 -0700 Subject: [PATCH 3/5] WIP: Update index for ES 6.x --- .../actor/actions/browseAction.class.php | 2 +- .../relatedInformationObjectsAction.class.php | 2 +- .../clipboard/actions/viewAction.class.php | 2 +- .../default/actions/browseAction.class.php | 2 +- .../default/actions/moveAction.class.php | 4 +- .../actions/autocompleteAction.class.php | 2 +- .../actions/browseAction.class.php | 2 +- .../actions/inventoryAction.class.php | 2 +- .../repository/actions/browseAction.class.php | 4 +- .../actions/holdingsAction.class.php | 2 +- .../actions/maintainedActorsAction.class.php | 2 +- .../actions/autocompleteAction.class.php | 2 +- .../descriptionUpdatesAction.class.php | 2 +- .../search/actions/indexAction.class.php | 2 +- .../taxonomy/actions/indexAction.class.php | 2 +- .../term/actions/indexAction.class.php | 4 +- .../navigateRelatedComponent.class.php | 2 +- lib/QubitLftSyncer.class.php | 2 +- lib/job/arRepositoryCsvExportJob.class.php | 2 +- lib/job/arUpdateEsActorRelationsJob.class.php | 2 +- .../arUpdatePublicationStatusJob.class.php | 2 +- lib/model/QubitInformationObject.php | 2 +- lib/model/QubitTerm.php | 2 +- .../propel/propelGenerateSlugsTask.class.php | 2 +- lib/task/search/arDocumentTask.class.php | 2 +- lib/task/search/arSearchStatusTask.class.php | 2 +- .../updatePublicationStatusTask.class.php | 2 +- .../lib/arElasticSearchPlugin.class.php | 168 ++++++++++++------ .../informationobjectsBrowseAction.class.php | 2 +- .../accession/actions/browseAction.class.php | 2 +- 30 files changed, 142 insertions(+), 90 deletions(-) diff --git a/apps/qubit/modules/actor/actions/browseAction.class.php b/apps/qubit/modules/actor/actions/browseAction.class.php index 4394ef6e53..b8f0fa3615 100644 --- a/apps/qubit/modules/actor/actions/browseAction.class.php +++ b/apps/qubit/modules/actor/actions/browseAction.class.php @@ -499,7 +499,7 @@ protected function doSearch($request) $this->search->query->setQuery($this->search->queryBool); - return QubitSearch::getInstance()->index->getType('QubitActor')->search($this->search->getQuery(false)); + return QubitSearch::getInstance()->index['QubitActor']->search($this->search->getQuery(false)); } private function getRelatedAuthorityUsingSlug($slug) diff --git a/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php b/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php index 9318d5f3d4..f40f4ff63c 100644 --- a/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php +++ b/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php @@ -108,7 +108,7 @@ public static function getRelatedInformationObjects($actorId, $page, $limit, $ev $query->setSize($limit); $query->setFrom($limit * ($page - 1)); - return QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($query); + return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); } public static function nestedActorAndEventTypeQuery($actorId, $eventTypeId) diff --git a/apps/qubit/modules/clipboard/actions/viewAction.class.php b/apps/qubit/modules/clipboard/actions/viewAction.class.php index 97ba039ace..cb24fa550a 100644 --- a/apps/qubit/modules/clipboard/actions/viewAction.class.php +++ b/apps/qubit/modules/clipboard/actions/viewAction.class.php @@ -51,7 +51,7 @@ public function execute($request) $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index->getType($this->entityType)->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index[$this->entityType]->search($this->search->query); } // Page results diff --git a/apps/qubit/modules/default/actions/browseAction.class.php b/apps/qubit/modules/default/actions/browseAction.class.php index 2aa7a95dba..e97a7dad77 100644 --- a/apps/qubit/modules/default/actions/browseAction.class.php +++ b/apps/qubit/modules/default/actions/browseAction.class.php @@ -146,7 +146,7 @@ protected function populateAggs($resultSet) $this->search->query->setRawQuery($queryParams); - $resultSetWithoutLanguageFilter = QubitSearch::getInstance()->index->getType($this::INDEX_TYPE)->search($this->search->query); + $resultSetWithoutLanguageFilter = QubitSearch::getInstance()->index[$this::INDEX_TYPE]->search($this->search->query); $count = $resultSetWithoutLanguageFilter->getTotalHits(); } diff --git a/apps/qubit/modules/default/actions/moveAction.class.php b/apps/qubit/modules/default/actions/moveAction.class.php index 793016f1de..f2f38e29c5 100644 --- a/apps/qubit/modules/default/actions/moveAction.class.php +++ b/apps/qubit/modules/default/actions/moveAction.class.php @@ -140,10 +140,10 @@ public function execute($request) $this->query->setQuery($this->queryBool); if ($this->resource instanceof QubitInformationObject) { - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->query); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->query); } elseif ($this->resource instanceof QubitTerm) { // TODO: Add parent_id for terms in ES, add move button - $resultSet = QubitSearch::getInstance()->index->getType('QubitTerm')->search($this->query); + $resultSet = QubitSearch::getInstance()->index['QubitTerm']->search($this->query); } // Page results diff --git a/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php b/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php index 95bdb95a4d..fc63ed1ce2 100644 --- a/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php +++ b/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php @@ -94,7 +94,7 @@ public function execute($request) $this->query->setQuery($this->queryBool); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->query); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->query); // Page results $this->pager = new QubitSearchPager($resultSet); diff --git a/apps/qubit/modules/informationobject/actions/browseAction.class.php b/apps/qubit/modules/informationobject/actions/browseAction.class.php index 4167cc5644..f28f9f8715 100644 --- a/apps/qubit/modules/informationobject/actions/browseAction.class.php +++ b/apps/qubit/modules/informationobject/actions/browseAction.class.php @@ -244,7 +244,7 @@ public function execute($request) $this->setView($request); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->search->getQuery(false, true)); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->getQuery(false, true)); // Page results $this->pager = new QubitSearchPager($resultSet); diff --git a/apps/qubit/modules/informationobject/actions/inventoryAction.class.php b/apps/qubit/modules/informationobject/actions/inventoryAction.class.php index b2ac645682..735a6b10ef 100644 --- a/apps/qubit/modules/informationobject/actions/inventoryAction.class.php +++ b/apps/qubit/modules/informationobject/actions/inventoryAction.class.php @@ -174,6 +174,6 @@ private static function getResults($resource, $limit = 10, $page = 1, $sort = nu QubitAclSearch::filterDrafts($queryBool); $query->setQuery($queryBool); - return QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($query); + return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); } } diff --git a/apps/qubit/modules/repository/actions/browseAction.class.php b/apps/qubit/modules/repository/actions/browseAction.class.php index b17764ba72..9eda3742df 100644 --- a/apps/qubit/modules/repository/actions/browseAction.class.php +++ b/apps/qubit/modules/repository/actions/browseAction.class.php @@ -142,7 +142,7 @@ public function execute($request) $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index->getType('QubitRepository')->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['QubitRepository']->search($this->search->query); $this->pager = new QubitSearchPager($resultSet); $this->pager->setPage($request->page ? $request->page : 1); @@ -201,7 +201,7 @@ private function getAdvancedFilterTerms() $query = new \Elastica\Query(new \Elastica\Query\MatchAll()); $query->setSize($limit); - $this->repositories = QubitSearch::getInstance()->index->getType('QubitRepository')->search($query); + $this->repositories = QubitSearch::getInstance()->index['QubitRepository']->search($query); } /** diff --git a/apps/qubit/modules/repository/actions/holdingsAction.class.php b/apps/qubit/modules/repository/actions/holdingsAction.class.php index 48d4d45618..a794583af7 100644 --- a/apps/qubit/modules/repository/actions/holdingsAction.class.php +++ b/apps/qubit/modules/repository/actions/holdingsAction.class.php @@ -91,6 +91,6 @@ public static function getHoldings($id, $page, $limit) $title = sprintf('i18n.%s.title.alphasort', sfContext::getInstance()->user->getCulture()); $query->setSort([$title => 'asc']); - return QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($query); + return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); } } diff --git a/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php b/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php index d7d3c3b3cb..c0dd5a2830 100644 --- a/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php +++ b/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php @@ -82,6 +82,6 @@ public static function getActors($repositoryId, $page, $limit) $field = sprintf('i18n.%s.authorizedFormOfName.alphasort', sfContext::getInstance()->user->getCulture()); $query->setSort([$field => 'asc']); - return QubitSearch::getInstance()->index->getType('QubitActor')->search($query); + return QubitSearch::getInstance()->index['QubitActor']->search($query); } } diff --git a/apps/qubit/modules/search/actions/autocompleteAction.class.php b/apps/qubit/modules/search/actions/autocompleteAction.class.php index ec91ccf6ed..58c9c13727 100644 --- a/apps/qubit/modules/search/actions/autocompleteAction.class.php +++ b/apps/qubit/modules/search/actions/autocompleteAction.class.php @@ -39,7 +39,6 @@ public function execute($request) $culture = $this->context->user->getCulture(); $client = QubitSearch::getInstance()->client; - $index = QubitSearch::getInstance()->index->getInstance(); // Multisearch object $mSearch = new \Elastica\Multi\Search($client); @@ -75,6 +74,7 @@ public function execute($request) ]; foreach ($items as $item) { + $index = QubitSearch::getInstance()->index[$item['type']]->getInstance(); $search = new \Elastica\Search($client); $search->addIndex($index)->addType($index->getType($item['type'])); diff --git a/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php b/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php index 209edbdce6..bd55877a2a 100644 --- a/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php +++ b/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php @@ -187,7 +187,7 @@ public function doSearch() $query->setFrom($limit * ($page - 1)); $query->setSort(['createdAt' => 'desc']); - $resultSet = QubitSearch::getInstance()->index->getType($this->form->getValue('className'))->search($query); + $resultSet = QubitSearch::getInstance()->index[$this->form->getValue('className')]->search($query); // Page results $this->pager = new QubitSearchPager($resultSet); diff --git a/apps/qubit/modules/search/actions/indexAction.class.php b/apps/qubit/modules/search/actions/indexAction.class.php index 9bb7d20782..fa6a711513 100644 --- a/apps/qubit/modules/search/actions/indexAction.class.php +++ b/apps/qubit/modules/search/actions/indexAction.class.php @@ -48,7 +48,7 @@ public function execute($request) QubitAclSearch::filterDrafts($this->search->queryBool); $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->query); $total = $resultSet->getTotalHits(); if (1 > $total) { diff --git a/apps/qubit/modules/taxonomy/actions/indexAction.class.php b/apps/qubit/modules/taxonomy/actions/indexAction.class.php index 1a9604327e..51572e4a33 100644 --- a/apps/qubit/modules/taxonomy/actions/indexAction.class.php +++ b/apps/qubit/modules/taxonomy/actions/indexAction.class.php @@ -224,7 +224,7 @@ public function execute($request) $this->query->setSort(['updatedAt' => $request->sortDir]); } - $resultSet = QubitSearch::getInstance()->index->getType('QubitTerm')->search($this->query); + $resultSet = QubitSearch::getInstance()->index['QubitTerm']->search($this->query); // Return special response in JSON for XHR requests if ($request->isXmlHttpRequest()) { diff --git a/apps/qubit/modules/term/actions/indexAction.class.php b/apps/qubit/modules/term/actions/indexAction.class.php index 3773825054..1e5b9a31d2 100644 --- a/apps/qubit/modules/term/actions/indexAction.class.php +++ b/apps/qubit/modules/term/actions/indexAction.class.php @@ -248,7 +248,7 @@ public function execute($request) QubitAclSearch::filterDrafts($this->search->queryBool); $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->query); // Page results $this->pager = new QubitSearchPager($resultSet); @@ -328,7 +328,7 @@ protected function loadListTerms($request) $listQueryBool->addMust(new \Elastica\Query\Term(['taxonomyId' => $this->resource->taxonomyId])); $listQuery->setQuery($listQueryBool); - $this->listResultSet = QubitSearch::getInstance()->index->getType('QubitTerm')->search($listQuery); + $this->listResultSet = QubitSearch::getInstance()->index['QubitTerm']->search($listQuery); // Page list results $this->listPager = new QubitSearchPager($this->listResultSet); diff --git a/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php b/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php index 2d9ba45c82..724bf61b54 100644 --- a/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php +++ b/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php @@ -62,7 +62,7 @@ public static function getEsDocsRelatedToTerm($relatedModelClass, $term, $option QubitAclSearch::filterDrafts($search->queryBool); } - return QubitSearch::getInstance()->index->getType($relatedModelClass)->search($search->getQuery(false)); + return QubitSearch::getInstance()->index[$relatedModelClass]->search($search->getQuery(false)); } public static function getEsDocsRelatedToTermCount($relatedModelClass, $termId, $search = null) diff --git a/lib/QubitLftSyncer.class.php b/lib/QubitLftSyncer.class.php index 22581c6fd3..ed9baabdce 100644 --- a/lib/QubitLftSyncer.class.php +++ b/lib/QubitLftSyncer.class.php @@ -93,7 +93,7 @@ private function repairEsChildrenLftValues() $results = QubitPdo::fetchAll($sql, $params, ['fetchMode' => PDO::FETCH_ASSOC]); $bulk = new Elastica\Bulk(QubitSearch::getInstance()->client); - $bulk->setIndex(QubitSearch::getInstance()->index->getName()); + $bulk->setIndex(QubitSearch::getInstance()->index['QubitInformationObject']->getName()); $bulk->setType('QubitInformationObject'); foreach ($results as $row) { diff --git a/lib/job/arRepositoryCsvExportJob.class.php b/lib/job/arRepositoryCsvExportJob.class.php index ecd987862a..d533142cf7 100644 --- a/lib/job/arRepositoryCsvExportJob.class.php +++ b/lib/job/arRepositoryCsvExportJob.class.php @@ -85,7 +85,7 @@ protected function exportResults($path) { $itemsExported = 0; - $search = QubitSearch::getInstance()->index->getType('QubitRepository')->createSearch($this->search->getQuery(false, false)); + $search = QubitSearch::getInstance()->index['QubitRepository']->createSearch($this->search->getQuery(false, false)); $writer = new csvRepositoryExport($path, null, 10000); $writer->loadResourceSpecificConfiguration('QubitRepository'); diff --git a/lib/job/arUpdateEsActorRelationsJob.class.php b/lib/job/arUpdateEsActorRelationsJob.class.php index d768a80199..b032b146db 100644 --- a/lib/job/arUpdateEsActorRelationsJob.class.php +++ b/lib/job/arUpdateEsActorRelationsJob.class.php @@ -102,7 +102,7 @@ public static function previousRelationActorIds($actorId) { try { // Get actor's previously indexed relations from Elasticsearch - $doc = QubitSearch::getInstance()->index->getType('QubitActor')->getDocument($actorId); + $doc = QubitSearch::getInstance()->index['QubitActor']->getDocument($actorId); return self::uniqueIdsFromRelationData($doc->getData()['actorRelations']); } catch (\Elastica\Exception\NotFoundException $e) { diff --git a/lib/job/arUpdatePublicationStatusJob.class.php b/lib/job/arUpdatePublicationStatusJob.class.php index fc13012741..9fa6073a9f 100644 --- a/lib/job/arUpdatePublicationStatusJob.class.php +++ b/lib/job/arUpdatePublicationStatusJob.class.php @@ -91,7 +91,7 @@ public function runJob($parameters) 'conflicts' => 'proceed', ]; - $response = QubitSearch::getInstance()->index->updateByQuery($query, $queryScript, $options)->getData(); + $response = QubitSearch::getInstance()->index['QubitTerm']->updateByQuery($query, $queryScript, $options)->getData(); $message = $this->i18n->__( 'Index update completed in %1 ms.', diff --git a/lib/model/QubitInformationObject.php b/lib/model/QubitInformationObject.php index 9fecc1f15c..85a7562ad3 100644 --- a/lib/model/QubitInformationObject.php +++ b/lib/model/QubitInformationObject.php @@ -2183,7 +2183,7 @@ public static function getByTitleIdentifierAndRepo($identifier, $title, $repoNam $query = new \Elastica\Query($queryBool); $query->setSize(1); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($query); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($query); if ($resultSet->count()) { return $resultSet[0]->getId(); diff --git a/lib/model/QubitTerm.php b/lib/model/QubitTerm.php index 80ea8607a8..9e88346049 100644 --- a/lib/model/QubitTerm.php +++ b/lib/model/QubitTerm.php @@ -895,7 +895,7 @@ public static function getEsTermsByTaxonomyId($taxonomyId, $limit = 10) $query = new \Elastica\Query($queryBool); $query->setSize($limit); - return QubitSearch::getInstance()->index->getType('QubitTerm')->search($query); + return QubitSearch::getInstance()->index['QubitTerm']->search($query); } /** diff --git a/lib/task/propel/propelGenerateSlugsTask.class.php b/lib/task/propel/propelGenerateSlugsTask.class.php index b12bd4d5b0..4980ce5c2d 100644 --- a/lib/task/propel/propelGenerateSlugsTask.class.php +++ b/lib/task/propel/propelGenerateSlugsTask.class.php @@ -311,7 +311,7 @@ private function getSlugStringFromES($id, $property) $query->setQuery($queryBool); $query->setSize(1); - $results = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($query); + $results = QubitSearch::getInstance()->index['QubitInformationObject']->search($query); if (!$results->count()) { return null; diff --git a/lib/task/search/arDocumentTask.class.php b/lib/task/search/arDocumentTask.class.php index 52cac22473..1b5bc8ebc0 100644 --- a/lib/task/search/arDocumentTask.class.php +++ b/lib/task/search/arDocumentTask.class.php @@ -37,7 +37,7 @@ public function execute($arguments = [], $options = []) if (null !== $slugObject = QubitObject::getBySlug($arguments[slug])) { $this->log(sprintf("Fetching data for %s ID %d...\n", $slugObject->className, $slugObject->id)); - $doc = QubitSearch::getInstance()->index->getType($slugObject->className)->getDocument($slugObject->id); + $doc = QubitSearch::getInstance()->index[$slugObject->className]->getDocument($slugObject->id); echo json_encode($doc->getData(), JSON_PRETTY_PRINT)."\n"; } else { diff --git a/lib/task/search/arSearchStatusTask.class.php b/lib/task/search/arSearchStatusTask.class.php index cb62d9831d..6af2d1578a 100644 --- a/lib/task/search/arSearchStatusTask.class.php +++ b/lib/task/search/arSearchStatusTask.class.php @@ -78,7 +78,7 @@ private function objectsIndexed($docType) // Determine model class name from document type name $docTypeModelClass = 'Qubit'.ucfirst($docType); - return QubitSearch::getInstance()->index->getType($docTypeModelClass)->count(); + return QubitSearch::getInstance()->index[$docTypeModelClass]->count(); } private function objectsAvailableToIndex($docType) diff --git a/lib/task/tools/updatePublicationStatusTask.class.php b/lib/task/tools/updatePublicationStatusTask.class.php index 0c343826bc..50f3f2f346 100644 --- a/lib/task/tools/updatePublicationStatusTask.class.php +++ b/lib/task/tools/updatePublicationStatusTask.class.php @@ -173,7 +173,7 @@ protected function updatePublicationStatusDescendants($resource, $publicationSta $options = ['conflicts' => 'proceed']; - $response = QubitSearch::getInstance()->index->updateByQuery($query, $queryScript, $options)->getData(); + $response = QubitSearch::getInstance()->index['QubitTerm']->updateByQuery($query, $queryScript, $options)->getData(); if (!empty($response['failures'])) { $this->failures += count($response['failures']); diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php index cdc1401951..bdab8839a3 100644 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php +++ b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php @@ -40,9 +40,9 @@ class arElasticSearchPlugin extends QubitSearchEngine /** * Elastic_Index object. * - * @var mixed defaults to null + * @var array defaults to null */ - public $index; + public $index = []; /** * Mappings configuration, mapping.yml. @@ -75,6 +75,14 @@ class arElasticSearchPlugin extends QubitSearchEngine */ private $batchDeleteDocs = []; + /** + * Current batch type, used for batch flush. + * + * @var mixed defaults to null + */ + protected $currentBatchType; + + /** * Constructor. */ @@ -90,7 +98,14 @@ public function __construct(array $options = []) // Verify the version running in the server $this->checkVersion(); - $this->index = $this->client->getIndex($this->config['index']['name']); + // Load and normalize mappings + $this->loadAndNormalizeMappings(); + + // Iterate over types (actor, informationobject, ...) + foreach ($this->mappings as $typeName => $typeProperties) { + $typeName = 'Qubit'.sfInflector::camelize($typeName); + array_push($this->index, $this->client->getIndex($typeName)); + } // Load batch mode configuration $this->batchMode = true === $this->config['batch_mode']; @@ -110,7 +125,10 @@ public function __destruct() } $this->flushBatch(); - $this->index->refresh(); + + foreach ($this->index as $index) { + $index->refresh(); + } } public static function loadMappings() @@ -165,7 +183,9 @@ public function optimize($args = []) public function flush() { try { - $this->index->delete(); + foreach ($this->index as $index) { + $index->delete(); + } } catch (Exception $e) { } @@ -184,7 +204,7 @@ public function flushBatch() // Batch add documents, if any if (count($this->batchAddDocs) > 0) { try { - $this->index->addDocuments($this->batchAddDocs); + $this->index[$this->currentBatchType]->addDocuments($this->batchAddDocs); } catch (Exception $e) { // Clear batchAddDocs if something went wrong too $this->batchAddDocs = []; @@ -198,7 +218,7 @@ public function flushBatch() // Batch delete documents, if any if (count($this->batchDeleteDocs) > 0) { try { - $this->index->deleteDocuments($this->batchDeleteDocs); + $this->index[$this->currentBatchType]->deleteDocuments($this->batchDeleteDocs); } catch (Exception $e) { // Clear batchDeleteDocs if something went wrong too $this->batchDeleteDocs = []; @@ -273,7 +293,7 @@ public function populate($options = []) // If excluding types then index as a whole hasn't been flushed: delete // type's documents if not updating if (count($excludeTypes) && !$update) { - $this->index->getType('Qubit'.$camelizedTypeName)->deleteByQuery(new \Elastica\Query\MatchAll()); + $this->index['Qubit'.$camelizedTypeName]->deleteByQuery(new \Elastica\Query\MatchAll()); } $class = new $className(); @@ -343,17 +363,33 @@ public function addDocument($data, $type) $document = new \Elastica\Document($id, $data); $document->setType($type); + if (!$this->currentBatchType) { + $this->currentBatchType = $type; + } + if ($this->batchMode) { + if ($this->currentBatchType != $type) { + $this->currentBatchType = $type; + $this->flushBatch(); + + foreach ($this->index as $index) { + $index->refresh(); + } + } + // Add this document to the batch add queue $this->batchAddDocs[] = $document; // If we have a full batch, send additions and deletions in bulk if (count($this->batchAddDocs) >= $this->batchSize) { $this->flushBatch(); - $this->index->refresh(); + + foreach ($this->index as $index) { + $index->refresh(); + } } } else { - $this->index->getType($type)->addDocument($document); + $this->index[$type]->addDocument($document); } } @@ -380,7 +416,7 @@ public function partialUpdate($object, $data) $document = new \Elastica\Document($object->id, $data); try { - $this->index->getType(get_class($object))->updateDocument($document); + $this->index[get_class($object)]->updateDocument($document); } catch (\Elastica\Exception\NotFoundException $e) { // Create document if it's not found $this->update($object); @@ -400,7 +436,7 @@ public function partialUpdateById(string $className, int $id, array $data) $document = new \Elastica\Document($id, $data); try { - $this->index->getType($className)->updateDocument($document); + $this->index[$className]->updateDocument($document); } catch (\Elastica\Exception\ResponseException $e) { // Create document if none exists $modelPdoClassName = self::modelClassFromQubitObjectClass($className).'Pdo'; @@ -425,23 +461,40 @@ public function delete($object) } if ($this->batchMode) { + $type = get_class($object); + + if (!$this->currentBatchType) { + $this->currentBatchType = $type; + } + // The document being deleted may not have been added to the index yet (if it's // still queued up in $this->batchAddDocs) so create a document object representing // the document to be deleted and add this document object to the batch delete // queue. $document = new \Elastica\Document($object->id); - $document->setType(get_class($object)); + $document->setType($type); + + if ($this->currentBatchType != $type) { + $this->currentBatchType = $type; + $this->flushBatch(); + + foreach ($this->index as $index) { + $index->refresh(); + } + } $this->batchDeleteDocs[] = $document; // If we have a full batch, send additions and deletions in bulk if (count($this->batchDeleteDocs) >= $this->batchSize) { $this->flushBatch(); - $this->index->refresh(); + foreach ($this->index as $index) { + $index->refresh(); + } } } else { try { - $this->index->getType(get_class($object))->deleteById($object->id); + $this->index[get_class($object)]->deleteById($object->id); } catch (\Elastica\Exception\NotFoundException $e) { // Ignore } @@ -491,57 +544,56 @@ protected function initialize() $this->config['index']['configuration']['analysis']['char_filter']['diacritics_lowercase'] = $this->loadDiacriticsMappings(); } - try { - $this->index->open(); - } catch (Exception $e) { - // If the index has not been initialized, create it - if ($e instanceof \Elastica\Exception\ResponseException) { - // Based on the markdown_enabled setting, add a new filter to strip Markdown tags - if ( - sfConfig::get('app_markdown_enabled', true) - && isset($this->config['index']['configuration']['analysis']['char_filter']['strip_md']) - ) { - foreach ($this->config['index']['configuration']['analysis']['analyzer'] as $key => $analyzer) { - $filters = ['strip_md']; - - if ($this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter']) { - $filters = array_merge($filters, $this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter']); - } - - if (sfConfig::get('app_diacritics')) { - $filters = array_merge($filters, ['diacritics_lowercase']); + foreach ($this->index as $index) { + try { + $index->open(); + } catch (Exception $e) { + // If the index has not been initialized, create it + if ($e instanceof \Elastica\Exception\ResponseException) { + // Based on the markdown_enabled setting, add a new filter to strip Markdown tags + if ( + sfConfig::get('app_markdown_enabled', true) + && isset($this->config['index']['configuration']['analysis']['char_filter']['strip_md']) + ) { + foreach ($this->config['index']['configuration']['analysis']['analyzer'] as $key => $analyzer) { + $filters = ['strip_md']; + + if ($this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter']) { + $filters = array_merge($filters, $this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter']); + } + + if (sfConfig::get('app_diacritics')) { + $filters = array_merge($filters, ['diacritics_lowercase']); + } + + $this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter'] = $filters; } - - $this->config['index']['configuration']['analysis']['analyzer'][$key]['char_filter'] = $filters; } - } - $this->index->create( - $this->config['index']['configuration'], - ['recreate' => true] - ); - } + $index->create( + $this->config['index']['configuration'], + ['recreate' => true] + ); + } - // Load and normalize mappings - $this->loadAndNormalizeMappings(); + // Iterate over types (actor, informationobject, ...) + foreach ($this->mappings as $typeName => $typeProperties) { + $typeName = 'Qubit'.sfInflector::camelize($typeName); - // Iterate over types (actor, informationobject, ...) - foreach ($this->mappings as $typeName => $typeProperties) { - $typeName = 'Qubit'.sfInflector::camelize($typeName); + // Define mapping in elasticsearch + $mapping = new \Elastica\Type\Mapping(); + $mapping->setType($index[$typeName]); + $mapping->setProperties($typeProperties['properties']); - // Define mapping in elasticsearch - $mapping = new \Elastica\Type\Mapping(); - $mapping->setType($this->index->getType($typeName)); - $mapping->setProperties($typeProperties['properties']); + // Parse other parameters + unset($typeProperties['properties']); + foreach ($typeProperties as $key => $value) { + $mapping->setParam($key, $value); + } - // Parse other parameters - unset($typeProperties['properties']); - foreach ($typeProperties as $key => $value) { - $mapping->setParam($key, $value); + $this->log(sprintf('Defining mapping %s...', $typeName)); + $mapping->send(); } - - $this->log(sprintf('Defining mapping %s...', $typeName)); - $mapping->send(); } } } diff --git a/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php b/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php index e74d11cb49..e9459fe11d 100644 --- a/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php +++ b/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php @@ -96,7 +96,7 @@ protected function get($request) $this->search->query->setSort([$field => $order]); - $resultSet = QubitSearch::getInstance()->index->getType('QubitInformationObject')->search($this->search->getQuery(false, true)); + $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->getQuery(false, true)); // Build array from results $results = $lodMapping = []; diff --git a/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php b/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php index 2cccfa1445..b5cd071a46 100644 --- a/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php +++ b/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php @@ -154,7 +154,7 @@ public function execute($request) break; } - $resultSet = QubitSearch::getInstance()->index->getType('QubitAccession')->search($this->query); + $resultSet = QubitSearch::getInstance()->index['QubitAccession']->search($this->query); $this->pager = new QubitSearchPager($resultSet); $this->pager->setPage($request->page ? $request->page : 1); From 73fe6d305a0d4b04a7f44976d09ddab364edf4a1 Mon Sep 17 00:00:00 2001 From: Anvit Srivastav Date: Fri, 4 Oct 2024 09:42:14 -0700 Subject: [PATCH 4/5] Remove include_in_all and update ES mapping (WIP) Updating include_in_all to copy_to since the _all field has been removed in ES 6.x. Also updating the arElasticSearchPlugin code to use multiple indices with the mapping. --- .../arElasticSearchPlugin/config/mapping.yml | 368 +++++++++--------- .../lib/arElasticSearchMapping.class.php | 11 +- .../lib/arElasticSearchPlugin.class.php | 24 +- .../lib/arElasticSearchPluginUtil.class.php | 4 +- 4 files changed, 205 insertions(+), 202 deletions(-) diff --git a/plugins/arElasticSearchPlugin/config/mapping.yml b/plugins/arElasticSearchPlugin/config/mapping.yml index 550e095023..a84317c157 100644 --- a/plugins/arElasticSearchPlugin/config/mapping.yml +++ b/plugins/arElasticSearchPlugin/config/mapping.yml @@ -34,8 +34,8 @@ mapping: properties: contact_person: { type: keyword } street_address: { type: text, index: false } - postal_code: { type: text, include_in_all: false } - country_code: { type: keyword, include_in_all: false } + postal_code: { type: text } + country_code: { type: keyword } location: { type: geo_point } other_name: @@ -61,12 +61,12 @@ mapping: dynamic: strict type: nested properties: - start_date: { type: date, include_in_all: false } - end_date: { type: date, include_in_all: false } + start_date: { type: date } + end_date: { type: date } start_date_string: { type: keyword } end_date_string: { type: keyword } - type_id: { type: integer, include_in_all: false } - actor_id: { type: integer, include_in_all: false } + type_id: { type: integer } + actor_id: { type: integer } relation: _attributes: @@ -74,9 +74,9 @@ mapping: dynamic: strict type: nested properties: - object_id: { type: integer, include_in_all: false } - subject_id: { type: integer, include_in_all: false } - type_id: { type: integer, include_in_all: false } + object_id: { type: integer } + subject_id: { type: integer } + type_id: { type: integer } accession_event: _attributes: @@ -91,7 +91,7 @@ mapping: dynamic: strict dynamic: strict properties: - date: { type: date, include_in_all: false } + date: { type: date } date_string: { type: keyword } donor: @@ -109,104 +109,104 @@ mapping: nested_only: true dynamic: strict properties: - basis: { type: text, include_in_all: false } - start_date: { type: date, include_in_all: false } - end_date: { type: date, include_in_all: false } - copyright_status: { type: text, include_in_all: false } - rights_holder: { type: text, include_in_all: false } - rights_note: { type: text, include_in_all: false } - license_terms: { type: text, include_in_all: false } + basis: { type: text } + start_date: { type: date } + end_date: { type: date } + copyright_status: { type: text } + rights_holder: { type: text } + rights_note: { type: text } + license_terms: { type: text } act_right: _attributes: nested_only: true dynamic: strict properties: - act: { type: text, include_in_all: false } - restriction: { type: text, include_in_all: false } - start_date: { type: date, include_in_all: false } - end_date: { type: date, include_in_all: false } + act: { type: text } + restriction: { type: text } + start_date: { type: date } + end_date: { type: date } mediainfo_track: _attributes: nested_only: true dynamic: strict properties: - count: { type: integer, include_in_all: false } - video_format_list: { type: keyword, include_in_all: false } - video_format_with_hint_list: { type: keyword, include_in_all: false } - codecs_video: { type: keyword, include_in_all: false } - video_language_list: { type: keyword, include_in_all: false } - audio_format_list: { type: keyword, include_in_all: false } - audio_format_with_hint_list: { type: keyword, include_in_all: false } - audio_codecs: { type: keyword, include_in_all: false } - audio_language_list: { type: keyword, include_in_all: false } - complete_name: { type: keyword, include_in_all: false } - file_name: { type: keyword, include_in_all: false } - file_extension: { type: keyword, include_in_all: false } - format: { type: keyword, include_in_all: false } - format_info: { type: keyword, include_in_all: false } - format_url: { type: keyword, include_in_all: false } - format_profile: { type: keyword, include_in_all: false } - format_settings: { type: keyword, include_in_all: false } - format_settings_cabac: { type: keyword, include_in_all: false } - format_settings_re_frames: { type: integer, include_in_all: false } - format_settings_gop: { type: keyword, include_in_all: false } - format_extensions_usually_used: { type: keyword, include_in_all: false } - commercial_name: { type: keyword, include_in_all: false } - internet_media_type: { type: keyword, include_in_all: false } - codec_id: { type: keyword, include_in_all: false } - codec_id_info: { type: keyword, include_in_all: false } - codec_id_url: { type: keyword, include_in_all: false } - codec: { type: keyword, include_in_all: false } - codec_family: { type: keyword, include_in_all: false } - codec_info: { type: keyword, include_in_all: false } - codec_url: { type: keyword, include_in_all: false } - codec_cc: { type: keyword, include_in_all: false } - codec_profile: { type: keyword, include_in_all: false } - codec_settings: { type: keyword, include_in_all: false } - codec_settings_cabac: { type: keyword, include_in_all: false } - codec_settings_ref_frames: { type: integer, include_in_all: false } - codec_extensions_usually_used: { type: keyword, include_in_all: false } - file_size: { type: long, include_in_all: false } - duration: { type: integer, include_in_all: false } - bit_rate: { type: integer, include_in_all: false } - bit_rate_mode: { type: keyword, include_in_all: false } - overall_bit_rate: { type: integer, include_in_all: false } - channels: { type: integer, include_in_all: false } - channel_positions: { type: keyword, include_in_all: false } - sampling_rate: { type: integer, include_in_all: false } - samples_count: { type: integer, include_in_all: false } - compression_mode: { type: keyword, include_in_all: false } - width: { type: integer, include_in_all: false } - height: { type: integer, include_in_all: false } - pixel_aspect_ratio: { type: float, include_in_all: false } - display_aspect_ratio: { type: keyword, include_in_all: false } - rotation: { type: float, include_in_all: false } - frame_rate_mode: { type: keyword, include_in_all: false } - frame_rate: { type: float, include_in_all: false } - frame_count: { type: integer, include_in_all: false } - resolution: { type: integer, include_in_all: false } - colorimetry: { type: keyword, include_in_all: false } - color_space: { type: keyword, include_in_all: false } - chroma_subsampling: { type: keyword, include_in_all: false } - bit_depth: { type: integer, include_in_all: false } - scan_type: { type: keyword, include_in_all: false } - interlacement: { type: keyword, include_in_all: false } - bits_pixel_frame: { type: float, include_in_all: false } - stream_size: { type: long, include_in_all: false } - proportion_of_this_stream: { type: float, include_in_all: false } - header_size: { type: long, include_in_all: false } - data_size: { type: long, include_in_all: false } - footer_size: { type: long, include_in_all: false } - language: { type: keyword, include_in_all: false } - color_primaries: { type: keyword, include_in_all: false } - transfer_characteristics: { type: keyword, include_in_all: false } - matrix_coefficients: { type: keyword, include_in_all: false } - is_streamable: { type: boolean, include_in_all: false } - writing_application: { type: keyword, include_in_all: false } - file_last_modification_date: { type: date, include_in_all: false } - file_last_modification_date_local: { type: date, include_in_all: false } + count: { type: integer } + video_format_list: { type: keyword } + video_format_with_hint_list: { type: keyword } + codecs_video: { type: keyword } + video_language_list: { type: keyword } + audio_format_list: { type: keyword } + audio_format_with_hint_list: { type: keyword } + audio_codecs: { type: keyword } + audio_language_list: { type: keyword } + complete_name: { type: keyword } + file_name: { type: keyword } + file_extension: { type: keyword } + format: { type: keyword } + format_info: { type: keyword } + format_url: { type: keyword } + format_profile: { type: keyword } + format_settings: { type: keyword } + format_settings_cabac: { type: keyword } + format_settings_re_frames: { type: integer } + format_settings_gop: { type: keyword } + format_extensions_usually_used: { type: keyword } + commercial_name: { type: keyword } + internet_media_type: { type: keyword } + codec_id: { type: keyword } + codec_id_info: { type: keyword } + codec_id_url: { type: keyword } + codec: { type: keyword } + codec_family: { type: keyword } + codec_info: { type: keyword } + codec_url: { type: keyword } + codec_cc: { type: keyword } + codec_profile: { type: keyword } + codec_settings: { type: keyword } + codec_settings_cabac: { type: keyword } + codec_settings_ref_frames: { type: integer } + codec_extensions_usually_used: { type: keyword } + file_size: { type: long } + duration: { type: integer } + bit_rate: { type: integer } + bit_rate_mode: { type: keyword } + overall_bit_rate: { type: integer } + channels: { type: integer } + channel_positions: { type: keyword } + sampling_rate: { type: integer } + samples_count: { type: integer } + compression_mode: { type: keyword } + width: { type: integer } + height: { type: integer } + pixel_aspect_ratio: { type: float } + display_aspect_ratio: { type: keyword } + rotation: { type: float } + frame_rate_mode: { type: keyword } + frame_rate: { type: float } + frame_count: { type: integer } + resolution: { type: integer } + colorimetry: { type: keyword } + color_space: { type: keyword } + chroma_subsampling: { type: keyword } + bit_depth: { type: integer } + scan_type: { type: keyword } + interlacement: { type: keyword } + bits_pixel_frame: { type: float } + stream_size: { type: long } + proportion_of_this_stream: { type: float } + header_size: { type: long } + data_size: { type: long } + footer_size: { type: long } + language: { type: keyword } + color_primaries: { type: keyword } + transfer_characteristics: { type: keyword } + matrix_coefficients: { type: keyword } + is_streamable: { type: boolean } + writing_application: { type: keyword } + file_last_modification_date: { type: date } + file_last_modification_date_local: { type: date } mediainfo: _attributes: @@ -223,84 +223,84 @@ mapping: mediainfo: mediainfo dynamic: strict properties: - puid: { type: keyword, include_in_all: false } - filename: { type: keyword, include_in_all: false } - last_modified: { type: date, include_in_all: false } - date_ingested: { type: date, include_in_all: false } - size: { type: long, include_in_all: false } - mime_type: { type: keyword, include_in_all: false } + puid: { type: keyword } + filename: { type: keyword } + last_modified: { type: date } + date_ingested: { type: date } + size: { type: long } + mime_type: { type: keyword } audio: type: object properties: - bit_depth: { type: integer, include_in_all: false } - sample_rate: { type: keyword, include_in_all: false } - channels: { type: integer, include_in_all: false } - data_encoding: { type: keyword, include_in_all: false } - offset: { type: integer, include_in_all: false } - byte_order: { type: keyword, include_in_all: false } + bit_depth: { type: integer } + sample_rate: { type: keyword } + channels: { type: integer } + data_encoding: { type: keyword } + offset: { type: integer } + byte_order: { type: keyword } document: type: object properties: - title: { type: keyword, include_in_all: false } - author: { type: keyword, include_in_all: false } - page_count: { type: integer, include_in_all: false } - word_count: { type: integer, include_in_all: false } - character_count: { type: integer, include_in_all: false } - language: { type: keyword, include_in_all: false } - is_protected: { type: boolean, include_in_all: false } - is_rights_managed: { type: boolean, include_in_all: false } - is_tagged: { type: boolean, include_in_all: false } - has_outline: { type: boolean, include_in_all: false } - has_annotations: { type: boolean, include_in_all: false } - has_forms: { type: boolean, include_in_all: false } + title: { type: keyword } + author: { type: keyword } + page_count: { type: integer } + word_count: { type: integer } + character_count: { type: integer } + language: { type: keyword } + is_protected: { type: boolean } + is_rights_managed: { type: boolean } + is_tagged: { type: boolean } + has_outline: { type: boolean } + has_annotations: { type: boolean } + has_forms: { type: boolean } text: type: object properties: - linebreak: { type: keyword, include_in_all: false } - charset: { type: keyword, include_in_all: false } - markup_basis: { type: keyword, include_in_all: false } - markup_basis_version: { type: keyword, include_in_all: false } - markup_language: { type: keyword, include_in_all: false } + linebreak: { type: keyword } + charset: { type: keyword } + markup_basis: { type: keyword } + markup_basis_version: { type: keyword } + markup_language: { type: keyword } format_identification_event: type: object properties: - type: { type: keyword, include_in_all: false } - dateTime: { type: date, include_in_all: false } - detail: { type: keyword, include_in_all: false } - outcome: { type: keyword, include_in_all: false } - outcomeDetailNote: { type: keyword, include_in_all: false } + type: { type: keyword } + dateTime: { type: date } + detail: { type: keyword } + outcome: { type: keyword } + outcomeDetailNote: { type: keyword } linkingAgentIdentifier: type: object properties: - type: { type: keyword, include_in_all: false } - value: { type: keyword, include_in_all: false } + type: { type: keyword } + value: { type: keyword } other_events: type: object properties: - type: { type: keyword, include_in_all: false } - dateTime: { type: date, include_in_all: false } - detail: { type: keyword, include_in_all: false } - outcome: { type: keyword, include_in_all: false } - outcomeDetailNote: { type: keyword, include_in_all: false } + type: { type: keyword } + dateTime: { type: date } + detail: { type: keyword } + outcome: { type: keyword } + outcomeDetailNote: { type: keyword } linkingAgentIdentifier: type: object properties: - type: { type: keyword, include_in_all: false } - value: { type: keyword, include_in_all: false } + type: { type: keyword } + value: { type: keyword } agents: type: object properties: - identifier_type: { type: keyword, include_in_all: false } - identifier_value: { type: keyword, include_in_all: false } - name: { type: keyword, include_in_all: false } - type: { type: keyword, include_in_all: false } + identifier_type: { type: keyword } + identifier_value: { type: keyword } + name: { type: keyword } + type: { type: keyword } format: type: object properties: - name: { type: keyword, include_in_all: false } - version: { type: keyword, include_in_all: false } - registry_name: { type: keyword, include_in_all: false } - registry_key: { type: keyword, include_in_all: false } + name: { type: keyword } + version: { type: keyword } + registry_name: { type: keyword } + registry_key: { type: keyword } physical_object: _attributes: @@ -334,11 +334,11 @@ mapping: digital_objects: premis_object dynamic: strict properties: - uuid: { type: keyword, include_in_all: false } - filename: { type: keyword, include_in_all: false } - size_on_disk: { type: long, include_in_all: false } - digital_object_count: { type: integer, include_in_all: false } - created_at: { type: date, include_in_all: false } + uuid: { type: keyword } + filename: { type: keyword } + size_on_disk: { type: long } + digital_object_count: { type: integer } + created_at: { type: date } term: _attributes: @@ -351,9 +351,9 @@ mapping: dynamic: strict properties: slug: { type: keyword } - taxonomy_id: { type: integer, include_in_all: false } - is_protected: { type: boolean, include_in_all: false } - number_of_descendants: { type: integer, include_in_all: false } + taxonomy_id: { type: integer } + is_protected: { type: boolean } + number_of_descendants: { type: integer } actor: _attributes: @@ -385,17 +385,17 @@ mapping: untouched: type: keyword corporate_body_identifiers: { type: keyword } - entity_type_id: { type: integer, include_in_all: false } - maintaining_repository_id: { type: integer, include_in_all: false } - direct_subjects: { type: integer, include_in_all: false } - direct_places: { type: integer, include_in_all: false } - actor_direct_relation_types: { type: integer, include_in_all: false } - has_digital_object: { type: boolean, include_in_all: false } + entity_type_id: { type: integer } + maintaining_repository_id: { type: integer } + direct_subjects: { type: integer } + direct_places: { type: integer } + actor_direct_relation_types: { type: integer } + has_digital_object: { type: boolean } digital_object: type: object properties: - media_type_id: { type: integer, include_in_all: false } - usage_id: { type: integer, include_in_all: false } + media_type_id: { type: integer } + usage_id: { type: integer } thumbnail_path: { type: keyword } filename: { type: text } digital_object_alt_text: { type: text } @@ -428,7 +428,7 @@ mapping: fields: untouched: type: keyword - date: { type: date, include_in_all: false } + date: { type: date } repository: _attributes: @@ -450,10 +450,10 @@ mapping: fields: untouched: type: keyword - types: { type: integer, include_in_all: false } - geographic_subregions: { type: integer, include_in_all: false } - thematic_areas: { type: integer, include_in_all: false } - logo_path: { type: keyword, include_in_all: false } + types: { type: integer } + geographic_subregions: { type: integer } + thematic_areas: { type: integer } + logo_path: { type: keyword } function_object: _attributes: @@ -590,26 +590,26 @@ mapping: level_of_description_id: { type: integer } lft: { type: integer } publication_status_id: { type: integer } - parent_id: { type: integer, include_in_all: false } - ancestors: { type: integer, include_in_all: false } - children: { type: integer, include_in_all: false } - copyright_status_id: { type: integer, include_in_all: false } - material_type_id: { type: integer, include_in_all: false } - transcript: { type: text, include_in_all: true } - direct_subjects: { type: integer, include_in_all: false } - direct_places: { type: integer, include_in_all: false } - direct_genres: { type: integer, include_in_all: false } - has_digital_object: { type: boolean, include_in_all: false } + parent_id: { type: integer } + ancestors: { type: integer } + children: { type: integer } + copyright_status_id: { type: integer } + material_type_id: { type: integer } + transcript: { type: text, copy_to: _all } + direct_subjects: { type: integer } + direct_places: { type: integer } + direct_genres: { type: integer } + has_digital_object: { type: boolean } finding_aid: type: object properties: - transcript: { type: text, include_in_all: true } - status: { type: integer, include_in_all: false } + transcript: { type: text, copy_to: _all } + status: { type: integer } digital_object: type: object properties: - media_type_id: { type: integer, include_in_all: false } - usage_id: { type: integer, include_in_all: false } + media_type_id: { type: integer } + usage_id: { type: integer } thumbnail_path: { type: keyword } filename: { type: text } digital_object_alt_text: { type: text } @@ -630,5 +630,5 @@ mapping: search_analyzer: standard term_vector: with_positions_offsets # Not nested date fields for sorting - start_date_sort: { type: date, include_in_all: false } - end_date_sort: { type: date, include_in_all: false } + start_date_sort: { type: date } + end_date_sort: { type: date } diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php index a84d143607..f09ac23ece 100644 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php +++ b/plugins/arElasticSearchPlugin/lib/arElasticSearchMapping.class.php @@ -263,7 +263,7 @@ protected function processPropertyAttributes($typeName, array &$typeProperties) throw new sfException('No i18n_languages in database settings.'); } - $this->setIfNotSet($typeProperties['properties'], 'sourceCulture', ['type' => 'keyword', 'include_in_all' => false]); + $this->setIfNotSet($typeProperties['properties'], 'sourceCulture', ['type' => 'keyword']); // We are using the same mapping for all the i18n fields $nestedI18nFields = []; @@ -342,7 +342,7 @@ protected function processForeignTypes(array &$typeProperties) $mapping = $this->mapping[$foreignTypeNameCamelized]; // Add id of the foreign resource - $mapping['properties']['id'] = ['type' => 'integer', 'include_in_all' => 'false']; + $mapping['properties']['id'] = ['type' => 'integer']; $typeProperties['properties'][$fieldNameCamelized] = $mapping; } @@ -368,7 +368,7 @@ protected function processPartialForeignTypes(array &$typeProperties) } // Add source culture property - $this->setIfNotSet($mapping['properties'], 'sourceCulture', ['type' => 'keyword', 'include_in_all' => false]); + $this->setIfNotSet($mapping['properties'], 'sourceCulture', ['type' => 'keyword']); $nestedI18nFields = []; foreach ($mapping['_i18nFields'] as $i18nFieldName) { @@ -403,7 +403,7 @@ protected function processPartialForeignTypes(array &$typeProperties) } // Add id of the partial foreign resource - $mapping['properties']['id'] = ['type' => 'integer', 'include_in_all' => 'false']; + $mapping['properties']['id'] = ['type' => 'integer']; $typeProperties['properties'][$fieldNameCamelized] = $mapping; } @@ -443,7 +443,7 @@ protected function getI18nFieldMapping($fieldName) { return [ 'type' => 'text', - 'include_in_all' => true, + 'copy_to' => '_all', ]; } @@ -492,7 +492,6 @@ protected function addSortFields($nestedI18nFields, $typeProperties) $nestedI18nFields[$item]['fields']['alphasort'] = [ 'type' => 'keyword', 'normalizer' => 'alphasort', - 'include_in_all' => false, ]; } diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php index bdab8839a3..4f6cc64eb8 100644 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php +++ b/plugins/arElasticSearchPlugin/lib/arElasticSearchPlugin.class.php @@ -103,8 +103,8 @@ public function __construct(array $options = []) // Iterate over types (actor, informationobject, ...) foreach ($this->mappings as $typeName => $typeProperties) { - $typeName = 'Qubit'.sfInflector::camelize($typeName); - array_push($this->index, $this->client->getIndex($typeName)); + $typeName = strtolower('qubit'.$typeName); + $this->index[$typeName] = $this->client->getIndex($typeName); } // Load batch mode configuration @@ -293,7 +293,7 @@ public function populate($options = []) // If excluding types then index as a whole hasn't been flushed: delete // type's documents if not updating if (count($excludeTypes) && !$update) { - $this->index['Qubit'.$camelizedTypeName]->deleteByQuery(new \Elastica\Query\MatchAll()); + $this->index['qubit'.$typeName]->deleteByQuery(new \Elastica\Query\MatchAll()); } $class = new $className(); @@ -351,6 +351,7 @@ public function disable() */ public function addDocument($data, $type) { + $type = strtolower($type); if (!isset($data['id'])) { throw new sfException('Failed to parse id field.'); } @@ -369,8 +370,8 @@ public function addDocument($data, $type) if ($this->batchMode) { if ($this->currentBatchType != $type) { - $this->currentBatchType = $type; $this->flushBatch(); + $this->currentBatchType = $type; foreach ($this->index as $index) { $index->refresh(); @@ -389,7 +390,7 @@ public function addDocument($data, $type) } } } else { - $this->index[$type]->addDocument($document); + $this->index[$type]->addDocuments([$document]); } } @@ -544,7 +545,7 @@ protected function initialize() $this->config['index']['configuration']['analysis']['char_filter']['diacritics_lowercase'] = $this->loadDiacriticsMappings(); } - foreach ($this->index as $index) { + foreach ($this->index as $type => $index) { try { $index->open(); } catch (Exception $e) { @@ -578,16 +579,19 @@ protected function initialize() // Iterate over types (actor, informationobject, ...) foreach ($this->mappings as $typeName => $typeProperties) { - $typeName = 'Qubit'.sfInflector::camelize($typeName); + if ($type != strtolower($typeName)) { + continue; + } + $typeName = strtolower('qubit'.$typeName); // Define mapping in elasticsearch $mapping = new \Elastica\Type\Mapping(); - $mapping->setType($index[$typeName]); + $mapping->setType($index->getType($typeName)); $mapping->setProperties($typeProperties['properties']); // Parse other parameters - unset($typeProperties['properties']); - foreach ($typeProperties as $key => $value) { + unset($this->mapping[$typeName]['properties']); + foreach ($this->mapping[$typeName]['properties'] as $key => $value) { $mapping->setParam($key, $value); } diff --git a/plugins/arElasticSearchPlugin/lib/arElasticSearchPluginUtil.class.php b/plugins/arElasticSearchPlugin/lib/arElasticSearchPluginUtil.class.php index 9283e41e5c..62485f9698 100644 --- a/plugins/arElasticSearchPlugin/lib/arElasticSearchPluginUtil.class.php +++ b/plugins/arElasticSearchPlugin/lib/arElasticSearchPluginUtil.class.php @@ -482,8 +482,8 @@ protected static function getAllObjectStringFields( // Get string fields included in _all elseif ( ( - !isset($propertyProperties['include_in_all']) - || $propertyProperties['include_in_all'] + !isset($propertyProperties['copy_to']) + || ($propertyProperties['copy_to'] == '_all') ) && ( isset($propertyProperties['type']) && 'text' == $propertyProperties['type'] From 826d0088d9c68ea3ab02d1ab9e59098851efa877 Mon Sep 17 00:00:00 2001 From: melaniekung Date: Fri, 4 Oct 2024 11:46:52 -0700 Subject: [PATCH 5/5] WIP: set index names to lowercase --- .../actor/actions/browseAction.class.php | 18 ++++++------- .../relatedInformationObjectsAction.class.php | 2 +- .../clipboard/actions/viewAction.class.php | 6 ++--- .../default/actions/moveAction.class.php | 4 +-- .../actions/autocompleteAction.class.php | 2 +- .../actions/browseAction.class.php | 26 +++++++++---------- .../actions/inventoryAction.class.php | 2 +- .../repository/actions/browseAction.class.php | 6 ++--- .../actions/holdingsAction.class.php | 2 +- .../actions/maintainedActorsAction.class.php | 2 +- .../actions/autocompleteAction.class.php | 14 +++++----- .../descriptionUpdatesAction.class.php | 10 +++---- .../search/actions/indexAction.class.php | 4 +-- .../taxonomy/actions/indexAction.class.php | 2 +- .../term/actions/indexAction.class.php | 6 ++--- .../navigateRelatedComponent.class.php | 2 +- .../relatedAuthoritiesAction.class.php | 2 +- lib/QubitLftSyncer.class.php | 4 +-- lib/job/arRepositoryCsvExportJob.class.php | 2 +- lib/job/arUpdateEsActorRelationsJob.class.php | 2 +- .../arUpdatePublicationStatusJob.class.php | 2 +- lib/model/QubitInformationObject.php | 2 +- lib/model/QubitTerm.php | 2 +- .../propel/propelGenerateSlugsTask.class.php | 2 +- lib/task/search/arSearchStatusTask.class.php | 2 +- .../updatePublicationStatusTask.class.php | 2 +- .../informationobjectsBrowseAction.class.php | 2 +- .../accession/actions/browseAction.class.php | 2 +- 28 files changed, 67 insertions(+), 67 deletions(-) diff --git a/apps/qubit/modules/actor/actions/browseAction.class.php b/apps/qubit/modules/actor/actions/browseAction.class.php index b8f0fa3615..dacdcab9eb 100644 --- a/apps/qubit/modules/actor/actions/browseAction.class.php +++ b/apps/qubit/modules/actor/actions/browseAction.class.php @@ -26,7 +26,7 @@ */ class ActorBrowseAction extends DefaultBrowseAction { - public const INDEX_TYPE = 'QubitActor'; + public const INDEX_TYPE = 'qubitactor'; // Arrays not allowed in class constants public static $NAMES = [ @@ -39,13 +39,13 @@ class ActorBrowseAction extends DefaultBrowseAction ]; public static $FILTERTAGS = [ 'hasDigitalObject' => [], - 'repository' => ['model' => 'QubitRepository'], - 'entityType' => ['model' => 'QubitTerm'], - 'relatedType' => ['model' => 'QubitTerm'], - 'occupation' => ['model' => 'QubitTerm'], - 'place' => ['model' => 'QubitTerm'], - 'subject' => ['model' => 'QubitTerm'], - 'mediatypes' => ['model' => 'QubitTerm'], + 'repository' => ['model' => 'qubitrepository'], + 'entityType' => ['model' => 'qubitterm'], + 'relatedType' => ['model' => 'qubitterm'], + 'occupation' => ['model' => 'qubitterm'], + 'place' => ['model' => 'qubitterm'], + 'subject' => ['model' => 'qubitterm'], + 'mediatypes' => ['model' => 'qubitterm'], 'emptyField' => [], ]; public static $AGGS = [ @@ -499,7 +499,7 @@ protected function doSearch($request) $this->search->query->setQuery($this->search->queryBool); - return QubitSearch::getInstance()->index['QubitActor']->search($this->search->getQuery(false)); + return QubitSearch::getInstance()->index['qubitactor']->search($this->search->getQuery(false)); } private function getRelatedAuthorityUsingSlug($slug) diff --git a/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php b/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php index f40f4ff63c..c9df190da3 100644 --- a/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php +++ b/apps/qubit/modules/actor/actions/relatedInformationObjectsAction.class.php @@ -108,7 +108,7 @@ public static function getRelatedInformationObjects($actorId, $page, $limit, $ev $query->setSize($limit); $query->setFrom($limit * ($page - 1)); - return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); + return QubitSearch::getInstance()->index['qubitinformationobject']->search($query); } public static function nestedActorAndEventTypeQuery($actorId, $eventTypeId) diff --git a/apps/qubit/modules/clipboard/actions/viewAction.class.php b/apps/qubit/modules/clipboard/actions/viewAction.class.php index cb24fa550a..a6968b81fc 100644 --- a/apps/qubit/modules/clipboard/actions/viewAction.class.php +++ b/apps/qubit/modules/clipboard/actions/viewAction.class.php @@ -34,7 +34,7 @@ public function execute($request) // Get entity type and class name $this->type = $request->getGetParameter('type', 'informationObject'); - $this->entityType = 'Qubit'.ucfirst($this->type); + $this->entityType = 'qubit'.strtolower($this->type); $slugs = $request->getPostParameter('slugs', []); @@ -45,7 +45,7 @@ public function execute($request) $this->setSortOptions(); $this->setESSort($request); - if ('QubitInformationObject' == $this->entityType) { + if ('qubitinformationobject' == $this->entityType) { QubitAclSearch::filterDrafts($this->search->queryBool); } @@ -88,7 +88,7 @@ private function setSortOptions() } // IO specific sort options - if ('QubitInformationObject' === $this->entityType) { + if ('qubitinformationobject' === $this->entityType) { $this->sortOptions['alphabetic'] = $this->context->i18n->__('Title'); $this->sortOptions['referenceCode'] = $this->context->i18n->__('Reference code'); $this->sortOptions['startDate'] = $this->context->i18n->__('Start date'); diff --git a/apps/qubit/modules/default/actions/moveAction.class.php b/apps/qubit/modules/default/actions/moveAction.class.php index f2f38e29c5..143ffe526a 100644 --- a/apps/qubit/modules/default/actions/moveAction.class.php +++ b/apps/qubit/modules/default/actions/moveAction.class.php @@ -140,10 +140,10 @@ public function execute($request) $this->query->setQuery($this->queryBool); if ($this->resource instanceof QubitInformationObject) { - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->query); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->query); } elseif ($this->resource instanceof QubitTerm) { // TODO: Add parent_id for terms in ES, add move button - $resultSet = QubitSearch::getInstance()->index['QubitTerm']->search($this->query); + $resultSet = QubitSearch::getInstance()->index['qubitterm']->search($this->query); } // Page results diff --git a/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php b/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php index fc63ed1ce2..222ec90171 100644 --- a/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php +++ b/apps/qubit/modules/informationobject/actions/autocompleteAction.class.php @@ -94,7 +94,7 @@ public function execute($request) $this->query->setQuery($this->queryBool); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->query); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->query); // Page results $this->pager = new QubitSearchPager($resultSet); diff --git a/apps/qubit/modules/informationobject/actions/browseAction.class.php b/apps/qubit/modules/informationobject/actions/browseAction.class.php index f28f9f8715..4dd2329b4e 100644 --- a/apps/qubit/modules/informationobject/actions/browseAction.class.php +++ b/apps/qubit/modules/informationobject/actions/browseAction.class.php @@ -23,7 +23,7 @@ */ class InformationObjectBrowseAction extends DefaultBrowseAction { - public const INDEX_TYPE = 'QubitInformationObject'; + public const INDEX_TYPE = 'qubitinformationobject'; // Arrays not allowed in class constants public static $NAMES = [ @@ -40,21 +40,21 @@ class InformationObjectBrowseAction extends DefaultBrowseAction 'findingAidStatus', ]; public static $FILTERTAGS = [ - 'repos' => ['model' => 'QubitRepository'], - 'collection' => ['model' => 'QubitInformationObject'], - 'creators' => ['model' => 'QubitActor'], - 'names' => ['model' => 'QubitActor'], - 'places' => ['model' => 'QubitTerm'], - 'levels' => ['model' => 'QubitTerm'], - 'subjects' => ['model' => 'QubitTerm'], - 'mediatypes' => ['model' => 'QubitTerm'], - 'copyrightStatus' => ['model' => 'QubitTerm'], - 'materialType' => ['model' => 'QubitTerm'], + 'repos' => ['model' => 'qubitrepository'], + 'collection' => ['model' => 'qubitinformationobject'], + 'creators' => ['model' => 'qubitactor'], + 'names' => ['model' => 'qubitactor'], + 'places' => ['model' => 'qubitterm'], + 'levels' => ['model' => 'qubitterm'], + 'subjects' => ['model' => 'qubitterm'], + 'mediatypes' => ['model' => 'qubitterm'], + 'copyrightStatus' => ['model' => 'qubitterm'], + 'materialType' => ['model' => 'qubitterm'], 'onlyMedia' => [], 'languages' => [], 'dateRange' => ['params' => ['startDate', 'endDate'], 'operator' => 'or'], 'findingAidStatus' => [], - 'ancestor' => ['model' => 'QubitInformationObject'], + 'ancestor' => ['model' => 'qubitinformationobject'], ]; public static $AGGS = [ 'languages' => [ @@ -244,7 +244,7 @@ public function execute($request) $this->setView($request); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->getQuery(false, true)); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->search->getQuery(false, true)); // Page results $this->pager = new QubitSearchPager($resultSet); diff --git a/apps/qubit/modules/informationobject/actions/inventoryAction.class.php b/apps/qubit/modules/informationobject/actions/inventoryAction.class.php index 735a6b10ef..b7404f1736 100644 --- a/apps/qubit/modules/informationobject/actions/inventoryAction.class.php +++ b/apps/qubit/modules/informationobject/actions/inventoryAction.class.php @@ -174,6 +174,6 @@ private static function getResults($resource, $limit = 10, $page = 1, $sort = nu QubitAclSearch::filterDrafts($queryBool); $query->setQuery($queryBool); - return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); + return QubitSearch::getInstance()->index['qubitinformationobject']->search($query); } } diff --git a/apps/qubit/modules/repository/actions/browseAction.class.php b/apps/qubit/modules/repository/actions/browseAction.class.php index 9eda3742df..3341db8e70 100644 --- a/apps/qubit/modules/repository/actions/browseAction.class.php +++ b/apps/qubit/modules/repository/actions/browseAction.class.php @@ -23,7 +23,7 @@ */ class RepositoryBrowseAction extends DefaultBrowseAction { - public const INDEX_TYPE = 'QubitRepository'; + public const INDEX_TYPE = 'qubitrepository'; // Arrays not allowed in class constants public static $AGGS = [ @@ -142,7 +142,7 @@ public function execute($request) $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index['QubitRepository']->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['qubitrepository']->search($this->search->query); $this->pager = new QubitSearchPager($resultSet); $this->pager->setPage($request->page ? $request->page : 1); @@ -201,7 +201,7 @@ private function getAdvancedFilterTerms() $query = new \Elastica\Query(new \Elastica\Query\MatchAll()); $query->setSize($limit); - $this->repositories = QubitSearch::getInstance()->index['QubitRepository']->search($query); + $this->repositories = QubitSearch::getInstance()->index['qubitrepository']->search($query); } /** diff --git a/apps/qubit/modules/repository/actions/holdingsAction.class.php b/apps/qubit/modules/repository/actions/holdingsAction.class.php index a794583af7..662823ed32 100644 --- a/apps/qubit/modules/repository/actions/holdingsAction.class.php +++ b/apps/qubit/modules/repository/actions/holdingsAction.class.php @@ -91,6 +91,6 @@ public static function getHoldings($id, $page, $limit) $title = sprintf('i18n.%s.title.alphasort', sfContext::getInstance()->user->getCulture()); $query->setSort([$title => 'asc']); - return QubitSearch::getInstance()->index['QubitInformationObject']->search($query); + return QubitSearch::getInstance()->index['qubitinformationobject']->search($query); } } diff --git a/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php b/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php index c0dd5a2830..289b49cf05 100644 --- a/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php +++ b/apps/qubit/modules/repository/actions/maintainedActorsAction.class.php @@ -82,6 +82,6 @@ public static function getActors($repositoryId, $page, $limit) $field = sprintf('i18n.%s.authorizedFormOfName.alphasort', sfContext::getInstance()->user->getCulture()); $query->setSort([$field => 'asc']); - return QubitSearch::getInstance()->index['QubitActor']->search($query); + return QubitSearch::getInstance()->index['qubitactor']->search($query); } } diff --git a/apps/qubit/modules/search/actions/autocompleteAction.class.php b/apps/qubit/modules/search/actions/autocompleteAction.class.php index 58c9c13727..c115ffb814 100644 --- a/apps/qubit/modules/search/actions/autocompleteAction.class.php +++ b/apps/qubit/modules/search/actions/autocompleteAction.class.php @@ -45,28 +45,28 @@ public function execute($request) $items = [ [ - 'type' => 'QubitInformationObject', + 'type' => 'qubitinformationobject', 'field' => sprintf('i18n.%s.title', $culture), 'fields' => ['slug', sprintf('i18n.%s.title', $culture), 'levelOfDescriptionId'], ], [ - 'type' => 'QubitRepository', + 'type' => 'qubitrepository', 'field' => sprintf('i18n.%s.authorizedFormOfName', $culture), 'fields' => ['slug', sprintf('i18n.%s.authorizedFormOfName', $culture)], ], [ - 'type' => 'QubitActor', + 'type' => 'qubitactor', 'field' => sprintf('i18n.%s.authorizedFormOfName', $culture), 'fields' => ['slug', sprintf('i18n.%s.authorizedFormOfName', $culture)], ], [ - 'type' => 'QubitTerm', + 'type' => 'qubitterm', 'field' => sprintf('i18n.%s.name', $culture), 'fields' => ['slug', sprintf('i18n.%s.name', $culture)], 'term_filter' => ['taxonomyId' => QubitTaxonomy::PLACE_ID], ], [ - 'type' => 'QubitTerm', + 'type' => 'qubitterm', 'field' => sprintf('i18n.%s.name', $culture), 'fields' => ['slug', sprintf('i18n.%s.name', $culture)], 'term_filter' => ['taxonomyId' => QubitTaxonomy::SUBJECT_ID], @@ -93,7 +93,7 @@ public function execute($request) $queryBool->addMust(new \Elastica\Query\Term($item['term_filter'])); } - if (isset($request->repos) && ctype_digit($request->repos) && 'QubitInformationObject' == $item['type']) { + if (isset($request->repos) && ctype_digit($request->repos) && 'qubitinformationobject' == $item['type']) { $queryBool->addMust(new \Elastica\Query\Term(['repository.id' => $request->repos])); // Store realm in user session @@ -103,7 +103,7 @@ public function execute($request) $this->context->user->removeAttribute('search-realm'); } - if ('QubitInformationObject' == $item['type']) { + if ('qubitinformationobject' == $item['type']) { QubitAclSearch::filterDrafts($queryBool); } diff --git a/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php b/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php index bd55877a2a..c2a4e7992f 100644 --- a/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php +++ b/apps/qubit/modules/search/actions/descriptionUpdatesAction.class.php @@ -201,11 +201,11 @@ protected function addField($name) switch ($name) { case 'className': $choices = [ - 'QubitInformationObject' => sfConfig::get('app_ui_label_informationobject'), - 'QubitActor' => sfConfig::get('app_ui_label_actor'), - 'QubitRepository' => sfConfig::get('app_ui_label_repository'), - 'QubitTerm' => sfConfig::get('app_ui_label_term'), - 'QubitFunctionObject' => sfConfig::get('app_ui_label_function'), + 'qubitinformationobject' => sfConfig::get('app_ui_label_informationobject'), + 'qubitactor' => sfConfig::get('app_ui_label_actor'), + 'qubitrepository' => sfConfig::get('app_ui_label_repository'), + 'qubitterm' => sfConfig::get('app_ui_label_term'), + 'qubitfunctionobject' => sfConfig::get('app_ui_label_function'), ]; $this->form->setValidator($name, new sfValidatorString()); diff --git a/apps/qubit/modules/search/actions/indexAction.class.php b/apps/qubit/modules/search/actions/indexAction.class.php index fa6a711513..75d229324d 100644 --- a/apps/qubit/modules/search/actions/indexAction.class.php +++ b/apps/qubit/modules/search/actions/indexAction.class.php @@ -20,7 +20,7 @@ // Notice that his is also used in XHR context (see treeview search) class SearchIndexAction extends DefaultBrowseAction { - public const INDEX_TYPE = 'QubitInformationObject'; + public const INDEX_TYPE = 'qubitinformationobject'; public function execute($request) { @@ -48,7 +48,7 @@ public function execute($request) QubitAclSearch::filterDrafts($this->search->queryBool); $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->search->query); $total = $resultSet->getTotalHits(); if (1 > $total) { diff --git a/apps/qubit/modules/taxonomy/actions/indexAction.class.php b/apps/qubit/modules/taxonomy/actions/indexAction.class.php index 51572e4a33..7ef8cda64c 100644 --- a/apps/qubit/modules/taxonomy/actions/indexAction.class.php +++ b/apps/qubit/modules/taxonomy/actions/indexAction.class.php @@ -224,7 +224,7 @@ public function execute($request) $this->query->setSort(['updatedAt' => $request->sortDir]); } - $resultSet = QubitSearch::getInstance()->index['QubitTerm']->search($this->query); + $resultSet = QubitSearch::getInstance()->index['qubitterm']->search($this->query); // Return special response in JSON for XHR requests if ($request->isXmlHttpRequest()) { diff --git a/apps/qubit/modules/term/actions/indexAction.class.php b/apps/qubit/modules/term/actions/indexAction.class.php index 1e5b9a31d2..adf013ea67 100644 --- a/apps/qubit/modules/term/actions/indexAction.class.php +++ b/apps/qubit/modules/term/actions/indexAction.class.php @@ -19,7 +19,7 @@ class TermIndexAction extends DefaultBrowseAction { - public const INDEX_TYPE = 'QubitInformationObject'; + public const INDEX_TYPE = 'qubitinformationobject'; // Arrays not allowed in class constants public static $AGGS = [ @@ -248,7 +248,7 @@ public function execute($request) QubitAclSearch::filterDrafts($this->search->queryBool); $this->search->query->setQuery($this->search->queryBool); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->query); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->search->query); // Page results $this->pager = new QubitSearchPager($resultSet); @@ -328,7 +328,7 @@ protected function loadListTerms($request) $listQueryBool->addMust(new \Elastica\Query\Term(['taxonomyId' => $this->resource->taxonomyId])); $listQuery->setQuery($listQueryBool); - $this->listResultSet = QubitSearch::getInstance()->index['QubitTerm']->search($listQuery); + $this->listResultSet = QubitSearch::getInstance()->index['qubitterm']->search($listQuery); // Page list results $this->listPager = new QubitSearchPager($this->listResultSet); diff --git a/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php b/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php index 724bf61b54..f94fdb5b18 100644 --- a/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php +++ b/apps/qubit/modules/term/actions/navigateRelatedComponent.class.php @@ -58,7 +58,7 @@ public static function getEsDocsRelatedToTerm($relatedModelClass, $term, $option $search->query->setQuery($search->queryBool->addMust($query)); // Filter out drafts if querying descriptions - if ('QubitInformationObject' == $relatedModelClass) { + if ('qubitinformationobject' == $relatedModelClass) { QubitAclSearch::filterDrafts($search->queryBool); } diff --git a/apps/qubit/modules/term/actions/relatedAuthoritiesAction.class.php b/apps/qubit/modules/term/actions/relatedAuthoritiesAction.class.php index e8aae3d003..afadac6270 100644 --- a/apps/qubit/modules/term/actions/relatedAuthoritiesAction.class.php +++ b/apps/qubit/modules/term/actions/relatedAuthoritiesAction.class.php @@ -19,7 +19,7 @@ class TermRelatedAuthoritiesAction extends TermIndexAction { - public const INDEX_TYPE = 'QubitActor'; + public const INDEX_TYPE = 'qubitactor'; // Arrays not allowed in class constants public static $FILTERTAGS = []; diff --git a/lib/QubitLftSyncer.class.php b/lib/QubitLftSyncer.class.php index ed9baabdce..02749dbbf7 100644 --- a/lib/QubitLftSyncer.class.php +++ b/lib/QubitLftSyncer.class.php @@ -93,8 +93,8 @@ private function repairEsChildrenLftValues() $results = QubitPdo::fetchAll($sql, $params, ['fetchMode' => PDO::FETCH_ASSOC]); $bulk = new Elastica\Bulk(QubitSearch::getInstance()->client); - $bulk->setIndex(QubitSearch::getInstance()->index['QubitInformationObject']->getName()); - $bulk->setType('QubitInformationObject'); + $bulk->setIndex(QubitSearch::getInstance()->index['qubitinformationobject']->getName()); + $bulk->setType('qubitinformationobject'); foreach ($results as $row) { $bulk->addAction( diff --git a/lib/job/arRepositoryCsvExportJob.class.php b/lib/job/arRepositoryCsvExportJob.class.php index d533142cf7..1152f5a488 100644 --- a/lib/job/arRepositoryCsvExportJob.class.php +++ b/lib/job/arRepositoryCsvExportJob.class.php @@ -85,7 +85,7 @@ protected function exportResults($path) { $itemsExported = 0; - $search = QubitSearch::getInstance()->index['QubitRepository']->createSearch($this->search->getQuery(false, false)); + $search = QubitSearch::getInstance()->index['qubitrepository']->createSearch($this->search->getQuery(false, false)); $writer = new csvRepositoryExport($path, null, 10000); $writer->loadResourceSpecificConfiguration('QubitRepository'); diff --git a/lib/job/arUpdateEsActorRelationsJob.class.php b/lib/job/arUpdateEsActorRelationsJob.class.php index b032b146db..99e8079e4e 100644 --- a/lib/job/arUpdateEsActorRelationsJob.class.php +++ b/lib/job/arUpdateEsActorRelationsJob.class.php @@ -102,7 +102,7 @@ public static function previousRelationActorIds($actorId) { try { // Get actor's previously indexed relations from Elasticsearch - $doc = QubitSearch::getInstance()->index['QubitActor']->getDocument($actorId); + $doc = QubitSearch::getInstance()->index['qubitactor']->getDocument($actorId); return self::uniqueIdsFromRelationData($doc->getData()['actorRelations']); } catch (\Elastica\Exception\NotFoundException $e) { diff --git a/lib/job/arUpdatePublicationStatusJob.class.php b/lib/job/arUpdatePublicationStatusJob.class.php index 9fa6073a9f..a3d3c503a5 100644 --- a/lib/job/arUpdatePublicationStatusJob.class.php +++ b/lib/job/arUpdatePublicationStatusJob.class.php @@ -91,7 +91,7 @@ public function runJob($parameters) 'conflicts' => 'proceed', ]; - $response = QubitSearch::getInstance()->index['QubitTerm']->updateByQuery($query, $queryScript, $options)->getData(); + $response = QubitSearch::getInstance()->index['qubitterm']->updateByQuery($query, $queryScript, $options)->getData(); $message = $this->i18n->__( 'Index update completed in %1 ms.', diff --git a/lib/model/QubitInformationObject.php b/lib/model/QubitInformationObject.php index 85a7562ad3..980e11fc3b 100644 --- a/lib/model/QubitInformationObject.php +++ b/lib/model/QubitInformationObject.php @@ -2183,7 +2183,7 @@ public static function getByTitleIdentifierAndRepo($identifier, $title, $repoNam $query = new \Elastica\Query($queryBool); $query->setSize(1); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($query); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($query); if ($resultSet->count()) { return $resultSet[0]->getId(); diff --git a/lib/model/QubitTerm.php b/lib/model/QubitTerm.php index 9e88346049..1441fe0364 100644 --- a/lib/model/QubitTerm.php +++ b/lib/model/QubitTerm.php @@ -895,7 +895,7 @@ public static function getEsTermsByTaxonomyId($taxonomyId, $limit = 10) $query = new \Elastica\Query($queryBool); $query->setSize($limit); - return QubitSearch::getInstance()->index['QubitTerm']->search($query); + return QubitSearch::getInstance()->index['qubitterm']->search($query); } /** diff --git a/lib/task/propel/propelGenerateSlugsTask.class.php b/lib/task/propel/propelGenerateSlugsTask.class.php index 4980ce5c2d..9367c6b484 100644 --- a/lib/task/propel/propelGenerateSlugsTask.class.php +++ b/lib/task/propel/propelGenerateSlugsTask.class.php @@ -311,7 +311,7 @@ private function getSlugStringFromES($id, $property) $query->setQuery($queryBool); $query->setSize(1); - $results = QubitSearch::getInstance()->index['QubitInformationObject']->search($query); + $results = QubitSearch::getInstance()->index['qubitinformationobject']->search($query); if (!$results->count()) { return null; diff --git a/lib/task/search/arSearchStatusTask.class.php b/lib/task/search/arSearchStatusTask.class.php index 6af2d1578a..3e0a45ded1 100644 --- a/lib/task/search/arSearchStatusTask.class.php +++ b/lib/task/search/arSearchStatusTask.class.php @@ -76,7 +76,7 @@ private function availableDocumentTypes() private function objectsIndexed($docType) { // Determine model class name from document type name - $docTypeModelClass = 'Qubit'.ucfirst($docType); + $docTypeModelClass = 'qubit'.strtolower($docType); return QubitSearch::getInstance()->index[$docTypeModelClass]->count(); } diff --git a/lib/task/tools/updatePublicationStatusTask.class.php b/lib/task/tools/updatePublicationStatusTask.class.php index 50f3f2f346..4e9b172b4f 100644 --- a/lib/task/tools/updatePublicationStatusTask.class.php +++ b/lib/task/tools/updatePublicationStatusTask.class.php @@ -173,7 +173,7 @@ protected function updatePublicationStatusDescendants($resource, $publicationSta $options = ['conflicts' => 'proceed']; - $response = QubitSearch::getInstance()->index['QubitTerm']->updateByQuery($query, $queryScript, $options)->getData(); + $response = QubitSearch::getInstance()->index['qubitterm']->updateByQuery($query, $queryScript, $options)->getData(); if (!empty($response['failures'])) { $this->failures += count($response['failures']); diff --git a/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php b/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php index e9459fe11d..c1c37ba879 100644 --- a/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php +++ b/plugins/arRestApiPlugin/modules/api/actions/informationobjectsBrowseAction.class.php @@ -96,7 +96,7 @@ protected function get($request) $this->search->query->setSort([$field => $order]); - $resultSet = QubitSearch::getInstance()->index['QubitInformationObject']->search($this->search->getQuery(false, true)); + $resultSet = QubitSearch::getInstance()->index['qubitinformationobject']->search($this->search->getQuery(false, true)); // Build array from results $results = $lodMapping = []; diff --git a/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php b/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php index b5cd071a46..6a873c5934 100644 --- a/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php +++ b/plugins/qtAccessionPlugin/modules/accession/actions/browseAction.class.php @@ -154,7 +154,7 @@ public function execute($request) break; } - $resultSet = QubitSearch::getInstance()->index['QubitAccession']->search($this->query); + $resultSet = QubitSearch::getInstance()->index['qubitaccession']->search($this->query); $this->pager = new QubitSearchPager($resultSet); $this->pager->setPage($request->page ? $request->page : 1);