Skip to content

Commit 33d09a3

Browse files
authored
feat: add lwc dev server telemetry (#148)
* feat: pass telemetry instance to dev server * chore: update test * chore: update @lwc/* version * chore: use winter25 dev server
1 parent 1ffbbf4 commit 33d09a3

File tree

5 files changed

+47
-67
lines changed

5 files changed

+47
-67
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
"bugs": "https://github.com/forcedotcom/cli/issues",
77
"dependencies": {
88
"@lwrjs/api": "0.14.3",
9-
"@lwc/lwc-dev-server": "^9.4.0",
10-
"@lwc/sfdc-lwc-compiler": "^9.4.0",
9+
"@lwc/lwc-dev-server": "^9.5.1",
10+
"@lwc/sfdc-lwc-compiler": "^9.5.1",
1111
"@oclif/core": "^4.0.17",
1212
"@salesforce/core": "^8.2.7",
1313
"@salesforce/kit": "^3.1.6",

src/commands/lightning/dev/app.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ export default class LightningDevApp extends SfCommand<void> {
197197
);
198198

199199
// Start the LWC Dev Server
200-
await startLWCServer(logger, sfdxProjectRootPath, token, serverPorts);
200+
await startLWCServer(logger, sfdxProjectRootPath, token, Platform.desktop, serverPorts);
201201

202202
// Open the browser and navigate to the right page
203203
await this.config.runCommand('org:open', launchArguments);
@@ -304,7 +304,8 @@ export default class LightningDevApp extends SfCommand<void> {
304304
}
305305

306306
// Start the LWC Dev Server
307-
await startLWCServer(logger, sfdxProjectRootPath, token, serverPorts, certData);
307+
308+
await startLWCServer(logger, sfdxProjectRootPath, token, platform, serverPorts, certData);
308309

309310
// Launch the native app for previewing (launchMobileApp will show its own spinner)
310311
// eslint-disable-next-line camelcase

src/lwc-dev-server/index.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { existsSync, lstatSync, readFileSync } from 'node:fs';
99
import path from 'node:path';
1010
import process from 'node:process';
1111
import { LWCServer, LogLevel, ServerConfig, startLwcDevServer, Workspace } from '@lwc/lwc-dev-server';
12-
import { Logger } from '@salesforce/core';
12+
import { Lifecycle, Logger } from '@salesforce/core';
1313
import { SSLCertificateData } from '@salesforce/lwc-dev-mobile-core';
1414
import {
1515
ConfigUtils,
@@ -47,6 +47,7 @@ async function createLWCServerConfig(
4747
logger: Logger,
4848
rootDir: string,
4949
token: string,
50+
clientType: string,
5051
serverPorts?: { httpPort: number; httpsPort: number },
5152
certData?: SSLCertificateData,
5253
workspace?: Workspace
@@ -91,6 +92,8 @@ async function createLWCServerConfig(
9192
workspace: workspace ?? (await ConfigUtils.getLocalDevServerWorkspace()) ?? LOCAL_DEV_SERVER_DEFAULT_WORKSPACE,
9293
identityToken: token,
9394
logLevel: mapLogLevel(logger.getLevel()),
95+
lifecycle: Lifecycle.getInstance(),
96+
clientType,
9497
};
9598

9699
if (certData?.pemCertificate && certData.pemPrivateKey) {
@@ -108,11 +111,12 @@ export async function startLWCServer(
108111
logger: Logger,
109112
rootDir: string,
110113
token: string,
114+
clientType: string,
111115
serverPorts?: { httpPort: number; httpsPort: number },
112116
certData?: SSLCertificateData,
113117
workspace?: Workspace
114118
): Promise<LWCServer> {
115-
const config = await createLWCServerConfig(logger, rootDir, token, serverPorts, certData, workspace);
119+
const config = await createLWCServerConfig(logger, rootDir, token, clientType, serverPorts, certData, workspace);
116120

117121
logger.trace(`Starting LWC Dev Server with config: ${JSON.stringify(config)}`);
118122
let lwcDevServer: LWCServer | null = await startLwcDevServer(config);

test/lwc-dev-server/index.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ describe('lwc-dev-server', () => {
5656

5757
it('calling startLWCServer returns an LWCServer', async () => {
5858
const fakeIdentityToken = 'PFT1vw8v65aXd2b9HFvZ3Zu4OcKZwjI60bq7BEjj5k4=';
59-
const s = await lwcDevServer.startLWCServer(logger, path.resolve(__dirname, './__mocks__'), fakeIdentityToken);
59+
const s = await lwcDevServer.startLWCServer(logger, path.resolve(__dirname, './__mocks__'), fakeIdentityToken, '');
6060
expect(s).to.equal(server);
6161
});
6262
});

yarn.lock

Lines changed: 35 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1938,7 +1938,7 @@
19381938

19391939
"@babel/traverse@^7.25.2":
19401940
version "7.25.6"
1941-
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41"
1941+
resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41"
19421942
integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==
19431943
dependencies:
19441944
"@babel/code-frame" "^7.24.7"
@@ -1969,7 +1969,7 @@
19691969

19701970
"@babel/types@^7.25.2", "@babel/types@^7.25.6":
19711971
version "7.25.6"
1972-
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
1972+
resolved "https://registry.npmjs.org/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6"
19731973
integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==
19741974
dependencies:
19751975
"@babel/helper-string-parser" "^7.24.8"
@@ -1978,7 +1978,7 @@
19781978

19791979
"@babel/types@~7.24.8":
19801980
version "7.24.9"
1981-
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73"
1981+
resolved "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73"
19821982
integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==
19831983
dependencies:
19841984
"@babel/helper-string-parser" "^7.24.8"
@@ -2895,7 +2895,7 @@
28952895

28962896
"@komaci/common-shared@252.1.0":
28972897
version "252.1.0"
2898-
resolved "https://registry.yarnpkg.com/@komaci/common-shared/-/common-shared-252.1.0.tgz#55d901a012d799ff52ad2fb7855b022868827dd8"
2898+
resolved "https://registry.npmjs.org/@komaci/common-shared/-/common-shared-252.1.0.tgz#55d901a012d799ff52ad2fb7855b022868827dd8"
28992899
integrity sha512-1yrQhWooyIOPGdmDubDLQJ7I/pcWtSxCwf9Cdls4TUVrM5IFYfy33w+KH4hEVzQGWfpv3vEEPqH8W+GdzoLUOQ==
29002900
dependencies:
29012901
"@babel/core" "^7.9.0"
@@ -2905,7 +2905,7 @@
29052905

29062906
"@komaci/esm-generator@252.1.0":
29072907
version "252.1.0"
2908-
resolved "https://registry.yarnpkg.com/@komaci/esm-generator/-/esm-generator-252.1.0.tgz#00c60e28f6f2710ca3874cd4194bb2c5572ceb36"
2908+
resolved "https://registry.npmjs.org/@komaci/esm-generator/-/esm-generator-252.1.0.tgz#00c60e28f6f2710ca3874cd4194bb2c5572ceb36"
29092909
integrity sha512-69y6DCEz5VScISZl9bKx2sqeJTO4VOl6tnssez1HoDKj8mzbhUFi05JRXeTckkc6FebMIarX8nzfqcQhisFlgw==
29102910
dependencies:
29112911
"@babel/core" "^7.9.0"
@@ -2916,7 +2916,7 @@
29162916

29172917
"@komaci/static-analyzer@252.1.0":
29182918
version "252.1.0"
2919-
resolved "https://registry.yarnpkg.com/@komaci/static-analyzer/-/static-analyzer-252.1.0.tgz#e45d9301e5912c4a24a983ee515e4deafa04e1f6"
2919+
resolved "https://registry.npmjs.org/@komaci/static-analyzer/-/static-analyzer-252.1.0.tgz#e45d9301e5912c4a24a983ee515e4deafa04e1f6"
29202920
integrity sha512-CfWsBJFT+K8DNGOxi6NxZZAWeZ4PXdFyU5THGzAKlWD0T0mw58eMVgS+U7bV4MRmEAGfygoZnhxYErFjUZA5PQ==
29212921
dependencies:
29222922
"@babel/types" "^7.9.0"
@@ -3056,10 +3056,10 @@
30563056
"@lwc/style-compiler" "7.1.3"
30573057
"@lwc/template-compiler" "7.1.3"
30583058

3059-
"@lwc/dev-server-plugin-lex@9.5.0":
3060-
version "9.5.0"
3061-
resolved "https://registry.yarnpkg.com/@lwc/dev-server-plugin-lex/-/dev-server-plugin-lex-9.5.0.tgz#bf4f1fbdecf73855b6cae66a9e1f2fd1411e4ae9"
3062-
integrity sha512-QU3WShK5LeVpFHxjB/jjGUnbDgZ7EKUidrDMg3cFRSbf2RDiLKR4ZI5nIK0bzYMJ9oWIITyKZnoUNFx4h5++DA==
3059+
"@lwc/dev-server-plugin-lex@9.5.1":
3060+
version "9.5.1"
3061+
resolved "https://registry.npmjs.org/@lwc/dev-server-plugin-lex/-/dev-server-plugin-lex-9.5.1.tgz#74da17642627a5d49315a299e7a472fea64b53b2"
3062+
integrity sha512-L60zXX0bHqNovxr0oCIA/hXjJ2ppdMzd83+CN1MHrWLLIL1Pu5QLoXKX4ylltQdAknVNA+dNvCoKStPaK2Bniw==
30633063
dependencies:
30643064
magic-string "~0.30.10"
30653065

@@ -3109,26 +3109,26 @@
31093109
dependencies:
31103110
"@lwc/shared" "7.1.3"
31113111

3112-
"@lwc/lwc-dev-server@^9.4.0":
3113-
version "9.5.0"
3114-
resolved "https://registry.yarnpkg.com/@lwc/lwc-dev-server/-/lwc-dev-server-9.5.0.tgz#3fd22140b1661b903e36222f2371f3b1c8d2cbdc"
3115-
integrity sha512-g88BN9k8DIrWRSdXWbtRly0ftWpHgcN4ZVB5P5pghPWBAKi9sXVseLW5yiL2fytGfEvQEuTMoQyiuS7lXE8OFQ==
3112+
"@lwc/lwc-dev-server@^9.5.1":
3113+
version "9.5.1"
3114+
resolved "https://registry.npmjs.org/@lwc/lwc-dev-server/-/lwc-dev-server-9.5.1.tgz#3f50ba4ef1a998a6de354ec3d7142133d0c3b511"
3115+
integrity sha512-FrJYT4mrDPleTd7Hofw+vLV+1DW6nkBYpp64Brh+OCqbUi9xFIJq4Wr2mVm5WZYb6uzkxIfj2Lat7WxqHaFqVA==
31163116
dependencies:
3117-
"@lwc/sfdc-lwc-compiler" "9.5.0"
3117+
"@lwc/sfdc-lwc-compiler" "9.5.1"
31183118
chalk "~5.3.0"
31193119
chokidar "~3.6.0"
31203120
commander "~10.0.0"
31213121
ws "^8.18.0"
31223122

3123-
"@lwc/metadata@9.5.0":
3124-
version "9.5.0"
3125-
resolved "https://registry.yarnpkg.com/@lwc/metadata/-/metadata-9.5.0.tgz#e5ba65cbd47fd48554dda548f29b10b5d26aa316"
3126-
integrity sha512-LFTuj5tmbf5x2ts45D8K90yBTRhEgTJlvPOhFL8gUboXWztRWrhzdThKiTw6nTDq00mHemPOcJ8pkXHpwQmzaA==
3123+
"@lwc/metadata@9.5.1":
3124+
version "9.5.1"
3125+
resolved "https://registry.npmjs.org/@lwc/metadata/-/metadata-9.5.1.tgz#575938209654ed4ab94faf10f76407d4bb5c03f9"
3126+
integrity sha512-spyoslO97E8Mi7Phps1UPnWv0IgS0yzoseuL+Yg+vyaG0dJJMURquD94116S5JsQ/h6TJBDvbl6UlTQuVJDb0Q==
31273127
dependencies:
31283128
"@babel/parser" "~7.24.8"
31293129
"@babel/traverse" "~7.24.8"
31303130
"@babel/types" "~7.24.8"
3131-
"@lwc/sfdc-compiler-utils" "9.5.0"
3131+
"@lwc/sfdc-compiler-utils" "9.5.1"
31323132
postcss "~8.4.39"
31333133
postcss-selector-parser "~6.1.0"
31343134
postcss-value-parser "~4.2.0"
@@ -3149,15 +3149,15 @@
31493149
"@lwc/module-resolver" "7.1.3"
31503150
"@rollup/pluginutils" "~5.1.0"
31513151

3152-
"@lwc/sfdc-compiler-utils@9.5.0":
3153-
version "9.5.0"
3154-
resolved "https://registry.yarnpkg.com/@lwc/sfdc-compiler-utils/-/sfdc-compiler-utils-9.5.0.tgz#67226488e48a6d0491a10f5784535b3d2f70e300"
3155-
integrity sha512-4K2lHLijyf2bg0cxAp+r1zPQhN6vP//L12TuRQg8Nd0LlPgAooZwwd3C+iSOhG6AX6FLQtgx2FZNDWQ5m0TlXg==
3152+
"@lwc/sfdc-compiler-utils@9.5.1":
3153+
version "9.5.1"
3154+
resolved "https://registry.npmjs.org/@lwc/sfdc-compiler-utils/-/sfdc-compiler-utils-9.5.1.tgz#f8ca7151f9d70a211fd72e46945d2a3a9dc10e97"
3155+
integrity sha512-7sqEj9w/zF6zIzg3QVQ7WZ4fmpIX7YP3kTzmZw4cdFOfl/RIc6q3m1PJGPCC7IB4ILIiMWAjO4RVwEnLHtmQkw==
31563156

3157-
"@lwc/sfdc-lwc-compiler@9.5.0", "@lwc/sfdc-lwc-compiler@^9.4.0":
3158-
version "9.5.0"
3159-
resolved "https://registry.yarnpkg.com/@lwc/sfdc-lwc-compiler/-/sfdc-lwc-compiler-9.5.0.tgz#79af499b6d833ad90f81041f8f829bb8965fb325"
3160-
integrity sha512-2AMZ11FEqFe9fLI7zzJL6tJc0oGRWZQK/y7bS2HxpbihMCX95V7H1Ub8oboIIXrd7g7dHiKnylyRRnpfPAPiwQ==
3157+
"@lwc/sfdc-lwc-compiler@9.5.1", "@lwc/sfdc-lwc-compiler@^9.5.1":
3158+
version "9.5.1"
3159+
resolved "https://registry.npmjs.org/@lwc/sfdc-lwc-compiler/-/sfdc-lwc-compiler-9.5.1.tgz#fb2142a7d3d278cec5130426c0d9330206c3a47c"
3160+
integrity sha512-KuUdMBUEL1ZOJFxtn5PXqc9yLNc1RrDxJzdjxwtMVQxObJwDfYGpmWujCvAHtQgEbJkFYereNCWdfNsJo2WQ3g==
31613161
dependencies:
31623162
"@babel/core" "7.24.8"
31633163
"@babel/parser" "7.24.8"
@@ -3166,11 +3166,11 @@
31663166
"@babel/traverse" "7.24.8"
31673167
"@babel/types" "7.24.8"
31683168
"@komaci/esm-generator" "252.1.0"
3169-
"@lwc/dev-server-plugin-lex" "9.5.0"
3169+
"@lwc/dev-server-plugin-lex" "9.5.1"
31703170
"@lwc/eslint-plugin-lwc" "~1.8.2"
31713171
"@lwc/eslint-plugin-lwc-platform" "~4.1.3"
3172-
"@lwc/metadata" "9.5.0"
3173-
"@lwc/sfdc-compiler-utils" "9.5.0"
3172+
"@lwc/metadata" "9.5.1"
3173+
"@lwc/sfdc-compiler-utils" "9.5.1"
31743174
"@rollup/plugin-babel" "^6.0.4"
31753175
"@rollup/plugin-replace" "^5.0.7"
31763176
"@salesforce/eslint-config-lwc" "~3.6.0"
@@ -13054,7 +13054,7 @@ postcss-selector-parser@~6.1.0:
1305413054

1305513055
postcss-selector-parser@~6.1.1:
1305613056
version "6.1.2"
13057-
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
13057+
resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de"
1305813058
integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==
1305913059
dependencies:
1306013060
cssesc "^3.0.0"
@@ -14485,16 +14485,7 @@ string-length@^4.0.1:
1448514485
char-regex "^1.0.2"
1448614486
strip-ansi "^6.0.0"
1448714487

14488-
"string-width-cjs@npm:string-width@^4.2.0":
14489-
version "4.2.3"
14490-
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
14491-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
14492-
dependencies:
14493-
emoji-regex "^8.0.0"
14494-
is-fullwidth-code-point "^3.0.0"
14495-
strip-ansi "^6.0.1"
14496-
14497-
string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
14488+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
1449814489
version "4.2.3"
1449914490
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
1450014491
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -14598,14 +14589,7 @@ stringify-entities@^3.0.1:
1459814589
character-entities-legacy "^1.0.0"
1459914590
xtend "^4.0.0"
1460014591

14601-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
14602-
version "6.0.1"
14603-
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
14604-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
14605-
dependencies:
14606-
ansi-regex "^5.0.1"
14607-
14608-
strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
14592+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@6.0.1, strip-ansi@^6.0.0, strip-ansi@^6.0.1:
1460914593
version "6.0.1"
1461014594
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
1461114595
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -15901,7 +15885,7 @@ workerpool@^6.5.1:
1590115885
resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.5.1.tgz#060f73b39d0caf97c6db64da004cd01b4c099544"
1590215886
integrity sha512-Fs4dNYcsdpYSAfVxhnl1L5zTksjvOJxtC5hzMNl+1t9B8hTJTdKDyZ5ju7ztgPy+ft9tBFXoOlDNiOT9WUXZlA==
1590315887

15904-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
15888+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
1590515889
version "7.0.0"
1590615890
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
1590715891
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -15919,15 +15903,6 @@ wrap-ansi@^6.2.0:
1591915903
string-width "^4.1.0"
1592015904
strip-ansi "^6.0.0"
1592115905

15922-
wrap-ansi@^7.0.0:
15923-
version "7.0.0"
15924-
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
15925-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
15926-
dependencies:
15927-
ansi-styles "^4.0.0"
15928-
string-width "^4.1.0"
15929-
strip-ansi "^6.0.0"
15930-
1593115906
wrap-ansi@^8.1.0:
1593215907
version "8.1.0"
1593315908
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"

0 commit comments

Comments
 (0)