From 4bf993bda56ce995e5ffcd1d794997720c32c9c4 Mon Sep 17 00:00:00 2001 From: Spryker Bot Date: Fri, 15 Nov 2024 06:22:11 +0000 Subject: [PATCH 1/4] Update composer lock file. --- composer.lock | 248 +++++++++++++++++++++++++------------------------- 1 file changed, 124 insertions(+), 124 deletions(-) diff --git a/composer.lock b/composer.lock index 8cfe02d339..b7ca540b23 100644 --- a/composer.lock +++ b/composer.lock @@ -246,16 +246,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.325.5", + "version": "3.327.1", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "195d003c902a741de53008c839cbcebddbe1f326" + "reference": "3d52ec587989b136e486f94eff3dd316465aeb42" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/195d003c902a741de53008c839cbcebddbe1f326", - "reference": "195d003c902a741de53008c839cbcebddbe1f326", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/3d52ec587989b136e486f94eff3dd316465aeb42", + "reference": "3d52ec587989b136e486f94eff3dd316465aeb42", "shasum": "" }, "require": { @@ -338,9 +338,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.325.5" + "source": "https://github.com/aws/aws-sdk-php/tree/3.327.1" }, - "time": "2024-11-08T19:12:57+00:00" + "time": "2024-11-15T01:53:30+00:00" }, { "name": "brick/math", @@ -3258,16 +3258,16 @@ }, { "name": "monolog/monolog", - "version": "2.9.3", + "version": "2.10.0", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215" + "reference": "5cf826f2991858b54d5c3809bee745560a1042a7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215", - "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/5cf826f2991858b54d5c3809bee745560a1042a7", + "reference": "5cf826f2991858b54d5c3809bee745560a1042a7", "shasum": "" }, "require": { @@ -3344,7 +3344,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.9.3" + "source": "https://github.com/Seldaek/monolog/tree/2.10.0" }, "funding": [ { @@ -3356,7 +3356,7 @@ "type": "tidelift" } ], - "time": "2024-04-12T20:52:51+00:00" + "time": "2024-11-12T12:43:37+00:00" }, { "name": "mtdowling/jmespath.php", @@ -6349,7 +6349,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/spryker.git", - "reference": "a32daec9c03338353b0a70a037da751ade7a70ac" + "reference": "35dfdb357937af3a723cf14d5d8cc520718829db" }, "require": { "php": ">=8.1" @@ -7467,7 +7467,7 @@ "proprietary" ], "description": "Spryker Framework", - "time": "2024-11-11T15:40:11+00:00" + "time": "2024-11-15T06:20:03+00:00" }, { "name": "spryker/spryker-shop", @@ -8355,16 +8355,16 @@ }, { "name": "symfony/console", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b" + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/897c2441ed4eec8a8a2c37b943427d24dba3f26b", - "reference": "897c2441ed4eec8a8a2c37b943427d24dba3f26b", + "url": "https://api.github.com/repos/symfony/console/zipball/f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", + "reference": "f1fc6f47283e27336e7cebb9e8946c8de7bff9bd", "shasum": "" }, "require": { @@ -8429,7 +8429,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.14" + "source": "https://github.com/symfony/console/tree/v6.4.15" }, "funding": [ { @@ -8445,7 +8445,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/debug", @@ -8518,16 +8518,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v7.1.6", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd" + "reference": "e4d13f0f394f4d02a041ff76acd31c5a20a5f70b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd", - "reference": "1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/e4d13f0f394f4d02a041ff76acd31c5a20a5f70b", + "reference": "e4d13f0f394f4d02a041ff76acd31c5a20a5f70b", "shasum": "" }, "require": { @@ -8578,7 +8578,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.1.6" + "source": "https://github.com/symfony/dependency-injection/tree/v7.1.8" }, "funding": [ { @@ -8594,7 +8594,7 @@ "type": "tidelift" } ], - "time": "2024-10-25T15:11:02+00:00" + "time": "2024-11-09T09:16:45+00:00" }, { "name": "symfony/deprecation-contracts", @@ -9409,16 +9409,16 @@ }, { "name": "symfony/http-client", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826" + "reference": "cb4073c905cd12b8496d24ac428a9228c1750670" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/05d88cbd816ad6e0202edd9a9963cb9d615b8826", - "reference": "05d88cbd816ad6e0202edd9a9963cb9d615b8826", + "url": "https://api.github.com/repos/symfony/http-client/zipball/cb4073c905cd12b8496d24ac428a9228c1750670", + "reference": "cb4073c905cd12b8496d24ac428a9228c1750670", "shasum": "" }, "require": { @@ -9482,7 +9482,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v6.4.14" + "source": "https://github.com/symfony/http-client/tree/v6.4.15" }, "funding": [ { @@ -9498,7 +9498,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T16:39:55+00:00" + "time": "2024-11-13T13:40:18+00:00" }, { "name": "symfony/http-client-contracts", @@ -9580,16 +9580,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388" + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ba020a321a95519303a3f09ec2824d34d601c388", - "reference": "ba020a321a95519303a3f09ec2824d34d601c388", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", + "reference": "9b3165eb2f04aeaa1a5a2cfef73e63fe3b22dff6", "shasum": "" }, "require": { @@ -9599,12 +9599,12 @@ "symfony/polyfill-php83": "^1.27" }, "conflict": { - "symfony/cache": "<6.3" + "symfony/cache": "<6.4.12|>=7.0,<7.1.5" }, "require-dev": { "doctrine/dbal": "^2.13.1|^3|^4", "predis/predis": "^1.1|^2.0", - "symfony/cache": "^6.3|^7.0", + "symfony/cache": "^6.4.12|^7.1.5", "symfony/dependency-injection": "^5.4|^6.0|^7.0", "symfony/expression-language": "^5.4|^6.0|^7.0", "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4|^7.0", @@ -9637,7 +9637,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.4.14" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.15" }, "funding": [ { @@ -9653,20 +9653,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T16:39:55+00:00" + "time": "2024-11-08T16:09:24+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "8278a947d0369754a47b758a9e17b72cab970951" + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/8278a947d0369754a47b758a9e17b72cab970951", - "reference": "8278a947d0369754a47b758a9e17b72cab970951", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b002a5b3947653c5aee3adac2a024ea615fd3ff5", + "reference": "b002a5b3947653c5aee3adac2a024ea615fd3ff5", "shasum": "" }, "require": { @@ -9751,7 +9751,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/v6.4.14" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.15" }, "funding": [ { @@ -9767,20 +9767,20 @@ "type": "tidelift" } ], - "time": "2024-11-06T09:45:21+00:00" + "time": "2024-11-13T13:57:37+00:00" }, { "name": "symfony/intl", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "4e852ff0b0f9851a7ca543ff731686d9a46574d1" + "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/4e852ff0b0f9851a7ca543ff731686d9a46574d1", - "reference": "4e852ff0b0f9851a7ca543ff731686d9a46574d1", + "url": "https://api.github.com/repos/symfony/intl/zipball/b1d5e8d82615b60f229216edfee0b59e2ef66da6", + "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6", "shasum": "" }, "require": { @@ -9834,7 +9834,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.14" + "source": "https://github.com/symfony/intl/tree/v6.4.15" }, "funding": [ { @@ -9850,7 +9850,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/mailer", @@ -9934,16 +9934,16 @@ }, { "name": "symfony/messenger", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "5cd75048611f7a86a7dca7f1cf7089d0d7ef90ff" + "reference": "f9d4bae8301dced6f12e110a7956d2fd441573f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/5cd75048611f7a86a7dca7f1cf7089d0d7ef90ff", - "reference": "5cd75048611f7a86a7dca7f1cf7089d0d7ef90ff", + "url": "https://api.github.com/repos/symfony/messenger/zipball/f9d4bae8301dced6f12e110a7956d2fd441573f1", + "reference": "f9d4bae8301dced6f12e110a7956d2fd441573f1", "shasum": "" }, "require": { @@ -10001,7 +10001,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/v6.4.13" + "source": "https://github.com/symfony/messenger/tree/v6.4.15" }, "funding": [ { @@ -10017,7 +10017,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2024-11-09T07:05:35+00:00" }, { "name": "symfony/mime", @@ -11198,16 +11198,16 @@ }, { "name": "symfony/process", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "25214adbb0996d18112548de20c281be9f27279f" + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/25214adbb0996d18112548de20c281be9f27279f", - "reference": "25214adbb0996d18112548de20c281be9f27279f", + "url": "https://api.github.com/repos/symfony/process/zipball/3cb242f059c14ae08591c5c4087d1fe443564392", + "reference": "3cb242f059c14ae08591c5c4087d1fe443564392", "shasum": "" }, "require": { @@ -11239,7 +11239,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v6.4.14" + "source": "https://github.com/symfony/process/tree/v6.4.15" }, "funding": [ { @@ -11255,7 +11255,7 @@ "type": "tidelift" } ], - "time": "2024-11-06T09:25:01+00:00" + "time": "2024-11-06T14:19:14+00:00" }, { "name": "symfony/property-access", @@ -11336,16 +11336,16 @@ }, { "name": "symfony/property-info", - "version": "v7.1.6", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "6b630ff585d9fdc72f50369885ad4364a849cf02" + "reference": "3748f85f64351d282fd028e44309856f1d79142e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/6b630ff585d9fdc72f50369885ad4364a849cf02", - "reference": "6b630ff585d9fdc72f50369885ad4364a849cf02", + "url": "https://api.github.com/repos/symfony/property-info/zipball/3748f85f64351d282fd028e44309856f1d79142e", + "reference": "3748f85f64351d282fd028e44309856f1d79142e", "shasum": "" }, "require": { @@ -11361,7 +11361,7 @@ }, "require-dev": { "phpdocumentor/reflection-docblock": "^5.2", - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "symfony/cache": "^6.4|^7.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/serializer": "^6.4|^7.0" @@ -11400,7 +11400,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.6" + "source": "https://github.com/symfony/property-info/tree/v7.1.8" }, "funding": [ { @@ -11416,7 +11416,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-09T07:07:11+00:00" }, { "name": "symfony/routing", @@ -11803,16 +11803,16 @@ }, { "name": "symfony/security-http", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "cc13b601fc844036fd6c8e7307845da145d5998b" + "reference": "ded1e078f952e686b058d9eac98e497bea47b308" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/cc13b601fc844036fd6c8e7307845da145d5998b", - "reference": "cc13b601fc844036fd6c8e7307845da145d5998b", + "url": "https://api.github.com/repos/symfony/security-http/zipball/ded1e078f952e686b058d9eac98e497bea47b308", + "reference": "ded1e078f952e686b058d9eac98e497bea47b308", "shasum": "" }, "require": { @@ -11871,7 +11871,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.14" + "source": "https://github.com/symfony/security-http/tree/v6.4.15" }, "funding": [ { @@ -11887,20 +11887,20 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:40+00:00" + "time": "2024-11-13T13:40:18+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.13", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "8be421505938b11a0ca4f656e4322232236386f0" + "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/8be421505938b11a0ca4f656e4322232236386f0", - "reference": "8be421505938b11a0ca4f656e4322232236386f0", + "url": "https://api.github.com/repos/symfony/serializer/zipball/9d862d66198f3c2e30404228629ef4c18d5d608e", + "reference": "9d862d66198f3c2e30404228629ef4c18d5d608e", "shasum": "" }, "require": { @@ -11969,7 +11969,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/v6.4.13" + "source": "https://github.com/symfony/serializer/tree/v6.4.15" }, "funding": [ { @@ -11985,7 +11985,7 @@ "type": "tidelift" } ], - "time": "2024-10-03T09:58:04+00:00" + "time": "2024-10-23T13:25:59+00:00" }, { "name": "symfony/service-contracts", @@ -12134,16 +12134,16 @@ }, { "name": "symfony/string", - "version": "v7.1.6", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626" + "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626", - "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626", + "url": "https://api.github.com/repos/symfony/string/zipball/591ebd41565f356fcd8b090fe64dbb5878f50281", + "reference": "591ebd41565f356fcd8b090fe64dbb5878f50281", "shasum": "" }, "require": { @@ -12201,7 +12201,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.6" + "source": "https://github.com/symfony/string/tree/v7.1.8" }, "funding": [ { @@ -12217,7 +12217,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-13T13:31:21+00:00" }, { "name": "symfony/translation", @@ -12503,16 +12503,16 @@ }, { "name": "symfony/type-info", - "version": "v7.1.6", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "a13032128c307470955c45c99201349b15cd7f4a" + "reference": "51535dde21c7abf65c9d000a30bb15f6478195e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/a13032128c307470955c45c99201349b15cd7f4a", - "reference": "a13032128c307470955c45c99201349b15cd7f4a", + "url": "https://api.github.com/repos/symfony/type-info/zipball/51535dde21c7abf65c9d000a30bb15f6478195e6", + "reference": "51535dde21c7abf65c9d000a30bb15f6478195e6", "shasum": "" }, "require": { @@ -12525,7 +12525,7 @@ "symfony/property-info": "<6.4" }, "require-dev": { - "phpstan/phpdoc-parser": "^1.0", + "phpstan/phpdoc-parser": "^1.0|^2.0", "symfony/dependency-injection": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0" }, @@ -12565,7 +12565,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.6" + "source": "https://github.com/symfony/type-info/tree/v7.1.8" }, "funding": [ { @@ -12581,7 +12581,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:20:29+00:00" + "time": "2024-11-07T15:49:33+00:00" }, { "name": "symfony/uid", @@ -12659,16 +12659,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.14", + "version": "v6.4.15", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf" + "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/dc259b85e59a6569e205966d447dec0a7d95facf", - "reference": "dc259b85e59a6569e205966d447dec0a7d95facf", + "url": "https://api.github.com/repos/symfony/validator/zipball/7541055cdaf54ff95f0735bf703d313374e8b20b", + "reference": "7541055cdaf54ff95f0735bf703d313374e8b20b", "shasum": "" }, "require": { @@ -12736,7 +12736,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.14" + "source": "https://github.com/symfony/validator/tree/v6.4.15" }, "funding": [ { @@ -12752,20 +12752,20 @@ "type": "tidelift" } ], - "time": "2024-11-04T11:33:53+00:00" + "time": "2024-11-08T15:28:48+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.1.7", + "version": "v7.1.8", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "f6ea51f669760cacd7464bf7eaa0be87b8072db1" + "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/f6ea51f669760cacd7464bf7eaa0be87b8072db1", - "reference": "f6ea51f669760cacd7464bf7eaa0be87b8072db1", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8", + "reference": "7bb01a47b1b00428d32b5e7b4d3b2d1aa58d3db8", "shasum": "" }, "require": { @@ -12819,7 +12819,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.1.7" + "source": "https://github.com/symfony/var-dumper/tree/v7.1.8" }, "funding": [ { @@ -12835,7 +12835,7 @@ "type": "tidelift" } ], - "time": "2024-11-05T15:34:55+00:00" + "time": "2024-11-08T15:46:42+00:00" }, { "name": "symfony/var-exporter", @@ -15822,16 +15822,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.5.1", + "version": "5.6.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f" + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/0c70d2c566e899666f367ab7b80986beb3581e6f", - "reference": "0c70d2c566e899666f367ab7b80986beb3581e6f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/f3558a4c23426d12bffeaab463f8a8d8b681193c", + "reference": "f3558a4c23426d12bffeaab463f8a8d8b681193c", "shasum": "" }, "require": { @@ -15840,7 +15840,7 @@ "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpstan/phpdoc-parser": "^1.7|^2.0", "webmozart/assert": "^1.9.1" }, "require-dev": { @@ -15880,9 +15880,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.5.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.0" }, - "time": "2024-11-06T11:58:54+00:00" + "time": "2024-11-12T11:25:25+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -18409,7 +18409,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/cypress-tests.git", - "reference": "1dca6927806f9c8286b5c4ee65f31686de259bc8" + "reference": "1dd04b4caf3e469d942a9f3dd9cb1cddbcc63ece" }, "default-branch": true, "type": "library", @@ -18417,7 +18417,7 @@ "MIT" ], "description": "This repository is dedicated to housing an extensive collection of UI end-to-end tests, meticulously crafted using Cypress for Spryker applications. These tests are designed to thoroughly evaluate the user interface, ensuring that all interactions and visual elements function as intended in real-world scenarios. By leveraging Cypress's advanced browser automation capabilities, this suite provides an efficient and effective means of validating the user experience, confirming the seamless operation and aesthetic integrity of Spryker's front-end components. Our commitment to rigorous UI testing helps maintain the high standard of quality and reliability that Spryker users expect.", - "time": "2024-10-23T21:20:45+00:00" + "time": "2024-11-14T12:08:11+00:00" }, { "name": "spryker/development-core", @@ -18647,7 +18647,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/robotframework-suite-tests.git", - "reference": "2d7a561afe3f8b680d0fec1e678e905fc1dd6256" + "reference": "8b2175d33d8105e1be91f3e828101c92860286cb" }, "default-branch": true, "type": "library", @@ -18655,20 +18655,20 @@ "MIT" ], "description": "Automated tests for the Robot Framework", - "time": "2024-11-07T11:46:58+00:00" + "time": "2024-11-14T14:09:04+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.10.3", + "version": "3.11.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c" + "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/62d32998e820bddc40f99f8251958aed187a5c9c", - "reference": "62d32998e820bddc40f99f8251958aed187a5c9c", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/70c08f8d20c0eb4fe56f26644dd94dae76a7f450", + "reference": "70c08f8d20c0eb4fe56f26644dd94dae76a7f450", "shasum": "" }, "require": { @@ -18735,7 +18735,7 @@ "type": "open_collective" } ], - "time": "2024-09-18T10:38:58+00:00" + "time": "2024-11-12T09:53:29+00:00" }, { "name": "symfony/browser-kit", From 14615fe1fe737b6e0eb8728dfe7bd6a65d1f51a9 Mon Sep 17 00:00:00 2001 From: Dmytro Asieiev <32021063+dmiseev@users.noreply.github.com> Date: Fri, 15 Nov 2024 20:32:21 +0300 Subject: [PATCH 2/4] CC-34501: Initialisation Order Amendment Process (#9129) CC-34501 Initialisation Order Amendment Process --- composer.lock | 23 +- config/Shared/config_default.php | 2 +- config/Zed/oms/DummyPayment01.xml | 3 + .../DummySubprocess/DummyOrderAmendment01.xml | 40 + data/import/common/common/glossary.csv | 29 +- package-lock.json | 1012 ++++++++++------- .../Persistence/SpySalesOrderAmendment.php | 23 + .../SpySalesOrderAmendmentQuery.php | 23 + src/Pyz/Client/MultiCart/MultiCartConfig.php | 1 + .../PersistentCartDependencyProvider.php | 2 - .../CartReorderRestApiDependencyProvider.php | 24 + .../CartsRestApiDependencyProvider.php | 2 + .../GlueApplicationDependencyProvider.php | 2 + src/Pyz/Shared/MultiCart/MultiCartConfig.php | 18 + .../CartReorderPageDependencyProvider.php | 37 + .../CustomerPageDependencyProvider.php | 31 - ...ustomerReorderWidgetDependencyProvider.php | 61 - .../Yves/Router/RouterDependencyProvider.php | 6 +- .../ShopApplicationDependencyProvider.php | 16 +- .../CartReorderDependencyProvider.php | 140 +++ .../Checkout/CheckoutDependencyProvider.php | 2 + src/Pyz/Zed/Quote/QuoteConfig.php | 1 + src/Pyz/Zed/Quote/QuoteDependencyProvider.php | 10 + src/Pyz/Zed/Sales/SalesDependencyProvider.php | 4 + .../SalesOrderAmendmentDependencyProvider.php | 24 + ...ProductOfferCartReorderRestApiFixtures.php | 218 ++++ ...roductBundleCartReorderRestApiFixtures.php | 198 ++++ ...ductConcreteCartReorderRestApiFixtures.php | 238 ++++ ...oductOptionsCartReorderRestApiFixtures.php | 180 +++ .../SalesUnitCartReorderRestApiFixtures.php | 183 +++ ...hantProductOfferCartReorderRestApiCest.php | 112 ++ .../ProductBundleCartReorderRestApiCest.php | 100 ++ .../ProductConcreteCartReorderRestApiCest.php | 270 +++++ .../ProductOptionsCartReorderRestApiCest.php | 106 ++ .../SalesUnitCartReorderRestApiCest.php | 113 ++ .../_support/CartReorderApiTester.php | 443 ++++++++ .../PyzTest/Glue/CartReorder/codeception.yml | 54 + .../RestApi/OrderAmendmentRestApiFixtures.php | 172 +++ .../RestApi/OrderAmendmentsRestApiCest.php | 174 +++ .../_support/OrderAmendmentsApiTester.php | 111 ++ .../Glue/OrderAmendments/codeception.yml | 45 + .../AvailabilityPresentationTester.php | 3 +- .../codeception.dynamic.fixtures.yml | 5 + 43 files changed, 3723 insertions(+), 538 deletions(-) create mode 100644 config/Zed/oms/DummySubprocess/DummyOrderAmendment01.xml create mode 100644 src/Orm/Zed/SalesOrderAmendment/Persistence/SpySalesOrderAmendment.php create mode 100644 src/Orm/Zed/SalesOrderAmendment/Persistence/SpySalesOrderAmendmentQuery.php create mode 100644 src/Pyz/Glue/CartReorderRestApi/CartReorderRestApiDependencyProvider.php create mode 100644 src/Pyz/Shared/MultiCart/MultiCartConfig.php create mode 100644 src/Pyz/Yves/CartReorderPage/CartReorderPageDependencyProvider.php delete mode 100644 src/Pyz/Yves/CustomerReorderWidget/CustomerReorderWidgetDependencyProvider.php create mode 100644 src/Pyz/Zed/CartReorder/CartReorderDependencyProvider.php create mode 100644 src/Pyz/Zed/SalesOrderAmendment/SalesOrderAmendmentDependencyProvider.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/MerchantProductOfferCartReorderRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductBundleCartReorderRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductConcreteCartReorderRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductOptionsCartReorderRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/SalesUnitCartReorderRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/MerchantProductOfferCartReorderRestApiCest.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/ProductBundleCartReorderRestApiCest.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/ProductConcreteCartReorderRestApiCest.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/ProductOptionsCartReorderRestApiCest.php create mode 100644 tests/PyzTest/Glue/CartReorder/RestApi/SalesUnitCartReorderRestApiCest.php create mode 100644 tests/PyzTest/Glue/CartReorder/_support/CartReorderApiTester.php create mode 100644 tests/PyzTest/Glue/CartReorder/codeception.yml create mode 100644 tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentRestApiFixtures.php create mode 100644 tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentsRestApiCest.php create mode 100644 tests/PyzTest/Glue/OrderAmendments/_support/OrderAmendmentsApiTester.php create mode 100644 tests/PyzTest/Glue/OrderAmendments/codeception.yml diff --git a/composer.lock b/composer.lock index b7ca540b23..fd466f81e4 100644 --- a/composer.lock +++ b/composer.lock @@ -6349,7 +6349,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/spryker.git", - "reference": "35dfdb357937af3a723cf14d5d8cc520718829db" + "reference": "fc76842f07963aaf5e1a951e2842eb0ecf8f7c77" }, "require": { "php": ">=8.1" @@ -6434,6 +6434,10 @@ "spryker/cart-notes-backend-api": "*", "spryker/cart-permission-connector": "*", "spryker/cart-permission-groups-rest-api": "*", + "spryker/cart-reorder": "*", + "spryker/cart-reorder-extension": "*", + "spryker/cart-reorder-rest-api": "*", + "spryker/cart-reorder-rest-api-extension": "*", "spryker/cart-variant": "*", "spryker/carts-rest-api": "*", "spryker/carts-rest-api-extension": "*", @@ -6902,6 +6906,7 @@ "spryker/oms-multi-thread": "*", "spryker/oms-product-offer-reservation": "*", "spryker/oms-rest-api": "*", + "spryker/order-amendments-rest-api": "*", "spryker/order-custom-reference": "*", "spryker/order-custom-reference-gui": "*", "spryker/order-matrix": "*", @@ -7215,6 +7220,9 @@ "spryker/sales-merchant-portal-gui": "*", "spryker/sales-merchant-portal-gui-extension": "*", "spryker/sales-oms": "*", + "spryker/sales-order-amendment": "*", + "spryker/sales-order-amendment-extension": "*", + "spryker/sales-order-amendment-oms": "*", "spryker/sales-order-threshold": "*", "spryker/sales-order-threshold-data-import": "*", "spryker/sales-order-threshold-extension": "*", @@ -7467,7 +7475,7 @@ "proprietary" ], "description": "Spryker Framework", - "time": "2024-11-15T06:20:03+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/spryker-shop", @@ -7475,7 +7483,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/spryker-shop.git", - "reference": "9d1d1c3d435632cdb764b6d6c03dd685348d85d1" + "reference": "9ceab3be767fdcd17a7e2005e1e7281b24b2b32c" }, "require": { "php": ">=8.1" @@ -7495,6 +7503,8 @@ "spryker-shop/cart-note-widget": "*", "spryker-shop/cart-page": "*", "spryker-shop/cart-page-extension": "*", + "spryker-shop/cart-reorder-page": "*", + "spryker-shop/cart-reorder-page-extension": "*", "spryker-shop/catalog-page": "*", "spryker-shop/category-image-storage-widget": "*", "spryker-shop/category-widget": "*", @@ -7619,6 +7629,7 @@ "spryker-shop/resource-share-page": "*", "spryker-shop/resource-share-page-extension": "*", "spryker-shop/sales-configurable-bundle-widget": "*", + "spryker-shop/sales-order-amendment-widget": "*", "spryker-shop/sales-order-threshold-widget": "*", "spryker-shop/sales-product-bundle-widget": "*", "spryker-shop/sales-product-configuration-widget": "*", @@ -7676,7 +7687,7 @@ "proprietary" ], "description": "Spryker Shop page and widget modules", - "time": "2024-11-04T14:07:50+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker/synchronization-behavior", @@ -18409,7 +18420,7 @@ "source": { "type": "git", "url": "git@github.com:spryker/cypress-tests.git", - "reference": "1dd04b4caf3e469d942a9f3dd9cb1cddbcc63ece" + "reference": "d6e1e696a7724a1463d5f43de5c87db256d99464" }, "default-branch": true, "type": "library", @@ -18417,7 +18428,7 @@ "MIT" ], "description": "This repository is dedicated to housing an extensive collection of UI end-to-end tests, meticulously crafted using Cypress for Spryker applications. These tests are designed to thoroughly evaluate the user interface, ensuring that all interactions and visual elements function as intended in real-world scenarios. By leveraging Cypress's advanced browser automation capabilities, this suite provides an efficient and effective means of validating the user experience, confirming the seamless operation and aesthetic integrity of Spryker's front-end components. Our commitment to rigorous UI testing helps maintain the high standard of quality and reliability that Spryker users expect.", - "time": "2024-11-14T12:08:11+00:00" + "time": "2024-11-15T11:12:37+00:00" }, { "name": "spryker/development-core", diff --git a/config/Shared/config_default.php b/config/Shared/config_default.php index 5c38293560..764fab4a63 100644 --- a/config/Shared/config_default.php +++ b/config/Shared/config_default.php @@ -597,7 +597,7 @@ $config[SymfonyMailerConstants::SMTP_PASSWORD] = getenv('SPRYKER_SMTP_PASSWORD') ?: null; // >>> Customer -$config[CustomerConstants::CUSTOMER_SECURED_PATTERN] = '(^/login_check$|^(/en|/de)?/customer($|/)|^(/en|/de)?/wishlist($|/)|^(/en|/de)?/shopping-list($|/)|^(/en|/de)?/quote-request($|/)|^(/en|/de)?/comment($|/)|^(/en|/de)?/company(?!/register)($|/)|^(/en|/de)?/multi-cart($|/)|^(/en|/de)?/shared-cart($|/)|^(/en|/de)?/cart(?!/add)($|/)|^(/en|/de)?/checkout($|/))'; +$config[CustomerConstants::CUSTOMER_SECURED_PATTERN] = '(^/login_check$|^(/en|/de)?/customer($|/)|^(/en|/de)?/wishlist($|/)|^(/en|/de)?/shopping-list($|/)|^(/en|/de)?/quote-request($|/)|^(/en|/de)?/comment($|/)|^(/en|/de)?/company(?!/register)($|/)|^(/en|/de)?/multi-cart($|/)|^(/en|/de)?/shared-cart($|/)|^(/en|/de)?/cart(?!/add)($|/)|^(/en|/de)?/checkout($|/))|^(/en|/de)?/cart-reorder($|/)|^(/en|/de)?/order-amendment($|/)'; $config[CustomerConstants::CUSTOMER_ANONYMOUS_PATTERN] = '^/.*'; $config[CustomerPageConstants::CUSTOMER_REMEMBER_ME_SECRET] = 'hundnase'; $config[CustomerPageConstants::CUSTOMER_REMEMBER_ME_LIFETIME] = 31536000; diff --git a/config/Zed/oms/DummyPayment01.xml b/config/Zed/oms/DummyPayment01.xml index 8bb51ee9a7..d674925476 100644 --- a/config/Zed/oms/DummyPayment01.xml +++ b/config/Zed/oms/DummyPayment01.xml @@ -14,6 +14,7 @@ CreateGiftCard WarehouseAllocation DummyMerchantCommission + DummyOrderAmendment @@ -22,6 +23,7 @@ cancellable + amendable exclude from customer @@ -181,5 +183,6 @@ + diff --git a/config/Zed/oms/DummySubprocess/DummyOrderAmendment01.xml b/config/Zed/oms/DummySubprocess/DummyOrderAmendment01.xml new file mode 100644 index 0000000000..e952a055b4 --- /dev/null +++ b/config/Zed/oms/DummySubprocess/DummyOrderAmendment01.xml @@ -0,0 +1,40 @@ + + + + + + + + + + + payment pending + order amendment + start-order-amendment + + + + order amendment + cancelled + finish-order-amendment + + + + order amendment + payment pending + cancel-order-amendment + + + + + + + + + + + diff --git a/data/import/common/common/glossary.csv b/data/import/common/common/glossary.csv index 511df8c3cd..1dbad07f7c 100644 --- a/data/import/common/common/glossary.csv +++ b/data/import/common/common/glossary.csv @@ -3271,6 +3271,8 @@ configurable_bundle_note.note_added,Note has been successfully added to configur configurable_bundle_note.note_added,Einkaufswagen-Notiz wurde dem konfigurierten Bundle erfolgreich hinzugefügt,de_DE sales_configured_bundle_widget.success.items_added_to_cart_as_individual_products,"Please notice: Items from the Configured Bundle were added to the Cart as individual products.",en_US sales_configured_bundle_widget.success.items_added_to_cart_as_individual_products,"Bitte beachten: Artikel aus dem konfigurierbaren Bündel wurden als einzelne Produkte in den Warenkorb gelegt.",de_DE +sales_configured_bundle.success.items_added_to_cart_as_individual_products,"Please notice: Items from the Configured Bundle were added to the Cart as individual products.",en_US +sales_configured_bundle.success.items_added_to_cart_as_individual_products,"Bitte beachten: Artikel aus dem konfigurierbaren Bündel wurden als einzelne Produkte in den Warenkorb gelegt.",de_DE sales_configured_bundle_widget.returnable_state,Non-returnable,en_US sales_configured_bundle_widget.returnable_state,Kann nicht retourniert werden,de_DE sales_configured_bundle_widget.quantity,Quantity:,en_US @@ -4431,4 +4433,29 @@ product_comparison_page.add_to_comparison.error.max,Das Limit ist bereits erreic product_comparison_page.add_to_comparison.error.max,The limit has already been reached,en_US product_comparison_page.removed_from_the_list,Artikel wurde aus der Vergleichsliste entfernt.,de_DE product_comparison_page.removed_from_the_list,Product was removed from the comparison list.,en_US - +cart_reorder.validation.order_not_found,Order not found.,en_US +cart_reorder.validation.order_not_found,Bestellung nicht gefunden.,de_DE +cart_reorder.validation.quote_not_provided,Quote not provided.,en_US +cart_reorder.validation.quote_not_provided,Angebot nicht bereitgestellt.,de_DE +cart_reorder_page.reorder_all,Reorder all,en_US +cart_reorder_page.reorder_all,Alle Artikel Nachbestellen,de_DE +cart_reorder_page.reorder,Reorder,en_US +cart_reorder_page.reorder,Nachbestellen,de_DE +cart_reorder_page.reorder_selected,Reorder selected items,en_US +cart_reorder_page.reorder_selected,Ausgewählte Artikel Nachbestellen,de_DE +sales_order_amendment_widget.edit_order,Edit Order,en_US +sales_order_amendment_widget.edit_order,Bestellung bearbeiten,de_DE +sales_order_amendment_oms.validation.order_not_amendable,The order cannot be amended.,en_US +sales_order_amendment_oms.validation.order_not_amendable,Die Bestellung kann nicht geändert werden.,de_DE +sales_order_amendment_oms.validation.amended_order_does_not_exist,Order with reference %order_reference% could not be found.,en_US +sales_order_amendment_oms.validation.amended_order_does_not_exist,Bestellnummer %order_reference% konnte nicht gefunden werden.,de_DE +sales_order_amendment_oms.validation.amendment_order_does_not_exist,Order with reference %order_reference% could not be found.,en_US +sales_order_amendment_oms.validation.amendment_order_does_not_exist,Bestellnummer %order_reference% konnte nicht gefunden werden.,de_DE +sales_order_amendment.validation.sales_order_amendment_does_not_exist,Can not update the sales order amendment with ID %uuid%. Please check the ID.,en_US +sales_order_amendment.validation.sales_order_amendment_does_not_exist,Die Änderung der Bestellung mit der ID %uuid% kann nicht aktualisiert werden. Bitte überprüfen Sie die ID.,de_DE +sales_order_amendment.validation.order_amendment_duplicated,An amendment is already in progress for this order. Please complete or cancel it before starting a new one.,en_US +sales_order_amendment.validation.order_amendment_duplicated,"Für diese Bestellung ist bereits eine Änderung in Bearbeitung. Diese Änderung muss abgeschlossen oder storniert sein, damit Sie eine neue Änderung beginnen können.",de_DE +sales_order_amendment.validation.cart_reorder.order_reference_not_match,"Another order is currently being amended. Complete or cancel the previous amendment before making changes to this order.",en_US +sales_order_amendment.validation.cart_reorder.order_reference_not_match,"Eine andere Bestellung wird gerade geändert. Diese Änderung muss abgeschlossen oder storniert sein, bevor Sie Änderungen an dieser Bestellung vornehmen können.",de_DE +oms.state.order-amendment,Editing in Progress,en_US +oms.state.order-amendment,Bestelländerung in Bearbeitung,de_DE diff --git a/package-lock.json b/package-lock.json index 43dd156da9..b9995ae4ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -173,15 +173,16 @@ } }, "node_modules/@angular-devkit/build-angular": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.6.tgz", - "integrity": "sha512-K4CEZvhQZUUOpmXPVoI1YBM8BARbIlqE6FZRxakmnr+YOtVTYE5s+Dr1wgja8hZIohNz6L7j167G9Aut7oPU/w==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.11.tgz", + "integrity": "sha512-lHX5V2dSts328yvo/9E2u9QMGcvJhbEKKDDp9dBecwvIG9s+4lTOJgi9DPUE7W+AtmPcmbbhwC2JRQ/SLQhAoA==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.6", - "@angular-devkit/build-webpack": "0.1703.6", - "@angular-devkit/core": "17.3.6", + "@angular-devkit/architect": "0.1703.11", + "@angular-devkit/build-webpack": "0.1703.11", + "@angular-devkit/core": "17.3.11", "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -192,7 +193,7 @@ "@babel/preset-env": "7.24.0", "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.6", + "@ngtools/webpack": "17.3.11", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.18", @@ -204,7 +205,7 @@ "css-loader": "6.10.0", "esbuild-wasm": "0.20.1", "fast-glob": "3.3.2", - "http-proxy-middleware": "2.0.6", + "http-proxy-middleware": "2.0.7", "https-proxy-agent": "7.0.4", "inquirer": "9.2.15", "jsonc-parser": "3.2.1", @@ -234,9 +235,9 @@ "tree-kill": "1.2.2", "tslib": "2.6.2", "undici": "6.11.1", - "vite": "5.1.7", + "vite": "5.1.8", "watchpack": "2.4.0", - "webpack": "5.90.3", + "webpack": "5.94.0", "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -302,12 +303,13 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", + "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "17.3.11", "rxjs": "7.8.1" }, "engines": { @@ -317,10 +319,11 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", @@ -800,13 +803,15 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@angular-devkit/build-angular/node_modules/jsonc-parser": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@angular-devkit/build-angular/node_modules/less": { "version": "4.2.0", @@ -895,6 +900,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -1070,26 +1076,26 @@ } }, "node_modules/@angular-devkit/build-angular/node_modules/webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, + "license": "MIT", "dependencies": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -1097,7 +1103,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -1121,6 +1127,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1137,6 +1144,7 @@ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true, + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } @@ -1146,6 +1154,7 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", "dev": true, + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -1159,13 +1168,28 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/@angular-devkit/build-angular/node_modules/webpack/node_modules/watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/@angular-devkit/build-webpack": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.6.tgz", - "integrity": "sha512-pJu0et2SiF0kfXenHSTtAART0omzbWpLgBfeUo4hBh4uwX5IaT+mRpYpr8gCXMq+qsjoQp3HobSU3lPDeBn+bg==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.11.tgz", + "integrity": "sha512-qbCiiHuoVkD7CtLyWoRi/Vzz6nrEztpF5XIyWUcQu67An1VlxbMTE4yoSQiURjCQMnB/JvS1GPVed7wOq3SJ/w==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/architect": "0.1703.6", + "@angular-devkit/architect": "0.1703.11", "rxjs": "7.8.1" }, "engines": { @@ -1179,12 +1203,13 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", + "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", "dev": true, + "license": "MIT", "dependencies": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "17.3.11", "rxjs": "7.8.1" }, "engines": { @@ -1194,10 +1219,11 @@ } }, "node_modules/@angular-devkit/build-webpack/node_modules/@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", "dev": true, + "license": "MIT", "dependencies": { "ajv": "8.12.0", "ajv-formats": "2.1.1", @@ -1224,13 +1250,15 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz", "integrity": "sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/@angular-devkit/build-webpack/node_modules/picomatch": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.1.tgz", "integrity": "sha512-xUXwsxNjwTQ8K3GnT4pCJm+xq3RUPQbmkYJTP5aFIfNIvbcc/4MUxgBaaRSZJ6yGJZiGSyYlM6MzwTsRk8SYCg==", "dev": true, + "license": "MIT", "engines": { "node": ">=12" }, @@ -5921,10 +5949,11 @@ } }, "node_modules/@ngtools/webpack": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", - "integrity": "sha512-equxbgh2DKzZtiFMoVf1KD4yJcH1q8lpqQ/GSPPQUvONcmHrr+yqdRUdaJ7oZCyCYmXF/nByBxtMKtJr6nKZVg==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.11.tgz", + "integrity": "sha512-SfTCbplt4y6ak5cf2IfqdoVOsnoNdh/j6Vu+wb8WWABKwZ5yfr2S/Gk6ithSKcdIZhAF8DNBOoyk1EJuf8Xkfg==", "dev": true, + "license": "MIT", "engines": { "node": "^18.13.0 || >=20.9.0", "npm": "^6.11.0 || ^7.5.6 || >=8.0.0", @@ -9041,208 +9070,252 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" ] }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", "cpu": [ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", "cpu": [ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", "cpu": [ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", "cpu": [ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", "cpu": [ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", "cpu": [ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", "cpu": [ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -11851,10 +11924,11 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" }, "node_modules/@types/express": { "version": "4.17.21", @@ -12616,148 +12690,163 @@ } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", - "dev": true + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "dev": true, + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -12774,13 +12863,15 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true + "dev": true, + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true + "dev": true, + "license": "Apache-2.0" }, "node_modules/@yarnpkg/lockfile": { "version": "1.1.0", @@ -12884,6 +12975,16 @@ "acorn": "^8" } }, + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^8" + } + }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -14737,10 +14838,11 @@ } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -17128,10 +17230,11 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -18023,17 +18126,18 @@ "dev": true }, "node_modules/express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -19383,9 +19487,10 @@ } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/graphemer": { "version": "1.4.0", @@ -27269,12 +27374,13 @@ } }, "node_modules/rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", "dev": true, + "license": "MIT", "dependencies": { - "@types/estree": "1.0.5" + "@types/estree": "1.0.6" }, "bin": { "rollup": "dist/bin/rollup" @@ -27284,22 +27390,24 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", "fsevents": "~2.3.2" } }, @@ -30306,10 +30414,11 @@ } }, "node_modules/vite": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", - "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.8.tgz", + "integrity": "sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==", "dev": true, + "license": "MIT", "dependencies": { "esbuild": "^0.19.3", "postcss": "^8.4.35", @@ -30368,6 +30477,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "aix" @@ -30384,6 +30494,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -30400,6 +30511,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -30416,6 +30528,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "android" @@ -30432,6 +30545,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -30448,6 +30562,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -30464,6 +30579,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -30480,6 +30596,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "freebsd" @@ -30496,6 +30613,7 @@ "arm" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30512,6 +30630,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30528,6 +30647,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30544,6 +30664,7 @@ "loong64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30560,6 +30681,7 @@ "mips64el" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30576,6 +30698,7 @@ "ppc64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30592,6 +30715,7 @@ "riscv64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30608,6 +30732,7 @@ "s390x" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30624,6 +30749,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "linux" @@ -30640,6 +30766,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "netbsd" @@ -30656,6 +30783,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "openbsd" @@ -30672,6 +30800,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "sunos" @@ -30688,6 +30817,7 @@ "arm64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -30704,6 +30834,7 @@ "ia32" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -30720,6 +30851,7 @@ "x64" ], "dev": true, + "license": "MIT", "optional": true, "os": [ "win32" @@ -30734,6 +30866,7 @@ "integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==", "dev": true, "hasInstallScript": true, + "license": "MIT", "bin": { "esbuild": "bin/esbuild" }, @@ -32190,15 +32323,15 @@ } }, "@angular-devkit/build-angular": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.6.tgz", - "integrity": "sha512-K4CEZvhQZUUOpmXPVoI1YBM8BARbIlqE6FZRxakmnr+YOtVTYE5s+Dr1wgja8hZIohNz6L7j167G9Aut7oPU/w==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-17.3.11.tgz", + "integrity": "sha512-lHX5V2dSts328yvo/9E2u9QMGcvJhbEKKDDp9dBecwvIG9s+4lTOJgi9DPUE7W+AtmPcmbbhwC2JRQ/SLQhAoA==", "dev": true, "requires": { "@ampproject/remapping": "2.3.0", - "@angular-devkit/architect": "0.1703.6", - "@angular-devkit/build-webpack": "0.1703.6", - "@angular-devkit/core": "17.3.6", + "@angular-devkit/architect": "0.1703.11", + "@angular-devkit/build-webpack": "0.1703.11", + "@angular-devkit/core": "17.3.11", "@babel/core": "7.24.0", "@babel/generator": "7.23.6", "@babel/helper-annotate-as-pure": "7.22.5", @@ -32209,7 +32342,7 @@ "@babel/preset-env": "7.24.0", "@babel/runtime": "7.24.0", "@discoveryjs/json-ext": "0.5.7", - "@ngtools/webpack": "17.3.6", + "@ngtools/webpack": "17.3.11", "@vitejs/plugin-basic-ssl": "1.1.0", "ansi-colors": "4.1.3", "autoprefixer": "10.4.18", @@ -32252,9 +32385,9 @@ "tree-kill": "1.2.2", "tslib": "2.6.2", "undici": "6.11.1", - "vite": "5.1.7", + "vite": "5.1.8", "watchpack": "2.4.0", - "webpack": "5.90.3", + "webpack": "5.94.0", "webpack-dev-middleware": "6.1.2", "webpack-dev-server": "4.15.1", "webpack-merge": "5.10.0", @@ -32262,19 +32395,19 @@ }, "dependencies": { "@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", + "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", "dev": true, "requires": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "17.3.11", "rxjs": "7.8.1" } }, "@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", "dev": true, "requires": { "ajv": "8.12.0", @@ -32792,26 +32925,25 @@ } }, "webpack": { - "version": "5.90.3", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", - "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", "dev": true, "requires": { - "@types/eslint-scope": "^3.7.3", "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.11.5", - "@webassemblyjs/wasm-edit": "^1.11.5", - "@webassemblyjs/wasm-parser": "^1.11.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", + "acorn-import-attributes": "^1.9.5", "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.15.0", + "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", @@ -32819,7 +32951,7 @@ "schema-utils": "^3.2.0", "tapable": "^2.1.1", "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.0", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "dependencies": { @@ -32851,35 +32983,45 @@ "ajv": "^6.12.5", "ajv-keywords": "^3.5.2" } + }, + "watchpack": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } } } } } }, "@angular-devkit/build-webpack": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.6.tgz", - "integrity": "sha512-pJu0et2SiF0kfXenHSTtAART0omzbWpLgBfeUo4hBh4uwX5IaT+mRpYpr8gCXMq+qsjoQp3HobSU3lPDeBn+bg==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1703.11.tgz", + "integrity": "sha512-qbCiiHuoVkD7CtLyWoRi/Vzz6nrEztpF5XIyWUcQu67An1VlxbMTE4yoSQiURjCQMnB/JvS1GPVed7wOq3SJ/w==", "dev": true, "requires": { - "@angular-devkit/architect": "0.1703.6", + "@angular-devkit/architect": "0.1703.11", "rxjs": "7.8.1" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.1703.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.6.tgz", - "integrity": "sha512-Ck501FD/QuOjeKVFs7hU92w8+Ffetv0d5Sq09XY2/uygo5c/thMzp9nkevaIWBxUSeU5RqYZizDrhFVgYzbbOw==", + "version": "0.1703.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1703.11.tgz", + "integrity": "sha512-YNasVZk4rYdcM6M+KRH8PUBhVyJfqzUYLpO98GgRokW+taIDgifckSlmfDZzQRbw45qiwei1IKCLqcpC8nM5Tw==", "dev": true, "requires": { - "@angular-devkit/core": "17.3.6", + "@angular-devkit/core": "17.3.11", "rxjs": "7.8.1" } }, "@angular-devkit/core": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.6.tgz", - "integrity": "sha512-FVbkT9dEwHEvjnxr4mvMNSMg2bCFoGoP4X68xXU9dhLEUpC05opLvfbaR3Qh543eCJ5AstosBFVzB/krfIkOvA==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-17.3.11.tgz", + "integrity": "sha512-vTNDYNsLIWpYk2I969LMQFH29GTsLzxNk/0cLw5q56ARF0v5sIWfHYwGTS88jdDqIpuuettcSczbxeA7EuAmqQ==", "dev": true, "requires": { "ajv": "8.12.0", @@ -36057,9 +36199,9 @@ "integrity": "sha512-Es6WcD0nO5l+2BOQS4uLfNPYQaNDfbot3X1XUoloz+x0mPDS3eeORZJl06HXjwBG1fOGwCRnzK88LMdxKRrd6Q==" }, "@ngtools/webpack": { - "version": "17.3.6", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.6.tgz", - "integrity": "sha512-equxbgh2DKzZtiFMoVf1KD4yJcH1q8lpqQ/GSPPQUvONcmHrr+yqdRUdaJ7oZCyCYmXF/nByBxtMKtJr6nKZVg==", + "version": "17.3.11", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-17.3.11.tgz", + "integrity": "sha512-SfTCbplt4y6ak5cf2IfqdoVOsnoNdh/j6Vu+wb8WWABKwZ5yfr2S/Gk6ithSKcdIZhAF8DNBOoyk1EJuf8Xkfg==", "dev": true }, "@nodelib/fs.scandir": { @@ -38205,114 +38347,128 @@ } }, "@rollup/rollup-android-arm-eabi": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz", - "integrity": "sha512-NM0jFxY8bB8QLkoKxIQeObCaDlJKewVlIEkuyYKm5An1tdVZ966w2+MPQ2l8LBZLjR+SgyV+nRkTIunzOYBMLQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.4.tgz", + "integrity": "sha512-jfUJrFct/hTA0XDM5p/htWKoNNTbDLY0KRwEt6pyOA6k2fmk0WVwl65PdUdJZgzGEHWx+49LilkcSaumQRyNQw==", "dev": true, "optional": true }, "@rollup/rollup-android-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.17.2.tgz", - "integrity": "sha512-yeX/Usk7daNIVwkq2uGoq2BYJKZY1JfyLTaHO/jaiSwi/lsf8fTFoQW/n6IdAsx5tx+iotu2zCJwz8MxI6D/Bw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.4.tgz", + "integrity": "sha512-j4nrEO6nHU1nZUuCfRKoCcvh7PIywQPUCBa2UsootTHvTHIoIu2BzueInGJhhvQO/2FTRdNYpf63xsgEqH9IhA==", "dev": true, "optional": true }, "@rollup/rollup-darwin-arm64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.17.2.tgz", - "integrity": "sha512-kcMLpE6uCwls023+kknm71ug7MZOrtXo+y5p/tsg6jltpDtgQY1Eq5sGfHcQfb+lfuKwhBmEURDga9N0ol4YPw==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.4.tgz", + "integrity": "sha512-GmU/QgGtBTeraKyldC7cDVVvAJEOr3dFLKneez/n7BvX57UdhOqDsVwzU7UOnYA7AAOt+Xb26lk79PldDHgMIQ==", "dev": true, "optional": true }, "@rollup/rollup-darwin-x64": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.17.2.tgz", - "integrity": "sha512-AtKwD0VEx0zWkL0ZjixEkp5tbNLzX+FCqGG1SvOu993HnSz4qDI6S4kGzubrEJAljpVkhRSlg5bzpV//E6ysTQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.4.tgz", + "integrity": "sha512-N6oDBiZCBKlwYcsEPXGDE4g9RoxZLK6vT98M8111cW7VsVJFpNEqvJeIPfsCzbf0XEakPslh72X0gnlMi4Ddgg==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-arm64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", + "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", + "dev": true, + "optional": true + }, + "@rollup/rollup-freebsd-x64": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", + "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.17.2.tgz", - "integrity": "sha512-3reX2fUHqN7sffBNqmEyMQVj/CKhIHZd4y631duy0hZqI8Qoqf6lTtmAKvJFYa6bhU95B1D0WgzHkmTg33In0A==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.4.tgz", + "integrity": "sha512-10ICosOwYChROdQoQo589N5idQIisxjaFE/PAnX2i0Zr84mY0k9zul1ArH0rnJ/fpgiqfu13TFZR5A5YJLOYZA==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm-musleabihf": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.17.2.tgz", - "integrity": "sha512-uSqpsp91mheRgw96xtyAGP9FW5ChctTFEoXP0r5FAzj/3ZRv3Uxjtc7taRQSaQM/q85KEKjKsZuiZM3GyUivRg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.4.tgz", + "integrity": "sha512-ySAfWs69LYC7QhRDZNKqNhz2UKN8LDfbKSMAEtoEI0jitwfAG2iZwVqGACJT+kfYvvz3/JgsLlcBP+WWoKCLcw==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.17.2.tgz", - "integrity": "sha512-EMMPHkiCRtE8Wdk3Qhtciq6BndLtstqZIroHiiGzB3C5LDJmIZcSzVtLRbwuXuUft1Cnv+9fxuDtDxz3k3EW2A==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.4.tgz", + "integrity": "sha512-uHYJ0HNOI6pGEeZ/5mgm5arNVTI0nLlmrbdph+pGXpC9tFHFDQmDMOEqkmUObRfosJqpU8RliYoGz06qSdtcjg==", "dev": true, "optional": true }, "@rollup/rollup-linux-arm64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.17.2.tgz", - "integrity": "sha512-NMPylUUZ1i0z/xJUIx6VUhISZDRT+uTWpBcjdv0/zkp7b/bQDF+NfnfdzuTiB1G6HTodgoFa93hp0O1xl+/UbA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.4.tgz", + "integrity": "sha512-38yiWLemQf7aLHDgTg85fh3hW9stJ0Muk7+s6tIkSUOMmi4Xbv5pH/5Bofnsb6spIwD5FJiR+jg71f0CH5OzoA==", "dev": true, "optional": true }, "@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.17.2.tgz", - "integrity": "sha512-T19My13y8uYXPw/L/k0JYaX1fJKFT/PWdXiHr8mTbXWxjVF1t+8Xl31DgBBvEKclw+1b00Chg0hxE2O7bTG7GQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.4.tgz", + "integrity": "sha512-q73XUPnkwt9ZNF2xRS4fvneSuaHw2BXuV5rI4cw0fWYVIWIBeDZX7c7FWhFQPNTnE24172K30I+dViWRVD9TwA==", "dev": true, "optional": true }, "@rollup/rollup-linux-riscv64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.17.2.tgz", - "integrity": "sha512-BOaNfthf3X3fOWAB+IJ9kxTgPmMqPPH5f5k2DcCsRrBIbWnaJCgX2ll77dV1TdSy9SaXTR5iDXRL8n7AnoP5cg==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.4.tgz", + "integrity": "sha512-Aie/TbmQi6UXokJqDZdmTJuZBCU3QBDA8oTKRGtd4ABi/nHgXICulfg1KI6n9/koDsiDbvHAiQO3YAUNa/7BCw==", "dev": true, "optional": true }, "@rollup/rollup-linux-s390x-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.17.2.tgz", - "integrity": "sha512-W0UP/x7bnn3xN2eYMql2T/+wpASLE5SjObXILTMPUBDB/Fg/FxC+gX4nvCfPBCbNhz51C+HcqQp2qQ4u25ok6g==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.4.tgz", + "integrity": "sha512-P8MPErVO/y8ohWSP9JY7lLQ8+YMHfTI4bAdtCi3pC2hTeqFJco2jYspzOzTUB8hwUWIIu1xwOrJE11nP+0JFAQ==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-gnu": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.17.2.tgz", - "integrity": "sha512-Hy7pLwByUOuyaFC6mAr7m+oMC+V7qyifzs/nW2OJfC8H4hbCzOX07Ov0VFk/zP3kBsELWNFi7rJtgbKYsav9QQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.4.tgz", + "integrity": "sha512-K03TljaaoPK5FOyNMZAAEmhlyO49LaE4qCsr0lYHUKyb6QacTNF9pnfPpXnFlFD3TXuFbFbz7tJ51FujUXkXYA==", "dev": true, "optional": true }, "@rollup/rollup-linux-x64-musl": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.17.2.tgz", - "integrity": "sha512-h1+yTWeYbRdAyJ/jMiVw0l6fOOm/0D1vNLui9iPuqgRGnXA0u21gAqOyB5iHjlM9MMfNOm9RHCQ7zLIzT0x11Q==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.4.tgz", + "integrity": "sha512-VJYl4xSl/wqG2D5xTYncVWW+26ICV4wubwN9Gs5NrqhJtayikwCXzPL8GDsLnaLU3WwhQ8W02IinYSFJfyo34Q==", "dev": true, "optional": true }, "@rollup/rollup-win32-arm64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.17.2.tgz", - "integrity": "sha512-tmdtXMfKAjy5+IQsVtDiCfqbynAQE/TQRpWdVataHmhMb9DCoJxp9vLcCBjEQWMiUYxO1QprH/HbY9ragCEFLA==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.4.tgz", + "integrity": "sha512-ku2GvtPwQfCqoPFIJCqZ8o7bJcj+Y54cZSr43hHca6jLwAiCbZdBUOrqE6y29QFajNAzzpIOwsckaTFmN6/8TA==", "dev": true, "optional": true }, "@rollup/rollup-win32-ia32-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.17.2.tgz", - "integrity": "sha512-7II/QCSTAHuE5vdZaQEwJq2ZACkBpQDOmQsE6D6XUbnBHW8IAhm4eTufL6msLJorzrHDFv3CF8oCA/hSIRuZeQ==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.4.tgz", + "integrity": "sha512-V3nCe+eTt/W6UYNr/wGvO1fLpHUrnlirlypZfKCT1fG6hWfqhPgQV/K/mRBXBpxc0eKLIF18pIOFVPh0mqHjlg==", "dev": true, "optional": true }, "@rollup/rollup-win32-x64-msvc": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.17.2.tgz", - "integrity": "sha512-TGGO7v7qOq4CYmSBVEYpI1Y5xDuCEnbVC5Vth8mOsW0gDSzxNrVERPc790IGHsrT2dQSimgMr9Ub3Y1Jci5/8w==", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.4.tgz", + "integrity": "sha512-LTw1Dfd0mBIEqUVCxbvTE/LLo+9ZxVC9k99v1v4ahg9Aak6FpqOfNu5kRkeTAn0wphoC4JU7No1/rL+bBCEwhg==", "dev": true, "optional": true }, @@ -39884,9 +40040,9 @@ } }, "@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", "dev": true }, "@types/express": { @@ -40443,148 +40599,148 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz", - "integrity": "sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", "dev": true, "requires": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz", - "integrity": "sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", "dev": true }, "@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", "dev": true, "requires": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz", - "integrity": "sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz", - "integrity": "sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-opt": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6", - "@webassemblyjs/wast-printer": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz", - "integrity": "sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "@webassemblyjs/wasm-opt": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz", - "integrity": "sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-buffer": "1.11.6", - "@webassemblyjs/wasm-gen": "1.11.6", - "@webassemblyjs/wasm-parser": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz", - "integrity": "sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz", - "integrity": "sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.11.6", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, @@ -40691,6 +40847,12 @@ "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", "dev": true }, + "acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "dev": true + }, "acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -42078,9 +42240,9 @@ } }, "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true }, "cookie-signature": { @@ -43804,9 +43966,9 @@ } }, "enhanced-resolve": { - "version": "5.15.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", - "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "requires": { "graceful-fs": "^4.2.4", @@ -44474,9 +44636,9 @@ "dev": true }, "express": { - "version": "4.21.0", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.0.tgz", - "integrity": "sha512-VqcNGcj/Id5ZT1LZ/cfihi3ttTn+NJmkli2eZADigjq29qTlWi/hAQ43t/VLPq8+UX06FCEx3ByOYet6ZFblng==", + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "requires": { "accepts": "~1.3.8", @@ -44484,7 +44646,7 @@ "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", @@ -45585,9 +45747,9 @@ } }, "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "graphemer": { "version": "1.4.0", @@ -51662,28 +51824,30 @@ } }, "rollup": { - "version": "4.17.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.17.2.tgz", - "integrity": "sha512-/9ClTJPByC0U4zNLowV1tMBe8yMEAxewtR3cUNX5BoEpGH3dQEWpJLr6CLp0fPdYRF/fzVOgvDb1zXuakwF5kQ==", - "dev": true, - "requires": { - "@rollup/rollup-android-arm-eabi": "4.17.2", - "@rollup/rollup-android-arm64": "4.17.2", - "@rollup/rollup-darwin-arm64": "4.17.2", - "@rollup/rollup-darwin-x64": "4.17.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.17.2", - "@rollup/rollup-linux-arm-musleabihf": "4.17.2", - "@rollup/rollup-linux-arm64-gnu": "4.17.2", - "@rollup/rollup-linux-arm64-musl": "4.17.2", - "@rollup/rollup-linux-powerpc64le-gnu": "4.17.2", - "@rollup/rollup-linux-riscv64-gnu": "4.17.2", - "@rollup/rollup-linux-s390x-gnu": "4.17.2", - "@rollup/rollup-linux-x64-gnu": "4.17.2", - "@rollup/rollup-linux-x64-musl": "4.17.2", - "@rollup/rollup-win32-arm64-msvc": "4.17.2", - "@rollup/rollup-win32-ia32-msvc": "4.17.2", - "@rollup/rollup-win32-x64-msvc": "4.17.2", - "@types/estree": "1.0.5", + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.4.tgz", + "integrity": "sha512-vGorVWIsWfX3xbcyAS+I047kFKapHYivmkaT63Smj77XwvLSJos6M1xGqZnBPFQFBRZDOcG1QnYEIxAvTr/HjA==", + "dev": true, + "requires": { + "@rollup/rollup-android-arm-eabi": "4.24.4", + "@rollup/rollup-android-arm64": "4.24.4", + "@rollup/rollup-darwin-arm64": "4.24.4", + "@rollup/rollup-darwin-x64": "4.24.4", + "@rollup/rollup-freebsd-arm64": "4.24.4", + "@rollup/rollup-freebsd-x64": "4.24.4", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.4", + "@rollup/rollup-linux-arm-musleabihf": "4.24.4", + "@rollup/rollup-linux-arm64-gnu": "4.24.4", + "@rollup/rollup-linux-arm64-musl": "4.24.4", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.4", + "@rollup/rollup-linux-riscv64-gnu": "4.24.4", + "@rollup/rollup-linux-s390x-gnu": "4.24.4", + "@rollup/rollup-linux-x64-gnu": "4.24.4", + "@rollup/rollup-linux-x64-musl": "4.24.4", + "@rollup/rollup-win32-arm64-msvc": "4.24.4", + "@rollup/rollup-win32-ia32-msvc": "4.24.4", + "@rollup/rollup-win32-x64-msvc": "4.24.4", + "@types/estree": "1.0.6", "fsevents": "~2.3.2" } }, @@ -54026,9 +54190,9 @@ "dev": true }, "vite": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.7.tgz", - "integrity": "sha512-sgnEEFTZYMui/sTlH1/XEnVNHMujOahPLGMxn1+5sIT45Xjng1Ec1K78jRP15dSmVgg5WBin9yO81j3o9OxofA==", + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.1.8.tgz", + "integrity": "sha512-mB8ToUuSmzODSpENgvpFk2fTiU/YQ1tmcVJJ4WZbq4fPdGJkFNVcmVL5k7iDug6xzWjjuGDKAuSievIsD6H7Xw==", "dev": true, "requires": { "esbuild": "^0.19.3", diff --git a/src/Orm/Zed/SalesOrderAmendment/Persistence/SpySalesOrderAmendment.php b/src/Orm/Zed/SalesOrderAmendment/Persistence/SpySalesOrderAmendment.php new file mode 100644 index 0000000000..9e72a6b56d --- /dev/null +++ b/src/Orm/Zed/SalesOrderAmendment/Persistence/SpySalesOrderAmendment.php @@ -0,0 +1,23 @@ + + */ + protected function getRestCartReorderAttributesMapperPlugins(): array + { + return [ + new OrderAmendmentRestCartReorderAttributesMapperPlugin(), + ]; + } +} diff --git a/src/Pyz/Glue/CartsRestApi/CartsRestApiDependencyProvider.php b/src/Pyz/Glue/CartsRestApi/CartsRestApiDependencyProvider.php index ea8250970b..961972e066 100644 --- a/src/Pyz/Glue/CartsRestApi/CartsRestApiDependencyProvider.php +++ b/src/Pyz/Glue/CartsRestApi/CartsRestApiDependencyProvider.php @@ -14,6 +14,7 @@ use Spryker\Glue\MerchantProductOffersRestApi\Plugin\CartsRestApi\MerchantProductOfferCartItemExpanderPlugin; use Spryker\Glue\MerchantProductOffersRestApi\Plugin\CartsRestApi\MerchantProductOfferRestCartItemsAttributesMapperPlugin; use Spryker\Glue\MerchantProductsRestApi\Plugin\CartsRestApi\MerchantProductCartItemExpanderPlugin; +use Spryker\Glue\OrderAmendmentsRestApi\Plugin\CartsRestApi\OrderAmendmentRestCartAttributesMapperPlugin; use Spryker\Glue\ProductBundleCartsRestApi\Plugin\CartsRestApi\ProductBundleCartItemFilterPlugin; use Spryker\Glue\ProductConfigurationsRestApi\Plugin\CartsRestApi\ProductConfigurationCartItemExpanderPlugin; use Spryker\Glue\ProductConfigurationsRestApi\Plugin\CartsRestApi\ProductConfigurationRestCartItemsAttributesMapperPlugin; @@ -42,6 +43,7 @@ protected function getRestCartAttributesMapperPlugins(): array { return [ new SalesOrderThresholdRestCartAttributesMapperPlugin(), + new OrderAmendmentRestCartAttributesMapperPlugin(), ]; } diff --git a/src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php b/src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php index bafc488ae1..08b6668ebb 100644 --- a/src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php +++ b/src/Pyz/Glue/GlueApplication/GlueApplicationDependencyProvider.php @@ -35,6 +35,7 @@ use Spryker\Glue\CartPermissionGroupsRestApi\Plugin\GlueApplication\CartPermissionGroupByQuoteResourceRelationshipPlugin; use Spryker\Glue\CartPermissionGroupsRestApi\Plugin\GlueApplication\CartPermissionGroupByShareDetailResourceRelationshipPlugin; use Spryker\Glue\CartPermissionGroupsRestApi\Plugin\GlueApplication\CartPermissionGroupsResourceRoutePlugin; +use Spryker\Glue\CartReorderRestApi\Plugin\GlueApplication\CartReorderResourceRoutePlugin; use Spryker\Glue\CartsRestApi\CartsRestApiConfig; use Spryker\Glue\CartsRestApi\Plugin\ControllerBeforeAction\SetAnonymousCustomerIdControllerBeforeActionPlugin; use Spryker\Glue\CartsRestApi\Plugin\GlueApplication\CartByRestCheckoutDataResourceRelationshipPlugin; @@ -389,6 +390,7 @@ protected function getResourceRoutePlugins(): array new ProductOfferServicePointAvailabilitiesResourceRoutePlugin(), new PaymentsResourceRoutePlugin(), new PaymentCancellationsResourceRoutePlugin(), + new CartReorderResourceRoutePlugin(), ]; } diff --git a/src/Pyz/Shared/MultiCart/MultiCartConfig.php b/src/Pyz/Shared/MultiCart/MultiCartConfig.php new file mode 100644 index 0000000000..d4720f5594 --- /dev/null +++ b/src/Pyz/Shared/MultiCart/MultiCartConfig.php @@ -0,0 +1,18 @@ + + */ + protected function getCartReorderItemCheckboxAttributeExpanderPlugins(): array + { + return [ + new ProductAvailabilityCartReorderItemCheckboxAttributeExpanderPlugin(), + new ProductBundleCartReorderItemCheckboxAttributeExpanderPlugin(), + ]; + } + + /** + * @return list<\SprykerShop\Yves\CartReorderPageExtension\Dependency\Plugin\CartReorderRequestExpanderPluginInterface> + */ + protected function getCartReorderRequestExpanderPlugins(): array + { + return [ + new ProductBundleCartReorderRequestExpanderPlugin(), + ]; + } +} diff --git a/src/Pyz/Yves/CustomerPage/CustomerPageDependencyProvider.php b/src/Pyz/Yves/CustomerPage/CustomerPageDependencyProvider.php index 1d6fbf2e87..868fba7cf5 100644 --- a/src/Pyz/Yves/CustomerPage/CustomerPageDependencyProvider.php +++ b/src/Pyz/Yves/CustomerPage/CustomerPageDependencyProvider.php @@ -17,7 +17,6 @@ use SprykerShop\Yves\CompanyUserInvitationPage\Plugin\CompanyUserInvitationPreRegistrationCustomerTransferExpanderPlugin; use SprykerShop\Yves\CustomerPage\CustomerPageDependencyProvider as SprykerShopCustomerPageDependencyProvider; use SprykerShop\Yves\CustomerPage\Plugin\CustomerPage\RedirectUriCustomerRedirectStrategyPlugin; -use SprykerShop\Yves\CustomerReorderWidget\Plugin\CustomerPage\CustomerReorderWidgetPlugin; use SprykerShop\Yves\MerchantSwitcherWidget\Plugin\CustomerPage\MerchantSwitchCartAfterCustomerAuthenticationSuccessPlugin; use SprykerShop\Yves\ServicePointWidget\Plugin\CustomerPage\ServicePointAddressCheckoutAddressCollectionFormExpanderPlugin; use SprykerShop\Yves\ServicePointWidget\Plugin\CustomerPage\ServicePointCheckoutAddressCollectionFormExpanderPlugin; @@ -29,36 +28,6 @@ class CustomerPageDependencyProvider extends SprykerShopCustomerPageDependencyProvider { - /** - * @return array - */ - protected function getCustomerOverviewWidgetPlugins(): array - { - return [ - CustomerReorderWidgetPlugin::class, - ]; - } - - /** - * @return array - */ - protected function getCustomerOrderListWidgetPlugins(): array - { - return [ - CustomerReorderWidgetPlugin::class, - ]; - } - - /** - * @return array - */ - protected function getCustomerOrderViewWidgetPlugins(): array - { - return [ - CustomerReorderWidgetPlugin::class, - ]; - } - /** * @return array<\SprykerShop\Yves\CustomerPageExtension\Dependency\Plugin\PreRegistrationCustomerTransferExpanderPluginInterface> */ diff --git a/src/Pyz/Yves/CustomerReorderWidget/CustomerReorderWidgetDependencyProvider.php b/src/Pyz/Yves/CustomerReorderWidget/CustomerReorderWidgetDependencyProvider.php deleted file mode 100644 index 716dc713bc..0000000000 --- a/src/Pyz/Yves/CustomerReorderWidget/CustomerReorderWidgetDependencyProvider.php +++ /dev/null @@ -1,61 +0,0 @@ - - */ - protected function getPostReorderPlugins(): array - { - return [ - new ConfiguredBundlePostReorderPlugin(), - ]; - } - - /** - * @return array<\SprykerShop\Yves\CustomerReorderWidgetExtension\Dependency\Plugin\ReorderItemExpanderPluginInterface> - */ - protected function getReorderItemExpanderPlugins(): array - { - return [ - new ProductConfigurationReorderItemExpanderPlugin(), - ]; - } - - /** - * @return array<\SprykerShop\Yves\CustomerReorderWidgetExtension\Dependency\Plugin\ReorderItemSanitizerPluginInterface> - */ - protected function getReorderItemSanitizerPlugins(): array - { - return [ - new RemunerationAmountReorderItemSanitizerPlugin(), - new ShipmentReorderItemSanitizerPlugin(), - new ServicePointReorderItemSanitizerPlugin(), - ]; - } - - /** - * @return array<\SprykerShop\Yves\CustomerReorderWidgetExtension\Dependency\Plugin\ReorderItemFetcherPluginInterface> - */ - protected function getReorderItemFetcherPlugins(): array - { - return [ - new ProductBundleReorderItemFetcherPlugin(), - ]; - } -} diff --git a/src/Pyz/Yves/Router/RouterDependencyProvider.php b/src/Pyz/Yves/Router/RouterDependencyProvider.php index 6817780da8..9acf4e9f60 100644 --- a/src/Pyz/Yves/Router/RouterDependencyProvider.php +++ b/src/Pyz/Yves/Router/RouterDependencyProvider.php @@ -29,6 +29,7 @@ use SprykerShop\Yves\CartNoteWidget\Plugin\Router\CartNoteWidgetRouteProviderPlugin; use SprykerShop\Yves\CartPage\Plugin\Router\CartPageAsyncRouteProviderPlugin; use SprykerShop\Yves\CartPage\Plugin\Router\CartPageRouteProviderPlugin; +use SprykerShop\Yves\CartReorderPage\Plugin\Router\CartReorderPageRouteProviderPlugin; use SprykerShop\Yves\CatalogPage\Plugin\Router\CatalogPageRouteProviderPlugin; use SprykerShop\Yves\CheckoutPage\Plugin\Router\CheckoutPageRouteProviderPlugin; use SprykerShop\Yves\CmsPage\Plugin\Router\CmsPageRouteProviderPlugin; @@ -45,7 +46,6 @@ use SprykerShop\Yves\ConfigurableBundleWidget\Plugin\Router\ConfigurableBundleWidgetRouteProviderPlugin; use SprykerShop\Yves\CurrencyWidget\Plugin\Router\CurrencyWidgetRouteProviderPlugin; use SprykerShop\Yves\CustomerPage\Plugin\Router\CustomerPageRouteProviderPlugin; -use SprykerShop\Yves\CustomerReorderWidget\Plugin\Router\CustomerReorderWidgetRouteProviderPlugin; use SprykerShop\Yves\DiscountWidget\Plugin\Router\DiscountWidgetRouteProviderPlugin; use SprykerShop\Yves\ErrorPage\Plugin\Router\ErrorPageRouteProviderPlugin; use SprykerShop\Yves\FileManagerWidget\Plugin\Router\FileManagerWidgetRouteProviderPlugin; @@ -78,6 +78,7 @@ use SprykerShop\Yves\QuoteRequestPage\Plugin\Router\QuoteRequestPageRouteProviderPlugin; use SprykerShop\Yves\QuoteRequestWidget\Plugin\Router\QuoteRequestWidgetRouteProviderPlugin; use SprykerShop\Yves\ResourceSharePage\Plugin\Router\ResourceSharePageRouteProviderPlugin; +use SprykerShop\Yves\SalesOrderAmendmentWidget\Plugin\Router\SalesOrderAmendmentWidgetRouteProviderPlugin; use SprykerShop\Yves\SalesReturnPage\Plugin\Router\SalesReturnPageRouteProviderPlugin; use SprykerShop\Yves\ServicePointWidget\Plugin\Router\ServicePointWidgetRouteProviderPlugin; use SprykerShop\Yves\SharedCartPage\Plugin\Router\SharedCartPageRouteProviderPlugin; @@ -112,7 +113,6 @@ protected function getRouteProvider(): array new HomePageRouteProviderPlugin(), new CheckoutPageRouteProviderPlugin(), new CustomerPageRouteProviderPlugin(), - new CustomerReorderWidgetRouteProviderPlugin(), new NewsletterPageRouteProviderPlugin(), new CartPageRouteProviderPlugin(), new CartPageAsyncRouteProviderPlugin(), @@ -177,6 +177,8 @@ protected function getRouteProvider(): array new MerchantRelationRequestPageRouteProviderPlugin(), new MerchantRelationshipPageRouteProviderPlugin(), new ProductComparisonPageRouteProviderPlugin(), + new CartReorderPageRouteProviderPlugin(), + new SalesOrderAmendmentWidgetRouteProviderPlugin(), ]; if (class_exists(LoadTestingRouterProviderPlugin::class)) { diff --git a/src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php b/src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php index 13aa6ef362..bcfd2e4751 100644 --- a/src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php +++ b/src/Pyz/Yves/ShopApplication/ShopApplicationDependencyProvider.php @@ -36,6 +36,9 @@ use SprykerShop\Yves\CartPage\Widget\CartSummaryHideTaxAmountWidget; use SprykerShop\Yves\CartPage\Widget\ProductAbstractAddToCartButtonWidget; use SprykerShop\Yves\CartPage\Widget\RemoveFromCartFormWidget; +use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemCheckboxWidget; +use SprykerShop\Yves\CartReorderPage\Widget\CartReorderItemsWidget; +use SprykerShop\Yves\CartReorderPage\Widget\CartReorderWidget; use SprykerShop\Yves\CategoryImageStorageWidget\Widget\CategoryImageStorageWidget; use SprykerShop\Yves\CheckoutWidget\Widget\CheckoutBreadcrumbWidget; use SprykerShop\Yves\CheckoutWidget\Widget\ProceedToCheckoutButtonWidget; @@ -52,10 +55,6 @@ use SprykerShop\Yves\CurrencyWidget\Widget\CurrencyWidget; use SprykerShop\Yves\CustomerPage\Plugin\Application\CustomerConfirmationUserCheckerApplicationPlugin; use SprykerShop\Yves\CustomerPage\Widget\CustomerNavigationWidget; -use SprykerShop\Yves\CustomerReorderWidget\Plugin\CustomerPage\CustomerReorderFormWidget; -use SprykerShop\Yves\CustomerReorderWidget\Plugin\CustomerPage\CustomerReorderItemsFormWidget; -use SprykerShop\Yves\CustomerReorderWidget\Widget\CustomerReorderBundleItemCheckboxWidget; -use SprykerShop\Yves\CustomerReorderWidget\Widget\CustomerReorderItemCheckboxWidget; use SprykerShop\Yves\CustomerValidationPage\Plugin\ShopApplication\LogoutInvalidatedCustomerFilterControllerEventHandlerPlugin; use SprykerShop\Yves\DiscountPromotionWidget\Plugin\ShopApplication\CartDiscountPromotionProductListWidgetCacheKeyGeneratorStrategyPlugin; use SprykerShop\Yves\DiscountPromotionWidget\Widget\CartDiscountPromotionProductListWidget; @@ -159,6 +158,7 @@ use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestCreateWidget; use SprykerShop\Yves\QuoteRequestWidget\Widget\QuoteRequestMenuItemWidget; use SprykerShop\Yves\SalesConfigurableBundleWidget\Widget\OrderItemsConfiguredBundleWidget; +use SprykerShop\Yves\SalesOrderAmendmentWidget\Widget\OrderAmendmentWidget; use SprykerShop\Yves\SalesOrderThresholdWidget\Widget\SalesOrderThresholdWidget; use SprykerShop\Yves\SalesProductBundleWidget\Widget\OrderItemsProductBundleWidget; use SprykerShop\Yves\SalesProductConfigurationWidget\Widget\ProductConfigurationOrderItemDisplayWidget; @@ -307,8 +307,6 @@ protected function getGlobalWidgets(): array AddToCartFormWidget::class, AddItemsFormWidget::class, CartChangeQuantityFormWidget::class, - CustomerReorderFormWidget::class, - CustomerReorderItemsFormWidget::class, OrderItemsProductBundleWidget::class, RemoveFromCartFormWidget::class, ProductAbstractAddToCartButtonWidget::class, @@ -332,8 +330,6 @@ protected function getGlobalWidgets(): array MerchantProductOffersSelectWidget::class, MerchantSearchWidget::class, AssetWidget::class, - CustomerReorderItemCheckboxWidget::class, - CustomerReorderBundleItemCheckboxWidget::class, ProductBundleProductDetailPageItemsListWidget::class, ProductConfigurationShoppingListItemDisplayWidget::class, ProductConfigurationShoppingListPageButtonWidget::class, @@ -353,6 +349,10 @@ protected function getGlobalWidgets(): array MerchantRelationshipLinkListWidget::class, ComparisonProductTogglerComparisonListWidget::class, LinkToProductComparisonListWidget::class, + CartReorderWidget::class, + CartReorderItemCheckboxWidget::class, + CartReorderItemsWidget::class, + OrderAmendmentWidget::class, ]; } diff --git a/src/Pyz/Zed/CartReorder/CartReorderDependencyProvider.php b/src/Pyz/Zed/CartReorder/CartReorderDependencyProvider.php new file mode 100644 index 0000000000..6bfab17ae0 --- /dev/null +++ b/src/Pyz/Zed/CartReorder/CartReorderDependencyProvider.php @@ -0,0 +1,140 @@ + + */ + protected function getCartReorderQuoteProviderStrategyPlugins(): array + { + return [ + new PersistentCartReorderQuoteProviderStrategyPlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartReorderValidatorPluginInterface> + */ + protected function getCartReorderValidatorPlugins(): array + { + return [ + new OrderAmendmentCartReorderValidatorPlugin(), + new IsAmendableOrderCartReorderValidatorRulePlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartPreReorderPluginInterface> + */ + protected function getCartPreReorderPlugins(): array + { + return [ + new CopyOrderCurrencyCartPreReorderPlugin(), + new CopyOrderPriceModeCartPreReorderPlugin(), + new ProductListRestrictedItemsCartPreReorderPlugin(), + new DefaultReorderQuoteNameCartPreReorderPlugin(), + new AmendmentOrderReferenceCartPreReorderPlugin(), + new AmendmentQuoteNameCartPreReorderPlugin(), + new ReplaceBundledItemsCartPreReorderPlugin(), + new MergeProductMeasurementUnitItemsCartPreReorderPlugin(), + new MergeProductPackagingUnitItemsCartPreReorderPlugin(), + new MergeConfigurableBundleItemsCartPreReorderPlugin(), + new CartNoteCartPreReorderPlugin(), + new OrderCustomReferenceCartPreReorderPlugin(), + new MergeProductQuantityRestrictionItemsCartPreReorderPlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartReorderItemHydratorPluginInterface> + */ + protected function getCartReorderItemHydratorPlugins(): array + { + return [ + new ProductMeasurementUnitCartReorderItemHydratorPlugin(), + new ProductPackagingUnitCartReorderItemHydratorPlugin(), + new CartNoteCartReorderItemHydratorPlugin(), + new ProductOfferCartReorderItemHydratorPlugin(), + new MerchantProductCartReorderItemHydratorPlugin(), + new MerchantProductOfferCartReorderItemHydratorPlugin(), + new ProductConfigurationCartReorderItemHydratorPlugin(), + new ProductOptionCartReorderItemHydratorPlugin(), + new ConfigurableBundleCartReorderItemHydratorPlugin(), + new ConfigurableBundleNoteCartReorderItemHydratorPlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartPostReorderPluginInterface> + */ + protected function getCartPostReorderPlugins(): array + { + return [ + new UpdateQuoteCartPostReorderPlugin(), + new ConfiguredBundleCartPostReorderPlugin(), + new StartOrderAmendmentCartReorderPostCreatePlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartReorderPreAddToCartPluginInterface> + */ + protected function getCartReorderPreAddToCartPlugins(): array + { + return [ + new RemoveUnavailableItemsCartReorderPreAddToCartPlugin(), + new RemoveInactiveItemsCartReorderPreAddToCartPlugin(), + ]; + } + + /** + * @return list<\Spryker\Zed\CartReorderExtension\Dependency\Plugin\CartReorderItemFilterPluginInterface> + */ + protected function getCartReorderItemFilterPlugins(): array + { + return [ + new ProductBundleCartReorderItemFilterPlugin(), + ]; + } +} diff --git a/src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php b/src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php index 5b8b937b78..324c69e2f3 100644 --- a/src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php +++ b/src/Pyz/Zed/Checkout/CheckoutDependencyProvider.php @@ -49,6 +49,7 @@ use Spryker\Zed\Sales\Communication\Plugin\Checkout\OrderSaverPlugin; use Spryker\Zed\Sales\Communication\Plugin\Checkout\OrderTotalsSaverPlugin; use Spryker\Zed\Sales\Communication\Plugin\SalesOrderExpanderPlugin; +use Spryker\Zed\SalesOrderAmendmentOms\Communication\Plugin\Checkout\FinishOrderAmendmentCheckoutPostSavePlugin; use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Checkout\SalesOrderThresholdCheckoutPreConditionPlugin; use Spryker\Zed\SalesOrderThreshold\Communication\Plugin\Checkout\SalesOrderThresholdExpenseSavePlugin; use Spryker\Zed\SalesPayment\Communication\Plugin\Checkout\SalesPaymentCheckoutDoSaveOrderPlugin; @@ -145,6 +146,7 @@ protected function getCheckoutPostHooks(Container $container): array new SendEmailToGiftCardUser(), #GiftCardFeature new PaymentAuthorizationCheckoutPostSavePlugin(), new PaymentConfirmPreOrderPaymentCheckoutPostSavePlugin(), + new FinishOrderAmendmentCheckoutPostSavePlugin(), ]; } diff --git a/src/Pyz/Zed/Quote/QuoteConfig.php b/src/Pyz/Zed/Quote/QuoteConfig.php index 554444aa4c..96a9e06c6d 100644 --- a/src/Pyz/Zed/Quote/QuoteConfig.php +++ b/src/Pyz/Zed/Quote/QuoteConfig.php @@ -30,6 +30,7 @@ public function getQuoteFieldsAllowedForSaving(): array QuoteTransfer::QUOTE_REQUEST_REFERENCE, QuoteTransfer::MERCHANT_REFERENCE, QuoteTransfer::IS_ORDER_PLACED_SUCCESSFULLY, + QuoteTransfer::AMENDMENT_ORDER_REFERENCE, ]); } } diff --git a/src/Pyz/Zed/Quote/QuoteDependencyProvider.php b/src/Pyz/Zed/Quote/QuoteDependencyProvider.php index b579898774..a9e433a62a 100644 --- a/src/Pyz/Zed/Quote/QuoteDependencyProvider.php +++ b/src/Pyz/Zed/Quote/QuoteDependencyProvider.php @@ -19,11 +19,16 @@ use Spryker\Zed\MultiCart\Communication\Plugin\ResolveQuoteNameBeforeQuoteCreatePlugin; use Spryker\Zed\OrderCustomReference\Communication\Plugin\Quote\OrderCustomReferenceQuoteFieldsAllowedForSavingProviderPlugin; use Spryker\Zed\Price\Communication\Plugin\Quote\QuotePriceModeValidatorPlugin; +use Spryker\Zed\ProductBundle\Communication\Plugin\Quote\SanitizeBundleItemsBeforeQuoteSavePlugin; use Spryker\Zed\Quote\QuoteDependencyProvider as SprykerQuoteDependencyProvider; use Spryker\Zed\QuoteApproval\Communication\Plugin\Quote\QuoteApprovalExpanderPlugin; use Spryker\Zed\QuoteApproval\Communication\Plugin\Quote\QuoteApprovalQuoteFieldsAllowedForSavingProviderPlugin; use Spryker\Zed\QuoteApproval\Communication\Plugin\Quote\RemoveQuoteApprovalsBeforeQuoteDeletePlugin; use Spryker\Zed\QuoteApprovalShipmentConnector\Communication\Plugin\Quote\QuoteApprovalShipmentQuoteFieldsAllowedForSavingProviderPlugin; +use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Quote\ResetAmendmentOrderReferenceBeforeQuoteSavePlugin; +use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Quote\ResetQuoteNameQuoteBeforeSavePlugin; +use Spryker\Zed\SalesOrderAmendmentOms\Communication\Plugin\Quote\CancelOrderAmendmentBeforeQuoteSavePlugin; +use Spryker\Zed\SalesOrderAmendmentOms\Communication\Plugin\Quote\CancelOrderAmendmentQuoteDeleteAfterPlugin; use Spryker\Zed\SharedCart\Communication\Plugin\CleanQuoteShareBeforeQuoteCreatePlugin; use Spryker\Zed\SharedCart\Communication\Plugin\DeactivateSharedQuotesBeforeQuoteSavePlugin; use Spryker\Zed\SharedCart\Communication\Plugin\MarkAsDefaultQuoteAfterSavePlugin; @@ -92,6 +97,7 @@ protected function getQuoteExpanderPlugins(): array protected function getQuoteUpdateBeforePlugins(): array { return [ + new ResetQuoteNameQuoteBeforeSavePlugin(), new AddDefaultNameBeforeQuoteSavePlugin(), #MultiCartFeature new ResolveQuoteNameBeforeQuoteCreatePlugin(), #MultiCartFeature new AddDefaultQuoteChangedMessageQuoteUpdateBeforePlugin(), #MultiCartFeature @@ -99,6 +105,9 @@ protected function getQuoteUpdateBeforePlugins(): array new AddDefaultSharedQuoteChangedMessageQuoteUpdateBeforePlugin(), #SharedCartFeature new DeactivateSharedQuotesBeforeQuoteSavePlugin(), #SharedCartFeature new SharedQuoteSetDefaultBeforeQuoteSavePlugin(), #SharedCartFeature + new SanitizeBundleItemsBeforeQuoteSavePlugin(), + new CancelOrderAmendmentBeforeQuoteSavePlugin(), + new ResetAmendmentOrderReferenceBeforeQuoteSavePlugin(), ]; } @@ -120,6 +129,7 @@ protected function getQuoteDeleteAfterPlugins(): array { return [ new InitDefaultQuoteCustomerQuoteDeleteAfterPlugin(), #MultiCartFeature + new CancelOrderAmendmentQuoteDeleteAfterPlugin(), ]; } diff --git a/src/Pyz/Zed/Sales/SalesDependencyProvider.php b/src/Pyz/Zed/Sales/SalesDependencyProvider.php index c006eeba1b..08bdd09686 100644 --- a/src/Pyz/Zed/Sales/SalesDependencyProvider.php +++ b/src/Pyz/Zed/Sales/SalesDependencyProvider.php @@ -59,6 +59,8 @@ use Spryker\Zed\SalesConfigurableBundle\Communication\Plugin\Sales\ConfiguredBundlesOrderItemsPostSavePlugin; use Spryker\Zed\SalesMerchantCommission\Communication\Plugin\Sales\MerchantCommissionOrderPostCancelPlugin; use Spryker\Zed\SalesOms\Communication\Plugin\OrderItemReferenceExpanderPreSavePlugin; +use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Sales\CreateSalesOrderAmendmentOrderPostSavePlugin; +use Spryker\Zed\SalesOrderAmendment\Communication\Plugin\Sales\SalesOrderAmendmentOrderExpanderPlugin; use Spryker\Zed\SalesPayment\Communication\Plugin\Sales\SalesPaymentOrderExpanderPlugin; use Spryker\Zed\SalesProductConfiguration\Communication\Plugin\Sales\ProductConfigurationOrderItemExpanderPlugin; use Spryker\Zed\SalesProductConfiguration\Communication\Plugin\Sales\ProductConfigurationOrderItemsPostSavePlugin; @@ -113,6 +115,7 @@ protected function getOrderHydrationPlugins(): array new IsCancellableOrderExpanderPlugin(), new CurrencyOrderExpanderPlugin(), new MerchantDataOrderHydratePlugin(), + new SalesOrderAmendmentOrderExpanderPlugin(), ]; } @@ -163,6 +166,7 @@ protected function getOrderPostSavePlugins(): array new OrderCustomReferenceOrderPostSavePlugin(), new SaveCompanyBusinessUnitUuidOrderPostSavePlugin(), new SaveCompanyUuidOrderPostSavePlugin(), + new CreateSalesOrderAmendmentOrderPostSavePlugin(), ]; } diff --git a/src/Pyz/Zed/SalesOrderAmendment/SalesOrderAmendmentDependencyProvider.php b/src/Pyz/Zed/SalesOrderAmendment/SalesOrderAmendmentDependencyProvider.php new file mode 100644 index 0000000000..6a0ccc0d7c --- /dev/null +++ b/src/Pyz/Zed/SalesOrderAmendment/SalesOrderAmendmentDependencyProvider.php @@ -0,0 +1,24 @@ + + */ + protected function getSalesOrderAmendmentCreateValidationRulePlugins(): array + { + return [ + new OrderSalesOrderAmendmentValidatorRulePlugin(), + ]; + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/MerchantProductOfferCartReorderRestApiFixtures.php b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/MerchantProductOfferCartReorderRestApiFixtures.php new file mode 100644 index 0000000000..5284b1cd9e --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/MerchantProductOfferCartReorderRestApiFixtures.php @@ -0,0 +1,218 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\MerchantTransfer + */ + public function getMerchantTransfer(): MerchantTransfer + { + return $this->merchantTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer(): ProductConcreteTransfer + { + return $this->productConcreteTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransferWithMerchantProductOffer(): ProductConcreteTransfer + { + return $this->productConcreteTransferWithMerchantProductOffer; + } + + /** + * @return \Generated\Shared\Transfer\ProductOfferTransfer + */ + public function getProductOfferTransfer(): ProductOfferTransfer + { + return $this->productOfferTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithMerchantProductOffer(): SaveOrderTransfer + { + return $this->orderWithMerchantProductOffer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(CartReorderApiTester $I): FixturesContainerInterface + { + $I->configureStateMachine(); + $this->storeTransfer = $I->getCurrentStore(); + $this->customerTransfer = $I->createCustomer(static::TEST_USERNAME); + + $this->merchantTransfer = $this->createMerchant($I); + $this->productConcreteTransfer = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productConcreteTransferWithMerchantProductOffer = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productOfferTransfer = $this->createProductOffer($I); + + $this->orderWithMerchantProductOffer = $this->createOrderWithMerchantProductOffer($I); + + return $this; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\MerchantTransfer + */ + protected function createMerchant(CartReorderApiTester $I): MerchantTransfer + { + $merchantTransfer = (new MerchantBuilder([ + MerchantTransfer::STATUS => static::MERCHANT_STATUS_APPROVED, + MerchantTransfer::IS_ACTIVE => true, + MerchantTransfer::STORE_RELATION => (new StoreRelationTransfer()) + ->addIdStores($this->storeTransfer->getIdStoreOrFail()) + ->addStores($this->storeTransfer), + ]))->withMerchantProfile()->build(); + + $merchantTransfer = $I->haveMerchant($merchantTransfer->toArray(true, true)); + foreach ($merchantTransfer->getStocks() as $stockTransfer) { + $I->haveStockStoreRelation($stockTransfer, $this->storeTransfer); + } + + return $merchantTransfer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\ProductOfferTransfer + */ + protected function createProductOffer(CartReorderApiTester $I): ProductOfferTransfer + { + $productOfferTransfer = $I->haveProductOffer([ + ProductOfferTransfer::ID_PRODUCT_CONCRETE => $this->productConcreteTransferWithMerchantProductOffer->getIdProductConcreteOrFail(), + ProductOfferTransfer::CONCRETE_SKU => $this->productConcreteTransferWithMerchantProductOffer->getSkuOrFail(), + ProductOfferTransfer::MERCHANT_REFERENCE => $this->merchantTransfer->getMerchantReferenceOrFail(), + ProductOfferTransfer::STORES => new ArrayObject([$this->storeTransfer]), + ]); + + $merchantStocksData = array_map(function (StockTransfer $stockTransfer) { + return $stockTransfer->toArray(); + }, $this->merchantTransfer->getStocks()->getArrayCopy()); + + $I->haveProductOfferStock([ + ProductOfferStockTransfer::ID_PRODUCT_OFFER => $productOfferTransfer->getIdProductOfferOrFail(), + ProductOfferStockTransfer::QUANTITY => 100, + ProductOfferStockTransfer::IS_NEVER_OUT_OF_STOCK => true, + ], $merchantStocksData); + + return $productOfferTransfer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithMerchantProductOffer(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransferWithMerchantProductOffer->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ItemTransfer::PRODUCT_OFFER_REFERENCE => $this->productOfferTransfer->getProductOfferReferenceOrFail(), + ItemTransfer::MERCHANT_REFERENCE => $this->merchantTransfer->getMerchantReferenceOrFail(), + ]))->build()->toArray(), + ]; + + return $I->createOrder($this->customerTransfer, [QuoteTransfer::ITEMS => $itemsData]); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductBundleCartReorderRestApiFixtures.php b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductBundleCartReorderRestApiFixtures.php new file mode 100644 index 0000000000..ae07e0f833 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductBundleCartReorderRestApiFixtures.php @@ -0,0 +1,198 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer(): ProductConcreteTransfer + { + return $this->productConcreteTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getBundledProductConcreteTransfer1(): ProductConcreteTransfer + { + return $this->bundledProductConcreteTransfer1; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getBundledProductConcreteTransfer2(): ProductConcreteTransfer + { + return $this->bundledProductConcreteTransfer2; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductBundleTransfer(): ProductConcreteTransfer + { + return $this->productBundleTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithProductBundle(): SaveOrderTransfer + { + return $this->orderWithProductBundle; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(CartReorderApiTester $I): FixturesContainerInterface + { + $I->configureStateMachine(); + $this->storeTransfer = $I->getCurrentStore(); + $this->customerTransfer = $I->createCustomer(static::TEST_USERNAME); + + $this->productConcreteTransfer = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->bundledProductConcreteTransfer1 = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->bundledProductConcreteTransfer2 = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productBundleTransfer = $this->createProductBundle($I); + $this->orderWithProductBundle = $this->createOrderWithProductBundle($I); + + return $this; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + protected function createProductBundle(CartReorderApiTester $I): ProductConcreteTransfer + { + $productConcreteTransfer = $I->haveFullProduct(); + $productConcreteTransfer = $I->haveProductBundle($productConcreteTransfer, [ + ProductBundleTransfer::BUNDLED_PRODUCTS => [ + [ + ProductForBundleTransfer::ID_PRODUCT_CONCRETE => $this->bundledProductConcreteTransfer1->getIdProductConcreteOrFail(), + ProductForBundleTransfer::ID_PRODUCT_BUNDLE => $productConcreteTransfer->getIdProductConcreteOrFail(), + ProductForBundleTransfer::QUANTITY => 1, + ], + [ + ProductForBundleTransfer::ID_PRODUCT_CONCRETE => $this->bundledProductConcreteTransfer2->getIdProductConcreteOrFail(), + ProductForBundleTransfer::ID_PRODUCT_BUNDLE => $productConcreteTransfer->getIdProductConcreteOrFail(), + ProductForBundleTransfer::QUANTITY => 2, + ], + ], + ]); + + $I->haveProductInStockForStore($this->storeTransfer, [ + StockProductTransfer::SKU => $productConcreteTransfer->getSku(), + StockProductTransfer::IS_NEVER_OUT_OF_STOCK => 1, + ]); + + $I->havePriceProduct([ + PriceProductTransfer::SKU_PRODUCT_ABSTRACT => $productConcreteTransfer->getAbstractSkuOrFail(), + PriceProductTransfer::SKU_PRODUCT => $productConcreteTransfer->getSkuOrFail(), + PriceProductTransfer::ID_PRODUCT => $productConcreteTransfer->getIdProductConcreteOrFail(), + PriceProductTransfer::PRICE_TYPE_NAME => CartReorderApiTester::PRICE_TYPE, + PriceProductTransfer::MONEY_VALUE => [ + MoneyValueTransfer::NET_AMOUNT => 7777, + MoneyValueTransfer::GROSS_AMOUNT => 8888, + ], + ]); + + return $productConcreteTransfer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithProductBundle(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->productBundleTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ]))->build()->toArray(), + ]; + + return $I->createOrder($this->customerTransfer, [QuoteTransfer::ITEMS => $itemsData]); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductConcreteCartReorderRestApiFixtures.php b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductConcreteCartReorderRestApiFixtures.php new file mode 100644 index 0000000000..40df5194e9 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductConcreteCartReorderRestApiFixtures.php @@ -0,0 +1,238 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer1(): ProductConcreteTransfer + { + return $this->productConcreteTransfer1; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer2(): ProductConcreteTransfer + { + return $this->productConcreteTransfer2; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getNotAvailableProductConcreteTransfer(): ProductConcreteTransfer + { + return $this->notAvailableProductConcreteTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithConcreteProducts(): SaveOrderTransfer + { + return $this->orderWithConcreteProducts; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithNotAvailableConcreteProduct(): SaveOrderTransfer + { + return $this->orderWithNotAvailableConcreteProduct; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderFromAnotherCustomer(): SaveOrderTransfer + { + return $this->orderFromAnotherCustomer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(CartReorderApiTester $I): FixturesContainerInterface + { + $I->configureStateMachine(); + $this->storeTransfer = $I->getCurrentStore(); + $this->customerTransfer = $I->createCustomer(static::TEST_USERNAME); + + $this->productConcreteTransfer1 = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productConcreteTransfer2 = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->notAvailableProductConcreteTransfer = $this->createNotAvailableProductConcrete($I); + + $this->orderWithConcreteProducts = $this->createOrderWithConcreteProducts($I); + $this->orderWithNotAvailableConcreteProduct = $this->createOrderWithNotAvailableConcreteProduct($I); + $this->orderFromAnotherCustomer = $this->createOrderFromAnotherCustomer($I); + + return $this; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + protected function createNotAvailableProductConcrete(CartReorderApiTester $I): ProductConcreteTransfer + { + $productConcreteTransfer = $I->haveFullProduct(); + $I->havePriceProduct([ + PriceProductTransfer::SKU_PRODUCT_ABSTRACT => $productConcreteTransfer->getAbstractSkuOrFail(), + PriceProductTransfer::SKU_PRODUCT => $productConcreteTransfer->getSkuOrFail(), + PriceProductTransfer::ID_PRODUCT => $productConcreteTransfer->getIdProductConcreteOrFail(), + PriceProductTransfer::PRICE_TYPE_NAME => CartReorderApiTester::PRICE_TYPE, + PriceProductTransfer::MONEY_VALUE => [ + MoneyValueTransfer::NET_AMOUNT => 777, + MoneyValueTransfer::GROSS_AMOUNT => 888, + ], + ]); + $I->haveProductInStockForStore($this->storeTransfer, [ + StockProductTransfer::SKU => $productConcreteTransfer->getSku(), + StockProductTransfer::IS_NEVER_OUT_OF_STOCK => 0, + StockProductTransfer::QUANTITY => 0, + ]); + + return $productConcreteTransfer; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithConcreteProducts(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer1->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer2->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + ]; + + return $I->createOrder($this->customerTransfer, [QuoteTransfer::ITEMS => $itemsData]); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithNotAvailableConcreteProduct(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer1->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->notAvailableProductConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + ]; + + return $I->createOrder($this->customerTransfer, [QuoteTransfer::ITEMS => $itemsData]); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderFromAnotherCustomer(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer1->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->notAvailableProductConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + ]; + + return $I->createOrder($I->haveCustomer(), [QuoteTransfer::ITEMS => $itemsData]); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductOptionsCartReorderRestApiFixtures.php b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductOptionsCartReorderRestApiFixtures.php new file mode 100644 index 0000000000..7e782eb46a --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/ProductOptionsCartReorderRestApiFixtures.php @@ -0,0 +1,180 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer(): ProductConcreteTransfer + { + return $this->productConcreteTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransferWithProductOptions(): ProductConcreteTransfer + { + return $this->productConcreteTransferWithProductOptions; + } + + /** + * @return \Generated\Shared\Transfer\ProductOptionTransfer + */ + public function getProductOptionTransfer(): ProductOptionTransfer + { + return $this->productOptionTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithProductOptions(): SaveOrderTransfer + { + return $this->orderWithProductOptions; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(CartReorderApiTester $I): FixturesContainerInterface + { + $I->configureStateMachine(); + $this->storeTransfer = $I->getCurrentStore(); + $this->customerTransfer = $I->createCustomer(static::TEST_USERNAME); + + $this->productConcreteTransfer = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productConcreteTransferWithProductOptions = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productOptionTransfer = $this->createProductOption($I); + + $this->orderWithProductOptions = $this->createOrderWithProductOptions($I); + + return $this; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\ProductOptionTransfer + */ + protected function createProductOption(CartReorderApiTester $I): ProductOptionTransfer + { + $productOptionGroupTransfer = $I->haveProductOptionGroupWithValues( + [], + [ + [ + [], + [ + [ + ProductOptionGroupDataHelper::STORE_NAME => $this->storeTransfer->getName(), + MoneyValueTransfer::GROSS_AMOUNT => 123, + MoneyValueTransfer::NET_AMOUNT => 123, + ], + ], + ], + ], + ); + /** @var \Generated\Shared\Transfer\ProductOptionValueTransfer $productOptionValueTransfer */ + $productOptionValueTransfer = $productOptionGroupTransfer->getProductOptionValues()->getIterator()->current(); + + return (new ProductOptionTransfer()) + ->fromArray($productOptionValueTransfer->toArray(), true) + ->setGroupName($productOptionGroupTransfer->getNameOrFail()) + ->setQuantity(1) + ->setUnitGrossPrice(333) + ->setTaxRate(19.00); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithProductOptions(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransferWithProductOptions->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ItemTransfer::PRODUCT_OPTIONS => [$this->productOptionTransfer->toArray()], + ]))->build()->toArray(), + ]; + + return $I->createOrder( + $this->customerTransfer, + [QuoteTransfer::ITEMS => $itemsData], + [new ProductOptionOrderSaverPlugin()], + ); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/SalesUnitCartReorderRestApiFixtures.php b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/SalesUnitCartReorderRestApiFixtures.php new file mode 100644 index 0000000000..7f0c7db1d1 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/Fixtures/SalesUnitCartReorderRestApiFixtures.php @@ -0,0 +1,183 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransfer(): ProductConcreteTransfer + { + return $this->productConcreteTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function getProductConcreteTransferWithSalesUnit(): ProductConcreteTransfer + { + return $this->productConcreteTransferWithSalesUnit; + } + + /** + * @return \Generated\Shared\Transfer\ProductMeasurementSalesUnitTransfer + */ + public function getProductMeasurementSalesUnitTransfer(): ProductMeasurementSalesUnitTransfer + { + return $this->productMeasurementSalesUnitTransfer; + } + + /** + * @return \Generated\Shared\Transfer\ProductPackagingUnitTransfer + */ + public function getProductPackagingUnitTransfer(): ProductPackagingUnitTransfer + { + return $this->productPackagingUnitTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getOrderWithSalesUnit(): SaveOrderTransfer + { + return $this->orderWithSalesUnit; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(CartReorderApiTester $I): FixturesContainerInterface + { + $I->configureStateMachine(); + $this->storeTransfer = $I->getCurrentStore(); + $this->customerTransfer = $I->createCustomer(static::TEST_USERNAME); + + $this->productConcreteTransfer = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productConcreteTransferWithSalesUnit = $I->createProductWithPriceAndStock($this->storeTransfer); + $this->productMeasurementSalesUnitTransfer = $I->createProductMeasurementSalesUnit($this->productConcreteTransferWithSalesUnit); + $this->productPackagingUnitTransfer = $this->createProductPackagingUnit($I); + + $this->orderWithSalesUnit = $this->createOrderWithProductPackagingUnit($I); + + return $this; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\ProductPackagingUnitTransfer + */ + protected function createProductPackagingUnit(CartReorderApiTester $I): ProductPackagingUnitTransfer + { + $productPackagingUnitTypeTransfer = $I->haveProductPackagingUnitType([ + ProductPackagingUnitTypeTransfer::NAME => static::TEST_PRODUCT_PACKAGING_UNIT_TYPE, + ]); + + $productPackagingUnitEntityTransfer = $I->haveProductPackagingUnit([ + SpyProductPackagingUnitEntityTransfer::FK_PRODUCT => $this->productConcreteTransferWithSalesUnit->getIdProductConcreteOrFail(), + SpyProductPackagingUnitEntityTransfer::FK_PRODUCT_PACKAGING_UNIT_TYPE => $productPackagingUnitTypeTransfer->getIdProductPackagingUnitTypeOrFail(), + SpyProductPackagingUnitEntityTransfer::FK_LEAD_PRODUCT => $this->productConcreteTransferWithSalesUnit->getIdProductConcreteOrFail(), + ]); + + return (new ProductPackagingUnitTransfer())->fromArray($productPackagingUnitEntityTransfer->toArray(), true); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithProductPackagingUnit(CartReorderApiTester $I): SaveOrderTransfer + { + $itemsData = [ + (new ItemBuilder([ + ItemTransfer::SKU => $this->productConcreteTransfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]))->build()->toArray(), + (new ItemBuilder([ + ItemTransfer::ID => $this->productConcreteTransferWithSalesUnit->getIdProductConcreteOrFail(), + ItemTransfer::SKU => $this->productConcreteTransferWithSalesUnit->getSkuOrFail(), + ItemTransfer::AMOUNT_SALES_UNIT => $this->productMeasurementSalesUnitTransfer, + ItemTransfer::QUANTITY_SALES_UNIT => $this->productMeasurementSalesUnitTransfer, + ItemTransfer::AMOUNT_LEAD_PRODUCT => $this->productConcreteTransferWithSalesUnit->toArray(), + ItemTransfer::QUANTITY => 2, + ItemTransfer::AMOUNT => 3, + ]))->build()->toArray(), + ]; + + return $I->createOrder($this->customerTransfer, [QuoteTransfer::ITEMS => $itemsData]); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/MerchantProductOfferCartReorderRestApiCest.php b/tests/PyzTest/Glue/CartReorder/RestApi/MerchantProductOfferCartReorderRestApiCest.php new file mode 100644 index 0000000000..b99768fc59 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/MerchantProductOfferCartReorderRestApiCest.php @@ -0,0 +1,112 @@ +loadFixtures(MerchantProductOfferCartReorderRestApiFixtures::class); + + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorder(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithMerchantProductOffer(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type.') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType(CartReorderApiTester::RESOURCE_CARTS); + + $I->amSure('The returned response data contains correct cart name.') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Reorder from Order %s', $saveOrderTransfer->getOrderReferenceOrFail()), + ); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer()->getSkuOrFail(), 1); + + $I->amSure('The returned response includes second item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransferWithMerchantProductOffer()->getSkuOrFail()); + $I->amSure('The second item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity( + $this->fixtures->getProductConcreteTransferWithMerchantProductOffer()->getSkuOrFail(), + 2, + ); + $I->amSure('The second item has correct merchant reference.') + ->whenI() + ->assertItemHasMerchantReference( + $this->fixtures->getProductConcreteTransferWithMerchantProductOffer()->getSkuOrFail(), + $this->fixtures->getMerchantTransfer()->getMerchantReferenceOrFail(), + ); + $I->amSure('The second item has correct product offer reference.') + ->whenI() + ->assertItemHasProductOfferReference( + $this->fixtures->getProductConcreteTransferWithMerchantProductOffer()->getSkuOrFail(), + $this->fixtures->getProductOfferTransfer()->getProductOfferReferenceOrFail(), + ); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/ProductBundleCartReorderRestApiCest.php b/tests/PyzTest/Glue/CartReorder/RestApi/ProductBundleCartReorderRestApiCest.php new file mode 100644 index 0000000000..a017585bdd --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/ProductBundleCartReorderRestApiCest.php @@ -0,0 +1,100 @@ +loadFixtures(ProductBundleCartReorderRestApiFixtures::class); + + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorder(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithProductBundle(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type.') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType(CartReorderApiTester::RESOURCE_CARTS); + + $I->amSure('The returned response data contains correct cart name.') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Reorder from Order %s', $saveOrderTransfer->getOrderReferenceOrFail()), + ); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer()->getSkuOrFail(), 1); + + $I->amSure('The returned response includes bundle item.') + ->whenI() + ->assertResponseContainsBundleItemBySku($this->fixtures->getProductBundleTransfer()->getSkuOrFail()); + $I->amSure('The bundle item has correct quantity.') + ->whenI() + ->assertBundleItemHasCorrectQuantity( + $this->fixtures->getProductBundleTransfer()->getSkuOrFail(), + 2, + ); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/ProductConcreteCartReorderRestApiCest.php b/tests/PyzTest/Glue/CartReorder/RestApi/ProductConcreteCartReorderRestApiCest.php new file mode 100644 index 0000000000..01568afb52 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/ProductConcreteCartReorderRestApiCest.php @@ -0,0 +1,270 @@ + This value should not be blank.'; + + /** + * @uses \Spryker\Glue\CartReorderRestApi\CartReorderRestApiConfig::ERROR_CODE_DEFAULT_CART_REORDER_FAILED + * + * @var string + */ + protected const RESPONSE_CODE_ERROR_DEFAULT = '5800'; + + /** + * @uses \Spryker\Glue\CartReorderRestApi\CartReorderRestApiConfig::ERROR_CODE_ORDER_NOT_FOUND + * + * @var string + */ + protected const RESPONSE_CODE_ORDER_NOT_FOUND = '5801'; + + /** + * @var string + */ + protected const RESPONSE_DETAIL_ORDER_NOT_FOUND = 'Order not found.'; + + /** + * @var string + */ + protected const RESPONSE_DETAIL_PRODUCT_NOT_AVAILABLE = 'Product %s is not available at the moment.'; + + /** + * @var \PyzTest\Glue\CartReorder\RestApi\Fixtures\ProductConcreteCartReorderRestApiFixtures + */ + protected ProductConcreteCartReorderRestApiFixtures $fixtures; + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function loadFixtures(CartReorderApiTester $I): void + { + /** @var \PyzTest\Glue\CartReorder\RestApi\Fixtures\ProductConcreteCartReorderRestApiFixtures $fixtures */ + $fixtures = $I->loadFixtures(ProductConcreteCartReorderRestApiFixtures::class); + + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorder(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithConcreteProducts(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type.') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType(CartReorderApiTester::RESOURCE_CARTS); + + $I->amSure('The returned response data contains correct cart name.') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Reorder from Order %s', $saveOrderTransfer->getOrderReferenceOrFail()), + ); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer1()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer1()->getSkuOrFail(), 2); + + $I->amSure('The returned response includes second item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer2()->getSkuOrFail()); + $I->amSure('The second item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer2()->getSkuOrFail(), 1); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorderWithNotAvailableProduct(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithNotAvailableConcreteProduct(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer1()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer1()->getSkuOrFail(), 2); + $I->amSure('The returned response does not include second item.') + ->whenI() + ->assertResponseDoesNotContainItemBySku($this->fixtures->getNotAvailableProductConcreteTransfer()->getSkuOrFail()); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateReorderWithEmptyOrderReferenceParameter(CartReorderApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => '', + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::UNPROCESSABLE_ENTITY); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $errors = $I->getDataFromResponseByJsonPath('$.errors[0]'); + $I->assertEquals($errors[RestCheckoutErrorTransfer::CODE], static::RESPONSE_CODE_PARAMETER_ORDER_REFERENCE_INVALID); + $I->assertEquals($errors[RestCheckoutErrorTransfer::STATUS], HttpCode::UNPROCESSABLE_ENTITY); + $I->assertEquals($errors[RestCheckoutErrorTransfer::DETAIL], static::RESPONSE_DETAIL_PARAMETER_ORDER_REFERENCE_INVALID); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateReorderWithNonExistingOrderReference(CartReorderApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => 'non-existing-order-reference', + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::UNPROCESSABLE_ENTITY); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $errors = $I->getDataFromResponseByJsonPath('$.errors[0]'); + $I->assertEquals($errors[RestCheckoutErrorTransfer::CODE], static::RESPONSE_CODE_ORDER_NOT_FOUND); + $I->assertEquals($errors[RestCheckoutErrorTransfer::STATUS], HttpCode::UNPROCESSABLE_ENTITY); + $I->assertEquals($errors[RestCheckoutErrorTransfer::DETAIL], static::RESPONSE_DETAIL_ORDER_NOT_FOUND); + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateReorderWithAnotherCustomersOrderReference(CartReorderApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $this->fixtures->getOrderFromAnotherCustomer()->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::UNPROCESSABLE_ENTITY); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $errors = $I->getDataFromResponseByJsonPath('$.errors[0]'); + $I->assertEquals($errors[RestCheckoutErrorTransfer::CODE], static::RESPONSE_CODE_ORDER_NOT_FOUND); + $I->assertEquals($errors[RestCheckoutErrorTransfer::STATUS], HttpCode::UNPROCESSABLE_ENTITY); + $I->assertEquals($errors[RestCheckoutErrorTransfer::DETAIL], static::RESPONSE_DETAIL_ORDER_NOT_FOUND); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/ProductOptionsCartReorderRestApiCest.php b/tests/PyzTest/Glue/CartReorder/RestApi/ProductOptionsCartReorderRestApiCest.php new file mode 100644 index 0000000000..d5215e5bf2 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/ProductOptionsCartReorderRestApiCest.php @@ -0,0 +1,106 @@ +loadFixtures(ProductOptionsCartReorderRestApiFixtures::class); + + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorder(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithProductOptions(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type.') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType(CartReorderApiTester::RESOURCE_CARTS); + + $I->amSure('The returned response data contains correct cart name.') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Reorder from Order %s', $saveOrderTransfer->getOrderReferenceOrFail()), + ); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer()->getSkuOrFail(), 1); + + $I->amSure('The returned response includes second item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransferWithProductOptions()->getSkuOrFail()); + $I->amSure('The second item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity( + $this->fixtures->getProductConcreteTransferWithProductOptions()->getSkuOrFail(), + 2, + ); + $I->amSure('The second item has correct product option.') + ->whenI() + ->assertItemHasProductOption( + $this->fixtures->getProductConcreteTransferWithProductOptions()->getSkuOrFail(), + $this->fixtures->getProductOptionTransfer()->getSkuOrFail(), + ); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/RestApi/SalesUnitCartReorderRestApiCest.php b/tests/PyzTest/Glue/CartReorder/RestApi/SalesUnitCartReorderRestApiCest.php new file mode 100644 index 0000000000..aaa38d15d9 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/RestApi/SalesUnitCartReorderRestApiCest.php @@ -0,0 +1,113 @@ +loadFixtures(SalesUnitCartReorderRestApiFixtures::class); + + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\CartReorder\CartReorderApiTester $I + * + * @return void + */ + public function requestCreateCartReorder(CartReorderApiTester $I): void + { + // Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $saveOrderTransfer = $this->fixtures->getOrderWithSalesUnit(); + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $saveOrderTransfer->getOrderReferenceOrFail(), + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type.') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType(CartReorderApiTester::RESOURCE_CARTS); + + $I->amSure('The returned response data contains correct cart name.') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Reorder from Order %s', $saveOrderTransfer->getOrderReferenceOrFail()), + ); + + $I->amSure('The returned response includes first item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransfer()->getSkuOrFail()); + $I->amSure('The first item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity($this->fixtures->getProductConcreteTransfer()->getSkuOrFail(), 1); + + $I->amSure('The returned response includes second item.') + ->whenI() + ->assertResponseContainsItemBySku($this->fixtures->getProductConcreteTransferWithSalesUnit()->getSkuOrFail()); + $I->amSure('The second item has correct quantity.') + ->whenI() + ->assertItemHasCorrectQuantity( + $this->fixtures->getProductConcreteTransferWithSalesUnit()->getSkuOrFail(), + 2, + ); + $I->amSure('The second item has correct sales unit id.') + ->whenI() + ->assertItemHasIdSalesUnit( + $this->fixtures->getProductConcreteTransferWithSalesUnit()->getSkuOrFail(), + $this->fixtures->getProductMeasurementSalesUnitTransfer()->getIdProductMeasurementSalesUnitOrFail(), + ); + $I->amSure('The second item has correct sales unit amount.') + ->whenI() + ->assertItemHasSalesUnitAmount( + $this->fixtures->getProductConcreteTransferWithSalesUnit()->getSkuOrFail(), + new Decimal(3), + ); + } +} diff --git a/tests/PyzTest/Glue/CartReorder/_support/CartReorderApiTester.php b/tests/PyzTest/Glue/CartReorder/_support/CartReorderApiTester.php new file mode 100644 index 0000000000..c54fb061ba --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/_support/CartReorderApiTester.php @@ -0,0 +1,443 @@ +configureTestStateMachine([static::STATE_MACHINE_NAME]); + } + + /** + * @return \Generated\Shared\Transfer\StoreTransfer + */ + public function getCurrentStore(): StoreTransfer + { + return $this->getLocator()->store()->facade()->getCurrentStore(); + } + + /** + * @param string $customerName + * + * @return \Generated\Shared\Transfer\CustomerTransfer + */ + public function createCustomer(string $customerName): CustomerTransfer + { + $customerTransfer = $this->haveCustomer([ + CustomerTransfer::USERNAME => $customerName, + CustomerTransfer::PASSWORD => static::TEST_CUSTOMER_PASSWORD, + CustomerTransfer::NEW_PASSWORD => static::TEST_CUSTOMER_PASSWORD, + ]); + + return $this->confirmCustomer($customerTransfer); + } + + /** + * @param \Generated\Shared\Transfer\StoreTransfer $storeTransfer + * + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function createProductWithPriceAndStock(StoreTransfer $storeTransfer): ProductConcreteTransfer + { + $productConcreteTransfer = $this->haveFullProduct(); + + $this->haveProductInStockForStore($storeTransfer, [ + StockProductTransfer::SKU => $productConcreteTransfer->getSku(), + StockProductTransfer::IS_NEVER_OUT_OF_STOCK => 1, + ]); + + $this->havePriceProduct([ + PriceProductTransfer::SKU_PRODUCT_ABSTRACT => $productConcreteTransfer->getAbstractSkuOrFail(), + PriceProductTransfer::SKU_PRODUCT => $productConcreteTransfer->getSkuOrFail(), + PriceProductTransfer::ID_PRODUCT => $productConcreteTransfer->getIdProductConcreteOrFail(), + PriceProductTransfer::PRICE_TYPE_NAME => static::PRICE_TYPE, + PriceProductTransfer::MONEY_VALUE => [ + MoneyValueTransfer::NET_AMOUNT => 777, + MoneyValueTransfer::GROSS_AMOUNT => 888, + ], + ]); + + return $productConcreteTransfer; + } + + /** + * @param \Generated\Shared\Transfer\ProductConcreteTransfer $productConcreteTransfer + * + * @return \Generated\Shared\Transfer\ProductMeasurementSalesUnitTransfer + */ + public function createProductMeasurementSalesUnit(ProductConcreteTransfer $productConcreteTransfer): ProductMeasurementSalesUnitTransfer + { + $productMeasurementUnitEntityTransfer = $this->haveProductMeasurementUnit(); + $productMeasurementUnitTransfer = (new ProductMeasurementUnitTransfer())->fromArray( + $productMeasurementUnitEntityTransfer->toArray(), + true, + ); + + $productMeasurementBaseUnitEntityTransfer = $this->haveProductMeasurementBaseUnit( + $productConcreteTransfer->getFkProductAbstractOrFail(), + $productMeasurementUnitEntityTransfer->getIdProductMeasurementUnitOrFail(), + ); + $productMeasurementBaseUnitTransfer = (new ProductMeasurementBaseUnitTransfer())->fromArray( + $productMeasurementBaseUnitEntityTransfer->toArray(), + true, + )->setProductMeasurementUnit($productMeasurementUnitTransfer); + + $productMeasurementSalesUnitEntityTransfer = $this->haveProductMeasurementSalesUnit( + $productConcreteTransfer->getIdProductConcreteOrFail(), + $productMeasurementUnitEntityTransfer->getIdProductMeasurementUnitOrFail(), + $productMeasurementBaseUnitEntityTransfer->getIdProductMeasurementBaseUnitOrFail(), + ); + + return (new ProductMeasurementSalesUnitTransfer()) + ->fromArray($productMeasurementSalesUnitEntityTransfer->toArray(), true) + ->setProductMeasurementUnit($productMeasurementUnitTransfer) + ->setProductMeasurementBaseUnit($productMeasurementBaseUnitTransfer); + } + + /** + * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer + * @param array $seedData + * @param list<\Spryker\Zed\CheckoutExtension\Dependency\Plugin\CheckoutDoSaveOrderInterface> $checkoutDoSaveOrderPlugins + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function createOrder( + CustomerTransfer $customerTransfer, + array $seedData, + array $checkoutDoSaveOrderPlugins = [], + ): SaveOrderTransfer { + $quoteTransfer = $this->createQuoteTransfer($customerTransfer, $seedData); + $quoteTransfer->setPriceMode(static::PRICE_MODE); + + return $this->haveOrderFromQuote( + $quoteTransfer, + static::STATE_MACHINE_NAME, + $checkoutDoSaveOrderPlugins, + ); + } + + /** + * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer + * + * @return void + */ + public function authorizeCustomerToGlue(CustomerTransfer $customerTransfer): void + { + $oauthResponseTransfer = $this->haveAuthorizationToGlue($customerTransfer); + $this->amBearerAuthenticated($oauthResponseTransfer->getAccessToken()); + } + + /** + * @return string + */ + public function getCartReorderUrl(): string + { + $url = sprintf('{cartReorderResource}?include=%s,%s', static::RESOURCE_CART_ITEMS, static::RESOURCE_BUNDLE_ITEMS); + + return $this->formatUrl($url, [ + 'cartReorderResource' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + ]); + } + + /** + * @param string $quoteName + * + * @return void + */ + public function assertResponseContainsCorrectCartName(string $quoteName): void + { + $attributes = $this->getDataFromResponseByJsonPath('$.data.attributes'); + + $this->assertArrayHasKey(RestCartsAttributesTransfer::NAME, $attributes); + $this->assertSame($quoteName, $attributes[RestCartsAttributesTransfer::NAME]); + } + + /** + * @param string $sku + * + * @return void + */ + public function assertResponseContainsItemBySku(string $sku): void + { + $this->assertNotNull($this->findIncludedItemsResourceBySku($sku)); + } + + /** + * @param string $sku + * + * @return void + */ + public function assertResponseDoesNotContainItemBySku(string $sku): void + { + $this->assertNull($this->findIncludedItemsResourceBySku($sku)); + } + + /** + * @param string $sku + * + * @return void + */ + public function assertResponseContainsBundleItemBySku(string $sku): void + { + $this->assertNotNull($this->findIncludedBundleItemsResourceBySku($sku)); + } + + /** + * @param string $sku + * @param int $quantity + * + * @return void + */ + public function assertItemHasCorrectQuantity(string $sku, int $quantity): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::QUANTITY, $itemsResourceAttributes); + $this->assertSame($quantity, $itemsResourceAttributes[RestItemsAttributesTransfer::QUANTITY]); + } + + /** + * @param string $sku + * @param int $quantity + * + * @return void + */ + public function assertBundleItemHasCorrectQuantity(string $sku, int $quantity): void + { + $bundleItemsResourceAttributes = $this->findIncludedBundleItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::QUANTITY, $bundleItemsResourceAttributes); + $this->assertSame($quantity, $bundleItemsResourceAttributes[RestItemsAttributesTransfer::QUANTITY]); + } + + /** + * @param string $sku + * @param string $merchantReference + * + * @return void + */ + public function assertItemHasMerchantReference(string $sku, string $merchantReference): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::MERCHANT_REFERENCE, $itemsResourceAttributes); + $this->assertSame($merchantReference, $itemsResourceAttributes[RestItemsAttributesTransfer::MERCHANT_REFERENCE]); + } + + /** + * @param string $sku + * @param string $productOfferReference + * + * @return void + */ + public function assertItemHasProductOfferReference(string $sku, string $productOfferReference): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::PRODUCT_OFFER_REFERENCE, $itemsResourceAttributes); + $this->assertSame($productOfferReference, $itemsResourceAttributes[RestItemsAttributesTransfer::PRODUCT_OFFER_REFERENCE]); + } + + /** + * @param string $sku + * @param int $idSalesUnit + * + * @return void + */ + public function assertItemHasIdSalesUnit(string $sku, int $idSalesUnit): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::SALES_UNIT, $itemsResourceAttributes); + $itemSalesUnitData = $itemsResourceAttributes[RestItemsAttributesTransfer::SALES_UNIT]; + $this->assertArrayHasKey(RestCartItemsSalesUnitAttributesTransfer::ID, $itemSalesUnitData); + $this->assertSame($idSalesUnit, $itemSalesUnitData[RestCartItemsSalesUnitAttributesTransfer::ID]); + } + + /** + * @param string $sku + * @param \Spryker\DecimalObject\Decimal $amount + * + * @return void + */ + public function assertItemHasSalesUnitAmount(string $sku, Decimal $amount): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($sku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::SALES_UNIT, $itemsResourceAttributes); + $itemSalesUnitData = $itemsResourceAttributes[RestItemsAttributesTransfer::SALES_UNIT]; + $this->assertArrayHasKey(RestCartItemsSalesUnitAttributesTransfer::AMOUNT, $itemSalesUnitData); + $this->assertTrue($amount->equals($itemSalesUnitData[RestCartItemsSalesUnitAttributesTransfer::AMOUNT])); + } + + /** + * @param string $productConcreteSku + * @param string $productOptionSku + * + * @return void + */ + public function assertItemHasProductOption(string $productConcreteSku, string $productOptionSku): void + { + $itemsResourceAttributes = $this->findIncludedItemsResourceBySku($productConcreteSku)['attributes']; + + $this->assertArrayHasKey(RestItemsAttributesTransfer::SELECTED_PRODUCT_OPTIONS, $itemsResourceAttributes); + $this->assertCount(1, $itemsResourceAttributes[RestItemsAttributesTransfer::SELECTED_PRODUCT_OPTIONS]); + + $productOption = $itemsResourceAttributes[RestItemsAttributesTransfer::SELECTED_PRODUCT_OPTIONS][0]; + + $this->assertArrayHasKey(RestItemProductOptionsTransfer::SKU, $productOption); + $this->assertSame($productOptionSku, $productOption[RestItemProductOptionsTransfer::SKU]); + } + + /** + * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer + * @param array $seedData + * + * @return \Generated\Shared\Transfer\QuoteTransfer + */ + protected function createQuoteTransfer(CustomerTransfer $customerTransfer, array $seedData): QuoteTransfer + { + return (new QuoteBuilder($seedData)) + ->withCustomer([CustomerTransfer::CUSTOMER_REFERENCE => $customerTransfer->getCustomerReference()]) + ->withTotals() + ->withShippingAddress() + ->withBillingAddress() + ->withCurrency() + ->withPayment() + ->build(); + } + + /** + * @param string $sku + * + * @return array|null + */ + protected function findIncludedItemsResourceBySku(string $sku): ?array + { + $jsonPath = sprintf( + '$..included[?(@.type == \'%s\')]', + static::RESOURCE_CART_ITEMS, + ); + + $itemsResources = $this->getDataFromResponseByJsonPath($jsonPath); + foreach ($itemsResources as $itemsResource) { + if ($itemsResource['attributes']['sku'] === $sku) { + return $itemsResource; + } + } + + return null; + } + + /** + * @param string $sku + * + * @return array|null + */ + protected function findIncludedBundleItemsResourceBySku(string $sku): ?array + { + $jsonPath = sprintf( + '$..included[?(@.type == \'%s\')]', + static::RESOURCE_BUNDLE_ITEMS, + ); + + $bundleItemsResources = $this->getDataFromResponseByJsonPath($jsonPath); + foreach ($bundleItemsResources as $bundleItemsResource) { + if ($bundleItemsResource['attributes']['sku'] === $sku) { + return $bundleItemsResource; + } + } + + return null; + } +} diff --git a/tests/PyzTest/Glue/CartReorder/codeception.yml b/tests/PyzTest/Glue/CartReorder/codeception.yml new file mode 100644 index 0000000000..25b31daf78 --- /dev/null +++ b/tests/PyzTest/Glue/CartReorder/codeception.yml @@ -0,0 +1,54 @@ +namespace: PyzTest\Glue\CartReorder + +paths: + tests: . + data: _data + support: _support + output: _output + +coverage: + enabled: true + remote: false + whitelist: { include: ['../../../../src/*'] } + +suites: + RestApi: + actor: CartReorderApiTester + modules: + enabled: + - Asserts + - \PyzTest\Shared\Testify\Helper\Environment + - \SprykerTest\Shared\Testify\Helper\LocatorHelper: + projectNamespaces: ['Pyz'] + - \SprykerTest\Shared\Propel\Helper\ConnectionHelper + - \SprykerTest\Shared\Testify\Helper\DataCleanupHelper + - \SprykerTest\Glue\Testify\Helper\GlueRest + - \SprykerTest\Glue\Testify\Helper\OpenApi3 + - \SprykerTest\Glue\Testify\Helper\JsonPath + - \SprykerTest\Service\Container\Helper\ContainerHelper + - \SprykerTest\Zed\Sales\Helper\BusinessHelper + - \SprykerTest\Shared\Testify\Helper\DependencyHelper + - \SprykerTest\Shared\Testify\Helper\ConfigHelper + - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \SprykerTest\Glue\AuthRestApi\Helper\AuthRestApiHelper + - \SprykerTest\Shared\Sales\Helper\SalesDataHelper + - \SprykerTest\Zed\Oms\Helper\OmsHelper + - \SprykerTest\Shared\Customer\Helper\CustomerDataHelper + - \SprykerTest\Shared\Quote\Helper\PersistentQuoteHelper + - \SprykerTest\Shared\Product\Helper\ProductDataHelper + - \SprykerTest\Shared\Stock\Helper\StockDataHelper + - \SprykerTest\Shared\PriceProduct\Helper\PriceProductDataHelper + - \SprykerTest\Shared\ProductMeasurementUnit\Helper\ProductMeasurementUnitDataHelper + - \SprykerTest\Zed\ProductPackagingUnit\Helper\ProductPackagingUnitTypeHelper + - \SprykerTest\Zed\ProductPackagingUnit\Helper\ProductPackagingUnitHelper + - \SprykerTest\Shared\ProductOption\Helper\ProductOptionGroupDataHelper + - \SprykerTest\Zed\ProductOffer\Helper\ProductOfferHelper + - \SprykerTest\Shared\ProductBundle\Helper\ProductBundleHelper + - \SprykerTest\Shared\ProductOfferStock\Helper\ProductOfferStockDataHelper + - \SprykerTest\Zed\Merchant\Helper\MerchantHelper + config: + \SprykerTest\Glue\Testify\Helper\GlueRest: + depends: PhpBrowser + part: Json + \SprykerTest\Shared\Testify\Helper\DataCleanupHelper: + cleanup: false diff --git a/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentRestApiFixtures.php b/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentRestApiFixtures.php new file mode 100644 index 0000000000..ba00620c3e --- /dev/null +++ b/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentRestApiFixtures.php @@ -0,0 +1,172 @@ +customerTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getReadyForAmendmentOrderTransfer(): SaveOrderTransfer + { + return $this->readyForAmendmentOrderTransfer; + } + + /** + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + public function getNotReadyForAmendmentOrderTransfer(): SaveOrderTransfer + { + return $this->notReadyForAmendmentOrderTransfer; + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return \SprykerTest\Shared\Testify\Fixtures\FixturesContainerInterface + */ + public function buildFixtures(OrderAmendmentsApiTester $I): FixturesContainerInterface + { + $this->configureStateMachine($I); + $this->customerTransfer = $this->createCustomerTransfer($I); + + $this->readyForAmendmentOrderTransfer = $this->createOrderWithProductConcretes($I); + $this->setOrderItemsState($I, $this->readyForAmendmentOrderTransfer->getOrderItems(), static::ORDER_ITEM_STATE_PAYMENT_PENDING); + + $this->notReadyForAmendmentOrderTransfer = $this->createOrderWithProductConcretes($I); + $this->setOrderItemsState($I, $this->notReadyForAmendmentOrderTransfer->getOrderItems(), static::ORDER_ITEM_STATE_PAID); + + return $this; + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return \Generated\Shared\Transfer\CustomerTransfer + */ + protected function createCustomerTransfer(OrderAmendmentsApiTester $I): CustomerTransfer + { + $customerTransfer = $I->haveCustomer([ + CustomerTransfer::USERNAME => static::TEST_USERNAME, + CustomerTransfer::PASSWORD => static::TEST_PASSWORD, + CustomerTransfer::NEW_PASSWORD => static::TEST_PASSWORD, + ]); + + return $I->confirmCustomer($customerTransfer); + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return \Generated\Shared\Transfer\SaveOrderTransfer + */ + protected function createOrderWithProductConcretes(OrderAmendmentsApiTester $I): SaveOrderTransfer + { + $product1Transfer = $I->haveProductWithPriceAndStock(); + $product2Transfer = $I->haveProductWithPriceAndStock(); + $quoteTransfer = (new QuoteBuilder()) + ->withCustomer([CustomerTransfer::CUSTOMER_REFERENCE => $this->customerTransfer->getCustomerReference()]) + ->withItem([ + ItemTransfer::SKU => $product1Transfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 1, + ]) + ->withItem([ + ItemTransfer::SKU => $product2Transfer->getSkuOrFail(), + ItemTransfer::QUANTITY => 2, + ]) + ->withTotals() + ->withShippingAddress() + ->withBillingAddress() + ->withCurrency() + ->withPayment() + ->build(); + + return $I->haveOrderFromQuote($quoteTransfer, static::STATE_MACHINE_NAME); + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * @param \ArrayObject $itemTransfers + * @param string $stateName + * + * @return void + */ + protected function setOrderItemsState(OrderAmendmentsApiTester $I, ArrayObject $itemTransfers, string $stateName): void + { + foreach ($itemTransfers as $itemTransfer) { + $I->setItemState($itemTransfer->getIdSalesOrderItemOrFail(), $stateName); + } + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return void + */ + protected function configureStateMachine(OrderAmendmentsApiTester $I): void + { + $I->configureTestStateMachine([static::STATE_MACHINE_NAME]); + } +} diff --git a/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentsRestApiCest.php b/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentsRestApiCest.php new file mode 100644 index 0000000000..51183b003f --- /dev/null +++ b/tests/PyzTest/Glue/OrderAmendments/RestApi/OrderAmendmentsRestApiCest.php @@ -0,0 +1,174 @@ + This value should be of type bool.'; + + /** + * @var \PyzTest\Glue\OrderAmendments\RestApi\OrderAmendmentRestApiFixtures + */ + protected OrderAmendmentRestApiFixtures $fixtures; + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return void + */ + public function loadFixtures(OrderAmendmentsApiTester $I): void + { + /** @var \PyzTest\Glue\OrderAmendments\RestApi\OrderAmendmentRestApiFixtures $fixtures */ + $fixtures = $I->loadFixtures(OrderAmendmentRestApiFixtures::class); + $this->fixtures = $fixtures; + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return void + */ + public function requestCreateOrderAmendmentWithValidOrder(OrderAmendmentsApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $this->fixtures->getReadyForAmendmentOrderTransfer()->getOrderReferenceOrFail(), + 'isAmendment' => true, + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::CREATED); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $I->amSure('The returned resource is of correct type') + ->whenI() + ->seeResponseDataContainsSingleResourceOfType('carts'); + + $I->amSure('The returned response data contains amendment order reference') + ->whenI() + ->assertResponseContainsAmendmentOrderReference($this->fixtures->getReadyForAmendmentOrderTransfer()->getOrderReferenceOrFail()); + + $I->amSure('The returned response data contains correct cart name') + ->whenI() + ->assertResponseContainsCorrectCartName( + sprintf('Editing Order %s', $this->fixtures->getReadyForAmendmentOrderTransfer()->getOrderReferenceOrFail()), + ); + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return void + */ + public function requestCreateOrderAmendmentWithInvalidOrder(OrderAmendmentsApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $this->fixtures->getNotReadyForAmendmentOrderTransfer()->getOrderReferenceOrFail(), + 'isAmendment' => true, + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::UNPROCESSABLE_ENTITY); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $errors = $I->getDataFromResponseByJsonPath('$.errors[0]'); + $I->assertEquals($errors[RestCheckoutErrorTransfer::CODE], static::RESPONSE_CODE_ORDER_IS_NOT_AMENDABLE); + $I->assertEquals($errors[RestCheckoutErrorTransfer::STATUS], HttpCode::UNPROCESSABLE_ENTITY); + $I->assertEquals($errors[RestCheckoutErrorTransfer::DETAIL], static::RESPONSE_DETAIL_ORDER_IS_NOT_AMENDABLE); + } + + /** + * @param \PyzTest\Glue\OrderAmendments\OrderAmendmentsApiTester $I + * + * @return void + */ + public function requestCreateOrderAmendmentWithEmptyIsAmendmentParameter(OrderAmendmentsApiTester $I): void + { + //Arrange + $I->authorizeCustomerToGlue($this->fixtures->getCustomerTransfer()); + + $requestPayload = [ + 'data' => [ + 'type' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + 'attributes' => [ + 'orderReference' => $this->fixtures->getReadyForAmendmentOrderTransfer()->getOrderReferenceOrFail(), + 'isAmendment' => '', + ], + ], + ]; + + // Act + $I->sendPost($I->getCartReorderUrl(), $requestPayload); + + // Assert + $I->seeResponseCodeIs(HttpCode::UNPROCESSABLE_ENTITY); + $I->seeResponseIsJson(); + $I->seeResponseMatchesOpenApiSchema(); + + $errors = $I->getDataFromResponseByJsonPath('$.errors[0]'); + $I->assertEquals($errors[RestCheckoutErrorTransfer::CODE], static::RESPONSE_CODE_PARAMETER_IS_AMENDABLE_INVALID); + $I->assertEquals($errors[RestCheckoutErrorTransfer::STATUS], HttpCode::UNPROCESSABLE_ENTITY); + $I->assertEquals($errors[RestCheckoutErrorTransfer::DETAIL], static::RESPONSE_DETAIL_PARAMETER_IS_AMENDABLE_INVALID); + } +} diff --git a/tests/PyzTest/Glue/OrderAmendments/_support/OrderAmendmentsApiTester.php b/tests/PyzTest/Glue/OrderAmendments/_support/OrderAmendmentsApiTester.php new file mode 100644 index 0000000000..ff24a2ef6a --- /dev/null +++ b/tests/PyzTest/Glue/OrderAmendments/_support/OrderAmendmentsApiTester.php @@ -0,0 +1,111 @@ +haveAuthorizationToGlue($customerTransfer); + $this->amBearerAuthenticated($oauthResponseTransfer->getAccessToken()); + } + + /** + * @param string $orderReference + * + * @return void + */ + public function assertResponseContainsAmendmentOrderReference(string $orderReference): void + { + $attributes = $this->getDataFromResponseByJsonPath('$.data.attributes'); + + $this->assertArrayHasKey('amendmentOrderReference', $attributes); + $this->assertSame($orderReference, $attributes['amendmentOrderReference']); + } + + /** + * @param string $quoteName + * + * @return void + */ + public function assertResponseContainsCorrectCartName(string $quoteName): void + { + $attributes = $this->getDataFromResponseByJsonPath('$.data.attributes'); + + $this->assertArrayHasKey('name', $attributes); + $this->assertSame($quoteName, $attributes['name']); + } + + /** + * @return string + */ + public function getCartReorderUrl(): string + { + return $this->formatUrl('{cartReorderResource}?include=items', [ + 'cartReorderResource' => CartReorderRestApiConfig::RESOURCE_CART_REORDER, + ]); + } + + /** + * @return \Generated\Shared\Transfer\ProductConcreteTransfer + */ + public function haveProductWithPriceAndStock(): ProductConcreteTransfer + { + $storeTransfer = $this->getLocator()->store()->facade()->getCurrentStore(); + $productConcreteTransfer = $this->haveFullProduct(); + + $this->haveProductInStockForStore($storeTransfer, [ + StockProductTransfer::SKU => $productConcreteTransfer->getSku(), + StockProductTransfer::IS_NEVER_OUT_OF_STOCK => 1, + ]); + + $this->havePriceProduct([ + PriceProductTransfer::SKU_PRODUCT_ABSTRACT => $productConcreteTransfer->getAbstractSku(), + PriceProductTransfer::SKU_PRODUCT => $productConcreteTransfer->getSku(), + PriceProductTransfer::ID_PRODUCT => $productConcreteTransfer->getIdProductConcrete(), + PriceProductTransfer::PRICE_TYPE_NAME => 'DEFAULT', + PriceProductTransfer::MONEY_VALUE => [ + MoneyValueTransfer::NET_AMOUNT => 777, + MoneyValueTransfer::GROSS_AMOUNT => 888, + ], + ]); + + return $productConcreteTransfer; + } +} diff --git a/tests/PyzTest/Glue/OrderAmendments/codeception.yml b/tests/PyzTest/Glue/OrderAmendments/codeception.yml new file mode 100644 index 0000000000..493ccfb312 --- /dev/null +++ b/tests/PyzTest/Glue/OrderAmendments/codeception.yml @@ -0,0 +1,45 @@ +namespace: PyzTest\Glue\OrderAmendments + +paths: + tests: . + data: _data + support: _support + output: _output + +coverage: + enabled: true + remote: false + whitelist: { include: ['../../../../src/*'] } + +suites: + RestApi: + actor: OrderAmendmentsApiTester + modules: + enabled: + - Asserts + - \PyzTest\Shared\Testify\Helper\Environment + - \SprykerTest\Shared\Testify\Helper\LocatorHelper: + projectNamespaces: ['Pyz'] + - \SprykerTest\Shared\Propel\Helper\ConnectionHelper + - \SprykerTest\Shared\Testify\Helper\DataCleanupHelper + - \SprykerTest\Glue\Testify\Helper\GlueRest + - \SprykerTest\Glue\Testify\Helper\OpenApi3 + - \SprykerTest\Glue\Testify\Helper\JsonPath + - \SprykerTest\Service\Container\Helper\ContainerHelper + - \SprykerTest\Zed\Sales\Helper\BusinessHelper + - \SprykerTest\Shared\Testify\Helper\DependencyHelper + - \SprykerTest\Shared\Testify\Helper\ConfigHelper + - \SprykerTest\Shared\Store\Helper\StoreDependencyHelper + - \SprykerTest\Glue\AuthRestApi\Helper\AuthRestApiHelper + - \SprykerTest\Shared\Sales\Helper\SalesDataHelper + - \SprykerTest\Zed\Oms\Helper\OmsHelper + - \SprykerTest\Shared\Customer\Helper\CustomerDataHelper + - \SprykerTest\Shared\Product\Helper\ProductDataHelper + - \SprykerTest\Shared\Stock\Helper\StockDataHelper + - \SprykerTest\Shared\PriceProduct\Helper\PriceProductDataHelper + config: + \SprykerTest\Glue\Testify\Helper\GlueRest: + depends: PhpBrowser + part: Json + \SprykerTest\Shared\Testify\Helper\DataCleanupHelper: + cleanup: false diff --git a/tests/PyzTest/Yves/Availability/_support/AvailabilityPresentationTester.php b/tests/PyzTest/Yves/Availability/_support/AvailabilityPresentationTester.php index 136fef8185..bbce9fd49e 100644 --- a/tests/PyzTest/Yves/Availability/_support/AvailabilityPresentationTester.php +++ b/tests/PyzTest/Yves/Availability/_support/AvailabilityPresentationTester.php @@ -51,8 +51,7 @@ class AvailabilityPresentationTester extends Actor public const ADD_FUJITSU2_PRODUCT_TO_CART_URL = '/cart/add/119_29804808'; /** - * @uses \Spryker\Zed\AvailabilityCartConnector\Business\Cart\CheckCartAvailability::CART_PRE_CHECK_AVAILABILITY_FAILED - * @uses \Spryker\Zed\ProductBundle\Business\ProductBundle\Availability\PreCheck\ProductBundleCartAvailabilityCheck::CART_PRE_CHECK_ITEM_AVAILABILITY_FAILED + * @uses \Spryker\Zed\AvailabilityCartConnector\Business\Creator\MessageCreator::GLOSSARY_KEY_AVAILABILITY_FAILED * * @var string */ diff --git a/tests/PyzTest/Zed/TestifyBackendApi/codeception.dynamic.fixtures.yml b/tests/PyzTest/Zed/TestifyBackendApi/codeception.dynamic.fixtures.yml index a4a4925e7a..05cb4ab98a 100644 --- a/tests/PyzTest/Zed/TestifyBackendApi/codeception.dynamic.fixtures.yml +++ b/tests/PyzTest/Zed/TestifyBackendApi/codeception.dynamic.fixtures.yml @@ -59,6 +59,11 @@ suites: - \SprykerTest\Zed\Category\Helper\CategoryDataHelper - \SprykerTest\Zed\ProductCategory\Helper\ProductCategoryDataHelper - \SprykerTest\Shared\MerchantCommission\Helper\MerchantCommissionHelper + - \SprykerTest\Shared\ProductMeasurementUnit\Helper\ProductMeasurementUnitDataHelper + - \SprykerTest\Zed\ProductPackagingUnit\Helper\ProductPackagingUnitTypeHelper + - \SprykerTest\Zed\ProductPackagingUnit\Helper\ProductPackagingUnitHelper + - \SprykerTest\Shared\ProductOption\Helper\ProductOptionDataHelper + - \SprykerTest\Shared\ProductBundle\Helper\ProductBundleHelper - \SprykerTest\Zed\Twig\Helper\TwigHelper: config: \SprykerTest\Shared\Testify\Helper\DataCleanupHelper: From 00b6a485bb2c3da056210caac9425dd33b8de696 Mon Sep 17 00:00:00 2001 From: Spryker Bot Date: Fri, 15 Nov 2024 18:43:10 +0000 Subject: [PATCH 3/4] CC-34501 Update core modules. --- composer.json | 13 +- composer.lock | 1147 +++++++++++++++++++++++++++++++++++++------------ 2 files changed, 889 insertions(+), 271 deletions(-) diff --git a/composer.json b/composer.json index 34ec49c2d2..9bd483f28b 100644 --- a/composer.json +++ b/composer.json @@ -32,6 +32,8 @@ "spryker-shop/cart-note-widget": "^1.4.0", "spryker-shop/cart-page": "^3.27.1", "spryker-shop/cart-page-extension": "^1.0.0", + "spryker-shop/cart-reorder-page": "^0.1.0", + "spryker-shop/cart-reorder-page-extension": "^1.0.0", "spryker-shop/catalog-page": "^1.0.0", "spryker-shop/category-image-storage-widget": "^1.0.0", "spryker-shop/category-widget": "^1.0.0", @@ -156,6 +158,7 @@ "spryker-shop/resource-share-page": "^1.2.0", "spryker-shop/resource-share-page-extension": "^1.0.0", "spryker-shop/sales-configurable-bundle-widget": "^1.4.1", + "spryker-shop/sales-order-amendment-widget": "^0.1.0", "spryker-shop/sales-order-threshold-widget": "^1.1.4", "spryker-shop/sales-product-bundle-widget": "^1.0.0", "spryker-shop/sales-product-configuration-widget": "^1.0.0", @@ -274,6 +277,10 @@ "spryker/cart-notes-backend-api": "^1.0.0", "spryker/cart-permission-connector": "^1.0.0", "spryker/cart-permission-groups-rest-api": "^1.2.1", + "spryker/cart-reorder": "^0.1.0", + "spryker/cart-reorder-extension": "^1.0.0", + "spryker/cart-reorder-rest-api": "^0.1.0", + "spryker/cart-reorder-rest-api-extension": "^1.0.0", "spryker/cart-variant": "^2.0.0", "spryker/carts-rest-api": "^5.17.0", "spryker/carts-rest-api-extension": "^1.0.0", @@ -412,7 +419,7 @@ "spryker/config": "^3.0.0", "spryker/configurable-bundle": "^2.0.0", "spryker/configurable-bundle-cart": "^1.0.0", - "spryker/configurable-bundle-carts-rest-api": "^0.1.0", + "spryker/configurable-bundle-carts-rest-api": "^1.0.0", "spryker/configurable-bundle-data-import": "^0.2.0", "spryker/configurable-bundle-gui": "^1.0.0", "spryker/configurable-bundle-gui-extension": "^1.0.0", @@ -734,6 +741,7 @@ "spryker/oms-multi-thread": "^1.0.0", "spryker/oms-product-offer-reservation": "^1.0.0", "spryker/oms-rest-api": "^0.1.0", + "spryker/order-amendments-rest-api": "^0.1.0", "spryker/order-custom-reference": "^1.0.0", "spryker/order-custom-reference-gui": "^1.0.0", "spryker/order-matrix": "^1.0.0", @@ -1045,6 +1053,9 @@ "spryker/sales-merchant-portal-gui": "^3.0.0", "spryker/sales-merchant-portal-gui-extension": "^1.0.0", "spryker/sales-oms": "^0.1.0", + "spryker/sales-order-amendment": "^0.1.0", + "spryker/sales-order-amendment-extension": "^1.0.0", + "spryker/sales-order-amendment-oms": "^0.1.0", "spryker/sales-order-threshold": "^1.0.0", "spryker/sales-order-threshold-data-import": "^0.1.0", "spryker/sales-order-threshold-extension": "^1.0.0", diff --git a/composer.lock b/composer.lock index 4a009c342f..2abed536c7 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": "c565665cdc8d23238100994554009313", + "content-hash": "c869772247e06209dc7c398581b9ebf5", "packages": [ { "name": "async-aws/core", @@ -7916,27 +7916,29 @@ }, { "name": "spryker-shop/availability-widget", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/availability-widget.git", - "reference": "74c79cd54b4be6e2790dad0c6fa7a4fea4dd69a2" + "reference": "9970e6136d7067b0986664b7519c6f444ec8f3d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/availability-widget/zipball/74c79cd54b4be6e2790dad0c6fa7a4fea4dd69a2", - "reference": "74c79cd54b4be6e2790dad0c6fa7a4fea4dd69a2", + "url": "https://api.github.com/repos/spryker-shop/availability-widget/zipball/9970e6136d7067b0986664b7519c6f444ec8f3d4", + "reference": "9970e6136d7067b0986664b7519c6f444ec8f3d4", "shasum": "" }, "require": { - "php": ">=7.1", + "php": ">=8.2", + "spryker-shop/cart-reorder-page-extension": "^1.0.0", "spryker-shop/shop-ui": "^1.0.0", - "spryker/kernel": "^3.24.0" + "spryker/availability-storage": "^2.2.0", + "spryker/kernel": "^3.30.0", + "spryker/transfer": "^3.25.0" }, "require-dev": { "spryker-shop/product-detail-page": "*", - "spryker/code-sniffer": "*", - "spryker/testify": "*" + "spryker/code-sniffer": "*" }, "suggest": { "spryker-shop/product-detail-page": "Widget plugins are available for this module." @@ -7958,9 +7960,9 @@ ], "description": "AvailabilityWidget module", "support": { - "source": "https://github.com/spryker-shop/availability-widget/tree/master" + "source": "https://github.com/spryker-shop/availability-widget/tree/1.2.0" }, - "time": "2019-03-04T16:59:14+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/barcode-widget", @@ -8353,6 +8355,111 @@ }, "time": "2024-05-22T10:49:07+00:00" }, + { + "name": "spryker-shop/cart-reorder-page", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker-shop/cart-reorder-page.git", + "reference": "211af14ac81d206ecf4ae2daa7597b5c6b8e97c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker-shop/cart-reorder-page/zipball/211af14ac81d206ecf4ae2daa7597b5c6b8e97c9", + "reference": "211af14ac81d206ecf4ae2daa7597b5c6b8e97c9", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker-shop/cart-reorder-page-extension": "^1.0.0", + "spryker-shop/shop-application": "^1.0.0", + "spryker-shop/shop-ui": "^1.0.0", + "spryker/application": "^3.0.0", + "spryker/cart-reorder": "^0.1.0", + "spryker/customer": "^7.4.0", + "spryker/kernel": "^3.52.0", + "spryker/symfony": "^3.1.0", + "spryker/transfer": "^3.27.0", + "spryker/zed-request": "^3.6.0" + }, + "require-dev": { + "spryker-shop/customer-page": "*", + "spryker/code-sniffer": "*", + "spryker/router": "*" + }, + "suggest": { + "spryker-shop/cart-page": "The default successful reorder redirect is heading to a cart controller.", + "spryker-shop/customer-page": "The default failure reorder redirect is heading to a customer controller.", + "spryker/router": "Use this module when you want to use the Router.", + "spryker/silex": "If you want use the widget's router provider." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "SprykerShop\\": "src/SprykerShop/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorderPage module", + "support": { + "source": "https://github.com/spryker-shop/cart-reorder-page/tree/0.1.0" + }, + "time": "2024-11-15T17:27:31+00:00" + }, + { + "name": "spryker-shop/cart-reorder-page-extension", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/spryker-shop/cart-reorder-page-extension.git", + "reference": "444ae83dfb495e3af9abb26f074baf2b9315e500" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker-shop/cart-reorder-page-extension/zipball/444ae83dfb495e3af9abb26f074baf2b9315e500", + "reference": "444ae83dfb495e3af9abb26f074baf2b9315e500", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*", + "spryker/symfony": "*" + }, + "suggest": { + "spryker/symfony": "If you want to use plugins with Symfony components." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "SprykerShop\\": "src/SprykerShop/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorderPageExtension module", + "support": { + "source": "https://github.com/spryker-shop/cart-reorder-page-extension/tree/1.0.0" + }, + "time": "2024-11-15T17:27:31+00:00" + }, { "name": "spryker-shop/catalog-page", "version": "1.27.1", @@ -10027,16 +10134,16 @@ }, { "name": "spryker-shop/customer-page", - "version": "2.55.1", + "version": "2.56.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/customer-page.git", - "reference": "63ace6306110ba135ad5c008c152617b87244b20" + "reference": "e5f0294b283694714ce8eba96392e99738fc0905" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/customer-page/zipball/63ace6306110ba135ad5c008c152617b87244b20", - "reference": "63ace6306110ba135ad5c008c152617b87244b20", + "url": "https://api.github.com/repos/spryker-shop/customer-page/zipball/e5f0294b283694714ce8eba96392e99738fc0905", + "reference": "e5f0294b283694714ce8eba96392e99738fc0905", "shasum": "" }, "require": { @@ -10088,6 +10195,7 @@ "suggest": { "spryker-shop/business-on-behalf-widget": "If you want to use BusinessOnBehalfWidget or MenuItemBusinessOnBehalfWidgetPlugin.", "spryker-shop/cart-note-widget": "If you want to use components from module CartNoteWidget or CartNoteOrderNoteWidgetPlugin.", + "spryker-shop/cart-reorder-page": "If you want to use CartReorderItemCheckboxWidget or CartReorderWidget.", "spryker-shop/customer-reorder-widget": "If you want to use CustomerReorderItemCheckboxWidget or CustomerReorderWidgetPlugin, for support of Split Delivery feature use (^6.2.0)", "spryker-shop/gift-card-widget": "If you want to use components from module GiftCardWidget.", "spryker-shop/home-page": "Widget plugins are available for this module.", @@ -10119,9 +10227,9 @@ ], "description": "CustomerPage module", "support": { - "source": "https://github.com/spryker-shop/customer-page/tree/2.55.1" + "source": "https://github.com/spryker-shop/customer-page/tree/2.56.0" }, - "time": "2024-11-04T14:07:50+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/customer-page-extension", @@ -10167,20 +10275,20 @@ }, { "name": "spryker-shop/customer-reorder-widget", - "version": "6.16.0", + "version": "6.17.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/customer-reorder-widget.git", - "reference": "73e355076dffc7e2b722261af32746706cb6b66b" + "reference": "fd96558f8b21ac18810b5a144c1e9450d4b8cc98" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/customer-reorder-widget/zipball/73e355076dffc7e2b722261af32746706cb6b66b", - "reference": "73e355076dffc7e2b722261af32746706cb6b66b", + "url": "https://api.github.com/repos/spryker-shop/customer-reorder-widget/zipball/fd96558f8b21ac18810b5a144c1e9450d4b8cc98", + "reference": "fd96558f8b21ac18810b5a144c1e9450d4b8cc98", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker-shop/customer-reorder-widget-extension": "^1.3.0", "spryker-shop/shop-application": "^1.0.0", "spryker-shop/shop-ui": "^1.0.0", @@ -10228,26 +10336,27 @@ ], "description": "CustomerReorderWidget module", "support": { - "source": "https://github.com/spryker-shop/customer-reorder-widget/tree/6.16.0" + "source": "https://github.com/spryker-shop/customer-reorder-widget/tree/6.17.0" }, - "time": "2023-11-02T20:09:30+00:00" + "abandoned": true, + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/customer-reorder-widget-extension", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/customer-reorder-widget-extension.git", - "reference": "7713a94b4e82f52dcfbbd2c22827864dc88f611e" + "reference": "7bb317c242b70a4d51c3b77a66b8ddbcad669a3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/customer-reorder-widget-extension/zipball/7713a94b4e82f52dcfbbd2c22827864dc88f611e", - "reference": "7713a94b4e82f52dcfbbd2c22827864dc88f611e", + "url": "https://api.github.com/repos/spryker-shop/customer-reorder-widget-extension/zipball/7bb317c242b70a4d51c3b77a66b8ddbcad669a3a", + "reference": "7bb317c242b70a4d51c3b77a66b8ddbcad669a3a", "shasum": "" }, "require": { - "php": ">=7.4" + "php": ">=8.2" }, "require-dev": { "spryker/code-sniffer": "*" @@ -10272,9 +10381,10 @@ ], "description": "CustomerReorderWidgetExtension module", "support": { - "source": "https://github.com/spryker-shop/customer-reorder-widget-extension/tree/1.3.0" + "source": "https://github.com/spryker-shop/customer-reorder-widget-extension/tree/1.4.0" }, - "time": "2022-06-21T15:12:58+00:00" + "abandoned": true, + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/customer-validation-page", @@ -12423,25 +12533,27 @@ }, { "name": "spryker-shop/product-bundle-widget", - "version": "1.6.0", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/product-bundle-widget.git", - "reference": "da4f6bd702d5dbc24048b86899a0f216e9e30639" + "reference": "9e81911c771eab706127e47216a4d75290b94e03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/product-bundle-widget/zipball/da4f6bd702d5dbc24048b86899a0f216e9e30639", - "reference": "da4f6bd702d5dbc24048b86899a0f216e9e30639", + "url": "https://api.github.com/repos/spryker-shop/product-bundle-widget/zipball/9e81911c771eab706127e47216a4d75290b94e03", + "reference": "9e81911c771eab706127e47216a4d75290b94e03", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", + "spryker-shop/cart-reorder-page-extension": "^1.0.0", "spryker-shop/customer-reorder-widget-extension": "^1.3.0", "spryker-shop/shop-ui": "^1.0.0", "spryker/kernel": "^3.30.0", "spryker/product-bundle": "^4.1.0 || ^6.0.0 || ^7.0.0", - "spryker/transfer": "^3.25.0", + "spryker/symfony": "^3.0.0", + "spryker/transfer": "^3.27.0", "spryker/twig": "^3.18.0" }, "require-dev": { @@ -12472,9 +12584,9 @@ ], "description": "ProductBundleWidget module", "support": { - "source": "https://github.com/spryker-shop/product-bundle-widget/tree/1.6.0" + "source": "https://github.com/spryker-shop/product-bundle-widget/tree/1.7.0" }, - "time": "2022-11-24T12:58:31+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/product-category-widget", @@ -14928,20 +15040,20 @@ }, { "name": "spryker-shop/sales-configurable-bundle-widget", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/sales-configurable-bundle-widget.git", - "reference": "9b76bd2cb22b7d1ae5fea7d004c0a8a5994c57c6" + "reference": "a129f262a798abe784fb563b8fdedc5afd7db3c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/sales-configurable-bundle-widget/zipball/9b76bd2cb22b7d1ae5fea7d004c0a8a5994c57c6", - "reference": "9b76bd2cb22b7d1ae5fea7d004c0a8a5994c57c6", + "url": "https://api.github.com/repos/spryker-shop/sales-configurable-bundle-widget/zipball/a129f262a798abe784fb563b8fdedc5afd7db3c4", + "reference": "a129f262a798abe784fb563b8fdedc5afd7db3c4", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker-shop/customer-reorder-widget-extension": "^1.0.0", "spryker-shop/shop-ui": "^1.40.0", "spryker/kernel": "^3.33.0", @@ -14954,6 +15066,7 @@ "spryker/code-sniffer": "*" }, "suggest": { + "spryker-shop/cart-reorder-page": "If you want to use CartReorderItemCheckboxWidget.", "spryker-shop/configurable-bundle-note-widget": "If you want to use configurable bundle note feature." }, "type": "library", @@ -14973,9 +15086,67 @@ ], "description": "SalesConfigurableBundleWidget module", "support": { - "source": "https://github.com/spryker-shop/sales-configurable-bundle-widget/tree/1.5.0" + "source": "https://github.com/spryker-shop/sales-configurable-bundle-widget/tree/1.6.0" }, - "time": "2022-11-24T12:58:31+00:00" + "time": "2024-11-15T17:27:31+00:00" + }, + { + "name": "spryker-shop/sales-order-amendment-widget", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker-shop/sales-order-amendment-widget.git", + "reference": "9be83ac480955709de2f381ffd000ca1c863088a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker-shop/sales-order-amendment-widget/zipball/9be83ac480955709de2f381ffd000ca1c863088a", + "reference": "9be83ac480955709de2f381ffd000ca1c863088a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker-shop/shop-application": "^1.0.0", + "spryker-shop/shop-ui": "^1.0.0", + "spryker/application": "^3.0.0", + "spryker/cart-reorder": "^0.1.0", + "spryker/customer": "^7.4.0", + "spryker/kernel": "^3.52.0", + "spryker/sales-order-amendment": "^0.1.0", + "spryker/symfony": "^3.1.0", + "spryker/transfer": "^3.27.0", + "spryker/zed-request": "^3.6.0" + }, + "require-dev": { + "spryker/code-sniffer": "*", + "spryker/router": "*" + }, + "suggest": { + "spryker-shop/cart-page": "The default successful amendment redirect is heading to a cart controller.", + "spryker-shop/customer-page": "The default failure amendment redirect is heading to a customer controller.", + "spryker/router": "Use this module when you want to use the Router.", + "spryker/silex": "If you want use the widget's router provider." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "SprykerShop\\": "src/SprykerShop/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "SalesOrderAmendmentWidget module", + "support": { + "source": "https://github.com/spryker-shop/sales-order-amendment-widget/tree/0.1.0" + }, + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/sales-order-threshold-widget", @@ -15076,20 +15247,20 @@ }, { "name": "spryker-shop/sales-product-configuration-widget", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/sales-product-configuration-widget.git", - "reference": "906543bed0d55a0c9eef19a1acdb7272b38997b1" + "reference": "2fcee6d451e4cc6d5c33ba60cf1bc2ec36d6cec5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/sales-product-configuration-widget/zipball/906543bed0d55a0c9eef19a1acdb7272b38997b1", - "reference": "906543bed0d55a0c9eef19a1acdb7272b38997b1", + "url": "https://api.github.com/repos/spryker-shop/sales-product-configuration-widget/zipball/2fcee6d451e4cc6d5c33ba60cf1bc2ec36d6cec5", + "reference": "2fcee6d451e4cc6d5c33ba60cf1bc2ec36d6cec5", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker-shop/customer-reorder-widget-extension": "^1.1.0", "spryker-shop/sales-product-configuration-widget-extension": "^1.0.0", "spryker-shop/shop-ui": "^1.54.0", @@ -15117,9 +15288,9 @@ ], "description": "SalesProductConfigurationWidget module", "support": { - "source": "https://github.com/spryker-shop/sales-product-configuration-widget/tree/1.0.0" + "source": "https://github.com/spryker-shop/sales-product-configuration-widget/tree/1.1.0" }, - "time": "2022-11-23T07:38:29+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/sales-product-configuration-widget-extension", @@ -15164,16 +15335,16 @@ }, { "name": "spryker-shop/sales-return-page", - "version": "1.9.0", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/sales-return-page.git", - "reference": "d66400ab4108b891b2f0a401b5edd7a2210c39b6" + "reference": "f57f53cb0b32987e5254fbe9c3e53f437453a4f6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/sales-return-page/zipball/d66400ab4108b891b2f0a401b5edd7a2210c39b6", - "reference": "d66400ab4108b891b2f0a401b5edd7a2210c39b6", + "url": "https://api.github.com/repos/spryker-shop/sales-return-page/zipball/f57f53cb0b32987e5254fbe9c3e53f437453a4f6", + "reference": "f57f53cb0b32987e5254fbe9c3e53f437453a4f6", "shasum": "" }, "require": { @@ -15226,9 +15397,9 @@ ], "description": "SalesReturnPage module", "support": { - "source": "https://github.com/spryker-shop/sales-return-page/tree/1.9.0" + "source": "https://github.com/spryker-shop/sales-return-page/tree/1.10.0" }, - "time": "2024-10-03T08:10:37+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/sales-return-page-extension", @@ -15277,20 +15448,20 @@ }, { "name": "spryker-shop/sales-service-point-widget", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/sales-service-point-widget.git", - "reference": "1ca1cc9b08fe72e40e1469424aee063a5cb03bf5" + "reference": "36c0d354cbe32745ff0fbf8a3cc3e8681778ade1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/sales-service-point-widget/zipball/1ca1cc9b08fe72e40e1469424aee063a5cb03bf5", - "reference": "1ca1cc9b08fe72e40e1469424aee063a5cb03bf5", + "url": "https://api.github.com/repos/spryker-shop/sales-service-point-widget/zipball/36c0d354cbe32745ff0fbf8a3cc3e8681778ade1", + "reference": "36c0d354cbe32745ff0fbf8a3cc3e8681778ade1", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker-shop/customer-reorder-widget-extension": "^1.2.0", "spryker-shop/shop-ui": "^1.72.0", "spryker/kernel": "^3.52.0", @@ -15322,9 +15493,9 @@ ], "description": "SalesServicePointWidget module", "support": { - "source": "https://github.com/spryker-shop/sales-service-point-widget/tree/1.1.0" + "source": "https://github.com/spryker-shop/sales-service-point-widget/tree/1.2.0" }, - "time": "2023-11-21T09:36:32+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/security-blocker-page", @@ -15797,20 +15968,20 @@ }, { "name": "spryker-shop/shipment-page", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spryker-shop/shipment-page.git", - "reference": "0490431bea70526c23c72884a59d6bccad46b1e6" + "reference": "d49898e98e70fbf1cb9df09ce50b3b9c706f5dd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker-shop/shipment-page/zipball/0490431bea70526c23c72884a59d6bccad46b1e6", - "reference": "0490431bea70526c23c72884a59d6bccad46b1e6", + "url": "https://api.github.com/repos/spryker-shop/shipment-page/zipball/d49898e98e70fbf1cb9df09ce50b3b9c706f5dd4", + "reference": "d49898e98e70fbf1cb9df09ce50b3b9c706f5dd4", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker-shop/customer-reorder-widget-extension": "^1.2.0", "spryker/kernel": "^3.52.0", "spryker/shipment": "^8.0.0" @@ -15836,9 +16007,9 @@ ], "description": "ShipmentPage module", "support": { - "source": "https://github.com/spryker-shop/shipment-page/tree/1.0.0" + "source": "https://github.com/spryker-shop/shipment-page/tree/1.1.0" }, - "time": "2023-08-23T09:59:39+00:00" + "time": "2024-11-15T17:27:31+00:00" }, { "name": "spryker-shop/shipment-type-widget", @@ -19086,16 +19257,16 @@ }, { "name": "spryker/availability", - "version": "9.24.0", + "version": "9.25.0", "source": { "type": "git", "url": "https://github.com/spryker/availability.git", - "reference": "6201007bd6284d2832f02b128ab1c1711876790f" + "reference": "b0d50af72e15ba726ea12a0b5f00ebe03d17684f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/availability/zipball/6201007bd6284d2832f02b128ab1c1711876790f", - "reference": "6201007bd6284d2832f02b128ab1c1711876790f", + "url": "https://api.github.com/repos/spryker/availability/zipball/b0d50af72e15ba726ea12a0b5f00ebe03d17684f", + "reference": "b0d50af72e15ba726ea12a0b5f00ebe03d17684f", "shasum": "" }, "require": { @@ -19152,35 +19323,43 @@ ], "description": "Availability module", "support": { - "source": "https://github.com/spryker/availability/tree/9.24.0" + "source": "https://github.com/spryker/availability/tree/9.25.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/availability-cart-connector", - "version": "7.3.0", + "version": "7.4.0", "source": { "type": "git", "url": "https://github.com/spryker/availability-cart-connector.git", - "reference": "70ee27a58f616ffc50b41a095b81707a7f5a8633" + "reference": "7d8d79c5ee95710a420451c19ee057e4987de080" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/availability-cart-connector/zipball/70ee27a58f616ffc50b41a095b81707a7f5a8633", - "reference": "70ee27a58f616ffc50b41a095b81707a7f5a8633", + "url": "https://api.github.com/repos/spryker/availability-cart-connector/zipball/7d8d79c5ee95710a420451c19ee057e4987de080", + "reference": "7d8d79c5ee95710a420451c19ee057e4987de080", "shasum": "" }, "require": { - "php": ">=7.3", - "spryker/availability": "^9.1.0", + "php": ">=8.2", + "spryker/availability": "^9.25.0", "spryker/availability-cart-connector-extension": "^1.0.0", "spryker/cart-extension": "^2.1.0 || ^3.0.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/decimal-object": "^1.0.0", "spryker/kernel": "^3.30.0", - "spryker/transfer": "^3.18.0" + "spryker/messenger": "^3.0.0", + "spryker/transfer": "^3.27.0" }, "require-dev": { - "spryker/code-sniffer": "*" + "spryker/code-sniffer": "*", + "spryker/container": "*", + "spryker/product": "*", + "spryker/propel": "*", + "spryker/stock": "*", + "spryker/store": "*", + "spryker/testify": "*" }, "suggest": { "spryker/cart": "If you want to use Cart plugins." @@ -19202,9 +19381,9 @@ ], "description": "AvailabilityCartConnector module", "support": { - "source": "https://github.com/spryker/availability-cart-connector/tree/7.3.0" + "source": "https://github.com/spryker/availability-cart-connector/tree/7.4.0" }, - "time": "2021-06-03T11:57:12+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/availability-cart-connector-extension", @@ -20585,30 +20764,33 @@ }, { "name": "spryker/cart-note", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/spryker/cart-note.git", - "reference": "b81b1f7e07499d602693c09e083cb9dd8824f6ef" + "reference": "40250295344150b56e607ef050e5951164e86e5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/cart-note/zipball/b81b1f7e07499d602693c09e083cb9dd8824f6ef", - "reference": "b81b1f7e07499d602693c09e083cb9dd8824f6ef", + "url": "https://api.github.com/repos/spryker/cart-note/zipball/40250295344150b56e607ef050e5951164e86e5c", + "reference": "40250295344150b56e607ef050e5951164e86e5c", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker/cart-note-extension": "^1.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/checkout-extension": "^1.0.0", "spryker/kernel": "^3.33.0", "spryker/quote": "^2.0.0", "spryker/sales": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^10.0.0 || ^11.0.0", "spryker/symfony": "^3.0.0", + "spryker/transfer": "^3.27.0", "spryker/zed-request": "^3.0.0" }, "require-dev": { - "spryker/code-sniffer": "*" + "spryker/code-sniffer": "*", + "spryker/testify": "*" }, "type": "library", "extra": { @@ -20627,9 +20809,9 @@ ], "description": "CartNote module", "support": { - "source": "https://github.com/spryker/cart-note/tree/1.1.0" + "source": "https://github.com/spryker/cart-note/tree/1.2.0" }, - "time": "2023-01-24T16:01:46+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/cart-note-extension", @@ -20945,6 +21127,199 @@ }, "time": "2020-05-29T13:08:37+00:00" }, + { + "name": "spryker/cart-reorder", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/cart-reorder.git", + "reference": "72576b2e360575e3f56fc0ac6fa0a5a4f7cd177b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/cart-reorder/zipball/72576b2e360575e3f56fc0ac6fa0a5a4f7cd177b", + "reference": "72576b2e360575e3f56fc0ac6fa0a5a4f7cd177b", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/cart": "^7.0.0", + "spryker/cart-reorder-extension": "^1.0.0", + "spryker/kernel": "^3.33.0", + "spryker/quote": "^2.0.0", + "spryker/sales": "^11.0.0", + "spryker/transfer": "^3.27.0", + "spryker/zed-request": "^3.0.0" + }, + "require-dev": { + "spryker/code-sniffer": "*", + "spryker/container": "*", + "spryker/customer": "*", + "spryker/oms": "*", + "spryker/propel": "*", + "spryker/store": "*", + "spryker/testify": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorder module", + "support": { + "source": "https://github.com/spryker/cart-reorder/tree/0.1.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, + { + "name": "spryker/cart-reorder-extension", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/cart-reorder-extension.git", + "reference": "bb99458ee081a508a3672c1682d29ec118c68fbd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/cart-reorder-extension/zipball/bb99458ee081a508a3672c1682d29ec118c68fbd", + "reference": "bb99458ee081a508a3672c1682d29ec118c68fbd", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorderExtension module", + "support": { + "source": "https://github.com/spryker/cart-reorder-extension/tree/1.0.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, + { + "name": "spryker/cart-reorder-rest-api", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/cart-reorder-rest-api.git", + "reference": "a29489e26a9d158f226d7e36c5e4fe6585fb14e9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/cart-reorder-rest-api/zipball/a29489e26a9d158f226d7e36c5e4fe6585fb14e9", + "reference": "a29489e26a9d158f226d7e36c5e4fe6585fb14e9", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/cart-reorder": "^0.1.0", + "spryker/cart-reorder-rest-api-extension": "^1.0.0", + "spryker/carts-rest-api": "^5.18.0", + "spryker/glossary-storage": "^1.0.0", + "spryker/glue-application": "^1.47.0", + "spryker/glue-application-extension": "^1.0.0", + "spryker/kernel": "^3.30.0", + "spryker/symfony": "^3.0.0", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*" + }, + "suggest": { + "spryker/auth-rest-api": "If you want to authorize and authenticate customers via access tokens.", + "spryker/authorization": "If you want to use multiple authorization strategies, minimum required version: 1.2.0.", + "spryker/rest-request-validator": "If you want to use rest request validation." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorderRestApi module", + "support": { + "source": "https://github.com/spryker/cart-reorder-rest-api/tree/0.1.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, + { + "name": "spryker/cart-reorder-rest-api-extension", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/cart-reorder-rest-api-extension.git", + "reference": "754347e046a404c2d2549be094e08833ae13f76c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/cart-reorder-rest-api-extension/zipball/754347e046a404c2d2549be094e08833ae13f76c", + "reference": "754347e046a404c2d2549be094e08833ae13f76c", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "CartReorderRestApiExtension module", + "support": { + "source": "https://github.com/spryker/cart-reorder-rest-api-extension/tree/1.0.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, { "name": "spryker/cart-variant", "version": "2.1.0", @@ -28270,16 +28645,16 @@ }, { "name": "spryker/configurable-bundle", - "version": "2.4.0", + "version": "2.5.0", "source": { "type": "git", "url": "https://github.com/spryker/configurable-bundle.git", - "reference": "4e873fbeccc76354d7706a0eefa30561f15328e7" + "reference": "baaec8d6626ba2fa8b2908805c30f3650e1a1f1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/configurable-bundle/zipball/4e873fbeccc76354d7706a0eefa30561f15328e7", - "reference": "4e873fbeccc76354d7706a0eefa30561f15328e7", + "url": "https://api.github.com/repos/spryker/configurable-bundle/zipball/baaec8d6626ba2fa8b2908805c30f3650e1a1f1a", + "reference": "baaec8d6626ba2fa8b2908805c30f3650e1a1f1a", "shasum": "" }, "require": { @@ -28293,6 +28668,7 @@ "spryker/product-list": "^1.5.0", "spryker/product-list-extension": "^1.1.0", "spryker/propel-orm": "^1.0.0", + "spryker/transfer": "^3.25.0", "spryker/util-text": "^1.0.0", "spryker/uuid-behavior": "^1.0.0" }, @@ -28321,29 +28697,29 @@ ], "description": "ConfigurableBundle module", "support": { - "source": "https://github.com/spryker/configurable-bundle/tree/2.4.0" + "source": "https://github.com/spryker/configurable-bundle/tree/2.5.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/configurable-bundle-cart", - "version": "1.5.0", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spryker/configurable-bundle-cart.git", - "reference": "52758274ffb656e2802a41d393e0e168059a8727" + "reference": "54e1421048b77f3c9e24002cde400a93c7d2acb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/configurable-bundle-cart/zipball/52758274ffb656e2802a41d393e0e168059a8727", - "reference": "52758274ffb656e2802a41d393e0e168059a8727", + "url": "https://api.github.com/repos/spryker/configurable-bundle-cart/zipball/54e1421048b77f3c9e24002cde400a93c7d2acb2", + "reference": "54e1421048b77f3c9e24002cde400a93c7d2acb2", "shasum": "" }, "require": { "php": ">=8.2", "spryker/cart": "^7.3.0", "spryker/cart-extension": "^1.10.0 || ^2.6.0 || ^4.2.0", - "spryker/configurable-bundle": "^1.0.0 || ^2.0.0", + "spryker/configurable-bundle": "^1.1.0 || ^2.5.0", "spryker/kernel": "^3.33.0" }, "require-dev": { @@ -28368,28 +28744,29 @@ ], "description": "ConfigurableBundleCart module", "support": { - "source": "https://github.com/spryker/configurable-bundle-cart/tree/1.5.0" + "source": "https://github.com/spryker/configurable-bundle-cart/tree/1.6.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/configurable-bundle-carts-rest-api", - "version": "0.1.3", + "version": "1.0.0", "source": { "type": "git", "url": "https://github.com/spryker/configurable-bundle-carts-rest-api.git", - "reference": "dda505e49137feb43cb8b459e043e41c89b85b65" + "reference": "6cc3aba3f279c7409228fdcaa1f45b4597fd1349" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/configurable-bundle-carts-rest-api/zipball/dda505e49137feb43cb8b459e043e41c89b85b65", - "reference": "dda505e49137feb43cb8b459e043e41c89b85b65", + "url": "https://api.github.com/repos/spryker/configurable-bundle-carts-rest-api/zipball/6cc3aba3f279c7409228fdcaa1f45b4597fd1349", + "reference": "6cc3aba3f279c7409228fdcaa1f45b4597fd1349", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker/carts-rest-api": "^5.7.0", "spryker/carts-rest-api-extension": "^1.5.0", + "spryker/configurable-bundle": "^2.5.0", "spryker/configurable-bundle-cart": "^1.3.0", "spryker/configurable-bundle-storage": "^2.1.0", "spryker/glossary-storage": "^1.5.0", @@ -28399,12 +28776,12 @@ "spryker/persistent-cart": "^3.4.0", "spryker/store": "^1.1.0", "spryker/symfony": "^3.0.0", + "spryker/transfer": "^3.25.0", "spryker/zed-request": "^3.0.0" }, "require-dev": { "spryker/cart": "*", "spryker/code-sniffer": "*", - "spryker/configurable-bundle": "*", "spryker/container": "*", "spryker/customer": "*", "spryker/product": "*", @@ -28429,9 +28806,9 @@ ], "description": "ConfigurableBundleCartsRestApi module", "support": { - "source": "https://github.com/spryker/configurable-bundle-carts-rest-api/tree/0.1.3" + "source": "https://github.com/spryker/configurable-bundle-carts-rest-api/tree/1.0.0" }, - "time": "2023-03-31T19:36:11+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/configurable-bundle-data-import", @@ -28590,24 +28967,26 @@ }, { "name": "spryker/configurable-bundle-note", - "version": "1.0.0", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spryker/configurable-bundle-note.git", - "reference": "4740b0bd9ecfb834a673a07ba86d624d7d1a7331" + "reference": "bb12deb913a83a6c77613eca2e61aa8175d52f18" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/configurable-bundle-note/zipball/4740b0bd9ecfb834a673a07ba86d624d7d1a7331", - "reference": "4740b0bd9ecfb834a673a07ba86d624d7d1a7331", + "url": "https://api.github.com/repos/spryker/configurable-bundle-note/zipball/bb12deb913a83a6c77613eca2e61aa8175d52f18", + "reference": "bb12deb913a83a6c77613eca2e61aa8175d52f18", "shasum": "" }, "require": { - "php": ">=7.2", + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/configurable-bundle": "^1.0.0 || ^2.0.0", "spryker/kernel": "^3.33.0", "spryker/quote": "^2.0.0", "spryker/sales-configurable-bundle": "^1.0.0", + "spryker/transfer": "^3.27.0", "spryker/zed-request": "^3.0.0" }, "require-dev": { @@ -28632,9 +29011,9 @@ ], "description": "ConfigurableBundleNote module", "support": { - "source": "https://github.com/spryker/configurable-bundle-note/tree/1.0.0" + "source": "https://github.com/spryker/configurable-bundle-note/tree/1.1.0" }, - "time": "2019-12-03T10:47:36+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/configurable-bundle-page-search", @@ -30241,22 +30620,23 @@ }, { "name": "spryker/currency", - "version": "4.3.0", + "version": "4.4.0", "source": { "type": "git", "url": "https://github.com/spryker/currency.git", - "reference": "dd023ea9e521e173e3777523762af734761ce30d" + "reference": "f20464e34ff832e0b328a452f06871541ad72155" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/currency/zipball/dd023ea9e521e173e3777523762af734761ce30d", - "reference": "dd023ea9e521e173e3777523762af734761ce30d", + "url": "https://api.github.com/repos/spryker/currency/zipball/f20464e34ff832e0b328a452f06871541ad72155", + "reference": "f20464e34ff832e0b328a452f06871541ad72155", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker/acl-merchant-portal-extension": "^1.0.0", "spryker/application-extension": "^1.1.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/currency-extension": "^1.0.0", "spryker/kernel": "^3.52.0", "spryker/propel-orm": "^1.0.0", @@ -30266,7 +30646,7 @@ "spryker/store": "^1.19.0", "spryker/store-extension": "^1.0.0", "spryker/symfony": "^3.0.0", - "spryker/transfer": "^3.25.0", + "spryker/transfer": "^3.27.0", "spryker/twig-extension": "^1.0.0", "spryker/zed-request": "^3.6.0", "spryker/zed-request-extension": "^1.1.0" @@ -30304,9 +30684,9 @@ ], "description": "Currency module", "support": { - "source": "https://github.com/spryker/currency/tree/4.3.0" + "source": "https://github.com/spryker/currency/tree/4.4.0" }, - "time": "2024-08-02T09:21:41+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/currency-data-import", @@ -38218,22 +38598,23 @@ }, { "name": "spryker/merchant-product", - "version": "1.7.0", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spryker/merchant-product.git", - "reference": "4429ca85fecd2bdfb4e406cef5f50c55ef1977ff" + "reference": "7dd46d56b3a694818366ca62126893d8b4ddb61d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/merchant-product/zipball/4429ca85fecd2bdfb4e406cef5f50c55ef1977ff", - "reference": "4429ca85fecd2bdfb4e406cef5f50c55ef1977ff", + "url": "https://api.github.com/repos/spryker/merchant-product/zipball/7dd46d56b3a694818366ca62126893d8b4ddb61d", + "reference": "7dd46d56b3a694818366ca62126893d8b4ddb61d", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker/acl-merchant-portal-extension": "^1.0.0", "spryker/cart-extension": "^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/kernel": "^3.33.0", "spryker/locale": "^3.0.0 || ^4.0.0", "spryker/merchant": "^3.0.0", @@ -38270,9 +38651,9 @@ ], "description": "MerchantProduct module", "support": { - "source": "https://github.com/spryker/merchant-product/tree/1.7.0" + "source": "https://github.com/spryker/merchant-product/tree/1.8.0" }, - "time": "2024-05-06T12:15:28+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/merchant-product-approval", @@ -38468,21 +38849,22 @@ }, { "name": "spryker/merchant-product-offer", - "version": "1.7.1", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spryker/merchant-product-offer.git", - "reference": "94822704f11215ae7b3190c560221647160e0247" + "reference": "519a973e1fda4a8979c137ff35702d3494361f4b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/merchant-product-offer/zipball/94822704f11215ae7b3190c560221647160e0247", - "reference": "94822704f11215ae7b3190c560221647160e0247", + "url": "https://api.github.com/repos/spryker/merchant-product-offer/zipball/519a973e1fda4a8979c137ff35702d3494361f4b", + "reference": "519a973e1fda4a8979c137ff35702d3494361f4b", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker/acl-merchant-portal-extension": "^1.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/kernel": "^3.33.0", "spryker/merchant": "^3.0.0", "spryker/product-extension": "^1.3.0", @@ -38495,8 +38877,6 @@ "spryker/code-sniffer": "*", "spryker/container": "*", "spryker/product": "*", - "spryker/product-offer-stock": "*", - "spryker/product-offer-validity": "*", "spryker/propel": "*", "spryker/store": "*", "spryker/testify": "*" @@ -38518,9 +38898,9 @@ ], "description": "MerchantProductOffer module", "support": { - "source": "https://github.com/spryker/merchant-product-offer/tree/1.7.1" + "source": "https://github.com/spryker/merchant-product-offer/tree/1.8.0" }, - "time": "2023-03-31T19:36:11+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/merchant-product-offer-data-import", @@ -42769,20 +43149,21 @@ }, { "name": "spryker/multi-cart", - "version": "1.13.0", + "version": "1.14.0", "source": { "type": "git", "url": "https://github.com/spryker/multi-cart.git", - "reference": "13a13ab9a10c6f6d98d2171ddd22a794ba72de8a" + "reference": "41ed1e5dfea1ca680182e46ff5fe619985deef74" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/multi-cart/zipball/13a13ab9a10c6f6d98d2171ddd22a794ba72de8a", - "reference": "13a13ab9a10c6f6d98d2171ddd22a794ba72de8a", + "url": "https://api.github.com/repos/spryker/multi-cart/zipball/41ed1e5dfea1ca680182e46ff5fe619985deef74", + "reference": "41ed1e5dfea1ca680182e46ff5fe619985deef74", "shasum": "" }, "require": { "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/customer": "^7.0.0", "spryker/kernel": "^3.33.0", "spryker/messenger": "^3.0.0", @@ -42793,7 +43174,7 @@ "spryker/quote-extension": "^1.1.0", "spryker/session": "^3.0.0 || ^4.0.0", "spryker/store": "^1.19.0", - "spryker/transfer": "^3.25.0", + "spryker/transfer": "^3.27.0", "spryker/util-date-time": "^1.0.0", "spryker/zed-request": "^3.6.0" }, @@ -42820,9 +43201,9 @@ ], "description": "MultiCart module", "support": { - "source": "https://github.com/spryker/multi-cart/tree/1.13.0" + "source": "https://github.com/spryker/multi-cart/tree/1.14.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/multi-cart-data-import", @@ -44597,16 +44978,16 @@ }, { "name": "spryker/oms", - "version": "11.37.2", + "version": "11.38.0", "source": { "type": "git", "url": "https://github.com/spryker/oms.git", - "reference": "a903bfd89882e759636660f337bfd62ceb5700de" + "reference": "3c47c5bb9e9af118c3aa57b2ff9ab84ab0ae4995" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/oms/zipball/a903bfd89882e759636660f337bfd62ceb5700de", - "reference": "a903bfd89882e759636660f337bfd62ceb5700de", + "url": "https://api.github.com/repos/spryker/oms/zipball/3c47c5bb9e9af118c3aa57b2ff9ab84ab0ae4995", + "reference": "3c47c5bb9e9af118c3aa57b2ff9ab84ab0ae4995", "shasum": "" }, "require": { @@ -44664,9 +45045,9 @@ ], "description": "Oms module", "support": { - "source": "https://github.com/spryker/oms/tree/11.37.2" + "source": "https://github.com/spryker/oms/tree/11.38.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/oms-discount-connector", @@ -44905,27 +45286,80 @@ }, "time": "2020-05-08T15:57:56+00:00" }, + { + "name": "spryker/order-amendments-rest-api", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/order-amendments-rest-api.git", + "reference": "0e97c2ba55d1997631421aeaccd12a430d4c039a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/order-amendments-rest-api/zipball/0e97c2ba55d1997631421aeaccd12a430d4c039a", + "reference": "0e97c2ba55d1997631421aeaccd12a430d4c039a", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/cart-reorder-rest-api-extension": "^1.0.0", + "spryker/carts-rest-api-extension": "^1.7.0", + "spryker/kernel": "^3.30.0", + "spryker/sales-order-amendment": "^0.1.0", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*" + }, + "suggest": { + "spryker/auth-rest-api": "If you want to authorize and authenticate customers via access tokens.", + "spryker/authorization": "If you want to use multiple authorization strategies, minimum required version: 1.2.0.", + "spryker/rest-request-validator": "If you want to use rest request validation." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "OrderAmendmentsRestApi module", + "support": { + "source": "https://github.com/spryker/order-amendments-rest-api/tree/0.1.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, { "name": "spryker/order-custom-reference", - "version": "1.0.1", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spryker/order-custom-reference.git", - "reference": "e29fa86b0b6c25bcb1981a8fb121cd695ebb0a6e" + "reference": "2bb8f09b86efa23e8149027919de971a2409bfe9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/order-custom-reference/zipball/e29fa86b0b6c25bcb1981a8fb121cd695ebb0a6e", - "reference": "e29fa86b0b6c25bcb1981a8fb121cd695ebb0a6e", + "url": "https://api.github.com/repos/spryker/order-custom-reference/zipball/2bb8f09b86efa23e8149027919de971a2409bfe9", + "reference": "2bb8f09b86efa23e8149027919de971a2409bfe9", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/kernel": "^3.33.0", "spryker/persistent-cart": "^3.0.0", "spryker/quote-extension": "^1.6.0", "spryker/sales": "^11.0.0", - "spryker/sales-extension": "^1.3.0" + "spryker/sales-extension": "^1.3.0", + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/code-sniffer": "*", @@ -44952,9 +45386,9 @@ ], "description": "OrderCustomReference module", "support": { - "source": "https://github.com/spryker/order-custom-reference/tree/1.0.1" + "source": "https://github.com/spryker/order-custom-reference/tree/1.1.0" }, - "time": "2023-03-31T19:36:11+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/order-custom-reference-gui", @@ -45683,16 +46117,16 @@ }, { "name": "spryker/persistent-cart", - "version": "3.9.0", + "version": "3.10.0", "source": { "type": "git", "url": "https://github.com/spryker/persistent-cart.git", - "reference": "d4c36c445e94da3ce82658f524bcf2e69f8703b7" + "reference": "26af3c15a3c64719b349728d635bdec2e98f70bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/persistent-cart/zipball/d4c36c445e94da3ce82658f524bcf2e69f8703b7", - "reference": "d4c36c445e94da3ce82658f524bcf2e69f8703b7", + "url": "https://api.github.com/repos/spryker/persistent-cart/zipball/26af3c15a3c64719b349728d635bdec2e98f70bb", + "reference": "26af3c15a3c64719b349728d635bdec2e98f70bb", "shasum": "" }, "require": { @@ -45700,6 +46134,7 @@ "spryker/calculation-extension": "^1.1.0", "spryker/cart": "^5.12.0 || ^7.5.0", "spryker/cart-extension": "^1.11.0 || ^2.7.0 || ^4.3.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/carts-rest-api-extension": "^1.1.0", "spryker/customer": "^6.0.0 || ^7.0.0", "spryker/kernel": "^3.30.0", @@ -45709,6 +46144,7 @@ "spryker/quote": "^2.8.0", "spryker/quote-extension": "^1.8.0", "spryker/store": "^1.9.0", + "spryker/transfer": "^3.27.0", "spryker/zed-request": "^3.6.0" }, "require-dev": { @@ -45735,9 +46171,9 @@ ], "description": "PersistentCart module", "support": { - "source": "https://github.com/spryker/persistent-cart/tree/3.9.0" + "source": "https://github.com/spryker/persistent-cart/tree/3.10.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/persistent-cart-extension", @@ -46277,25 +46713,27 @@ }, { "name": "spryker/price", - "version": "5.7.0", + "version": "5.8.0", "source": { "type": "git", "url": "https://github.com/spryker/price.git", - "reference": "bf9bbda8ea062279e70011889d215e1197a7393d" + "reference": "0dfd80f1e7ea12023c7d05678de396f232f097ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/price/zipball/bf9bbda8ea062279e70011889d215e1197a7393d", - "reference": "bf9bbda8ea062279e70011889d215e1197a7393d", + "url": "https://api.github.com/repos/spryker/price/zipball/0dfd80f1e7ea12023c7d05678de396f232f097ea", + "reference": "0dfd80f1e7ea12023c7d05678de396f232f097ea", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/kernel": "^3.30.0", "spryker/price-extension": "^1.0.0", "spryker/quote": "^1.2.0 || ^2.0.0", "spryker/quote-extension": "^1.4.0", - "spryker/symfony": "^3.0.0" + "spryker/symfony": "^3.0.0", + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/code-sniffer": "*", @@ -46331,9 +46769,9 @@ ], "description": "Price module", "support": { - "source": "https://github.com/spryker/price/tree/5.7.0" + "source": "https://github.com/spryker/price/tree/5.8.0" }, - "time": "2023-03-31T19:36:11+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/price-cart-connector", @@ -49012,16 +49450,16 @@ }, { "name": "spryker/product-bundle", - "version": "7.20.0", + "version": "7.21.0", "source": { "type": "git", "url": "https://github.com/spryker/product-bundle.git", - "reference": "0bbfa9a004867a5fda3823522f35b6c914a6e85e" + "reference": "1603b5de7f56d99a94ce607add73e83badc2062a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-bundle/zipball/0bbfa9a004867a5fda3823522f35b6c914a6e85e", - "reference": "0bbfa9a004867a5fda3823522f35b6c914a6e85e", + "url": "https://api.github.com/repos/spryker/product-bundle/zipball/1603b5de7f56d99a94ce607add73e83badc2062a", + "reference": "1603b5de7f56d99a94ce607add73e83badc2062a", "shasum": "" }, "require": { @@ -49029,6 +49467,7 @@ "spryker/availability": "^9.8.0", "spryker/calculation-extension": "^1.1.0", "spryker/cart-extension": "^1.0.0 || ^2.0.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/decimal-object": "^1.0.0", "spryker/kernel": "^3.30.0", "spryker/locale": "^3.0.0 || ^4.0.0", @@ -49041,6 +49480,7 @@ "spryker/product-extension": "^1.3.0", "spryker/product-image": "^3.3.0", "spryker/propel-orm": "^1.16.0", + "spryker/quote-extension": "^1.0.0", "spryker/sales": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^10.0.0 || ^11.0.0", "spryker/sales-extension": "^1.6.0", "spryker/sales-return-gui-extension": "^1.0.0", @@ -49048,7 +49488,7 @@ "spryker/stock": "^8.0.0", "spryker/store": "^1.19.0", "spryker/symfony": "^3.0.0", - "spryker/transfer": "^3.25.0" + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/calculation": "*", @@ -49086,9 +49526,9 @@ ], "description": "ProductBundle module", "support": { - "source": "https://github.com/spryker/product-bundle/tree/7.20.0" + "source": "https://github.com/spryker/product-bundle/tree/7.21.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-bundle-carts-rest-api", @@ -49363,20 +49803,21 @@ }, { "name": "spryker/product-cart-connector", - "version": "4.11.0", + "version": "4.12.0", "source": { "type": "git", "url": "https://github.com/spryker/product-cart-connector.git", - "reference": "9a5bd1d017559f20ed5ebf7ab72cb41a4913bda0" + "reference": "bb4c923775fd3e8c703d70326bf31551f3622bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-cart-connector/zipball/9a5bd1d017559f20ed5ebf7ab72cb41a4913bda0", - "reference": "9a5bd1d017559f20ed5ebf7ab72cb41a4913bda0", + "url": "https://api.github.com/repos/spryker/product-cart-connector/zipball/bb4c923775fd3e8c703d70326bf31551f3622bed", + "reference": "bb4c923775fd3e8c703d70326bf31551f3622bed", "shasum": "" }, "require": { "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/checkout-extension": "^1.2.0", "spryker/kernel": "^3.30.0", "spryker/locale": "^3.0.0 || ^4.0.0", @@ -49414,9 +49855,9 @@ ], "description": "ProductCartConnector module", "support": { - "source": "https://github.com/spryker/product-cart-connector/tree/4.11.0" + "source": "https://github.com/spryker/product-cart-connector/tree/4.12.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-category", @@ -52291,21 +52732,22 @@ }, { "name": "spryker/product-list", - "version": "1.7.1", + "version": "1.8.0", "source": { "type": "git", "url": "https://github.com/spryker/product-list.git", - "reference": "f2cf0c520c6eed821055c4579b5638c4752cb630" + "reference": "cce02277a1a998fb93cc2860f8b94694f98af75e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-list/zipball/f2cf0c520c6eed821055c4579b5638c4752cb630", - "reference": "f2cf0c520c6eed821055c4579b5638c4752cb630", + "url": "https://api.github.com/repos/spryker/product-list/zipball/cce02277a1a998fb93cc2860f8b94694f98af75e", + "reference": "cce02277a1a998fb93cc2860f8b94694f98af75e", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", "spryker/cart-extension": "^1.5.0 || ^2.1.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/category": "^3.0.0 || ^4.0.0 || ^5.0.0", "spryker/kernel": "^3.33.0", "spryker/messenger": "^3.0.0", @@ -52339,9 +52781,9 @@ ], "description": "ProductList module", "support": { - "source": "https://github.com/spryker/product-list/tree/1.7.1" + "source": "https://github.com/spryker/product-list/tree/1.8.0" }, - "time": "2023-02-02T12:10:12+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-list-data-import", @@ -52798,21 +53240,22 @@ }, { "name": "spryker/product-measurement-unit", - "version": "5.6.0", + "version": "5.7.0", "source": { "type": "git", "url": "https://github.com/spryker/product-measurement-unit.git", - "reference": "236ec8554fed1e3dbba3e60bf6165d4e33d13270" + "reference": "02f1dfb4faa6593de18257fd670b2e88405d15bc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-measurement-unit/zipball/236ec8554fed1e3dbba3e60bf6165d4e33d13270", - "reference": "236ec8554fed1e3dbba3e60bf6165d4e33d13270", + "url": "https://api.github.com/repos/spryker/product-measurement-unit/zipball/02f1dfb4faa6593de18257fd670b2e88405d15bc", + "reference": "02f1dfb4faa6593de18257fd670b2e88405d15bc", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker/cart-extension": "^1.2.0 || ^2.0.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/event": "^2.0.0", "spryker/glossary": "^3.0.0", "spryker/kernel": "^3.30.0", @@ -52823,6 +53266,7 @@ "spryker/sales": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 || ^10.0.0 || ^11.0.0", "spryker/sales-extension": "^1.6.0", "spryker/store": "^1.19.0", + "spryker/transfer": "^3.27.0", "spryker/util-measurement-unit-conversion": "^0.1.0 || ^1.0.0" }, "require-dev": { @@ -52857,9 +53301,9 @@ ], "description": "ProductMeasurementUnit module", "support": { - "source": "https://github.com/spryker/product-measurement-unit/tree/5.6.0" + "source": "https://github.com/spryker/product-measurement-unit/tree/5.7.0" }, - "time": "2024-05-06T12:15:28+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-measurement-unit-data-import", @@ -53255,24 +53699,25 @@ }, { "name": "spryker/product-offer", - "version": "1.11.0", + "version": "1.12.0", "source": { "type": "git", "url": "https://github.com/spryker/product-offer.git", - "reference": "d014536e895b5d6dd273ec5ab3ee0e2438561d12" + "reference": "28adc350a3e383a25e64da6718c3cb353c317335" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-offer/zipball/d014536e895b5d6dd273ec5ab3ee0e2438561d12", - "reference": "d014536e895b5d6dd273ec5ab3ee0e2438561d12", + "url": "https://api.github.com/repos/spryker/product-offer/zipball/28adc350a3e383a25e64da6718c3cb353c317335", + "reference": "28adc350a3e383a25e64da6718c3cb353c317335", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker/acl-merchant-portal-extension": "^1.0.0", "spryker/availability-cart-connector-extension": "^1.0.0", "spryker/availability-extension": "^1.1.0", "spryker/cart-extension": "^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/checkout-extension": "^1.2.0", "spryker/event": "^1.0.0 || ^2.0.0", "spryker/kernel": "^3.33.0", @@ -53311,9 +53756,9 @@ ], "description": "ProductOffer module", "support": { - "source": "https://github.com/spryker/product-offer/tree/1.11.0" + "source": "https://github.com/spryker/product-offer/tree/1.12.0" }, - "time": "2024-05-06T12:15:28+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-offer-availabilities-rest-api", @@ -55730,22 +56175,23 @@ }, { "name": "spryker/product-option", - "version": "8.20.0", + "version": "8.21.0", "source": { "type": "git", "url": "https://github.com/spryker/product-option.git", - "reference": "5b7020a77d539b8825b0a668867f186c9a6fe657" + "reference": "caf2e70f0a33dbc728f9724e60a501ee032871c2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-option/zipball/5b7020a77d539b8825b0a668867f186c9a6fe657", - "reference": "5b7020a77d539b8825b0a668867f186c9a6fe657", + "url": "https://api.github.com/repos/spryker/product-option/zipball/caf2e70f0a33dbc728f9724e60a501ee032871c2", + "reference": "caf2e70f0a33dbc728f9724e60a501ee032871c2", "shasum": "" }, "require": { "php": ">=8.2", "spryker/acl-merchant-portal-extension": "^1.0.0", "spryker/calculation-extension": "^1.1.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/country": "^3.0.0 || ^4.0.0", "spryker/currency": "^3.2.0 || ^4.0.0", "spryker/event": "^2.1.0", @@ -55767,7 +56213,7 @@ "spryker/symfony": "^3.0.0", "spryker/tax": "^5.0.0", "spryker/touch": "^3.0.0 || ^4.0.0", - "spryker/transfer": "^3.25.0", + "spryker/transfer": "^3.27.0", "spryker/util-encoding": "^2.0.0", "spryker/util-text": "^1.1.0" }, @@ -55813,9 +56259,9 @@ ], "description": "ProductOption module", "support": { - "source": "https://github.com/spryker/product-option/tree/8.20.0" + "source": "https://github.com/spryker/product-option/tree/8.21.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-option-cart-connector", @@ -56159,22 +56605,23 @@ }, { "name": "spryker/product-packaging-unit", - "version": "4.11.0", + "version": "4.12.0", "source": { "type": "git", "url": "https://github.com/spryker/product-packaging-unit.git", - "reference": "3d8fe7f4d99533f4a5f9c4ed030f0ddbe760aada" + "reference": "21869de9da5c1b8e23c1bdd54f7782ed88d2ca53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-packaging-unit/zipball/3d8fe7f4d99533f4a5f9c4ed030f0ddbe760aada", - "reference": "3d8fe7f4d99533f4a5f9c4ed030f0ddbe760aada", + "url": "https://api.github.com/repos/spryker/product-packaging-unit/zipball/21869de9da5c1b8e23c1bdd54f7782ed88d2ca53", + "reference": "21869de9da5c1b8e23c1bdd54f7782ed88d2ca53", "shasum": "" }, "require": { "php": ">=8.2", "spryker/availability": "^9.0.0", "spryker/cart-extension": "^2.0.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/decimal-object": "^1.0.0", "spryker/glossary": "^3.1.0", "spryker/kernel": "^3.30.0", @@ -56230,9 +56677,9 @@ ], "description": "ProductPackagingUnit module", "support": { - "source": "https://github.com/spryker/product-packaging-unit/tree/4.11.0" + "source": "https://github.com/spryker/product-packaging-unit/tree/4.12.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-packaging-unit-data-import", @@ -56613,25 +57060,26 @@ }, { "name": "spryker/product-quantity", - "version": "3.3.0", + "version": "3.4.0", "source": { "type": "git", "url": "https://github.com/spryker/product-quantity.git", - "reference": "14ce93500d7ced82522dece67c5fa39b61e6c6dc" + "reference": "8237c477b90085fe2b0a0335fd0eb306bcc3d30e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/product-quantity/zipball/14ce93500d7ced82522dece67c5fa39b61e6c6dc", - "reference": "14ce93500d7ced82522dece67c5fa39b61e6c6dc", + "url": "https://api.github.com/repos/spryker/product-quantity/zipball/8237c477b90085fe2b0a0335fd0eb306bcc3d30e", + "reference": "8237c477b90085fe2b0a0335fd0eb306bcc3d30e", "shasum": "" }, "require": { - "php": ">=8.1", + "php": ">=8.2", "spryker/cart-extension": "^1.7.0 || ^2.3.0 || ^4.0.0", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/checkout-extension": "^1.1.0", "spryker/kernel": "^3.30.0", "spryker/product": "^6.0.0", - "spryker/transfer": "^3.25.0" + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/cart": "*", @@ -56660,9 +57108,9 @@ ], "description": "ProductQuantity module", "support": { - "source": "https://github.com/spryker/product-quantity/tree/3.3.0" + "source": "https://github.com/spryker/product-quantity/tree/3.4.0" }, - "time": "2024-04-17T12:52:42+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/product-quantity-data-import", @@ -60586,16 +61034,16 @@ }, { "name": "spryker/sales", - "version": "11.50.1", + "version": "11.51.0", "source": { "type": "git", "url": "https://github.com/spryker/sales.git", - "reference": "098c642eb5bc68d6f5597e21bdb99de5de960745" + "reference": "217ba43203869332c874f5327be53ddda5c6e2ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/sales/zipball/098c642eb5bc68d6f5597e21bdb99de5de960745", - "reference": "098c642eb5bc68d6f5597e21bdb99de5de960745", + "url": "https://api.github.com/repos/spryker/sales/zipball/217ba43203869332c874f5327be53ddda5c6e2ae", + "reference": "217ba43203869332c874f5327be53ddda5c6e2ae", "shasum": "" }, "require": { @@ -60662,32 +61110,35 @@ ], "description": "Sales module", "support": { - "source": "https://github.com/spryker/sales/tree/11.50.1" + "source": "https://github.com/spryker/sales/tree/11.51.0" }, - "time": "2024-11-04T14:07:47+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/sales-configurable-bundle", - "version": "1.5.2", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/spryker/sales-configurable-bundle.git", - "reference": "37d207593b62a356b45965f6e1d607bae3dbdaa4" + "reference": "e484cc55be9e5a30ee1638beaf53701636f71680" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/sales-configurable-bundle/zipball/37d207593b62a356b45965f6e1d607bae3dbdaa4", - "reference": "37d207593b62a356b45965f6e1d607bae3dbdaa4", + "url": "https://api.github.com/repos/spryker/sales-configurable-bundle/zipball/e484cc55be9e5a30ee1638beaf53701636f71680", + "reference": "e484cc55be9e5a30ee1638beaf53701636f71680", "shasum": "" }, "require": { - "php": ">=8.0", - "spryker/configurable-bundle": "^1.0.0 || ^2.0.0", + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", + "spryker/configurable-bundle": "^1.1.0 || ^2.5.0", "spryker/glossary": "^3.0.0", "spryker/kernel": "^3.33.0", + "spryker/messenger": "^3.0.0", "spryker/propel-orm": "^1.0.0", "spryker/sales": "^10.3.2 || ^11.2.1", - "spryker/sales-extension": "^1.9.0" + "spryker/sales-extension": "^1.9.0", + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/code-sniffer": "*", @@ -60714,9 +61165,9 @@ ], "description": "SalesConfigurableBundle module", "support": { - "source": "https://github.com/spryker/sales-configurable-bundle/tree/1.5.2" + "source": "https://github.com/spryker/sales-configurable-bundle/tree/1.6.0" }, - "time": "2023-03-31T19:36:11+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/sales-data-export", @@ -61284,6 +61735,161 @@ }, "time": "2023-06-06T15:14:45+00:00" }, + { + "name": "spryker/sales-order-amendment", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/sales-order-amendment.git", + "reference": "efad44a8454fec7cfe1ea179962aedb97fc02119" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/sales-order-amendment/zipball/efad44a8454fec7cfe1ea179962aedb97fc02119", + "reference": "efad44a8454fec7cfe1ea179962aedb97fc02119", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", + "spryker/kernel": "^3.30.0", + "spryker/propel-orm": "^1.0.0", + "spryker/quote-extension": "^1.0.0", + "spryker/sales": "^11.0.0", + "spryker/sales-extension": "^1.3.0", + "spryker/sales-order-amendment-extension": "^1.0.0", + "spryker/transfer": "^3.27.0", + "spryker/uuid-behavior": "^1.0.0" + }, + "require-dev": { + "spryker/code-sniffer": "*", + "spryker/container": "*", + "spryker/customer": "*", + "spryker/oms": "*", + "spryker/propel": "*", + "spryker/quote": "*", + "spryker/store": "*", + "spryker/testify": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/", + "SprykerTest\\Shared\\SalesOrderAmendment\\Helper\\": "tests/SprykerTest/Shared/SalesOrderAmendment/Helper/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "SalesOrderAmendment module", + "support": { + "source": "https://github.com/spryker/sales-order-amendment/tree/0.1.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, + { + "name": "spryker/sales-order-amendment-extension", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/sales-order-amendment-extension.git", + "reference": "2c8c1155a7598d395ffd3695ce2fcd1617d8fe0e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/sales-order-amendment-extension/zipball/2c8c1155a7598d395ffd3695ce2fcd1617d8fe0e", + "reference": "2c8c1155a7598d395ffd3695ce2fcd1617d8fe0e", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "SalesOrderAmendmentExtension module", + "support": { + "source": "https://github.com/spryker/sales-order-amendment-extension/tree/1.0.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, + { + "name": "spryker/sales-order-amendment-oms", + "version": "0.1.0", + "source": { + "type": "git", + "url": "https://github.com/spryker/sales-order-amendment-oms.git", + "reference": "a78d6e2e24e644c54086306194a0a3903e4fd075" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spryker/sales-order-amendment-oms/zipball/a78d6e2e24e644c54086306194a0a3903e4fd075", + "reference": "a78d6e2e24e644c54086306194a0a3903e4fd075", + "shasum": "" + }, + "require": { + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", + "spryker/checkout-extension": "^1.3.0", + "spryker/kernel": "^3.30.0", + "spryker/oms": "^11.38.0", + "spryker/quote-extension": "^1.1.0", + "spryker/sales": "^11.51.0", + "spryker/sales-order-amendment": "^0.1.0", + "spryker/sales-order-amendment-extension": "^1.0.0", + "spryker/transfer": "^3.27.0" + }, + "require-dev": { + "spryker/code-sniffer": "*", + "spryker/container": "*", + "spryker/customer": "*", + "spryker/propel": "*", + "spryker/store": "*", + "spryker/testify": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Spryker\\": "src/Spryker/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "proprietary" + ], + "description": "SalesOrderAmendmentOms module", + "support": { + "source": "https://github.com/spryker/sales-order-amendment-oms/tree/0.1.0" + }, + "time": "2024-11-15T17:27:29+00:00" + }, { "name": "spryker/sales-order-threshold", "version": "1.11.0", @@ -62040,26 +62646,27 @@ }, { "name": "spryker/sales-product-configuration", - "version": "1.0.2", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/spryker/sales-product-configuration.git", - "reference": "33d740cdc1e11c302118b5b6a6f6d331fd18d12c" + "reference": "20be6bf270d08ff0c8d7a6a911148df2c88eaa31" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/sales-product-configuration/zipball/33d740cdc1e11c302118b5b6a6f6d331fd18d12c", - "reference": "33d740cdc1e11c302118b5b6a6f6d331fd18d12c", + "url": "https://api.github.com/repos/spryker/sales-product-configuration/zipball/20be6bf270d08ff0c8d7a6a911148df2c88eaa31", + "reference": "20be6bf270d08ff0c8d7a6a911148df2c88eaa31", "shasum": "" }, "require": { - "php": ">=8.0", + "php": ">=8.2", + "spryker/cart-reorder-extension": "^1.0.0", "spryker/kernel": "^3.33.0", "spryker/product-configuration": "^1.0.0", "spryker/propel-orm": "^1.5.0", "spryker/sales": "^11.0.0", "spryker/sales-extension": "^1.9.0", - "spryker/transfer": "^3.25.0" + "spryker/transfer": "^3.27.0" }, "require-dev": { "spryker/code-sniffer": "*", @@ -62085,9 +62692,9 @@ ], "description": "SalesProductConfiguration module", "support": { - "source": "https://github.com/spryker/sales-product-configuration/tree/1.0.2" + "source": "https://github.com/spryker/sales-product-configuration/tree/1.1.0" }, - "time": "2023-06-06T15:14:45+00:00" + "time": "2024-11-15T17:27:29+00:00" }, { "name": "spryker/sales-product-configuration-gui", @@ -80038,12 +80645,12 @@ "source": { "type": "git", "url": "https://github.com/JetBrains/phpstorm-stubs.git", - "reference": "893a3bc59b8ff1b995220abcbbf76796926b7e9a" + "reference": "fda684a4826c1caf59efe1a1bf68d08c11aaddbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/893a3bc59b8ff1b995220abcbbf76796926b7e9a", - "reference": "893a3bc59b8ff1b995220abcbbf76796926b7e9a", + "url": "https://api.github.com/repos/JetBrains/phpstorm-stubs/zipball/fda684a4826c1caf59efe1a1bf68d08c11aaddbf", + "reference": "fda684a4826c1caf59efe1a1bf68d08c11aaddbf", "shasum": "" }, "require-dev": { @@ -80078,7 +80685,7 @@ "support": { "source": "https://github.com/JetBrains/phpstorm-stubs/tree/master" }, - "time": "2024-11-10T16:24:24+00:00" + "time": "2024-11-15T09:42:33+00:00" }, { "name": "masterminds/html5", @@ -82082,12 +82689,12 @@ "source": { "type": "git", "url": "https://github.com/spryker/robotframework-suite-tests.git", - "reference": "8b2175d33d8105e1be91f3e828101c92860286cb" + "reference": "b07b5f34cf57f907d54df8062cc938c4c128940c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/spryker/robotframework-suite-tests/zipball/8b2175d33d8105e1be91f3e828101c92860286cb", - "reference": "8b2175d33d8105e1be91f3e828101c92860286cb", + "url": "https://api.github.com/repos/spryker/robotframework-suite-tests/zipball/b07b5f34cf57f907d54df8062cc938c4c128940c", + "reference": "b07b5f34cf57f907d54df8062cc938c4c128940c", "shasum": "" }, "default-branch": true, @@ -82101,7 +82708,7 @@ "issues": "https://github.com/spryker/robotframework-suite-tests/issues", "source": "https://github.com/spryker/robotframework-suite-tests/tree/master" }, - "time": "2024-11-14T14:09:04+00:00" + "time": "2024-11-15T18:05:39+00:00" }, { "name": "spryker/silex", From 1f4335e88d28b86cfb45347a9a462c86af52df48 Mon Sep 17 00:00:00 2001 From: Dmytro Asieiev Date: Fri, 15 Nov 2024 22:26:52 +0300 Subject: [PATCH 4/4] CC-34501: Fixed npm. --- package-lock.json | 138 +++++++++++++++++++++++++++++----------------- 1 file changed, 86 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index e07540c331..1321cc1bca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8092,34 +8092,6 @@ "darwin" ] }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.24.4.tgz", - "integrity": "sha512-py5oNShCCjCyjWXCZNrRGRpjWsF0ic8f4ieBNra5buQz0O/U6mMXCpC1LvrHuhJsNPgRt36tSYMidGzZiJF6mw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.24.4", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.24.4.tgz", - "integrity": "sha512-L7VVVW9FCnTTp4i7KrmHeDsDvjB4++KOBENYtNYAiYl96jeBThFfhP6HVxL74v4SiZEVDH/1ILscR5U9S4ms4g==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { "version": "4.22.4", "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.22.4.tgz", @@ -12309,30 +12281,10 @@ "@webassemblyjs/wasm-gen": "1.12.1" } }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", - "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", - "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", - "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "node_modules/@webassemblyjs/helper-wasm-section/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", "dev": true, "license": "MIT" }, @@ -12353,6 +12305,13 @@ "@webassemblyjs/wast-printer": "1.12.1" } }, + "node_modules/@webassemblyjs/wasm-edit/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, "node_modules/@webassemblyjs/wasm-gen": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", @@ -12367,6 +12326,40 @@ "@webassemblyjs/utf8": "1.11.6" } }, + "node_modules/@webassemblyjs/wasm-gen/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-gen/node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen/node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wasm-gen/node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, "node_modules/@webassemblyjs/wasm-opt": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", @@ -12395,6 +12388,47 @@ "@webassemblyjs/utf8": "1.11.6" } }, + "node_modules/@webassemblyjs/wasm-parser/node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-parser/node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@webassemblyjs/wasm-parser/node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser/node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wasm-parser/node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "dev": true, + "license": "MIT" + }, "node_modules/@webassemblyjs/wast-printer": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz",