@kainoa/simplybuild 0.1.1 → 0.1.3
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 +5 -1
- package/dist/cli.js +1 -108
- package/dist/cli.js.map +1 -1
- package/dist/cliOptions.d.ts +7 -0
- package/dist/cliOptions.js +126 -0
- package/dist/cliOptions.js.map +1 -0
- package/dist/runner/pipelines.js +30 -9
- package/dist/runner/pipelines.js.map +1 -1
- package/package.json +9 -2
package/README.md
CHANGED
|
@@ -18,9 +18,11 @@ Then run:
|
|
|
18
18
|
|
|
19
19
|
```bash
|
|
20
20
|
simplybuild --help
|
|
21
|
+
sb --help
|
|
22
|
+
simplebuild --help
|
|
21
23
|
```
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
Aliases that resolve to the same CLI: `sb`, `simplebuild`, `simple-build`, `simply-build`, `symplebuild`, `symplybuild`, `symple-build`, and `symply-build`.
|
|
24
26
|
|
|
25
27
|
## Usage
|
|
26
28
|
|
|
@@ -59,3 +61,5 @@ Run from source:
|
|
|
59
61
|
```bash
|
|
60
62
|
node dist/cli.js --help
|
|
61
63
|
```
|
|
64
|
+
|
|
65
|
+
Contributions are welcome. Anyone is free to open a PR on GitHub: https://github.com/notkainoa/SimplyBuild
|
package/dist/cli.js
CHANGED
|
@@ -1,114 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { runSimplyBuild } from "./app/runSimplyBuild.js";
|
|
3
|
+
import { HELP_TEXT, parseCliOptions } from "./cliOptions.js";
|
|
3
4
|
import { UserCancelledError, UserFacingError } from "./types.js";
|
|
4
|
-
const HELP_TEXT = `simplybuild - Smart iOS build/deploy wrapper for xcodebuildmcp
|
|
5
|
-
|
|
6
|
-
Usage:
|
|
7
|
-
simplybuild --help
|
|
8
|
-
sb --help
|
|
9
|
-
simplybuild --device "iPhone 15"
|
|
10
|
-
simplybuild --scheme MyApp
|
|
11
|
-
simplybuild --list-devices
|
|
12
|
-
simplybuild --list-projects
|
|
13
|
-
|
|
14
|
-
Options:
|
|
15
|
-
--device <name> Exact target name match (case-insensitive)
|
|
16
|
-
--scheme <scheme> Explicit Xcode scheme
|
|
17
|
-
--list-devices List available physical devices and simulators
|
|
18
|
-
--list-projects List discovered .xcodeproj/.xcworkspace in current directory tree
|
|
19
|
-
--verbose Stream underlying command output
|
|
20
|
-
--help, -h Show this help
|
|
21
|
-
`;
|
|
22
|
-
function requireValue(flag, argv, index) {
|
|
23
|
-
const value = argv[index + 1];
|
|
24
|
-
if (!value || value.startsWith("-")) {
|
|
25
|
-
throw new UserFacingError(`Missing value for ${flag}`);
|
|
26
|
-
}
|
|
27
|
-
return value;
|
|
28
|
-
}
|
|
29
|
-
function parseCliOptions(argv) {
|
|
30
|
-
const options = {
|
|
31
|
-
listDevices: false,
|
|
32
|
-
listProjects: false,
|
|
33
|
-
verbose: false,
|
|
34
|
-
help: false,
|
|
35
|
-
};
|
|
36
|
-
if (argv.length === 0) {
|
|
37
|
-
options.help = true;
|
|
38
|
-
return { options };
|
|
39
|
-
}
|
|
40
|
-
const positional = [];
|
|
41
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
42
|
-
const arg = argv[i];
|
|
43
|
-
switch (arg) {
|
|
44
|
-
case "--help":
|
|
45
|
-
case "--h":
|
|
46
|
-
case "-h":
|
|
47
|
-
options.help = true;
|
|
48
|
-
break;
|
|
49
|
-
case "--verbose":
|
|
50
|
-
options.verbose = true;
|
|
51
|
-
break;
|
|
52
|
-
case "--list-devices":
|
|
53
|
-
options.listDevices = true;
|
|
54
|
-
break;
|
|
55
|
-
case "--list-projects":
|
|
56
|
-
options.listProjects = true;
|
|
57
|
-
break;
|
|
58
|
-
case "--device":
|
|
59
|
-
options.device = requireValue("--device", argv, i);
|
|
60
|
-
i += 1;
|
|
61
|
-
break;
|
|
62
|
-
case "--scheme":
|
|
63
|
-
options.scheme = requireValue("--scheme", argv, i);
|
|
64
|
-
i += 1;
|
|
65
|
-
break;
|
|
66
|
-
default:
|
|
67
|
-
if (arg.startsWith("-")) {
|
|
68
|
-
return {
|
|
69
|
-
options: {
|
|
70
|
-
...options,
|
|
71
|
-
help: true,
|
|
72
|
-
},
|
|
73
|
-
parseError: arg === "--watch"
|
|
74
|
-
? "--watch is intentionally not implemented in simplybuild v1."
|
|
75
|
-
: `Unknown option: ${arg}`,
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
positional.push(arg);
|
|
79
|
-
break;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
const isHelpAlias = positional.length === 1 &&
|
|
83
|
-
positional[0].toLowerCase() === "help" &&
|
|
84
|
-
!options.device &&
|
|
85
|
-
!options.scheme &&
|
|
86
|
-
!options.listDevices &&
|
|
87
|
-
!options.listProjects;
|
|
88
|
-
if (isHelpAlias) {
|
|
89
|
-
options.help = true;
|
|
90
|
-
return { options };
|
|
91
|
-
}
|
|
92
|
-
if (positional.length > 0) {
|
|
93
|
-
return {
|
|
94
|
-
options: {
|
|
95
|
-
...options,
|
|
96
|
-
help: true,
|
|
97
|
-
},
|
|
98
|
-
parseError: `Unknown command: ${positional.join(" ")}`,
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
if (options.listDevices && options.listProjects) {
|
|
102
|
-
return {
|
|
103
|
-
options: {
|
|
104
|
-
...options,
|
|
105
|
-
help: true,
|
|
106
|
-
},
|
|
107
|
-
parseError: "Use either --list-devices or --list-projects, not both.",
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
return { options };
|
|
111
|
-
}
|
|
112
5
|
async function main() {
|
|
113
6
|
const argv = process.argv.slice(2);
|
|
114
7
|
const { options, parseError } = parseCliOptions(argv);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEjE,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAEtD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,UAAU,UAAU,EAAE,CAAC,CAAC;YACtC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACvB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvB,OAAO;IACT,CAAC;IAED,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC;QACvB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CliOptions } from "./types.js";
|
|
2
|
+
export declare const HELP_TEXT = "simplybuild - Smart iOS build/deploy wrapper for xcodebuildmcp\n\nUsage:\n simplybuild --help\n sb --help\n simplebuild --help\n simplybuild \"screenager\"\n simplybuild --device \"iPhone 15\"\n simplybuild --scheme MyApp\n simplybuild --list-devices\n simplybuild --list-projects\n\nOptions:\n --device <name> Exact target name match (case-insensitive)\n --scheme <scheme> Explicit Xcode scheme\n --list-devices List available physical devices and simulators\n --list-projects List discovered .xcodeproj/.xcworkspace in current directory tree\n --verbose Stream underlying command output\n --help, help Show this help\n --h, -h, -help, h Additional help aliases\n\nAliases:\n simplebuild, simple-build, simply-build\n symplebuild, symplybuild, symple-build, symply-build\n";
|
|
3
|
+
export interface ParsedCliOptions {
|
|
4
|
+
options: CliOptions;
|
|
5
|
+
parseError?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function parseCliOptions(argv: string[]): ParsedCliOptions;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { UserFacingError } from "./types.js";
|
|
2
|
+
export const HELP_TEXT = `simplybuild - Smart iOS build/deploy wrapper for xcodebuildmcp
|
|
3
|
+
|
|
4
|
+
Usage:
|
|
5
|
+
simplybuild --help
|
|
6
|
+
sb --help
|
|
7
|
+
simplebuild --help
|
|
8
|
+
simplybuild "screenager"
|
|
9
|
+
simplybuild --device "iPhone 15"
|
|
10
|
+
simplybuild --scheme MyApp
|
|
11
|
+
simplybuild --list-devices
|
|
12
|
+
simplybuild --list-projects
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--device <name> Exact target name match (case-insensitive)
|
|
16
|
+
--scheme <scheme> Explicit Xcode scheme
|
|
17
|
+
--list-devices List available physical devices and simulators
|
|
18
|
+
--list-projects List discovered .xcodeproj/.xcworkspace in current directory tree
|
|
19
|
+
--verbose Stream underlying command output
|
|
20
|
+
--help, help Show this help
|
|
21
|
+
--h, -h, -help, h Additional help aliases
|
|
22
|
+
|
|
23
|
+
Aliases:
|
|
24
|
+
simplebuild, simple-build, simply-build
|
|
25
|
+
symplebuild, symplybuild, symple-build, symply-build
|
|
26
|
+
`;
|
|
27
|
+
function requireValue(flag, argv, index) {
|
|
28
|
+
const value = argv[index + 1];
|
|
29
|
+
if (!value || value.startsWith("-")) {
|
|
30
|
+
throw new UserFacingError(`Missing value for ${flag}`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
export function parseCliOptions(argv) {
|
|
35
|
+
const options = {
|
|
36
|
+
listDevices: false,
|
|
37
|
+
listProjects: false,
|
|
38
|
+
verbose: false,
|
|
39
|
+
help: false,
|
|
40
|
+
};
|
|
41
|
+
const positional = [];
|
|
42
|
+
for (let i = 0; i < argv.length; i += 1) {
|
|
43
|
+
const arg = argv[i];
|
|
44
|
+
switch (arg) {
|
|
45
|
+
case "--help":
|
|
46
|
+
case "-help":
|
|
47
|
+
case "--h":
|
|
48
|
+
case "-h":
|
|
49
|
+
options.help = true;
|
|
50
|
+
break;
|
|
51
|
+
case "--verbose":
|
|
52
|
+
options.verbose = true;
|
|
53
|
+
break;
|
|
54
|
+
case "--list-devices":
|
|
55
|
+
options.listDevices = true;
|
|
56
|
+
break;
|
|
57
|
+
case "--list-projects":
|
|
58
|
+
options.listProjects = true;
|
|
59
|
+
break;
|
|
60
|
+
case "--device":
|
|
61
|
+
options.device = requireValue("--device", argv, i);
|
|
62
|
+
i += 1;
|
|
63
|
+
break;
|
|
64
|
+
case "--scheme":
|
|
65
|
+
options.scheme = requireValue("--scheme", argv, i);
|
|
66
|
+
i += 1;
|
|
67
|
+
break;
|
|
68
|
+
default:
|
|
69
|
+
if (arg.startsWith("-")) {
|
|
70
|
+
return {
|
|
71
|
+
options: {
|
|
72
|
+
...options,
|
|
73
|
+
help: true,
|
|
74
|
+
},
|
|
75
|
+
parseError: arg === "--watch"
|
|
76
|
+
? "--watch is intentionally not implemented in simplybuild v1."
|
|
77
|
+
: `Unknown option: ${arg}`,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
positional.push(arg);
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const isHelpAlias = positional.length === 1 &&
|
|
85
|
+
["help", "h"].includes(positional[0].toLowerCase()) &&
|
|
86
|
+
!options.device &&
|
|
87
|
+
!options.scheme &&
|
|
88
|
+
!options.listDevices &&
|
|
89
|
+
!options.listProjects;
|
|
90
|
+
if (isHelpAlias) {
|
|
91
|
+
options.help = true;
|
|
92
|
+
return { options };
|
|
93
|
+
}
|
|
94
|
+
if (options.listDevices && options.listProjects) {
|
|
95
|
+
return {
|
|
96
|
+
options: {
|
|
97
|
+
...options,
|
|
98
|
+
help: true,
|
|
99
|
+
},
|
|
100
|
+
parseError: "Use either --list-devices or --list-projects, not both.",
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
if (positional.length > 0) {
|
|
104
|
+
if (options.device) {
|
|
105
|
+
return {
|
|
106
|
+
options: {
|
|
107
|
+
...options,
|
|
108
|
+
help: true,
|
|
109
|
+
},
|
|
110
|
+
parseError: "Use either a positional target query or --device, not both.",
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (options.listDevices || options.listProjects) {
|
|
114
|
+
return {
|
|
115
|
+
options: {
|
|
116
|
+
...options,
|
|
117
|
+
help: true,
|
|
118
|
+
},
|
|
119
|
+
parseError: "Positional target queries cannot be combined with list commands.",
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
options.query = positional.join(" ");
|
|
123
|
+
}
|
|
124
|
+
return { options };
|
|
125
|
+
}
|
|
126
|
+
//# sourceMappingURL=cliOptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cliOptions.js","sourceRoot":"","sources":["../src/cliOptions.ts"],"names":[],"mappings":"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"}
|
package/dist/runner/pipelines.js
CHANGED
|
@@ -6,13 +6,34 @@ function containerArgs(container) {
|
|
|
6
6
|
? ["--workspace-path", container.path]
|
|
7
7
|
: ["--project-path", container.path];
|
|
8
8
|
}
|
|
9
|
-
function
|
|
10
|
-
const
|
|
11
|
-
return
|
|
9
|
+
function normalizeFailureBlock(value) {
|
|
10
|
+
const trimmed = value?.trim();
|
|
11
|
+
return trimmed && trimmed.length > 0 ? trimmed : undefined;
|
|
12
|
+
}
|
|
13
|
+
function appendUniqueBlock(blocks, label, value) {
|
|
14
|
+
const normalized = normalizeFailureBlock(value);
|
|
15
|
+
if (!normalized) {
|
|
16
|
+
return;
|
|
17
|
+
}
|
|
18
|
+
const formatted = `${label}:\n${normalized}`;
|
|
19
|
+
if (!blocks.includes(formatted)) {
|
|
20
|
+
blocks.push(formatted);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function formatToolFailureDetails(result) {
|
|
24
|
+
const details = [];
|
|
25
|
+
if (result.code !== 0) {
|
|
26
|
+
details.push(`Exit code: ${result.code}`);
|
|
27
|
+
}
|
|
28
|
+
appendUniqueBlock(details, "Tool response", result.response.text);
|
|
29
|
+
appendUniqueBlock(details, "stderr", result.stderr);
|
|
30
|
+
appendUniqueBlock(details, "stdout", result.stdout);
|
|
31
|
+
return details;
|
|
12
32
|
}
|
|
13
33
|
function assertToolSuccess(result, fallbackLabel) {
|
|
14
34
|
if (!result.ok || result.response.isError) {
|
|
15
|
-
|
|
35
|
+
const details = formatToolFailureDetails(result);
|
|
36
|
+
throw new UserFacingError(fallbackLabel, details.length > 0 ? details : undefined);
|
|
16
37
|
}
|
|
17
38
|
}
|
|
18
39
|
export function parseAppPathFromToolText(text) {
|
|
@@ -91,7 +112,7 @@ export async function runSimulatorPipeline(ctx, prompts, deps = {
|
|
|
91
112
|
await prompts.stage(`Building and launching ${ctx.scheme} on simulator ${ctx.target.name}`, async () => {
|
|
92
113
|
const result = await deps.runTool([
|
|
93
114
|
"simulator",
|
|
94
|
-
"build-run
|
|
115
|
+
"build-and-run",
|
|
95
116
|
...containerArgs(ctx.container),
|
|
96
117
|
"--scheme",
|
|
97
118
|
ctx.scheme,
|
|
@@ -112,11 +133,11 @@ export async function runPhysicalPipeline(ctx, prompts, deps = {
|
|
|
112
133
|
}) {
|
|
113
134
|
const baseArgs = containerArgs(ctx.container);
|
|
114
135
|
await prompts.stage(`Building ${ctx.scheme} for physical device`, async () => {
|
|
115
|
-
const result = await deps.runTool(["device", "build
|
|
136
|
+
const result = await deps.runTool(["device", "build", ...baseArgs, "--scheme", ctx.scheme, "--configuration", "Debug"], { verbose: ctx.verbose });
|
|
116
137
|
assertToolSuccess(result, "Device build failed.");
|
|
117
138
|
});
|
|
118
139
|
const appPath = await prompts.stage("Resolving built app path", async () => {
|
|
119
|
-
const pathResult = await deps.runTool(["device", "get-
|
|
140
|
+
const pathResult = await deps.runTool(["device", "get-app-path", ...baseArgs, "--scheme", ctx.scheme, "--platform", "iOS"], { verbose: false });
|
|
120
141
|
assertToolSuccess(pathResult, "Failed to get built app path.");
|
|
121
142
|
const parsed = parseAppPathFromToolText(pathResult.response.text);
|
|
122
143
|
if (parsed) {
|
|
@@ -136,7 +157,7 @@ export async function runPhysicalPipeline(ctx, prompts, deps = {
|
|
|
136
157
|
await prompts.stage(`Installing app on ${ctx.target.name}`, async () => {
|
|
137
158
|
const installResult = await deps.runTool([
|
|
138
159
|
"device",
|
|
139
|
-
"install
|
|
160
|
+
"install",
|
|
140
161
|
"--device-id",
|
|
141
162
|
ctx.target.id,
|
|
142
163
|
"--app-path",
|
|
@@ -147,7 +168,7 @@ export async function runPhysicalPipeline(ctx, prompts, deps = {
|
|
|
147
168
|
await prompts.stage(`Launching app (${bundleId}) on ${ctx.target.name}`, async () => {
|
|
148
169
|
const launchResult = await deps.runTool([
|
|
149
170
|
"device",
|
|
150
|
-
"launch
|
|
171
|
+
"launch",
|
|
151
172
|
"--device-id",
|
|
152
173
|
ctx.target.id,
|
|
153
174
|
"--bundle-id",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../src/runner/pipelines.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAkBlC,SAAS,aAAa,CAAC,SAA2B;IAChD,OAAO,SAAS,CAAC,IAAI,KAAK,WAAW;QACnC,CAAC,CAAC,CAAC,kBAAkB,EAAE,SAAS,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,CAAC,gBAAgB,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"pipelines.js","sourceRoot":"","sources":["../../src/runner/pipelines.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kainoa/simplybuild",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Smart iOS build and deploy CLI wrapper for xcodebuildmcp",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"simplybuild": "./dist/cli.js",
|
|
8
|
-
"sb": "./dist/cli.js"
|
|
8
|
+
"sb": "./dist/cli.js",
|
|
9
|
+
"simplebuild": "./dist/cli.js",
|
|
10
|
+
"simple-build": "./dist/cli.js",
|
|
11
|
+
"simply-build": "./dist/cli.js",
|
|
12
|
+
"symplebuild": "./dist/cli.js",
|
|
13
|
+
"symplybuild": "./dist/cli.js",
|
|
14
|
+
"symple-build": "./dist/cli.js",
|
|
15
|
+
"symply-build": "./dist/cli.js"
|
|
9
16
|
},
|
|
10
17
|
"files": [
|
|
11
18
|
"dist",
|