Use the standard window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ runtime
check instead of importing the package. DevTools still work if the
browser extension is installed.
Also inline the defaultMemoize usage from reselect to fix Vite dev
server compatibility.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both now ship ESM. Updated imports to use named exports
(redux-thunk v3 dropped the default export).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove style-loader, url-loader (Webpack-era), canvas-mock,
react-test-renderer, glob, http-server, and @types/lodash-es.
None were imported anywhere in the codebase.
Replace http-server serve script with vite preview.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace Jest with Vitest for unit tests
- Remove integration tests (not used in CI, relied on puppeteer)
- Remove .babelrc (no longer needed — was only used for Jest transform)
- Remove jest-puppeteer, jest-image-snapshot, and related deps
- Replace jest.fn() with vi.fn() in test files
- Add vitest.config.ts with jsdom environment
All 224 unit tests pass. The postcss plugin test remains skipped
as before.
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The rollup build already uses @rollup/plugin-typescript for type
stripping and JSX. Babel was running after it as a no-op for modern
targets. Now Babel is only used by Jest for ESM→CJS conversion.
Also removes @babel/preset-env since it's no longer needed.
Bundle size decreased by ~1.7KB.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The demo site still imports it, so it needs to remain as a dev
dependency for the Vite build. Consumers don't need it since it's
not used in the library bundle.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Not imported anywhere in the source. It was pulling in babel-runtime@6
and core-js@2 as transitive dependencies for consumers.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These options told preset-env to inject core-js polyfills, but with
modern browser targets nothing was being polyfilled. Removes the
transitive core-js dependency.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The lockfile was out of sync after dependency changes, causing CI
to fail with --frozen-lockfile.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The fscreen library was a vendor-prefix shim for the Fullscreen API.
All target browsers now support the unprefixed standard API natively.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
These plugins handled class properties, optional chaining, nullish
coalescing, object rest spread, and dynamic import syntax — all of
which are natively supported by our target browsers. Bundle size is
unchanged, confirming they were no-ops.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same issue as ani-cursor: bundled at build time via rollup, so
consumers don't need it installed. The workspace:* protocol caused
install failures for users outside the workspace.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
It's bundled at build time via rollup, so consumers don't need it
at install time. Having it as a dependency with workspace:* caused
install failures for users since the workspace protocol isn't
resolved during npm publish.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The RichText import from @atproto/api was unused after refactoring the
Bluesky posting logic to use manual facets instead of RichText helpers.
This caused the ESLint no-unused-vars rule to fail in CI.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Add non-null assertion operator to ref.current when calling webamp.renderInto()
to match the pattern used elsewhere in the component and resolve the CI type error:
"Argument of type 'HTMLDivElement | null' is not assignable to parameter of type 'HTMLElement'"
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-authored-by: Claude <noreply@anthropic.com>
* Webamp optionally fully contained into a DOM element
* Fix spelling
* Reenable updating search index for uploads
* Replace contained flag on renderWhenReady with a new method. Add docs
---------
Co-authored-by: Jordan Eldredge <jordan@jordaneldredge.com>
This ensures `pnpm run lint` at the monorepo root runs the same
lint tasks as CI (`npx turbo lint`), providing consistent behavior
between local development and CI.