Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Empty Multiline Array Is Having an Empty Line and Whitespace Added Before It #590

Closed
pjkaufman opened this issue Nov 22, 2024 · 2 comments
Closed
Labels
bug Something isn't working

Comments

@pjkaufman
Copy link

Describe the bug
Thanks for creating this YAML parser. I have been working on using it in one of my projects and I have hit a weird scenario. It seems that in some cases, empty multi-line arrays are having their empty entry moved down a line and having its indentation space added on the line it was on. I am not sure if this YAML is considered correct under the YAML spec in use, so please let me know if the YAML is incorrect/out of spec.

To Reproduce

parseDocument then toString the following YAML:

FFF:
  - 

It seems to result in:

---
FFF:
  
  - 
---

This seems wrong to me, but maybe that is what the spec dictates should happen.

Expected behaviour

I expect the output to be as close to, if not the same as, the input as is possible:

FFF:
  - 

Versions (please complete the following information):

  • Environment: Node v18.0.0
  • yaml: 2.6.0

Additional context
I am not 100% sure on how nesting levels would affect this or if it would be fine to try to investigate the root cause of the issue. But I would be happy to take a stab at it if you are fine with that.

@eemeli
Copy link
Owner

eemeli commented Nov 23, 2024

Was able to replicate this; this is happening because a newline after a - sequence indicator is setting spaceBefore on the node, and when stringifying that's getting serialised before the - indicator.

Decided to fix this by ignoring newlines after the - for spaceBefore consideration.

@pjkaufman
Copy link
Author

Thanks for the quick turn around on this as well as creating and maintaining this library!

