From e13861e69a4f1344ddf61835f8c6a15773db0e4a Mon Sep 17 00:00:00 2001
From: Nadar
Date: Mon, 22 Jan 2024 16:10:41 +0000
Subject: [PATCH] add hardbreak
---
composer.lock | 299 ++++++++++++++++++++++---------------------
src/Parser.php | 2 +
src/Types.php | 1 +
tests/ParserTest.php | 14 +-
tests/hardbreak.json | 22 ++++
5 files changed, 189 insertions(+), 149 deletions(-)
create mode 100644 tests/hardbreak.json
diff --git a/composer.lock b/composer.lock
index 2945649..8c68ae0 100644
--- a/composer.lock
+++ b/composer.lock
@@ -227,21 +227,22 @@
},
{
"name": "friendsofphp/php-cs-fixer",
- "version": "v3.40.0",
+ "version": "v3.48.0",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git",
- "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0"
+ "reference": "a92472c6fb66349de25211f31c77eceae3df024e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/27d2b3265b5d550ec411b4319967ae7cfddfb2e0",
- "reference": "27d2b3265b5d550ec411b4319967ae7cfddfb2e0",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/a92472c6fb66349de25211f31c77eceae3df024e",
+ "reference": "a92472c6fb66349de25211f31c77eceae3df024e",
"shasum": ""
},
"require": {
"composer/semver": "^3.4",
"composer/xdebug-handler": "^3.0.3",
+ "ext-filter": "*",
"ext-json": "*",
"ext-tokenizer": "*",
"php": "^7.4 || ^8.0",
@@ -266,10 +267,7 @@
"php-cs-fixer/accessible-object": "^1.1",
"php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.4",
"php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.4",
- "phpspec/prophecy": "^1.17",
- "phpspec/prophecy-phpunit": "^2.0",
- "phpunit/phpunit": "^9.6",
- "symfony/phpunit-bridge": "^6.3.8 || ^7.0",
+ "phpunit/phpunit": "^9.6 || ^10.5.5",
"symfony/yaml": "^5.4 || ^6.0 || ^7.0"
},
"suggest": {
@@ -308,7 +306,7 @@
],
"support": {
"issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues",
- "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.40.0"
+ "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.48.0"
},
"funding": [
{
@@ -316,7 +314,7 @@
"type": "github"
}
],
- "time": "2023-11-26T09:25:53+00:00"
+ "time": "2024-01-19T21:44:39+00:00"
},
{
"name": "myclabs/deep-copy",
@@ -379,25 +377,27 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.17.1",
+ "version": "v5.0.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d"
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
- "reference": "a6303e50c90c355c7eeee2c4a8b27fe8dc8fef1d",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
+ "reference": "4a21235f7e56e713259a6f76bf4b5ea08502b9dc",
"shasum": ""
},
"require": {
+ "ext-ctype": "*",
+ "ext-json": "*",
"ext-tokenizer": "*",
- "php": ">=7.0"
+ "php": ">=7.4"
},
"require-dev": {
"ircmaxell/php-yacc": "^0.0.7",
- "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0"
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
},
"bin": [
"bin/php-parse"
@@ -405,7 +405,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "4.9-dev"
+ "dev-master": "5.0-dev"
}
},
"autoload": {
@@ -429,9 +429,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.17.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.0.0"
},
- "time": "2023-08-13T19:53:39+00:00"
+ "time": "2024-01-07T17:17:35+00:00"
},
{
"name": "phar-io/manifest",
@@ -546,16 +546,16 @@
},
{
"name": "phpstan/phpstan",
- "version": "1.10.44",
+ "version": "1.10.56",
"source": {
"type": "git",
"url": "https://github.com/phpstan/phpstan.git",
- "reference": "bf84367c53a23f759513985c54ffe0d0c249825b"
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpstan/zipball/bf84367c53a23f759513985c54ffe0d0c249825b",
- "reference": "bf84367c53a23f759513985c54ffe0d0c249825b",
+ "url": "https://api.github.com/repos/phpstan/phpstan/zipball/27816a01aea996191ee14d010f325434c0ee76fa",
+ "reference": "27816a01aea996191ee14d010f325434c0ee76fa",
"shasum": ""
},
"require": {
@@ -604,27 +604,27 @@
"type": "tidelift"
}
],
- "time": "2023-11-21T16:30:46+00:00"
+ "time": "2024-01-15T10:43:00+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "10.1.9",
+ "version": "10.1.11",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735"
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/a56a9ab2f680246adcf3db43f38ddf1765774735",
- "reference": "a56a9ab2f680246adcf3db43f38ddf1765774735",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/78c3b7625965c2513ee96569a4dbb62601784145",
+ "reference": "78c3b7625965c2513ee96569a4dbb62601784145",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^4.15",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1",
"phpunit/php-file-iterator": "^4.0",
"phpunit/php-text-template": "^3.0",
@@ -674,7 +674,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.9"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.1.11"
},
"funding": [
{
@@ -682,7 +682,7 @@
"type": "github"
}
],
- "time": "2023-11-23T12:23:20+00:00"
+ "time": "2023-12-21T15:38:30+00:00"
},
{
"name": "phpunit/php-file-iterator",
@@ -929,16 +929,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "10.4.2",
+ "version": "10.5.9",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1"
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/cacd8b9dd224efa8eb28beb69004126c7ca1a1a1",
- "reference": "cacd8b9dd224efa8eb28beb69004126c7ca1a1a1",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
+ "reference": "0bd663704f0165c9e76fe4f06ffa6a1ca727fdbe",
"shasum": ""
},
"require": {
@@ -978,7 +978,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "10.4-dev"
+ "dev-main": "10.5-dev"
}
},
"autoload": {
@@ -1010,7 +1010,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy",
- "source": "https://github.com/sebastianbergmann/phpunit/tree/10.4.2"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.9"
},
"funding": [
{
@@ -1026,7 +1026,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-26T07:21:45+00:00"
+ "time": "2024-01-22T14:35:40+00:00"
},
{
"name": "psr/container",
@@ -1484,20 +1484,20 @@
},
{
"name": "sebastian/complexity",
- "version": "3.1.0",
+ "version": "3.2.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/complexity.git",
- "reference": "68cfb347a44871f01e33ab0ef8215966432f6957"
+ "reference": "68ff824baeae169ec9f2137158ee529584553799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68cfb347a44871f01e33ab0ef8215966432f6957",
- "reference": "68cfb347a44871f01e33ab0ef8215966432f6957",
+ "url": "https://api.github.com/repos/sebastianbergmann/complexity/zipball/68ff824baeae169ec9f2137158ee529584553799",
+ "reference": "68ff824baeae169ec9f2137158ee529584553799",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
@@ -1506,7 +1506,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.1-dev"
+ "dev-main": "3.2-dev"
}
},
"autoload": {
@@ -1530,7 +1530,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/complexity/issues",
"security": "https://github.com/sebastianbergmann/complexity/security/policy",
- "source": "https://github.com/sebastianbergmann/complexity/tree/3.1.0"
+ "source": "https://github.com/sebastianbergmann/complexity/tree/3.2.0"
},
"funding": [
{
@@ -1538,20 +1538,20 @@
"type": "github"
}
],
- "time": "2023-09-28T11:50:59+00:00"
+ "time": "2023-12-21T08:37:17+00:00"
},
{
"name": "sebastian/diff",
- "version": "5.0.3",
+ "version": "5.1.0",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b"
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
- "reference": "912dc2fbe3e3c1e7873313cc801b100b6c68c87b",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
+ "reference": "fbf413a49e54f6b9b17e12d900ac7f6101591b7f",
"shasum": ""
},
"require": {
@@ -1564,7 +1564,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "5.0-dev"
+ "dev-main": "5.1-dev"
}
},
"autoload": {
@@ -1597,7 +1597,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/5.0.3"
+ "source": "https://github.com/sebastianbergmann/diff/tree/5.1.0"
},
"funding": [
{
@@ -1605,7 +1605,7 @@
"type": "github"
}
],
- "time": "2023-05-01T07:48:21+00:00"
+ "time": "2023-12-22T10:55:06+00:00"
},
{
"name": "sebastian/environment",
@@ -1813,20 +1813,20 @@
},
{
"name": "sebastian/lines-of-code",
- "version": "2.0.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d"
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/649e40d279e243d985aa8fb6e74dd5bb28dc185d",
- "reference": "649e40d279e243d985aa8fb6e74dd5bb28dc185d",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/856e7f6a75a84e339195d48c556f23be2ebf75d0",
+ "reference": "856e7f6a75a84e339195d48c556f23be2ebf75d0",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^4.10",
+ "nikic/php-parser": "^4.18 || ^5.0",
"php": ">=8.1"
},
"require-dev": {
@@ -1859,7 +1859,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
"security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.1"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/2.0.2"
},
"funding": [
{
@@ -1867,7 +1867,7 @@
"type": "github"
}
],
- "time": "2023-08-31T09:25:50+00:00"
+ "time": "2023-12-21T08:38:20+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -2155,43 +2155,46 @@
},
{
"name": "symfony/console",
- "version": "v6.3.8",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92"
+ "reference": "f8587c4cdc5acad67af71c37db34ef03af91e59c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
- "reference": "0d14a9f6d04d4ac38a8cea1171f4554e325dae92",
+ "url": "https://api.github.com/repos/symfony/console/zipball/f8587c4cdc5acad67af71c37db34ef03af91e59c",
+ "reference": "f8587c4cdc5acad67af71c37db34ef03af91e59c",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^5.4|^6.0"
+ "symfony/string": "^6.4|^7.0"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
- "symfony/dotenv": "<5.4",
- "symfony/event-dispatcher": "<5.4",
- "symfony/lock": "<5.4",
- "symfony/process": "<5.4"
+ "symfony/dependency-injection": "<6.4",
+ "symfony/dotenv": "<6.4",
+ "symfony/event-dispatcher": "<6.4",
+ "symfony/lock": "<6.4",
+ "symfony/process": "<6.4"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/event-dispatcher": "^5.4|^6.0",
- "symfony/lock": "^5.4|^6.0",
- "symfony/process": "^5.4|^6.0",
- "symfony/var-dumper": "^5.4|^6.0"
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/event-dispatcher": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/lock": "^6.4|^7.0",
+ "symfony/messenger": "^6.4|^7.0",
+ "symfony/process": "^6.4|^7.0",
+ "symfony/stopwatch": "^6.4|^7.0",
+ "symfony/var-dumper": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2225,7 +2228,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v6.3.8"
+ "source": "https://github.com/symfony/console/tree/v7.0.2"
},
"funding": [
{
@@ -2241,7 +2244,7 @@
"type": "tidelift"
}
],
- "time": "2023-10-31T08:09:35+00:00"
+ "time": "2023-12-10T16:54:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
@@ -2312,24 +2315,24 @@
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.2",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
+ "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/098b62ae81fdd6cbf941f355059f617db28f4f9a",
+ "reference": "098b62ae81fdd6cbf941f355059f617db28f4f9a",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
@@ -2338,13 +2341,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2372,7 +2375,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.0.2"
},
"funding": [
{
@@ -2388,7 +2391,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-06T06:56:43+00:00"
+ "time": "2023-12-27T22:24:19+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
@@ -2468,20 +2471,20 @@
},
{
"name": "symfony/filesystem",
- "version": "v6.3.1",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae"
+ "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
- "reference": "edd36776956f2a6fcf577edb5b05eb0e3bdc52ae",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/7da8ea2362a283771478c5f7729cfcb43a76b8b7",
+ "reference": "7da8ea2362a283771478c5f7729cfcb43a76b8b7",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@@ -2511,7 +2514,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v6.3.1"
+ "source": "https://github.com/symfony/filesystem/tree/v7.0.0"
},
"funding": [
{
@@ -2527,27 +2530,27 @@
"type": "tidelift"
}
],
- "time": "2023-06-01T08:30:39+00:00"
+ "time": "2023-07-27T06:33:22+00:00"
},
{
"name": "symfony/finder",
- "version": "v6.3.5",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4"
+ "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/a1b31d88c0e998168ca7792f222cbecee47428c4",
- "reference": "a1b31d88c0e998168ca7792f222cbecee47428c4",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
+ "reference": "6e5688d69f7cfc4ed4a511e96007e06c2d34ce56",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"require-dev": {
- "symfony/filesystem": "^6.0"
+ "symfony/filesystem": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -2575,7 +2578,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v6.3.5"
+ "source": "https://github.com/symfony/finder/tree/v7.0.0"
},
"funding": [
{
@@ -2591,24 +2594,24 @@
"type": "tidelift"
}
],
- "time": "2023-09-26T12:56:25+00:00"
+ "time": "2023-10-31T17:59:56+00:00"
},
{
"name": "symfony/options-resolver",
- "version": "v6.3.0",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/options-resolver.git",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd"
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a10f19f5198d589d5c33333cffe98dc9820332dd",
- "reference": "a10f19f5198d589d5c33333cffe98dc9820332dd",
+ "url": "https://api.github.com/repos/symfony/options-resolver/zipball/700ff4096e346f54cb628ea650767c8130f1001f",
+ "reference": "700ff4096e346f54cb628ea650767c8130f1001f",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3"
},
"type": "library",
@@ -2642,7 +2645,7 @@
"options"
],
"support": {
- "source": "https://github.com/symfony/options-resolver/tree/v6.3.0"
+ "source": "https://github.com/symfony/options-resolver/tree/v7.0.0"
},
"funding": [
{
@@ -2658,7 +2661,7 @@
"type": "tidelift"
}
],
- "time": "2023-05-12T14:21:09+00:00"
+ "time": "2023-08-08T10:20:21+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -3154,20 +3157,20 @@
},
{
"name": "symfony/process",
- "version": "v6.3.4",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54"
+ "reference": "acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/0b5c29118f2e980d455d2e34a5659f4579847c54",
- "reference": "0b5c29118f2e980d455d2e34a5659f4579847c54",
+ "url": "https://api.github.com/repos/symfony/process/zipball/acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a",
+ "reference": "acd3eb5cb02382c1cb0287ba29b2908cc6ffa83a",
"shasum": ""
},
"require": {
- "php": ">=8.1"
+ "php": ">=8.2"
},
"type": "library",
"autoload": {
@@ -3195,7 +3198,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v6.3.4"
+ "source": "https://github.com/symfony/process/tree/v7.0.2"
},
"funding": [
{
@@ -3211,25 +3214,25 @@
"type": "tidelift"
}
],
- "time": "2023-08-07T10:39:22+00:00"
+ "time": "2023-12-24T09:15:37+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.4.0",
+ "version": "v3.4.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838"
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
- "reference": "b3313c2dbffaf71c8de2934e2ea56ed2291a3838",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/fe07cbc8d837f60caf7018068e350cc5163681a0",
+ "reference": "fe07cbc8d837f60caf7018068e350cc5163681a0",
"shasum": ""
},
"require": {
"php": ">=8.1",
- "psr/container": "^2.0"
+ "psr/container": "^1.1|^2.0"
},
"conflict": {
"ext-psr": "<1.1|>=2"
@@ -3277,7 +3280,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.4.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.4.1"
},
"funding": [
{
@@ -3293,24 +3296,24 @@
"type": "tidelift"
}
],
- "time": "2023-07-30T20:28:31+00:00"
+ "time": "2023-12-26T14:02:43+00:00"
},
{
"name": "symfony/stopwatch",
- "version": "v6.3.0",
+ "version": "v7.0.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
- "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2"
+ "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/stopwatch/zipball/fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
- "reference": "fc47f1015ec80927ff64ba9094dfe8b9d48fe9f2",
+ "url": "https://api.github.com/repos/symfony/stopwatch/zipball/7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
+ "reference": "7bbfa3dd564a0ce12eb4acaaa46823c740f9cb7a",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/service-contracts": "^2.5|^3"
},
"type": "library",
@@ -3339,7 +3342,7 @@
"description": "Provides a way to profile code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/stopwatch/tree/v6.3.0"
+ "source": "https://github.com/symfony/stopwatch/tree/v7.0.0"
},
"funding": [
{
@@ -3355,24 +3358,24 @@
"type": "tidelift"
}
],
- "time": "2023-02-16T10:14:28+00:00"
+ "time": "2023-07-05T13:06:06+00:00"
},
{
"name": "symfony/string",
- "version": "v6.3.8",
+ "version": "v7.0.2",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "13880a87790c76ef994c91e87efb96134522577a"
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/13880a87790c76ef994c91e87efb96134522577a",
- "reference": "13880a87790c76ef994c91e87efb96134522577a",
+ "url": "https://api.github.com/repos/symfony/string/zipball/cc78f14f91f5e53b42044d0620961c48028ff9f5",
+ "reference": "cc78f14f91f5e53b42044d0620961c48028ff9f5",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-intl-grapheme": "~1.0",
"symfony/polyfill-intl-normalizer": "~1.0",
@@ -3382,11 +3385,11 @@
"symfony/translation-contracts": "<2.5"
},
"require-dev": {
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/http-client": "^5.4|^6.0",
- "symfony/intl": "^6.2",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/http-client": "^6.4|^7.0",
+ "symfony/intl": "^6.4|^7.0",
"symfony/translation-contracts": "^2.5|^3.0",
- "symfony/var-exporter": "^5.4|^6.0"
+ "symfony/var-exporter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -3425,7 +3428,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v6.3.8"
+ "source": "https://github.com/symfony/string/tree/v7.0.2"
},
"funding": [
{
@@ -3441,7 +3444,7 @@
"type": "tidelift"
}
],
- "time": "2023-11-09T08:28:21+00:00"
+ "time": "2023-12-10T16:54:46+00:00"
},
{
"name": "theseer/tokenizer",
diff --git a/src/Parser.php b/src/Parser.php
index b4bed81..d56e24c 100644
--- a/src/Parser.php
+++ b/src/Parser.php
@@ -49,6 +49,8 @@ public function getDefaultNodeRenderers(): array
Types::horizontalRule->name => static fn () => '
',
+ Types::hardBreak->name => static fn () => '
',
+
Types::table->name => static fn (Node $node) => "",
Types::tableRow->name => static fn (Node $node) => "{$node->renderContent()}
",
diff --git a/src/Types.php b/src/Types.php
index 1d33733..a67cf8c 100644
--- a/src/Types.php
+++ b/src/Types.php
@@ -26,4 +26,5 @@ enum Types
case tableRow;
case tableCell;
case table;
+ case hardBreak;
}
diff --git a/tests/ParserTest.php b/tests/ParserTest.php
index e3dfd75..1096078 100644
--- a/tests/ParserTest.php
+++ b/tests/ParserTest.php
@@ -19,7 +19,19 @@ public function testCompile()
$wysiwyg = new Parser();
$result = $wysiwyg->toHtml($json);
- $html = 'Das ist ein Test.
accordion does not exists.
accordion does not exists.
Before hard break
hardBreak does not exists.
After hard break
Lorem ipsum dolor sit amet, consetetur sadipscing elit.
Some empty p's above
Test
some quotes

