Skip to content
Merged
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
5382810
fix(downgrader): a $ref cut at recursion in a copy reused later tells…
claude Nov 1, 2026
479b9ac
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
34ef504
fix(downgrader): keep a oneOf of object literals, and an additionalPr…
claude Nov 1, 2026
c750171
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
39f4ca4
fix(downgrader): follow a propertyNames $ref on only through $refs be…
claude Nov 1, 2026
f695074
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
c09da8c
fix(downgrader): rerun the conversion for a schema that loses a restr…
claude Nov 1, 2026
e9f7f25
fix(downgrader): follow an alias chain through inlined $refs and tagg…
claude Nov 1, 2026
905a75a
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
997f21b
perf(downgrader): skip the second pass when no not or oneOf kept its …
claude Nov 1, 2026
cb16050
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
7d46cbc
fix(downgrader): count an object that requires a readOnly or writeOnl…
claude Nov 1, 2026
9962db1
perf(downgrader): check one-way required properties without a closure…
claude Nov 1, 2026
9811aeb
refactor(downgrader): count any readOnly or writeOnly schema as loose
claude Nov 1, 2026
b320e25
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
6de99ef
refactor(downgrader): count a schema met again mid-cycle as loose, in…
claude Nov 1, 2026
11a7506
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
dd53f1c
refactor(downgrader): replace any $ref into items or additionalProper…
claude Nov 1, 2026
811283c
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
3c7ab4b
refactor(downgrader): follow a propertyNames $ref through one $ref only
claude Nov 1, 2026
8ba0f5a
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
37fdc08
fix(downgrader): replace a percent-encoded $ref with its target
claude Nov 1, 2026
c607746
docs(downgrader): note that a percent-encoded $ref is replaced by its…
claude Nov 1, 2026
a7b6f48
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
98c8199
fix(downgrader): write */* as the contentType of an Encoding Object t…
claude Nov 1, 2026
6270b78
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
ab1cc0e
fix(downgrader): leave out 3.2 security requirement names that are no…
claude Nov 1, 2026
8e0b9e3
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
261d141
fix(downgrader): write schema {} for a 3.2 path or cookie value sent …
claude Nov 1, 2026
b6fdfc6
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
45dd5bc
fix(downgrader): write {} for a 3.2 content $ref that does not resolve
claude Nov 1, 2026
928424c
Merge remote-tracking branch 'origin/main' into claude/project-thread…
claude Nov 1, 2026
131ad58
docs(downgrader): note that pattern is kept although 3.0 reads it in …
claude Nov 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/downgrader/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,7 @@ Accepts the default OAS dialect, which adds `discriminator`, `xml`, `externalDoc

#### Limitations

- `pattern` is kept as written, although 3.0 reads it in the ECMA-262 5.1 dialect, which has no Unicode mode and reads by UTF-16 code unit. So a pattern such as `\p{L}` is invalid there, and one such as `^.{1,64}$` counts an emoji as two characters, so it can reject values 3.1 accepts.
- `$ref`s to an `$anchor`, or written relative to an `$id`, are left as written and dangle. Every `$ref` is read as a JSON Pointer from the document root, and one into `$defs` is recognized by its `/$defs/` segment. One that percent-encodes a character, such as `#/%24defs/Pet`, is replaced by its target wherever it points.
- An `anyOf` or `oneOf` of `{ type: "null" }` and a branch that a `$ref` points into stays as written, so the `$ref` still resolves, and code generators read it as a union.
- `$ref`s into a keyword 3.0 removes, such as `prefixItems/0` or `propertyNames`, into a `oneOf` that becomes `anyOf`, or into the `items` or `properties` of a schema whose `type` list names more than one type besides `"null"`, which move into the branches of the `anyOf` or `oneOf` that takes the place of the list, are left as written and dangle. A `$ref` into the `allOf` of a schema that also holds a `$ref` resolves one member off, since that `$ref` becomes the first member of the `allOf`.
Expand Down
Loading