[SP-15258] Upgrade remaining flagged and stale dependencies - #91
Open
anaptfox wants to merge 1 commit into
Open
Conversation
spacetc62
force-pushed
the
upgrade-remaining-dependencies
branch
from
August 10, 2026 16:15
8595236 to
ab5dc38
Compare
anaptfox
force-pushed
the
upgrade-remaining-dependencies
branch
from
August 10, 2026 16:18
ab5dc38 to
f1d4502
Compare
spacetc62
reviewed
Aug 10, 2026
| "jsonwebtoken": "^9.0.2", | ||
| "losant-rest": "2.14.1", | ||
| "jsonwebtoken": "^9.0.3", | ||
| "losant-rest": "3.0.0", |
Member
There was a problem hiding this comment.
@eeerin do you recall why losant-rest was pinned to an exact version?
anaptfox
marked this pull request as ready for review
August 10, 2026 16:28
- losant-rest 2.14.1 -> 3.0.0, jsonwebtoken -> 9.0.3 (clears ~24 Dependabot alerts from losant-rest's vendored axios) - mocha 10 -> 11, sinon 15 -> 22, husky 8 -> 9, lint-staged 13 -> 17 (dev-only, migrate husky hook format to v9) - inquirer 8 -> 14 and update-notifier 5 -> 7, both ESM-only majors -- bridged via dynamic import (lib/inquirer.js, bin/losant.js) since the rest of the codebase is CommonJS - pnpm-workspace.yaml: override serialize-javascript/diff past mocha's own stale transitive pins (mocha hasn't bumped them upstream yet) - fix .gitignore's blanket *.yaml rule silently ignoring the new pnpm-workspace.yaml
eeerin
force-pushed
the
upgrade-remaining-dependencies
branch
from
August 10, 2026 16:54
f1d4502 to
71e5bb9
Compare
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.
What
losant-rest2.14.1 -> 3.0.0 andjsonwebtoken-> ^9.0.3. losant-rest 3.0.0 carries a patched axios (^1.10.0), clearing ~24 Dependabot alerts (SSRF, prototype pollution, DoS, credential leaks) from the old vendored 0.21.4/0.31.x. Stayed on 3.x rather than latest 4.x, which is ESM-only ("type": "module") and would break our CommonJSrequire('losant-rest')in lib/get-api.js.mocha10 -> 11,sinon15 -> 22,husky8 -> 9,lint-staged13 -> 17. None ship to users. Migrated.husky/pre-commitand thepreparescript to husky v9's simplified hook format.inquirer8 -> 14 andupdate-notifier5 -> 7 — both real runtime dependencies whose newer majors are ESM-only. Bridged via dynamicimport()rather than converting the whole CLI to ESM:lib/inquirer.js— a small cached-import wrapper; every call site still doesrequire('./inquirer').prompt(...), unchanged. Tests thatsinon.stub(inquirer, 'prompt')now require the wrapper too, so they stub the same object the source uses.bin/losant.js—update-notifier's single call site becomes a fire-and-forget dynamic import at the bottom of the file; doesn't block or affect command parsing above it.pnpm-workspace.yamloverrides forcingserialize-javascript(RCE + DoS) anddiff(DoS) past patched thresholds. Both are transitive-only viamocha, which still pins^6.0.2/^7.0.0itself (below the patched7.0.5/8.0.3) — no mocha release fixes this yet, so a version bump alone can't reach it..gitignore's blanket*.yamlrule, which was silently ignoring the newpnpm-workspace.yamluntil excepted.Testing
pnpm lint— passingpnpm test— 55/55 passingpnpm audit— no known vulnerabilities foundnode bin/losant.js --version/--help, and a live (non-mocked)inquirer.prompt()call to confirm the dynamic import resolves at runtime, not just under test mocks