Repository navigation
Keep fast-parser unquoting consistent at Unicode line boundaries - #1073
Merged
Merged
Conversation
AI-assisted implementation and verification using OpenAI Codex.
Owner
|
nice catch! |
renovate Bot
added a commit
to andrei-picus-tink/auto-renovate
that referenced
this pull request
Oct 17, 2026
| datasource | package | from | to | | ---------- | ------- | ------ | ------ | | npm | dotenv | 18.0.7 | 18.0.8 | ## [v18.0.8](https://github.com/motdotla/dotenv/blob/HEAD/CHANGELOG.md#1808-2026-10-14) ##### Changed - Fast parser should strip appended extra quotes ([#1073](motdotla/dotenv#1073)) - Type detail improvement ([#1074](motdotla/dotenv#1074))
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
parse()andparse(..., { fast: true })disagree on an unquoted value containing a Unicode line separator followed by a quoted segment. For example, withA=prefix\u2028""(an actual U+2028 character), the classic parser returnsprefixfollowed by the separator, while fast mode retains the quotes. The classic unquoting expression uses multiline anchors, which also apply at U+2028 and U+2029 inside an otherwise unquoted value.Apply those existing unquoting rules in the fast parser's Unicode-separator fallback. Retain the direct handling for ordinary values. Add string/Buffer cases for both separators and all three quote styles, with surrounding assignments and quoted/unterminated controls.
Validation: the new parity assertion fails on unchanged master; an independent 60-case matrix has 36 mismatches before and none after.
npm testpasses 1315 assertions with one existing skip, including build, Standard lint and declaration checks. The performance gate passes at 1.94x for Buffers and 1.92x for strings (minimum 1.5x).git diff --checkpasses. Tested on Node 22.23.1/Linux; Windows and other CI Node versions were not exercised. This clean-master branch excludes PR #1072.AI disclosure: OpenAI Codex assisted with investigation, implementation, regression tests, and this description.