@salesforce/plugin-org 2.2.24 → 2.2.25

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.
Files changed (103) hide show
  1. package/README.md +4 -0
  2. package/lib/commands/force/org/clone.d.ts +21 -9
  3. package/lib/commands/force/org/clone.js +50 -82
  4. package/lib/commands/force/org/clone.js.map +1 -1
  5. package/lib/commands/force/org/create.d.ts +27 -12
  6. package/lib/commands/force/org/create.js +85 -105
  7. package/lib/commands/force/org/create.js.map +1 -1
  8. package/lib/commands/force/org/delete.d.ts +14 -7
  9. package/lib/commands/force/org/delete.js +26 -16
  10. package/lib/commands/force/org/delete.js.map +1 -1
  11. package/lib/commands/force/org/status.d.ts +18 -6
  12. package/lib/commands/force/org/status.js +43 -37
  13. package/lib/commands/force/org/status.js.map +1 -1
  14. package/lib/commands/org/create/sandbox.d.ts +40 -0
  15. package/lib/commands/org/create/sandbox.js +244 -0
  16. package/lib/commands/org/create/sandbox.js.map +1 -0
  17. package/lib/commands/org/create/scratch.d.ts +30 -0
  18. package/lib/commands/org/create/scratch.js +183 -0
  19. package/lib/commands/org/create/scratch.js.map +1 -0
  20. package/lib/commands/org/delete/sandbox.d.ts +18 -0
  21. package/lib/commands/org/delete/sandbox.js +59 -0
  22. package/lib/commands/org/delete/sandbox.js.map +1 -0
  23. package/lib/commands/org/delete/scratch.d.ts +18 -0
  24. package/lib/commands/org/delete/scratch.js +52 -0
  25. package/lib/commands/org/delete/scratch.js.map +1 -0
  26. package/lib/commands/org/display.d.ts +20 -0
  27. package/lib/commands/{force/org → org}/display.js +38 -27
  28. package/lib/commands/org/display.js.map +1 -0
  29. package/lib/commands/org/list.d.ts +26 -0
  30. package/lib/commands/org/list.js +192 -0
  31. package/lib/commands/org/list.js.map +1 -0
  32. package/lib/commands/org/open.d.ts +25 -0
  33. package/lib/commands/{force/org → org}/open.js +47 -33
  34. package/lib/commands/org/open.js.map +1 -0
  35. package/lib/commands/org/resume/sandbox.d.ts +26 -0
  36. package/lib/commands/org/resume/sandbox.js +199 -0
  37. package/lib/commands/org/resume/sandbox.js.map +1 -0
  38. package/lib/commands/org/resume/scratch.d.ts +14 -0
  39. package/lib/commands/org/resume/scratch.js +61 -0
  40. package/lib/commands/org/resume/scratch.js.map +1 -0
  41. package/lib/shared/orgHighlighter.d.ts +2 -2
  42. package/lib/shared/orgHighlighter.js +7 -5
  43. package/lib/shared/orgHighlighter.js.map +1 -1
  44. package/lib/shared/orgHooks.d.ts +24 -0
  45. package/lib/shared/orgHooks.js +9 -0
  46. package/lib/shared/orgHooks.js.map +1 -0
  47. package/lib/shared/orgListUtil.d.ts +15 -25
  48. package/lib/shared/orgListUtil.js +71 -81
  49. package/lib/shared/orgListUtil.js.map +1 -1
  50. package/lib/shared/orgTypes.d.ts +39 -11
  51. package/lib/shared/sandboxCommandBase.d.ts +33 -0
  52. package/lib/shared/sandboxCommandBase.js +168 -0
  53. package/lib/shared/sandboxCommandBase.js.map +1 -0
  54. package/lib/shared/sandboxProgress.d.ts +28 -0
  55. package/lib/shared/sandboxProgress.js +104 -0
  56. package/lib/shared/sandboxProgress.js.map +1 -0
  57. package/lib/shared/sandboxReporter.d.ts +1 -1
  58. package/lib/shared/sandboxRequest.d.ts +9 -0
  59. package/lib/shared/sandboxRequest.js +58 -0
  60. package/lib/shared/sandboxRequest.js.map +1 -0
  61. package/lib/shared/scratchOrgOutput.d.ts +9 -0
  62. package/lib/shared/scratchOrgOutput.js +47 -0
  63. package/lib/shared/scratchOrgOutput.js.map +1 -0
  64. package/lib/shared/stagedProgress.d.ts +33 -0
  65. package/lib/shared/stagedProgress.js +98 -0
  66. package/lib/shared/stagedProgress.js.map +1 -0
  67. package/lib/shared/timeUtils.d.ts +10 -0
  68. package/lib/shared/timeUtils.js +37 -0
  69. package/lib/shared/timeUtils.js.map +1 -0
  70. package/lib/shared/utils.d.ts +1 -1
  71. package/lib/shared/utils.js.map +1 -1
  72. package/messages/clone.md +67 -0
  73. package/messages/create.md +125 -0
  74. package/messages/create.sandbox.md +123 -0
  75. package/messages/create_scratch.md +109 -0
  76. package/messages/delete.md +47 -0
  77. package/messages/delete_sandbox.md +46 -0
  78. package/messages/delete_scratch.md +42 -0
  79. package/messages/display.md +33 -0
  80. package/messages/list.md +65 -0
  81. package/messages/messages.md +81 -0
  82. package/messages/open.md +63 -0
  83. package/messages/resume.sandbox.md +71 -0
  84. package/messages/resume_scratch.md +41 -0
  85. package/messages/sandboxbase.md +17 -0
  86. package/messages/status.md +33 -0
  87. package/oclif.manifest.json +1194 -1
  88. package/package.json +136 -26
  89. package/lib/commands/force/org/display.d.ts +0 -11
  90. package/lib/commands/force/org/display.js.map +0 -1
  91. package/lib/commands/force/org/list.d.ts +0 -15
  92. package/lib/commands/force/org/list.js +0 -191
  93. package/lib/commands/force/org/list.js.map +0 -1
  94. package/lib/commands/force/org/open.d.ts +0 -15
  95. package/lib/commands/force/org/open.js.map +0 -1
  96. package/messages/clone.json +0 -24
  97. package/messages/create.json +0 -37
  98. package/messages/delete.json +0 -13
  99. package/messages/display.json +0 -11
  100. package/messages/list.json +0 -19
  101. package/messages/messages.json +0 -24
  102. package/messages/open.json +0 -19
  103. package/messages/status.json +0 -13
