fix: consolidate Dependabot upgrades and in-range security fixes - #452
Merged
Conversation
Consolidates the open Dependabot PRs and the in-range security fixes surfaced by npm audit. Dependabot PRs: - @oclif/plugin-autocomplete 3.2.45 -> 3.2.54 (Ref #445) - yaml 2.8.0 -> 2.9.0 (Ref #444) - @oclif/plugin-version 2.1.2 -> 2.2.53 (Ref #441) - ts-jest removed instead of bumped (Ref #442) Additional security fixes, all within existing semver ranges: - simple-git 3.24.0 -> 3.36.0 (critical RCE, GHSA-r275-fr43-pm7q) - @asyncapi/protobuf-schema-parser 3.5.1 -> 3.8.2, clearing the protobufjs arbitrary-code-execution advisory (GHSA-xq3m-2v4x-88gg) - @asyncapi/parser 3.6.0 -> 3.6.1 - minimatch 9.0.5 -> 9.0.9 (three ReDoS advisories) - uuid 11.1.0 -> 11.1.1 (missing buffer bounds check) ts-jest was unused: jest.config.js transforms with @swc/jest as its sole transform. Removing it also drops the handlebars subtree, clearing seven advisories including two criticals. jest was never declared as a devDependency and was only present as ts-jest's auto-installed peer, so it is now declared explicitly at the version already in the lockfile. @apidevtools/json-schema-ref-parser 14 -> 15 (#443) is deliberately not included; v15 is ESM-only and cannot be imported from this CommonJS build without wider changes. npm audit: 45 -> 40 findings, criticals 9 -> 6. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
npm run generate:assets picks up the new plugin versions in the "See code" source links for the autocomplete and version commands. Link targets only -- no change to any command's flags, arguments or help output. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
Author
|
🎉 This PR is included in version 0.82.1 🎉 The release is available on: Your semantic-release bot 📦🚀 |
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.
Consolidates four open Dependabot PRs plus the in-range security fixes that
npm auditsurfaced but Dependabot did not open PRs for.Note
Dependabot alerts are disabled on this repository.
gh api repos/the-codegen-project/cli/dependabot/alertsreturns403, andsecurity_and_analysis.dependabot_security_updates.statusisdisabled. The security analysis behind this PR came fromnpm auditinstead, so findings are identified by GHSA rather than alert number. Worth enabling alerts.Dependabot PRs consolidated
@oclif/plugin-autocompleteyaml@oclif/plugin-versionts-jestTwo PR titles were stale: #441 proposed 2.2.52 (2.2.53 is current) and #443 proposed 15.5.0 (15.5.1 is current).
Additional security fixes
All within the existing semver ranges, so these are manifest-tightening plus lockfile refreshes:
simple-git(dev)blockUnsafeOperationsPluginbypass — GHSA-r275-fr43-pm7q, plus two high@asyncapi/protobuf-schema-parserprotobufjsnow 8.7.1, clearing GHSA-xq3m-2v4x-88gg@asyncapi/parserminimatchuuidsimple-gitwas twelve minors behind its range, which is how a critical sat unfixed without a Dependabot PR.Why
ts-jestwas removed rather than bumpedts-jestwas unused at the repo root —jest.config.jsdeclares'^.+\\.(t|j)sx?$': '@swc/jest'as its sole transform, and the only other reference is the out-of-scope runtime fixture. PR #442's value was entirely indirect: 29.4.12 requireshandlebars^4.7.9, clearing seven advisories including two criticals. Removing the dependency achieves that same outcome and drops the wholehandlebarssubtree.One thing this surfaced:
jestitself was never declared inpackage.json. It was only present asts-jest's auto-installed peer dependency, so removingts-jestsilently took the test runner with it and broke bothnpm testandeslint-plugin-jest.jestis now an explicit devDependency, pinned to^29.7.0— the exact version already resolved in the lockfile, so nothing about the test run changes. Jest 30 was left alone as an unanalysed major (@types/jestis still^29).Not included: #443,
@apidevtools/json-schema-ref-parser14 → 15Recommend closing #443. Its CI is red on every job, and the cause is structural rather than incidental:
"type": "module", noexportsmap, no CJS build. This package compiles to CommonJS (module: Node16, no"type": "module"), so the static import atsrc/codegen/inputs/openapi/parser.ts:2fails witherror TS1479. The fix is a dynamicawait import(), which the same file already does at line 76.@readme/openapi-parser@5.0.1pins ref-parser^14.1.1, so moving the root to 15.x forks the tree and leaves the two dereference paths inside the same function running different majors. Deduping requires@readme/openapi-parser6.3.1 — a second user-visible major.mergeKeysoption defaulting totrue, which deep-merges keys sitting alongside a$ref— common in OpenAPI. Both feed Modelina and therefore the generated models. Nothing in the current suite covers that delta.Separately, the v15.3.6 / v15.5.1 "safe URL resolver hardening" touches exactly the path where this repo deliberately sets
safeUrlResolver: false(src/utils/refResolvers.ts:35,87), and the hand-written browser shim mirrors the v14 surface.Verified not breaking: the
$RefParserclass,.parse()/.resolve()/.bundle()/.dereference(), the{order, canRead, read}resolver contract, the error classes, andengines.node(>=20in both majors).@asyncapi/parserdoes not depend on ref-parser, so the AsyncAPI path is unaffected. This is a dedicated PR with a reviewed snapshot delta, not a batch-sweep item.Validation
npm run buildnpm run typecheck/typecheck:testnpm run lint:fix--max-warnings 0npm run generate:assetsnpm testnpm run test:blackboxNo snapshot updates were needed: the
@asyncapi/parserbump did not move generated output. The only regenerated asset isdocs/usage.md, where two "See code" links pick up the new plugin versions — link targets only, no change to any command's flags or help output.The runtime tier was skipped deliberately. It is gated on a broker client (
nats,kafkajs,mqtt,amqplib) or Modelina changing, and none did. Running it would regeneratetest/runtime/typescript/src, overwriting hand-written expected-output surfaces for no coverage gain.prepare:prwas not run as a single shot: itsruntime:typescript:generatestep runsnpm ciinsidetest/runtime/typescriptand fails on pre-existing lockfile drift unrelated to this change. Its constituent steps were run directly, as listed above.Audit delta
45 findings → 40. Criticals 9 → 6.
Manual review / follow-ups
jsonpath-plus@7.2.0(critical RCE) is not fixable from here. The vulnerable copies come via@asyncapi/modelina→@asyncapi/multi-parser@2.3.0→ theparserapiv1/parserapiv2aliases, which pin old@asyncapi/parserreleases. Bumping our own@asyncapi/parserto 3.6.1 does not reach them. Needs an upstream fix in@asyncapi/multi-parser; deliberately not papered over with anoverridesentry.esbuild0.20.2 → ^0.28 (moderate, dev-server advisory that this repo never triggers). Needs a manifest change across eight 0.x minors, and the browser bundle is a shipped artifact — deserves its own PR with a bundle diff review.concurrently9 → 10 for ashell-quotecritical. Dev-only, used bytest:blackbox. Major bump.eslint8 → 9. Aflattedhigh sits under the EOL eslint 8 chain; the real fix is the flat-config migration (this repo still runsESLINT_USE_FLAT_CONFIG=false). Significant standalone work.fast-xml-parser(critical) arrives via@aws-sdk/coreunder theoclifpackaging tooling and via Modelina. Both are parent bumps.ajv/ramldt2jsonschemachain — accepted, not fixable. It sits under@asyncapi/raml-dt-schema-parser@4.0.24, which is the latest release; npm audit's only proposed "fix" is a major downgrade of the parent, i.e. dropping RAML support.package.jsonhas nooverridesblock, and none was added.Closes #445
Closes #444
Closes #441
Closes #442
🤖 Generated with Claude Code