From 6bbc0c29d6681c2a6794dd388a7aca637179d8f4 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:14:51 +0200 Subject: [PATCH 01/11] Working connector with S3 amazon and duckDB --- .env.test | 2 +- Dockerfile | 7 + Dockerfile-dev | 11 + README.md | 1 - bin/console | 2 +- composer.json | 8 +- composer.lock | 1025 ++++++++++++++++- config/services.yaml | 23 +- src/Import/Application/Importer.php | 32 +- .../Application/Logger/DownloadFinished.php | 24 + .../Application/Logger/DownloadStarted.php | 24 + .../Application/Processor/Processor.php | 12 + .../Application/Transporter/Transporter.php | 10 + src/Import/Domain/DuckDb/FileConverter.php | 8 + .../Infrastructure/Cli/ImportCommand.php | 8 +- .../FailedQueryExecutionException.php | 15 + .../DuckDb/ParquetFileConverter.php | 25 + .../Exception/FileOpenFailException.php | 15 + .../Processor/JsonProcessor.php | 31 + .../Exception/ConnectionException.php | 19 + .../Transporter/Exception/DownloadFailed.php | 19 + .../Transporter/Factory/FilesystemFactory.php | 16 + .../Transporter/Factory/S3AdapterFactory.php | 20 + .../Transporter/Factory/S3ClientFactory.php | 19 + .../Transporter/S3Transporter.php | 40 + src/Kernel.php | 2 +- 26 files changed, 1366 insertions(+), 52 deletions(-) create mode 100644 Dockerfile-dev create mode 100644 src/Import/Application/Logger/DownloadFinished.php create mode 100644 src/Import/Application/Logger/DownloadStarted.php create mode 100644 src/Import/Application/Processor/Processor.php create mode 100644 src/Import/Application/Transporter/Transporter.php create mode 100644 src/Import/Domain/DuckDb/FileConverter.php create mode 100644 src/Import/Infrastructure/DuckDb/Exception/FailedQueryExecutionException.php create mode 100644 src/Import/Infrastructure/DuckDb/ParquetFileConverter.php create mode 100644 src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php create mode 100644 src/Import/Infrastructure/Processor/JsonProcessor.php create mode 100644 src/Import/Infrastructure/Transporter/Exception/ConnectionException.php create mode 100644 src/Import/Infrastructure/Transporter/Exception/DownloadFailed.php create mode 100644 src/Import/Infrastructure/Transporter/Factory/FilesystemFactory.php create mode 100644 src/Import/Infrastructure/Transporter/Factory/S3AdapterFactory.php create mode 100644 src/Import/Infrastructure/Transporter/Factory/S3ClientFactory.php create mode 100644 src/Import/Infrastructure/Transporter/S3Transporter.php diff --git a/.env.test b/.env.test index ef7659f..710cfb1 100644 --- a/.env.test +++ b/.env.test @@ -1 +1 @@ -KERNEL_CLASS='Productsup\BinCdeAppSkeleton\Kernel' +KERNEL_CLASS='Productsup\BinCdeAmazonS3Parquet\Kernel' diff --git a/Dockerfile b/Dockerfile index 8d39414..b565311 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,6 +5,13 @@ COPY config/ ./config COPY bin/ ./bin COPY .env composer.json composer.lock symfony.lock ./ +RUN apt-get update && apt-get install -y jq + +RUN wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip \ + && unzip duckdb_cli-linux-amd64.zip -d /usr/local/bin \ + && rm duckdb_cli-linux-amd64.zip +RUN duckdb -s "INSTALL json;LOAD json;" + ARG COMPOSER_AUTH=local RUN composer install --no-dev RUN bin/console cache:warmup --env=prod diff --git a/Dockerfile-dev b/Dockerfile-dev new file mode 100644 index 0000000..fcdc202 --- /dev/null +++ b/Dockerfile-dev @@ -0,0 +1,11 @@ +FROM docker.productsup.com/cde/cde-php-cli-dev:8.3 + + +RUN apt-get update && apt-get install -y jq +RUN apt-get install -y wget unzip + +RUN wget https://github.com/duckdb/duckdb/releases/download/v1.0.0/duckdb_cli-linux-amd64.zip \ + && unzip duckdb_cli-linux-amd64.zip -d /usr/local/bin \ + && rm duckdb_cli-linux-amd64.zip +RUN duckdb -s "INSTALL json;LOAD json;" + diff --git a/README.md b/README.md index 6221871..e69de29 100644 --- a/README.md +++ b/README.md @@ -1 +0,0 @@ -# bin-cde-app-skeleton \ No newline at end of file diff --git a/bin/console b/bin/console index 2741776..fa466b7 100755 --- a/bin/console +++ b/bin/console @@ -1,7 +1,7 @@ #!/usr/bin/env php =8.3", "ext-ctype": "*", "ext-iconv": "*", + "async-aws/simple-s3": "^2.1", + "league/flysystem": "^3.28", + "league/flysystem-async-aws-s3": "^3.28", + "league/flysystem-aws-s3-v3": "^3.28", "productsupcom/dk-core-bundle": "v0.0.*", "productsupcom/lib-dk-testing": "v0.0.*", "symfony/console": "7.0.*", @@ -45,12 +49,12 @@ }, "autoload": { "psr-4": { - "Productsup\\BinCdeAppSkeleton\\": "src/" + "Productsup\\BinCdeAmazonS3Parquet\\": "src/" } }, "autoload-dev": { "psr-4": { - "Productsup\\BinCdeAppSkeleton\\Tests\\": "tests/" + "Productsup\\BinCdeAmazonS3Parquet\\Tests\\": "tests/" } }, "replace": { diff --git a/composer.lock b/composer.lock index 92f701b..09e22d3 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,372 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "95b12e0907452c6c19f285d88b60e847", + "content-hash": "ea28cd44dab67f65841080cd66336542", "packages": [ + { + "name": "async-aws/core", + "version": "1.22.0", + "source": { + "type": "git", + "url": "https://github.com/async-aws/core.git", + "reference": "cbd7012890a35a9b21f7235817a627488709551b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/async-aws/core/zipball/cbd7012890a35a9b21f7235817a627488709551b", + "reference": "cbd7012890a35a9b21f7235817a627488709551b", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-hash": "*", + "ext-json": "*", + "ext-simplexml": "*", + "php": "^7.2.5 || ^8.0", + "psr/cache": "^1.0 || ^2.0 || ^3.0", + "psr/log": "^1.0 || ^2.0 || ^3.0", + "symfony/deprecation-contracts": "^2.1 || ^3.0", + "symfony/http-client": "^4.4.16 || ^5.1.7 || ^6.0 || ^7.0", + "symfony/http-client-contracts": "^1.1.8 || ^2.0 || ^3.0", + "symfony/service-contracts": "^1.0 || ^2.0 || ^3.0" + }, + "conflict": { + "async-aws/s3": "<1.1", + "symfony/http-client": "5.2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.22-dev" + } + }, + "autoload": { + "psr-4": { + "AsyncAws\\Core\\": "src" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "description": "Core package to integrate with AWS. This is a lightweight AWS SDK provider by AsyncAws.", + "keywords": [ + "amazon", + "async-aws", + "aws", + "sdk", + "sts" + ], + "support": { + "source": "https://github.com/async-aws/core/tree/1.22.0" + }, + "funding": [ + { + "url": "https://github.com/jderusse", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-07-03T17:28:59+00:00" + }, + { + "name": "async-aws/s3", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/async-aws/s3.git", + "reference": "a09f7258ee6f09dffcd57b612d72aefea7783649" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/async-aws/s3/zipball/a09f7258ee6f09dffcd57b612d72aefea7783649", + "reference": "a09f7258ee6f09dffcd57b612d72aefea7783649", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "async-aws/core": "^1.22", + "ext-dom": "*", + "ext-filter": "*", + "ext-hash": "*", + "ext-simplexml": "*", + "php": "^7.2.5 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3-dev" + } + }, + "autoload": { + "psr-4": { + "AsyncAws\\S3\\": "src" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "description": "S3 client, part of the AWS SDK provided by AsyncAws.", + "keywords": [ + "amazon", + "async-aws", + "aws", + "s3", + "sdk" + ], + "support": { + "source": "https://github.com/async-aws/s3/tree/2.3.0" + }, + "funding": [ + { + "url": "https://github.com/jderusse", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-07-03T17:28:59+00:00" + }, + { + "name": "async-aws/simple-s3", + "version": "2.1.0", + "source": { + "type": "git", + "url": "https://github.com/async-aws/simple-s3.git", + "reference": "c68edb5fb92971cf2ac18770a842159ca4ac8ac4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/async-aws/simple-s3/zipball/c68edb5fb92971cf2ac18770a842159ca4ac8ac4", + "reference": "c68edb5fb92971cf2ac18770a842159ca4ac8ac4", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "async-aws/s3": "^2.0", + "ext-json": "*", + "php": "^7.2.5 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1-dev" + } + }, + "autoload": { + "psr-4": { + "AsyncAws\\SimpleS3\\": "src" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "description": "A simple S3 client that are easy to work with. ", + "keywords": [ + "amazon", + "async-aws", + "aws", + "s3", + "sdk" + ], + "support": { + "source": "https://github.com/async-aws/simple-s3/tree/2.1.0" + }, + "funding": [ + { + "url": "https://github.com/jderusse", + "type": "github" + }, + { + "url": "https://github.com/nyholm", + "type": "github" + } + ], + "time": "2024-01-09T08:38:58+00:00" + }, + { + "name": "aws/aws-crt-php", + "version": "v1.2.6", + "source": { + "type": "git", + "url": "https://github.com/awslabs/aws-crt-php.git", + "reference": "a63485b65b6b3367039306496d49737cf1995408" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/awslabs/aws-crt-php/zipball/a63485b65b6b3367039306496d49737cf1995408", + "reference": "a63485b65b6b3367039306496d49737cf1995408", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35||^5.6.3||^9.5", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "ext-awscrt": "Make sure you install awscrt native extension to use any of the functionality." + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "AWS SDK Common Runtime Team", + "email": "aws-sdk-common-runtime@amazon.com" + } + ], + "description": "AWS Common Runtime for PHP", + "homepage": "https://github.com/awslabs/aws-crt-php", + "keywords": [ + "amazon", + "aws", + "crt", + "sdk" + ], + "support": { + "issues": "https://github.com/awslabs/aws-crt-php/issues", + "source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.6" + }, + "time": "2024-06-13T17:21:28+00:00" + }, + { + "name": "aws/aws-sdk-php", + "version": "3.316.5", + "source": { + "type": "git", + "url": "https://github.com/aws/aws-sdk-php.git", + "reference": "1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59", + "reference": "1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "aws/aws-crt-php": "^1.2.3", + "ext-json": "*", + "ext-pcre": "*", + "ext-simplexml": "*", + "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5 <7.9.0", + "guzzlehttp/promises": "^1.4.0 || ^2.0", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5 <2.7.0", + "mtdowling/jmespath.php": "^2.6", + "php": ">=7.2.5", + "psr/http-message": "^1.0 || ^2.0" + }, + "require-dev": { + "andrewsville/php-token-reflection": "^1.4", + "aws/aws-php-sns-message-validator": "~1.0", + "behat/behat": "~3.0", + "composer/composer": "^1.10.22", + "dms/phpunit-arraysubset-asserts": "^0.4.0", + "doctrine/cache": "~1.4", + "ext-dom": "*", + "ext-openssl": "*", + "ext-pcntl": "*", + "ext-sockets": "*", + "nette/neon": "^2.3", + "paragonie/random_compat": ">= 2", + "phpunit/phpunit": "^5.6.3 || ^8.5 || ^9.5", + "psr/cache": "^1.0", + "psr/simple-cache": "^1.0", + "sebastian/comparator": "^1.2.3 || ^4.0", + "yoast/phpunit-polyfills": "^1.0" + }, + "suggest": { + "aws/aws-php-sns-message-validator": "To validate incoming SNS notifications", + "doctrine/cache": "To use the DoctrineCacheAdapter", + "ext-curl": "To send requests using cURL", + "ext-openssl": "Allows working with CloudFront private distributions and verifying received SNS messages", + "ext-sockets": "To use client-side monitoring" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "files": [ + "src/functions.php" + ], + "psr-4": { + "Aws\\": "src/" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Amazon Web Services", + "homepage": "http://aws.amazon.com" + } + ], + "description": "AWS SDK for PHP - Use Amazon Web Services in your PHP project", + "homepage": "http://aws.amazon.com/sdkforphp", + "keywords": [ + "amazon", + "aws", + "cloud", + "dynamodb", + "ec2", + "glacier", + "s3", + "sdk" + ], + "support": { + "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", + "issues": "https://github.com/aws/aws-sdk-php/issues", + "source": "https://github.com/aws/aws-sdk-php/tree/3.316.5" + }, + "time": "2024-07-22T18:06:32+00:00" + }, { "name": "brick/math", "version": "0.12.1", @@ -886,20 +1250,358 @@ "support": { "source": "https://github.com/janephp/open-api-common/tree/v7.8.0" }, - "time": "2024-07-03T12:43:38+00:00" + "time": "2024-07-03T12:43:38+00:00" + }, + { + "name": "jane-php/open-api-runtime", + "version": "v7.8.0", + "source": { + "type": "git", + "url": "https://github.com/janephp/open-api-runtime.git", + "reference": "af43ccffdb9537adcc32d60df13f553d7554b7bd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/janephp/open-api-runtime/zipball/af43ccffdb9537adcc32d60df13f553d7554b7bd", + "reference": "af43ccffdb9537adcc32d60df13f553d7554b7bd", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "jane-php/json-schema-runtime": "^7.0", + "nyholm/psr7": "^1.8", + "php": "^8.0", + "php-http/client-common": "^2.0", + "php-http/discovery": "^1.6", + "php-http/multipart-stream-builder": "^1.0", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5", + "symfony/serializer": "^5.4 || ^6.4 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-next": "7-dev" + } + }, + "autoload": { + "psr-4": { + "Jane\\Component\\OpenApiRuntime\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joel Wurtz", + "email": "jwurtz@jolicode.com" + }, + { + "name": "Baptiste Leduc", + "email": "baptiste.leduc@gmail.com" + } + ], + "description": "Jane OpenAPI Runtime Library, dependencies and utility class for a library generated by jane/openapi", + "support": { + "source": "https://github.com/janephp/open-api-runtime/tree/v7.8.0" + }, + "time": "2024-01-31T09:32:00+00:00" + }, + { + "name": "league/flysystem", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "reference": "e611adab2b1ae2e3072fa72d62c62f52c2bf1f0c", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "league/flysystem-local": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "async-aws/core": "<1.19.0", + "async-aws/s3": "<1.14.0", + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5 || ^2.0", + "async-aws/simple-s3": "^1.1 || ^2.0", + "aws/aws-sdk-php": "^3.295.10", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-mongodb": "^1.3", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "guzzlehttp/psr7": "^2.6", + "microsoft/azure-storage-blob": "^1.1", + "mongodb/mongodb": "^1.2", + "phpseclib/phpseclib": "^3.0.36", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^9.5.11|^10.0", + "sabre/dav": "^4.6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.28.0" + }, + "time": "2024-05-22T10:09:12+00:00" + }, + { + "name": "league/flysystem-async-aws-s3", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-async-aws-s3.git", + "reference": "f0b16442d22adf43b0eae2a4cd6b96b6d70e8f6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-async-aws-s3/zipball/f0b16442d22adf43b0eae2a4cd6b96b6d70e8f6c", + "reference": "f0b16442d22adf43b0eae2a4cd6b96b6d70e8f6c", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "async-aws/s3": "^1.5 || ^2.0", + "league/flysystem": "^3.10.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/simple-s3": "^2.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\AsyncAwsS3\\": "" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "AsyncAws S3 filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "async-aws", + "aws", + "file", + "files", + "filesystem", + "s3", + "storage" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-async-aws-s3/tree/3.28.0" + }, + "time": "2024-05-06T20:05:52+00:00" + }, + { + "name": "league/flysystem-aws-s3-v3", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-aws-s3-v3.git", + "reference": "22071ef1604bc776f5ff2468ac27a752514665c8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-aws-s3-v3/zipball/22071ef1604bc776f5ff2468ac27a752514665c8", + "reference": "22071ef1604bc776f5ff2468ac27a752514665c8", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "aws/aws-sdk-php": "^3.295.10", + "league/flysystem": "^3.10.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\AwsS3V3\\": "" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "AWS S3 filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "aws", + "file", + "files", + "filesystem", + "s3", + "storage" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-aws-s3-v3/tree/3.28.0" + }, + "time": "2024-05-06T20:05:52+00:00" + }, + { + "name": "league/flysystem-local", + "version": "3.28.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-local.git", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "reference": "13f22ea8be526ea58c2ddff9e158ef7c296e4f40", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "ext-fileinfo": "*", + "league/flysystem": "^3.0.0", + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\Local\\": "" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Local filesystem adapter for Flysystem.", + "keywords": [ + "Flysystem", + "file", + "files", + "filesystem", + "local" + ], + "support": { + "source": "https://github.com/thephpleague/flysystem-local/tree/3.28.0" + }, + "time": "2024-05-06T20:05:52+00:00" }, { - "name": "jane-php/open-api-runtime", - "version": "v7.8.0", + "name": "league/mime-type-detection", + "version": "1.15.0", "source": { "type": "git", - "url": "https://github.com/janephp/open-api-runtime.git", - "reference": "af43ccffdb9537adcc32d60df13f553d7554b7bd" + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/janephp/open-api-runtime/zipball/af43ccffdb9537adcc32d60df13f553d7554b7bd", - "reference": "af43ccffdb9537adcc32d60df13f553d7554b7bd", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", + "reference": "ce0f4d1e8a6f4eb0ddff33f57c69c50fd09f4301", "shasum": "", "mirrors": [ { @@ -909,33 +1611,19 @@ ] }, "require": { - "jane-php/json-schema-runtime": "^7.0", - "nyholm/psr7": "^1.8", - "php": "^8.0", - "php-http/client-common": "^2.0", - "php-http/discovery": "^1.6", - "php-http/multipart-stream-builder": "^1.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "symfony/options-resolver": "^5.4 || ^6.4 || ^7.0" + "ext-fileinfo": "*", + "php": "^7.4 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^8.5", - "symfony/serializer": "^5.4 || ^6.4 || ^7.0" + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-next": "7-dev" - } - }, "autoload": { "psr-4": { - "Jane\\Component\\OpenApiRuntime\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "League\\MimeTypeDetection\\": "src" + } }, "notification-url": "https://repo.packagist.com/productsupcom/downloads/", "license": [ @@ -943,19 +1631,26 @@ ], "authors": [ { - "name": "Joel Wurtz", - "email": "jwurtz@jolicode.com" - }, - { - "name": "Baptiste Leduc", - "email": "baptiste.leduc@gmail.com" + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" } ], - "description": "Jane OpenAPI Runtime Library, dependencies and utility class for a library generated by jane/openapi", + "description": "Mime-type detection for Flysystem", "support": { - "source": "https://github.com/janephp/open-api-runtime/tree/v7.8.0" + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.15.0" }, - "time": "2024-01-31T09:32:00+00:00" + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2024-01-28T23:22:08+00:00" }, { "name": "league/uri", @@ -1251,6 +1946,78 @@ ], "time": "2024-04-12T20:52:51+00:00" }, + { + "name": "mtdowling/jmespath.php", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/jmespath/jmespath.php.git", + "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b", + "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": "^7.2.5 || ^8.0", + "symfony/polyfill-mbstring": "^1.17" + }, + "require-dev": { + "composer/xdebug-handler": "^3.0.3", + "phpunit/phpunit": "^8.5.33" + }, + "bin": [ + "bin/jp.php" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev" + } + }, + "autoload": { + "files": [ + "src/JmesPath.php" + ], + "psr-4": { + "JmesPath\\": "src/" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Declaratively specify how to extract elements from a JSON document", + "keywords": [ + "json", + "jsonpath" + ], + "support": { + "issues": "https://github.com/jmespath/jmespath.php/issues", + "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0" + }, + "time": "2023-08-25T10:54:48+00:00" + }, { "name": "nikic/php-parser", "version": "v5.1.0", @@ -4275,6 +5042,188 @@ ], "time": "2024-04-18T09:29:19+00:00" }, + { + "name": "symfony/http-client", + "version": "v7.0.9", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client.git", + "reference": "10be5723e079acf878f7c4350021539e2071fac2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client/zipball/10be5723e079acf878f7c4350021539e2071fac2", + "reference": "10be5723e079acf878f7c4350021539e2071fac2", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=8.2", + "psr/log": "^1|^2|^3", + "symfony/http-client-contracts": "^3.4.1", + "symfony/service-contracts": "^2.5|^3" + }, + "conflict": { + "php-http/discovery": "<1.15", + "symfony/http-foundation": "<6.4" + }, + "provide": { + "php-http/async-client-implementation": "*", + "php-http/client-implementation": "*", + "psr/http-client-implementation": "1.0", + "symfony/http-client-implementation": "3.0" + }, + "require-dev": { + "amphp/amp": "^2.5", + "amphp/http-client": "^4.2.1", + "amphp/http-tunnel": "^1.0", + "amphp/socket": "^1.1", + "guzzlehttp/promises": "^1.4|^2.0", + "nyholm/psr7": "^1.0", + "php-http/httplug": "^1.0|^2.0", + "psr/http-client": "^1.0", + "symfony/dependency-injection": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/messenger": "^6.4|^7.0", + "symfony/process": "^6.4|^7.0", + "symfony/stopwatch": "^6.4|^7.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", + "homepage": "https://symfony.com", + "keywords": [ + "http" + ], + "support": { + "source": "https://github.com/symfony/http-client/tree/v7.0.9" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-06-28T07:59:17+00:00" + }, + { + "name": "symfony/http-client-contracts", + "version": "v3.5.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/http-client-contracts.git", + "reference": "20414d96f391677bf80078aa55baece78b82647d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/20414d96f391677bf80078aa55baece78b82647d", + "reference": "20414d96f391677bf80078aa55baece78b82647d", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=8.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.5-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Contracts\\HttpClient\\": "" + }, + "exclude-from-classmap": [ + "/Test/" + ] + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Generic abstractions related to HTTP clients", + "homepage": "https://symfony.com", + "keywords": [ + "abstractions", + "contracts", + "decoupling", + "interfaces", + "interoperability", + "standards" + ], + "support": { + "source": "https://github.com/symfony/http-client-contracts/tree/v3.5.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-04-18T09:32:20+00:00" + }, { "name": "symfony/http-foundation", "version": "v7.0.7", diff --git a/config/services.yaml b/config/services.yaml index 0c73f63..f14834a 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -1,18 +1,39 @@ parameters: .container.dumper.inline_factories: true + temp_filename: 'temp.parquet' services: _defaults: autowire: true autoconfigure: true + bind: + $accessKeyId: '%env(ACCESS_KEY_ID)%' + $secretAccessKey: '%env(SECRET_ACCESS_KEY)%' + $bucket: '%env(BUCKET)%' + $region: '%env(REGION)%' + $tempFilename: '%temp_filename%' + $filename: '%env(FILE_NAME)%' - Productsup\BinCdeAppSkeleton\: + Productsup\BinCdeAmazonS3Parquet\: resource: '../src/' exclude: - '../src/DependencyInjection/' - '../src/Entity/' - '../src/Kernel.php' + AsyncAws\SimpleS3\SimpleS3Client: + factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\S3ClientFactory', 'make'] + + League\Flysystem\FilesystemAdapter: + factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\S3AdapterFactory', 'make'] + + League\Flysystem\Filesystem: + factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\FilesystemFactory', 'make'] + + Productsup\BinCdeAmazonS3Parquet\Import\Application\Importer: + $converter: '@Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\ParquetFileConverter' + + when@dev: services: Productsup\DK\Connector\Application\Feed\OutputFeedForImport: '@Productsup\DK\Connector\Infrastructure\Feed\File\FileOutputFeedForImport' diff --git a/src/Import/Application/Importer.php b/src/Import/Application/Importer.php index ac81204..8450dd9 100644 --- a/src/Import/Application/Importer.php +++ b/src/Import/Application/Importer.php @@ -2,12 +2,38 @@ declare(strict_types=1); -namespace Productsup\BinCdeAppSkeleton\Import\Application; +namespace Productsup\BinCdeAmazonS3Parquet\Import\Application; -final class Importer +use FileConverter; +use Productsup\BinCdeAmazonS3Parquet\Import\Application\Processor\Processor; +use Productsup\BinCdeAmazonS3Parquet\Import\Application\Transporter\Transporter; +use Productsup\DK\Connector\Application\Feed\OutputFeedForImport; +use Productsup\DK\Connector\Application\Logger\ConnectorFinished; +use Productsup\DK\Connector\Application\Logger\ConnectorLogger; +use Productsup\DK\Connector\Application\Logger\ConnectorStarted; + +final readonly class Importer { + private const NAME = 'Amazon S3 Parquet Importer'; + + public function __construct( + private Transporter $transporter, + private ConnectorLogger $logger, + private OutputFeedForImport $outputFeedForImport, + private Processor $processor, + private FileConverter $converter + ) { + } + public function import(): void { - // ... + $this->logger->info(ConnectorStarted::fromName(self::NAME)); + $this->transporter->transport(); + $this->converter->convert(); + foreach ($this->processor->processFile() as $row) { + $this->outputFeedForImport->appendToOutputFeed($row); + } + $this->outputFeedForImport->end(); + $this->logger->info(ConnectorFinished::fromName(self::NAME)); } } diff --git a/src/Import/Application/Logger/DownloadFinished.php b/src/Import/Application/Logger/DownloadFinished.php new file mode 100644 index 0000000..33a6a79 --- /dev/null +++ b/src/Import/Application/Logger/DownloadFinished.php @@ -0,0 +1,24 @@ +filename} has finished."; + } +} diff --git a/src/Import/Application/Logger/DownloadStarted.php b/src/Import/Application/Logger/DownloadStarted.php new file mode 100644 index 0000000..6f60ca7 --- /dev/null +++ b/src/Import/Application/Logger/DownloadStarted.php @@ -0,0 +1,24 @@ +filename} has started."; + } +} diff --git a/src/Import/Application/Processor/Processor.php b/src/Import/Application/Processor/Processor.php new file mode 100644 index 0000000..6ae8280 --- /dev/null +++ b/src/Import/Application/Processor/Processor.php @@ -0,0 +1,12 @@ + out.json", $this->tempFilename); + $output = exec($query, $output, $return_var); + + if (0 !== $return_var) { + throw FailedQueryExecutionException::dueToQueryError(); + } + } +} diff --git a/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php b/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php new file mode 100644 index 0000000..ff998ca --- /dev/null +++ b/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php @@ -0,0 +1,15 @@ +getMessage(), + previous: $previous + ); + } +} diff --git a/src/Import/Infrastructure/Transporter/Exception/DownloadFailed.php b/src/Import/Infrastructure/Transporter/Exception/DownloadFailed.php new file mode 100644 index 0000000..dbe70be --- /dev/null +++ b/src/Import/Infrastructure/Transporter/Exception/DownloadFailed.php @@ -0,0 +1,19 @@ + $accessKeyId, + 'accessKeySecret' => $secretAccessKey, + 'region' => $region, + ]); + } +} diff --git a/src/Import/Infrastructure/Transporter/S3Transporter.php b/src/Import/Infrastructure/Transporter/S3Transporter.php new file mode 100644 index 0000000..32e55cb --- /dev/null +++ b/src/Import/Infrastructure/Transporter/S3Transporter.php @@ -0,0 +1,40 @@ +filename, '/'); + $this->logger->info(DownloadStarted::fromName($this->filename)); + + try { + //read and save file as local copy + $fileContent = $this->filesystem->read($key); + file_put_contents($this->tempFilename, $fileContent); + } catch (FilesystemException|UnableToWriteFile $exception) { + throw DownloadFailed::dueToPrevious($exception); + } + $this->logger->info(DownloadFinished::fromName($this->filename)); + } +} diff --git a/src/Kernel.php b/src/Kernel.php index ff45502..0b4d638 100644 --- a/src/Kernel.php +++ b/src/Kernel.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Productsup\BinCdeAppSkeleton; +namespace Productsup\BinCdeAmazonS3Parquet; use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait; use Symfony\Component\HttpKernel\Kernel as BaseKernel; From a006caa9e9d41ae1780decba86be347ec88e8708 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:24:05 +0200 Subject: [PATCH 02/11] csfix --- src/Import/Application/Importer.php | 2 +- src/Import/Application/Logger/DownloadStarted.php | 2 +- src/Import/Infrastructure/Cli/ImportCommand.php | 2 +- .../Processor/Exception/FileOpenFailException.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Import/Application/Importer.php b/src/Import/Application/Importer.php index 8450dd9..a74b760 100644 --- a/src/Import/Application/Importer.php +++ b/src/Import/Application/Importer.php @@ -12,7 +12,7 @@ use Productsup\DK\Connector\Application\Logger\ConnectorLogger; use Productsup\DK\Connector\Application\Logger\ConnectorStarted; -final readonly class Importer +final readonly class Importer { private const NAME = 'Amazon S3 Parquet Importer'; diff --git a/src/Import/Application/Logger/DownloadStarted.php b/src/Import/Application/Logger/DownloadStarted.php index 6f60ca7..6b80fd7 100644 --- a/src/Import/Application/Logger/DownloadStarted.php +++ b/src/Import/Application/Logger/DownloadStarted.php @@ -6,7 +6,7 @@ use Stringable; -final readonly class DownloadStarted implements Stringable +final readonly class DownloadStarted implements Stringable { private function __construct(private string $filename) { diff --git a/src/Import/Infrastructure/Cli/ImportCommand.php b/src/Import/Infrastructure/Cli/ImportCommand.php index 01e364b..ab0ad08 100644 --- a/src/Import/Infrastructure/Cli/ImportCommand.php +++ b/src/Import/Infrastructure/Cli/ImportCommand.php @@ -20,7 +20,7 @@ final class ImportCommand extends Command { public function __construct( private readonly Importer $importer, - string $name = null + string $name = null ) { parent::__construct($name); } diff --git a/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php b/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php index ff998ca..797aaa9 100644 --- a/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php +++ b/src/Import/Infrastructure/Processor/Exception/FileOpenFailException.php @@ -6,7 +6,7 @@ use Productsup\DK\Connector\Exception\Core\EngineeringLevelException; -final class FileOpenFailException extends EngineeringLevelException +final class FileOpenFailException extends EngineeringLevelException { public static function dueToFailedOpen(): self { From e68cfcce71c987b493541d4614ef77bc93419920 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:35:45 +0200 Subject: [PATCH 03/11] minor changes in namespaces --- config/services.yaml | 1 - src/Import/Domain/DuckDb/FileConverter.php | 2 ++ src/Import/Infrastructure/DuckDb/ParquetFileConverter.php | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/config/services.yaml b/config/services.yaml index f14834a..f50364a 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -33,7 +33,6 @@ services: Productsup\BinCdeAmazonS3Parquet\Import\Application\Importer: $converter: '@Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\ParquetFileConverter' - when@dev: services: Productsup\DK\Connector\Application\Feed\OutputFeedForImport: '@Productsup\DK\Connector\Infrastructure\Feed\File\FileOutputFeedForImport' diff --git a/src/Import/Domain/DuckDb/FileConverter.php b/src/Import/Domain/DuckDb/FileConverter.php index 32a2cfd..6eadfda 100644 --- a/src/Import/Domain/DuckDb/FileConverter.php +++ b/src/Import/Domain/DuckDb/FileConverter.php @@ -2,6 +2,8 @@ declare(strict_types=1); +namespace Productsup\BinCdeAmazonS3Parquet\Import\Domain\DuckDb; + interface FileConverter { public function convert(): void; diff --git a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php index c50fb29..c8c0e10 100644 --- a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php +++ b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php @@ -4,7 +4,7 @@ namespace Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb; -use FileConverter; +use Productsup\BinCdeAmazonS3Parquet\Import\Domain\DuckDb\FileConverter; use Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\Exception\FailedQueryExecutionException; final readonly class ParquetFileConverter implements FileConverter From 416c818c35555faf8bf68fd7f98423bf6325985a Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:40:25 +0200 Subject: [PATCH 04/11] fix stan --- src/Import/Application/Importer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Import/Application/Importer.php b/src/Import/Application/Importer.php index a74b760..65adb2c 100644 --- a/src/Import/Application/Importer.php +++ b/src/Import/Application/Importer.php @@ -4,9 +4,9 @@ namespace Productsup\BinCdeAmazonS3Parquet\Import\Application; -use FileConverter; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Processor\Processor; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Transporter\Transporter; +use Productsup\BinCdeAmazonS3Parquet\Import\Domain\DuckDb\FileConverter; use Productsup\DK\Connector\Application\Feed\OutputFeedForImport; use Productsup\DK\Connector\Application\Logger\ConnectorFinished; use Productsup\DK\Connector\Application\Logger\ConnectorLogger; From 755dedb75912c469067dac8038ec25cb684d362f Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:55:32 +0200 Subject: [PATCH 05/11] rename var --- src/Import/Infrastructure/DuckDb/ParquetFileConverter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php index c8c0e10..3aa743c 100644 --- a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php +++ b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php @@ -16,9 +16,9 @@ public function __construct(private string $tempFilename) public function convert(): void { $query = sprintf("duckdb -jsonlines -c \"SELECT * FROM '%s'\" > out.json", $this->tempFilename); - $output = exec($query, $output, $return_var); + $output = exec($query, $output, $resultCode); - if (0 !== $return_var) { + if (0 !== $resultCode) { throw FailedQueryExecutionException::dueToQueryError(); } } From 658c082cbc92e1d4f873435ce0ce2913f70bbd0e Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:56:57 +0200 Subject: [PATCH 06/11] adding codacy suggestion --- src/Import/Infrastructure/DuckDb/ParquetFileConverter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php index 3aa743c..933af06 100644 --- a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php +++ b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php @@ -15,7 +15,7 @@ public function __construct(private string $tempFilename) public function convert(): void { - $query = sprintf("duckdb -jsonlines -c \"SELECT * FROM '%s'\" > out.json", $this->tempFilename); + $query = sprintf("duckdb -jsonlines -c \"SELECT * FROM %s\" > out.json", escapeshellarg($this->tempFilename)); $output = exec($query, $output, $resultCode); if (0 !== $resultCode) { From 14c25e4bf2a5383b8db307d4206e52427ee5923c Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 14:57:45 +0200 Subject: [PATCH 07/11] adding codacy suggestion --- src/Import/Infrastructure/Processor/JsonProcessor.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Import/Infrastructure/Processor/JsonProcessor.php b/src/Import/Infrastructure/Processor/JsonProcessor.php index 3345153..629c86c 100644 --- a/src/Import/Infrastructure/Processor/JsonProcessor.php +++ b/src/Import/Infrastructure/Processor/JsonProcessor.php @@ -14,11 +14,11 @@ final class JsonProcessor implements Processor { public function processFile(): Generator { - $fp = @fopen('out.json', 'r'); - if (false === $fp) { + $filePointer = @fopen('out.json', 'r'); + if (false === $filePointer) { throw FileOpenFailException::dueToFailedOpen(); } - while (($buffer = fgets($fp)) !== false) { + while (($buffer = fgets($filePointer)) !== false) { try { yield json_decode(json: $buffer, associative: true, flags: JSON_THROW_ON_ERROR, ); } catch (JsonException $e) { @@ -26,6 +26,6 @@ public function processFile(): Generator } } - fclose($fp); + fclose($filePointer); } } From 5331a4a1b370588222fa5033953e29acbe9e3179 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Fri, 2 Aug 2024 15:01:23 +0200 Subject: [PATCH 08/11] csfix --- src/Import/Infrastructure/DuckDb/ParquetFileConverter.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php index 933af06..d332842 100644 --- a/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php +++ b/src/Import/Infrastructure/DuckDb/ParquetFileConverter.php @@ -15,7 +15,7 @@ public function __construct(private string $tempFilename) public function convert(): void { - $query = sprintf("duckdb -jsonlines -c \"SELECT * FROM %s\" > out.json", escapeshellarg($this->tempFilename)); + $query = sprintf('duckdb -jsonlines -c "SELECT * FROM %s" > out.json', escapeshellarg($this->tempFilename)); $output = exec($query, $output, $resultCode); if (0 !== $resultCode) { From f269555b32627c491e8176a581e62cc0539b5198 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Tue, 6 Aug 2024 13:35:45 +0200 Subject: [PATCH 09/11] pr changes, adding flysystem bundle --- .env | 5 + composer.json | 5 +- composer.lock | 877 +++++++++--------- config/bundles.php | 3 +- config/packages/flysystem.yaml | 9 + config/services.yaml | 18 +- docker-compose.yml | 5 +- .../Converter/ParquetFileConverter.php | 10 + src/Import/Application/Importer.php | 6 +- src/Import/Domain/DuckDb/FileConverter.php | 10 - .../FailedQueryExecutionException.php | 0 .../ParquetFileConverter.php | 6 +- .../Exception/ConnectionException.php | 19 - .../Transporter/Factory/FilesystemFactory.php | 16 - .../Transporter/Factory/S3AdapterFactory.php | 20 - .../Transporter/Factory/S3ClientFactory.php | 19 - .../Transporter/S3Transporter.php | 6 +- symfony.lock | 13 + 18 files changed, 509 insertions(+), 538 deletions(-) create mode 100644 config/packages/flysystem.yaml create mode 100644 src/Import/Application/Converter/ParquetFileConverter.php delete mode 100644 src/Import/Domain/DuckDb/FileConverter.php rename src/Import/Infrastructure/{DuckDb => Converter}/Exception/FailedQueryExecutionException.php (100%) rename src/Import/Infrastructure/{DuckDb => Converter}/ParquetFileConverter.php (74%) delete mode 100644 src/Import/Infrastructure/Transporter/Exception/ConnectionException.php delete mode 100644 src/Import/Infrastructure/Transporter/Factory/FilesystemFactory.php delete mode 100644 src/Import/Infrastructure/Transporter/Factory/S3AdapterFactory.php delete mode 100644 src/Import/Infrastructure/Transporter/Factory/S3ClientFactory.php diff --git a/.env b/.env index 74b8b83..2c167dc 100644 --- a/.env +++ b/.env @@ -1 +1,6 @@ APP_ENV=prod +FILE_NAME= +AWS_ACCESS_KEY_ID= +AWS_SECRET_ACCESS_KEY= +AWS_BUCKET= +AWS_REGION= \ No newline at end of file diff --git a/composer.json b/composer.json index d509e68..fc36fb1 100644 --- a/composer.json +++ b/composer.json @@ -16,10 +16,11 @@ "php": ">=8.3", "ext-ctype": "*", "ext-iconv": "*", - "async-aws/simple-s3": "^2.1", + "async-aws/s3": "*", "league/flysystem": "^3.28", - "league/flysystem-async-aws-s3": "^3.28", + "league/flysystem-async-aws-s3": "*", "league/flysystem-aws-s3-v3": "^3.28", + "league/flysystem-bundle": "*", "productsupcom/dk-core-bundle": "v0.0.*", "productsupcom/lib-dk-testing": "v0.0.*", "symfony/console": "7.0.*", diff --git a/composer.lock b/composer.lock index 09e22d3..54d9c13 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ea28cd44dab67f65841080cd66336542", + "content-hash": "278b4bf9d3bb5e9f4192756588284451", "packages": [ { "name": "async-aws/core", @@ -146,69 +146,6 @@ ], "time": "2024-07-03T17:28:59+00:00" }, - { - "name": "async-aws/simple-s3", - "version": "2.1.0", - "source": { - "type": "git", - "url": "https://github.com/async-aws/simple-s3.git", - "reference": "c68edb5fb92971cf2ac18770a842159ca4ac8ac4" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/async-aws/simple-s3/zipball/c68edb5fb92971cf2ac18770a842159ca4ac8ac4", - "reference": "c68edb5fb92971cf2ac18770a842159ca4ac8ac4", - "shasum": "", - "mirrors": [ - { - "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "async-aws/s3": "^2.0", - "ext-json": "*", - "php": "^7.2.5 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.1-dev" - } - }, - "autoload": { - "psr-4": { - "AsyncAws\\SimpleS3\\": "src" - } - }, - "notification-url": "https://repo.packagist.com/productsupcom/downloads/", - "license": [ - "MIT" - ], - "description": "A simple S3 client that are easy to work with. ", - "keywords": [ - "amazon", - "async-aws", - "aws", - "s3", - "sdk" - ], - "support": { - "source": "https://github.com/async-aws/simple-s3/tree/2.1.0" - }, - "funding": [ - { - "url": "https://github.com/jderusse", - "type": "github" - }, - { - "url": "https://github.com/nyholm", - "type": "github" - } - ], - "time": "2024-01-09T08:38:58+00:00" - }, { "name": "aws/aws-crt-php", "version": "v1.2.6", @@ -271,16 +208,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.316.5", + "version": "3.317.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59" + "reference": "890ca1841a49317db884d1b87f7c08613213f852" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59", - "reference": "1d89a733ff593e9dd18ae2bcc63ea9fe7518bd59", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/890ca1841a49317db884d1b87f7c08613213f852", + "reference": "890ca1841a49317db884d1b87f7c08613213f852", "shasum": "", "mirrors": [ { @@ -294,9 +231,9 @@ "ext-json": "*", "ext-pcre": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5 <7.9.0", + "guzzlehttp/guzzle": "^6.5.8 || ^7.4.5", "guzzlehttp/promises": "^1.4.0 || ^2.0", - "guzzlehttp/psr7": "^1.9.1 || ^2.4.5 <2.7.0", + "guzzlehttp/psr7": "^1.9.1 || ^2.4.5", "mtdowling/jmespath.php": "^2.6", "php": ">=7.2.5", "psr/http-message": "^1.0 || ^2.0" @@ -366,9 +303,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.316.5" + "source": "https://github.com/aws/aws-sdk-php/tree/3.317.2" }, - "time": "2024-07-22T18:06:32+00:00" + "time": "2024-08-05T18:08:05+00:00" }, { "name": "brick/math", @@ -607,16 +544,16 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.8.1", + "version": "7.9.2", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104" + "reference": "d281ed313b989f213357e3be1a179f02196ac99b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104", - "reference": "41042bc7ab002487b876a0683fc8dce04ddce104", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b", + "reference": "d281ed313b989f213357e3be1a179f02196ac99b", "shasum": "", "mirrors": [ { @@ -627,8 +564,8 @@ }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.5.3 || ^2.0.1", - "guzzlehttp/psr7": "^1.9.1 || ^2.5.1", + "guzzlehttp/promises": "^1.5.3 || ^2.0.3", + "guzzlehttp/psr7": "^2.7.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0", "symfony/deprecation-contracts": "^2.2 || ^3.0" @@ -639,9 +576,9 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "ext-curl": "*", - "php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999", + "guzzle/client-integration-tests": "3.0.2", "php-http/message-factory": "^1.1", - "phpunit/phpunit": "^8.5.36 || ^9.6.15", + "phpunit/phpunit": "^8.5.39 || ^9.6.20", "psr/log": "^1.1 || ^2.0 || ^3.0" }, "suggest": { @@ -719,7 +656,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.8.1" + "source": "https://github.com/guzzle/guzzle/tree/7.9.2" }, "funding": [ { @@ -735,20 +672,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:35:24+00:00" + "time": "2024-07-24T11:22:20+00:00" }, { "name": "guzzlehttp/promises", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223" + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223", - "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223", + "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", "shasum": "", "mirrors": [ { @@ -762,7 +699,7 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "type": "library", "extra": { @@ -808,7 +745,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.2" + "source": "https://github.com/guzzle/promises/tree/2.0.3" }, "funding": [ { @@ -824,20 +761,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:19:20+00:00" + "time": "2024-07-18T10:29:17+00:00" }, { "name": "guzzlehttp/psr7", - "version": "2.6.2", + "version": "2.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221" + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221", - "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201", + "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201", "shasum": "", "mirrors": [ { @@ -858,8 +795,8 @@ }, "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", - "http-interop/http-factory-tests": "^0.9", - "phpunit/phpunit": "^8.5.36 || ^9.6.15" + "http-interop/http-factory-tests": "0.9.0", + "phpunit/phpunit": "^8.5.39 || ^9.6.20" }, "suggest": { "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" @@ -930,7 +867,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.6.2" + "source": "https://github.com/guzzle/psr7/tree/2.7.0" }, "funding": [ { @@ -946,20 +883,20 @@ "type": "tidelift" } ], - "time": "2023-12-03T20:05:35+00:00" + "time": "2024-07-18T11:15:46+00:00" }, { "name": "jane-php/json-schema", - "version": "v7.8.0", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/janephp/json-schema.git", - "reference": "65e3fc80478a3a488b9ecd1d3a02825996384840" + "reference": "f33f91fe40832c9ae312bf6f2baa5929bafaa341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/janephp/json-schema/zipball/65e3fc80478a3a488b9ecd1d3a02825996384840", - "reference": "65e3fc80478a3a488b9ecd1d3a02825996384840", + "url": "https://api.github.com/repos/janephp/json-schema/zipball/f33f91fe40832c9ae312bf6f2baa5929bafaa341", + "reference": "f33f91fe40832c9ae312bf6f2baa5929bafaa341", "shasum": "", "mirrors": [ { @@ -1025,22 +962,22 @@ ], "description": "Generate a serializable / deserializable object model given a json schema", "support": { - "source": "https://github.com/janephp/json-schema/tree/v7.8.0" + "source": "https://github.com/janephp/json-schema/tree/v7.8.1" }, - "time": "2024-07-03T12:43:38+00:00" + "time": "2024-07-29T13:51:58+00:00" }, { "name": "jane-php/json-schema-runtime", - "version": "v7.8.0", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/janephp/json-schema-runtime.git", - "reference": "658c68abf7e429db2ae71afe9e7a6a5d43d5d247" + "reference": "8a9e3e6ec94959ab4160a5e36323cda76d8e7d03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/janephp/json-schema-runtime/zipball/658c68abf7e429db2ae71afe9e7a6a5d43d5d247", - "reference": "658c68abf7e429db2ae71afe9e7a6a5d43d5d247", + "url": "https://api.github.com/repos/janephp/json-schema-runtime/zipball/8a9e3e6ec94959ab4160a5e36323cda76d8e7d03", + "reference": "8a9e3e6ec94959ab4160a5e36323cda76d8e7d03", "shasum": "", "mirrors": [ { @@ -1093,22 +1030,22 @@ ], "description": "Jane runtime Library", "support": { - "source": "https://github.com/janephp/json-schema-runtime/tree/v7.8.0" + "source": "https://github.com/janephp/json-schema-runtime/tree/v7.8.1" }, - "time": "2024-01-31T09:18:22+00:00" + "time": "2024-07-29T13:51:58+00:00" }, { "name": "jane-php/open-api-3", - "version": "v7.8.0", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/janephp/open-api-3.git", - "reference": "9758c1958776d054ee4af1f6788ed2ef58ec66e4" + "reference": "ef808d0b7219e44258f14966c064027b87492c04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/janephp/open-api-3/zipball/9758c1958776d054ee4af1f6788ed2ef58ec66e4", - "reference": "9758c1958776d054ee4af1f6788ed2ef58ec66e4", + "url": "https://api.github.com/repos/janephp/open-api-3/zipball/ef808d0b7219e44258f14966c064027b87492c04", + "reference": "ef808d0b7219e44258f14966c064027b87492c04", "shasum": "", "mirrors": [ { @@ -1173,22 +1110,22 @@ "swagger" ], "support": { - "source": "https://github.com/janephp/open-api-3/tree/v7.8.0" + "source": "https://github.com/janephp/open-api-3/tree/v7.8.1" }, - "time": "2024-07-02T09:15:11+00:00" + "time": "2024-07-29T13:51:58+00:00" }, { "name": "jane-php/open-api-common", - "version": "v7.8.0", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/janephp/open-api-common.git", - "reference": "dbdcce7559e7cf5fd851da6f9c1bacc02139e89d" + "reference": "9b6d48539cc6746e583f5e04869172bbf1014732" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/janephp/open-api-common/zipball/dbdcce7559e7cf5fd851da6f9c1bacc02139e89d", - "reference": "dbdcce7559e7cf5fd851da6f9c1bacc02139e89d", + "url": "https://api.github.com/repos/janephp/open-api-common/zipball/9b6d48539cc6746e583f5e04869172bbf1014732", + "reference": "9b6d48539cc6746e583f5e04869172bbf1014732", "shasum": "", "mirrors": [ { @@ -1248,13 +1185,13 @@ "utility" ], "support": { - "source": "https://github.com/janephp/open-api-common/tree/v7.8.0" + "source": "https://github.com/janephp/open-api-common/tree/v7.8.1" }, - "time": "2024-07-03T12:43:38+00:00" + "time": "2024-07-29T13:51:58+00:00" }, { "name": "jane-php/open-api-runtime", - "version": "v7.8.0", + "version": "v7.8.1", "source": { "type": "git", "url": "https://github.com/janephp/open-api-runtime.git", @@ -1317,7 +1254,7 @@ ], "description": "Jane OpenAPI Runtime Library, dependencies and utility class for a library generated by jane/openapi", "support": { - "source": "https://github.com/janephp/open-api-runtime/tree/v7.8.0" + "source": "https://github.com/janephp/open-api-runtime/tree/v7.8.1" }, "time": "2024-01-31T09:32:00+00:00" }, @@ -1535,6 +1472,75 @@ }, "time": "2024-05-06T20:05:52+00:00" }, + { + "name": "league/flysystem-bundle", + "version": "3.3.5", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem-bundle.git", + "reference": "4fff744a247d360cb7b0b5f641d951f27d37013c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem-bundle/zipball/4fff744a247d360cb7b0b5f641d951f27d37013c", + "reference": "4fff744a247d360cb7b0b5f641d951f27d37013c", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "league/flysystem": "^3.0", + "php": ">=8.0", + "symfony/config": "^5.4 || ^6.0 || ^7.0", + "symfony/dependency-injection": "^5.4 || ^6.0 || ^7.0", + "symfony/deprecation-contracts": "^2.1 || ^3", + "symfony/http-kernel": "^5.4 || ^6.0 || ^7.0", + "symfony/options-resolver": "^5.4 || ^6.0 || ^7.0" + }, + "require-dev": { + "doctrine/mongodb-odm": "^2.0", + "league/flysystem-async-aws-s3": "^3.1", + "league/flysystem-aws-s3-v3": "^3.1", + "league/flysystem-azure-blob-storage": "^3.1", + "league/flysystem-ftp": "^3.1", + "league/flysystem-google-cloud-storage": "^3.1", + "league/flysystem-gridfs": "^3.28", + "league/flysystem-memory": "^3.1", + "league/flysystem-read-only": "^3.15", + "league/flysystem-sftp-v3": "^3.1", + "symfony/dotenv": "^5.4 || ^6.0 || ^7.0", + "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0", + "symfony/phpunit-bridge": "^5.4 || ^6.0 || ^7.0", + "symfony/var-dumper": "^5.4 || ^6.0 || ^7.0", + "symfony/yaml": "^5.4 || ^6.0 || ^7.0" + }, + "type": "symfony-bundle", + "autoload": { + "psr-4": { + "League\\FlysystemBundle\\": "src" + } + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com" + } + ], + "description": "Symfony bundle integrating Flysystem into Symfony 5.4+ applications", + "support": { + "issues": "https://github.com/thephpleague/flysystem-bundle/issues", + "source": "https://github.com/thephpleague/flysystem-bundle/tree/3.3.5" + }, + "time": "2024-05-30T20:04:21+00:00" + }, { "name": "league/flysystem-local", "version": "3.28.0", @@ -2883,16 +2889,16 @@ }, { "name": "productsupcom/lib-dk-testing", - "version": "0.0.8", + "version": "0.0.10", "source": { "type": "git", "url": "git@github.com:productsupcom/lib-dk-testing.git", - "reference": "c8246aeb0637c962bf6dd006389bff1d457c6be3" + "reference": "258cba0f563bbc8c292e978add667df53c891850" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/productsupcom/lib-dk-testing/zipball/c8246aeb0637c962bf6dd006389bff1d457c6be3", - "reference": "c8246aeb0637c962bf6dd006389bff1d457c6be3", + "url": "https://api.github.com/repos/productsupcom/lib-dk-testing/zipball/258cba0f563bbc8c292e978add667df53c891850", + "reference": "258cba0f563bbc8c292e978add667df53c891850", "shasum": "", "mirrors": [ { @@ -2915,8 +2921,8 @@ "phpunit/phpunit": "^10", "rector/rector": "^0.18.12", "roave/security-advisories": "dev-latest", - "symfony/framework-bundle": "7.0.*", - "symfony/phpunit-bridge": "7.0.*" + "symfony/framework-bundle": "7.1.*", + "symfony/phpunit-bridge": "7.1.*" }, "type": "library", "autoload": { @@ -2955,9 +2961,9 @@ "proprietary" ], "support": { - "source": "https://github.com/productsupcom/lib-dk-testing/tree/0.0.8" + "source": "https://github.com/productsupcom/lib-dk-testing/tree/0.0.10" }, - "time": "2024-07-12T08:27:58+00:00" + "time": "2024-07-19T12:42:22+00:00" }, { "name": "productsupcom/lib-sqlite", @@ -3749,16 +3755,16 @@ }, { "name": "symfony/cache", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "48e3508338987d63b0114a00c208c4cbb76e5303" + "reference": "0ee03f2aa8bb920f7041678f5f46f60998e3a7a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/48e3508338987d63b0114a00c208c4cbb76e5303", - "reference": "48e3508338987d63b0114a00c208c4cbb76e5303", + "url": "https://api.github.com/repos/symfony/cache/zipball/0ee03f2aa8bb920f7041678f5f46f60998e3a7a8", + "reference": "0ee03f2aa8bb920f7041678f5f46f60998e3a7a8", "shasum": "", "mirrors": [ { @@ -3831,7 +3837,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.0.7" + "source": "https://github.com/symfony/cache/tree/v7.0.10" }, "funding": [ { @@ -3847,7 +3853,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-17T06:06:58+00:00" }, { "name": "symfony/cache-contracts", @@ -3933,16 +3939,16 @@ }, { "name": "symfony/clock", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "2008671acb4a30b01c453de193cf9c80549ebda6" + "reference": "817e27b87908632f647f8684a603b70ec89b75e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/2008671acb4a30b01c453de193cf9c80549ebda6", - "reference": "2008671acb4a30b01c453de193cf9c80549ebda6", + "url": "https://api.github.com/repos/symfony/clock/zipball/817e27b87908632f647f8684a603b70ec89b75e4", + "reference": "817e27b87908632f647f8684a603b70ec89b75e4", "shasum": "", "mirrors": [ { @@ -3993,7 +3999,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.0.7" + "source": "https://github.com/symfony/clock/tree/v7.0.8" }, "funding": [ { @@ -4009,20 +4015,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/config", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f66f908a975500aa4594258bf454dc66e3939eac" + "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f66f908a975500aa4594258bf454dc66e3939eac", - "reference": "f66f908a975500aa4594258bf454dc66e3939eac", + "url": "https://api.github.com/repos/symfony/config/zipball/f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", + "reference": "f8a8fb0c2d0a188a00a2dd5af8a4eb070641ec60", "shasum": "", "mirrors": [ { @@ -4074,7 +4080,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.0.7" + "source": "https://github.com/symfony/config/tree/v7.0.8" }, "funding": [ { @@ -4090,20 +4096,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/console", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "c981e0e9380ce9f146416bde3150c79197ce9986" + "reference": "f381ef0bc6675a29796d7055088a7193a9e6edff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/c981e0e9380ce9f146416bde3150c79197ce9986", - "reference": "c981e0e9380ce9f146416bde3150c79197ce9986", + "url": "https://api.github.com/repos/symfony/console/zipball/f381ef0bc6675a29796d7055088a7193a9e6edff", + "reference": "f381ef0bc6675a29796d7055088a7193a9e6edff", "shasum": "", "mirrors": [ { @@ -4173,7 +4179,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.0.7" + "source": "https://github.com/symfony/console/tree/v7.0.10" }, "funding": [ { @@ -4189,20 +4195,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T12:31:22+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324" + "reference": "01dcf140b25aa351383f2d3829acbcedd9784ee9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/4db1314337f4dd864113f88e08c9a7f98b1c1324", - "reference": "4db1314337f4dd864113f88e08c9a7f98b1c1324", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/01dcf140b25aa351383f2d3829acbcedd9784ee9", + "reference": "01dcf140b25aa351383f2d3829acbcedd9784ee9", "shasum": "", "mirrors": [ { @@ -4259,7 +4265,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.0.7" + "source": "https://github.com/symfony/dependency-injection/tree/v7.0.10" }, "funding": [ { @@ -4275,7 +4281,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T07:32:22+00:00" }, { "name": "symfony/deprecation-contracts", @@ -4352,16 +4358,16 @@ }, { "name": "symfony/dotenv", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "0fd573c141e1990848702d56329050efd5bf25cc" + "reference": "3a0c9ce95ed71a1ad297604742a46085e808c7a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/0fd573c141e1990848702d56329050efd5bf25cc", - "reference": "0fd573c141e1990848702d56329050efd5bf25cc", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/3a0c9ce95ed71a1ad297604742a46085e808c7a3", + "reference": "3a0c9ce95ed71a1ad297604742a46085e808c7a3", "shasum": "", "mirrors": [ { @@ -4412,7 +4418,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v7.0.7" + "source": "https://github.com/symfony/dotenv/tree/v7.0.10" }, "funding": [ { @@ -4428,20 +4434,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-09T18:35:37+00:00" }, { "name": "symfony/error-handler", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab" + "reference": "fd1cc26512b502c8fe8dfe90b67a9d8228bbafa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/cf97429887e40480c847bfeb6c3991e1e2c086ab", - "reference": "cf97429887e40480c847bfeb6c3991e1e2c086ab", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/fd1cc26512b502c8fe8dfe90b67a9d8228bbafa2", + "reference": "fd1cc26512b502c8fe8dfe90b67a9d8228bbafa2", "shasum": "", "mirrors": [ { @@ -4493,7 +4499,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.0.7" + "source": "https://github.com/symfony/error-handler/tree/v7.0.10" }, "funding": [ { @@ -4509,20 +4515,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T12:31:22+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9" + "reference": "5c30c7fc4ccf847e4dd8a18b6158cb1f77702550" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/db2a7fab994d67d92356bb39c367db115d9d30f9", - "reference": "db2a7fab994d67d92356bb39c367db115d9d30f9", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c30c7fc4ccf847e4dd8a18b6158cb1f77702550", + "reference": "5c30c7fc4ccf847e4dd8a18b6158cb1f77702550", "shasum": "", "mirrors": [ { @@ -4579,7 +4585,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/v7.0.7" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.8" }, "funding": [ { @@ -4595,7 +4601,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -4681,16 +4687,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.0.7", + "version": "v7.0.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5" + "reference": "f6b35b0de74a2577196114eef957f2414b5599d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/cc168be6fbdcdf3401f50ae863ee3818ed4338f5", - "reference": "cc168be6fbdcdf3401f50ae863ee3818ed4338f5", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/f6b35b0de74a2577196114eef957f2414b5599d5", + "reference": "f6b35b0de74a2577196114eef957f2414b5599d5", "shasum": "", "mirrors": [ { @@ -4702,7 +4708,9 @@ "require": { "php": ">=8.2", "symfony/polyfill-ctype": "~1.8", - "symfony/polyfill-mbstring": "~1.8", + "symfony/polyfill-mbstring": "~1.8" + }, + "require-dev": { "symfony/process": "^6.4|^7.0" }, "type": "library", @@ -4731,7 +4739,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.0.7" + "source": "https://github.com/symfony/filesystem/tree/v7.0.9" }, "funding": [ { @@ -4747,20 +4755,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-06-28T09:58:46+00:00" }, { "name": "symfony/finder", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c" + "reference": "25b267662f297a8479bf6cf88fdc92e4b16cf24c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/4d58f0f4fe95a30d7b538d71197135483560b97c", - "reference": "4d58f0f4fe95a30d7b538d71197135483560b97c", + "url": "https://api.github.com/repos/symfony/finder/zipball/25b267662f297a8479bf6cf88fdc92e4b16cf24c", + "reference": "25b267662f297a8479bf6cf88fdc92e4b16cf24c", "shasum": "", "mirrors": [ { @@ -4801,7 +4809,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.0.7" + "source": "https://github.com/symfony/finder/tree/v7.0.10" }, "funding": [ { @@ -4817,20 +4825,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-24T07:06:56+00:00" }, { "name": "symfony/flex", - "version": "v2.4.5", + "version": "v2.4.6", "source": { "type": "git", "url": "https://github.com/symfony/flex.git", - "reference": "b0a405f40614c9f584b489d54f91091817b0e26e" + "reference": "4dc11919791f81d087a12db2ab4c7e044431ef6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/flex/zipball/b0a405f40614c9f584b489d54f91091817b0e26e", - "reference": "b0a405f40614c9f584b489d54f91091817b0e26e", + "url": "https://api.github.com/repos/symfony/flex/zipball/4dc11919791f81d087a12db2ab4c7e044431ef6b", + "reference": "4dc11919791f81d087a12db2ab4c7e044431ef6b", "shasum": "", "mirrors": [ { @@ -4872,7 +4880,7 @@ "description": "Composer plugin for Symfony", "support": { "issues": "https://github.com/symfony/flex/issues", - "source": "https://github.com/symfony/flex/tree/v2.4.5" + "source": "https://github.com/symfony/flex/tree/v2.4.6" }, "funding": [ { @@ -4888,20 +4896,20 @@ "type": "tidelift" } ], - "time": "2024-03-02T08:16:47+00:00" + "time": "2024-04-27T10:22:22+00:00" }, { "name": "symfony/framework-bundle", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "5d9cee370509056b8b7a5009d7112d045d8f0a64" + "reference": "07a37173aace78420ccaf5eceaf4a79c7dfab375" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/5d9cee370509056b8b7a5009d7112d045d8f0a64", - "reference": "5d9cee370509056b8b7a5009d7112d045d8f0a64", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/07a37173aace78420ccaf5eceaf4a79c7dfab375", + "reference": "07a37173aace78420ccaf5eceaf4a79c7dfab375", "shasum": "", "mirrors": [ { @@ -5024,7 +5032,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.0.7" + "source": "https://github.com/symfony/framework-bundle/tree/v7.0.10" }, "funding": [ { @@ -5040,20 +5048,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T13:24:26+00:00" }, { "name": "symfony/http-client", - "version": "v7.0.9", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "10be5723e079acf878f7c4350021539e2071fac2" + "reference": "3ae495c67ba9c3b504fecd070a6c28b4143088cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/10be5723e079acf878f7c4350021539e2071fac2", - "reference": "10be5723e079acf878f7c4350021539e2071fac2", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3ae495c67ba9c3b504fecd070a6c28b4143088cf", + "reference": "3ae495c67ba9c3b504fecd070a6c28b4143088cf", "shasum": "", "mirrors": [ { @@ -5122,7 +5130,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.0.9" + "source": "https://github.com/symfony/http-client/tree/v7.0.10" }, "funding": [ { @@ -5138,7 +5146,7 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:17+00:00" + "time": "2024-07-17T06:06:58+00:00" }, { "name": "symfony/http-client-contracts", @@ -5226,16 +5234,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8" + "reference": "e7bb762b114f2f1e2610322e025709df08211f1d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0194e064b8bdc29381462f790bab04e1cac8fdc8", - "reference": "0194e064b8bdc29381462f790bab04e1cac8fdc8", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e7bb762b114f2f1e2610322e025709df08211f1d", + "reference": "e7bb762b114f2f1e2610322e025709df08211f1d", "shasum": "", "mirrors": [ { @@ -5289,7 +5297,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.0.7" + "source": "https://github.com/symfony/http-foundation/tree/v7.0.10" }, "funding": [ { @@ -5305,20 +5313,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T12:37:16+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25" + "reference": "31cb30794c8bb944a4e1f6bb6aef95840b3345a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", - "reference": "e07bb9bd86e7cd8ba2d3d9c618eec9d1bbe06d25", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/31cb30794c8bb944a4e1f6bb6aef95840b3345a7", + "reference": "31cb30794c8bb944a4e1f6bb6aef95840b3345a7", "shasum": "", "mirrors": [ { @@ -5408,7 +5416,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.0.7" + "source": "https://github.com/symfony/http-kernel/tree/v7.0.10" }, "funding": [ { @@ -5424,20 +5432,20 @@ "type": "tidelift" } ], - "time": "2024-04-29T12:20:25+00:00" + "time": "2024-07-26T14:56:00+00:00" }, { "name": "symfony/messenger", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "90c217478f85d5289aae597551e2a4251e4d08c3" + "reference": "f3a9d96ac01e46813de63337dddbf9a81c9fad86" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/90c217478f85d5289aae597551e2a4251e4d08c3", - "reference": "90c217478f85d5289aae597551e2a4251e4d08c3", + "url": "https://api.github.com/repos/symfony/messenger/zipball/f3a9d96ac01e46813de63337dddbf9a81c9fad86", + "reference": "f3a9d96ac01e46813de63337dddbf9a81c9fad86", "shasum": "", "mirrors": [ { @@ -5500,7 +5508,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v7.0.7" + "source": "https://github.com/symfony/messenger/tree/v7.0.10" }, "funding": [ { @@ -5516,20 +5524,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-09T18:35:37+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa" + "reference": "19eecfc6f1b0e4b093db7f4a71eedc91843e711a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/23cc173858776ad451e31f053b1c9f47840b2cfa", - "reference": "23cc173858776ad451e31f053b1c9f47840b2cfa", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/19eecfc6f1b0e4b093db7f4a71eedc91843e711a", + "reference": "19eecfc6f1b0e4b093db7f4a71eedc91843e711a", "shasum": "", "mirrors": [ { @@ -5573,7 +5581,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.0.7" + "source": "https://github.com/symfony/options-resolver/tree/v7.0.8" }, "funding": [ { @@ -5589,7 +5597,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/polyfill-intl-grapheme", @@ -5930,85 +5938,18 @@ ], "time": "2024-06-19T12:35:24+00:00" }, - { - "name": "symfony/process", - "version": "v7.0.7", - "source": { - "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/3839e56b94dd1dbd13235d27504e66baf23faba0", - "reference": "3839e56b94dd1dbd13235d27504e66baf23faba0", - "shasum": "", - "mirrors": [ - { - "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", - "preferred": true - } - ] - }, - "require": { - "php": ">=8.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Process\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://repo.packagist.com/productsupcom/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Executes commands in sub-processes", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/process/tree/v7.0.7" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-04-18T09:29:19+00:00" - }, { "name": "symfony/routing", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b" + "reference": "ed9fe56db2eb080b4fc1ecea9d66277ef6d1fb8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", - "reference": "9f82bf7766ccc9c22ab7aeb9bebb98351483fa5b", + "url": "https://api.github.com/repos/symfony/routing/zipball/ed9fe56db2eb080b4fc1ecea9d66277ef6d1fb8a", + "reference": "ed9fe56db2eb080b4fc1ecea9d66277ef6d1fb8a", "shasum": "", "mirrors": [ { @@ -6066,7 +6007,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.0.7" + "source": "https://github.com/symfony/routing/tree/v7.0.10" }, "funding": [ { @@ -6082,20 +6023,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-17T06:06:58+00:00" }, { "name": "symfony/runtime", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/runtime.git", - "reference": "e120730ef206b31bb5521b1a2389c058adbba9c7" + "reference": "ea34522c447dd91a2b31cb330ee4540a56ba53f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/runtime/zipball/e120730ef206b31bb5521b1a2389c058adbba9c7", - "reference": "e120730ef206b31bb5521b1a2389c058adbba9c7", + "url": "https://api.github.com/repos/symfony/runtime/zipball/ea34522c447dd91a2b31cb330ee4540a56ba53f6", + "reference": "ea34522c447dd91a2b31cb330ee4540a56ba53f6", "shasum": "", "mirrors": [ { @@ -6151,7 +6092,7 @@ "runtime" ], "support": { - "source": "https://github.com/symfony/runtime/tree/v7.0.7" + "source": "https://github.com/symfony/runtime/tree/v7.0.8" }, "funding": [ { @@ -6167,20 +6108,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/serializer", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31" + "reference": "79b073ce21280bae2567cf1c48ae078dc3eeb01d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/08f0c517acf4b12dfc0d3963cd12f7b8023aea31", - "reference": "08f0c517acf4b12dfc0d3963cd12f7b8023aea31", + "url": "https://api.github.com/repos/symfony/serializer/zipball/79b073ce21280bae2567cf1c48ae078dc3eeb01d", + "reference": "79b073ce21280bae2567cf1c48ae078dc3eeb01d", "shasum": "", "mirrors": [ { @@ -6252,7 +6193,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v7.0.7" + "source": "https://github.com/symfony/serializer/tree/v7.0.10" }, "funding": [ { @@ -6268,7 +6209,7 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-17T06:06:58+00:00" }, { "name": "symfony/service-contracts", @@ -6361,16 +6302,16 @@ }, { "name": "symfony/string", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63" + "reference": "a1ac40b358a5e45c2b6c32ec9b183828c1dcf5d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/e405b5424dc2528e02e31ba26b83a79fd4eb8f63", - "reference": "e405b5424dc2528e02e31ba26b83a79fd4eb8f63", + "url": "https://api.github.com/repos/symfony/string/zipball/a1ac40b358a5e45c2b6c32ec9b183828c1dcf5d6", + "reference": "a1ac40b358a5e45c2b6c32ec9b183828c1dcf5d6", "shasum": "", "mirrors": [ { @@ -6433,7 +6374,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.0.7" + "source": "https://github.com/symfony/string/tree/v7.0.10" }, "funding": [ { @@ -6449,7 +6390,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-22T10:25:05+00:00" }, { "name": "symfony/translation-contracts", @@ -6537,16 +6478,16 @@ }, { "name": "symfony/validator", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb" + "reference": "b3e4d838cdae9f2882402c2ad8018a27d469c075" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", - "reference": "ab4e75b9d23ba70e78480aecbe4d8da15adf10eb", + "url": "https://api.github.com/repos/symfony/validator/zipball/b3e4d838cdae9f2882402c2ad8018a27d469c075", + "reference": "b3e4d838cdae9f2882402c2ad8018a27d469c075", "shasum": "", "mirrors": [ { @@ -6597,7 +6538,8 @@ "Symfony\\Component\\Validator\\": "" }, "exclude-from-classmap": [ - "/Tests/" + "/Tests/", + "/Resources/bin/" ] }, "notification-url": "https://repo.packagist.com/productsupcom/downloads/", @@ -6617,7 +6559,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v7.0.7" + "source": "https://github.com/symfony/validator/tree/v7.0.10" }, "funding": [ { @@ -6633,20 +6575,20 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-07-26T12:31:22+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.0.7", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924" + "reference": "3b5bed54f7c541aa0bf4cb0d3eb63b9e422ccb8b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/d1627b66fd87c8b4d90cabe5671c29d575690924", - "reference": "d1627b66fd87c8b4d90cabe5671c29d575690924", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3b5bed54f7c541aa0bf4cb0d3eb63b9e422ccb8b", + "reference": "3b5bed54f7c541aa0bf4cb0d3eb63b9e422ccb8b", "shasum": "", "mirrors": [ { @@ -6706,7 +6648,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.0.7" + "source": "https://github.com/symfony/var-dumper/tree/v7.0.10" }, "funding": [ { @@ -6722,20 +6664,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-07-26T12:31:22+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.0.7", + "version": "v7.0.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078" + "reference": "18053b0e249c7303f9461f78d15cceae69c83b02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/cdecc0022e40e90340ba1a59a3d5ccf069777078", - "reference": "cdecc0022e40e90340ba1a59a3d5ccf069777078", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/18053b0e249c7303f9461f78d15cceae69c83b02", + "reference": "18053b0e249c7303f9461f78d15cceae69c83b02", "shasum": "", "mirrors": [ { @@ -6788,7 +6730,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.0.7" + "source": "https://github.com/symfony/var-exporter/tree/v7.0.9" }, "funding": [ { @@ -6804,20 +6746,20 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-06-28T07:59:17+00:00" }, { "name": "symfony/yaml", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c" + "reference": "89bdddd79e918448ce978be664768ef27b9e5798" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", - "reference": "0d3916ae69ea28b59d94b60c4f2b50f4e25adb5c", + "url": "https://api.github.com/repos/symfony/yaml/zipball/89bdddd79e918448ce978be664768ef27b9e5798", + "reference": "89bdddd79e918448ce978be664768ef27b9e5798", "shasum": "", "mirrors": [ { @@ -6865,7 +6807,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.0.7" + "source": "https://github.com/symfony/yaml/tree/v7.0.8" }, "funding": [ { @@ -6881,7 +6823,7 @@ "type": "tidelift" } ], - "time": "2024-04-28T11:44:19+00:00" + "time": "2024-05-31T14:55:39+00:00" } ], "packages-dev": [ @@ -6957,16 +6899,16 @@ }, { "name": "composer/pcre", - "version": "3.1.4", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "04229f163664973f68f38f6f73d917799168ef24" + "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/04229f163664973f68f38f6f73d917799168ef24", - "reference": "04229f163664973f68f38f6f73d917799168ef24", + "url": "https://api.github.com/repos/composer/pcre/zipball/ea4ab6f9580a4fd221e0418f2c357cdd39102a90", + "reference": "ea4ab6f9580a4fd221e0418f2c357cdd39102a90", "shasum": "", "mirrors": [ { @@ -6978,15 +6920,23 @@ "require": { "php": "^7.4 || ^8.0" }, + "conflict": { + "phpstan/phpstan": "<1.11.8" + }, "require-dev": { - "phpstan/phpstan": "^1.3", + "phpstan/phpstan": "^1.11.8", "phpstan/phpstan-strict-rules": "^1.1", - "symfony/phpunit-bridge": "^5" + "phpunit/phpunit": "^8 || ^9" }, "type": "library", "extra": { "branch-alias": { "dev-main": "3.x-dev" + }, + "phpstan": { + "includes": [ + "extension.neon" + ] } }, "autoload": { @@ -7014,7 +6964,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.1.4" + "source": "https://github.com/composer/pcre/tree/3.2.0" }, "funding": [ { @@ -7030,20 +6980,20 @@ "type": "tidelift" } ], - "time": "2024-05-27T13:40:54+00:00" + "time": "2024-07-25T09:36:02+00:00" }, { "name": "composer/semver", - "version": "3.4.0", + "version": "3.4.2", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32" + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/35e8d0af4486141bc745f23a29cc2091eb624a32", - "reference": "35e8d0af4486141bc745f23a29cc2091eb624a32", + "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", "shasum": "", "mirrors": [ { @@ -7101,7 +7051,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.0" + "source": "https://github.com/composer/semver/tree/3.4.2" }, "funding": [ { @@ -7117,7 +7067,7 @@ "type": "tidelift" } ], - "time": "2023-08-31T09:50:34+00:00" + "time": "2024-07-12T11:35:52+00:00" }, { "name": "composer/xdebug-handler", @@ -7313,16 +7263,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.59.3", + "version": "v3.61.1", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29" + "reference": "94a87189f55814e6cabca2d9a33b06de384a2ab8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/30ba9ecc2b0e5205e578fe29973c15653d9bfd29", - "reference": "30ba9ecc2b0e5205e578fe29973c15653d9bfd29", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/94a87189f55814e6cabca2d9a33b06de384a2ab8", + "reference": "94a87189f55814e6cabca2d9a33b06de384a2ab8", "shasum": "", "mirrors": [ { @@ -7410,7 +7360,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.59.3" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.61.1" }, "funding": [ { @@ -7418,7 +7368,7 @@ "type": "github" } ], - "time": "2024-06-16T14:17:03+00:00" + "time": "2024-07-31T14:33:15+00:00" }, { "name": "mikey179/vfsstream", @@ -7833,16 +7783,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.11.7", + "version": "1.11.9", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d" + "reference": "e370bcddadaede0c1716338b262346f40d296f82" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/52d2bbfdcae7f895915629e4694e9497d0f8e28d", - "reference": "52d2bbfdcae7f895915629e4694e9497d0f8e28d", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/e370bcddadaede0c1716338b262346f40d296f82", + "reference": "e370bcddadaede0c1716338b262346f40d296f82", "shasum": "", "mirrors": [ { @@ -7893,7 +7843,7 @@ "type": "github" } ], - "time": "2024-07-06T11:17:41+00:00" + "time": "2024-08-01T16:25:18+00:00" }, { "name": "phpunit/php-code-coverage", @@ -8248,16 +8198,16 @@ }, { "name": "phpunit/phpunit", - "version": "10.5.27", + "version": "10.5.29", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "2425f713b2a5350568ccb1a2d3984841a23e83c5" + "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2425f713b2a5350568ccb1a2d3984841a23e83c5", - "reference": "2425f713b2a5350568ccb1a2d3984841a23e83c5", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e9e80872b4e8064401788ee8a32d40b4455318f", + "reference": "8e9e80872b4e8064401788ee8a32d40b4455318f", "shasum": "", "mirrors": [ { @@ -8335,7 +8285,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.27" + "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.29" }, "funding": [ { @@ -8351,7 +8301,7 @@ "type": "tidelift" } ], - "time": "2024-07-10T11:48:06+00:00" + "time": "2024-07-30T11:08:00+00:00" }, { "name": "react/cache", @@ -8757,16 +8707,16 @@ }, { "name": "react/socket", - "version": "v1.15.0", + "version": "v1.16.0", "source": { "type": "git", "url": "https://github.com/reactphp/socket.git", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038" + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/reactphp/socket/zipball/216d3aec0b87f04a40ca04f481e6af01bdd1d038", - "reference": "216d3aec0b87f04a40ca04f481e6af01bdd1d038", + "url": "https://api.github.com/repos/reactphp/socket/zipball/23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", + "reference": "23e4ff33ea3e160d2d1f59a0e6050e4b0fb0eac1", "shasum": "", "mirrors": [ { @@ -8778,16 +8728,16 @@ "require": { "evenement/evenement": "^3.0 || ^2.0 || ^1.0", "php": ">=5.3.0", - "react/dns": "^1.11", + "react/dns": "^1.13", "react/event-loop": "^1.2", - "react/promise": "^3 || ^2.6 || ^1.2.1", - "react/stream": "^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 || ^2", + "react/async": "^4.3 || ^3.3 || ^2", "react/promise-stream": "^1.4", - "react/promise-timer": "^1.10" + "react/promise-timer": "^1.11" }, "type": "library", "autoload": { @@ -8831,7 +8781,7 @@ ], "support": { "issues": "https://github.com/reactphp/socket/issues", - "source": "https://github.com/reactphp/socket/tree/v1.15.0" + "source": "https://github.com/reactphp/socket/tree/v1.16.0" }, "funding": [ { @@ -8839,7 +8789,7 @@ "type": "open_collective" } ], - "time": "2023-12-15T11:02:10+00:00" + "time": "2024-07-26T10:38:09+00:00" }, { "name": "react/stream", @@ -8931,12 +8881,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "c31e886d98723c528ab99e920e7903ccb7391bd0" + "reference": "ff7456939acba6dd515a8a10aad66be6bc1b8dc1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c31e886d98723c528ab99e920e7903ccb7391bd0", - "reference": "c31e886d98723c528ab99e920e7903ccb7391bd0", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/ff7456939acba6dd515a8a10aad66be6bc1b8dc1", + "reference": "ff7456939acba6dd515a8a10aad66be6bc1b8dc1", "shasum": "", "mirrors": [ { @@ -8947,7 +8897,7 @@ }, "conflict": { "3f/pygmentize": "<1.2", - "admidio/admidio": "<4.2.13", + "admidio/admidio": "<4.3.10", "adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3", "aheinze/cockpit": "<2.2", "aimeos/ai-admin-graphql": ">=2022.04.1,<2022.10.10|>=2023.04.1,<2023.10.6|>=2024.04.1,<2024.04.6", @@ -8980,12 +8930,12 @@ "athlon1600/php-proxy-app": "<=3", "austintoddj/canvas": "<=3.4.2", "auth0/wordpress": "<=4.6", - "automad/automad": "<=1.10.9", + "automad/automad": "<=2.0.0.0-alpha5", "automattic/jetpack": "<9.8", "awesome-support/awesome-support": "<=6.0.7", "aws/aws-sdk-php": "<3.288.1", "azuracast/azuracast": "<0.18.3", - "backdrop/backdrop": "<1.24.2", + "backdrop/backdrop": "<1.27.3|>=1.28,<1.28.2", "backpack/crud": "<3.4.9", "bacula-web/bacula-web": "<8.0.0.0-RC2-dev", "badaso/core": "<2.7", @@ -9000,7 +8950,7 @@ "bcosca/fatfree": "<3.7.2", "bedita/bedita": "<4", "bigfork/silverstripe-form-capture": ">=3,<3.1.1", - "billz/raspap-webgui": "<2.9.5", + "billz/raspap-webgui": "<=3.1.4", "bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3", "blueimp/jquery-file-upload": "==6.4.4", "bmarshall511/wordpress_zero_spam": "<5.2.13", @@ -9039,7 +8989,7 @@ "codeigniter4/shield": "<1.0.0.0-beta8", "codiad/codiad": "<=2.8.4", "composer/composer": "<1.10.27|>=2,<2.2.24|>=2.3,<2.7.7", - "concrete5/concrete5": "<9.2.8", + "concrete5/concrete5": "<=9.3.2", "concrete5/core": "<8.5.8|>=9,<9.1", "contao-components/mediaelement": ">=2.14.2,<2.21.1", "contao/comments-bundle": ">=2,<4.13.40|>=5.0.0.0-RC1-dev,<5.3.4", @@ -9050,7 +9000,7 @@ "contao/managed-edition": "<=1.5", "corveda/phpsandbox": "<1.3.5", "cosenary/instagram": "<=2.3", - "craftcms/cms": "<4.6.2", + "craftcms/cms": "<4.6.2|>=5.0.0.0-beta1,<=5.2.2", "croogo/croogo": "<4", "cuyz/valinor": "<0.12", "czproject/git-php": "<4.0.3", @@ -9103,7 +9053,7 @@ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev", "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev", "ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24", - "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26", + "ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26|>=3.3,<3.3.39", "ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1", "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12", "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.35", @@ -9126,6 +9076,7 @@ "filp/whoops": "<2.1.13", "fineuploader/php-traditional-server": "<=1.2.2", "firebase/php-jwt": "<6", + "fisharebest/webtrees": "<=2.1.18", "fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2", "fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6", "flarum/core": "<1.8.5", @@ -9148,7 +9099,7 @@ "friendsofsymfony/rest-bundle": ">=1.2,<1.2.2", "friendsofsymfony/user-bundle": ">=1,<1.3.5", "friendsofsymfony1/swiftmailer": ">=4,<5.4.13|>=6,<6.2.5", - "friendsofsymfony1/symfony1": ">=1.1,<1.15.19", + "friendsofsymfony1/symfony1": ">=1.1,<1.5.19", "friendsoftypo3/mediace": ">=7.6.2,<7.6.5", "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6", "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.3", @@ -9186,7 +9137,7 @@ "hov/jobfair": "<1.0.13|>=2,<2.0.2", "httpsoft/http-message": "<1.0.12", "hyn/multi-tenant": ">=5.6,<5.7.2", - "ibexa/admin-ui": ">=4.2,<4.2.3", + "ibexa/admin-ui": ">=4.2,<4.2.3|>=4.6.0.0-beta1,<4.6.9", "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.6|>=4.6,<4.6.2", "ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3", "ibexa/post-install": "<=1.0.4", @@ -9209,6 +9160,7 @@ "innologi/typo3-appointments": "<2.0.6", "intelliants/subrion": "<4.2.2", "inter-mediator/inter-mediator": "==5.5", + "ipl/web": "<0.10.1", "islandora/islandora": ">=2,<2.4.1", "ivankristianto/phpwhois": "<=4.3", "jackalope/jackalope-doctrine-dbal": "<1.7.4", @@ -9271,7 +9223,7 @@ "magento/core": "<=1.9.4.5", "magento/magento1ce": "<1.9.4.3-dev", "magento/magento1ee": ">=1,<1.14.4.3-dev", - "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2", + "magento/product-community-edition": "<2.4.4.0-patch9|>=2.4.5,<2.4.5.0-patch8|>=2.4.6,<2.4.6.0-patch6|>=2.4.7,<2.4.7.0-patch1", "magneto/core": "<1.9.4.4-dev", "maikuolan/phpmussel": ">=1,<1.6", "mainwp/mainwp": "<=4.4.3.3", @@ -9342,9 +9294,9 @@ "onelogin/php-saml": "<2.10.4", "oneup/uploader-bundle": ">=1,<1.9.3|>=2,<2.1.5", "open-web-analytics/open-web-analytics": "<1.7.4", - "opencart/opencart": "<=3.0.3.9|>=4", + "opencart/opencart": ">=0", "openid/php-openid": "<2.3", - "openmage/magento-lts": "<20.5", + "openmage/magento-lts": "<20.10.1", "opensolutions/vimbadmin": "<=3.0.15", "opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2", "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5", @@ -9354,6 +9306,7 @@ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1", "oro/customer-portal": ">=4.1,<=4.1.13|>=4.2,<=4.2.10|>=5,<=5.0.11|>=5.1,<=5.1.3", "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<=5.0.12|>=5.1,<=5.1.3", + "oveleon/contao-cookiebar": "<1.16.3|>=2,<2.1.3", "oxid-esales/oxideshop-ce": "<4.5", "oxid-esales/paymorrow-module": ">=1,<1.0.2|>=2,<2.0.1", "packbackbooks/lti-1-3-php-library": "<5", @@ -9395,7 +9348,7 @@ "phpxmlrpc/extras": "<0.6.1", "phpxmlrpc/phpxmlrpc": "<4.9.2", "pi/pi": "<=2.5", - "pimcore/admin-ui-classic-bundle": "<=1.4.2", + "pimcore/admin-ui-classic-bundle": "<=1.5.1", "pimcore/customer-management-framework-bundle": "<4.0.6", "pimcore/data-hub": "<1.2.4", "pimcore/demo": "<10.3", @@ -9419,7 +9372,7 @@ "prestashop/ps_facetedsearch": "<3.4.1", "prestashop/ps_linklist": "<3.1", "privatebin/privatebin": "<1.4|>=1.5,<1.7.4", - "processwire/processwire": "<=3.0.210", + "processwire/processwire": "<=3.0.229", "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7", "propel/propel1": ">=1,<=1.7.1", "pterodactyl/panel": "<1.11.6", @@ -9468,11 +9421,12 @@ "silverstripe/cms": "<4.11.3", "silverstripe/comments": ">=1.3,<3.1.1", "silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3", - "silverstripe/framework": "<4.13.39|>=5,<5.1.11", + "silverstripe/framework": "<5.2.16", "silverstripe/graphql": ">=2,<2.0.5|>=3,<3.8.2|>=4,<4.3.7|>=5,<5.1.3", "silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1", "silverstripe/recipe-cms": ">=4.5,<4.5.3", "silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1", + "silverstripe/reports": "<5.2.3", "silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4|>=2.1,<2.1.2", "silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1", "silverstripe/subsites": ">=2,<2.6.1", @@ -9505,7 +9459,7 @@ "ssddanbrown/bookstack": "<24.05.1", "statamic/cms": "<4.46|>=5.3,<5.6.2", "stormpath/sdk": "<9.9.99", - "studio-42/elfinder": "<2.1.62", + "studio-42/elfinder": "<=2.1.64", "studiomitte/friendlycaptcha": "<0.1.4", "subhh/libconnect": "<7.0.8|>=8,<8.1", "sukohi/surpass": "<1", @@ -9521,7 +9475,7 @@ "sylius/grid-bundle": "<1.10.1", "sylius/paypal-plugin": ">=1,<1.2.4|>=1.3,<1.3.1", "sylius/resource-bundle": ">=1,<1.3.14|>=1.4,<1.4.7|>=1.5,<1.5.2|>=1.6,<1.6.4", - "sylius/sylius": "<1.9.10|>=1.10,<1.10.11|>=1.11,<1.11.2|>=1.12.0.0-alpha1,<1.12.16|>=1.13.0.0-alpha1,<1.13.1", + "sylius/sylius": "<1.12.19|>=1.13.0.0-alpha1,<1.13.4", "symbiote/silverstripe-multivaluefield": ">=3,<3.1", "symbiote/silverstripe-queuedjobs": ">=3,<3.0.2|>=3.1,<3.1.4|>=4,<4.0.7|>=4.1,<4.1.2|>=4.2,<4.2.4|>=4.3,<4.3.3|>=4.4,<4.4.3|>=4.5,<4.5.1|>=4.6,<4.6.4", "symbiote/silverstripe-seed": "<6.0.3", @@ -9580,11 +9534,12 @@ "topthink/framework": "<6.0.17|>=6.1,<6.1.5|>=8,<8.0.4", "topthink/think": "<=6.1.1", "topthink/thinkphp": "<=3.2.3", - "torrentpier/torrentpier": "<=2.4.1", + "torrentpier/torrentpier": "<=2.4.3", "tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2", "tribalsystems/zenario": "<9.5.60602", "truckersmp/phpwhois": "<=4.3.1", "ttskch/pagination-service-provider": "<1", + "twbs/bootstrap": "<=3.4.1|>=4,<=4.6.2", "twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3", "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2", "typo3/cms-backend": "<4.1.14|>=4.2,<4.2.15|>=4.3,<4.3.7|>=4.4,<4.4.4|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", @@ -9622,7 +9577,8 @@ "wallabag/tcpdf": "<6.2.22", "wallabag/wallabag": "<2.6.7", "wanglelecc/laracms": "<=1.0.3", - "web-auth/webauthn-framework": ">=3.3,<3.3.4", + "web-auth/webauthn-framework": ">=3.3,<3.3.4|>=4.5,<4.9", + "web-auth/webauthn-lib": ">=4.5,<4.9", "web-feet/coastercms": "==5.5", "webbuilders-group/silverstripe-kapost-bridge": "<0.4", "webcoast/deferred-image-processing": "<1.0.2", @@ -9738,7 +9694,7 @@ "type": "tidelift" } ], - "time": "2024-07-11T20:05:10+00:00" + "time": "2024-08-05T15:04:41+00:00" }, { "name": "sebastian/cli-parser", @@ -10748,16 +10704,16 @@ }, { "name": "symfony/phpunit-bridge", - "version": "v7.0.9", + "version": "v7.0.10", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "763e2edfe668c8b59c34f01a0529a2568f65b33d" + "reference": "d2e5a1a4db3993707172c490cea8e9b252d2f677" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/763e2edfe668c8b59c34f01a0529a2568f65b33d", - "reference": "763e2edfe668c8b59c34f01a0529a2568f65b33d", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/d2e5a1a4db3993707172c490cea8e9b252d2f677", + "reference": "d2e5a1a4db3993707172c490cea8e9b252d2f677", "shasum": "", "mirrors": [ { @@ -10816,7 +10772,74 @@ "description": "Provides utilities for PHPUnit, especially user deprecation notices management", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.0.9" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.0.10" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2024-07-26T12:31:22+00:00" + }, + { + "name": "symfony/process", + "version": "v7.0.8", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "a358943d5a15277fc6001f47541c08b7d815338f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/a358943d5a15277fc6001f47541c08b7d815338f", + "reference": "a358943d5a15277fc6001f47541c08b7d815338f", + "shasum": "", + "mirrors": [ + { + "url": "https://repo.packagist.com/productsupcom/dists/%package%/%version%/r%reference%.%type%", + "preferred": true + } + ] + }, + "require": { + "php": ">=8.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "Symfony\\Component\\Process\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://repo.packagist.com/productsupcom/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Executes commands in sub-processes", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/process/tree/v7.0.8" }, "funding": [ { @@ -10832,20 +10855,20 @@ "type": "tidelift" } ], - "time": "2024-06-22T11:38:48+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "symfony/stopwatch", - "version": "v7.0.7", + "version": "v7.0.8", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84" + "reference": "e4a0d6fef3dd428ca23172e62d1d863f6f25d541" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/41a7a24aa1dc82adf46a06bc292d1923acfe6b84", - "reference": "41a7a24aa1dc82adf46a06bc292d1923acfe6b84", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/e4a0d6fef3dd428ca23172e62d1d863f6f25d541", + "reference": "e4a0d6fef3dd428ca23172e62d1d863f6f25d541", "shasum": "", "mirrors": [ { @@ -10884,7 +10907,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.0.7" + "source": "https://github.com/symfony/stopwatch/tree/v7.0.8" }, "funding": [ { @@ -10900,7 +10923,7 @@ "type": "tidelift" } ], - "time": "2024-04-18T09:29:19+00:00" + "time": "2024-05-31T14:55:39+00:00" }, { "name": "theseer/tokenizer", diff --git a/config/bundles.php b/config/bundles.php index a1689bb..1cbbd31 100644 --- a/config/bundles.php +++ b/config/bundles.php @@ -3,4 +3,5 @@ return [ Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true], Productsup\DK\CoreBundle\DkCoreBundle::class => ['all' => true], -]; + League\FlysystemBundle\FlysystemBundle::class => ['all' => true], + ]; diff --git a/config/packages/flysystem.yaml b/config/packages/flysystem.yaml new file mode 100644 index 0000000..88b8b95 --- /dev/null +++ b/config/packages/flysystem.yaml @@ -0,0 +1,9 @@ +# Read the documentation at https://github.com/thephpleague/flysystem-bundle/blob/master/docs/1-getting-started.md +flysystem: + storages: + awsflysystem: + adapter: 'asyncaws' + options: + client: 'aws_client_service' + bucket: '%env(BUCKET)%' + prefix: '' \ No newline at end of file diff --git a/config/services.yaml b/config/services.yaml index f50364a..f79e864 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -7,10 +7,6 @@ services: autowire: true autoconfigure: true bind: - $accessKeyId: '%env(ACCESS_KEY_ID)%' - $secretAccessKey: '%env(SECRET_ACCESS_KEY)%' - $bucket: '%env(BUCKET)%' - $region: '%env(REGION)%' $tempFilename: '%temp_filename%' $filename: '%env(FILE_NAME)%' @@ -21,17 +17,11 @@ services: - '../src/Entity/' - '../src/Kernel.php' - AsyncAws\SimpleS3\SimpleS3Client: - factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\S3ClientFactory', 'make'] - - League\Flysystem\FilesystemAdapter: - factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\S3AdapterFactory', 'make'] - - League\Flysystem\Filesystem: - factory: ['Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter\Factory\FilesystemFactory', 'make'] - Productsup\BinCdeAmazonS3Parquet\Import\Application\Importer: - $converter: '@Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\ParquetFileConverter' + $converter: '@Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Converter\ParquetFileConverter' + + aws_client_service: + class: 'AsyncAws\S3\S3Client' when@dev: services: diff --git a/docker-compose.yml b/docker-compose.yml index f60082f..f12350d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,9 @@ services: php-cli: - image: 'docker.productsup.com/cde/cde-php-cli-dev:8.3' + platform: linux/x86_64 + build: + context: . + dockerfile: Dockerfile-dev volumes: - '${HOME}/.composer/:/root/.composer' - './files:/data/productsup' diff --git a/src/Import/Application/Converter/ParquetFileConverter.php b/src/Import/Application/Converter/ParquetFileConverter.php new file mode 100644 index 0000000..3fa2064 --- /dev/null +++ b/src/Import/Application/Converter/ParquetFileConverter.php @@ -0,0 +1,10 @@ +outputFeedForImport->appendToOutputFeed($row); } $this->outputFeedForImport->end(); - $this->logger->info(ConnectorFinished::fromName(self::NAME)); + $this->logger->success(ConnectorFinished::fromName(self::NAME)); } } diff --git a/src/Import/Domain/DuckDb/FileConverter.php b/src/Import/Domain/DuckDb/FileConverter.php deleted file mode 100644 index 6eadfda..0000000 --- a/src/Import/Domain/DuckDb/FileConverter.php +++ /dev/null @@ -1,10 +0,0 @@ -getMessage(), - previous: $previous - ); - } -} diff --git a/src/Import/Infrastructure/Transporter/Factory/FilesystemFactory.php b/src/Import/Infrastructure/Transporter/Factory/FilesystemFactory.php deleted file mode 100644 index acda5df..0000000 --- a/src/Import/Infrastructure/Transporter/Factory/FilesystemFactory.php +++ /dev/null @@ -1,16 +0,0 @@ - $accessKeyId, - 'accessKeySecret' => $secretAccessKey, - 'region' => $region, - ]); - } -} diff --git a/src/Import/Infrastructure/Transporter/S3Transporter.php b/src/Import/Infrastructure/Transporter/S3Transporter.php index 32e55cb..6de881b 100644 --- a/src/Import/Infrastructure/Transporter/S3Transporter.php +++ b/src/Import/Infrastructure/Transporter/S3Transporter.php @@ -4,8 +4,8 @@ namespace Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Transporter; -use League\Flysystem\Filesystem; use League\Flysystem\FilesystemException; +use League\Flysystem\FilesystemOperator; use League\Flysystem\UnableToWriteFile; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Logger\DownloadFinished; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Logger\DownloadStarted; @@ -16,7 +16,7 @@ final class S3Transporter implements Transporter { public function __construct( - private readonly Filesystem $filesystem, + private readonly FilesystemOperator $awsflysystem, private readonly ConnectorLogger $logger, private readonly string $filename, private readonly string $tempFilename @@ -30,7 +30,7 @@ public function transport(): void try { //read and save file as local copy - $fileContent = $this->filesystem->read($key); + $fileContent = $this->awsflysystem->read($key); file_put_contents($this->tempFilename, $fileContent); } catch (FilesystemException|UnableToWriteFile $exception) { throw DownloadFailed::dueToPrevious($exception); diff --git a/symfony.lock b/symfony.lock index bf3c70e..9744bc3 100644 --- a/symfony.lock +++ b/symfony.lock @@ -29,6 +29,19 @@ "ref": "9443fa0142137a4a09eb7fd5caffc0710e0d7595" } }, + "league/flysystem-bundle": { + "version": "3.3", + "recipe": { + "repo": "github.com/symfony/recipes", + "branch": "main", + "version": "1.0", + "ref": "913dc3d7a5a1af0d2b044c5ac3a16e2f851d7380" + }, + "files": [ + "config/packages/flysystem.yaml", + "var/storage/.gitignore" + ] + }, "php-http/discovery": { "version": "1.19", "recipe": { From 73e26688cc6cc75656facae87d8ff2da6f9c9333 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Tue, 6 Aug 2024 13:50:42 +0200 Subject: [PATCH 10/11] namespace fixes --- src/Import/Application/Converter/ParquetFileConverter.php | 2 +- .../Converter/Exception/FailedQueryExecutionException.php | 2 +- src/Import/Infrastructure/Converter/ParquetFileConverter.php | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Import/Application/Converter/ParquetFileConverter.php b/src/Import/Application/Converter/ParquetFileConverter.php index 3fa2064..5981f3c 100644 --- a/src/Import/Application/Converter/ParquetFileConverter.php +++ b/src/Import/Application/Converter/ParquetFileConverter.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Productsup\BinCdeAmazonS3Parquet\Import\Application\DuckDb; +namespace Productsup\BinCdeAmazonS3Parquet\Import\Application\Converter; interface ParquetFileConverter { diff --git a/src/Import/Infrastructure/Converter/Exception/FailedQueryExecutionException.php b/src/Import/Infrastructure/Converter/Exception/FailedQueryExecutionException.php index ee3eb10..4495188 100644 --- a/src/Import/Infrastructure/Converter/Exception/FailedQueryExecutionException.php +++ b/src/Import/Infrastructure/Converter/Exception/FailedQueryExecutionException.php @@ -2,7 +2,7 @@ declare(strict_types=1); -namespace Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\Exception; +namespace Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Converter\Exception; use Productsup\DK\Connector\Exception\Core\EngineeringLevelException; diff --git a/src/Import/Infrastructure/Converter/ParquetFileConverter.php b/src/Import/Infrastructure/Converter/ParquetFileConverter.php index f874a58..29d7cea 100644 --- a/src/Import/Infrastructure/Converter/ParquetFileConverter.php +++ b/src/Import/Infrastructure/Converter/ParquetFileConverter.php @@ -4,8 +4,8 @@ namespace Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Converter; -use Productsup\BinCdeAmazonS3Parquet\Import\Application\DuckDb\ParquetFileConverter as ParquetFileConverterInterface; -use Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\DuckDb\Exception\FailedQueryExecutionException; +use Productsup\BinCdeAmazonS3Parquet\Import\Application\Converter\ParquetFileConverter as ParquetFileConverterInterface; +use Productsup\BinCdeAmazonS3Parquet\Import\Infrastructure\Converter\Exception\FailedQueryExecutionException; final readonly class ParquetFileConverter implements ParquetFileConverterInterface { From 4e9504573765955a5a67f70fd3cfb5a6dc890087 Mon Sep 17 00:00:00 2001 From: khelmrich Date: Tue, 6 Aug 2024 14:50:08 +0200 Subject: [PATCH 11/11] fix stan --- src/Import/Application/Importer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Import/Application/Importer.php b/src/Import/Application/Importer.php index 74d7f88..e534d39 100644 --- a/src/Import/Application/Importer.php +++ b/src/Import/Application/Importer.php @@ -4,7 +4,7 @@ namespace Productsup\BinCdeAmazonS3Parquet\Import\Application; -use Productsup\BinCdeAmazonS3Parquet\Import\Application\DuckDb\ParquetFileConverter; +use Productsup\BinCdeAmazonS3Parquet\Import\Application\Converter\ParquetFileConverter; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Processor\Processor; use Productsup\BinCdeAmazonS3Parquet\Import\Application\Transporter\Transporter; use Productsup\DK\Connector\Application\Feed\OutputFeedForImport;