Skip to content

chore(KNO-14479): upgrade to Vite 8, Vitest 4, and drop React 16 - #1054

Merged
kylemcd merged 6 commits into
mainfrom
kyle-kno-14479-vite-8
Jul 29, 2026
Merged

chore(KNO-14479): upgrade to Vite 8, Vitest 4, and drop React 16#1054
kylemcd merged 6 commits into
mainfrom
kyle-kno-14479-vite-8

Conversation

@kylemcd

@kylemcd kylemcd commented Jul 29, 2026

Copy link
Copy Markdown
Member

Closes KNO-14479. Supersedes #1051.

What changed

  • vite 5.4.19 to 8.1.5, vitest 3.2.4 to 4.1.10, @vitejs/plugin-react 4.5.1 to 6.0.4.
  • @knocklabs/react and @knocklabs/react-core no longer support React 16. Their react and react-dom peers narrow to ^17 || ^18 || ^19.
  • Both packages compile JSX with the automatic runtime. This PR removes jsxRuntime: "classic" and the babel-plugin-react-require dependency.
  • assetFileNames in packages/react matches the .css extension instead of the exact name style.css.
  • A writeBundle hook replaces rollup-plugin-execute. The hook moves dist/index.css and strips Vite's /*$vite$:1*/ marker.
  • All five package configs drop output.interop and add output.strict: true.
  • @knocklabs/react-core declares "sideEffects": false.
  • Five test files use function expressions for constructor mocks. Two vi.mock calls move to the top level.
  • The published stylesheet keeps only unprefixed appearance. Users on Safari below 15.4 see native button styling on .rnf-button, .rnf-notification-cell__inner, and .rnf-archive-notification-btn.

Why

Vite 8 replaces Rollup with rolldown and esbuild with oxc. This changes the toolchain, so several settings move with it.

React 16. @vitejs/plugin-react 6 gives the JSX transform to oxc, which runs before Babel. babel-plugin-react-require then finds no JSX and never inserts the import React line. Every component fails with React is not defined. The automatic runtime fixes this, but its output imports react/jsx-runtime. That entry point needs React 17 or later.

Vitest. Vitest 3 does not support Vite 8. Vitest 4 does not support Vite 5. Either half alone makes yarn nest a second Vite, so the tests and the builds run different versions.

Build config. Rolldown names the stylesheet after the lib entry, not style.css. The old rename never fired, so the build never wrote dist/index.css. rollup-plugin-execute does not run under rolldown, so the step that moved that file never fired either. Rolldown rejects output.interop.

output.strict. Rolldown defaults strict to "auto". That emits "use strict" only when the source file already contains it. TypeScript and ESM sources never write one, so every published CJS file lost the directive. Rollup defaulted this to true.

sideEffects. Rollup removed the source barrel files during tree shaking. Rolldown keeps them and emits bare side-effect requires, which closes a require cycle. Requiring the CJS entry printed 13 circular dependency warnings per process. @knocklabs/react inherited all 13 from react-core.

Tests. Vitest 4 rejects arrow functions as constructor mock implementations.

Vendor prefixes. Neither config sets a browser target, so the output follows the Vite default. Vite 8 raised that default, and its CSS minifier drops prefixes the new target no longer needs.

Validation

I built every package twice. Once on this branch, and once on a Vite 5 baseline of the same commit.

Rolldown is a different bundler, so the emitted JavaScript cannot match the old output byte for byte. Every one of the 286 JS files differs, down to the minified variable names. Comparing bytes therefore proves nothing. What matters is the contract a consumer depends on, so that is what I compared:

  • Export names, kinds and arities, read from every ESM and CJS entry in Node. All match, and no export resolves to undefined.
  • Every emitted .d.ts file. All 222 are byte-identical.
  • Every class selector, custom property and at-rule in the stylesheet. All present.
  • The position of each "use client" directive. Still the first statement in every file that needs one.
  • Every path in every package.json, and the full file inventory of each dist.
  • Warnings on stderr when a clean Node process requires each CJS entry.

A difference counts as a regression only when the baseline works and this branch does not. Three met that bar: the missing "use strict" directive, the require cycles, and the leaked CSS marker. The sections above describe each one, and this PR fixes all three.

1007 tests pass. yarn type:check and yarn lint are clean. All 7 example apps build on both trees.

Vite 8 swaps Rollup for rolldown and esbuild for oxc, so this is a
toolchain change rather than a version bump.

The JSX runtime is the notable part. packages/react and react-core
compiled with the classic runtime plus babel-plugin-react-require, which
auto-inserted the React import. Under @vitejs/plugin-react 6 the JSX
transform is delegated to oxc, which runs before Babel, so the plugin
never saw any JSX to react to and every component failed with
'React is not defined'. Moving to the automatic runtime fixes it, but
the output then imports react/jsx-runtime, which only exists in React
17+. The react and react-dom peers narrow accordingly.

Vitest also had to move in lockstep: vitest 3 does not support Vite 8
and vitest 4 does not support Vite 5, so neither half could land alone
without yarn nesting a second Vite and splitting the tree.

Build config changes rolldown required:
- assetFileNames matched the stylesheet by the literal name 'style.css',
  which rolldown names after the lib entry instead, so dist/index.css
  was never emitted and guide-example failed to resolve it
- rollup-plugin-execute does not run under rolldown, so the step moving
  index.css to the dist root silently never fired; replaced with a
  writeBundle hook. Its find -delete steps are dropped as dead code
  since rolldown does not emit the empty .css proxy chunks Rollup did
- output.interop is rejected outright by rolldown; removed from all five
  package configs

Vitest 4 also stopped accepting arrow functions as constructor mock
implementations, which accounted for every remaining test failure, and
now warns on vi.mock calls written inside helper functions.
@linear-code

linear-code Bot commented Jul 29, 2026

Copy link
Copy Markdown

KNO-14479

@changeset-bot

