Releases: salesforce/lwc
v8.21.2
What's Changed
- chore(release): update scripts for other git configs and backports by @wjhsf in #5454
- build(deps-dev): bump the theoretically-non-breaking group with 4 updates by @dependabot[bot] in #5456
- fix: remove redundant optional chaining on process.env which is breaking testing by @jhefferman-sfdc in #5459
- chore: bump version to 8.21.2 by @jye-sf in #5461
- chore: release v8.21.2 by @jye-sf in #5462
Full Changelog: v8.21.1...v8.21.2
v8.21.1
What's Changed
- chore: bump version to 8.21.0 by @jmsjtu in #5445
- build(deps-dev): bump the theoretically-non-breaking group with 4 updates by @dependabot[bot] in #5444
- chore: update nucleus config CLCO
master
by @jmsjtu in #5447 - fix: check process is defined in ssr-client-utils by @jhefferman-sfdc in #5449
Full Changelog: v8.20.3...v8.21.1
v8.20.4
What's Changed
- (258) fix: check process is defined by @jhefferman-sfdc in #5451
Full Changelog: v8.20.3...v8.20.4
v8.20.3
What's Changed
- chore: remove dead code by @wjhsf in #5435
- chore(release): adjust scripts to fix minor bugs by @wjhsf in #5431
- chore(scripts): canary release script should use canary dist tag by @wjhsf in #5436
- test(wtr): get another pile of tests passing by @wjhsf in #5425
- chore(scripts): update license check to be more flexible @W-19066903 by @wjhsf in #5422
- fix: dudupe light scoped issue, hydration coverage by @jhefferman-sfdc in #5438
- chore: bump version to 8.20.3 by @jhefferman-sfdc in #5441
- Release publish 2025 08 04 16 57 by @jhefferman-sfdc in #5442
v8.20.2
What's Changed
- test(ts): add assertion so we don't accidentally bump TS again @W-18978621 by @wjhsf in #5410
- test(web-test-runner): run hydration tests in CI @W-18780671 by @wjhsf in #5398
- chore(ci): run perf testing on release branches @W-18882666 by @wjhsf in #5408
- test(integration): add missing bits to make more tests pass @W-18763051 by @wjhsf in #5411
- test(integration): more web-test-runner test fixes @W-18763051 by @wjhsf in #5414
- build(deps): bump the theoretically-non-breaking group across 1 directory with 41 updates by @dependabot[bot] in #5413
- build(deps-dev): bump dotenv from 16.5.0 to 17.2.0 by @dependabot[bot] in #5417
- build(deps-dev): bump parse5 from 7.3.0 to 8.0.0 by @dependabot[bot] in #5418
- build(deps): bump form-data from 4.0.1 to 4.0.4 by @dependabot[bot] in #5424
- fix(types): add
synthetic
prop to component template by @wjhsf in #5426 - docs: architecture.md preview. by @TitanCmd in #5427
- chore: bump version to 8.20.2 by @wjhsf in #5430
- chore: release 8.20.2 by @wjhsf in #5434
New Contributors
Full Changelog: v8.20.1...v8.20.2
v8.20.1
What's Changed
- feat(ts): almost enable TypeScript in the playground by @wjhsf in #5384
- test(integration): begin moving from Karma to Web Test Runner by @wjhsf in #5386
- @W-17388345 - add context support to ssrv2 component lifecycle by @jhefferman-sfdc in #5387
- chore: create missing OSS files @W-18819307 by @wjhsf in #5388
- chore(dependabot): separate all webdriverio versions and add group for vitest by @wjhsf in #5390
- chore(deps): add tslib to playground by @wjhsf in #5391
- chore(deps): bump @types/estree and parse5 by @wjhsf in #5392
- build(deps-dev): bump the nx group with 2 updates by @dependabot in #5393
- build(deps-dev): bump the best group with 3 updates by @dependabot in #5395
- feat: export add trusted context by @jhefferman-sfdc in #5399
- fix: expose additional signals api by @jhefferman-sfdc in #5402
Full Changelog: v8.20.0...v8.20.1
v8.20.0
What's Changed
- chore: remove structuredClone workaround by @wjhsf in #5367
- fix(release): oops shell scripts are relative to cwd by @wjhsf in #5368
- build(deps): bump undici from 6.21.1 to 6.21.3 by @dependabot in #5373
- test(engine-server): update global attributes spec by @ekashida in #5378
- feat(ssr): make SSR compiler recognize lwc:on directive @W-18158832 by @gaurav-rk9 in #5377
- fix(ssr): massive compiled outputs when nested slots are present by @divmain in #5379
- chore: bump version to 8.20.0 by @wjhsf in #5381
- chore: release 8.20.0 by @wjhsf in #5382
New Contributors
- @gaurav-rk9 made their first contribution in #5377
Full Changelog: v8.19.1...v8.20.0
v8.19.1
What's Changed
- feat: CSR/SSRv1 context by @jhefferman-sfdc in #5356
v8.19.0
Better types for template elements
TypeScript component authors can now specify a new property, __lwc_public_property_types__
, to indicate to TypeScript which properties are available on the element created by a component. This prevents erroneous property definitions, which are otherwise unavoidable due to the way that TypeScript implements decorators.
Example
// <c-inferred-props>
class InferredProps extends LightningElement {
@api exposed = 'hello'
internal = 'secret'
}
// <c-explicit-props>
class ExplicitProps extends InferredProps {
__lwc_public_property_types__?: {
exposed: string
}
}
class Container extends LightningElement {
checkInferred() {
const inferred = this.querySelector<LightningHTMLElement<InferredProps>>('c-inferred-props')!
inferred.exposed // ✅ Valid, no type error
inferred.internal // ❌ Invalid, but no type error!
}
checkExplicit() {
const explicit = this.querySelector<LightningHTMLElement<ExplicitProps>>('c-explicit-props')!
explicit.exposed // ✅ Valid, no type error
explicit.internal // ✅ Invalid, and a type error occurs!
}
}
In this example, the element interface for c-inferred-props
is defined by LightningHTMLElement<InferredProps>
. That interface has an erroneous property definition, internal
. The internal
property is part of the component interface, but is not decorated with @api
, so it should not be part of the element interface.
The element interface for c-explicit-props
is defined by LightningHTMLElement<ExplicitProps>
. Because ExplicitProps
defines __lwc_public_property_types__
, the element interface does not include the internal
property, which is the correct behavior.
What else changed?
- feat: make it pop! (over) @W-18425406 by @wjhsf in #5357
- chore: add summer25 def to nucleus.yaml by @jhefferman-sfdc in #5365
- feat(types): add hidden helper to make inferring element types better @W-18442478 by @wjhsf in #5362
- chore: bump version to 8.19.0 by @wjhsf in #5370
- chore: release 8.19.0 by @wjhsf in #5371
Full Changelog: v8.18.2...v8.19.0
v8.16.5
What's Changed
- fix: remove perf regression for signals re-enablement (256 patch) by @jhefferman-sfdc in #5358