docs: regenerate the OpenAPI spec and JSON schema guide

The published spec had fallen behind the runtime routes, including the cover-letter draft and version routes, and the schema guide was missing Check metadata. The OpenAPI test now lists the new letter routes and the Trash wording.
This commit is contained in:
Amruth Pillai
2026-09-29 00:11:06 +02:00
parent 6463a9e9c1
commit 26044b5346
4 changed files with 15716 additions and 648 deletions
+10 -2
View File
@@ -87,10 +87,18 @@ describe("generateOpenApiSpec", () => {
["put", "/cover-letters/{id}", "updateCoverLetter", "Update a cover letter", "200"],
["post", "/cover-letters/{id}/refresh-style", "refreshCoverLetterStyle", "Refresh cover letter style", "200"],
["post", "/cover-letters/{id}/duplicate", "duplicateCoverLetter", "Duplicate a cover letter", "200"],
["delete", "/cover-letters/{id}", "deleteCoverLetter", "Delete a cover letter", "200"],
["delete", "/cover-letters/{id}", "deleteCoverLetter", "Move a cover letter to Trash", "200"],
["post", "/cover-letters/from-resume", "copyEmbeddedCoverLetter", "Copy an embedded cover letter", "200"],
["get", "/cover-letters/{id}/export", "exportCoverLetter", "Export a cover letter", "200"],
["post", "/cover-letters/import", "importCoverLetter", "Import a cover letter", "200"],
["get", "/cover-letters/{id}/versions", "listCoverLetterVersions", "List a cover letter's versions", "200"],
[
"post",
"/cover-letters/{id}/versions/{versionId}/restore",
"restoreCoverLetterVersion",
"Restore a cover letter version",
"200",
],
] as const;
for (const [method, path, operationId, summary, successStatus] of expected) {
@@ -103,7 +111,7 @@ describe("generateOpenApiSpec", () => {
responses: { [successStatus]: { description: expect.any(String) } },
});
}
});
}, 15_000);
it("keeps published cover-letter operations in sync with the runtime spec", async () => {
const published = JSON.parse(
+26
View File
@@ -4752,6 +4752,32 @@ The full JSON Schema for Reactive Resume follows. You can also fetch the latest
"source"
],
"additionalProperties": false
},
"check": {
"description": "The author's Check choices for this resume. Not printed; missing until a choice is made.",
"type": "object",
"properties": {
"ignored": {
"default": [],
"description": "Check issues the author chose to ignore, by issue key (the rule code and where it applies).",
"type": "array",
"items": {
"type": "string"
}
},
"hiddenTerms": {
"default": [],
"description": "Job-posting terms the author hid from Job match as not true for them.",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"ignored",
"hiddenTerms"
]
}
},
"required": [
+15675 -646
View File
File diff suppressed because it is too large Load Diff
@@ -883,3 +883,8 @@ Choose one coherent shape for each union value. Required fields are local to tha
| `metadata.stylesheet.source` | `object` | yes | — | — |
| `metadata.stylesheet.source.languageVersion` | `integer` | yes | exclusiveMinimum: 0; maximum: 9007199254740991 | — |
| `metadata.stylesheet.source.text` | `string` | yes | — | — |
| `metadata.check` | `object` | no | — | The author's Check choices for this resume. Not printed; missing until a choice is made. |
| `metadata.check.ignored` | `array` | yes | default: [] | Check issues the author chose to ignore, by issue key (the rule code and where it applies). |
| `metadata.check.ignored[]` | `string` | — | — | — |
| `metadata.check.hiddenTerms` | `array` | yes | default: [] | Job-posting terms the author hid from Job match as not true for them. |
| `metadata.check.hiddenTerms[]` | `string` | — | — | — |