@@ -0,0 +1,192 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2020, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OrgListCommand = void 0;
10
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
11
+ const core_1 = require("@salesforce/core");
12
+ const orgListUtil_1 = require("../../shared/orgListUtil");
13
+ const orgHighlighter_1 = require("../../shared/orgHighlighter");
14
+ core_1.Messages.importMessagesDirectory(__dirname);
15
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'list');
16
+ class OrgListCommand extends sf_plugins_core_1.SfCommand {
17
+ // eslint-disable-next-line sf-plugin/should-parse-flags
18
+ async run() {
19
+ const [{ flags }, fileNames] = await Promise.all([this.parse(OrgListCommand), getAuthFileNames()]);
20
+ this.flags = flags;
21
+ const metaConfigs = await orgListUtil_1.OrgListUtil.readLocallyValidatedMetaConfigsGroupedByOrgType(fileNames, flags);
22
+ const groupedSortedOrgs = {
23
+ nonScratchOrgs: metaConfigs.nonScratchOrgs.map(decorateWithDefaultStatus).sort(comparator),
24
+ scratchOrgs: metaConfigs.scratchOrgs.map(decorateWithDefaultStatus).sort(comparator),
25
+ expiredScratchOrgs: metaConfigs.scratchOrgs.filter((org) => !(0, orgListUtil_1.identifyActiveOrgByStatus)(org)),
26
+ };
27
+ if (flags.clean && groupedSortedOrgs.expiredScratchOrgs.length > 0) {
28
+ await this.cleanScratchOrgs(groupedSortedOrgs.expiredScratchOrgs, !flags['no-prompt']);
29
+ }
30
+ if (groupedSortedOrgs.expiredScratchOrgs.length > 10 && !flags.clean) {
31
+ this.warn(messages.getMessage('deleteOrgs', [groupedSortedOrgs.expiredScratchOrgs.length]));
32
+ }
33
+ const result = {
34
+ nonScratchOrgs: groupedSortedOrgs.nonScratchOrgs,
35
+ scratchOrgs: flags.all
36
+ ? groupedSortedOrgs.scratchOrgs
37
+ : groupedSortedOrgs.scratchOrgs.filter(orgListUtil_1.identifyActiveOrgByStatus),
38
+ };
39
+ this.printOrgTable(result.nonScratchOrgs, flags['skip-connection-status']);
40
+ this.printScratchOrgTable(result.scratchOrgs);
41
+ return result;
42
+ }
43
+ async cleanScratchOrgs(scratchOrgs, prompt) {
44
+ if (prompt && (await this.confirm(messages.getMessage('prompt', [scratchOrgs.length]))) === false) {
45
+ return;
46
+ }
47
+ await Promise.all(scratchOrgs.map(async (fields) => {
48
+ try {
49
+ const authInfo = await core_1.AuthInfo.create({ username: fields.username });
50
+ const connection = await core_1.Connection.create({
51
+ authInfo,
52
+ configAggregator: {
53
+ // Force an api version to prevent connection check with the server for expired orgs.
54
+ getInfo: () => ({ value: '47.0' }),
55
+ },
56
+ });
57
+ const org = await core_1.Org.create({ aliasOrUsername: fields.username, connection });
58
+ await org.remove();
59
+ }
60
+ catch (e) {
61
+ const err = e;
62
+ const logger = await core_1.Logger.child('org:list');
63
+ logger.debug(`Error cleaning org ${fields.username}: ${err.message}`);
64
+ this.warn(messages.getMessage('cleanWarning', [fields.username, fields.username]));
65
+ }
66
+ }));
67
+ }
68
+ printOrgTable(nonScratchOrgs, skipconnectionstatus) {
69
+ if (!nonScratchOrgs.length) {
70
+ this.log(messages.getMessage('noResultsFound'));
71
+ }
72
+ else {
73
+ const rows = nonScratchOrgs
74
+ .map((row) => (0, orgHighlighter_1.getStyledObject)(row))
75
+ .map((org) => Object.fromEntries(Object.entries(org).filter(([key]) => ['defaultMarker', 'alias', 'username', 'orgId', 'connectedStatus'].includes(key))));
76
+ this.table(rows, {
77
+ defaultMarker: {
78
+ header: '',
79
+ get: (data) => data.defaultMarker ?? '',
80
+ },
81
+ alias: {
82
+ header: 'ALIAS',
83
+ get: (data) => data.alias ?? '',
84
+ },
85
+ username: { header: 'USERNAME' },
86
+ orgId: { header: 'ORG ID' },
87
+ ...(!skipconnectionstatus ? { connectedStatus: { header: 'CONNECTED STATUS' } } : {}),
88
+ }, {
89
+ title: 'Non-scratch orgs',
90
+ });
91
+ }
92
+ }
93
+ printScratchOrgTable(scratchOrgs) {
94
+ if (scratchOrgs.length === 0) {
95
+ this.log(messages.getMessage('noActiveScratchOrgs'));
96
+ }
97
+ else {
98
+ // One or more rows are available.
99
+ // we only need a few of the props for our table. Oclif table doesn't like extra props non-string props.
100
+ const rows = scratchOrgs
101
+ .map(orgHighlighter_1.getStyledObject)
102
+ .map((org) => Object.fromEntries(Object.entries(org).filter(([key]) => [
103
+ 'defaultMarker',
104
+ 'alias',
105
+ 'username',
106
+ 'orgId',
107
+ 'status',
108
+ 'expirationDate',
109
+ 'devHubOrgId',
110
+ 'createdDate',
111
+ 'instanceUrl',
112
+ ].includes(key))));
113
+ this.table(rows, {
114
+ defaultMarker: {
115
+ header: '',
116
+ get: (data) => data.defaultMarker ?? '',
117
+ },
118
+ alias: {
119
+ header: 'ALIAS',
120
+ get: (data) => data.alias ?? '',
121
+ },
122
+ username: { header: 'USERNAME' },
123
+ orgId: { header: 'ORG ID' },
124
+ ...(this.flags.all || this.flags.verbose ? { status: { header: 'STATUS' } } : {}),
125
+ ...(this.flags.verbose
126
+ ? {
127
+ devHubOrgId: { header: 'DEV HUB' },
128
+ createdDate: { header: 'CREATED DATE' },
129
+ instanceUrl: { header: 'INSTANCE URL' },
130
+ }
131
+ : {}),
132
+ expirationDate: { header: 'EXPIRATION DATE' },
133
+ }, {
134
+ title: 'Scratch orgs',
135
+ });
136
+ }
137
+ }
138
+ }
139
+ exports.OrgListCommand = OrgListCommand;
140
+ OrgListCommand.summary = messages.getMessage('summary');
141
+ OrgListCommand.examples = messages.getMessages('examples');
142
+ OrgListCommand.aliases = ['force:org:list'];
143
+ OrgListCommand.deprecateAliases = true;
144
+ OrgListCommand.flags = {
145
+ verbose: sf_plugins_core_1.Flags.boolean({
146
+ summary: messages.getMessage('flags.verbose.summary'),
147
+ }),
148
+ all: sf_plugins_core_1.Flags.boolean({
149
+ summary: messages.getMessage('flags.all.summary'),
150
+ }),
151
+ clean: sf_plugins_core_1.Flags.boolean({
152
+ summary: messages.getMessage('flags.clean.summary'),
153
+ }),
154
+ 'no-prompt': sf_plugins_core_1.Flags.boolean({
155
+ char: 'p',
156
+ summary: messages.getMessage('flags.noPrompt.summary'),
157
+ dependsOn: ['clean'],
158
+ aliases: ['noprompt'],
159
+ deprecateAliases: true,
160
+ }),
161
+ 'skip-connection-status': sf_plugins_core_1.Flags.boolean({
162
+ summary: messages.getMessage('flags.skipConnectionStatus.summary'),
163
+ aliases: ['skipconnectionstatus'],
164
+ deprecateAliases: true,
165
+ }),
166
+ loglevel: sf_plugins_core_1.loglevel,
167
+ };
168
+ const decorateWithDefaultStatus = (val) => ({
169
+ ...val,
170
+ ...(val.isDefaultDevHubUsername ? { defaultMarker: '(D)' } : {}),
171
+ ...(val.isDefaultUsername ? { defaultMarker: '(U)' } : {}),
172
+ });
173
+ // sort by alias then username
174
+ const comparator = (a, b) => {
175
+ const aliasCompareResult = (a.alias ?? '').localeCompare(b.alias ?? '');
176
+ return aliasCompareResult !== 0 ? aliasCompareResult : (a.username ?? '').localeCompare(b.username);
177
+ };
178
+ const getAuthFileNames = async () => {
179
+ try {
180
+ return ((await core_1.AuthInfo.listAllAuthorizations()) ?? []).map((auth) => auth.username);
181
+ }
182
+ catch (err) {
183
+ const error = err;
184
+ if (error.name === 'NoAuthInfoFound') {
185
+ throw new core_1.SfError(messages.getMessage('noOrgsFound'), 'noOrgsFound', [messages.getMessage('noOrgsFoundAction')]);
186
+ }
187
+ else {
188
+ throw error;
189
+ }
190
+ }
191
+ };
192
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/org/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { Org } from '@salesforce/core';
3
+ export declare class OrgOpenCommand extends SfCommand<OrgOpenOutput> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static readonly examples: string[];
7
+ static readonly aliases: string[];
8
+ static depreprecateAliases: boolean;
9
+ static readonly flags: {
10
+ 'target-org': import("@oclif/core/lib/interfaces").OptionFlag<Org>;
11
+ 'api-version': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
12
+ browser: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
13
+ path: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
14
+ 'url-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
15
+ loglevel: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
16
+ };
17
+ private org;
18
+ run(): Promise<OrgOpenOutput>;
19
+ private buildFrontdoorUrl;
20
+ }
21
+ export interface OrgOpenOutput {
22
+ url: string;
23
+ username: string;
24
+ orgId: string;
25
+ }
@@ -1,71 +1,78 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OrgOpenCommand = void 0;
4
2
  /*
5
3
  * Copyright (c) 2020, salesforce.com, inc.
6
4
  * All rights reserved.
7
5
  * Licensed under the BSD 3-Clause license.
8
6
  * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
9
7
  */
