Skip to content

chore: patch dev dependency advisories and complete publish metadata - #4

Open
murdore wants to merge 2 commits into
releasefrom
chore/security-patches-and-publish-metadata
Open

chore: patch dev dependency advisories and complete publish metadata#4
murdore wants to merge 2 commits into
releasefrom
chore/security-patches-and-publish-metadata

Conversation

@murdore

@murdore murdore commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Closes the 10 open Dependabot advisories and makes the package publish-ready.

Security

All 10 advisories reach the repo through pnpm-lock.yaml, and all 10 are dev-onlypnpm why --prod finds none of them in the production tree, and the published tarball contains only dist/ plus README.md. So consumers were never exposed. Patched regardless.

Package Before After Advisory
brace-expansion 1.1.12 1.1.16 ReDoS via exponential-time expansion
flatted 3.3.3 3.4.2 prototype pollution in parse()
js-yaml 4.1.0 4.3.1 quadratic CPU in merge keys / !!omap; prototype pollution in <<
minimatch 3.1.2 / 9.0.5 3.1.3 / 9.0.7 ReDoS in matchOne() backtracking
picomatch 2.3.1 2.3.2 method injection in POSIX classes

Applied as pnpm.overrides, pinned to an exact patch inside each existing major. That precision is deliberate: a first attempt using open >= ranges dragged js-yaml to 5.x and minimatch to 10.x — major upgrades of the lint/test toolchain — while still leaving minimatch@9.0.5 unpatched.

One upstream consequence worth noting: brace-expansion 2.x left the tree entirely, because minimatch@9.0.7 depends on brace-expansion@5.0.9. That version is outside both advisory ranges. The brace-expansion@2 override is kept anyway so the range cannot reappear unpatched if resolution shifts.

Verified: a scan of the regenerated lockfile finds no version matching any advisory range, and tsc, eslint and all 53 tests pass on the upgraded tooling.

Publish metadata

The package has never been published (registry.npmjs.org/workforge → 404). author was still the scaffold placeholder "Your Name", and there was no repository link for npm to render.

author      Sachin Sharma <sachiny09@gmail.com>
repository  git+https://github.com/juspay/workforge.git
homepage    https://github.com/juspay/workforge#readme
bugs        https://github.com/juspay/workforge/issues

npm pack --dry-run produces workforge-1.5.0.tgz, 118 kB, 106 files.

Version left at 1.5.0 — nothing has been published, so there is no released version to supersede.

Not done here

Publishing itself. npm whoami returns 401 in this environment, and claiming a public package name is a one-way action.

murdore added 2 commits August 9, 2026 15:29
Security
--------

Ten open Dependabot advisories, all reached through pnpm-lock.yaml. Every one
is a dev-only transitive dependency — `pnpm why --prod` finds none of them in
the production tree, and the published package ships only dist/ plus README,
so consumers were never exposed. Patched anyway.

  brace-expansion  1.1.12 -> 1.1.16   ReDoS via exponential-time expansion
  flatted          3.3.3  -> 3.4.2    prototype pollution in parse()
  js-yaml          4.1.0  -> 4.3.1    quadratic CPU in merge keys / !!omap,
                                      prototype pollution in merge (<<)
  minimatch        3.1.2  -> 3.1.3    ReDoS in matchOne() backtracking
                   9.0.5  -> 9.0.7
  picomatch        2.3.1  -> 2.3.2    method injection in POSIX classes

Applied as pnpm.overrides pinned to an exact patch inside each existing
major. An earlier attempt using open `>=` ranges dragged js-yaml to 5.x and
minimatch to 10.x while leaving minimatch 9.0.5 unpatched, so the bounds are
deliberate. brace-expansion 2.x left the tree entirely: minimatch 9.0.7
depends on brace-expansion 5.0.9 upstream, which is outside both advisory
ranges. The 2.x override is kept so the range cannot reappear unpatched.

Verified: no version matching any advisory range remains in the lockfile, and
build, lint and all 53 tests still pass on the upgraded tooling.

Publish metadata
----------------

The package has never been published; `author` was still the scaffold
placeholder "Your Name" and there was no repository link for npm to show.

  author      Sachin Sharma <sachiny09@gmail.com>
  repository  git+https://github.com/juspay/workforge.git
  homepage    .../workforge#readme
  bugs        .../workforge/issues

Version left at 1.5.0: nothing has been published, so there is no released
version to supersede.
Scoped to the org that owns the repository. The unscoped name was never
published, so nothing is being renamed out from under existing users.

- publishConfig.access = "public": scoped packages default to restricted,
  which would make the first publish private.
- README install lines updated to the scoped name. The binaries are still
  `workforge` and `wf` — only the package identifier changes.
- The workflow example ran `npx workforge` with no install step, which under
  a scoped name would fetch an unrelated package; it now uses
  `npx @juspay/workforge`. It was also missing the `create` subcommand, so it
  could never have worked as written.
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.

1 participant