• 
      

    Update dependencies, build, and testing for Ink.

    Review Request #14645 — Created Oct. 20, 2025 and submitted — 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 Storybook 10.
    • Update to ESLint 9.

    This includes a few changes specifically related to Storybook:

    • We no longer need to manually inject axe-playwright into the page,
      since the a11y tests are now handled automatically.
    • Fixed the text-color assignment in theme.css, since there's actually
      nothing called --ink-p-text-color.
    • Pinned the version of @types/react because @types/mdx uses older
      names for things even when @mdx/react seems fine.

    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