@sfship/plugin-ship 1.0.0-beta.2 → 1.0.0-beta.4
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/lib/commands/ship/project/init.d.ts +4 -0
- package/lib/commands/ship/project/init.js +29 -12
- package/lib/commands/ship/project/init.js.map +1 -1
- package/lib/core/file.d.ts +2 -0
- package/lib/core/file.js +4 -0
- package/lib/core/file.js.map +1 -1
- package/lib/core/project.init.d.ts +1 -1
- package/lib/core/project.init.js +14 -6
- package/lib/core/project.init.js.map +1 -1
- package/messages/ship.project.init.md +16 -0
- package/oclif.manifest.json +266 -234
- package/package.json +1 -1
|
@@ -5,6 +5,10 @@ export default class ProjectInit extends SfCommand<void> {
|
|
|
5
5
|
static readonly examples: string[];
|
|
6
6
|
static readonly enableJsonFlag = false;
|
|
7
7
|
static readonly flags: {
|
|
8
|
+
name: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
|
+
namespace: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
|
+
'package-type': import("@oclif/core/interfaces").OptionFlag<"Managed" | "Unlocked" | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
11
|
+
'repo-url': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
8
12
|
template: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
9
13
|
'api-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
10
14
|
'lwc-language': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -11,11 +11,12 @@
|
|
|
11
11
|
* See the License for the specific language governing permissions and
|
|
12
12
|
* limitations under the License.
|
|
13
13
|
*/
|
|
14
|
-
import { basename, dirname, resolve } from 'node:path';
|
|
14
|
+
import { basename, dirname, join, resolve } from 'node:path';
|
|
15
15
|
import { input, select } from '@inquirer/prompts';
|
|
16
16
|
import { SfCommand, Flags, StandardColors } from '@salesforce/sf-plugins-core';
|
|
17
17
|
import { Messages } from '@salesforce/core';
|
|
18
18
|
import { initProject } from '../../../core/project.init.js';
|
|
19
|
+
import { fileExists } from '../../../core/file.js';
|
|
19
20
|
Messages.importMessagesDirectoryFromMetaUrl(import.meta.url);
|
|
20
21
|
const messages = Messages.loadMessages('@sfship/plugin-ship', 'ship.project.init');
|
|
21
22
|
export default class ProjectInit extends SfCommand {
|
|
@@ -24,6 +25,19 @@ export default class ProjectInit extends SfCommand {
|
|
|
24
25
|
static examples = messages.getMessages('examples');
|
|
25
26
|
static enableJsonFlag = false;
|
|
26
27
|
static flags = {
|
|
28
|
+
name: Flags.string({
|
|
29
|
+
summary: messages.getMessage('flags.name.summary'),
|
|
30
|
+
}),
|
|
31
|
+
namespace: Flags.string({
|
|
32
|
+
summary: messages.getMessage('flags.namespace.summary'),
|
|
33
|
+
}),
|
|
34
|
+
'package-type': Flags.option({
|
|
35
|
+
summary: messages.getMessage('flags.package-type.summary'),
|
|
36
|
+
options: ['Managed', 'Unlocked'],
|
|
37
|
+
})(),
|
|
38
|
+
'repo-url': Flags.string({
|
|
39
|
+
summary: messages.getMessage('flags.repo-url.summary'),
|
|
40
|
+
}),
|
|
27
41
|
template: Flags.string({
|
|
28
42
|
summary: messages.getMessage('flags.template.summary'),
|
|
29
43
|
default: 'standard',
|
|
@@ -37,19 +51,22 @@ export default class ProjectInit extends SfCommand {
|
|
|
37
51
|
};
|
|
38
52
|
async run() {
|
|
39
53
|
const { flags } = await this.parse(ProjectInit);
|
|
40
|
-
const packageName = await input({ message: 'Project Name:' });
|
|
41
|
-
const namespaceRaw = await input({ message: 'Namespace:' });
|
|
54
|
+
const packageName = flags.name ?? (await input({ message: 'Project Name:' }));
|
|
55
|
+
const namespaceRaw = flags.namespace ?? (await input({ message: 'Namespace:' }));
|
|
42
56
|
const namespace = namespaceRaw.trim() || undefined;
|
|
43
|
-
const packageType =
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
57
|
+
const packageType = flags['package-type'] ??
|
|
58
|
+
(await select({
|
|
59
|
+
message: 'Package Type:',
|
|
60
|
+
choices: [
|
|
61
|
+
{ value: 'Managed', name: '2GP Managed' },
|
|
62
|
+
{ value: 'Unlocked', name: 'Unlocked' },
|
|
63
|
+
],
|
|
64
|
+
}));
|
|
65
|
+
const repoUrlRaw = flags['repo-url'] ?? (await input({ message: 'GitHub Repository URL:' }));
|
|
51
66
|
const repoUrl = repoUrlRaw.trim() || undefined;
|
|
52
67
|
const cwd = resolve('.');
|
|
68
|
+
// Capture this before project:generate, which always writes its own README.
|
|
69
|
+
const readmeExisted = fileExists(join(cwd, 'README.md'));
|
|
53
70
|
const generateArgs = ['--name', basename(cwd), '--template', flags.template, '--output-dir', dirname(cwd)];
|
|
54
71
|
if (flags['api-version'])
|
|
55
72
|
generateArgs.push('--api-version', flags['api-version']);
|
|
@@ -57,7 +74,7 @@ export default class ProjectInit extends SfCommand {
|
|
|
57
74
|
generateArgs.push('--lwc-language', flags['lwc-language']);
|
|
58
75
|
this.log('');
|
|
59
76
|
await this.config.runCommand('project:generate', generateArgs);
|
|
60
|
-
const { created, skipped } = initProject({ packageName, namespace, packageType, repoUrl }, cwd);
|
|
77
|
+
const { created, skipped } = initProject({ packageName, namespace, packageType, repoUrl }, cwd, readmeExisted);
|
|
61
78
|
this.log('');
|
|
62
79
|
for (const f of created)
|
|
63
80
|
this.log(` created ${f}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/ship/project/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../../src/commands/ship/project/init.ts"],"names":[],"mappings":"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"}
|
package/lib/core/file.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare function writeJson(path: string, data: unknown): void;
|
|
|
20
20
|
export declare function writeBinary(path: string, data: Buffer): void;
|
|
21
21
|
/** Removes a file. Throws if the file does not exist or cannot be removed. */
|
|
22
22
|
export declare function removeFile(path: string): void;
|
|
23
|
+
/** Recursively removes a directory and its contents. No-op if it does not exist. */
|
|
24
|
+
export declare function removeDir(path: string): void;
|
|
23
25
|
/** Canonicalizes a task or flow name into its registry key form: trimmed, lowercased, forward-slash separated, no leading slash. */
|
|
24
26
|
export declare function normalizePath(name: string): string;
|
|
25
27
|
/** Returns true if the path exists and matches the given kind (`any`, `file`, or `dir`). */
|
package/lib/core/file.js
CHANGED
|
@@ -55,6 +55,10 @@ export function writeBinary(path, data) {
|
|
|
55
55
|
export function removeFile(path) {
|
|
56
56
|
rmSync(path);
|
|
57
57
|
}
|
|
58
|
+
/** Recursively removes a directory and its contents. No-op if it does not exist. */
|
|
59
|
+
export function removeDir(path) {
|
|
60
|
+
rmSync(path, { recursive: true, force: true });
|
|
61
|
+
}
|
|
58
62
|
/** Canonicalizes a task or flow name into its registry key form: trimmed, lowercased, forward-slash separated, no leading slash. */
|
|
59
63
|
export function normalizePath(name) {
|
|
60
64
|
return name.trim().toLowerCase().replaceAll('\\', '/').replace(/^\/+/, '');
|
package/lib/core/file.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/core/file.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EACL,UAAU,EACV,SAAS,EACT,WAAW,EACX,YAAY,EACZ,MAAM,EACN,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEpD,qBAAqB;AAErB,yDAAyD;AACzD,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,SAAS,CAAC,IAAY;IACpC,SAAS,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,OAAiC;IACrE,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,CAAa,CAAC;AAChD,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,QAAQ,CAAI,IAAY;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAM,CAAC;AACrD,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACrD,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACxC,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,IAAa;IACnD,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAAY;IACpD,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC5B,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,oIAAoI;AACpI,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,oBAAoB;AAEpB,4FAA4F;AAC5F,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,IAA4B;IACnE,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,OAAe;IAClC,MAAM,OAAO,GAAG,OAAO;SACpB,OAAO,CAAC,mBAAmB,EAAE,MAAM,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;SACpB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvB,OAAO,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,GAAW,EAAE,KAAa,EAAE,SAAkB,EAAE,QAAiB;IAC3F,IAAI,OAAO,CAAC;IACZ,IAAI,CAAC;QACH,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,SAAS,EAAE,CAAC;gBACd,4CAA4C;gBAC5C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3F,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC5D,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,iFAAiF;AACjF,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,GAAW,EACX,UAA+E,EAAE;IAEjF,MAAM,EAAE,OAAO,GAAG,GAAG,EAAE,SAAS,GAAG,IAAI,EAAE,cAAc,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAC3E,OAAO,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;AAC5E,CAAC;AAED,sDAAsD;AACtD,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,GAAW;IACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CACH,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
|
|
1
|
+
{"version":3,"file":"file.js","sourceRoot":"","sources":["../../src/core/file.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,4 @@ export type InitResult = {
|
|
|
8
8
|
created: string[];
|
|
9
9
|
skipped: string[];
|
|
10
10
|
};
|
|
11
|
-
export declare function initProject(options: InitOptions, projectDir: string): InitResult;
|
|
11
|
+
export declare function initProject(options: InitOptions, projectDir: string, readmeExisted?: boolean): InitResult;
|
package/lib/core/project.init.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { join } from 'node:path';
|
|
15
15
|
import { fileURLToPath } from 'node:url';
|
|
16
|
-
import { fileExists, ensureDir, readText, writeText, writeJson, appendText,
|
|
16
|
+
import { fileExists, ensureDir, readText, writeText, writeJson, appendText, removeDir } from './file.js';
|
|
17
17
|
const templateDir = join(fileURLToPath(import.meta.url), '..', 'templates');
|
|
18
18
|
function writeIfAbsent(absPath, relPath, content, result) {
|
|
19
19
|
if (fileExists(absPath)) {
|
|
@@ -101,17 +101,25 @@ function buildOrgDefs(packageName) {
|
|
|
101
101
|
release: { orgName: label('release'), edition: 'Enterprise', settings: commonSettings },
|
|
102
102
|
};
|
|
103
103
|
}
|
|
104
|
-
export function initProject(options, projectDir) {
|
|
104
|
+
export function initProject(options, projectDir, readmeExisted = false) {
|
|
105
105
|
const result = { created: [], skipped: [] };
|
|
106
106
|
const orgsDir = join(projectDir, '.ship', 'orgs');
|
|
107
107
|
ensureDir(orgsDir);
|
|
108
108
|
patchSfdxProjectJson(projectDir, options);
|
|
109
109
|
appendToGitignore(projectDir);
|
|
110
110
|
appendToForceignore(projectDir);
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
111
|
+
// project:generate always writes a README, so writeIfAbsent can't tell ours from the user's.
|
|
112
|
+
// readmeExisted reflects whether one was present *before* generate ran: if not, the only
|
|
113
|
+
// README is generate's boilerplate, so replace it with ship's; otherwise leave the user's.
|
|
114
|
+
if (readmeExisted) {
|
|
115
|
+
result.skipped.push('README.md');
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
writeText(join(projectDir, 'README.md'), readText(join(templateDir, 'README.md')));
|
|
119
|
+
result.created.push('README.md');
|
|
120
|
+
}
|
|
121
|
+
// project:generate scaffolds config/project-scratch-def.json; ship manages orgs via .ship/orgs/ instead.
|
|
122
|
+
removeDir(join(projectDir, 'config'));
|
|
115
123
|
writeIfAbsent(join(projectDir, 'ship.yml'), 'ship.yml', buildShipYml(options), result);
|
|
116
124
|
for (const [name, def] of Object.entries(buildOrgDefs(options.packageName))) {
|
|
117
125
|
writeIfAbsent(join(orgsDir, `${name}.json`), `.ship/orgs/${name}.json`, JSON.stringify(def, null, 4) + '\n', result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.init.js","sourceRoot":"","sources":["../../src/core/project.init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"project.init.js","sourceRoot":"","sources":["../../src/core/project.init.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,22 @@ Initialize a new plugin-ship project in the current directory.
|
|
|
6
6
|
|
|
7
7
|
Runs sf project generate to scaffold a standard Salesforce project, then patches sfdx-project.json with 2GP settings and writes ship.yml and .ship/orgs scratch org definitions. Existing files are left untouched.
|
|
8
8
|
|
|
9
|
+
# flags.name.summary
|
|
10
|
+
|
|
11
|
+
Name of the package. Prompted for if not provided.
|
|
12
|
+
|
|
13
|
+
# flags.namespace.summary
|
|
14
|
+
|
|
15
|
+
Namespace for the package. Prompted for if not provided.
|
|
16
|
+
|
|
17
|
+
# flags.package-type.summary
|
|
18
|
+
|
|
19
|
+
Package type: Managed or Unlocked. Prompted for if not provided.
|
|
20
|
+
|
|
21
|
+
# flags.repo-url.summary
|
|
22
|
+
|
|
23
|
+
GitHub repository URL. Prompted for if not provided.
|
|
24
|
+
|
|
9
25
|
# flags.template.summary
|
|
10
26
|
|
|
11
27
|
Template to use for project generation.
|
package/oclif.manifest.json
CHANGED
|
@@ -1,5 +1,238 @@
|
|
|
1
1
|
{
|
|
2
2
|
"commands": {
|
|
3
|
+
"ship:flow:eject": {
|
|
4
|
+
"aliases": [],
|
|
5
|
+
"args": {
|
|
6
|
+
"flowName": {
|
|
7
|
+
"description": "The name of the built-in flow to eject.",
|
|
8
|
+
"name": "flowName",
|
|
9
|
+
"required": true
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"description": "Copies a built-in flow definition into your project's .ship/flows/ directory so you can modify it. Fails if the flow is not a built-in, or if the destination file already exists.",
|
|
13
|
+
"examples": [
|
|
14
|
+
"Eject the ci flow into your project:\n<%= config.bin %> <%= command.id %> ci"
|
|
15
|
+
],
|
|
16
|
+
"flags": {
|
|
17
|
+
"flags-dir": {
|
|
18
|
+
"helpGroup": "GLOBAL",
|
|
19
|
+
"name": "flags-dir",
|
|
20
|
+
"summary": "Import flag values from a directory.",
|
|
21
|
+
"hasDynamicHelp": false,
|
|
22
|
+
"multiple": false,
|
|
23
|
+
"type": "option"
|
|
24
|
+
},
|
|
25
|
+
"config": {
|
|
26
|
+
"name": "config",
|
|
27
|
+
"summary": "Path to the ship.yml config file.",
|
|
28
|
+
"default": "ship.yml",
|
|
29
|
+
"hasDynamicHelp": false,
|
|
30
|
+
"multiple": false,
|
|
31
|
+
"type": "option"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"hasDynamicHelp": false,
|
|
35
|
+
"hiddenAliases": [],
|
|
36
|
+
"id": "ship:flow:eject",
|
|
37
|
+
"pluginAlias": "@sfship/plugin-ship",
|
|
38
|
+
"pluginName": "@sfship/plugin-ship",
|
|
39
|
+
"pluginType": "core",
|
|
40
|
+
"strict": true,
|
|
41
|
+
"summary": "Copy a standard flow into your project for customization.",
|
|
42
|
+
"enableJsonFlag": false,
|
|
43
|
+
"isESM": true,
|
|
44
|
+
"relativePath": [
|
|
45
|
+
"lib",
|
|
46
|
+
"commands",
|
|
47
|
+
"ship",
|
|
48
|
+
"flow",
|
|
49
|
+
"eject.js"
|
|
50
|
+
],
|
|
51
|
+
"aliasPermutations": [],
|
|
52
|
+
"permutations": [
|
|
53
|
+
"ship:flow:eject",
|
|
54
|
+
"flow:ship:eject",
|
|
55
|
+
"flow:eject:ship",
|
|
56
|
+
"ship:eject:flow",
|
|
57
|
+
"eject:ship:flow",
|
|
58
|
+
"eject:flow:ship"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"ship:flow:info": {
|
|
62
|
+
"aliases": [],
|
|
63
|
+
"args": {
|
|
64
|
+
"flowName": {
|
|
65
|
+
"description": "The name of the flow to inspect.",
|
|
66
|
+
"name": "flowName",
|
|
67
|
+
"required": true
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"description": "Displays the description, accepted params, and step-by-step breakdown for a named flow.",
|
|
71
|
+
"examples": [
|
|
72
|
+
"Show details for a flow:\n<%= config.bin %> <%= command.id %> ci"
|
|
73
|
+
],
|
|
74
|
+
"flags": {
|
|
75
|
+
"flags-dir": {
|
|
76
|
+
"helpGroup": "GLOBAL",
|
|
77
|
+
"name": "flags-dir",
|
|
78
|
+
"summary": "Import flag values from a directory.",
|
|
79
|
+
"hasDynamicHelp": false,
|
|
80
|
+
"multiple": false,
|
|
81
|
+
"type": "option"
|
|
82
|
+
},
|
|
83
|
+
"config": {
|
|
84
|
+
"name": "config",
|
|
85
|
+
"summary": "Path to the ship.yml config file.",
|
|
86
|
+
"default": "ship.yml",
|
|
87
|
+
"hasDynamicHelp": false,
|
|
88
|
+
"multiple": false,
|
|
89
|
+
"type": "option"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"hasDynamicHelp": false,
|
|
93
|
+
"hiddenAliases": [],
|
|
94
|
+
"id": "ship:flow:info",
|
|
95
|
+
"pluginAlias": "@sfship/plugin-ship",
|
|
96
|
+
"pluginName": "@sfship/plugin-ship",
|
|
97
|
+
"pluginType": "core",
|
|
98
|
+
"strict": true,
|
|
99
|
+
"summary": "Show details for a flow.",
|
|
100
|
+
"enableJsonFlag": false,
|
|
101
|
+
"isESM": true,
|
|
102
|
+
"relativePath": [
|
|
103
|
+
"lib",
|
|
104
|
+
"commands",
|
|
105
|
+
"ship",
|
|
106
|
+
"flow",
|
|
107
|
+
"info.js"
|
|
108
|
+
],
|
|
109
|
+
"aliasPermutations": [],
|
|
110
|
+
"permutations": [
|
|
111
|
+
"ship:flow:info",
|
|
112
|
+
"flow:ship:info",
|
|
113
|
+
"flow:info:ship",
|
|
114
|
+
"ship:info:flow",
|
|
115
|
+
"info:ship:flow",
|
|
116
|
+
"info:flow:ship"
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
"ship:flow:list": {
|
|
120
|
+
"aliases": [],
|
|
121
|
+
"args": {},
|
|
122
|
+
"description": "Reads ship.yml and prints the names of all defined flows.",
|
|
123
|
+
"examples": [
|
|
124
|
+
"<%= config.bin %> <%= command.id %>"
|
|
125
|
+
],
|
|
126
|
+
"flags": {
|
|
127
|
+
"flags-dir": {
|
|
128
|
+
"helpGroup": "GLOBAL",
|
|
129
|
+
"name": "flags-dir",
|
|
130
|
+
"summary": "Import flag values from a directory.",
|
|
131
|
+
"hasDynamicHelp": false,
|
|
132
|
+
"multiple": false,
|
|
133
|
+
"type": "option"
|
|
134
|
+
},
|
|
135
|
+
"config": {
|
|
136
|
+
"name": "config",
|
|
137
|
+
"summary": "Path to the ship.yml config file.",
|
|
138
|
+
"default": "ship.yml",
|
|
139
|
+
"hasDynamicHelp": false,
|
|
140
|
+
"multiple": false,
|
|
141
|
+
"type": "option"
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"hasDynamicHelp": false,
|
|
145
|
+
"hiddenAliases": [],
|
|
146
|
+
"id": "ship:flow:list",
|
|
147
|
+
"pluginAlias": "@sfship/plugin-ship",
|
|
148
|
+
"pluginName": "@sfship/plugin-ship",
|
|
149
|
+
"pluginType": "core",
|
|
150
|
+
"strict": true,
|
|
151
|
+
"summary": "List all flows defined in ship.yml.",
|
|
152
|
+
"enableJsonFlag": false,
|
|
153
|
+
"isESM": true,
|
|
154
|
+
"relativePath": [
|
|
155
|
+
"lib",
|
|
156
|
+
"commands",
|
|
157
|
+
"ship",
|
|
158
|
+
"flow",
|
|
159
|
+
"list.js"
|
|
160
|
+
],
|
|
161
|
+
"aliasPermutations": [],
|
|
162
|
+
"permutations": [
|
|
163
|
+
"ship:flow:list",
|
|
164
|
+
"flow:ship:list",
|
|
165
|
+
"flow:list:ship",
|
|
166
|
+
"ship:list:flow",
|
|
167
|
+
"list:ship:flow",
|
|
168
|
+
"list:flow:ship"
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"ship:flow:run": {
|
|
172
|
+
"aliases": [],
|
|
173
|
+
"args": {
|
|
174
|
+
"flowName": {
|
|
175
|
+
"description": "Kebab-cased name of the flow to run, found in `ship.yml` such as `deploy-dev-org`.",
|
|
176
|
+
"name": "flowName",
|
|
177
|
+
"required": true
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"description": "Reads ship.yml from the current directory, finds the named flow, and executes its tasks in sequence.",
|
|
181
|
+
"examples": [
|
|
182
|
+
"<%= config.bin %> <%= command.id %> my_flow"
|
|
183
|
+
],
|
|
184
|
+
"flags": {
|
|
185
|
+
"flags-dir": {
|
|
186
|
+
"helpGroup": "GLOBAL",
|
|
187
|
+
"name": "flags-dir",
|
|
188
|
+
"summary": "Import flag values from a directory.",
|
|
189
|
+
"hasDynamicHelp": false,
|
|
190
|
+
"multiple": false,
|
|
191
|
+
"type": "option"
|
|
192
|
+
},
|
|
193
|
+
"config": {
|
|
194
|
+
"name": "config",
|
|
195
|
+
"summary": "Path to the ship.yml config file.",
|
|
196
|
+
"default": "ship.yml",
|
|
197
|
+
"hasDynamicHelp": false,
|
|
198
|
+
"multiple": false,
|
|
199
|
+
"type": "option"
|
|
200
|
+
},
|
|
201
|
+
"param": {
|
|
202
|
+
"name": "param",
|
|
203
|
+
"summary": "Flow parameter in key=value format.",
|
|
204
|
+
"hasDynamicHelp": false,
|
|
205
|
+
"multiple": true,
|
|
206
|
+
"type": "option"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
"hasDynamicHelp": false,
|
|
210
|
+
"hiddenAliases": [],
|
|
211
|
+
"id": "ship:flow:run",
|
|
212
|
+
"pluginAlias": "@sfship/plugin-ship",
|
|
213
|
+
"pluginName": "@sfship/plugin-ship",
|
|
214
|
+
"pluginType": "core",
|
|
215
|
+
"strict": true,
|
|
216
|
+
"summary": "Run a flow defined in ship.yml.",
|
|
217
|
+
"enableJsonFlag": false,
|
|
218
|
+
"isESM": true,
|
|
219
|
+
"relativePath": [
|
|
220
|
+
"lib",
|
|
221
|
+
"commands",
|
|
222
|
+
"ship",
|
|
223
|
+
"flow",
|
|
224
|
+
"run.js"
|
|
225
|
+
],
|
|
226
|
+
"aliasPermutations": [],
|
|
227
|
+
"permutations": [
|
|
228
|
+
"ship:flow:run",
|
|
229
|
+
"flow:ship:run",
|
|
230
|
+
"flow:run:ship",
|
|
231
|
+
"ship:run:flow",
|
|
232
|
+
"run:ship:flow",
|
|
233
|
+
"run:flow:ship"
|
|
234
|
+
]
|
|
235
|
+
},
|
|
3
236
|
"ship:project:init": {
|
|
4
237
|
"aliases": [],
|
|
5
238
|
"args": {},
|
|
@@ -16,6 +249,38 @@
|
|
|
16
249
|
"multiple": false,
|
|
17
250
|
"type": "option"
|
|
18
251
|
},
|
|
252
|
+
"name": {
|
|
253
|
+
"name": "name",
|
|
254
|
+
"summary": "Name of the package. Prompted for if not provided.",
|
|
255
|
+
"hasDynamicHelp": false,
|
|
256
|
+
"multiple": false,
|
|
257
|
+
"type": "option"
|
|
258
|
+
},
|
|
259
|
+
"namespace": {
|
|
260
|
+
"name": "namespace",
|
|
261
|
+
"summary": "Namespace for the package. Prompted for if not provided.",
|
|
262
|
+
"hasDynamicHelp": false,
|
|
263
|
+
"multiple": false,
|
|
264
|
+
"type": "option"
|
|
265
|
+
},
|
|
266
|
+
"package-type": {
|
|
267
|
+
"name": "package-type",
|
|
268
|
+
"summary": "Package type: Managed or Unlocked. Prompted for if not provided.",
|
|
269
|
+
"hasDynamicHelp": false,
|
|
270
|
+
"multiple": false,
|
|
271
|
+
"options": [
|
|
272
|
+
"Managed",
|
|
273
|
+
"Unlocked"
|
|
274
|
+
],
|
|
275
|
+
"type": "option"
|
|
276
|
+
},
|
|
277
|
+
"repo-url": {
|
|
278
|
+
"name": "repo-url",
|
|
279
|
+
"summary": "GitHub repository URL. Prompted for if not provided.",
|
|
280
|
+
"hasDynamicHelp": false,
|
|
281
|
+
"multiple": false,
|
|
282
|
+
"type": "option"
|
|
283
|
+
},
|
|
19
284
|
"template": {
|
|
20
285
|
"name": "template",
|
|
21
286
|
"summary": "Template to use for project generation.",
|
|
@@ -397,239 +662,6 @@
|
|
|
397
662
|
"run:task:ship"
|
|
398
663
|
]
|
|
399
664
|
},
|
|
400
|
-
"ship:flow:eject": {
|
|
401
|
-
"aliases": [],
|
|
402
|
-
"args": {
|
|
403
|
-
"flowName": {
|
|
404
|
-
"description": "The name of the built-in flow to eject.",
|
|
405
|
-
"name": "flowName",
|
|
406
|
-
"required": true
|
|
407
|
-
}
|
|
408
|
-
},
|
|
409
|
-
"description": "Copies a built-in flow definition into your project's .ship/flows/ directory so you can modify it. Fails if the flow is not a built-in, or if the destination file already exists.",
|
|
410
|
-
"examples": [
|
|
411
|
-
"Eject the ci flow into your project:\n<%= config.bin %> <%= command.id %> ci"
|
|
412
|
-
],
|
|
413
|
-
"flags": {
|
|
414
|
-
"flags-dir": {
|
|
415
|
-
"helpGroup": "GLOBAL",
|
|
416
|
-
"name": "flags-dir",
|
|
417
|
-
"summary": "Import flag values from a directory.",
|
|
418
|
-
"hasDynamicHelp": false,
|
|
419
|
-
"multiple": false,
|
|
420
|
-
"type": "option"
|
|
421
|
-
},
|
|
422
|
-
"config": {
|
|
423
|
-
"name": "config",
|
|
424
|
-
"summary": "Path to the ship.yml config file.",
|
|
425
|
-
"default": "ship.yml",
|
|
426
|
-
"hasDynamicHelp": false,
|
|
427
|
-
"multiple": false,
|
|
428
|
-
"type": "option"
|
|
429
|
-
}
|
|
430
|
-
},
|
|
431
|
-
"hasDynamicHelp": false,
|
|
432
|
-
"hiddenAliases": [],
|
|
433
|
-
"id": "ship:flow:eject",
|
|
434
|
-
"pluginAlias": "@sfship/plugin-ship",
|
|
435
|
-
"pluginName": "@sfship/plugin-ship",
|
|
436
|
-
"pluginType": "core",
|
|
437
|
-
"strict": true,
|
|
438
|
-
"summary": "Copy a standard flow into your project for customization.",
|
|
439
|
-
"enableJsonFlag": false,
|
|
440
|
-
"isESM": true,
|
|
441
|
-
"relativePath": [
|
|
442
|
-
"lib",
|
|
443
|
-
"commands",
|
|
444
|
-
"ship",
|
|
445
|
-
"flow",
|
|
446
|
-
"eject.js"
|
|
447
|
-
],
|
|
448
|
-
"aliasPermutations": [],
|
|
449
|
-
"permutations": [
|
|
450
|
-
"ship:flow:eject",
|
|
451
|
-
"flow:ship:eject",
|
|
452
|
-
"flow:eject:ship",
|
|
453
|
-
"ship:eject:flow",
|
|
454
|
-
"eject:ship:flow",
|
|
455
|
-
"eject:flow:ship"
|
|
456
|
-
]
|
|
457
|
-
},
|
|
458
|
-
"ship:flow:info": {
|
|
459
|
-
"aliases": [],
|
|
460
|
-
"args": {
|
|
461
|
-
"flowName": {
|
|
462
|
-
"description": "The name of the flow to inspect.",
|
|
463
|
-
"name": "flowName",
|
|
464
|
-
"required": true
|
|
465
|
-
}
|
|
466
|
-
},
|
|
467
|
-
"description": "Displays the description, accepted params, and step-by-step breakdown for a named flow.",
|
|
468
|
-
"examples": [
|
|
469
|
-
"Show details for a flow:\n<%= config.bin %> <%= command.id %> ci"
|
|
470
|
-
],
|
|
471
|
-
"flags": {
|
|
472
|
-
"flags-dir": {
|
|
473
|
-
"helpGroup": "GLOBAL",
|
|
474
|
-
"name": "flags-dir",
|
|
475
|
-
"summary": "Import flag values from a directory.",
|
|
476
|
-
"hasDynamicHelp": false,
|
|
477
|
-
"multiple": false,
|
|
478
|
-
"type": "option"
|
|
479
|
-
},
|
|
480
|
-
"config": {
|
|
481
|
-
"name": "config",
|
|
482
|
-
"summary": "Path to the ship.yml config file.",
|
|
483
|
-
"default": "ship.yml",
|
|
484
|
-
"hasDynamicHelp": false,
|
|
485
|
-
"multiple": false,
|
|
486
|
-
"type": "option"
|
|
487
|
-
}
|
|
488
|
-
},
|
|
489
|
-
"hasDynamicHelp": false,
|
|
490
|
-
"hiddenAliases": [],
|
|
491
|
-
"id": "ship:flow:info",
|
|
492
|
-
"pluginAlias": "@sfship/plugin-ship",
|
|
493
|
-
"pluginName": "@sfship/plugin-ship",
|
|
494
|
-
"pluginType": "core",
|
|
495
|
-
"strict": true,
|
|
496
|
-
"summary": "Show details for a flow.",
|
|
497
|
-
"enableJsonFlag": false,
|
|
498
|
-
"isESM": true,
|
|
499
|
-
"relativePath": [
|
|
500
|
-
"lib",
|
|
501
|
-
"commands",
|
|
502
|
-
"ship",
|
|
503
|
-
"flow",
|
|
504
|
-
"info.js"
|
|
505
|
-
],
|
|
506
|
-
"aliasPermutations": [],
|
|
507
|
-
"permutations": [
|
|
508
|
-
"ship:flow:info",
|
|
509
|
-
"flow:ship:info",
|
|
510
|
-
"flow:info:ship",
|
|
511
|
-
"ship:info:flow",
|
|
512
|
-
"info:ship:flow",
|
|
513
|
-
"info:flow:ship"
|
|
514
|
-
]
|
|
515
|
-
},
|
|
516
|
-
"ship:flow:list": {
|
|
517
|
-
"aliases": [],
|
|
518
|
-
"args": {},
|
|
519
|
-
"description": "Reads ship.yml and prints the names of all defined flows.",
|
|
520
|
-
"examples": [
|
|
521
|
-
"<%= config.bin %> <%= command.id %>"
|
|
522
|
-
],
|
|
523
|
-
"flags": {
|
|
524
|
-
"flags-dir": {
|
|
525
|
-
"helpGroup": "GLOBAL",
|
|
526
|
-
"name": "flags-dir",
|
|
527
|
-
"summary": "Import flag values from a directory.",
|
|
528
|
-
"hasDynamicHelp": false,
|
|
529
|
-
"multiple": false,
|
|
530
|
-
"type": "option"
|
|
531
|
-
},
|
|
532
|
-
"config": {
|
|
533
|
-
"name": "config",
|
|
534
|
-
"summary": "Path to the ship.yml config file.",
|
|
535
|
-
"default": "ship.yml",
|
|
536
|
-
"hasDynamicHelp": false,
|
|
537
|
-
"multiple": false,
|
|
538
|
-
"type": "option"
|
|
539
|
-
}
|
|
540
|
-
},
|
|
541
|
-
"hasDynamicHelp": false,
|
|
542
|
-
"hiddenAliases": [],
|
|
543
|
-
"id": "ship:flow:list",
|
|
544
|
-
"pluginAlias": "@sfship/plugin-ship",
|
|
545
|
-
"pluginName": "@sfship/plugin-ship",
|
|
546
|
-
"pluginType": "core",
|
|
547
|
-
"strict": true,
|
|
548
|
-
"summary": "List all flows defined in ship.yml.",
|
|
549
|
-
"enableJsonFlag": false,
|
|
550
|
-
"isESM": true,
|
|
551
|
-
"relativePath": [
|
|
552
|
-
"lib",
|
|
553
|
-
"commands",
|
|
554
|
-
"ship",
|
|
555
|
-
"flow",
|
|
556
|
-
"list.js"
|
|
557
|
-
],
|
|
558
|
-
"aliasPermutations": [],
|
|
559
|
-
"permutations": [
|
|
560
|
-
"ship:flow:list",
|
|
561
|
-
"flow:ship:list",
|
|
562
|
-
"flow:list:ship",
|
|
563
|
-
"ship:list:flow",
|
|
564
|
-
"list:ship:flow",
|
|
565
|
-
"list:flow:ship"
|
|
566
|
-
]
|
|
567
|
-
},
|
|
568
|
-
"ship:flow:run": {
|
|
569
|
-
"aliases": [],
|
|
570
|
-
"args": {
|
|
571
|
-
"flowName": {
|
|
572
|
-
"description": "Kebab-cased name of the flow to run, found in `ship.yml` such as `deploy-dev-org`.",
|
|
573
|
-
"name": "flowName",
|
|
574
|
-
"required": true
|
|
575
|
-
}
|
|
576
|
-
},
|
|
577
|
-
"description": "Reads ship.yml from the current directory, finds the named flow, and executes its tasks in sequence.",
|
|
578
|
-
"examples": [
|
|
579
|
-
"<%= config.bin %> <%= command.id %> my_flow"
|
|
580
|
-
],
|
|
581
|
-
"flags": {
|
|
582
|
-
"flags-dir": {
|
|
583
|
-
"helpGroup": "GLOBAL",
|
|
584
|
-
"name": "flags-dir",
|
|
585
|
-
"summary": "Import flag values from a directory.",
|
|
586
|
-
"hasDynamicHelp": false,
|
|
587
|
-
"multiple": false,
|
|
588
|
-
"type": "option"
|
|
589
|
-
},
|
|
590
|
-
"config": {
|
|
591
|
-
"name": "config",
|
|
592
|
-
"summary": "Path to the ship.yml config file.",
|
|
593
|
-
"default": "ship.yml",
|
|
594
|
-
"hasDynamicHelp": false,
|
|
595
|
-
"multiple": false,
|
|
596
|
-
"type": "option"
|
|
597
|
-
},
|
|
598
|
-
"param": {
|
|
599
|
-
"name": "param",
|
|
600
|
-
"summary": "Flow parameter in key=value format.",
|
|
601
|
-
"hasDynamicHelp": false,
|
|
602
|
-
"multiple": true,
|
|
603
|
-
"type": "option"
|
|
604
|
-
}
|
|
605
|
-
},
|
|
606
|
-
"hasDynamicHelp": false,
|
|
607
|
-
"hiddenAliases": [],
|
|
608
|
-
"id": "ship:flow:run",
|
|
609
|
-
"pluginAlias": "@sfship/plugin-ship",
|
|
610
|
-
"pluginName": "@sfship/plugin-ship",
|
|
611
|
-
"pluginType": "core",
|
|
612
|
-
"strict": true,
|
|
613
|
-
"summary": "Run a flow defined in ship.yml.",
|
|
614
|
-
"enableJsonFlag": false,
|
|
615
|
-
"isESM": true,
|
|
616
|
-
"relativePath": [
|
|
617
|
-
"lib",
|
|
618
|
-
"commands",
|
|
619
|
-
"ship",
|
|
620
|
-
"flow",
|
|
621
|
-
"run.js"
|
|
622
|
-
],
|
|
623
|
-
"aliasPermutations": [],
|
|
624
|
-
"permutations": [
|
|
625
|
-
"ship:flow:run",
|
|
626
|
-
"flow:ship:run",
|
|
627
|
-
"flow:run:ship",
|
|
628
|
-
"ship:run:flow",
|
|
629
|
-
"run:ship:flow",
|
|
630
|
-
"run:flow:ship"
|
|
631
|
-
]
|
|
632
|
-
},
|
|
633
665
|
"ship:service:connect:github": {
|
|
634
666
|
"aliases": [],
|
|
635
667
|
"args": {},
|
|
@@ -703,5 +735,5 @@
|
|
|
703
735
|
]
|
|
704
736
|
}
|
|
705
737
|
},
|
|
706
|
-
"version": "1.0.0-beta.
|
|
738
|
+
"version": "1.0.0-beta.4"
|
|
707
739
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sfship/plugin-ship",
|
|
3
3
|
"description": "Salesforce CLI plugin for managing the full development and release lifecycle of second-generation managed and unlocked packages.",
|
|
4
|
-
"version": "1.0.0-beta.
|
|
4
|
+
"version": "1.0.0-beta.4",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"@inquirer/prompts": "^8.5.2",
|
|
7
7
|
"@napi-rs/keyring": "^1.2.0",
|