Wohing geht das?
Und extern?
Und Targets?
';
+ $html = 'Das ist ein Test.
accordion does not exists.
accordion does not exists.
Before hard break
After hard break
Lorem ipsum dolor sit amet, consetetur sadipscing elit.
Some empty p's above
Test
some quotes

Wohing geht das?
Und extern?
Und Targets?
';
+ $this->assertSame($html, $result);
+ }
+
+ public function testHardBreak()
+ {
+ $path = __DIR__ . '/hardbreak.json';
+ $buff = file_get_contents($path);
+ $json = json_decode($buff, true);
+
+ $wysiwyg = new Parser();
+ $result = $wysiwyg->toHtml($json);
+ $html = 'This is some text before a hard break.
This is some text after the hard break.
';
$this->assertSame($html, $result);
}
diff --git a/tests/hardbreak.json b/tests/hardbreak.json
new file mode 100644
index 0000000..479c6ab
--- /dev/null
+++ b/tests/hardbreak.json
@@ -0,0 +1,22 @@
+{
+ "type": "doc",
+ "content": [
+ {
+ "type": "paragraph",
+ "content": [
+ {
+ "type": "text",
+ "text": "This is some text before a hard break."
+ },
+ {
+ "type": "hardBreak"
+ },
+ {
+ "type": "text",
+ "text": "This is some text after the hard break."
+ }
+ ]
+ }
+ ]
+ }
+
\ No newline at end of file