# @lynx-js/react-umd

## 0.129.0

No changes in this release.

## 0.128.0

### Minor Changes

- Deliver the main-thread runtime through named imports from its init entry, including background-only definitions that carry their registration dependencies into the main-thread graph. Runtime code participates in business defines and release processing. Every supported transform supplies semantic runtime requirements, including for definitions injected from background-only modules; watch rebuilds refresh their dependencies and metadata. ([#4066](https://github.com/lynx-family/lynx-stack/pull/4066))

  Upgrade the build plugins and `@lynx-js/react` together. This release requires `@lynx-js/react@^0.128.0`; its runtime and bundled transform use the same module-delivery protocol. The refresh plugin adds support for `@lynx-js/react-webpack-plugin@^0.13.0` while retaining its existing supported versions. Older compiler output is unsupported. The prebuilt worklet-runtime chunk, its package entries, and `loadWorkletRuntime` are removed. Combined lazy chunks share their paired main runtime, and standalone lazy bundles bootstrap themselves.

  The worklet init entry follows `worklet.runtimePkg`: remove a trailing `/internal`, if present, and append `/worklet-runtime/init`. Its `registerWorklet` export uses the existing host registration function when the runtime is already initialized. Default worklet options use `@lynx-js/react/internal` for helpers.

  Testing-library initializes module-delivered worklets on its emulated main thread in Vitest and Rstest.

### Patch Changes

- Add the `@lynx-js/react/worklet-runtime/init` entry and resolve it to the published, unbundled runtime module in normal and lazy builds. The entry uses the existing runtime initialization guard, so loading it again preserves the runtime and its registrations. ([#4065](https://github.com/lynx-family/lynx-stack/pull/4065))

  Existing compiler output continues to use the legacy runtime-loading path.

## 0.127.0

No changes in this release.

## 0.126.2

### Patch Changes

- Stop publishing the intermediate files of the development External Bundle in `dist/.lynx`. ([#3923](https://github.com/lynx-family/lynx-stack/pull/3923))

## 0.126.1

## 0.126.0

## 0.125.0

## 0.124.0

## 0.123.3

## 0.123.2

## 0.123.1

### Patch Changes

- Ship the refresh runtime in the shared external bundle so it is loaded once instead of per card. ([#3009](https://github.com/lynx-family/lynx-stack/pull/3009))

  `@lynx-js/react/refresh` was missing from both the `react-umd` entry and the `reactlynx` externals preset, so every card bundled its own copy. Each copy overwrites `options.debounceRendering` on the _shared_ ReactLynx runtime with a closure that defers through that card's own `Promise`. The last card loaded wins, and once it is destroyed its microtask queue stops draining — the lost flush leaves Preact's scheduling counter set, so no card in the shared context ever re-renders again.

  Only the development bundle carries it; the production bundle is unchanged in size.

## 0.123.0

### Patch Changes

- Build web-encoded `react-{dev,prod}.web.bundle` variants (via `EXTERNAL_BUNDLE_TARGET=web`), decodable by `@lynx-js/web-core` and exposed as the `./dev-web` and `./prod-web` exports, alongside the native `.lynx.bundle`. ([#2934](https://github.com/lynx-family/lynx-stack/pull/2934))

## 0.122.1

## 0.122.0

## 0.121.2

## 0.121.1

## 0.121.0

## 0.120.0

### Patch Changes

- Support compile main-thread script to bytecode in external bundle ([#2459](https://github.com/lynx-family/lynx-stack/pull/2459))

## 0.119.0

## 0.118.0

## 0.117.1

### Patch Changes

- Add a new `entry` export to `@lynx-js/react-umd` for reuse by wrapper libraries of `@lynx-js/react`. ([#2370](https://github.com/lynx-family/lynx-stack/pull/2370))

## 0.117.0

### Minor Changes

- Add standalone UMD build of the ReactLynx runtime. ([#2331](https://github.com/lynx-family/lynx-stack/pull/2331))
