Skip to content

chore(deps-dev): update @hey-api/openapi-ts and regenerate client (TS7-compatible) - #1367

Merged
gabrielseco merged 2 commits into
mainfrom
chore/update-openapi-ts-0.99.0
Sep 24, 2026
Merged

gabrielseco merged 2 commits into
mainfrom
chore/update-openapi-ts-0.99.0

Conversation

@gabrielseco

@gabrielseco gabrielseco commented Sep 23, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Updates the @hey-api/openapi-ts code generator and regenerates the API client from the production gateway schema. No behavior change for consumers of this package.

Why

Follows up on renovate PR #1137, which proposed bumping @hey-api/openapi-ts (0.95.0 → 0.97.3) to pick up a fix for a prototype-pollution issue in the generated buildClientParams helper (CVE-2026-48819 / GHSA-hhx9-57xq-r5rw).

While doing this, I found npm run openapi-ts was broken on main: @hey-api/openapi-ts (every stable release up to and including 0.99.0) crashes under this repo's pinned typescript@7.0.2 (Cannot read properties of undefined (reading 'AnyKeyword')), because its peerDependencies cap at TypeScript 6.x — see hey-api/hey-api#4235. This PR fixes that rather than just bumping past it: it pins @hey-api/openapi-ts to the next prerelease tag, which drops the typescript dependency entirely (confirmed: no peerDependencies field in its package.json at all), so codegen works cleanly again with no local workaround.

I also tried the officially-documented TS6/TS7 side-by-side npm alias approach first, scoped via package.json overrides to just @hey-api/openapi-ts's own typescript resolution — but npm's peer-dependency resolver won't isolate a conflicting peer dep that way (even with --force, it just leaves the tree in an invalid state), so the next prerelease is the actual fix that landed here.

engines.node in package.json is left untouched — CI already runs Node 24.15.0, that field is unrelated to this generator bump.

What changed

Toggle details
  • @hey-api/openapi-ts devDependency: 0.95.0 → 0.0.0-next-20260824173136 (exact-pinned; this is a prerelease tag, not a normal semver bump — worth revisiting once a stable release ships with the TS7 fix, tracked via the linked upstream issue).
  • src/client/**/*.gen.ts regenerated via npm run openapi-ts against the production gateway.
  • Diff is additive: new SDK endpoints/types (e.g. job-title eligibility/review endpoints), a few new generator-internal types (ClientMeta, Auth.key), and the buildClientParams/stripEmptySlots hardening from the CVE fix (slots built with Object.create(null) instead of {}, guarding against __proto__-keyed input).
  • The next prerelease has a minor cosmetic regression: multi-line JSDoc descriptions from the OpenAPI spec are left with inconsistent leading whitespace (dedent logic quirk) in a handful of sdk.gen.ts/types.gen.ts comments. No type or behavior changes — diffed the 0.99.0-generated output against the next-generated output and confirmed the only differences are comment whitespace.
  • Does not touch the public API surface in src/index.tsx.

Screenshots

N/A

Related Resources

Testing

  • N/A — generated client only, no UI change
  • Feature flag: N/A

…client

Bumps @hey-api/openapi-ts 0.95.0 -> 0.99.0 (picks up the buildClientParams
prototype-pollution fix, GHSA-hhx9-57xq-r5rw / CVE-2026-48819) and
regenerates src/client against the production gateway schema.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

📦 Bundle Size Report

Metric Current Previous Change Status
Total (gzip) 165.22 kB 165.18 kB +31 B (+0.0%) 🔴
Total (raw) 554.53 kB 550.35 kB +4.19 kB (+0.8%) 🔴
CSS (gzip) 21.94 kB 21.94 kB 0 B (0%) 🟢
CSS (raw) 114.43 kB 114.43 kB 0 B (0%) 🟢

Size Limits

  • ✅ Total gzipped: 165.22 kB / 350 kB (47.2%)
  • ✅ Total raw: 554.53 kB / 850 kB (65.2%)
  • ✅ CSS gzipped: 21.94 kB / 25 kB (87.8%)

Largest Files (Top 5)

  1. CheckBoxField-D0aB0oAz.js - 19.38 kB (new)
  2. ContractorOnboarding-ntjumchq.js - 14.69 kB (new)
  3. Onboarding-DRhC2pQC.js - 11.26 kB (new)
  4. Termination-Dtfa0ZmM.js - 11.08 kB (new)
  5. styles.css - 10.97 kB (0 B (0%))