changeset-bot Bot commented Jul 29, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a4ecac5

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 10 packages
Name Type
@knocklabs/react-core Minor
@knocklabs/react Minor
@knocklabs/expo Patch
@knocklabs/react-native Patch
guide-example Patch
ms-teams-connect-example Patch
nextjs-app-dir-example Patch
nextjs-example Patch
slack-connect-example Patch
slack-kit-example Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercel Bot commented Jul 29, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
javascript-ms-teams-connect-example Ready Ready Preview Jul 29, 2026 8:47pm
javascript-nextjs-example Ready Ready Preview Jul 29, 2026 8:47pm
javascript-slack-connect-example Ready Ready Preview Jul 29, 2026 8:47pm
javascript-slack-kit-example Ready Ready Preview Jul 29, 2026 8:47pm

Request Review

@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Bundle Report

Changes will decrease total bundle size by 20.47kB (-3.28%) ⬇️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
@knocklabs/react-core-react-core-cjs 33.38kB -4.67kB (-12.28%) ⬇️
@knocklabs/react-native-react-native-esm 54.16kB -1.27kB (-2.29%) ⬇️
@knocklabs/react-react-esm 153.69kB 10.99kB (7.71%) ⬆️
@knocklabs/expo-expo-cjs 7.7kB 122 bytes (1.61%) ⬆️
@knocklabs/expo-expo-esm 8.31kB 127 bytes (1.55%) ⬆️
@knocklabs/react-native-react-native-cjs 49.66kB 3.16kB (6.79%) ⬆️
@knocklabs/react-react-cjs 130.97kB -1.7kB (-1.28%) ⬇️
@knocklabs/client-client-esm 69.16kB -17.84kB (-20.5%) ⬇️
@knocklabs/react-core-react-core-esm 39.46kB -3.91kB (-9.02%) ⬇️
@knocklabs/client-client-cjs 57.9kB -5.47kB (-8.63%) ⬇️

Affected Assets, Files, and Routes:

