Skip to content

chore(deps): bump ava to 8.0.1 and oxlint to 1.79.0 in bashkit-js - #2339

Merged
chaliy merged 2 commits into
mainfrom
claude/dep-ava8-js-npm
Aug 22, 2026
Merged

chore(deps): bump ava to 8.0.1 and oxlint to 1.79.0 in bashkit-js#2339
chaliy merged 2 commits into
mainfrom
claude/dep-ava8-js-npm

Conversation

@chaliy

Copy link
Copy Markdown
Contributor

What changed

Takes the grouped js-npm Dependabot update (ava 6.4.1 → 8.0.1, oxlint 1.78.0 → 1.79.0) and adds the fixups the bot could not make on its own.

  • ava.extensions moves from the object form to the array form — ava 8 removed the object form.
  • The two ava-hosted CI steps (pnpm test, pnpm run test:interop) now run on Node 22+ only. ava 8 requires Node 22.20+.
  • The random-fs interop spec becomes interop.spec.mts so it loads as ESM.

No runtime or published-package change: ava and oxlint are both devDependencies.

Why

Dependabot opened #2322 for this group, but the ava bump is a breaking major and the PR fails CI as-is:

✘ The extensions option must be an array
ELIFECYCLE Test failed.

Two further breakages surface only after that one is fixed:

  1. ava 8 requires Node 22.20+, so the node 20 matrix job cannot run it at all.
  2. ava 8 loads every test file through import(). test-fixtures/random-fs/ has its own package.json with no "type": "module", so interop.spec.ts resolved as CommonJS and ava's now ESM-only worker failed to initialise:
AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
assert.ok(refs.runnerChain)
at .../ava@8.0.1/node_modules/ava/lib/worker/main.js:11:21
at Module._compile (node:internal/modules/cjs/loader:1705:14)

Renaming to .mts makes the file ESM regardless of the nearest package.json, and leaves the napi-generated CommonJS index.js alone — the spec already reaches it through createRequire.

Node 20 stays in the JS matrix. The package still declares engines: node >= 18, and node 20 continues to run the runtime-compat tests and all six examples, which exercise the shipped binding. Only the dev-time test runner moves forward.

Before / After

Before (Dependabot #2322, node 20/22/24/latest all red):

> @everruns/bashkit@0.16.0 test
> ava
✘ The extensions option must be an array
ELIFECYCLE Test failed. See above for more details.

After, on Node 22.22.2:

$ pnpm test
569 tests passed
$ pnpm run test:interop
√ downstream random filesystem external mounts into bash
1 test passed
$ pnpm exec tsc --noEmit -p tsconfig.check.json
(clean)
$ pnpm run lint
(3 pre-existing warnings, unchanged)

pnpm install --frozen-lockfile applies the supertap@3.0.1 patch unchanged — ava 8 still resolves that exact version.

Risk

  • Low
  • Node 20 no longer runs the ava suites. Runtime-compat tests and the examples still cover node 20, so a node-20 regression in the shipped binding is still caught; a node-20-only regression in behaviour covered solely by the ava suite would not be.
  • tsconfig.check.json now globs test-fixtures/**/*.spec.mts; verified with tsc --listFiles that the renamed spec is still type-checked.

Checklist

  • Tests added or updated
  • Backward compatibility considered

Closes#2322.


Generated by Claude Code

ava 8 drops the object form of the `extensions` config and requires
Node 22.20+. Convert `extensions` to the array form and gate the two
ava-hosted CI steps to Node 22+.
Node 20 stays in the JS matrix: the package still declares
`engines: node >= 18`, and the runtime-compat tests plus the examples
continue to exercise the shipped binding there. Only the dev-time test
runner moves forward.
Supersedes the grouped Dependabot PR, which could not apply the
breaking-change fixups on its own.
ava 8 loads every test file through import(). The random-fs fixture
directory has its own package.json without "type": "module", so the
spec resolved as CommonJS and ava's ESM-only worker failed to
initialise.
Rename it to .spec.mts, which is ESM regardless of the nearest
package.json, and leave the napi-generated CommonJS index.js alone —
the spec already reaches it through createRequire. Track the new
extension in the ava config and the type-check include.
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with Cloudflare Workers Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

StatusNameLatest CommitPreview URLUpdated (UTC)
✅ Deployment successful!
View logs
bashkitc6db339Commit Preview URL

Branch Preview URL
Aug 22 2026, 12:43 AM

@chaliy
chaliy merged commit fe1b5f3 into mainAug 22, 2026
32 checks passed
@chaliy
chaliy deleted the claude/dep-ava8-js-npm branch August 22, 2026 01:59
Sign up for freeto 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

@chaliy