Skip to content

Commit 0705d9d

Browse files
Enes Yağızclaude
andcommitted
fix(npm): skip unknown packument values with TrySkip
The packument is deserialized from a stream, where Utf8JsonReader.Skip throws on a partial buffer. An old author object with a url before its name (glob, minimatch) made the whole lookup fail and the package was reported as not found on npm. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 41a91c7 commit 0705d9d

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

‎src/backend/PkgDiff.Infrastructure/Services/NpmService.cs‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ private class NpmAuthorConverter : JsonConverter<NpmAuthor>
265265
var propName = reader.GetString();
266266
reader.Read();
267267
if (propName == "name") author.Name = reader.GetString();
268-
else reader.Skip();
268+
else reader.TrySkip();
269269
}
270270
}
271271
return author;
@@ -299,7 +299,7 @@ private class NpmRepositoryConverter : JsonConverter<NpmRepository>
299299
return new NpmRepository { Url = reader.GetString() };
300300
if (reader.TokenType != JsonTokenType.StartObject)
301301
{
302-
reader.Skip();
302+
reader.TrySkip();
303303
return null;
304304
}
305305

@@ -312,7 +312,7 @@ private class NpmRepositoryConverter : JsonConverter<NpmRepository>
312312
reader.Read();
313313
var value = reader.TokenType == JsonTokenType.String ? reader.GetString() : null;
314314
if (reader.TokenType is JsonTokenType.StartObject or JsonTokenType.StartArray)
315-
reader.Skip();
315+
reader.TrySkip();
316316
switch (propName)
317317
{
318318
case "type": repository.Type = value; break;
@@ -349,11 +349,11 @@ private class LooseStringConverter : JsonConverter<string?>
349349
if (reader.TokenType == JsonTokenType.String)
350350
first ??= reader.GetString();
351351
else if (reader.TokenType is JsonTokenType.StartObject or JsonTokenType.StartArray)
352-
reader.Skip();
352+
reader.TrySkip();
353353
}
354354
return first;
355355
case JsonTokenType.StartObject:
356-
reader.Skip();
356+
reader.TrySkip();
357357
return null;
358358
default:
359359
return null;

0 commit comments

Comments
 (0)