view changes for bundle: @knocklabs/react-react-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
modules/guide/components/Toolbar/styles.inline.mjs (New) 25.31kB 25.31kB 100.0% 🚀
modules/guide/components/Toolbar/V2/V2.mjs 918 bytes 9.24kB 11.03% ⚠️
modules/guide/components/Toolbar/V2/GuideRow.mjs 239 bytes 6.82kB 3.63%
index.mjs -464 bytes 5.65kB -7.59%
modules/guide/components/Modal/Modal.mjs -164 bytes 5.59kB -2.85%
modules/guide/components/Card/Card.mjs -188 bytes 5.37kB -3.38%
modules/guide/components/Toolbar/V2/FocusChin.mjs 388 bytes 4.92kB 8.57% ⚠️
modules/guide/components/Toolbar/V2/GuideRowDetails.mjs 324 bytes 4.9kB 7.08% ⚠️
modules/guide/components/Toolbar/V2/useInspectGuideClientStore.mjs -1.13kB 4.9kB -18.72%
modules/guide/components/Toolbar/V2/GuideContextDetails.mjs 844 bytes 4.82kB 21.22% ⚠️
modules/ms-*.mjs -96 bytes 83 bytes -53.63%
modules/ms-*.mjs -411 bytes 110 bytes -78.89%
modules/ms-*.mjs 85 bytes 2.99kB 2.92%
modules/ms-*.mjs -1 bytes 4.29kB -0.02%
modules/ms-*.mjs -484 bytes 86 bytes -84.91%
modules/ms-*.mjs 179 bytes 1.03kB 20.91% ⚠️
modules/ms-*.mjs 157 bytes 1.92kB 8.92% ⚠️
modules/ms-*.mjs -1.08kB 531 bytes -67.12%
modules/ms-*.mjs -1.67kB 615 bytes -73.09%
modules/ms-*.mjs (New) 228 bytes 228 bytes 100.0% 🚀
modules/ms-*.mjs (New) 101 bytes 101 bytes 100.0% 🚀
modules/ms-*.mjs (New) 694 bytes 694 bytes 100.0% 🚀
modules/ms-*.mjs (New) 2.26kB 2.26kB 100.0% 🚀
modules/ms-*.mjs (New) 1.63kB 1.63kB 100.0% 🚀
modules/guide/components/Banner/Banner.mjs -123 bytes 4.2kB -2.85%
modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.mjs -93 bytes 3.71kB -2.45%
modules/feed/components/NotificationFeed/NotificationFeed.mjs 105 bytes 3.07kB 3.54%
modules/slack/components/SlackAuthButton/SlackAuthButton.mjs 58 bytes 3.06kB 1.93%
modules/feed/components/NotificationCell/NotificationCell.mjs 39 bytes 2.99kB 1.32%
modules/guide/components/Toolbar/V2/useDraggable.mjs -137 bytes 2.44kB -5.31%
modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.mjs -81 bytes 1.86kB -4.18%
modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.mjs 169 bytes 1.84kB 10.08% ⚠️
modules/core/components/Icons/CloseCircle.mjs 80 bytes 1.78kB 4.7%
modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.mjs 124 bytes 1.78kB 7.5% ⚠️
modules/feed/index.mjs (New) 1.53kB 1.53kB 100.0% 🚀
modules/core/components/Spinner/Spinner.mjs 124 bytes 1.52kB 8.9% ⚠️
modules/feed/components/NotificationCell/ArchiveButton.mjs -22 bytes 1.5kB -1.45%
modules/slack/components/SlackIcon/SlackIcon.mjs 92 bytes 1.39kB 7.09% ⚠️
modules/core/components/Icons/Bell.mjs 88 bytes 1.38kB 6.83% ⚠️
modules/guide/components/Toolbar/KnockButton.mjs 104 bytes 1.37kB 8.21% ⚠️
modules/feed/components/NotificationFeed/NotificationFeedHeader.mjs 148 bytes 1.12kB 15.26% ⚠️
next/KnockGuideLocationSensor.mjs -28 bytes 1.1kB -2.47%
modules/feed/components/NotificationFeed/MarkAsRead.mjs 158 bytes 1.0kB 18.65% ⚠️
modules/slack/components/SlackAuthContainer/SlackAuthContainer.mjs 170 bytes 1.0kB 20.38% ⚠️
modules/feed/components/NotificationIconButton/NotificationIconButton.mjs 203 bytes 971 bytes 26.43% ⚠️
modules/core/components/Button/Button.mjs 91 bytes 949 bytes 10.61% ⚠️
modules/core/components/Icons/CheckmarkCircle.mjs 98 bytes 930 bytes 11.78% ⚠️
modules/feed/components/UnseenBadge/UnseenBadge.mjs 84 bytes 872 bytes 10.66% ⚠️
modules/core/index.mjs (New) 851 bytes 851 bytes 100.0% 🚀
modules/feed/components/NotificationFeed/Dropdown.mjs 157 bytes 793 bytes 24.69% ⚠️
modules/feed/components/EmptyFeed/EmptyFeed.mjs 109 bytes 767 bytes 16.57% ⚠️
modules/core/hooks/useOnBottomScroll.mjs 35 bytes 716 bytes 5.14% ⚠️
modules/slack/components/SlackChannelCombobox/SlackErrorMessage.mjs 117 bytes 685 bytes 20.6% ⚠️
modules/core/hooks/useComponentVisible.mjs 47 bytes 665 bytes 7.61% ⚠️
modules/guide/providers/KnockGuideProvider.mjs 17 bytes 661 bytes 2.64%
modules/feed/components/NotificationCell/Avatar.mjs 99 bytes 646 bytes 18.1% ⚠️
tanstack/KnockGuideLocationSensor.mjs 35 bytes 613 bytes 6.06% ⚠️
modules/slack/components/SlackChannelCombobox/SlackConnectionError.mjs 87 bytes 598 bytes 17.03% ⚠️
modules/core/components/Icons/ChevronDown.mjs 86 bytes 597 bytes 16.83% ⚠️
modules/core/utils.mjs 34 bytes 588 bytes 6.14% ⚠️
modules/slack/index.mjs (New) 531 bytes 531 bytes 100.0% 🚀
modules/guide/index.mjs (New) 529 bytes 529 bytes 100.0% 🚀
modules/core/components/Button/ButtonSpinner.mjs 102 bytes 493 bytes 26.09% ⚠️
modules/guide/components/index.mjs (New) 464 bytes 464 bytes 100.0% 🚀
modules/guide/components/Toolbar/V2/Kbd.mjs 98 bytes 459 bytes 27.15% ⚠️
modules/guide/components/Toolbar/useToolbarStyles.mjs 62 bytes 457 bytes 15.7% ⚠️
modules/guide/components/helpers.mjs 30 bytes 407 bytes 7.96% ⚠️
modules/guide/components/Toolbar/V2/helpers.mjs 63 bytes 391 bytes 19.21% ⚠️
modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs 118 bytes 380 bytes 45.04% ⚠️
modules/core/debounce/index.mjs 33 bytes 347 bytes 10.51% ⚠️
modules/core/components/Button/ButtonGroup.mjs 85 bytes 318 bytes 36.48% ⚠️
modules/core/components/Icons/index.mjs (New) 298 bytes 298 bytes 100.0% 🚀
modules/feed/components/NotificationFeed/index.mjs (New) 272 bytes 272 bytes 100.0% 🚀
modules/slack/utils.mjs 46 bytes 230 bytes 25.0% ⚠️
modules/guide/components/Toolbar/shared.mjs 66 bytes 177 bytes 59.46% ⚠️
modules/core/cx/index.mjs 48 bytes 157 bytes 44.04% ⚠️
modules/feed/components/NotificationCell/index.mjs (New) 155 bytes 155 bytes 100.0% 🚀
modules/core/components/Button/index.mjs (New) 140 bytes 140 bytes 100.0% 🚀
tanstack.mjs -40 bytes 131 bytes -23.39%
next.mjs -36 bytes 127 bytes -22.09%
modules/feed/components/NotificationFeedContainer/index.mjs (New) 125 bytes 125 bytes 100.0% 🚀
modules/feed/components/NotificationFeedPopover/index.mjs (New) 119 bytes 119 bytes 100.0% 🚀
modules/feed/components/NotificationIconButton/index.mjs (New) 116 bytes 116 bytes 100.0% 🚀
modules/slack/components/SlackChannelCombobox/index.mjs (New) 110 bytes 110 bytes 100.0% 🚀
modules/guide/providers/index.mjs (New) 104 bytes 104 bytes 100.0% 🚀
modules/slack/components/SlackAuthContainer/index.mjs (New) 104 bytes 104 bytes 100.0% 🚀
modules/guide/components/Banner/index.mjs (New) 102 bytes 102 bytes 100.0% 🚀
modules/guide/components/Modal/index.mjs (New) 97 bytes 97 bytes 100.0% 🚀
modules/slack/components/SlackAuthButton/index.mjs (New) 95 bytes 95 bytes 100.0% 🚀
modules/guide/components/Card/index.mjs (New) 92 bytes 92 bytes 100.0% 🚀
modules/guide/components/Toolbar/index.mjs (New) 91 bytes 91 bytes 100.0% 🚀
modules/feed/components/UnseenBadge/index.mjs (New) 83 bytes 83 bytes 100.0% 🚀
modules/feed/components/EmptyFeed/index.mjs (New) 77 bytes 77 bytes 100.0% 🚀
modules/slack/components/SlackIcon/index.mjs (New) 77 bytes 77 bytes 100.0% 🚀
modules/core/hooks/index.mjs (New) 76 bytes 76 bytes 100.0% 🚀
modules/core/components/Spinner/index.mjs (New) 71 bytes 71 bytes 100.0% 🚀
modules/guide/components/Toolbar/V2/index.mjs (New) 63 bytes 63 bytes 100.0% 🚀
modules/guide/components/Toolbar/styles.css.inline.mjs (Deleted) -25.09kB 0 bytes -100.0% 🗑️
modules/guide/components/Toolbar/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/core/components/Button/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeedContainer/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeed/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeedPopover/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/EmptyFeed/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationIconButton/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationCell/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAuthButton/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackChannelCombobox/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAuthContainer/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.mjs (Deleted) -40 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/feed/components/UnseenBadge/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Banner/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Card/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Modal/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAddChannelInput/styles.css.mjs (Deleted) -41 bytes 0 bytes -100.0% 🗑️
theme.css.mjs (Deleted) -40 bytes 0 bytes -100.0% 🗑️
modules/slack/theme.css.mjs (Deleted) -40 bytes 0 bytes -100.0% 🗑️
view changes for bundle: @knocklabs/expo-expo-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
modules/push/KnockExpoPushNotificationProvider.mjs -317 bytes 3.31kB -8.75%
modules/push/utils.mjs -394 bytes 2.66kB -12.89%
modules/push/getNotificationsModule.mjs 107 bytes 1.3kB 8.93% ⚠️
_virtual/_rolldown/runtime.mjs (New) 524 bytes 524 bytes 100.0% 🚀
index.mjs -4 bytes 300 bytes -1.32%
modules/push/index.mjs (New) 211 bytes 211 bytes 100.0% 🚀
view changes for bundle: @knocklabs/react-react-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
modules/guide/components/Toolbar/styles.inline.js (New) 25.22kB 25.22kB 100.0% 🚀
index.js 431 bytes 8.11kB 5.61% ⚠️
modules/guide/components/Toolbar/V2/V2.js -332 bytes 6.51kB -4.85%
modules/guide/components/Toolbar/V2/GuideRow.js -258 bytes 5.25kB -4.69%
modules/guide/components/Modal/Modal.js -625 bytes 4.39kB -12.46%
modules/guide/components/Card/Card.js -293 bytes 4.21kB -6.5%
modules/guide/components/Toolbar/V2/useInspectGuideClientStore.js -836 bytes 4.05kB -17.12%
modules/guide/components/Toolbar/V2/GuideRowDetails.js -254 bytes 3.63kB -6.54%
modules/ms-*.js -43 bytes 453 bytes -8.67%
modules/ms-*.js -139 bytes 101 bytes -57.92%
modules/ms-*.js -447 bytes 83 bytes -84.34%
modules/ms-*.js -696 bytes 170 bytes -80.37%
modules/ms-*.js -1.37kB 13 bytes -99.06%
modules/ms-*.js -129 bytes 1.39kB -8.48%
modules/ms-*.js -1.93kB 13 bytes -99.33%
modules/ms-*.js -141 bytes 2.41kB -5.52%
modules/ms-*.js -3.96kB 13 bytes -99.67%
modules/ms-*.js (New) 735 bytes 735 bytes 100.0% 🚀
modules/ms-*.js (New) 1.76kB 1.76kB 100.0% 🚀
modules/ms-*.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/ms-*.js (New) 542 bytes 542 bytes 100.0% 🚀
modules/ms-*.js (New) 1.22kB 1.22kB 100.0% 🚀
modules/ms-*.js (New) 3.62kB 3.62kB 100.0% 🚀
modules/ms-*.js (New) 452 bytes 452 bytes 100.0% 🚀
modules/ms-*.js (New) 101 bytes 101 bytes 100.0% 🚀
modules/ms-*.js (New) 110 bytes 110 bytes 100.0% 🚀
modules/guide/components/Toolbar/V2/FocusChin.js -271 bytes 3.5kB -7.18%
modules/guide/components/Banner/Banner.js -232 bytes 3.34kB -6.5%
modules/guide/components/Toolbar/V2/GuideContextDetails.js -248 bytes 3.2kB -7.18%
modules/slack/components/SlackChannelCombobox/SlackChannelCombobox.js -284 bytes 2.88kB -8.99%
modules/feed/components/NotificationFeed/NotificationFeed.js -25 bytes 2.49kB -1.0%
modules/slack/components/SlackAuthButton/SlackAuthButton.js -139 bytes 2.46kB -5.35%
modules/feed/components/NotificationCell/NotificationCell.js -76 bytes 2.33kB -3.15%
modules/guide/components/Toolbar/V2/useDraggable.js -103 bytes 2.09kB -4.7%
modules/core/components/Icons/CloseCircle.js -136 bytes 1.64kB -7.67%
modules/feed/components/NotificationFeedPopover/NotificationFeedPopover.js -106 bytes 1.5kB -6.62%
modules/feed/index.js (New) 1.5kB 1.5kB 100.0% 🚀
modules/slack/components/SlackAddChannelInput/SlackAddChannelInput.js -87 bytes 1.36kB -6.01%
modules/guide/components/Toolbar/V2/GuideAnnotatedStatusDot.js -208 bytes 1.31kB -13.71%
modules/core/components/Spinner/Spinner.js -163 bytes 1.19kB -12.01%
modules/core/components/Icons/Bell.js -147 bytes 1.19kB -11.01%
modules/slack/components/SlackIcon/SlackIcon.js -175 bytes 1.15kB -13.18%
modules/feed/components/NotificationCell/ArchiveButton.js -35 bytes 1.15kB -2.96%
modules/guide/components/Toolbar/KnockButton.js -153 bytes 1.08kB -12.37%
next/KnockGuideLocationSensor.js -56 bytes 1.02kB -5.18%
modules/feed/components/NotificationFeed/NotificationFeedHeader.js -54 bytes 897 bytes -5.68%
modules/feed/components/NotificationIconButton/NotificationIconButton.js 35 bytes 833 bytes 4.39%
modules/feed/components/NotificationFeed/MarkAsRead.js -234 bytes 832 bytes -21.95%
modules/core/index.js (New) 828 bytes 828 bytes 100.0% 🚀
modules/core/components/Button/Button.js -50 bytes 786 bytes -5.98%
modules/feed/components/UnseenBadge/UnseenBadge.js -34 bytes 742 bytes -4.38%
modules/core/components/Icons/CheckmarkCircle.js -147 bytes 731 bytes -16.74%
modules/slack/components/SlackAuthContainer/SlackAuthContainer.js -133 bytes 711 bytes -15.76%
modules/feed/components/NotificationFeed/Dropdown.js 3 bytes 671 bytes 0.45%
modules/guide/providers/KnockGuideProvider.js -135 bytes 564 bytes -19.31%
tanstack/KnockGuideLocationSensor.js -54 bytes 561 bytes -8.78%
modules/feed/components/EmptyFeed/EmptyFeed.js -139 bytes 551 bytes -20.14%
modules/core/hooks/useOnBottomScroll.js 16 bytes 539 bytes 3.06%
modules/feed/components/NotificationCell/Avatar.js -55 bytes 531 bytes -9.39%
modules/slack/index.js (New) 527 bytes 527 bytes 100.0% 🚀
modules/guide/index.js (New) 511 bytes 511 bytes 100.0% 🚀
_virtual/_rolldown/runtime.js (New) 509 bytes 509 bytes 100.0% 🚀
modules/core/hooks/useComponentVisible.js 3 bytes 505 bytes 0.6%
modules/core/utils.js -72 bytes 475 bytes -13.16%
modules/guide/components/index.js (New) 452 bytes 452 bytes 100.0% 🚀
modules/slack/components/SlackChannelCombobox/SlackErrorMessage.js -78 bytes 450 bytes -14.77%
modules/slack/components/SlackChannelCombobox/SlackConnectionError.js -43 bytes 443 bytes -8.85%
modules/core/components/Icons/ChevronDown.js -136 bytes 440 bytes -23.61%
modules/guide/components/Toolbar/useToolbarStyles.js -51 bytes 428 bytes -10.65%
modules/guide/components/Toolbar/V2/Kbd.js -280 bytes 422 bytes -39.89%
modules/core/components/Button/ButtonSpinner.js -111 bytes 368 bytes -23.17%
modules/guide/components/Toolbar/V2/helpers.js -70 bytes 307 bytes -18.57%
modules/guide/components/helpers.js -83 bytes 295 bytes -21.96%
modules/core/components/Icons/index.js (New) 274 bytes 274 bytes 100.0% 🚀
modules/feed/components/NotificationFeed/index.js (New) 256 bytes 256 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js -132 bytes 243 bytes -35.2%
modules/core/debounce/index.js -76 bytes 228 bytes -25.0%
modules/core/components/Button/ButtonGroup.js -132 bytes 214 bytes -38.15%
tanstack.js -38 bytes 198 bytes -16.1%
next.js -34 bytes 194 bytes -14.91%
modules/slack/utils.js -70 bytes 175 bytes -28.57%
modules/feed/components/NotificationCell/index.js (New) 147 bytes 147 bytes 100.0% 🚀
modules/core/components/Button/index.js (New) 132 bytes 132 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/index.js (New) 125 bytes 125 bytes 100.0% 🚀
modules/feed/components/NotificationFeedPopover/index.js (New) 119 bytes 119 bytes 100.0% 🚀
modules/feed/components/NotificationIconButton/index.js (New) 116 bytes 116 bytes 100.0% 🚀
modules/slack/components/SlackChannelCombobox/index.js (New) 110 bytes 110 bytes 100.0% 🚀
modules/guide/components/Toolbar/shared.js -70 bytes 109 bytes -39.11%
modules/guide/providers/index.js (New) 104 bytes 104 bytes 100.0% 🚀
modules/slack/components/SlackAuthContainer/index.js (New) 104 bytes 104 bytes 100.0% 🚀
modules/core/cx/index.js -70 bytes 101 bytes -40.94%
modules/guide/components/Banner/index.js (New) 100 bytes 100 bytes 100.0% 🚀
modules/guide/components/Modal/index.js (New) 95 bytes 95 bytes 100.0% 🚀
modules/slack/components/SlackAuthButton/index.js (New) 95 bytes 95 bytes 100.0% 🚀
modules/core/hooks/index.js (New) 91 bytes 91 bytes 100.0% 🚀
modules/guide/components/Toolbar/index.js (New) 91 bytes 91 bytes 100.0% 🚀
modules/guide/components/Card/index.js (New) 90 bytes 90 bytes 100.0% 🚀
modules/feed/components/UnseenBadge/index.js (New) 83 bytes 83 bytes 100.0% 🚀
modules/feed/components/EmptyFeed/index.js (New) 77 bytes 77 bytes 100.0% 🚀
modules/slack/components/SlackIcon/index.js (New) 77 bytes 77 bytes 100.0% 🚀
modules/core/components/Spinner/index.js (New) 71 bytes 71 bytes 100.0% 🚀
modules/guide/components/Toolbar/V2/index.js (New) 63 bytes 63 bytes 100.0% 🚀
modules/core/components/Button/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/EmptyFeed/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/NotificationCell/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/NotificationFeed/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/NotificationFeedPopover/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/NotificationIconButton/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/feed/components/UnseenBadge/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/guide/components/Banner/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/guide/components/Card/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/guide/components/Modal/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/guide/components/Toolbar/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/slack/components/SlackAddChannelInput/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/slack/components/SlackAuthButton/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/slack/components/SlackAuthContainer/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/slack/components/SlackChannelCombobox/styles.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/slack/theme.js (New) 13 bytes 13 bytes 100.0% 🚀
theme.js (New) 13 bytes 13 bytes 100.0% 🚀
modules/guide/components/Toolbar/styles.css.inline.js (Deleted) -25.09kB 0 bytes -100.0% 🗑️
modules/guide/components/Toolbar/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeedContainer/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.js (Deleted) -52 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/ms-*.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackChannelCombobox/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/core/components/Button/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAuthButton/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/UnseenBadge/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeed/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationFeedPopover/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationIconButton/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/EmptyFeed/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAuthContainer/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Banner/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Card/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/guide/components/Modal/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/slack/components/SlackAddChannelInput/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
modules/feed/components/NotificationCell/styles.css.js (Deleted) -53 bytes 0 bytes -100.0% 🗑️
theme.css.js (Deleted) -52 bytes 0 bytes -100.0% 🗑️
modules/slack/theme.css.js (Deleted) -52 bytes 0 bytes -100.0% 🗑️
view changes for bundle: @knocklabs/client-client-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
clients/guide/client.mjs -4.39kB 20.97kB -17.3%
clients/feed/feed.mjs -3.37kB 12.28kB -21.52%
api.mjs -2.09kB 5.97kB -25.93%
knock.mjs -2.27kB 4.33kB -34.36%
clients/preferences/index.mjs -1.11kB 3.01kB -26.92%
clients/users/index.mjs -398 bytes 2.82kB -12.38%
clients/guide/helpers.mjs -174 bytes 2.64kB -6.19%
clients/ms-*.mjs -554 bytes 2.49kB -18.19%
clients/feed/store.mjs -445 bytes 2.2kB -16.81%
clients/slack/index.mjs -470 bytes 1.93kB -19.6%
clients/messages/index.mjs -378 bytes 1.61kB -18.99%
clients/feed/socket-*.mjs -1.35kB 1.57kB -46.21%
pageVisibility.mjs -255 bytes 1.26kB -16.82%
jwt/index.mjs -74 bytes 1.15kB -6.07%
clients/feed/index.mjs -389 bytes 1.06kB -26.92%
clients/feed/utils.mjs -48 bytes 894 bytes -5.1%
index.mjs 71 bytes 796 bytes 9.79% ⚠️
clients/objects/index.mjs -252 bytes 785 bytes -24.3%
helpers.mjs -7 bytes 472 bytes -1.46%
networkStatus.mjs 8 bytes 350 bytes 2.34%
clients/guide/index.mjs (New) 222 bytes 222 bytes 100.0% 🚀
clients/guide/types.mjs -171 bytes 191 bytes -47.24%
clients/objects/constants.mjs 52 bytes 157 bytes 49.52% ⚠️
view changes for bundle: @knocklabs/expo-expo-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
modules/push/KnockExpoPushNotificationProvider.js 29 bytes 2.82kB 1.04%
modules/push/utils.js -600 bytes 2.53kB -19.19%
modules/push/getNotificationsModule.js -52 bytes 1.09kB -4.55%
index.js 27 bytes 544 bytes 5.22% ⚠️
_virtual/_rolldown/runtime.js (New) 509 bytes 509 bytes 100.0% 🚀
modules/push/index.js (New) 209 bytes 209 bytes 100.0% 🚀
view changes for bundle: @knocklabs/client-client-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
clients/guide/client.js -943 bytes 17.41kB -5.14%
clients/feed/feed.js -514 bytes 10.23kB -4.78%
api.js -518 bytes 4.83kB -9.69%
knock.js -537 bytes 3.73kB -12.57%
clients/preferences/index.js -289 bytes 2.52kB -10.27%
clients/users/index.js -289 bytes 2.41kB -10.72%
clients/guide/helpers.js -104 bytes 2.16kB -4.6%
clients/ms-*.js -323 bytes 2.05kB -13.59%
clients/feed/store.js -295 bytes 1.7kB -14.81%
clients/slack/index.js -321 bytes 1.57kB -16.97%
clients/messages/index.js -325 bytes 1.3kB -20.0%
clients/feed/socket-*.js -295 bytes 1.24kB -19.17%
pageVisibility.js -282 bytes 1.07kB -20.83%
jwt/index.js -97 bytes 961 bytes -9.17%
clients/feed/index.js -313 bytes 892 bytes -25.98%
index.js 85 bytes 850 bytes 11.11% ⚠️
clients/feed/utils.js -112 bytes 734 bytes -13.24%
clients/objects/index.js -273 bytes 624 bytes -30.43%
_virtual/_rolldown/runtime.js (New) 509 bytes 509 bytes 100.0% 🚀
helpers.js -83 bytes 390 bytes -17.55%
networkStatus.js -58 bytes 271 bytes -17.63%
clients/guide/index.js (New) 212 bytes 212 bytes 100.0% 🚀
clients/guide/types.js -237 bytes 130 bytes -64.58%
clients/objects/constants.js -70 bytes 103 bytes -40.46%
view changes for bundle: @knocklabs/react-core-react-core-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
index.mjs -386 bytes 3.81kB -9.19%
modules/i18n/languages/en.mjs -35 bytes 2.36kB -1.46%
modules/slack/hooks/useSlackAuth.mjs -217 bytes 1.89kB -10.3%
modules/i18n/languages/de.mjs -11 bytes 1.82kB -0.6%
modules/slack/hooks/useSlackChannels.mjs -274 bytes 1.79kB -13.28%
modules/ms-*.mjs -225 bytes 1.79kB -11.18%
modules/ms-*.mjs -128 bytes 1.25kB -9.28%
modules/ms-*.mjs -131 bytes 1.47kB -8.18%
modules/ms-*.mjs -458 bytes 1.47kB -23.79%
modules/ms-*.mjs -104 bytes 1.28kB -7.5%
modules/ms-*.mjs -323 bytes 1.35kB -19.26%
modules/slack/hooks/useSlackConnectionStatus.mjs -348 bytes 1.57kB -18.12%
modules/slack/hooks/useConnectedSlackChannels.mjs -453 bytes 1.45kB -23.84%
modules/slack/context/KnockSlackProvider.mjs -199 bytes 1.32kB -13.09%
modules/guide/context/KnockGuideProvider.mjs -98 bytes 1.27kB -7.17%
modules/core/hooks/useAuthPostMessageListener.mjs -76 bytes 1.26kB -5.67%
modules/core/utils.mjs -2 bytes 1.24kB -0.16%
modules/core/context/KnockProvider.mjs -10 bytes 1.13kB -0.87%
modules/feed/context/KnockFeedProvider.mjs 5 bytes 1.09kB 0.46%
modules/core/hooks/useAuthenticatedKnockClient.mjs -168 bytes 1.07kB -13.61%
modules/core/hooks/useAuthPolling.mjs -346 bytes 911 bytes -27.53%
modules/core/deepEqual/index.mjs -1 bytes 873 bytes -0.11%
modules/preferences/hooks/usePreferences.mjs -63 bytes 863 bytes -6.8%
modules/feed/hooks/useNotifications.mjs -313 bytes 785 bytes -28.51%
modules/feed/hooks/useFeedSettings.mjs -61 bytes 690 bytes -8.12%
modules/guide/hooks/useGuide.mjs 13 bytes 559 bytes 2.38%
modules/i18n/hooks/useTranslations.mjs 44 bytes 437 bytes 11.2% ⚠️
modules/i18n/context/KnockI18nProvider.mjs 94 bytes 412 bytes 29.56% ⚠️
modules/guide/hooks/useGuides.mjs 21 bytes 402 bytes 5.51% ⚠️
modules/core/hooks/useStableOptions.mjs 53 bytes 380 bytes 16.21% ⚠️
modules/guide/hooks/useGuideContext.mjs 49 bytes 379 bytes 14.85% ⚠️
modules/feed/hooks/useNotificationStore.mjs 64 bytes 353 bytes 22.15% ⚠️
modules/core/hooks/useKnockAuthState.mjs 62 bytes 270 bytes 29.81% ⚠️
modules/core/constants.mjs 60 bytes 252 bytes 31.25% ⚠️
modules/i18n/languages/index.mjs 53 bytes 199 bytes 36.3% ⚠️
view changes for bundle: @knocklabs/react-core-react-core-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
index.js 70 bytes 3.89kB 1.83%
modules/i18n/languages/en.js -2 bytes 2.13kB -0.09%
modules/i18n/languages/de.js -2 bytes 1.64kB -0.12%
modules/slack/hooks/useSlackAuth.js -248 bytes 1.46kB -14.5%
modules/slack/hooks/useSlackChannels.js -235 bytes 1.45kB -13.91%
modules/ms-*.js -445 bytes 1.07kB -29.31%
modules/ms-*.js -173 bytes 1.45kB -10.64%
modules/ms-*.js -104 bytes 1.04kB -9.08%
modules/ms-*.js -149 bytes 1.1kB -11.89%
modules/ms-*.js -156 bytes 1.05kB -12.89%
modules/ms-*.js -221 bytes 1.19kB -15.67%
modules/slack/hooks/useSlackConnectionStatus.js -140 bytes 1.23kB -10.26%
modules/slack/hooks/useConnectedSlackChannels.js -221 bytes 1.17kB -15.84%
modules/slack/context/KnockSlackProvider.js -451 bytes 1.1kB -29.13%
modules/guide/context/KnockGuideProvider.js -339 bytes 1.08kB -23.84%
modules/core/utils.js -83 bytes 1.0kB -7.64%
modules/core/context/KnockProvider.js -349 bytes 954 bytes -26.78%
modules/core/hooks/useAuthPostMessageListener.js -111 bytes 947 bytes -10.49%
modules/core/hooks/useAuthenticatedKnockClient.js -148 bytes 942 bytes -13.58%
modules/feed/context/KnockFeedProvider.js -363 bytes 928 bytes -28.12%
modules/preferences/hooks/usePreferences.js -134 bytes 750 bytes -15.16%
modules/core/deepEqual/index.js -78 bytes 680 bytes -10.29%
modules/core/hooks/useAuthPolling.js -114 bytes 644 bytes -15.04%
modules/feed/hooks/useNotifications.js -114 bytes 581 bytes -16.4%
modules/feed/hooks/useFeedSettings.js -19 bytes 529 bytes -3.47%
_virtual/_rolldown/runtime.js (New) 509 bytes 509 bytes 100.0% 🚀
modules/guide/hooks/useGuide.js -68 bytes 435 bytes -13.52%
modules/i18n/context/KnockI18nProvider.js -35 bytes 388 bytes -8.27%
modules/guide/hooks/useGuideContext.js -330 bytes 357 bytes -48.03%
modules/i18n/hooks/useTranslations.js -62 bytes 323 bytes -16.1%
modules/guide/hooks/useGuides.js -67 bytes 296 bytes -18.46%
modules/core/hooks/useStableOptions.js 7 bytes 273 bytes 2.63%
modules/feed/hooks/useNotificationStore.js -94 bytes 259 bytes -26.63%
modules/core/hooks/useKnockAuthState.js -95 bytes 197 bytes -32.53%
modules/core/constants.js -58 bytes 168 bytes -25.66%
modules/i18n/languages/index.js -52 bytes 143 bytes -26.67%
view changes for bundle: @knocklabs/react-native-react-native-cjs

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/PoweredByKnockIcon.js 64 bytes 24.03kB 0.27%
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/NotificationFeedCell.js -32 bytes 3.27kB -0.97%
modules/feed/components/NotificationFeedComponents/NotificationFeed.js 85 bytes 2.8kB 3.13%
modules/feed/components/NotificationFeedComponents/NotificationFeedHeader.js -25 bytes 2.3kB -1.07%
index.js 8 bytes 1.88kB 0.43%
assets/CloseCircle.js -12 bytes 1.73kB -0.69%
modules/feed/components/ActionButton.js 24 bytes 1.46kB 1.67%
modules/push/KnockPushNotificationProvider.js 21 bytes 1.42kB 1.5%
assets/BellIcon.js -11 bytes 1.39kB -0.79%
modules/feed/components/NotificationFeedComponents/EmptyNotificationFeed.js 39 bytes 1.35kB 2.97%
modules/feed/components/NotificationIconButton/UnseenBadge.js 45 bytes 1.26kB 3.72%
modules/feed/index.js (New) 1.21kB 1.21kB 100.0% 🚀
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/AvatarView.js 10 bytes 1.05kB 0.97%
modules/feed/components/NotificationIconButton/NotificationIconButton.js 53 bytes 1.01kB 5.56% ⚠️
theme/theme.js -70 bytes 904 bytes -7.19%
_virtual/_rolldown/runtime.js (New) 509 bytes 509 bytes 100.0% 🚀
modules/feed/components/NotificationFeedComponents/index.js (New) 462 bytes 462 bytes 100.0% 🚀
modules/feed/components/Divider.js 95 bytes 430 bytes 28.36% ⚠️
modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.js -62 bytes 217 bytes -22.22%
theme/useTheme.js -56 bytes 196 bytes -22.22%
modules/push/index.js (New) 189 bytes 189 bytes 100.0% 🚀
modules/feed/components/NotificationIconButton/index.js (New) 180 bytes 180 bytes 100.0% 🚀
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/index.js (New) 171 bytes 171 bytes 100.0% 🚀
assets/index.js (New) 138 bytes 138 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/index.js (New) 125 bytes 125 bytes 100.0% 🚀
view changes for bundle: @knocklabs/react-native-react-native-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/PoweredByKnockIcon.mjs -859 bytes 24.46kB -3.39%
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/NotificationFeedCell.mjs -917 bytes 4.12kB -18.22%
modules/feed/components/NotificationFeedComponents/NotificationFeed.mjs -496 bytes 3.48kB -12.46%
modules/feed/components/NotificationFeedComponents/NotificationFeedHeader.mjs -583 bytes 2.86kB -16.93%
modules/feed/components/ActionButton.mjs -249 bytes 1.86kB -11.82%
assets/CloseCircle.mjs -5 bytes 1.76kB -0.28%
modules/feed/components/NotificationFeedComponents/EmptyNotificationFeed.mjs -75 bytes 1.73kB -4.16%
index.mjs -51 bytes 1.7kB -2.91%
modules/push/KnockPushNotificationProvider.mjs -151 bytes 1.63kB -8.47%
modules/feed/components/NotificationIconButton/UnseenBadge.mjs -258 bytes 1.57kB -14.14%
assets/BellIcon.mjs -170 bytes 1.51kB -10.14%
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/AvatarView.mjs -15 bytes 1.35kB -1.1%
modules/feed/components/NotificationIconButton/NotificationIconButton.mjs -41 bytes 1.26kB -3.16%
modules/feed/index.mjs (New) 1.25kB 1.25kB 100.0% 🚀
theme/theme.mjs -156 bytes 1.19kB -11.62%
modules/feed/components/Divider.mjs 47 bytes 495 bytes 10.49% ⚠️
modules/feed/components/NotificationFeedComponents/index.mjs (New) 480 bytes 480 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/NotificationFeedContainer.mjs 103 bytes 361 bytes 39.92% ⚠️
theme/useTheme.mjs 42 bytes 263 bytes 19.0% ⚠️
modules/push/index.mjs (New) 191 bytes 191 bytes 100.0% 🚀
modules/feed/components/NotificationIconButton/index.mjs (New) 188 bytes 188 bytes 100.0% 🚀
modules/feed/components/NotificationFeedComponents/NotificationFeedCell/index.mjs (New) 179 bytes 179 bytes 100.0% 🚀
assets/index.mjs (New) 146 bytes 146 bytes 100.0% 🚀
modules/feed/components/NotificationFeedContainer/index.mjs (New) 125 bytes 125 bytes 100.0% 🚀