10
- const os_1 = require("os");
11
- const command_1 = require("@salesforce/command");
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.OrgOpenCommand = void 0;
10
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
12
11
  const core_1 = require("@salesforce/core");
13
12
  const kit_1 = require("@salesforce/kit");
14
13
  const open = require("open");
15
- const utils_1 = require("../../../shared/utils");
14
+ const utils_1 = require("../../shared/utils");
16
15
  core_1.Messages.importMessagesDirectory(__dirname);
17
16
  const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'open');
18
17
  const sharedMessages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'messages');
19
- class OrgOpenCommand extends command_1.SfdxCommand {
18
+ class OrgOpenCommand extends sf_plugins_core_1.SfCommand {
20
19
  async run() {
21
- const frontDoorUrl = await this.buildFrontdoorUrl();
22
- const url = this.flags.path ? `${frontDoorUrl}&retURL=${this.flags.path}` : frontDoorUrl;
20
+ const { flags } = await this.parse(OrgOpenCommand);
21
+ this.org = flags['target-org'];
22
+ const frontDoorUrl = await this.buildFrontdoorUrl(flags['api-version']);
23
+ const url = flags.path ? `${frontDoorUrl}&retURL=${flags.path}` : frontDoorUrl;
23
24
  const orgId = this.org.getOrgId();
25
+ // TODO: better typings in sfdx-core for orgs read from auth files
24
26
  const username = this.org.getUsername();
25
27
  const output = { orgId, url, username };
26
28
  const containerMode = new kit_1.Env().getBoolean('SFDX_CONTAINER_MODE');
27
29
  // security warning only for --json OR --urlonly OR containerMode
28
- if (this.flags.urlonly || this.flags.json || containerMode) {
29
- this.ux.warn(sharedMessages.getMessage('SecurityWarning'));
30
- this.ux.log('');
30
+ if (flags['url-only'] || flags.json || containerMode) {
31
+ this.warn(sharedMessages.getMessage('SecurityWarning'));
32
+ this.log('');
31
33
  }
32
34
  if (containerMode) {
33
35
  // instruct the user that they need to paste the URL into the browser
34
- this.ux.styledHeader('Action Required!');
35
- this.ux.log(messages.getMessage('containerAction', [orgId, url]));
36
+ this.styledHeader('Action Required!');
37
+ this.log(messages.getMessage('containerAction', [orgId, url]));
36
38
  return output;
37
39
  }
38
- if (this.flags.urlonly) {
40
+ if (flags['url-only']) {
39
41
  // this includes the URL
40
- this.ux.log(messages.getMessage('humanSuccess', [orgId, username, url]));
42
+ this.logSuccess(messages.getMessage('humanSuccess', [orgId, username, url]));
41
43
  return output;
42
44
  }
43
- this.ux.log(messages.getMessage('humanSuccessNoUrl', [orgId, username]));
45
+ this.logSuccess(messages.getMessage('humanSuccessNoUrl', [orgId, username]));
44
46
  // we actually need to open the org
45
47
  try {
46
- this.ux.startSpinner(messages.getMessage('domainWaiting'));
48
+ this.spinner.start(messages.getMessage('domainWaiting'));
47
49
  const sfdcUrl = new core_1.SfdcUrl(url);
48
50
  await sfdcUrl.checkLightningDomain();
51
+ this.spinner.stop();
49
52
  }
50
53
  catch (err) {
51
54
  if (err instanceof Error) {
52
- if (err.message?.includes('timeout')) {
53
- const domain = `https://${/https?:\/\/([^.]*)/.exec(url)[1]}.lightning.force.com`;
55
+ if (err.message.includes('timeout')) {
56
+ const domain = `https://${/https?:\/\/([^.]*)/.exec(url)?.[1]}.lightning.force.com`;
54
57
  const timeout = new kit_1.Duration(new kit_1.Env().getNumber('SFDX_DOMAIN_RETRY', 240), kit_1.Duration.Unit.SECONDS);
55
- this.logger.debug(`Did not find IP for ${domain} after ${timeout.seconds} seconds`);
58
+ const logger = await core_1.Logger.child(this.constructor.name);
59
+ logger.debug(`Did not find IP for ${domain} after ${timeout.seconds} seconds`);
56
60
  throw new core_1.SfError(messages.getMessage('domainTimeoutError'), 'domainTimeoutError');
57
61
  }
58
62
  throw core_1.SfError.wrap(err);
59
63
  }
60
64
  throw err;
61
65
  }
62
- const openOptions = typeof this.flags.browser === 'string' ? { app: { name: open.apps[this.flags.browser] } } : {};
66
+ const openOptions = flags.browser
67
+ ? // assertion can be removed once oclif option flag typings are fixed
68
+ { app: { name: open.apps[flags.browser] } }
69
+ : {};
63
70
  await (0, utils_1.openUrl)(url, openOptions);
64
71
  return output;
65
72
  }
66
- async buildFrontdoorUrl() {
73
+ async buildFrontdoorUrl(version) {
67
74
  await this.org.refreshAuth(); // we need a live accessToken for the frontdoor url
68
- const conn = this.org.getConnection();
75
+ const conn = this.org.getConnection(version);
69
76
  const accessToken = conn.accessToken;
70
77
  const instanceUrl = this.org.getField(core_1.Org.Fields.INSTANCE_URL);
71
78
  const instanceUrlClean = instanceUrl.replace(/\/$/, '');
@@ -73,25 +80,32 @@ class OrgOpenCommand extends command_1.SfdxCommand {
73
80
  }
74
81
  }
75
82
  exports.OrgOpenCommand = OrgOpenCommand;
83
+ OrgOpenCommand.summary = messages.getMessage('summary');
76
84
  OrgOpenCommand.description = messages.getMessage('description');
77
- OrgOpenCommand.examples = messages.getMessage('examples').split(os_1.EOL);
78
- OrgOpenCommand.requiresUsername = true;
79
- OrgOpenCommand.flagsConfig = {
80
- browser: command_1.flags.string({
85
+ OrgOpenCommand.examples = messages.getMessages('examples');
86
+ OrgOpenCommand.aliases = ['force:org:open'];
87
+ OrgOpenCommand.depreprecateAliases = true;
88
+ OrgOpenCommand.flags = {
89
+ 'target-org': sf_plugins_core_1.requiredOrgFlagWithDeprecations,
90
+ 'api-version': sf_plugins_core_1.orgApiVersionFlagWithDeprecations,
91
+ browser: sf_plugins_core_1.Flags.string({
81
92
  char: 'b',
82
- description: messages.getMessage('browser'),
93
+ summary: messages.getMessage('flags.browser.summary'),
83
94
  options: ['chrome', 'edge', 'firefox'],
84
- exclusive: ['urlonly'],
95
+ exclusive: ['url-only'],
85
96
  }),
86
- path: command_1.flags.string({
97
+ path: sf_plugins_core_1.Flags.string({
87
98
  char: 'p',
88
- description: messages.getMessage('cliPath'),
99
+ summary: messages.getMessage('flags.path.summary'),
89
100
  env: 'FORCE_OPEN_URL',
90
101
  parse: (input) => Promise.resolve(encodeURIComponent(decodeURIComponent(input))),
91
102
  }),
92
- urlonly: command_1.flags.boolean({
103
+ 'url-only': sf_plugins_core_1.Flags.boolean({
93
104
  char: 'r',
94
- description: messages.getMessage('urlonly'),
105
+ summary: messages.getMessage('flags.url-only.summary'),
106
+ aliases: ['urlonly'],
107
+ deprecateAliases: true,
95
108
  }),
109
+ loglevel: sf_plugins_core_1.loglevel,
96
110
  };
97
111
  //# sourceMappingURL=open.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"open.js","sourceRoot":"","sources":["../../../src/commands/org/open.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Org, SandboxProcessObject } from '@salesforce/core';
2
+ import { Duration } from '@salesforce/kit';
3
+ import * as Interfaces from '@oclif/core/lib/interfaces';
4
+ import { SandboxCommandBase } from '../../../shared/sandboxCommandBase';
5
+ export default class ResumeSandbox extends SandboxCommandBase<SandboxProcessObject> {
6
+ static summary: string;
7
+ static description: string;
8
+ static examples: string[];
9
+ static readonly aliases: string[];
10
+ static readonly deprecateAliases = true;
11
+ static flags: {
12
+ wait: Interfaces.OptionFlag<Duration | undefined>;
13
+ name: Interfaces.OptionFlag<string | undefined>;
14
+ 'job-id': Interfaces.OptionFlag<string | undefined>;
15
+ 'use-most-recent': Interfaces.BooleanFlag<boolean>;
16
+ 'target-org': Interfaces.OptionFlag<Org | undefined>;
17
+ };
18
+ static readonly state = "beta";
19
+ private flags;
20
+ run(): Promise<SandboxProcessObject>;
21
+ protected getCheckSandboxStatusParams(): string[];
22
+ private createResumeSandboxRequest;
23
+ private resumeSandbox;
24
+ private buildSandboxRequestCacheEntry;
25
+ private verifyIfAuthExists;
26
+ }
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ /*
3
+ * Copyright (c) 2022, salesforce.com, inc.
4
+ * All rights reserved.
5
+ * Licensed under the BSD 3-Clause license.
6
+ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const sf_plugins_core_1 = require("@salesforce/sf-plugins-core");
10
+ const core_1 = require("@salesforce/core");
11
+ const kit_1 = require("@salesforce/kit");
12
+ const sandboxCommandBase_1 = require("../../../shared/sandboxCommandBase");
13
+ core_1.Messages.importMessagesDirectory(__dirname);
14
+ const messages = core_1.Messages.loadMessages('@salesforce/plugin-org', 'resume.sandbox');
15
+ class ResumeSandbox extends sandboxCommandBase_1.SandboxCommandBase {
16
+ async run() {
17
+ this.sandboxRequestConfig = await this.getSandboxRequestConfig();
18
+ this.flags = (await this.parse(ResumeSandbox)).flags;
19
+ this.debug('Resume started with args %s ', this.flags);
20
+ return this.resumeSandbox();
21
+ }
22
+ getCheckSandboxStatusParams() {
23
+ return [
24
+ this.config.bin,
25
+ ...(this.latestSandboxProgressObj ? [this.latestSandboxProgressObj.Id] : []),
26
+ ...(this.flags['target-org']?.getUsername() ? [this.flags['target-org'].getUsername()] : []),
27
+ ];
28
+ }
29
+ createResumeSandboxRequest() {
30
+ if (this.flags['use-most-recent'] && this.sandboxRequestConfig) {
31
+ const latestEntry = this.sandboxRequestConfig.getLatestEntry();
32
+ if (latestEntry) {
33
+ const [, sandboxRequestData] = latestEntry;
34
+ if (sandboxRequestData) {
35
+ return { SandboxName: sandboxRequestData.sandboxProcessObject?.SandboxName };
36
+ }
37
+ }
38
+ }
39
+ // build resume sandbox request from data provided
40
+ return {
41
+ ...Object.assign({}, this.flags.name ? { SandboxName: this.flags.name } : {}),
42
+ ...Object.assign({}, this.flags['job-id'] ? { SandboxProcessObjId: this.flags['job-id'] } : {}),
43
+ };
44
+ }
45
+ async resumeSandbox() {
46
+ this.sandboxRequestData = this.buildSandboxRequestCacheEntry();
47
+ const prodOrgUsername = this.sandboxRequestData.prodOrgUsername;
48
+ if (!this.sandboxRequestData.sandboxProcessObject.SandboxName) {
49
+ if (!this.flags['name'] && !this.flags['job-id']) {
50
+ throw messages.createError('error.NoSandboxNameOrJobId');
51
+ }
52
+ }
53
+ this.prodOrg = await core_1.Org.create({ aliasOrUsername: prodOrgUsername });
54
+ this.flags['target-org'] = this.prodOrg;
55
+ const lifecycle = core_1.Lifecycle.getInstance();
56
+ this.registerLifecycleListeners(lifecycle, {
57
+ isAsync: false,
58
+ alias: this.sandboxRequestData.alias,
59
+ setDefault: this.sandboxRequestData.setDefault,
60
+ prodOrg: this.prodOrg,
61
+ tracksSource: this.sandboxRequestData.tracksSource,
62
+ });
63
+ if (this.latestSandboxProgressObj &&
64
+ (await this.verifyIfAuthExists({
65
+ prodOrg: this.prodOrg,
66
+ sandboxName: this.sandboxRequestData.sandboxProcessObject.SandboxName,
67
+ jobId: this.flags['job-id'],
68
+ lifecycle,
69
+ }))) {
70
+ return this.latestSandboxProgressObj;
71
+ }
72
+ const sandboxReq = this.createResumeSandboxRequest();
73
+ if (this.flags.wait?.seconds && this.flags.wait.seconds > 0) {
74
+ this.spinner.start('Resume Create');
75
+ }
76
+ this.debug('Calling create with ResumeSandboxRequest: %s ', sandboxReq);
77
+ try {
78
+ return await this.prodOrg.resumeSandbox(sandboxReq, {
79
+ wait: this.flags.wait ?? kit_1.Duration.seconds(0),
80
+ interval: kit_1.Duration.seconds(30),
81
+ });
82
+ }
83
+ catch (err) {
84
+ this.spinner.stop();
85
+ if (this.latestSandboxProgressObj && this.pollingTimeOut) {
86
+ void lifecycle.emit(core_1.SandboxEvents.EVENT_ASYNC_RESULT, undefined);
87
+ process.exitCode = 68;
88
+ return this.latestSandboxProgressObj;
89
+ }
90
+ else if (this.latestSandboxProgressObj &&
91
+ err instanceof core_1.SfError &&
92
+ err.name === 'SandboxCreateNotCompleteError') {
93
+ process.exitCode = 68;
94
+ return this.latestSandboxProgressObj;
95
+ }
96
+ throw err;
97
+ }
98
+ }
99
+ buildSandboxRequestCacheEntry() {
100
+ let sandboxRequestCacheEntry;
101
+ if (this.sandboxRequestConfig && this.flags['use-most-recent']) {
102
+ const latest = this.sandboxRequestConfig.getLatestEntry();
103
+ const [name, entry] = latest ?? [undefined, undefined];
104
+ if (!name) {
105
+ throw messages.createError('error.LatestSandboxRequestNotFound');
106
+ }
107
+ sandboxRequestCacheEntry = entry;
108
+ }
109
+ else if (this.sandboxRequestConfig && this.flags.name) {
110
+ sandboxRequestCacheEntry = this.sandboxRequestConfig.get(this.flags.name) || sandboxRequestCacheEntry;
111
+ }
112
+ else if (this.flags['job-id'] && this.sandboxRequestConfig) {
113
+ const entries = this.sandboxRequestConfig.entries();
114
+ const sce = entries.find(([, e]) => e?.sandboxProcessObject?.Id === this.flags['job-id'])?.[1];
115
+ sandboxRequestCacheEntry = sce;
116
+ }
117
+ return {
118
+ ...(sandboxRequestCacheEntry ?? {
119
+ sandboxProcessObject: { SandboxName: this.flags.name },
120
+ sandboxRequest: {},
121
+ setDefault: false,
122
+ }),
123
+ prodOrgUsername: sandboxRequestCacheEntry?.prodOrgUsername ?? this.flags['target-org']?.getUsername(),
124
+ };
125
+ }
126
+ async verifyIfAuthExists({ prodOrg, sandboxName, jobId, lifecycle, }) {
127
+ const sandboxProcessObject = await getSandboxProcessObject(prodOrg, sandboxName, jobId);
128
+ const sandboxUsername = `${prodOrg.getUsername()}.${sandboxProcessObject.SandboxName}`;
129
+ const exists = await (await core_1.StateAggregator.getInstance()).orgs.exists(sandboxUsername);
130
+ if (exists) {
131
+ this.latestSandboxProgressObj = sandboxProcessObject;
132
+ const resultEvent = {
133
+ sandboxProcessObj: this.latestSandboxProgressObj,
134
+ sandboxRes: { authUserName: sandboxUsername },
135
+ };
136
+ await lifecycle.emit(core_1.SandboxEvents.EVENT_RESULT, resultEvent);
137
+ return true;
138
+ }
139
+ return false;
140
+ }
141
+ }
142
+ exports.default = ResumeSandbox;
143
+ ResumeSandbox.summary = messages.getMessage('summary');
144
+ ResumeSandbox.description = messages.getMessage('description');
145
+ ResumeSandbox.examples = messages.getMessages('examples');
146
+ ResumeSandbox.aliases = ['env:resume:sandbox'];
147
+ ResumeSandbox.deprecateAliases = true;
148
+ ResumeSandbox.flags = {
149
+ wait: sf_plugins_core_1.Flags.duration({
150
+ char: 'w',
151
+ summary: messages.getMessage('flags.wait.summary'),
152
+ description: messages.getMessage('flags.wait.description'),
153
+ min: 0,
154
+ unit: 'minutes',
155
+ helpValue: '<minutes>',
156
+ defaultValue: 0,
157
+ }),
158
+ name: sf_plugins_core_1.Flags.string({
159
+ char: 'n',
160
+ summary: messages.getMessage('flags.name.summary'),
161
+ parse: (name) => {
162
+ if (name.length > 10) {
163
+ throw messages.createError('error.SandboxNameLength', [name]);
164
+ }
165
+ return Promise.resolve(name);
166
+ },
167
+ exclusive: ['job-id'],
168
+ }),
169
+ 'job-id': sf_plugins_core_1.Flags.salesforceId({
170
+ startsWith: '0GR',
171
+ char: 'i',
172
+ summary: messages.getMessage('flags.id.summary'),
173
+ description: messages.getMessage('flags.id.description'),
174
+ exclusive: ['name'],
175
+ }),
176
+ 'use-most-recent': sf_plugins_core_1.Flags.boolean({
177
+ char: 'l',
178
+ summary: messages.getMessage('flags.use-most-recent.summary'),
179
+ }),
180
+ 'target-org': sf_plugins_core_1.Flags.optionalOrg({
181
+ char: 'o',
182
+ summary: messages.getMessage('flags.targetOrg.summary'),
183
+ description: messages.getMessage('flags.targetOrg.description'),
184
+ }),
185
+ };
186
+ ResumeSandbox.state = 'beta';
187
+ const getSandboxProcessObject = async (prodOrg, sandboxName, jobId) => {
188
+ const where = sandboxName ? `SandboxName='${sandboxName}'` : `Id='${jobId}'`;
189
+ const queryStr = `SELECT Id, Status, SandboxName, SandboxInfoId, LicenseType, CreatedDate, CopyProgress, SandboxOrganization, SourceId, Description, EndDate FROM SandboxProcess WHERE ${where} AND Status != 'D'`;
190
+ try {
191
+ return await prodOrg.getConnection().singleRecordQuery(queryStr, {
192
+ tooling: true,
193
+ });
194
+ }
195
+ catch (err) {
196
+ throw messages.createError('error.NoSandboxRequestFound');
197
+ }
198
+ };
199
+ //# sourceMappingURL=sandbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../../src/commands/org/resume/sandbox.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,iEAAoD;AACpD,2CAY0B;AAC1B,yCAA2C;AAE3C,2EAAwE;AAExE,eAAQ,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AAC5C,MAAM,QAAQ,GAAG,eAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,gBAAgB,CAAC,CAAC;AAEnF,MAAqB,aAAc,SAAQ,uCAAwC;IA+C1E,KAAK,CAAC,GAAG;QACd,IAAI,CAAC,oBAAoB,GAAG,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACjE,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC;QACrD,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAES,2BAA2B;QACnC,OAAO;YACL,IAAI,CAAC,MAAM,CAAC,GAAG;YACf,GAAG,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5E,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,WAAW,EAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;SACvG,CAAC;IACJ,CAAC;IAEO,0BAA0B;QAChC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC9D,MAAM,WAAW,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;YAC/D,IAAI,WAAW,EAAE;gBACf,MAAM,CAAC,EAAE,kBAAkB,CAAC,GAAG,WAAW,CAAC;gBAC3C,IAAI,kBAAkB,EAAE;oBACtB,OAAO,EAAE,WAAW,EAAE,kBAAkB,CAAC,oBAAoB,EAAE,WAAW,EAAE,CAAC;iBAC9E;aACF;SACF;QACD,kDAAkD;QAClD,OAAO;YACL,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7E,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChG,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa;QACzB,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAC/D,MAAM,eAAe,GAAW,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC;QAExE,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,WAAW,EAAE;YAC7D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBAChD,MAAM,QAAQ,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;aAC1D;SACF;QACD,IAAI,CAAC,OAAO,GAAG,MAAM,UAAG,CAAC,MAAM,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;QACxC,MAAM,SAAS,GAAG,gBAAS,CAAC,WAAW,EAAE,CAAC;QAE1C,IAAI,CAAC,0BAA0B,CAAC,SAAS,EAAE;YACzC,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK;YACpC,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,UAAU;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,YAAY;SACnD,CAAC,CAAC;QAEH,IACE,IAAI,CAAC,wBAAwB;YAC7B,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,WAAW;gBACrE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBAC3B,SAAS;aACV,CAAC,CAAC,EACH;YACA,OAAO,IAAI,CAAC,wBAAwB,CAAC;SACtC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAErD,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,KAAK,CAAC,+CAA+C,EAAE,UAAU,CAAC,CAAC;QAExE,IAAI;YACF,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE;gBAClD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,cAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAC5C,QAAQ,EAAE,cAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;aAC/B,CAAC,CAAC;SACJ;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACxD,KAAK,SAAS,CAAC,IAAI,CAAC,oBAAa,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;gBACjE,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC;aACtC;iBAAM,IACL,IAAI,CAAC,wBAAwB;gBAC7B,GAAG,YAAY,cAAO;gBACtB,GAAG,CAAC,IAAI,KAAK,+BAA+B,EAC5C;gBACA,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;gBACtB,OAAO,IAAI,CAAC,wBAAwB,CAAC;aACtC;YACD,MAAM,GAAG,CAAC;SACX;IACH,CAAC;IAEO,6BAA6B;QACnC,IAAI,wBAA8D,CAAC;QAEnE,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE;YAC9D,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,cAAc,EAAE,CAAC;YAC1D,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,IAAI,EAAE;gBACT,MAAM,QAAQ,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC;aAClE;YACD,wBAAwB,GAAG,KAAK,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACvD,wBAAwB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,wBAAwB,CAAC;SACvG;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,oBAAoB,EAAE;YAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAA+C,CAAC;YACjG,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/F,wBAAwB,GAAG,GAAG,CAAC;SAChC;QAED,OAAO;YACL,GAAG,CAAC,wBAAwB,IAAI;gBAC9B,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;gBACtD,cAAc,EAAE,EAAE;gBAClB,UAAU,EAAE,KAAK;aAClB,CAAC;YACF,eAAe,EAAE,wBAAwB,EAAE,eAAe,IAAK,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,WAAW,EAAa;SAClH,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,EAC/B,OAAO,EACP,WAAW,EACX,KAAK,EACL,SAAS,GAMV;QACC,MAAM,oBAAoB,GAAyB,MAAM,uBAAuB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QAC9G,MAAM,eAAe,GAAG,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,oBAAoB,CAAC,WAAW,EAAE,CAAC;QACvF,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,sBAAe,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACxF,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,CAAC;YACrD,MAAM,WAAW,GAAG;gBAClB,iBAAiB,EAAE,IAAI,CAAC,wBAAwB;gBAChD,UAAU,EAAE,EAAE,YAAY,EAAE,eAAe,EAAsC;aACnE,CAAC;YACjB,MAAM,SAAS,CAAC,IAAI,CAAC,oBAAa,CAAC,YAAY,EAAE,WAAmC,CAAC,CAAC;YACtF,OAAO,IAAI,CAAC;SACb;QACD,OAAO,KAAK,CAAC;IACf,CAAC;;AAnMH,gCAoMC;AAnMe,qBAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;AACzC,yBAAW,GAAG,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AACjD,sBAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACnC,qBAAO,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACjC,8BAAgB,GAAG,IAAI,CAAC;AACjC,mBAAK,GAAG;IACpB,IAAI,EAAE,uBAAK,CAAC,QAAQ,CAAC;QACnB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,wBAAwB,CAAC;QAC1D,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,WAAW;QACtB,YAAY,EAAE,CAAC;KAChB,CAAC;IACF,IAAI,EAAE,uBAAK,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,oBAAoB,CAAC;QAClD,KAAK,EAAE,CAAC,IAAY,EAAmB,EAAE;YACvC,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAAE;gBACpB,MAAM,QAAQ,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;aAC/D;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,SAAS,EAAE,CAAC,QAAQ,CAAC;KACtB,CAAC;IACF,QAAQ,EAAE,uBAAK,CAAC,YAAY,CAAC;QAC3B,UAAU,EAAE,KAAK;QACjB,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAChD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,CAAC;QACxD,SAAS,EAAE,CAAC,MAAM,CAAC;KACpB,CAAC;IACF,iBAAiB,EAAE,uBAAK,CAAC,OAAO,CAAC;QAC/B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,+BAA+B,CAAC;KAC9D,CAAC;IACF,YAAY,EAAE,uBAAK,CAAC,WAAW,CAAC;QAC9B,IAAI,EAAE,GAAG;QACT,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,yBAAyB,CAAC;QACvD,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,6BAA6B,CAAC;KAChE,CAAC;CACH,CAAC;AACqB,mBAAK,GAAG,MAAM,CAAC;AA0JxC,MAAM,uBAAuB,GAAG,KAAK,EACnC,OAAY,EACZ,WAAoB,EACpB,KAAc,EACiB,EAAE;IACjC,MAAM,KAAK,GAAG,WAAW,CAAC,CAAC,CAAC,gBAAgB,WAAW,GAAG,CAAC,CAAC,CAAC,OAAO,KAAK,GAAG,CAAC;IAC7E,MAAM,QAAQ,GAAG,wKAAwK,KAAK,oBAAoB,CAAC;IACnN,IAAI;QACF,OAAO,MAAM,OAAO,CAAC,aAAa,EAAE,CAAC,iBAAiB,CAAC,QAAQ,EAAE;YAC/D,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;KACJ;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,QAAQ,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;KAC3D;AACH,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { SfCommand } from '@salesforce/sf-plugins-core';
2
+ import { ScratchCreateResponse } from '../../../shared/orgTypes';
3
+ export default class EnvResumeScratch extends SfCommand<ScratchCreateResponse> {
4
+ static readonly summary: string;
5
+ static readonly description: string;
6
+ static readonly examples: string[];
7
+ static readonly aliases: string[];
8
+ static readonly deprecateAliases = true;
9
+ static readonly flags: {
10
+ 'job-id': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined>;
11
+ 'use-most-recent': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
12
+ };
13
+ run(): Promise<ScratchCreateResponse>;
14
+ }