Skip to content

Audit fix toolchain#1

Merged
partouf merged 4 commits into
ce-mainfrom
audit-fix-toolchain
Jun 20, 2026
Merged

Audit fix toolchain#1
partouf merged 4 commits into
ce-mainfrom
audit-fix-toolchain

Conversation

@partouf

@partouf partouf commented Jun 20, 2026

Copy link
Copy Markdown
Member

No description provided.

partouf and others added 4 commits June 20, 2026 16:58
Reduces `npm audit` findings from 98 (24 critical) to 16 (0 critical) and
gets the build + test suite working again on modern Node, where the old
toolchain crashed with "primordials is not defined" (gulp 3).

Dependency upgrades (all dev/build-only; nothing ships to consumers):
- grunt 0.4 -> 1.6, grunt plugins to grunt-1-compatible majors
- karma 0.13 -> 6.4 with modern launchers; drop dead PhantomJS/IE launchers
- handlebars 2.0-alpha -> 4.7, tslint 3 -> 5 (+ typescript 3.9)

Build pipeline:
- Replace the unmaintained gulp / grunt-gulp pipeline (hard-pinned to gulp 3,
  broken on Node 24) with native grunt-contrib-concat + grunt-contrib-uglify.
  concat reproduces the (function($){...})(window.$) IIFE via banner/footer.
- Remove the dead gulpfile.js.
- Fix invalid CSS in goldenlayout-translucent-theme.less (`#dodgerblue` ->
  `dodgerblue`) that the stricter LESS 3.x compiler rejects.

Tests:
- Run Karma under headless Chrome (ChromeHeadlessNoSandbox) instead of PhantomJS.
- Add test/jasmine-compat.js shimming the legacy Jasmine 1.x API
  (runs/waits/waitsFor, spy.calls.length, spy.mostRecentCall) onto Jasmine 2+,
  and disable spec randomisation (specs share state across `it` blocks).
- All 104 specs pass.

Tooling cleanup:
- Replace the deprecated `typings` tool (+ typings.json, install-breaking
  `prepublish` script) with @types/jquery; `npm install` now succeeds without
  --ignore-scripts.
- Drop tslint rules removed in tslint 5 (label-undefined, no-unreachable).
- Commit package-lock.json for reproducible installs / auditing.

Remaining 16 advisories are "no fix available" / breaking-only, confined to
release-and-watch tooling (grunt-release -> superagent/shelljs, grunt -> js-yaml,
grunt-contrib-watch -> gaze -> minimatch) that runs locally and never ships.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
dist/ is regenerated by `grunt dist` and shouldn't be tracked.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Runs on ubuntu-latest with Node 22: npm ci, npm test (Karma under headless
Chrome + tslint), then grunt dist. Replaces the obsolete .travis.yml
(pinned to Node 4.2).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@partouf partouf merged commit 4e92663 into ce-main Jun 20, 2026
1 check passed
@partouf partouf deleted the audit-fix-toolchain branch June 20, 2026 15:08
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