Skip to content

Modernize/full stack upgrade#2282

Closed
consigcody94 wants to merge 3 commits intogchq:masterfrom
consigcody94:modernize/full-stack-upgrade
Closed

Modernize/full stack upgrade#2282
consigcody94 wants to merge 3 commits intogchq:masterfrom
consigcody94:modernize/full-stack-upgrade

Conversation

@consigcody94
Copy link
Copy Markdown

Description
Provide a description of the pull request and the changes that it makes.

Existing Issue
If this pull request relates to an existing issue in the repository, please link it here.

Screenshots
If the pull request changes any visual aspects of CyberChef, please include screenshots.

AI disclosure
If you have used any AI tools while creating this code, you must declare your usage along with the name of the tools that you used.
Regardless of AI tool usage, you are responsible for any code that you submit, and we expect you to have checked the code and have enough of an understanding of it to answer any questions we might have.

Test Coverage
Please ensure you have added test coverage for your changes.

Build System:
- Replace Grunt with npm scripts and Node.js helper scripts
- Remove worker-loader, use native Webpack 5 worker syntax
- Add Rspack config as faster alternative bundler (5-23x faster)
- Replace platform-specific sed postinstall hacks with cross-platform Node.js script
- Update browser targets from Chrome 50/Firefox 38 to Chrome 80/Firefox 78/Safari 14
- Fix import assertions (assert -> with) for Node 24 compatibility

Dependencies:
- Replace deprecated crypto-js with native RC4 implementation and @noble/hashes EVP KDF
- Replace blakejs with @noble/hashes/blake2b and blake2s
- Add @noble/hashes for MD5, SHA1/2/3, RIPEMD160, HMAC, HKDF (crypto-api fallback for legacy algos)
- Replace lodash with native CaseConvert.mjs utility
- Replace moment.js in web layer with date-fns
- Add date-fns and date-fns-tz dependencies
- Remove jquery, snackbarjs, arrive, bootstrap-colorpicker, bootstrap-material-design, popper.js v1, lodash, blakejs, crypto-js

UI Modernization:
- Upgrade Bootstrap 4.6.2 to Bootstrap 5.3 (87 data attribute renames)
- Remove bootstrap-material-design (unmaintained)
- Remove jQuery dependency entirely (38 calls replaced with native DOM + BS5 JS API)
- Add custom Snackbar.mjs notification utility (replaces snackbarjs)
- Replace bootstrap-colorpicker with native HTML color input

Testing:
- Add Vitest config and adapter for running existing TestRegister tests
- Add Playwright config and E2E test replacing Nightwatch
- Update CI workflows to use npm scripts and Playwright
Update expected values in Hex to PEM pipeline tests to include Base64
padding (==). jsrsasign's hex2b64 has always produced padded Base64,
but the test expectations were missing the padding characters. This
caused test failures on Node 24 where btoa behavior is stricter.
Document all build system, dependency, UI, and testing changes.
List every removed/replaced/added dependency with rationale.
Update browser support targets. Add new files reference.
Note upstream compatibility and 243/243 test pass rate.
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Mar 23, 2026

CLA assistant check
All committers have signed the CLA.

@C85297
Copy link
Copy Markdown
Member

C85297 commented Mar 24, 2026

@consigcody94 thank you for submitting a pull request. Unfortunately, we can't consider the PR until you fill in the PR description - please could you do so, and reopen the pull request when it is ready.

@C85297 C85297 closed this Mar 24, 2026
@GCHQDeveloper581
Copy link
Copy Markdown
Contributor

Also - could you please look at PRs #2273 and #2278 which address the same issue before expending further effort.. We would actively welcome a Pr against the node-version-update branch should you have anything not covered by those 2 PRs.

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.

4 participants