@lwc/lwc-dev-server 9.3.0 → 9.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/devServer.js +14 -7
- package/dist/cli/commands/devServer.js.map +1 -1
- package/dist/labels.d.ts +6 -6
- package/dist/labels.js +6 -8
- package/dist/labels.js.map +1 -1
- package/dist/server/connection/web-socket-server.js +32 -31
- package/dist/server/connection/web-socket-server.js.map +1 -1
- package/dist/server/watcher/index.js +1 -1
- package/dist/server/watcher/index.js.map +1 -1
- package/dist/types/serverConfig.d.ts +8 -7
- package/package.json +3 -3
|
@@ -5,7 +5,7 @@ import { Workspace, LogLevel, MAX_CLIENT_COUNT } from '../../types/index.js';
|
|
|
5
5
|
import { startLwcDevServer } from '../../server/index.js';
|
|
6
6
|
import ConsoleLogger from '../../server/consoleLogger.js';
|
|
7
7
|
import { templateString } from '../../utils/utils.js';
|
|
8
|
-
import { MISSING_CONFIG_FILE, MISSING_CONFIG_FILE_MRT } from '../../labels.js';
|
|
8
|
+
import { MISSING_CONFIG_FILE, MISSING_CONFIG_FILE_MRT, HTTPS_PORT_INVALID } from '../../labels.js';
|
|
9
9
|
const consoleLogger = new ConsoleLogger(LogLevel.info);
|
|
10
10
|
function getPortOption() {
|
|
11
11
|
return new Option('-p, --port <number>', `[number] set port`)
|
|
@@ -135,21 +135,28 @@ function parseHttpsConfig(config, configDir) {
|
|
|
135
135
|
throw new Error('Expected config to be an object');
|
|
136
136
|
if (config === null)
|
|
137
137
|
throw new Error(`config can't be null`);
|
|
138
|
-
|
|
138
|
+
let cert, key, pfx, passphrase, port;
|
|
139
139
|
// could solve this repetition, but I don't know how to resolve typescript
|
|
140
140
|
if ('cert' in config && typeof config.cert === 'string') {
|
|
141
|
-
|
|
141
|
+
cert = readFileSync(path.resolve(configDir, config.cert), 'utf-8');
|
|
142
142
|
}
|
|
143
143
|
if ('key' in config && typeof config.key === 'string') {
|
|
144
|
-
|
|
144
|
+
key = readFileSync(path.resolve(configDir, config.key), 'utf-8');
|
|
145
145
|
}
|
|
146
146
|
if ('pfx' in config && typeof config.pfx === 'string') {
|
|
147
|
-
|
|
147
|
+
pfx = readFileSync(path.resolve(configDir, config.pfx));
|
|
148
148
|
}
|
|
149
149
|
if ('passphrase' in config && typeof config.passphrase === 'string') {
|
|
150
|
-
|
|
150
|
+
passphrase = config.passphrase;
|
|
151
151
|
}
|
|
152
|
-
|
|
152
|
+
if ('port' in config && typeof config.port === 'number') {
|
|
153
|
+
port = config.port;
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
consoleLogger.log(LogLevel.error, HTTPS_PORT_INVALID);
|
|
157
|
+
throw new Error(HTTPS_PORT_INVALID);
|
|
158
|
+
}
|
|
159
|
+
return { cert, key, pfx, passphrase, port };
|
|
153
160
|
}
|
|
154
161
|
function addExitHandler(cb) {
|
|
155
162
|
['exit', 'SIGTERM', 'SIGINT'].forEach((signal) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../src/cli/commands/devServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../src/cli/commands/devServer.ts"],"names":[],"mappings":"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"}
|
package/dist/labels.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
declare const UNRECOGNIZED_MESSAGE_TYPE = "[LWC Dev Server] Receivied unrecognized message from hmr-client, ignoring it and closing socket";
|
|
2
|
-
declare const IGNORING_PREINIT_RESPONSES = "[LWC Dev Server] Ignoring pre-initialization messages sent from hmr-client and closing socket";
|
|
3
|
-
declare const MISSING_CONFIG_FILE = "Failed to find a valid config file at {0}";
|
|
4
|
-
declare const MISSING_CONFIG_FILE_MRT = "Failed to find a valid config file at {0} or {1}";
|
|
5
|
-
declare const WSS_STARTUP_FAILURE = "[LWC Dev Server] Failed to start a WebSocket server with the following error: {0}";
|
|
6
|
-
export
|
|
1
|
+
export declare const UNRECOGNIZED_MESSAGE_TYPE = "[LWC Dev Server] Receivied unrecognized message from hmr-client, ignoring it and closing socket";
|
|
2
|
+
export declare const IGNORING_PREINIT_RESPONSES = "[LWC Dev Server] Ignoring pre-initialization messages sent from hmr-client and closing socket";
|
|
3
|
+
export declare const MISSING_CONFIG_FILE = "Failed to find a valid config file at {0}";
|
|
4
|
+
export declare const MISSING_CONFIG_FILE_MRT = "Failed to find a valid config file at {0} or {1}";
|
|
5
|
+
export declare const WSS_STARTUP_FAILURE = "[LWC Dev Server] Failed to start a WebSocket server with the following error: {0}";
|
|
6
|
+
export declare const HTTPS_PORT_INVALID = "`port` in HTTPS Config is required and should be a port number.";
|
package/dist/labels.js
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
const UNRECOGNIZED_MESSAGE_TYPE = '[LWC Dev Server] Receivied unrecognized message from hmr-client, ignoring it and closing socket';
|
|
2
|
-
const IGNORING_PREINIT_RESPONSES = '[LWC Dev Server] Ignoring pre-initialization messages sent from hmr-client and closing socket';
|
|
3
|
-
const MISSING_CONFIG_FILE = 'Failed to find a valid config file at {0}';
|
|
4
|
-
const MISSING_CONFIG_FILE_MRT = 'Failed to find a valid config file at {0} or {1}';
|
|
5
|
-
const WSS_STARTUP_FAILURE = '[LWC Dev Server] Failed to start a WebSocket server with the following error: {0}';
|
|
6
|
-
export
|
|
7
|
-
// keep sorted
|
|
8
|
-
IGNORING_PREINIT_RESPONSES, MISSING_CONFIG_FILE, MISSING_CONFIG_FILE_MRT, UNRECOGNIZED_MESSAGE_TYPE, WSS_STARTUP_FAILURE, };
|
|
1
|
+
export const UNRECOGNIZED_MESSAGE_TYPE = '[LWC Dev Server] Receivied unrecognized message from hmr-client, ignoring it and closing socket';
|
|
2
|
+
export const IGNORING_PREINIT_RESPONSES = '[LWC Dev Server] Ignoring pre-initialization messages sent from hmr-client and closing socket';
|
|
3
|
+
export const MISSING_CONFIG_FILE = 'Failed to find a valid config file at {0}';
|
|
4
|
+
export const MISSING_CONFIG_FILE_MRT = 'Failed to find a valid config file at {0} or {1}';
|
|
5
|
+
export const WSS_STARTUP_FAILURE = '[LWC Dev Server] Failed to start a WebSocket server with the following error: {0}';
|
|
6
|
+
export const HTTPS_PORT_INVALID = '`port` in HTTPS Config is required and should be a port number.';
|
|
9
7
|
//# sourceMappingURL=labels.js.map
|
package/dist/labels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../src/labels.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAClC,iGAAiG,CAAC;AACtG,MAAM,CAAC,MAAM,0BAA0B,GACnC,+FAA+F,CAAC;AACpG,MAAM,CAAC,MAAM,mBAAmB,GAAG,2CAA2C,CAAC;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAG,kDAAkD,CAAC;AAC1F,MAAM,CAAC,MAAM,mBAAmB,GAC5B,mFAAmF,CAAC;AACxF,MAAM,CAAC,MAAM,kBAAkB,GAAG,iEAAiE,CAAC"}
|
|
@@ -18,16 +18,9 @@ function requestHandler(req, res) {
|
|
|
18
18
|
// the second arg could really be anything, we're just interested in searchParams
|
|
19
19
|
// also req.url can never be undefined, it's just bad typing
|
|
20
20
|
const url = new URL(req.url, 'http://localhost');
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
// something beyond a redirectUrl, terminate the connection
|
|
25
|
-
if (!headers['origin'] ||
|
|
26
|
-
!headers['origin'].endsWith('.wc.crm.dev:6101') ||
|
|
27
|
-
url.pathname !== '/') {
|
|
28
|
-
res.statusCode = 401;
|
|
29
|
-
res.end('Terminating unauthorized http requests');
|
|
30
|
-
return;
|
|
21
|
+
if (req.method !== 'GET' || url.pathname !== '/') {
|
|
22
|
+
res.writeHead(404, { 'Content-Type': 'text/html' });
|
|
23
|
+
return res.end(`404 Not Found`);
|
|
31
24
|
}
|
|
32
25
|
const redirectUrl = url.searchParams.get('redirectUrl');
|
|
33
26
|
if (redirectUrl) {
|
|
@@ -44,22 +37,15 @@ const TRUSTED_ORIGINS = [
|
|
|
44
37
|
'\\.lightning\\.force\\.com$',
|
|
45
38
|
'\\.lightning\\.pc-rnd\\.force\\.com$',
|
|
46
39
|
];
|
|
47
|
-
|
|
48
|
-
* Validate http request before upgrading it to WebSocket connection.
|
|
49
|
-
*/
|
|
50
|
-
function validateIncomingConnection(request, socket, cb) {
|
|
40
|
+
function isFromTrustedOrigin(request) {
|
|
51
41
|
const { headers } = request;
|
|
52
|
-
const
|
|
53
|
-
|
|
42
|
+
const { origin } = headers;
|
|
43
|
+
return (
|
|
54
44
|
// Only upgrade requests that are coming in from the hmr-client
|
|
55
45
|
// https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_client_applications#protocols
|
|
56
|
-
headers['sec-websocket-protocol']
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
|
|
60
|
-
socket.destroy();
|
|
61
|
-
}
|
|
62
|
-
cb();
|
|
46
|
+
headers['sec-websocket-protocol'] === 'lightning-dev-preview' &&
|
|
47
|
+
origin &&
|
|
48
|
+
TRUSTED_ORIGINS.some((trustedOrigin) => new RegExp(trustedOrigin).test(origin)));
|
|
63
49
|
}
|
|
64
50
|
/**
|
|
65
51
|
* Start a WebSocketServer.
|
|
@@ -73,21 +59,36 @@ export function startWebSocketServer({ port, https: httpsConfig }, logger) {
|
|
|
73
59
|
try {
|
|
74
60
|
// Start a WebSocketServer disconnected from the http server, allows us to handle authantication before upgrading ws connections
|
|
75
61
|
const wss = new WebSocketServer({ noServer: true });
|
|
76
|
-
const httpServer =
|
|
62
|
+
const httpServer = http.createServer();
|
|
77
63
|
httpServer.maxRequestsPerSocket = 1;
|
|
78
64
|
// Special handler for the internal usecase
|
|
79
65
|
httpServer.on('request', requestHandler);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
66
|
+
const upgradeHandler = (request, socket, head) => {
|
|
67
|
+
if (!isFromTrustedOrigin(request)) {
|
|
68
|
+
socket.write('HTTP/1.1 401 Unauthorized\r\n\r\n');
|
|
69
|
+
socket.destroy();
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
wss.handleUpgrade(request, socket, head, function (ws) {
|
|
73
|
+
wss.emit('connection', ws, request);
|
|
86
74
|
});
|
|
87
|
-
}
|
|
75
|
+
};
|
|
76
|
+
// Handle upgrade of connections after verifying the validity
|
|
77
|
+
httpServer.on('upgrade', upgradeHandler);
|
|
88
78
|
httpServer.listen(port, () => {
|
|
89
79
|
logger.log(LogLevel.info, `[LWC Dev Server] LWC Dev Server started at port:${port}`);
|
|
90
80
|
});
|
|
81
|
+
if (httpsConfig) {
|
|
82
|
+
const httpsServer = https.createServer(httpsConfig);
|
|
83
|
+
httpsServer.on('request', requestHandler);
|
|
84
|
+
httpsServer.on('upgrade', upgradeHandler);
|
|
85
|
+
httpsServer.listen(httpsConfig.port, () => {
|
|
86
|
+
logger.log(LogLevel.info, `[LWC Dev Server] LWC HTTPS Dev Server started at port:${httpsConfig.port}`);
|
|
87
|
+
});
|
|
88
|
+
wss.on('close', () => {
|
|
89
|
+
httpsServer.close();
|
|
90
|
+
});
|
|
91
|
+
}
|
|
91
92
|
// When the WebSocketServer is being closed, close the http server as well.
|
|
92
93
|
wss.on('close', () => {
|
|
93
94
|
httpServer.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web-socket-server.js","sourceRoot":"","sources":["../../../src/server/connection/web-socket-server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAwB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD;;GAEG;AACH,SAAS,cAAc,CAAC,GAAyB,EAAE,GAAwB;IACvE,iFAAiF;IACjF,4DAA4D;IAC5D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAI,EAAE,kBAAkB,CAAC,CAAC;IAClD,
|
|
1
|
+
{"version":3,"file":"web-socket-server.js","sourceRoot":"","sources":["../../../src/server/connection/web-socket-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { watch } from 'chokidar';
|
|
2
2
|
const watchOptions = {};
|
|
3
3
|
let watcher;
|
|
4
|
-
const SUPPORTED_FILE_EXTENSION_GLOB = '**/*.{html,css,js}';
|
|
4
|
+
const SUPPORTED_FILE_EXTENSION_GLOB = '**/*.{html,css,js,ts}';
|
|
5
5
|
export function startWatch(dirPaths) {
|
|
6
6
|
watcher = watch([
|
|
7
7
|
...dirPaths.map((dir) => dir.endsWith('/')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA2B,MAAM,UAAU,CAAC;AAE1D,MAAM,YAAY,GAAiB,EAAE,CAAC;AACtC,IAAI,OAA8B,CAAC;AACnC,MAAM,6BAA6B,GAAG,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/watcher/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA2B,MAAM,UAAU,CAAC;AAE1D,MAAM,YAAY,GAAiB,EAAE,CAAC;AACtC,IAAI,OAA8B,CAAC;AACnC,MAAM,6BAA6B,GAAG,uBAAuB,CAAC;AAE9D,MAAM,UAAU,UAAU,CAAC,QAAkB;IACzC,OAAO,GAAG,KAAK,CACX;QACI,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACpB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;YACb,CAAC,CAAC,GAAG,GAAG,6BAA6B;YACrC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,6BAA6B,CAClD;KACJ,EACD,YAAY,CACf,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS;IACrB,OAAO,EAAE,KAAK,EAAE,CAAC;AACrB,CAAC"}
|
|
@@ -28,12 +28,13 @@ export declare enum LogLevel {
|
|
|
28
28
|
* but we handpicked the ones that are most used here.
|
|
29
29
|
* Usually users either provide a cert and a key or pfx and a passphrase
|
|
30
30
|
*/
|
|
31
|
-
export type HttpsConfig =
|
|
32
|
-
cert
|
|
33
|
-
key
|
|
34
|
-
pfx
|
|
35
|
-
passphrase
|
|
36
|
-
|
|
31
|
+
export type HttpsConfig = {
|
|
32
|
+
cert?: string;
|
|
33
|
+
key?: string;
|
|
34
|
+
pfx?: Buffer;
|
|
35
|
+
passphrase?: string;
|
|
36
|
+
port: number;
|
|
37
|
+
};
|
|
37
38
|
/**
|
|
38
39
|
* Interface representing the LWC Local Development server config.
|
|
39
40
|
*/
|
|
@@ -44,7 +45,7 @@ export interface ServerConfig {
|
|
|
44
45
|
* For Salesforce CLI customers: The Salesforce DX Project dir
|
|
45
46
|
*/
|
|
46
47
|
rootDir: string;
|
|
47
|
-
/** Port
|
|
48
|
+
/** Port which the HTTP Server will bind to. */
|
|
48
49
|
port: number;
|
|
49
50
|
/**
|
|
50
51
|
* Component paths to watch
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lwc/lwc-dev-server",
|
|
3
3
|
"description": "A development server to get quick feedback on your LWC component development.",
|
|
4
|
-
"version": "9.
|
|
4
|
+
"version": "9.5.0",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"lwc dev server"
|
|
7
7
|
],
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
"start": "node ./bin/dev-server.js start"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@lwc/sfdc-lwc-compiler": "9.
|
|
26
|
+
"@lwc/sfdc-lwc-compiler": "9.5.0",
|
|
27
27
|
"chalk": "~5.3.0",
|
|
28
28
|
"chokidar": "~3.6.0",
|
|
29
29
|
"commander": "~10.0.0",
|
|
30
30
|
"ws": "^8.18.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@lwc/lwc-dev-server-types": "9.
|
|
33
|
+
"@lwc/lwc-dev-server-types": "9.5.0",
|
|
34
34
|
"@types/ws": "^8.5.10"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|