Rolldown defaults output.strict to "auto", which only emits the directive
when the source literally contains one. TypeScript and ESM sources never
do, so every published CJS file lost "use strict" (144/144 files had it
on Vite 5, 0/209 after the upgrade). Rollup defaulted this to true.

Sloppy mode changes real semantics: assignments to non-writable
properties fail silently instead of throwing, and `this` is globalThis
rather than undefined in plain calls. The code is authored under strict
semantics, so it should ship that way.

Setting output.strict restores it across all five package configs:
209/209 CJS files now carry the directive.
Two build-output regressions surfaced by comparing the Vite 8 artifacts
against a Vite 5 baseline build of the same commit.

Require cycles in @knocklabs/react-core. Rollup tree-shook the source
barrel files away; rolldown keeps them and emits bare side-effect
requires for them, so requiring the CJS entry printed 13 'Accessing
non-existent property ... inside circular dependency' warnings on every
process start. @knocklabs/react inherited all 13 through its dependency
on react-core. react-core has no side-effectful modules and no CSS
imports, so declaring sideEffects:false lets the barrels be dropped:
22 barrel chunks become 2, and the warnings go to 0 in both packages.
Public exports are unchanged at 47 and 73, none undefined.

Vite's internal hash marker leaking into the published stylesheet. Vite
appends /*$vite$:1*/ in finalizeCss() and strips it again at the end of
the same generateBundle hook, but the stylesheet is added to the bundle
via emitFile() inside that hook and so misses the strip. The hook that
moves index.css now strips it from both published copies.
The three-line explanation was repeated verbatim in all five configs.
The reasoning now lives in the PR description instead.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 410e0f1. Configure here.

Comment thread packages/react/vite.config.mts
The comment said the empty .css proxy chunks get deleted below. Nothing
deletes them anymore, because the find -delete steps went away with
rollup-plugin-execute. Vite removes those chunks from the bundle itself,
so they never reach disk under either bundler.
@codecov

codecov Bot commented Jul 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.00%. Comparing base (e52c4ef) to head (a4ecac5).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1054      +/-   ##
==========================================
+ Coverage   66.58%   73.00%   +6.42%     
==========================================
  Files         214      139      -75     
  Lines       10514     4342    -6172     
  Branches     1529     1275     -254     
==========================================
- Hits         7001     3170    -3831     
+ Misses       3487     1055    -2432     
- Partials       26      117      +91     

see 210 files with indirect coverage changes

@kylemcd
kylemcd merged commit 7e3ee26 into main Jul 29, 2026
13 checks passed
@kylemcd
kylemcd deleted the kyle-kno-14479-vite-8 branch July 29, 2026 22:01
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.

2 participants