@salesforce/plugin-lightning-dev 1.6.1-alpha.2 → 1.8.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/README.md +3 -3
- package/lib/commands/lightning/dev/app.d.ts +1 -1
- package/lib/commands/lightning/dev/app.js +17 -29
- package/lib/commands/lightning/dev/app.js.map +1 -1
- package/lib/commands/lightning/dev/site.js +3 -17
- package/lib/commands/lightning/dev/site.js.map +1 -1
- package/lib/shared/configUtils.d.ts +1 -5
- package/lib/shared/configUtils.js +8 -32
- package/lib/shared/configUtils.js.map +1 -1
- package/lib/shared/orgUtils.d.ts +8 -0
- package/lib/shared/orgUtils.js +15 -0
- package/lib/shared/orgUtils.js.map +1 -1
- package/lib/shared/previewUtils.d.ts +7 -6
- package/lib/shared/previewUtils.js +26 -20
- package/lib/shared/previewUtils.js.map +1 -1
- package/lib/shared/promptUtils.d.ts +9 -0
- package/lib/shared/promptUtils.js +74 -0
- package/lib/shared/promptUtils.js.map +1 -0
- package/messages/prompts.md +31 -0
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +1 -2
- package/package.json +3 -3
- package/lib/shared/prompt.d.ts +0 -4
- package/lib/shared/prompt.js +0 -25
- package/lib/shared/prompt.js.map +0 -1
package/README.md
CHANGED
|
@@ -156,7 +156,7 @@ FLAGS
|
|
|
156
156
|
-n, --name=<value> Name of the Lightning Experience app to preview.
|
|
157
157
|
-o, --target-org=<value> (required) Username or alias of the target org. Not required if the `target-org`
|
|
158
158
|
configuration variable is already set.
|
|
159
|
-
-t, --device-type=<option>
|
|
159
|
+
-t, --device-type=<option> Type of device to display the app preview.
|
|
160
160
|
<options: desktop|ios|android>
|
|
161
161
|
|
|
162
162
|
GLOBAL FLAGS
|
|
@@ -200,7 +200,7 @@ EXAMPLES
|
|
|
200
200
|
$ sf lightning dev app --target-org myOrg --device-type ios --device-id "iPhone 15 Pro Max"
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
-
_See code: [src/commands/lightning/dev/app.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/1.
|
|
203
|
+
_See code: [src/commands/lightning/dev/app.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/1.8.0/src/commands/lightning/dev/app.ts)_
|
|
204
204
|
|
|
205
205
|
## `sf lightning dev site`
|
|
206
206
|
|
|
@@ -244,6 +244,6 @@ EXAMPLES
|
|
|
244
244
|
$ sf lightning dev site --name "Partner Central" --target-org myOrg
|
|
245
245
|
```
|
|
246
246
|
|
|
247
|
-
_See code: [src/commands/lightning/dev/site.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/1.
|
|
247
|
+
_See code: [src/commands/lightning/dev/site.ts](https://github.com/salesforcecli/plugin-lightning-dev/blob/1.8.0/src/commands/lightning/dev/site.ts)_
|
|
248
248
|
|
|
249
249
|
<!-- commandsstop -->
|
|
@@ -10,7 +10,7 @@ export default class LightningDevApp extends SfCommand<void> {
|
|
|
10
10
|
static readonly flags: {
|
|
11
11
|
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
12
12
|
'target-org': import("@oclif/core/interfaces").OptionFlag<import("@salesforce/core").Org, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
-
'device-type': import("@oclif/core/interfaces").OptionFlag<Platform, import("@oclif/core/interfaces").CustomOptions>;
|
|
13
|
+
'device-type': import("@oclif/core/interfaces").OptionFlag<Platform | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
14
14
|
'device-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
15
|
};
|
|
16
16
|
run(): Promise<void>;
|
|
@@ -11,7 +11,7 @@ import { Flags, SfCommand } from '@salesforce/sf-plugins-core';
|
|
|
11
11
|
import { OrgUtils } from '../../../shared/orgUtils.js';
|
|
12
12
|
import { startLWCServer } from '../../../lwc-dev-server/index.js';
|
|
13
13
|
import { PreviewUtils } from '../../../shared/previewUtils.js';
|
|
14
|
-
import {
|
|
14
|
+
import { PromptUtils } from '../../../shared/promptUtils.js';
|
|
15
15
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
16
16
|
const messages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'lightning.dev.app');
|
|
17
17
|
const sharedMessages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'shared.utils');
|
|
@@ -25,20 +25,6 @@ export const androidSalesforceAppPreviewConfig = {
|
|
|
25
25
|
activity: 'com.salesforce.chatter.Chatter',
|
|
26
26
|
};
|
|
27
27
|
const maxInt32 = 2_147_483_647; // maximum 32-bit signed integer value
|
|
28
|
-
class AppServerIdentityTokenService {
|
|
29
|
-
connection;
|
|
30
|
-
constructor(connection) {
|
|
31
|
-
this.connection = connection;
|
|
32
|
-
}
|
|
33
|
-
async saveTokenToServer(token) {
|
|
34
|
-
const sobject = this.connection.sobject('UserLocalWebServerIdentity');
|
|
35
|
-
const result = await sobject.insert({ LocalWebServerIdentityToken: token });
|
|
36
|
-
if (result.success) {
|
|
37
|
-
return result.id;
|
|
38
|
-
}
|
|
39
|
-
throw new Error('Could not save the token to the server');
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
28
|
export default class LightningDevApp extends SfCommand {
|
|
43
29
|
static summary = messages.getMessage('summary');
|
|
44
30
|
static description = messages.getMessage('description');
|
|
@@ -54,7 +40,6 @@ export default class LightningDevApp extends SfCommand {
|
|
|
54
40
|
summary: messages.getMessage('flags.device-type.summary'),
|
|
55
41
|
char: 't',
|
|
56
42
|
options: [Platform.desktop, Platform.ios, Platform.android],
|
|
57
|
-
default: Platform.desktop,
|
|
58
43
|
})(),
|
|
59
44
|
'device-id': Flags.string({
|
|
60
45
|
summary: messages.getMessage('flags.device-id.summary'),
|
|
@@ -64,9 +49,9 @@ export default class LightningDevApp extends SfCommand {
|
|
|
64
49
|
async run() {
|
|
65
50
|
const { flags } = await this.parse(LightningDevApp);
|
|
66
51
|
const logger = await Logger.child(this.ctor.name);
|
|
67
|
-
const appName = flags['name'];
|
|
68
|
-
const platform = flags['device-type'];
|
|
69
52
|
const targetOrg = flags['target-org'];
|
|
53
|
+
const appName = flags['name'];
|
|
54
|
+
const platform = flags['device-type'] ?? (await PromptUtils.promptUserToSelectPlatform());
|
|
70
55
|
const deviceId = flags['device-id'];
|
|
71
56
|
let sfdxProjectRootPath = '';
|
|
72
57
|
try {
|
|
@@ -85,8 +70,12 @@ export default class LightningDevApp extends SfCommand {
|
|
|
85
70
|
if (!localDevEnabled) {
|
|
86
71
|
return Promise.reject(new Error(sharedMessages.getMessage('error.localdev.not.enabled')));
|
|
87
72
|
}
|
|
88
|
-
const
|
|
89
|
-
const
|
|
73
|
+
const appServerIdentity = await PreviewUtils.getOrCreateAppServerIdentity(connection);
|
|
74
|
+
const ldpServerToken = appServerIdentity.identityToken;
|
|
75
|
+
const ldpServerId = appServerIdentity.usernameToServerEntityIdMap[username];
|
|
76
|
+
if (!ldpServerId) {
|
|
77
|
+
return Promise.reject(new Error(messages.getMessage('error.identitydata.entityid')));
|
|
78
|
+
}
|
|
90
79
|
let appId;
|
|
91
80
|
if (appName) {
|
|
92
81
|
logger.debug(`Determining App Id for ${appName}`);
|
|
@@ -104,15 +93,14 @@ export default class LightningDevApp extends SfCommand {
|
|
|
104
93
|
logger.debug('Determining Local Dev Server url');
|
|
105
94
|
const ldpServerUrl = PreviewUtils.generateWebSocketUrlForLocalDevServer(platform, serverPorts, logger);
|
|
106
95
|
logger.debug(`Local Dev Server url is ${ldpServerUrl}`);
|
|
107
|
-
const entityId = await PreviewUtils.getEntityId(username);
|
|
108
96
|
if (platform === Platform.desktop) {
|
|
109
|
-
await this.desktopPreview(sfdxProjectRootPath, serverPorts,
|
|
97
|
+
await this.desktopPreview(sfdxProjectRootPath, serverPorts, ldpServerToken, ldpServerId, ldpServerUrl, appId, logger);
|
|
110
98
|
}
|
|
111
99
|
else {
|
|
112
|
-
await this.mobilePreview(platform, sfdxProjectRootPath, serverPorts,
|
|
100
|
+
await this.mobilePreview(platform, sfdxProjectRootPath, serverPorts, ldpServerToken, ldpServerId, ldpServerUrl, appName, appId, deviceId, logger);
|
|
113
101
|
}
|
|
114
102
|
}
|
|
115
|
-
async desktopPreview(sfdxProjectRootPath, serverPorts,
|
|
103
|
+
async desktopPreview(sfdxProjectRootPath, serverPorts, ldpServerToken, ldpServerId, ldpServerUrl, appId, logger) {
|
|
116
104
|
if (!appId) {
|
|
117
105
|
logger.debug('No Lightning Experience application name provided.... using the default app instead.');
|
|
118
106
|
}
|
|
@@ -138,13 +126,13 @@ export default class LightningDevApp extends SfCommand {
|
|
|
138
126
|
if (ldpServerUrl.startsWith('wss')) {
|
|
139
127
|
this.log(`\n${messages.getMessage('trust.local.dev.server')}`);
|
|
140
128
|
}
|
|
141
|
-
const launchArguments = PreviewUtils.generateDesktopPreviewLaunchArguments(ldpServerUrl,
|
|
129
|
+
const launchArguments = PreviewUtils.generateDesktopPreviewLaunchArguments(ldpServerUrl, ldpServerId, appId, targetOrg);
|
|
142
130
|
// Start the LWC Dev Server
|
|
143
|
-
await startLWCServer(logger, sfdxProjectRootPath,
|
|
131
|
+
await startLWCServer(logger, sfdxProjectRootPath, ldpServerToken, Platform.desktop, serverPorts);
|
|
144
132
|
// Open the browser and navigate to the right page
|
|
145
133
|
await this.config.runCommand('org:open', launchArguments);
|
|
146
134
|
}
|
|
147
|
-
async mobilePreview(platform, sfdxProjectRootPath, serverPorts,
|
|
135
|
+
async mobilePreview(platform, sfdxProjectRootPath, serverPorts, ldpServerToken, ldpServerId, ldpServerUrl, appName, appId, deviceId, logger) {
|
|
148
136
|
try {
|
|
149
137
|
// Verify that user environment is set up for mobile (i.e. has right tooling)
|
|
150
138
|
await this.verifyMobileRequirements(platform, logger);
|
|
@@ -220,10 +208,10 @@ export default class LightningDevApp extends SfCommand {
|
|
|
220
208
|
this.spinner.stop();
|
|
221
209
|
}
|
|
222
210
|
// Start the LWC Dev Server
|
|
223
|
-
await startLWCServer(logger, sfdxProjectRootPath,
|
|
211
|
+
await startLWCServer(logger, sfdxProjectRootPath, ldpServerToken, platform, serverPorts, certData);
|
|
224
212
|
// Launch the native app for previewing (launchMobileApp will show its own spinner)
|
|
225
213
|
// eslint-disable-next-line camelcase
|
|
226
|
-
appConfig.launch_arguments = PreviewUtils.generateMobileAppPreviewLaunchArguments(ldpServerUrl,
|
|
214
|
+
appConfig.launch_arguments = PreviewUtils.generateMobileAppPreviewLaunchArguments(ldpServerUrl, ldpServerId, appName, appId);
|
|
227
215
|
const targetActivity = appConfig?.activity;
|
|
228
216
|
const targetApp = targetActivity ? `${appConfig.id}/${targetActivity}` : appConfig.id;
|
|
229
217
|
await device.launchApp(targetApp, appConfig.launch_arguments ?? []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/commands/lightning/dev/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../../../src/commands/lightning/dev/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAGL,QAAQ,EACR,WAAW,EAEX,KAAK,IAAI,qBAAqB,EAC9B,QAAQ,GACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,QAAQ,CAAC,kCAAkC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7D,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,mBAAmB,CAAC,CAAC;AAChG,MAAM,cAAc,GAAG,QAAQ,CAAC,YAAY,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,IAAI,EAAE,uBAAuB;IAC7B,EAAE,EAAE,wBAAwB;CACN,CAAC;AAEzB,MAAM,CAAC,MAAM,iCAAiC,GAAG;IAC/C,IAAI,EAAE,uBAAuB;IAC7B,EAAE,EAAE,wBAAwB;IAC5B,QAAQ,EAAE,gCAAgC;CAChB,CAAC;AAE7B,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,sCAAsC;AAEtE,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,SAAe;IACnD,MAAM,CAAU,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,CAAU,WAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACjE,MAAM,CAAU,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,CAAU,cAAc,GAAG,KAAK,CAAC,CAAC,mDAAmD;IAE3F,MAAM,CAAU,KAAK,GAAG;QAC7B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;YAClD,IAAI,EAAE,GAAG;SACV,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,WAAW,EAAE;QACjC,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,2BAA2B,CAAC;YACzD,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAU;SACrE,CAAC,EAAE;QACJ,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC;YACvD,IAAI,EAAE,GAAG;SACV,CAAC;KACH,CAAC;IAEK,KAAK,CAAC,GAAG;QACd,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;QACtC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,0BAA0B,EAAE,CAAC,CAAC;QAC1F,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;QAEpC,IAAI,mBAAmB,GAAG,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,mBAAmB,GAAG,MAAM,SAAS,CAAC,kBAAkB,EAAE,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAE,KAAe,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QACtD,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrE,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,4BAA4B,CAAC,UAAU,CAAC,CAAC;QACtF,MAAM,cAAc,GAAG,iBAAiB,CAAC,aAAa,CAAC;QACvD,MAAM,WAAW,GAAG,iBAAiB,CAAC,2BAA2B,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,KAAyB,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,0BAA0B,OAAO,EAAE,CAAC,CAAC;YAElD,iFAAiF;YACjF,mEAAmE;YACnE,KAAK,GAAG,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5F,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;QACzE,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,qBAAqB,EAAE,CAAC;QAC/D,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,CAAC,QAAQ,YAAY,WAAW,CAAC,SAAS,EAAE,CAAC,CAAC;QAEvG,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,YAAY,CAAC,qCAAqC,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;QACvG,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QAExD,IAAI,QAAQ,KAAK,QAAQ,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,cAAc,CACvB,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,KAAK,EACL,MAAM,CACP,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,aAAa,CACtB,QAAQ,EACR,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,WAAW,EACX,YAAY,EACZ,OAAO,EACP,KAAK,EACL,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,mBAA2B,EAC3B,WAAoD,EACpD,cAAsB,EACtB,WAAmB,EACnB,YAAoB,EACpB,KAAyB,EACzB,MAAc;QAEd,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,sFAAsF,CAAC,CAAC;QACvG,CAAC;QAED,oFAAoF;QACpF,uFAAuF;QACvF,2FAA2F;QAC3F,oFAAoF;QACpF,wFAAwF;QACxF,yCAAyC;QACzC,EAAE;QACF,0FAA0F;QAC1F,yFAAyF;QACzF,kFAAkF;QAClF,2FAA2F;QAC3F,0FAA0F;QAC1F,EAAE;QACF,wCAAwC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,CAAC;QAChH,IAAI,SAA6B,CAAC;QAClC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,eAAe,GAAG,YAAY,CAAC,qCAAqC,CACxE,YAAY,EACZ,WAAW,EACX,KAAK,EACL,SAAS,CACV,CAAC;QAEF,2BAA2B;QAC3B,MAAM,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAEjG,kDAAkD;QAClD,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IAC5D,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,QAAyC,EACzC,mBAA2B,EAC3B,WAAoD,EACpD,cAAsB,EACtB,WAAmB,EACnB,YAAoB,EACpB,OAA2B,EAC3B,KAAyB,EACzB,QAA4B,EAC5B,MAAc;QAEd,IAAI,CAAC;YACH,6EAA6E;YAC7E,MAAM,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAEtD,0BAA0B;YAC1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC9E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;YAED,IAAK,MAAwB,EAAE,WAAW,KAAK,IAAI,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAChF,CAAC;YAED,yFAAyF;YACzF,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YACpF,IAAI,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC9B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,2FAA2F;gBAC3F,yFAAyF;gBACzF,2FAA2F;gBAC3F,yFAAyF;gBACzF,2EAA2E;gBAC3E,MAAO,MAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;YACtF,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEpB,0DAA0D;YAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,sBAAsB,EAAE,CAAC;YAC7D,IAAI,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;gBAC9B,2EAA2E;gBAC3E,uDAAuD;gBACvD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;gBAChE,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,+EAA+E;gBAC/E,4EAA4E;gBAC5E,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAClE,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC;oBAChE,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;oBACnC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC;YACH,CAAC;YAED,4DAA4D;YAC5D,MAAM,SAAS,GAAG,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,iCAAiC,CAAC;YAChH,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAE/D,8EAA8E;YAC9E,IAAI,UAA8B,CAAC;YACnC,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC;oBAC7C,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBACpE,aAAa,EAAE,KAAK;oBACpB,EAAE,EAAE,QAAQ,EAAE,kDAAkD;iBACjE,CAAC,CAAC;gBAEH,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACzB,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC/E,CAAC;gBAED,+DAA+D;gBAC/D,UAAU,GAAG,MAAM,YAAY,CAAC,iCAAiC,CAC/D,QAAQ,EACR,MAAM,EACN,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,QAAQ,CACd,CAAC;gBAEF,0EAA0E;gBAC1E,IAAI,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,CAAC;oBAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC;oBACnE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;oBAC3C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;oBAC5D,MAAM,WAAW,CAAC,iBAAiB,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;oBACnE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,UAAU,GAAG,eAAe,CAAC;gBAC/B,CAAC;gBAED,mCAAmC;gBACnC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC/E,MAAM,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACtB,CAAC;YAED,2BAA2B;YAC3B,MAAM,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;YAEnG,mFAAmF;YACnF,qCAAqC;YACrC,SAAS,CAAC,gBAAgB,GAAG,YAAY,CAAC,uCAAuC,CAC/E,YAAY,EACZ,WAAW,EACX,OAAO,EACP,KAAK,CACN,CAAC;YACF,MAAM,cAAc,GAAI,SAAqC,EAAE,QAAQ,CAAC;YACxE,MAAM,SAAS,GAAG,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,EAAE,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;YAEtF,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,gBAAgB,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;gBAAS,CAAC;YACT,6EAA6E;YAC7E,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,wBAAwB,CAAC,QAAyC,EAAE,MAAc;QAC9F,MAAM,CAAC,KAAK,CAAC,8DAA8D,QAAQ,EAAE,CAAC,CAAC;QAEvF,MAAM,YAAY,GAAG,IAAI,qBAAqB,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9E,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1B,MAAM,YAAY,CAAC,GAAG,EAAE,CAAC;QAEzB,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC,sCAAsC;IAC9E,CAAC"}
|
|
@@ -5,12 +5,11 @@
|
|
|
5
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
6
|
*/
|
|
7
7
|
import fs from 'node:fs';
|
|
8
|
-
import path from 'node:path';
|
|
9
8
|
import { SfCommand, Flags } from '@salesforce/sf-plugins-core';
|
|
10
9
|
import { Messages } from '@salesforce/core';
|
|
11
10
|
import { expDev } from '@lwrjs/api';
|
|
12
11
|
import { OrgUtils } from '../../../shared/orgUtils.js';
|
|
13
|
-
import { PromptUtils } from '../../../shared/
|
|
12
|
+
import { PromptUtils } from '../../../shared/promptUtils.js';
|
|
14
13
|
import { ExperienceSite } from '../../../shared/experience/expSite.js';
|
|
15
14
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
16
15
|
const messages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'lightning.dev.site');
|
|
@@ -66,7 +65,7 @@ export default class LightningDevSite extends SfCommand {
|
|
|
66
65
|
// Establish a valid access token for this site
|
|
67
66
|
const authToken = await selectedSite.setupAuth();
|
|
68
67
|
// Start the dev server
|
|
69
|
-
|
|
68
|
+
await expDev({
|
|
70
69
|
authToken,
|
|
71
70
|
open: true,
|
|
72
71
|
port: 3000,
|
|
@@ -74,20 +73,7 @@ export default class LightningDevSite extends SfCommand {
|
|
|
74
73
|
mode: 'dev',
|
|
75
74
|
siteZip,
|
|
76
75
|
siteDir: selectedSite.getSiteDirectory(),
|
|
77
|
-
};
|
|
78
|
-
// For testing purposes, allow skipping startup of the dev server
|
|
79
|
-
if (process.env.SKIP_STARTUP === 'true') {
|
|
80
|
-
this.log('Skipping startup...');
|
|
81
|
-
const scriptToRun = `import { expDev } from '@lwrjs/api';
|
|
82
|
-
const params = ${JSON.stringify(params, null, 2)};
|
|
83
|
-
await expDev(params);`;
|
|
84
|
-
const pathToScript = path.join(selectedSite.getSiteDirectory(), 'launchServer.mjs');
|
|
85
|
-
fs.writeFileSync(pathToScript, scriptToRun, 'utf-8');
|
|
86
|
-
this.log(`Launch server from the following script: ${pathToScript}`);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
await expDev(params);
|
|
90
|
-
}
|
|
76
|
+
});
|
|
91
77
|
}
|
|
92
78
|
catch (e) {
|
|
93
79
|
this.log('Local Development setup failed', e);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"site.js","sourceRoot":"","sources":["../../../../src/commands/lightning/dev/site.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,
|
|
1
|
+
{"version":3,"file":"site.js","sourceRoot":"","sources":["../../../../src/commands/lightning/dev/site.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { Workspace } from '@lwc/lwc-dev-server';
|
|
2
2
|
import { SSLCertificateData } from '@salesforce/lwc-dev-mobile-core';
|
|
3
3
|
import { Config } from '@salesforce/core';
|
|
4
|
-
export type IdentityTokenService = {
|
|
5
|
-
saveTokenToServer(token: string): Promise<string>;
|
|
6
|
-
};
|
|
7
4
|
export declare const LOCAL_DEV_SERVER_DEFAULT_HTTP_PORT = 8081;
|
|
8
5
|
export declare const LOCAL_DEV_SERVER_DEFAULT_WORKSPACE = Workspace.SfCli;
|
|
9
6
|
export type LocalWebServerIdentityData = {
|
|
@@ -14,7 +11,7 @@ export declare class ConfigUtils {
|
|
|
14
11
|
#private;
|
|
15
12
|
static getLocalConfig(): Promise<Config>;
|
|
16
13
|
static getGlobalConfig(): Promise<Config>;
|
|
17
|
-
static
|
|
14
|
+
static getIdentityData(): Promise<LocalWebServerIdentityData | undefined>;
|
|
18
15
|
static writeIdentityData(identityData: LocalWebServerIdentityData): Promise<void>;
|
|
19
16
|
static getCertData(): Promise<SSLCertificateData | undefined>;
|
|
20
17
|
static writeCertData(data: SSLCertificateData): Promise<void>;
|
|
@@ -23,5 +20,4 @@ export declare class ConfigUtils {
|
|
|
23
20
|
httpsPort: number;
|
|
24
21
|
} | undefined>;
|
|
25
22
|
static getLocalDevServerWorkspace(): Promise<Workspace | undefined>;
|
|
26
|
-
static getIdentityData(): Promise<LocalWebServerIdentityData | undefined>;
|
|
27
23
|
}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
6
|
*/
|
|
7
7
|
import { Workspace } from '@lwc/lwc-dev-server';
|
|
8
|
-
import { CryptoUtils } from '@salesforce/lwc-dev-mobile-core';
|
|
9
8
|
import { Config, ConfigAggregator } from '@salesforce/core';
|
|
10
9
|
import configMeta from './../configMeta.js';
|
|
11
10
|
export const LOCAL_DEV_SERVER_DEFAULT_HTTP_PORT = 8081;
|
|
@@ -29,28 +28,15 @@ export class ConfigUtils {
|
|
|
29
28
|
Config.addAllowedProperties(configMeta);
|
|
30
29
|
return this.#globalConfig;
|
|
31
30
|
}
|
|
32
|
-
static async
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
usernameToServerEntityIdMap: {},
|
|
40
|
-
};
|
|
41
|
-
identityData.usernameToServerEntityIdMap[username] = entityId;
|
|
42
|
-
await this.writeIdentityData(identityData);
|
|
43
|
-
return token;
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
let entityId = identityData.usernameToServerEntityIdMap[username];
|
|
47
|
-
if (!entityId) {
|
|
48
|
-
entityId = await tokenService.saveTokenToServer(identityData.identityToken);
|
|
49
|
-
identityData.usernameToServerEntityIdMap[username] = entityId;
|
|
50
|
-
await this.writeIdentityData(identityData);
|
|
51
|
-
}
|
|
52
|
-
return identityData.identityToken;
|
|
31
|
+
static async getIdentityData() {
|
|
32
|
+
const config = await ConfigAggregator.create({ customConfigMeta: configMeta });
|
|
33
|
+
// Need to reload to make sure the values read are decrypted
|
|
34
|
+
await config.reload();
|
|
35
|
+
const identityJson = config.getPropertyValue("local-web-server-identity-data" /* ConfigVars.LOCAL_WEB_SERVER_IDENTITY_DATA */);
|
|
36
|
+
if (identityJson) {
|
|
37
|
+
return JSON.parse(identityJson);
|
|
53
38
|
}
|
|
39
|
+
return undefined;
|
|
54
40
|
}
|
|
55
41
|
static async writeIdentityData(identityData) {
|
|
56
42
|
const config = await this.getLocalConfig();
|
|
@@ -94,15 +80,5 @@ export class ConfigUtils {
|
|
|
94
80
|
const configWorkspace = config.get("local-dev-server-workspace" /* ConfigVars.LOCAL_DEV_SERVER_WORKSPACE */);
|
|
95
81
|
return configWorkspace;
|
|
96
82
|
}
|
|
97
|
-
static async getIdentityData() {
|
|
98
|
-
const config = await ConfigAggregator.create({ customConfigMeta: configMeta });
|
|
99
|
-
// Need to reload to make sure the values read are decrypted
|
|
100
|
-
await config.reload();
|
|
101
|
-
const identityJson = config.getPropertyValue("local-web-server-identity-data" /* ConfigVars.LOCAL_WEB_SERVER_IDENTITY_DATA */);
|
|
102
|
-
if (identityJson) {
|
|
103
|
-
return JSON.parse(identityJson);
|
|
104
|
-
}
|
|
105
|
-
return undefined;
|
|
106
|
-
}
|
|
107
83
|
}
|
|
108
84
|
//# sourceMappingURL=configUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/shared/configUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"configUtils.js","sourceRoot":"","sources":["../../src/shared/configUtils.ts"],"names":[],"mappings":"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"}
|
package/lib/shared/orgUtils.d.ts
CHANGED
|
@@ -18,4 +18,12 @@ export declare class OrgUtils {
|
|
|
18
18
|
* @returns boolean indicating whether Local Dev is enabled for the org.
|
|
19
19
|
*/
|
|
20
20
|
static isLocalDevEnabled(connection: Connection): Promise<boolean>;
|
|
21
|
+
/**
|
|
22
|
+
* Saves an app server identity token to the UserLocalWebServerIdentity sObject in the org.
|
|
23
|
+
*
|
|
24
|
+
* @param connection the connection to the org
|
|
25
|
+
* @param token the token value to be saved
|
|
26
|
+
* @returns the id of the saved record
|
|
27
|
+
*/
|
|
28
|
+
static saveAppServerIdentityToken(connection: Connection, token: string): Promise<string>;
|
|
21
29
|
}
|
package/lib/shared/orgUtils.js
CHANGED
|
@@ -44,5 +44,20 @@ export class OrgUtils {
|
|
|
44
44
|
const localDevEnabled = flagValue.toLowerCase().trim() === 'true';
|
|
45
45
|
return localDevEnabled;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Saves an app server identity token to the UserLocalWebServerIdentity sObject in the org.
|
|
49
|
+
*
|
|
50
|
+
* @param connection the connection to the org
|
|
51
|
+
* @param token the token value to be saved
|
|
52
|
+
* @returns the id of the saved record
|
|
53
|
+
*/
|
|
54
|
+
static async saveAppServerIdentityToken(connection, token) {
|
|
55
|
+
const sobject = connection.sobject('UserLocalWebServerIdentity');
|
|
56
|
+
const result = await sobject.insert({ LocalWebServerIdentityToken: token });
|
|
57
|
+
if (result.success) {
|
|
58
|
+
return result.id;
|
|
59
|
+
}
|
|
60
|
+
throw new Error('Could not save the app server identity token to the org.');
|
|
61
|
+
}
|
|
47
62
|
}
|
|
48
63
|
//# sourceMappingURL=orgUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orgUtils.js","sourceRoot":"","sources":["../../src/shared/orgUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,OAAO,QAAQ;IACnB;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAsB,EAAE,OAAe;QAClE,2FAA2F;QAC3F,oFAAoF;QACpF,MAAM,YAAY,GAAG,iEAAiE,OAAO,GAAG,CAAC;QACjG,MAAM,UAAU,GAAG,yDAAyD,OAAO,GAAG,CAAC;QAEvF,+CAA+C;QAC/C,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAwB,YAAY,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,0CAA0C;QAC1C,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAwB,UAAU,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAsB;QAC1D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAI,QAA6C,CAAC,0BAA0B,IAAI,OAAO,CAAC;QACvG,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;QAClE,OAAO,eAAe,CAAC;IACzB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"orgUtils.js","sourceRoot":"","sources":["../../src/shared/orgUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,OAAO,QAAQ;IACnB;;;;;;;;;OASG;IACI,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAsB,EAAE,OAAe;QAClE,2FAA2F;QAC3F,oFAAoF;QACpF,MAAM,YAAY,GAAG,iEAAiE,OAAO,GAAG,CAAC;QACjG,MAAM,UAAU,GAAG,yDAAyD,OAAO,GAAG,CAAC;QAEvF,+CAA+C;QAC/C,IAAI,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAwB,YAAY,CAAC,CAAC;QACzE,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,0CAA0C;QAC1C,MAAM,GAAG,MAAM,UAAU,CAAC,KAAK,CAAwB,UAAU,CAAC,CAAC;QACnE,IAAI,MAAM,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrC,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,UAAsB;QAC1D,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,6BAA6B,EAAE,4BAA4B,CAAC,CAAC;QAC7G,MAAM,SAAS,GAAI,QAA6C,CAAC,0BAA0B,IAAI,OAAO,CAAC;QACvG,MAAM,eAAe,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,CAAC;QAClE,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,UAAsB,EAAE,KAAa;QAClF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,EAAE,2BAA2B,EAAE,KAAK,EAAE,CAAC,CAAC;QAC5E,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;IAC9E,CAAC;CACF"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Logger } from '@salesforce/core';
|
|
1
|
+
import { Connection, Logger } from '@salesforce/core';
|
|
2
2
|
import { BaseDevice, LaunchArgument, Platform, SSLCertificateData } from '@salesforce/lwc-dev-mobile-core';
|
|
3
3
|
import { Progress, Spinner } from '@salesforce/sf-plugins-core';
|
|
4
|
+
import { LocalWebServerIdentityData } from './configUtils.js';
|
|
4
5
|
export declare class PreviewUtils {
|
|
5
6
|
static generateWebSocketUrlForLocalDevServer(platform: string, ports: {
|
|
6
7
|
httpPort: number;
|
|
@@ -37,24 +38,24 @@ export declare class PreviewUtils {
|
|
|
37
38
|
* Generates the proper set of arguments to be used for launching desktop browser and navigating to the right location.
|
|
38
39
|
*
|
|
39
40
|
* @param ldpServerUrl The URL for the local dev server
|
|
40
|
-
* @param
|
|
41
|
+
* @param ldpServerId Record ID for the identity token
|
|
41
42
|
* @param appId An optional app id for a targeted LEX app
|
|
42
43
|
* @param targetOrg An optional org id
|
|
43
44
|
* @param auraMode An optional Aura Mode (defaults to DEVPREVIEW)
|
|
44
45
|
* @returns Array of arguments to be used by Org:Open command for launching desktop browser
|
|
45
46
|
*/
|
|
46
|
-
static generateDesktopPreviewLaunchArguments(ldpServerUrl: string,
|
|
47
|
+
static generateDesktopPreviewLaunchArguments(ldpServerUrl: string, ldpServerId: string, appId?: string, targetOrg?: string, auraMode?: string): string[];
|
|
47
48
|
/**
|
|
48
49
|
* Generates the proper set of arguments to be used for launching a mobile app with custom launch arguments.
|
|
49
50
|
*
|
|
50
51
|
* @param ldpServerUrl The URL for the local dev server
|
|
51
|
-
* @param
|
|
52
|
+
* @param ldpServerId Record ID for the identity token
|
|
52
53
|
* @param appName An optional app name for a targeted LEX app
|
|
53
54
|
* @param appId An optional app id for a targeted LEX app
|
|
54
55
|
* @param auraMode An optional Aura Mode (defaults to DEVPREVIEW)
|
|
55
56
|
* @returns Array of arguments to be used as custom launch arguments when launching a mobile app.
|
|
56
57
|
*/
|
|
57
|
-
static generateMobileAppPreviewLaunchArguments(ldpServerUrl: string,
|
|
58
|
+
static generateMobileAppPreviewLaunchArguments(ldpServerUrl: string, ldpServerId: string, appName?: string, appId?: string, auraMode?: string): LaunchArgument[];
|
|
58
59
|
/**
|
|
59
60
|
* Checks the global cache to see if a self-signed certificate has previously been generated and cached.
|
|
60
61
|
* If so (and if the cached certificate is not expired) it will then return the cached certificate. Otherwise
|
|
@@ -73,6 +74,6 @@ export declare class PreviewUtils {
|
|
|
73
74
|
* @returns The path to downloaded file.
|
|
74
75
|
*/
|
|
75
76
|
static downloadSalesforceMobileAppBundle(platform: Platform.ios | Platform.android, logger?: Logger, spinner?: Spinner, progress?: Progress): Promise<string>;
|
|
76
|
-
static
|
|
77
|
+
static getOrCreateAppServerIdentity(connection: Connection): Promise<LocalWebServerIdentityData>;
|
|
77
78
|
private static doGetNextAvailablePort;
|
|
78
79
|
}
|
|
@@ -15,6 +15,8 @@ import { Messages } from '@salesforce/core';
|
|
|
15
15
|
import { AndroidDeviceManager, AppleDeviceManager, CommonUtils, CryptoUtils, PreviewUtils as LwcDevMobileCorePreviewUtils, Platform, } from '@salesforce/lwc-dev-mobile-core';
|
|
16
16
|
import fetch from 'node-fetch';
|
|
17
17
|
import { ConfigUtils, LOCAL_DEV_SERVER_DEFAULT_HTTP_PORT } from './configUtils.js';
|
|
18
|
+
import { OrgUtils } from './orgUtils.js';
|
|
19
|
+
import { PromptUtils } from './promptUtils.js';
|
|
18
20
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
19
21
|
const messages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'lightning.dev.app');
|
|
20
22
|
const DevPreviewAuraMode = 'DEVPREVIEW';
|
|
@@ -64,13 +66,8 @@ export class PreviewUtils {
|
|
|
64
66
|
: await new AndroidDeviceManager(logger).getDevice(deviceId);
|
|
65
67
|
}
|
|
66
68
|
else {
|
|
67
|
-
logger?.debug('
|
|
68
|
-
|
|
69
|
-
? await new AppleDeviceManager(logger).enumerateDevices()
|
|
70
|
-
: await new AndroidDeviceManager(logger).enumerateDevices();
|
|
71
|
-
if (devices && devices.length > 0) {
|
|
72
|
-
device = devices[0];
|
|
73
|
-
}
|
|
69
|
+
logger?.debug('Prompting the user to select a device.');
|
|
70
|
+
device = await PromptUtils.promptUserToSelectMobileDevice(platform, logger);
|
|
74
71
|
}
|
|
75
72
|
return Promise.resolve(device);
|
|
76
73
|
}
|
|
@@ -78,13 +75,13 @@ export class PreviewUtils {
|
|
|
78
75
|
* Generates the proper set of arguments to be used for launching desktop browser and navigating to the right location.
|
|
79
76
|
*
|
|
80
77
|
* @param ldpServerUrl The URL for the local dev server
|
|
81
|
-
* @param
|
|
78
|
+
* @param ldpServerId Record ID for the identity token
|
|
82
79
|
* @param appId An optional app id for a targeted LEX app
|
|
83
80
|
* @param targetOrg An optional org id
|
|
84
81
|
* @param auraMode An optional Aura Mode (defaults to DEVPREVIEW)
|
|
85
82
|
* @returns Array of arguments to be used by Org:Open command for launching desktop browser
|
|
86
83
|
*/
|
|
87
|
-
static generateDesktopPreviewLaunchArguments(ldpServerUrl,
|
|
84
|
+
static generateDesktopPreviewLaunchArguments(ldpServerUrl, ldpServerId, appId, targetOrg, auraMode = DevPreviewAuraMode) {
|
|
88
85
|
// appPath will resolve to one of the following:
|
|
89
86
|
//
|
|
90
87
|
// lightning/app/<appId> => when the user is targeting a specific LEX app
|
|
@@ -94,7 +91,7 @@ export class PreviewUtils {
|
|
|
94
91
|
// we prepend a '0.' to all of the params to ensure they will persist across browser redirects
|
|
95
92
|
const launchArguments = [
|
|
96
93
|
'--path',
|
|
97
|
-
`${appPath}?0.aura.ldpServerUrl=${ldpServerUrl}&0.aura.ldpServerId=${
|
|
94
|
+
`${appPath}?0.aura.ldpServerUrl=${ldpServerUrl}&0.aura.ldpServerId=${ldpServerId}&0.aura.mode=${auraMode}`,
|
|
98
95
|
];
|
|
99
96
|
if (targetOrg) {
|
|
100
97
|
launchArguments.push('--target-org', targetOrg);
|
|
@@ -105,13 +102,13 @@ export class PreviewUtils {
|
|
|
105
102
|
* Generates the proper set of arguments to be used for launching a mobile app with custom launch arguments.
|
|
106
103
|
*
|
|
107
104
|
* @param ldpServerUrl The URL for the local dev server
|
|
108
|
-
* @param
|
|
105
|
+
* @param ldpServerId Record ID for the identity token
|
|
109
106
|
* @param appName An optional app name for a targeted LEX app
|
|
110
107
|
* @param appId An optional app id for a targeted LEX app
|
|
111
108
|
* @param auraMode An optional Aura Mode (defaults to DEVPREVIEW)
|
|
112
109
|
* @returns Array of arguments to be used as custom launch arguments when launching a mobile app.
|
|
113
110
|
*/
|
|
114
|
-
static generateMobileAppPreviewLaunchArguments(ldpServerUrl,
|
|
111
|
+
static generateMobileAppPreviewLaunchArguments(ldpServerUrl, ldpServerId, appName, appId, auraMode = DevPreviewAuraMode) {
|
|
115
112
|
const launchArguments = [];
|
|
116
113
|
if (appName) {
|
|
117
114
|
launchArguments.push({ name: 'LightningExperienceAppName', value: appName });
|
|
@@ -121,7 +118,7 @@ export class PreviewUtils {
|
|
|
121
118
|
}
|
|
122
119
|
launchArguments.push({ name: 'aura.ldpServerUrl', value: ldpServerUrl });
|
|
123
120
|
launchArguments.push({ name: 'aura.mode', value: auraMode });
|
|
124
|
-
launchArguments.push({ name: 'aura.ldpServerId', value:
|
|
121
|
+
launchArguments.push({ name: 'aura.ldpServerId', value: ldpServerId });
|
|
125
122
|
return launchArguments;
|
|
126
123
|
}
|
|
127
124
|
/**
|
|
@@ -219,19 +216,28 @@ export class PreviewUtils {
|
|
|
219
216
|
});
|
|
220
217
|
});
|
|
221
218
|
}
|
|
222
|
-
static async
|
|
223
|
-
const
|
|
224
|
-
let
|
|
219
|
+
static async getOrCreateAppServerIdentity(connection) {
|
|
220
|
+
const username = connection.getUsername();
|
|
221
|
+
let identityData = await ConfigUtils.getIdentityData();
|
|
225
222
|
if (!identityData) {
|
|
226
|
-
|
|
223
|
+
const token = CryptoUtils.generateIdentityToken();
|
|
224
|
+
const entityId = await OrgUtils.saveAppServerIdentityToken(connection, token);
|
|
225
|
+
identityData = {
|
|
226
|
+
identityToken: token,
|
|
227
|
+
usernameToServerEntityIdMap: {},
|
|
228
|
+
};
|
|
229
|
+
identityData.usernameToServerEntityIdMap[username] = entityId;
|
|
230
|
+
await ConfigUtils.writeIdentityData(identityData);
|
|
227
231
|
}
|
|
228
232
|
else {
|
|
229
|
-
entityId = identityData.usernameToServerEntityIdMap[username];
|
|
233
|
+
let entityId = identityData.usernameToServerEntityIdMap[username];
|
|
230
234
|
if (!entityId) {
|
|
231
|
-
|
|
235
|
+
entityId = await OrgUtils.saveAppServerIdentityToken(connection, identityData.identityToken);
|
|
236
|
+
identityData.usernameToServerEntityIdMap[username] = entityId;
|
|
237
|
+
await ConfigUtils.writeIdentityData(identityData);
|
|
232
238
|
}
|
|
233
|
-
return entityId;
|
|
234
239
|
}
|
|
240
|
+
return identityData;
|
|
235
241
|
}
|
|
236
242
|
static async doGetNextAvailablePort(startingPort) {
|
|
237
243
|
let port = startingPort;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"previewUtils.js","sourceRoot":"","sources":["../../src/shared/previewUtils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,iGAAiG;AACjG,6FAA6F;AAC7F,iGAAiG;AACjG,iGAAiG;AAEjG,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"previewUtils.js","sourceRoot":"","sources":["../../src/shared/previewUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Logger } from '@salesforce/core';
|
|
2
|
+
import { BaseDevice, Platform } from '@salesforce/lwc-dev-mobile-core';
|
|
3
|
+
export declare class PromptUtils {
|
|
4
|
+
static promptUserToSelectSite(sites: string[]): Promise<string>;
|
|
5
|
+
static promptUserToConfirmUpdate(siteName: string): Promise<boolean>;
|
|
6
|
+
static promptUserToSelectPlatform(): Promise<Platform>;
|
|
7
|
+
static promptUserToSelectMobileDevice(platform: Platform.ios | Platform.android, logger?: Logger): Promise<BaseDevice>;
|
|
8
|
+
private static getShortVersion;
|
|
9
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2024, salesforce.com, inc.
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* Licensed under the BSD 3-Clause license.
|
|
5
|
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
+
*/
|
|
7
|
+
import select from '@inquirer/select';
|
|
8
|
+
import { confirm } from '@inquirer/prompts';
|
|
9
|
+
import { Messages } from '@salesforce/core';
|
|
10
|
+
import { AndroidDeviceManager, AppleDeviceManager, Platform, } from '@salesforce/lwc-dev-mobile-core';
|
|
11
|
+
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
12
|
+
const messages = Messages.loadMessages('@salesforce/plugin-lightning-dev', 'prompts');
|
|
13
|
+
export class PromptUtils {
|
|
14
|
+
static async promptUserToSelectSite(sites) {
|
|
15
|
+
const choices = sites.map((site) => ({ value: site }));
|
|
16
|
+
const response = await select({
|
|
17
|
+
message: messages.getMessage('site.select'),
|
|
18
|
+
choices,
|
|
19
|
+
});
|
|
20
|
+
return response;
|
|
21
|
+
}
|
|
22
|
+
static async promptUserToConfirmUpdate(siteName) {
|
|
23
|
+
return confirm({
|
|
24
|
+
message: messages.getMessage('site.confirm-update', [siteName]),
|
|
25
|
+
default: true,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
static async promptUserToSelectPlatform() {
|
|
29
|
+
const choices = [
|
|
30
|
+
{ name: messages.getMessage('device-type.choice.desktop'), value: Platform.desktop },
|
|
31
|
+
{ name: messages.getMessage('device-type.choice.android'), value: Platform.android },
|
|
32
|
+
{ name: messages.getMessage('device-type.choice.ios'), value: Platform.ios },
|
|
33
|
+
];
|
|
34
|
+
const response = await select({
|
|
35
|
+
message: messages.getMessage('device-type.title'),
|
|
36
|
+
choices,
|
|
37
|
+
});
|
|
38
|
+
return response;
|
|
39
|
+
}
|
|
40
|
+
static async promptUserToSelectMobileDevice(platform, logger) {
|
|
41
|
+
const availableDevices = platform === Platform.ios
|
|
42
|
+
? await new AppleDeviceManager(logger).enumerateDevices()
|
|
43
|
+
: await new AndroidDeviceManager(logger).enumerateDevices();
|
|
44
|
+
if (!availableDevices || availableDevices.length === 0) {
|
|
45
|
+
throw new Error(messages.getMessage('error.device.enumeration'));
|
|
46
|
+
}
|
|
47
|
+
const choices = availableDevices.map((device) => ({
|
|
48
|
+
name: `${device.name}, ${device.osType} ${this.getShortVersion(device.osVersion)}`,
|
|
49
|
+
value: device,
|
|
50
|
+
}));
|
|
51
|
+
const response = await select({
|
|
52
|
+
message: messages.getMessage('device-id.title'),
|
|
53
|
+
choices,
|
|
54
|
+
});
|
|
55
|
+
return response;
|
|
56
|
+
}
|
|
57
|
+
// returns the shorthand version of a Version object (eg. 17.0.0 => 17, 17.4.0 => 17.4, 17.4.1 => 17.4.1)
|
|
58
|
+
static getShortVersion(version) {
|
|
59
|
+
// TODO: consider making this function part of the Version class in @lwc-dev-mobile-core
|
|
60
|
+
if (typeof version === 'string') {
|
|
61
|
+
return version; // codenamed versions will be returned as is
|
|
62
|
+
}
|
|
63
|
+
if (version.patch > 0) {
|
|
64
|
+
return `${version.major}.${version.minor}.${version.patch}`;
|
|
65
|
+
}
|
|
66
|
+
else if (version.minor > 0) {
|
|
67
|
+
return `${version.major}.${version.minor}`;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return `${version.major}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=promptUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"promptUtils.js","sourceRoot":"","sources":["../../src/shared/promptUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# site.select
|
|
2
|
+
|
|
3
|
+
Select a site
|
|
4
|
+
|
|
5
|
+
# site.confirm-update
|
|
6
|
+
|
|
7
|
+
An updated site bundle is available for "%s". Do you want to download and apply the update?
|
|
8
|
+
|
|
9
|
+
# device-type.title
|
|
10
|
+
|
|
11
|
+
Which device type do you want to use for the preview?
|
|
12
|
+
|
|
13
|
+
# device-type.choice.desktop
|
|
14
|
+
|
|
15
|
+
Desktop
|
|
16
|
+
|
|
17
|
+
# device-type.choice.android
|
|
18
|
+
|
|
19
|
+
Mobile - Android
|
|
20
|
+
|
|
21
|
+
# device-type.choice.ios
|
|
22
|
+
|
|
23
|
+
Mobile - iOS
|
|
24
|
+
|
|
25
|
+
# device-id.title
|
|
26
|
+
|
|
27
|
+
Which device do you want to use for the preview?
|
|
28
|
+
|
|
29
|
+
# error.device.enumeration
|
|
30
|
+
|
|
31
|
+
Unable to enumerate a list of available devices.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/plugin-lightning-dev",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@salesforce/plugin-lightning-dev",
|
|
9
|
-
"version": "1.
|
|
9
|
+
"version": "1.8.0",
|
|
10
10
|
"license": "BSD-3-Clause",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@inquirer/prompts": "^5.3.8",
|
package/oclif.manifest.json
CHANGED
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"char": "t",
|
|
41
41
|
"name": "device-type",
|
|
42
42
|
"summary": "Type of device to display the app preview.",
|
|
43
|
-
"default": "desktop",
|
|
44
43
|
"hasDynamicHelp": false,
|
|
45
44
|
"multiple": false,
|
|
46
45
|
"options": [
|
|
@@ -149,5 +148,5 @@
|
|
|
149
148
|
]
|
|
150
149
|
}
|
|
151
150
|
},
|
|
152
|
-
"version": "1.
|
|
151
|
+
"version": "1.8.0"
|
|
153
152
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/plugin-lightning-dev",
|
|
3
3
|
"description": "Lightning development tools for LEX, Mobile, and Experience Sites",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0",
|
|
5
5
|
"author": "Salesforce",
|
|
6
6
|
"bugs": "https://github.com/forcedotcom/cli/issues",
|
|
7
7
|
"dependencies": {
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
"exports": "./lib/index.js",
|
|
219
219
|
"type": "module",
|
|
220
220
|
"sfdx": {
|
|
221
|
-
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-lightning-dev/1.
|
|
222
|
-
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-lightning-dev/1.
|
|
221
|
+
"publicKeyUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-lightning-dev/1.8.0.crt",
|
|
222
|
+
"signatureUrl": "https://developer.salesforce.com/media/salesforce-cli/security/@salesforce/plugin-lightning-dev/1.8.0.sig"
|
|
223
223
|
}
|
|
224
224
|
}
|
package/lib/shared/prompt.d.ts
DELETED
package/lib/shared/prompt.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2024, salesforce.com, inc.
|
|
3
|
-
* All rights reserved.
|
|
4
|
-
* Licensed under the BSD 3-Clause license.
|
|
5
|
-
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
|
6
|
-
*/
|
|
7
|
-
import select from '@inquirer/select';
|
|
8
|
-
import { confirm } from '@inquirer/prompts';
|
|
9
|
-
export class PromptUtils {
|
|
10
|
-
static async promptUserToSelectSite(sites) {
|
|
11
|
-
const choices = sites.map((site) => ({ value: site }));
|
|
12
|
-
const response = await select({
|
|
13
|
-
message: 'Select a site:',
|
|
14
|
-
choices,
|
|
15
|
-
});
|
|
16
|
-
return response;
|
|
17
|
-
}
|
|
18
|
-
static async promptUserToConfirmUpdate(siteName) {
|
|
19
|
-
return confirm({
|
|
20
|
-
message: `An updated site bundle is available for "${siteName}". Would you like to download and apply the update?`,
|
|
21
|
-
default: true,
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=prompt.js.map
|
package/lib/shared/prompt.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/shared/prompt.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,MAAM,MAAM,kBAAkB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE5C,MAAM,OAAO,WAAW;IACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,CAAC,KAAe;QACxD,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC;YAC5B,OAAO,EAAE,gBAAgB;YACzB,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAgB;QAC5D,OAAO,OAAO,CAAC;YACb,OAAO,EAAE,4CAA4C,QAAQ,qDAAqD;YAClH,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;IACL,CAAC;CACF"}
|