Update dependencies, build, and testing for Ink.

Review Request #14645 — Created Oct. 20, 2025 and updated — Latest diff uploaded

Information

Ink
master

Reviewers

This change accomplishes several tasks towards unifying our JavaScript
build infrastructure and supported more modern node.js environments:

  • Replace many specific dependencies with a new dependency on
    @beanbag/js-buildkit.
  • Eliminate unused or obsolete dependencies.
  • Base tsconfig.json on our shared config.
  • Copy our customized @types/backbone into this source tree, rather
    than referencing it from node_modules. I'm working on upstreaming
    these changes so we don't have to ship our own at all.
  • Ship types as both index.d.ts and index.d.mts.
  • Update to ESLint 9.

Plus a few changes relating to fixing unit tests:

  • Use @babel/register for transpiling during jasmine testing rather
    than ts-node. It seems like the ts-node one was broken on modern
    node environments, and using babel instead keeps our unit tests
    running in a much closer mode to how the code is built for packaging.
    This required some massaging of our babel configuration to allow
    slightly different plugin configurations between dev and test.
  • Import MenuItemsRadioGroup as type MenuItemsRadioGroup in
    menuItemModel.ts in order to prevent a circular dependency.
  • Use this.constructor for static member access inside MenuView, so
    unit tests and the class itself aren't looking at different versions
    of static members.
  • Did a build.
  • Ran unit tests.
  • Ran storybook.
  • Used this is a workspace with other packages that depend on it.

Commits

Files