@lwc/lwc-dev-server 8.0.1 → 8.1.1
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 +70 -9
- package/dist/cli/commands/devServer.js.map +1 -1
- package/dist/cli/commands/index.js +1 -1
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.js +15 -8
- package/dist/server/index.js.map +1 -1
- package/dist/server/util/aes.d.ts +7 -0
- package/dist/server/util/aes.js +22 -0
- package/dist/server/util/aes.js.map +1 -0
- package/dist/types/serverConfig.d.ts +4 -0
- package/package.json +3 -3
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { existsSync, readFileSync, lstatSync } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { Command, Option, InvalidArgumentError } from 'commander';
|
|
4
|
-
import { LogLevel, MAX_CLIENT_COUNT } from '../../types/index.js';
|
|
4
|
+
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
|
+
const consoleLogger = new ConsoleLogger(LogLevel.info);
|
|
7
8
|
function getTargetOption() {
|
|
8
9
|
return new Option('-t, --target <target>', '[string] configured target for deployment')
|
|
9
10
|
.choices(['lex', 'mrt', 'mobile'])
|
|
@@ -27,22 +28,81 @@ function parseNumArg(value) {
|
|
|
27
28
|
}
|
|
28
29
|
return parsedValue;
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
31
|
+
function configExists(configFilePath) {
|
|
32
|
+
return existsSync(configFilePath) && lstatSync(configFilePath).isFile();
|
|
33
|
+
}
|
|
34
|
+
function readConfig(configFile, workspace) {
|
|
35
|
+
const parsedConfig = JSON.parse(readFileSync(configFile, 'utf-8'));
|
|
36
|
+
let rootDir, lwc, https;
|
|
37
|
+
consoleLogger.log(LogLevel.debug, `Found config file at "${configFile}" and initializing dev server with it.`);
|
|
38
|
+
if (workspace === Workspace.Mrt && path.basename(configFile).startsWith('lwc')) {
|
|
39
|
+
lwc = parsedConfig;
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
rootDir = parsedConfig.rootDir;
|
|
43
|
+
lwc = parsedConfig.lwc;
|
|
44
|
+
https = parsedConfig.https;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
rootDir,
|
|
48
|
+
lwc,
|
|
49
|
+
https,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* SalesforceCLI workspaces don't require a config file to be present
|
|
54
|
+
* @returns config absolute path | undefined
|
|
55
|
+
*/
|
|
56
|
+
function getDefaultConfig(rootDir, workspace) {
|
|
57
|
+
if (workspace === Workspace.Internal) {
|
|
58
|
+
const configFile = path.resolve(rootDir, 'lwc.config.json');
|
|
59
|
+
if (configExists(configFile)) {
|
|
60
|
+
return configFile;
|
|
61
|
+
}
|
|
36
62
|
consoleLogger.log(LogLevel.error, `Failed to find a valid config file at ${configFile}.`);
|
|
37
63
|
process.exit(1);
|
|
38
64
|
}
|
|
39
|
-
|
|
65
|
+
else if (workspace === Workspace.Mrt) {
|
|
66
|
+
// 1. we check for lwr.config
|
|
67
|
+
const configFile = path.resolve(rootDir, 'lwr.config.json');
|
|
68
|
+
if (configExists(configFile)) {
|
|
69
|
+
return configFile;
|
|
70
|
+
}
|
|
71
|
+
// 2. fallback to lwc.config
|
|
72
|
+
const configFile2 = path.resolve(rootDir, 'lwc.config.json');
|
|
73
|
+
if (configExists(configFile2)) {
|
|
74
|
+
return configFile2;
|
|
75
|
+
}
|
|
76
|
+
// 3. none of the configs are present
|
|
77
|
+
consoleLogger.log(LogLevel.error, `Failed to find a valid config file at ${configFile} OR ${configFile2}.`);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
function resolveModuleRootDir(rootDir, entryDir) {
|
|
82
|
+
if (entryDir.startsWith('$rootDir')) {
|
|
83
|
+
return entryDir.replace(/^\$rootDir/, rootDir);
|
|
84
|
+
}
|
|
85
|
+
else if (path.isAbsolute(entryDir)) {
|
|
86
|
+
return entryDir;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
// entryDir is a relative path
|
|
90
|
+
return path.resolve(rootDir, entryDir);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function normalizeConfig({ config, port, target, logLevel, workspace, maxClientCount = MAX_CLIENT_COUNT, }) {
|
|
94
|
+
let rootDir = process.cwd();
|
|
95
|
+
const configFile = config
|
|
96
|
+
? path.resolve(rootDir, config)
|
|
97
|
+
: getDefaultConfig(rootDir, workspace);
|
|
98
|
+
const modulePaths = [];
|
|
99
|
+
const parsedConfig = configFile ? readConfig(configFile, workspace) : {};
|
|
40
100
|
consoleLogger.log(LogLevel.debug, `Found config file at "${configFile}" and initializing dev server with it.`);
|
|
41
101
|
rootDir = parsedConfig.rootDir ?? rootDir;
|
|
42
102
|
if (parsedConfig.lwc?.modules) {
|
|
43
103
|
parsedConfig.lwc.modules.forEach((entry) => {
|
|
44
104
|
if (entry.dir) {
|
|
45
|
-
const resolvedDir = entry.dir
|
|
105
|
+
const resolvedDir = resolveModuleRootDir(rootDir, entry.dir);
|
|
46
106
|
if (existsSync(resolvedDir)) {
|
|
47
107
|
modulePaths.push(resolvedDir);
|
|
48
108
|
consoleLogger.log(LogLevel.debug, `FS-Watcher: Adding ${resolvedDir} to watch.`);
|
|
@@ -66,6 +126,7 @@ function normalizeConfig({ config, port, target, logLevel, workspace, maxClientC
|
|
|
66
126
|
maxClientCount,
|
|
67
127
|
};
|
|
68
128
|
if (parsedConfig.https) {
|
|
129
|
+
// @ts-expect-error : typescript is unable to deduce that if we are here then configFile exists
|
|
69
130
|
normalizedConfig.https = parseHttpsConfig(parsedConfig.https, path.dirname(configFile));
|
|
70
131
|
}
|
|
71
132
|
return normalizedConfig;
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"devServer.js","sourceRoot":"","sources":["../../../src/cli/commands/devServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ function getVersion() {
|
|
|
8
8
|
export function createCLI() {
|
|
9
9
|
return new Command('lwc-dev-server')
|
|
10
10
|
.description('LWC Local Developement')
|
|
11
|
-
.addOption(new Option('-c, --config <file>', `[string] use specified lwc.config.json file`)
|
|
11
|
+
.addOption(new Option('-c, --config <file>', `[string] use specified lwc.config.json file`))
|
|
12
12
|
.addOption(new Option('--rootDir <directory>', `[string] use specified root directory`).default(process.cwd(), '"."'))
|
|
13
13
|
.addOption(new Option('--logLevel <level>', `[string] use specified log level`)
|
|
14
14
|
.env('LWC_LOG_LEVEL')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,SAAS,UAAU;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC1B,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS;IACrB,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;SAC/B,WAAW,CAAC,wBAAwB,CAAC;SACrC,SAAS,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,SAAS,UAAU;IACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAC1B,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAC3E,CAAC;IACF,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS;IACrB,OAAO,IAAI,OAAO,CAAC,gBAAgB,CAAC;SAC/B,WAAW,CAAC,wBAAwB,CAAC;SACrC,SAAS,CAAC,IAAI,MAAM,CAAC,qBAAqB,EAAE,6CAA6C,CAAC,CAAC;SAC3F,SAAS,CACN,IAAI,MAAM,CAAC,uBAAuB,EAAE,uCAAuC,CAAC,CAAC,OAAO,CAChF,OAAO,CAAC,GAAG,EAAE,EACb,KAAK,CACR,CACJ;SACA,SAAS,CACN,IAAI,MAAM,CAAC,oBAAoB,EAAE,kCAAkC,CAAC;SAC/D,GAAG,CAAC,eAAe,CAAC;SACpB,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;SAChE,OAAO,CAAC,MAAM,CAAC,CACvB;SACA,UAAU,CAAC,eAAe,EAAE,CAAC;SAC7B,kBAAkB,EAAE;SACpB,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/B,CAAC"}
|
package/dist/server/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export declare class LWCServer {
|
|
|
17
17
|
clientPool: ClientPool;
|
|
18
18
|
wss: WebSocketServer;
|
|
19
19
|
context: DevServerContext;
|
|
20
|
+
identityToken?: string;
|
|
20
21
|
constructor(config: ServerConfig, wss: WebSocketServer, logger: Logger);
|
|
21
22
|
/**
|
|
22
23
|
* Initialize the WebSocketServer by adding message handlers for connections lifecycle events.
|
package/dist/server/index.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ModuleGraph } from './moduleGraph/index.js';
|
|
|
6
6
|
import ConsoleLogger from './consoleLogger.js';
|
|
7
7
|
import { Client, ClientPool } from './connection/client.js';
|
|
8
8
|
import { Connection } from './connection/connection.js';
|
|
9
|
+
import { decrypt } from './util/aes.js';
|
|
9
10
|
/**
|
|
10
11
|
* This class represents the central place where the LWC dev server coordination occurs.
|
|
11
12
|
*
|
|
@@ -95,14 +96,20 @@ export class LWCServer {
|
|
|
95
96
|
this.clientPool.addClient(socket, client);
|
|
96
97
|
logger.log(LogLevel.info, `[LWC Dev Server] New connection for url: ${url} and target: ${target} registered. Client ID: ${clientId}`);
|
|
97
98
|
// TODO: The server should decode the auth challenge with its session key and return the challenge phrase
|
|
98
|
-
if (
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
99
|
+
if (this.identityToken) {
|
|
100
|
+
if (!auth) {
|
|
101
|
+
logger.log(LogLevel.error, `[LWC Dev Server] Auth required`);
|
|
102
|
+
socket.close();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const decrypted = decrypt(auth.data.sessionTokenCipher, this.identityToken);
|
|
107
|
+
client.send({ type: 'auth-response', data: { sessionToken: decrypted } });
|
|
108
|
+
}
|
|
109
|
+
catch (e) {
|
|
110
|
+
logger.log(LogLevel.error, `[LWC Dev Server] Failed to decrypt sessionToken. Closing socket.`);
|
|
111
|
+
socket.close();
|
|
112
|
+
}
|
|
106
113
|
}
|
|
107
114
|
break;
|
|
108
115
|
}
|
package/dist/server/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAkC,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,aAAa,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Decrypt a Base64 encoded string using AES-GCM
|
|
3
|
+
* @param encryptedText - The Base64 encoded encrypted text
|
|
4
|
+
* @param base64Key - The Base64 encoded key
|
|
5
|
+
* @returns The decrypted text
|
|
6
|
+
*/
|
|
7
|
+
export declare function decrypt(encryptedText: string, base64Key: string): string;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import * as crypto from 'node:crypto';
|
|
2
|
+
const IV_LENGTH = 12; // 96 bit
|
|
3
|
+
const GCM_TAG_LENGTH = 16; // 128 bit
|
|
4
|
+
/**
|
|
5
|
+
* Decrypt a Base64 encoded string using AES-GCM
|
|
6
|
+
* @param encryptedText - The Base64 encoded encrypted text
|
|
7
|
+
* @param base64Key - The Base64 encoded key
|
|
8
|
+
* @returns The decrypted text
|
|
9
|
+
*/
|
|
10
|
+
export function decrypt(encryptedText, base64Key) {
|
|
11
|
+
const key = Buffer.from(base64Key, 'base64');
|
|
12
|
+
const encryptedData = Buffer.from(encryptedText, 'base64');
|
|
13
|
+
const iv = encryptedData.subarray(0, IV_LENGTH);
|
|
14
|
+
const ciphertext = encryptedData.subarray(IV_LENGTH, encryptedData.length - GCM_TAG_LENGTH);
|
|
15
|
+
const authTag = encryptedData.subarray(encryptedData.length - GCM_TAG_LENGTH);
|
|
16
|
+
const decipher = crypto.createDecipheriv('aes-256-gcm', key, iv);
|
|
17
|
+
decipher.setAuthTag(authTag);
|
|
18
|
+
let decrypted = decipher.update(ciphertext, undefined, 'utf8');
|
|
19
|
+
decrypted += decipher.final('utf8');
|
|
20
|
+
return decrypted;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=aes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aes.js","sourceRoot":"","sources":["../../../src/server/util/aes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,MAAM,SAAS,GAAG,EAAE,CAAC,CAAC,SAAS;AAC/B,MAAM,cAAc,GAAG,EAAE,CAAC,CAAC,UAAU;AACrC;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,aAAqB,EAAE,SAAiB;IAC5D,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAE3D,MAAM,EAAE,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;IAC5F,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,CAAC;IAE9E,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACjE,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE7B,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/D,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO,SAAS,CAAC;AACrB,CAAC"}
|
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": "8.
|
|
4
|
+
"version": "8.1.1",
|
|
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": "8.
|
|
26
|
+
"@lwc/sfdc-lwc-compiler": "8.1.1",
|
|
27
27
|
"chalk": "~5.3.0",
|
|
28
28
|
"chokidar": "~3.6.0",
|
|
29
29
|
"commander": "~10.0.0",
|
|
30
30
|
"ws": "~8.16.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
|
-
"@lwc/lwc-dev-server-types": "8.
|
|
33
|
+
"@lwc/lwc-dev-server-types": "8.1.1",
|
|
34
34
|
"@types/ws": "^8.5.10"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|