Blankll added a commit to geek-fun/serverlessinsight that referenced this issue Feb 18, 2025
![snyk-top-banner](https://github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123)


<h3>Snyk has created this PR to upgrade yaml from 2.6.1 to 2.7.0.</h3>

:information_source: Keep your dependencies up-to-date. This makes it
easier to fix existing vulnerabilities and to more quickly identify and
fix newly disclosed vulnerabilities when they affect your project.

<hr/>


- The recommended version is **1 version** ahead of your current
version.

- The recommended version was released **2 months ago**.



<details>
<summary><b>Release notes</b></summary>
<br/>
  <details>
    <summary>Package name: <b>yaml</b></summary>
    <ul>
      <li>
<b>2.7.0</b> - <a
href="https://github.com/eemeli/yaml/releases/tag/v2.7.0">2024-12-31</a></br><p>The
library is now available on JSR as <a href="https://jsr.io/@
eemeli/yaml" rel="nofollow">@ eemeli/yaml</a> and on deno.land/x as <a
href="https://deno.land/x/yaml" rel="nofollow">yaml</a>. In addition to
Node.js and browsers, it should work in Deno, Bun, and Cloudflare
Workers.</p>
<ul>
<li>Use .ts extension in all relative imports (<a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="2704495320" data-permission-text="Title is private"
data-url="eemeli/yaml#591"
data-hovercard-type="pull_request"
data-hovercard-url="/eemeli/yaml/pull/591/hovercard"
href="https://github.com/eemeli/yaml/pull/591">#591</a>)</li>
<li>Ignore newline after block seq indicator as space before value (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2684051086" data-permission-text="Title is private"
data-url="eemeli/yaml#590"
data-hovercard-type="issue"
data-hovercard-url="/eemeli/yaml/issues/590/hovercard"
href="https://github.com/eemeli/yaml/issues/590">#590</a>)</li>
<li>Require Node.js 14.18 or later (was 14.6) (<a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="2765423835" data-permission-text="Title is private"
data-url="eemeli/yaml#598"
data-hovercard-type="issue"
data-hovercard-url="/eemeli/yaml/issues/598/hovercard"
href="https://github.com/eemeli/yaml/issues/598">#598</a>)</li>
</ul>
      </li>
      <li>
<b>2.6.1</b> - <a
href="https://github.com/eemeli/yaml/releases/tag/v2.6.1">2024-11-19</a></br><ul>
<li>Do not strip <code>:00</code> seconds from <code>!!timestamp</code>
values (<a class="issue-link js-issue-link" data-error-text="Failed to
load title" data-id="2561052215" data-permission-text="Title is private"
data-url="eemeli/yaml#578"
data-hovercard-type="pull_request"
data-hovercard-url="/eemeli/yaml/pull/578/hovercard"
href="https://github.com/eemeli/yaml/pull/578">#578</a>, with
thanks to <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/qraynaud/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://github.com/qraynaud">@ qraynaud</a>)</li>
<li>Tighten regexp for JSON <code>!!bool</code> (<a class="issue-link
js-issue-link" data-error-text="Failed to load title"
data-id="2651384053" data-permission-text="Title is private"
data-url="eemeli/yaml#587"
data-hovercard-type="pull_request"
data-hovercard-url="/eemeli/yaml/pull/587/hovercard"
href="https://github.com/eemeli/yaml/pull/587">#587</a>, with
thanks to <a class="user-mention notranslate" data-hovercard-type="user"
data-hovercard-url="/users/vra5107/hovercard"
data-octo-click="hovercard-link-click"
data-octo-dimensions="link_type:self"
href="https://github.com/vra5107">@ vra5107</a>)</li>
<li>Default to literal block scalar if folded would overflow (<a
class="issue-link js-issue-link" data-error-text="Failed to load title"
data-id="2594165845" data-permission-text="Title is private"
data-url="eemeli/yaml#585"
data-hovercard-type="issue"
data-hovercard-url="/eemeli/yaml/issues/585/hovercard"
href="https://github.com/eemeli/yaml/issues/585">#585</a>)</li>
</ul>
      </li>
    </ul>
from <a href="https://github.com/eemeli/yaml/releases">yaml
GitHub release notes</a>
  </details>
</details>

---

> [!IMPORTANT]
>
> - Check the changes in this PR to ensure they won't cause issues with
your project.
> - This PR was automatically created by Snyk using the credentials of a
real user.

---

**Note:** _You are seeing this because you or someone else with access
to this repository has authorized Snyk to open upgrade PRs._

**For more information:** <img
src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiIzYjkwN2M1MC0zODJkLTQyMjQtYTFhZC02OGFmODhhNWY3MTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjNiOTA3YzUwLTM4MmQtNDIyNC1hMWFkLTY4YWY4OGE1ZjcxMyJ9fQ=="
width="0" height="0"/>

> - 🧐 [View latest project
report](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 📜 [Customise PR
templates](https://docs.snyk.io/scan-using-snyk/pull-requests/snyk-fix-pull-or-merge-requests/customize-pr-templates?utm_source=&utm_content=fix-pr-template)
> - 🛠 [Adjust upgrade PR
settings](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32/settings/integration?utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr)
> - 🔕 [Ignore this dependency or unsubscribe from future upgrade
PRs](https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32/settings/integration?pkg&#x3D;yaml&amp;utm_source&#x3D;github&amp;utm_medium&#x3D;referral&amp;page&#x3D;upgrade-pr#auto-dep-upgrades)

[//]: #
'snyk:metadata:{"customTemplate":{"variablesUsed":[],"fieldsUsed":[]},"dependencies":[{"name":"yaml","from":"2.6.1","to":"2.7.0"}],"env":"prod","hasFixes":false,"isBreakingChange":false,"isMajorUpgrade":false,"issuesToFix":[],"prId":"3b907c50-382d-4224-a1ad-68af88a5f713","prPublicId":"3b907c50-382d-4224-a1ad-68af88a5f713","packageManager":"npm","priorityScoreList":[],"projectPublicId":"9c72c875-e7a2-4e68-85a9-7b26a5bc5b32","projectUrl":"https://app.snyk.io/org/blankll/project/9c72c875-e7a2-4e68-85a9-7b26a5bc5b32?utm_source=github&utm_medium=referral&page=upgrade-pr","prType":"upgrade","templateFieldSources":{"branchName":"default","commitMessage":"default","description":"default","title":"default"},"templateVariants":[],"type":"auto","upgrade":[],"upgradeInfo":{"versionsDiff":1,"publishedDate":"2024-12-31T04:40:47.460Z"},"vulns":[]}'

Co-authored-by: snyk-bot <snyk-bot@snyk.io>
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants