Skip to content

Commit b06e0e9

Browse files
authored
Merge branch 'salesforce:master' into lwc_on
2 parents 523ac07 + 1968440 commit b06e0e9

File tree

228 files changed

+2956
-1728
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+2956
-1728
lines changed

.github/dependabot.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ updates:
3939
patterns:
4040
- 'webdriverio'
4141
- '@wdio/*'
42-
update-types:
43-
- 'major'
4442
prettier:
4543
patterns:
4644
- 'prettier'

.github/workflows/unit.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ jobs:
6666
run: yarn test:types
6767
- name: Run unit tests
6868
run: yarn test:ci
69+
- name: Run unit tests in production mode
70+
run: yarn test:production --no-watch
6971
- name: Upload unit test coverage report
7072
uses: actions/upload-artifact@v4
7173
with:

eslint.config.mjs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import js from '@eslint/js';
1212
import tseslint from 'typescript-eslint';
1313
import gitignore from 'eslint-config-flat-gitignore';
1414
import vitest from '@vitest/eslint-plugin';
15+
import * as espree from 'espree';
16+
1517
import { PUBLIC_PACKAGES as publicPackageData } from './scripts/shared/packages.mjs';
1618
// convert filepath to eslint glob
1719
const PUBLIC_PACKAGES = publicPackageData.map(({ path }) => `${path}/**`);
@@ -27,7 +29,7 @@ export default tseslint.config(
2729

2830
gitignore(),
2931
{
30-
ignores: ['**/fixtures'],
32+
ignores: ['packages/**/fixtures/**/*.js'],
3133
},
3234
js.configs.recommended,
3335
...tseslint.configs.recommendedTypeChecked,
@@ -403,18 +405,35 @@ export default tseslint.config(
403405

404406
{
405407
// These are empty files used to help debug test fixtures
406-
files: ['**/.only'],
408+
files: ['**/.only', '**/.skip'],
407409
plugins: { '@lwc/lwc-internal': lwcInternal },
410+
languageOptions: {
411+
// Using the default eslint parser because typescript-eslint doesn't
412+
// seem to correctly support `extraFileExtensions`
413+
parser: espree,
414+
parserOptions: {
415+
extraFileExtensions: ['only', 'skip'],
416+
},
417+
},
408418
rules: {
409419
'@lwc/lwc-internal/forbidden-filename': 'error',
420+
// Disable all TS rules because they complain about the parser being espree
421+
...Object.fromEntries(
422+
tseslint.configs.all
423+
.flatMap((cfg) => Object.keys(cfg.rules ?? {}))
424+
.map((rule) => [rule, 'off'])
425+
),
410426
},
411427
},
412428
{
413-
// These are empty files used to help debug test fixtures
414429
files: ['**/.skip'],
415-
plugins: { '@lwc/lwc-internal': lwcInternal },
416430
rules: {
417-
'@lwc/lwc-internal/forbidden-filename': 'off',
431+
// We want to avoid accidentally committing .skip files, but sometimes there are
432+
// legitimate reasons to do so. So we complain when trying to commit, but not any
433+
// other time.
434+
'@lwc/lwc-internal/forbidden-filename':
435+
// eslint-disable-next-line no-undef
436+
process.env.npm_lifecycle_event === 'lint-staged' ? 'error' : 'off',
418437
},
419438
}
420439
);

package.json

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lwc-monorepo",
3-
"version": "8.15.1",
3+
"version": "8.18.1",
44
"private": true,
55
"description": "Lightning Web Components",
66
"repository": {
@@ -19,6 +19,7 @@
1919
"copy-fork": "./scripts/tasks/unsafe-external-contributor-ci-workaround.sh",
2020
"dev": "nx run-many --target=dev --all --parallel=999 --exclude=@lwc/perf-benchmarks,@lwc/perf-benchmarks-components,@lwc/integration-tests",
2121
"test": "vitest --workspace vitest.workspace.mjs",
22+
"test:production": "VITE_NODE_ENV=production vitest --workspace vitest.workspace.mjs",
2223
"test:bespoke": "nx run-many --target=test",
2324
"test:debug": "vitest --workspace vitest.workspace.mjs --inspect-brk --no-file-parallelism",
2425
"test:ci": "vitest run --workspace vitest.workspace.mjs --coverage",
@@ -30,56 +31,56 @@
3031
"test:performance:best": "nx test:best @lwc/perf-benchmarks",
3132
"test:performance:best:ci": "nx test:best:ci @lwc/perf-benchmarks",
3233
"test:types": "nx test @lwc/integration-types",
33-
"release:version": "node ./scripts/release/version.js",
34-
"release:publish": "nx release publish --registry https://registry.npmjs.org"
34+
"release:version": "./scripts/release/version.sh",
35+
"release:publish": "./scripts/release/publish.sh",
36+
"release:publish:canary": "nx release publish --registry https://registry.npmjs.org"
3537
},
3638
"devDependencies": {
37-
"@commitlint/cli": "^19.7.1",
38-
"@eslint/js": "9.20.0",
39+
"@commitlint/cli": "^19.8.0",
40+
"@eslint/js": "9.24.0",
3941
"@lwc/eslint-plugin-lwc-internal": "link:./scripts/eslint-plugin",
4042
"@lwc/test-utils-lwc-internals": "link:./scripts/test-utils",
41-
"@nx/js": "20.4.4",
42-
"@rollup/plugin-commonjs": "^28.0.2",
43+
"@nx/js": "20.7.2",
44+
"@rollup/plugin-commonjs": "^28.0.3",
4345
"@rollup/plugin-inject": "^5.0.5",
44-
"@rollup/plugin-node-resolve": "^16.0.0",
46+
"@rollup/plugin-node-resolve": "^16.0.1",
4547
"@rollup/plugin-replace": "^6.0.2",
4648
"@rollup/plugin-typescript": "^12.1.2",
47-
"@swc-node/register": "~1.10.9",
48-
"@swc/core": "~1.10.16",
49-
"@swc/helpers": "~0.5.15",
49+
"@swc-node/register": "~1.10.10",
50+
"@swc/core": "~1.11.21",
51+
"@swc/helpers": "~0.5.17",
5052
"@types/babel__core": "^7.20.5",
51-
"@types/node": "^22.13.4",
52-
"@vitest/coverage-v8": "^3.0.5",
53-
"@vitest/eslint-plugin": "^1.1.31",
54-
"@vitest/ui": "^3.0.5",
53+
"@types/node": "^22.14.1",
54+
"@vitest/coverage-v8": "^3.1.1",
55+
"@vitest/eslint-plugin": "^1.1.42",
56+
"@vitest/ui": "^3.1.1",
5557
"bytes": "^3.1.2",
5658
"es-module-lexer": "^1.6.0",
57-
"eslint": "9.20.1",
58-
"eslint-config-flat-gitignore": "^2.0.0",
59+
"eslint": "9.24.0",
60+
"eslint-config-flat-gitignore": "^2.1.0",
5961
"eslint-plugin-header": "^3.1.1",
6062
"eslint-plugin-import": "^2.31.0",
6163
"glob": "^11.0.1",
6264
"globals": "^16.0.0",
6365
"husky": "^9.1.7",
6466
"isbinaryfile": "^5.0.4",
65-
"jsdom": "^26.0.0",
66-
"lint-staged": "^15.4.3",
67+
"jsdom": "^26.1.0",
68+
"lint-staged": "^15.5.1",
6769
"magic-string": "^0.30.17",
68-
"nx": "20.4.4",
69-
"prettier": "^3.5.1",
70-
"rollup": "^4.34.8",
70+
"nx": "20.7.2",
71+
"prettier": "^3.5.3",
72+
"rollup": "^4.40.0",
7173
"terser": "^5.39.0",
7274
"tslib": "^2.8.1",
73-
"typescript": "5.7.3",
74-
"typescript-eslint": "8.24.0",
75-
"vitest": "^3.0.5"
75+
"typescript": "5.8.2",
76+
"typescript-eslint": "8.29.1",
77+
"vitest": "^3.1.1"
7678
},
7779
"lint-staged": {
78-
"*.{js,mjs,ts}": "eslint --cache",
79-
"*.{css,js,json,md,mjs,ts,yaml,yml}": "prettier --write",
80-
"{packages/**/package.json,scripts/tasks/check-and-rewrite-package-json.js}": "node ./scripts/tasks/check-and-rewrite-package-json.js",
81-
"{LICENSE-CORE.md,**/LICENSE.md,yarn.lock,scripts/tasks/generate-license-files.js,scripts/shared/bundled-dependencies.js}": "node ./scripts/tasks/generate-license-files.js",
82-
"*.{only,skip}": "eslint --cache --no-eslintrc --plugin '@lwc/eslint-plugin-lwc-internal' --rule '@lwc/lwc-internal/forbidden-filename: error'"
80+
"*.{js,mjs,ts,only,skip}": "eslint --cache",
81+
"*.{css,js,json,md,mjs,ts,yaml,yml}": "prettier --check",
82+
"{packages/**/package.json,scripts/tasks/check-and-rewrite-package-json.js}": "node ./scripts/tasks/check-and-rewrite-package-json.js --test",
83+
"{LICENSE-CORE.md,**/LICENSE.md,yarn.lock,scripts/tasks/generate-license-files.js,scripts/shared/bundled-dependencies.js}": "node ./scripts/tasks/generate-license-files.js --test"
8384
},
8485
"workspaces": [
8586
"packages/@lwc/*",

packages/@lwc/aria-reflection/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
55
],
66
"name": "@lwc/aria-reflection",
7-
"version": "8.15.1",
7+
"version": "8.18.1",
88
"description": "ARIA element reflection polyfill for strings",
99
"keywords": [
1010
"aom",

packages/@lwc/babel-plugin-component/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
55
],
66
"name": "@lwc/babel-plugin-component",
7-
"version": "8.15.1",
7+
"version": "8.18.1",
88
"description": "Babel plugin to transform a LWC module",
99
"keywords": [
1010
"lwc"
@@ -47,8 +47,8 @@
4747
},
4848
"dependencies": {
4949
"@babel/helper-module-imports": "7.25.9",
50-
"@lwc/errors": "8.15.1",
51-
"@lwc/shared": "8.15.1",
50+
"@lwc/errors": "8.18.1",
51+
"@lwc/shared": "8.18.1",
5252
"line-column": "~1.0.2"
5353
},
5454
"devDependencies": {

packages/@lwc/compiler/package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
55
],
66
"name": "@lwc/compiler",
7-
"version": "8.15.1",
7+
"version": "8.18.1",
88
"description": "LWC compiler",
99
"keywords": [
1010
"lwc"
@@ -46,17 +46,17 @@
4646
}
4747
},
4848
"dependencies": {
49-
"@babel/core": "7.26.9",
49+
"@babel/core": "7.26.10",
5050
"@babel/plugin-transform-async-generator-functions": "7.26.8",
5151
"@babel/plugin-transform-async-to-generator": "7.25.9",
5252
"@babel/plugin-transform-class-properties": "7.25.9",
5353
"@babel/plugin-transform-object-rest-spread": "7.25.9",
5454
"@locker/babel-plugin-transform-unforgeables": "0.22.0",
55-
"@lwc/babel-plugin-component": "8.15.1",
56-
"@lwc/errors": "8.15.1",
57-
"@lwc/shared": "8.15.1",
58-
"@lwc/ssr-compiler": "8.15.1",
59-
"@lwc/style-compiler": "8.15.1",
60-
"@lwc/template-compiler": "8.15.1"
55+
"@lwc/babel-plugin-component": "8.18.1",
56+
"@lwc/errors": "8.18.1",
57+
"@lwc/shared": "8.18.1",
58+
"@lwc/ssr-compiler": "8.18.1",
59+
"@lwc/style-compiler": "8.18.1",
60+
"@lwc/template-compiler": "8.18.1"
6161
}
6262
}

packages/@lwc/engine-core/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"You can safely modify dependencies, devDependencies, keywords, etc., but other props will be overwritten."
55
],
66
"name": "@lwc/engine-core",
7-
"version": "8.15.1",
7+
"version": "8.18.1",
88
"description": "Core LWC engine APIs.",
99
"keywords": [
1010
"lwc"
@@ -46,9 +46,9 @@
4646
}
4747
},
4848
"dependencies": {
49-
"@lwc/features": "8.15.1",
50-
"@lwc/shared": "8.15.1",
51-
"@lwc/signals": "8.15.1"
49+
"@lwc/features": "8.18.1",
50+
"@lwc/shared": "8.18.1",
51+
"@lwc/signals": "8.18.1"
5252
},
5353
"devDependencies": {
5454
"observable-membrane": "2.0.0"

packages/@lwc/engine-core/src/framework/check-version-mismatch.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,12 @@ export function checkVersionMismatch(
3838
) {
3939
const versionMatcher = func.toString().match(LWC_VERSION_COMMENT_REGEX);
4040
if (!isNull(versionMatcher) && !warned) {
41-
if (typeof process === 'object' && process.env.SKIP_LWC_VERSION_MISMATCH_CHECK === 'true') {
41+
if (
42+
typeof process === 'object' &&
43+
typeof process?.env === 'object' &&
44+
process.env &&
45+
process.env.SKIP_LWC_VERSION_MISMATCH_CHECK === 'true'
46+
) {
4247
warned = true; // skip printing out version mismatch errors when env var is set
4348
return;
4449
}

packages/@lwc/engine-core/src/framework/decorators/register.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ export function registerDecorators(
254254
validateMethodDecoratedWithWire(Ctor, fieldOrMethodName, descriptor);
255255
}
256256
if (isUndefined(descriptor)) {
257-
throw new Error();
257+
throw new Error(`Missing descriptor for wired method "${fieldOrMethodName}".`);
258258
}
259259
wiredMethods[fieldOrMethodName] = descriptor;
260260
storeWiredMethodMeta(descriptor, adapter, configCallback, dynamic);

0 commit comments

Comments
 (0)