View All Files (74 total)
File Size (gzip) Change
CheckBoxField-D0aB0oAz.js 19.38 kB new
ContractorOnboarding-ntjumchq.js 14.69 kB new
Onboarding-DRhC2pQC.js 11.26 kB new
Termination-Dtfa0ZmM.js 11.08 kB new
styles.css 10.97 kB 0 B (0%)
index.css 10.97 kB 0 B (0%)
CostCalculator-Dyngpo6J.js 10.7 kB new
internals-B-eF3ohV.js 8.25 kB new
sdk.gen-BRZyWfqW.js 5.64 kB new
JSONSchemaForm-DcG1b9JQ.js 5.03 kB new

✅ Bundle size check passed

@github-actions

github-actions Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Deploy preview for adp-cost-calculator ready!

Project:adp-cost-calculator
Status: ✅  Deploy successful!
Preview URL:https://adp-cost-calculator-begkjrhps-remotecom.vercel.app
Latest Commit:edad2ac

Deployed with vercel-action

@github-actions

github-actions Bot commented Sep 23, 2026 •

Copy link
Copy Markdown
Contributor

Deploy preview for remote-flows ready!

Project:remote-flows
Status: ✅  Deploy successful!
Preview URL:https://remote-flows-fwcw09y1h-remotecom.vercel.app
Latest Commit:edad2ac

Deployed with vercel-action

@github-actions

Copy link
Copy Markdown
Contributor

📊 Coverage Report

⚪ Coverage unchanged

Metric Current Previous Change Status
Lines 86.19% 86.19% 0% ⚪
Statements 85.77% 85.77% 0% ⚪
Functions 84.73% 84.73% 0% ⚪
Branches 77.66% 77.66% 0% ⚪

Detailed Breakdown

Lines Coverage
  • Covered: 4780 / 5546
  • Coverage: 86.19%
  • Change: 0% (0 lines)
Statements Coverage
  • Covered: 4864 / 5671
  • Coverage: 85.77%
  • Change: 0% (0 statements)
Functions Coverage
  • Covered: 1276 / 1506
  • Coverage: 84.73%
  • Change: 0% (0 functions)
Branches Coverage
  • Covered: 2962 / 3814
  • Coverage: 77.66%
  • Change: 0% (0 branches)

✅ Coverage check passed

…7 compat

The stable 0.99.0 (and every prior release) crashes when generating
under this repo's pinned typescript@7.0.2, since its peerDependencies
cap at TypeScript 6.x (upstream: hey-api/hey-api#4235). The next
prerelease drops the typescript dependency entirely, so `npm run
openapi-ts` works out of the box again with no local workaround needed.

Regenerated src/client with this version; diff vs the previous commit
is comment-indentation only in sdk.gen.ts/types.gen.ts (a known cosmetic
quirk in this prerelease's doc-comment dedent logic), no type/behavior
changes.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@gabrielseco gabrielseco changed the title chore(deps-dev): update @hey-api/openapi-ts to 0.99.0 and regenerate client chore(deps-dev): update @hey-api/openapi-ts and regenerate client (TS7-compatible) Sep 23, 2026
@gabrielseco gabrielseco self-assigned this Sep 23, 2026

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit edad2ac. Configure here.

Comment thread package.json Resolved
@gabrielseco
gabrielseco merged commit 98c0b6d into main Sep 24, 2026
15 checks passed
@gabrielseco
gabrielseco deleted the chore/update-openapi-ts-0.99.0 branch September 24, 2026 08:52
gabrielseco added a commit that referenced this pull request Sep 24, 2026
#1368)

* ci: smoke-test that npm run openapi-ts still works on dependency bumps

Nothing in CI actually exercises the openapi-ts codegen path today, so a
dependency bump that breaks it (e.g. the typescript 6->7 migration in
#1325, which broke @hey-api/openapi-ts's peer-dependency compatibility —
see #1367) only surfaces when someone manually regenerates the client.

Runs on any PR touching package.json/package-lock.json rather than just
@hey-api/openapi-ts's own line, since the actual trigger can be any
dependency in that graph. Only fails on a nonzero exit (the generator
crashing) — deliberately does not diff the regenerated output against
what's committed, since the production schema drifts independently of
any given PR and a diff there isn't itself a failure.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

* ci: drop comment from openapi codegen smoke-test workflow

Rationale belongs in the PR description, not a multi-line comment block.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
@gabrielseco gabrielseco mentioned this pull request Sep 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants