@take-out/cli 0.0.92 → 0.0.94
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 +0 -32
- package/cli.mjs +2 -2
- package/dist/cjs/cli.cjs +33 -11
- package/dist/cjs/cli.js +32 -12
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/commands/run.cjs +6 -5
- package/dist/cjs/commands/run.js +6 -5
- package/dist/cjs/commands/run.js.map +1 -1
- package/dist/cjs/commands/script.cjs +2 -3
- package/dist/cjs/commands/script.js +2 -3
- package/dist/cjs/commands/script.js.map +1 -1
- package/dist/cjs/index.cjs +2 -40
- package/dist/cjs/index.js +2 -36
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils/env-setup.js.map +1 -1
- package/dist/cjs/utils/script-listing.cjs +22 -29
- package/dist/cjs/utils/script-listing.js +20 -39
- package/dist/cjs/utils/script-listing.js.map +1 -1
- package/dist/cjs/utils/script-utils.cjs +46 -47
- package/dist/cjs/utils/script-utils.js +41 -46
- package/dist/cjs/utils/script-utils.js.map +1 -1
- package/dist/esm/cli.js +32 -11
- package/dist/esm/cli.js.map +1 -1
- package/dist/esm/cli.mjs +32 -10
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/commands/run.js +6 -5
- package/dist/esm/commands/run.js.map +1 -1
- package/dist/esm/commands/run.mjs +6 -5
- package/dist/esm/commands/run.mjs.map +1 -1
- package/dist/esm/commands/script.js +3 -8
- package/dist/esm/commands/script.js.map +1 -1
- package/dist/esm/commands/script.mjs +4 -4
- package/dist/esm/commands/script.mjs.map +1 -1
- package/dist/esm/index.js +2 -80
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/index.mjs +2 -6
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/utils/env-setup.js +2 -4
- package/dist/esm/utils/env-setup.js.map +1 -1
- package/dist/esm/utils/env-setup.mjs +1 -1
- package/dist/esm/utils/env-setup.mjs.map +1 -1
- package/dist/esm/utils/script-listing.js +25 -40
- package/dist/esm/utils/script-listing.js.map +1 -1
- package/dist/esm/utils/script-listing.mjs +24 -30
- package/dist/esm/utils/script-listing.mjs.map +1 -1
- package/dist/esm/utils/script-utils.js +42 -54
- package/dist/esm/utils/script-utils.js.map +1 -1
- package/dist/esm/utils/script-utils.mjs +45 -46
- package/dist/esm/utils/script-utils.mjs.map +1 -1
- package/package.json +7 -6
- package/src/cli.ts +42 -14
- package/src/commands/run.ts +10 -8
- package/src/commands/script.ts +4 -8
- package/src/index.ts +1 -63
- package/src/utils/env-setup.ts +3 -7
- package/src/utils/script-listing.ts +46 -70
- package/src/utils/script-utils.ts +51 -105
- package/types/cli.d.ts +1 -1
- package/types/commands/run.d.ts.map +1 -1
- package/types/commands/script.d.ts +1 -1
- package/types/commands/script.d.ts.map +1 -1
- package/types/index.d.ts +1 -11
- package/types/index.d.ts.map +1 -1
- package/types/utils/env-setup.d.ts.map +1 -1
- package/types/utils/script-listing.d.ts +2 -3
- package/types/utils/script-listing.d.ts.map +1 -1
- package/types/utils/script-utils.d.ts +3 -5
- package/types/utils/script-utils.d.ts.map +1 -1
- package/dist/cjs/cli.native.js +0 -72
- package/dist/cjs/cli.native.js.map +0 -1
- package/dist/cjs/commands/changed.native.js +0 -310
- package/dist/cjs/commands/changed.native.js.map +0 -1
- package/dist/cjs/commands/docs.native.js +0 -553
- package/dist/cjs/commands/docs.native.js.map +0 -1
- package/dist/cjs/commands/env-setup.native.js +0 -96
- package/dist/cjs/commands/env-setup.native.js.map +0 -1
- package/dist/cjs/commands/onboard.native.js +0 -628
- package/dist/cjs/commands/onboard.native.js.map +0 -1
- package/dist/cjs/commands/run.native.js +0 -169
- package/dist/cjs/commands/run.native.js.map +0 -1
- package/dist/cjs/commands/script.native.js +0 -491
- package/dist/cjs/commands/script.native.js.map +0 -1
- package/dist/cjs/commands/sync.native.js +0 -228
- package/dist/cjs/commands/sync.native.js.map +0 -1
- package/dist/cjs/commands/upgrade.cjs +0 -90
- package/dist/cjs/commands/upgrade.js +0 -78
- package/dist/cjs/commands/upgrade.js.map +0 -6
- package/dist/cjs/commands/upgrade.native.js +0 -95
- package/dist/cjs/commands/upgrade.native.js.map +0 -1
- package/dist/cjs/constants/ascii.native.js +0 -39
- package/dist/cjs/constants/ascii.native.js.map +0 -1
- package/dist/cjs/index.native.js +0 -67
- package/dist/cjs/index.native.js.map +0 -1
- package/dist/cjs/types.native.js +0 -19
- package/dist/cjs/types.native.js.map +0 -1
- package/dist/cjs/utils/env-categories.native.js +0 -288
- package/dist/cjs/utils/env-categories.native.js.map +0 -1
- package/dist/cjs/utils/env-setup.native.js +0 -281
- package/dist/cjs/utils/env-setup.native.js.map +0 -1
- package/dist/cjs/utils/env.native.js +0 -130
- package/dist/cjs/utils/env.native.js.map +0 -1
- package/dist/cjs/utils/files.native.js +0 -278
- package/dist/cjs/utils/files.native.js.map +0 -1
- package/dist/cjs/utils/parallel-runner.native.js +0 -144
- package/dist/cjs/utils/parallel-runner.native.js.map +0 -1
- package/dist/cjs/utils/ports.native.js +0 -123
- package/dist/cjs/utils/ports.native.js.map +0 -1
- package/dist/cjs/utils/prerequisites.native.js +0 -128
- package/dist/cjs/utils/prerequisites.native.js.map +0 -1
- package/dist/cjs/utils/prompts.native.js +0 -167
- package/dist/cjs/utils/prompts.native.js.map +0 -1
- package/dist/cjs/utils/script-listing.native.js +0 -191
- package/dist/cjs/utils/script-listing.native.js.map +0 -1
- package/dist/cjs/utils/script-utils.native.js +0 -126
- package/dist/cjs/utils/script-utils.native.js.map +0 -6
- package/dist/cjs/utils/sync.native.js +0 -93
- package/dist/cjs/utils/sync.native.js.map +0 -1
- package/dist/cjs/utils/welcome.cjs +0 -50
- package/dist/cjs/utils/welcome.js +0 -42
- package/dist/cjs/utils/welcome.js.map +0 -6
- package/dist/cjs/utils/welcome.native.js +0 -47
- package/dist/cjs/utils/welcome.native.js.map +0 -6
- package/dist/esm/cli.native.js +0 -69
- package/dist/esm/cli.native.js.map +0 -1
- package/dist/esm/commands/changed.native.js +0 -273
- package/dist/esm/commands/changed.native.js.map +0 -1
- package/dist/esm/commands/docs.native.js +0 -515
- package/dist/esm/commands/docs.native.js.map +0 -1
- package/dist/esm/commands/env-setup.native.js +0 -59
- package/dist/esm/commands/env-setup.native.js.map +0 -1
- package/dist/esm/commands/onboard.native.js +0 -591
- package/dist/esm/commands/onboard.native.js.map +0 -1
- package/dist/esm/commands/run.native.js +0 -132
- package/dist/esm/commands/run.native.js.map +0 -1
- package/dist/esm/commands/script.native.js +0 -445
- package/dist/esm/commands/script.native.js.map +0 -1
- package/dist/esm/commands/sync.native.js +0 -190
- package/dist/esm/commands/sync.native.js.map +0 -1
- package/dist/esm/commands/upgrade.js +0 -65
- package/dist/esm/commands/upgrade.js.map +0 -6
- package/dist/esm/commands/upgrade.mjs +0 -67
- package/dist/esm/commands/upgrade.mjs.map +0 -1
- package/dist/esm/commands/upgrade.native.js +0 -69
- package/dist/esm/commands/upgrade.native.js.map +0 -1
- package/dist/esm/constants/ascii.native.js +0 -12
- package/dist/esm/constants/ascii.native.js.map +0 -1
- package/dist/esm/index.native.js +0 -7
- package/dist/esm/index.native.js.map +0 -1
- package/dist/esm/types.native.js +0 -2
- package/dist/esm/types.native.js.map +0 -1
- package/dist/esm/utils/env-categories.native.js +0 -246
- package/dist/esm/utils/env-categories.native.js.map +0 -1
- package/dist/esm/utils/env-setup.native.js +0 -243
- package/dist/esm/utils/env-setup.native.js.map +0 -1
- package/dist/esm/utils/env.native.js +0 -99
- package/dist/esm/utils/env.native.js.map +0 -1
- package/dist/esm/utils/files.native.js +0 -247
- package/dist/esm/utils/files.native.js.map +0 -1
- package/dist/esm/utils/parallel-runner.native.js +0 -118
- package/dist/esm/utils/parallel-runner.native.js.map +0 -1
- package/dist/esm/utils/ports.native.js +0 -93
- package/dist/esm/utils/ports.native.js.map +0 -1
- package/dist/esm/utils/prerequisites.native.js +0 -97
- package/dist/esm/utils/prerequisites.native.js.map +0 -1
- package/dist/esm/utils/prompts.native.js +0 -115
- package/dist/esm/utils/prompts.native.js.map +0 -1
- package/dist/esm/utils/script-listing.native.js +0 -151
- package/dist/esm/utils/script-listing.native.js.map +0 -1
- package/dist/esm/utils/script-utils.native.js +0 -112
- package/dist/esm/utils/script-utils.native.js.map +0 -6
- package/dist/esm/utils/sync.native.js +0 -53
- package/dist/esm/utils/sync.native.js.map +0 -1
- package/dist/esm/utils/welcome.js +0 -21
- package/dist/esm/utils/welcome.js.map +0 -6
- package/dist/esm/utils/welcome.mjs +0 -15
- package/dist/esm/utils/welcome.mjs.map +0 -1
- package/dist/esm/utils/welcome.native.js +0 -18
- package/dist/esm/utils/welcome.native.js.map +0 -1
- package/types/utils/welcome.d.ts +0 -6
- package/types/utils/welcome.d.ts.map +0 -1
|
@@ -31,7 +31,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
31
31
|
}), mod);
|
|
32
32
|
var script_listing_exports = {};
|
|
33
33
|
__export(script_listing_exports, {
|
|
34
|
-
formatScriptList: () => formatScriptList,
|
|
35
34
|
listAllScripts: () => listAllScripts,
|
|
36
35
|
listCategoryScripts: () => listCategoryScripts
|
|
37
36
|
});
|
|
@@ -52,58 +51,52 @@ function findScriptsPackageRoot() {
|
|
|
52
51
|
} catch {}
|
|
53
52
|
return null;
|
|
54
53
|
}
|
|
55
|
-
function formatScriptList(title, scripts,
|
|
54
|
+
function formatScriptList(title, scripts, metadata) {
|
|
56
55
|
if (scripts.size === 0) return;
|
|
57
56
|
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(title))), console.info();
|
|
58
57
|
const categories = /* @__PURE__ */new Map(),
|
|
59
58
|
rootScripts = [];
|
|
60
59
|
for (const [name, path] of scripts) if (name.includes("/")) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
const category = parts[0];
|
|
64
|
-
categories.has(category) || categories.set(category, []), categories.get(category).push([name, path]);
|
|
65
|
-
}
|
|
60
|
+
const category = name.split("/")[0];
|
|
61
|
+
categories.has(category) || categories.set(category, []), categories.get(category).push([name, path]);
|
|
66
62
|
} else rootScripts.push([name, path]);
|
|
67
|
-
for (const [name
|
|
63
|
+
for (const [name] of rootScripts) {
|
|
68
64
|
let line = ` ${import_picocolors.default.green(name)}`;
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`));
|
|
72
|
-
}
|
|
73
|
-
console.info(line);
|
|
65
|
+
const meta = metadata.get(name);
|
|
66
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), console.info(line);
|
|
74
67
|
}
|
|
75
68
|
for (const [category, categoryScripts] of categories) {
|
|
76
69
|
console.info(), console.info(` ${import_picocolors.default.yellow(category)}/`);
|
|
77
|
-
for (const [name
|
|
78
|
-
const shortName = name.
|
|
70
|
+
for (const [name] of categoryScripts) {
|
|
71
|
+
const shortName = name.substring(category.length + 1);
|
|
79
72
|
let line = ` ${import_picocolors.default.green(shortName)}`;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`));
|
|
83
|
-
}
|
|
84
|
-
console.info(line);
|
|
73
|
+
const meta = metadata.get(name);
|
|
74
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), console.info(line);
|
|
85
75
|
}
|
|
86
76
|
}
|
|
87
77
|
}
|
|
88
|
-
function listAllScripts(includeCommands = !0) {
|
|
89
|
-
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Takeout CLI - Project Scripts & Commands"))), console.info(), console.info(import_picocolors.default.dim(" Manage scripts, run tasks, and configure your project")), console.info(), includeCommands && (console.info(import_picocolors.default.bold(import_picocolors.default.cyan("
|
|
78
|
+
async function listAllScripts(includeCommands = !0) {
|
|
79
|
+
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Takeout CLI - Project Scripts & Commands"))), console.info(), console.info(import_picocolors.default.dim(" Manage scripts, run tasks, and configure your project")), console.info(), includeCommands && (console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Built-in Commands"))), console.info(), console.info(` ${import_picocolors.default.green("onboard")} - Setup wizard for new projects`), console.info(` ${import_picocolors.default.green("docs")} - View documentation`), console.info(` ${import_picocolors.default.green("env:setup")} - Setup environment variables`), console.info(` ${import_picocolors.default.green("run")} - Run scripts in parallel`), console.info(` ${import_picocolors.default.green("script")} - Manage and run scripts`), console.info(` ${import_picocolors.default.green("sync")} - Sync fork with upstream Takeout`), console.info(` ${import_picocolors.default.green("changed")} - Show changes since last sync`), console.info(` ${import_picocolors.default.green("completion")} - Shell completion setup`));
|
|
90
80
|
const localScripts = (0, import_script_utils.discoverScripts)((0, import_script_utils.getLocalScriptsDir)()),
|
|
91
81
|
builtInDir = findScriptsPackageRoot(),
|
|
92
|
-
builtInScripts = builtInDir ? (0, import_script_utils.discoverScripts)(builtInDir) : /* @__PURE__ */new Map()
|
|
93
|
-
|
|
82
|
+
builtInScripts = builtInDir ? (0, import_script_utils.discoverScripts)(builtInDir) : /* @__PURE__ */new Map(),
|
|
83
|
+
allScripts = new Map([...localScripts, ...builtInScripts]),
|
|
84
|
+
metadata = await (0, import_script_utils.getAllScriptMetadata)(allScripts);
|
|
85
|
+
localScripts.size > 0 && formatScriptList("Local Scripts", localScripts, metadata), builtInScripts.size > 0 && formatScriptList("Built-in Scripts", builtInScripts, metadata), localScripts.size === 0 && builtInScripts.size === 0 && (console.info(), console.info(import_picocolors.default.yellow("No scripts found")), console.info(), console.info(import_picocolors.default.dim(`Create scripts in ${(0, import_node_path.relative)(process.cwd(), (0, import_script_utils.getLocalScriptsDir)())}/`)), console.info(import_picocolors.default.dim("Or install @take-out/scripts package for built-in scripts"))), console.info(), console.info(import_picocolors.default.bold("Usage:")), console.info(` ${import_picocolors.default.cyan("tko <command>")} ${import_picocolors.default.dim("Run a built-in command")}`), console.info(` ${import_picocolors.default.cyan("tko <script-name>")} ${import_picocolors.default.dim("Execute direct script")}`), console.info(` ${import_picocolors.default.cyan("tko <group> <script>")} ${import_picocolors.default.dim("Execute nested script")}`), console.info(` ${import_picocolors.default.cyan("tko script new <path>")} ${import_picocolors.default.dim("Create a new script")}`), console.info();
|
|
94
86
|
}
|
|
95
|
-
function listCategoryScripts(categoryName) {
|
|
87
|
+
async function listCategoryScripts(categoryName) {
|
|
96
88
|
const localDir = (0, import_script_utils.getLocalScriptsDir)(),
|
|
97
89
|
categoryPath = (0, import_node_path.join)(localDir, categoryName);
|
|
98
90
|
if ((0, import_node_fs.existsSync)(categoryPath) && (0, import_node_fs.statSync)(categoryPath).isDirectory()) {
|
|
99
91
|
const categoryScripts = (0, import_script_utils.discoverScripts)(categoryPath);
|
|
100
92
|
if (categoryScripts.size > 0) {
|
|
101
|
-
|
|
102
|
-
|
|
93
|
+
const metadata = await (0, import_script_utils.getAllScriptMetadata)(categoryScripts);
|
|
94
|
+
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(`${categoryName} Scripts`))), console.info();
|
|
95
|
+
for (const [name] of categoryScripts) {
|
|
103
96
|
const shortName = name.replace(`${categoryName}/`, ""),
|
|
104
|
-
|
|
97
|
+
meta = metadata.get(name);
|
|
105
98
|
let line = ` ${import_picocolors.default.green(shortName)}`;
|
|
106
|
-
|
|
99
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), meta?.args && meta.args.length > 0 && (line += import_picocolors.default.dim(` [${meta.args.join(", ")}]`)), console.info(line);
|
|
107
100
|
}
|
|
108
101
|
console.info(), console.info(import_picocolors.default.dim(`Run: tko ${categoryName}/<name> [args...] to execute`)), console.info();
|
|
109
102
|
} else console.info(), console.info(import_picocolors.default.yellow(`No scripts found in ${categoryName}/`)), console.info();
|
|
@@ -22,7 +22,6 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
22
22
|
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
23
23
|
var script_listing_exports = {};
|
|
24
24
|
__export(script_listing_exports, {
|
|
25
|
-
formatScriptList: () => formatScriptList,
|
|
26
25
|
listAllScripts: () => listAllScripts,
|
|
27
26
|
listCategoryScripts: () => listCategoryScripts
|
|
28
27
|
});
|
|
@@ -38,65 +37,47 @@ function findScriptsPackageRoot() {
|
|
|
38
37
|
}
|
|
39
38
|
return null;
|
|
40
39
|
}
|
|
41
|
-
function formatScriptList(title, scripts,
|
|
40
|
+
function formatScriptList(title, scripts, metadata) {
|
|
42
41
|
if (scripts.size === 0) return;
|
|
43
42
|
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(title))), console.info();
|
|
44
43
|
const categories = /* @__PURE__ */ new Map(), rootScripts = [];
|
|
45
44
|
for (const [name, path] of scripts)
|
|
46
45
|
if (name.includes("/")) {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
const category = parts[0];
|
|
50
|
-
categories.has(category) || categories.set(category, []), categories.get(category).push([name, path]);
|
|
51
|
-
}
|
|
46
|
+
const category = name.split("/")[0];
|
|
47
|
+
categories.has(category) || categories.set(category, []), categories.get(category).push([name, path]);
|
|
52
48
|
} else
|
|
53
49
|
rootScripts.push([name, path]);
|
|
54
|
-
for (const [name
|
|
50
|
+
for (const [name] of rootScripts) {
|
|
55
51
|
let line = ` ${import_picocolors.default.green(name)}`;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`));
|
|
59
|
-
}
|
|
60
|
-
console.info(line);
|
|
52
|
+
const meta = metadata.get(name);
|
|
53
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), console.info(line);
|
|
61
54
|
}
|
|
62
55
|
for (const [category, categoryScripts] of categories) {
|
|
63
56
|
console.info(), console.info(` ${import_picocolors.default.yellow(category)}/`);
|
|
64
|
-
for (const [name
|
|
65
|
-
const shortName = name.
|
|
57
|
+
for (const [name] of categoryScripts) {
|
|
58
|
+
const shortName = name.substring(category.length + 1);
|
|
66
59
|
let line = ` ${import_picocolors.default.green(shortName)}`;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`));
|
|
70
|
-
}
|
|
71
|
-
console.info(line);
|
|
60
|
+
const meta = metadata.get(name);
|
|
61
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), console.info(line);
|
|
72
62
|
}
|
|
73
63
|
}
|
|
74
64
|
}
|
|
75
|
-
function listAllScripts(includeCommands = !0) {
|
|
76
|
-
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Takeout CLI - Project Scripts & Commands"))), console.info(), console.info(import_picocolors.default.dim(" Manage scripts, run tasks, and configure your project")), console.info(), includeCommands && (console.info(import_picocolors.default.bold(import_picocolors.default.cyan("
|
|
77
|
-
const localScripts = (0, import_script_utils.discoverScripts)((0, import_script_utils.getLocalScriptsDir)()), builtInDir = findScriptsPackageRoot(), builtInScripts = builtInDir ? (0, import_script_utils.discoverScripts)(builtInDir) : /* @__PURE__ */ new Map();
|
|
78
|
-
localScripts.size > 0 && formatScriptList("
|
|
79
|
-
import_picocolors.default.dim(`Create scripts in ${(0, import_node_path.relative)(process.cwd(), (0, import_script_utils.getLocalScriptsDir)())}/`)
|
|
80
|
-
), console.info(import_picocolors.default.dim("Or install @take-out/scripts package for built-in scripts"))), console.info(), console.info(import_picocolors.default.bold("Usage:")), console.info(
|
|
81
|
-
` ${import_picocolors.default.cyan("tko <command>")} ${import_picocolors.default.dim("Run a built-in command")}`
|
|
82
|
-
), console.info(
|
|
83
|
-
` ${import_picocolors.default.cyan("tko <script-name>")} ${import_picocolors.default.dim("Execute direct script (e.g., tko onboard)")}`
|
|
84
|
-
), console.info(
|
|
85
|
-
` ${import_picocolors.default.cyan("tko <group-name> <script-name>")} ${import_picocolors.default.dim("Execute nested script (e.g., tko web build)")}`
|
|
86
|
-
), console.info(` ${import_picocolors.default.cyan("tko script new <path>")} ${import_picocolors.default.dim("Create a new script")}`), console.info(), console.info(import_picocolors.default.bold("Examples:")), console.info(` ${import_picocolors.default.cyan("tko web build")} ${import_picocolors.default.dim("Build web platform")}`), console.info(
|
|
87
|
-
` ${import_picocolors.default.cyan("tko check types")} ${import_picocolors.default.dim("Run TypeScript type checking")}`
|
|
88
|
-
), console.info();
|
|
65
|
+
async function listAllScripts(includeCommands = !0) {
|
|
66
|
+
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Takeout CLI - Project Scripts & Commands"))), console.info(), console.info(import_picocolors.default.dim(" Manage scripts, run tasks, and configure your project")), console.info(), includeCommands && (console.info(import_picocolors.default.bold(import_picocolors.default.cyan("Built-in Commands"))), console.info(), console.info(` ${import_picocolors.default.green("onboard")} - Setup wizard for new projects`), console.info(` ${import_picocolors.default.green("docs")} - View documentation`), console.info(` ${import_picocolors.default.green("env:setup")} - Setup environment variables`), console.info(` ${import_picocolors.default.green("run")} - Run scripts in parallel`), console.info(` ${import_picocolors.default.green("script")} - Manage and run scripts`), console.info(` ${import_picocolors.default.green("sync")} - Sync fork with upstream Takeout`), console.info(` ${import_picocolors.default.green("changed")} - Show changes since last sync`), console.info(` ${import_picocolors.default.green("completion")} - Shell completion setup`));
|
|
67
|
+
const localScripts = (0, import_script_utils.discoverScripts)((0, import_script_utils.getLocalScriptsDir)()), builtInDir = findScriptsPackageRoot(), builtInScripts = builtInDir ? (0, import_script_utils.discoverScripts)(builtInDir) : /* @__PURE__ */ new Map(), allScripts = new Map([...localScripts, ...builtInScripts]), metadata = await (0, import_script_utils.getAllScriptMetadata)(allScripts);
|
|
68
|
+
localScripts.size > 0 && formatScriptList("Local Scripts", localScripts, metadata), builtInScripts.size > 0 && formatScriptList("Built-in Scripts", builtInScripts, metadata), localScripts.size === 0 && builtInScripts.size === 0 && (console.info(), console.info(import_picocolors.default.yellow("No scripts found")), console.info(), console.info(import_picocolors.default.dim(`Create scripts in ${(0, import_node_path.relative)(process.cwd(), (0, import_script_utils.getLocalScriptsDir)())}/`)), console.info(import_picocolors.default.dim("Or install @take-out/scripts package for built-in scripts"))), console.info(), console.info(import_picocolors.default.bold("Usage:")), console.info(` ${import_picocolors.default.cyan("tko <command>")} ${import_picocolors.default.dim("Run a built-in command")}`), console.info(` ${import_picocolors.default.cyan("tko <script-name>")} ${import_picocolors.default.dim("Execute direct script")}`), console.info(` ${import_picocolors.default.cyan("tko <group> <script>")} ${import_picocolors.default.dim("Execute nested script")}`), console.info(` ${import_picocolors.default.cyan("tko script new <path>")} ${import_picocolors.default.dim("Create a new script")}`), console.info();
|
|
89
69
|
}
|
|
90
|
-
function listCategoryScripts(categoryName) {
|
|
70
|
+
async function listCategoryScripts(categoryName) {
|
|
91
71
|
const localDir = (0, import_script_utils.getLocalScriptsDir)(), categoryPath = (0, import_node_path.join)(localDir, categoryName);
|
|
92
72
|
if ((0, import_node_fs.existsSync)(categoryPath) && (0, import_node_fs.statSync)(categoryPath).isDirectory()) {
|
|
93
73
|
const categoryScripts = (0, import_script_utils.discoverScripts)(categoryPath);
|
|
94
74
|
if (categoryScripts.size > 0) {
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
75
|
+
const metadata = await (0, import_script_utils.getAllScriptMetadata)(categoryScripts);
|
|
76
|
+
console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(`${categoryName} Scripts`))), console.info();
|
|
77
|
+
for (const [name] of categoryScripts) {
|
|
78
|
+
const shortName = name.replace(`${categoryName}/`, ""), meta = metadata.get(name);
|
|
98
79
|
let line = ` ${import_picocolors.default.green(shortName)}`;
|
|
99
|
-
|
|
80
|
+
meta?.description && (line += import_picocolors.default.dim(` - ${meta.description}`)), meta?.args && meta.args.length > 0 && (line += import_picocolors.default.dim(` [${meta.args.join(", ")}]`)), console.info(line);
|
|
100
81
|
}
|
|
101
82
|
console.info(), console.info(import_picocolors.default.dim(`Run: tko ${categoryName}/<name> [args...] to execute`)), console.info();
|
|
102
83
|
} else
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/script-listing.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["pc"]
|
|
6
6
|
}
|
|
@@ -21,67 +21,66 @@ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
|
21
21
|
var script_utils_exports = {};
|
|
22
22
|
__export(script_utils_exports, {
|
|
23
23
|
discoverScripts: () => discoverScripts,
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
getAllScriptMetadata: () => getAllScriptMetadata,
|
|
25
|
+
getLocalScriptsDir: () => getLocalScriptsDir
|
|
26
26
|
});
|
|
27
27
|
module.exports = __toCommonJS(script_utils_exports);
|
|
28
28
|
var import_node_fs = require("node:fs"),
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const CACHE_DIR = (0, import_node_path.join)((0, import_node_os.homedir)(), ".takeout"),
|
|
32
|
-
CACHE_FILE = (0, import_node_path.join)(CACHE_DIR, "script-cache.json");
|
|
29
|
+
import_node_path = require("node:path"),
|
|
30
|
+
import_cmd = require("@take-out/scripts/cmd");
|
|
33
31
|
function getLocalScriptsDir() {
|
|
34
32
|
return (0, import_node_path.join)(process.cwd(), "scripts");
|
|
35
33
|
}
|
|
36
|
-
function
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
34
|
+
async function getAllScriptMetadata(scripts) {
|
|
35
|
+
const collected = /* @__PURE__ */new Map();
|
|
36
|
+
let currentName = "";
|
|
37
|
+
(0, import_cmd.setInterceptCmd)(info => {
|
|
38
|
+
collected.set(currentName, info);
|
|
39
|
+
});
|
|
40
|
+
for (const [name, path] of scripts) {
|
|
41
|
+
try {
|
|
42
|
+
if (!(0, import_node_fs.readFileSync)(path, "utf-8").slice(0, 200).includes("cmd")) continue;
|
|
43
|
+
} catch {
|
|
44
|
+
continue;
|
|
46
45
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
46
|
+
currentName = name;
|
|
47
|
+
try {
|
|
48
|
+
await import(path);
|
|
49
|
+
} catch {}
|
|
51
50
|
}
|
|
51
|
+
const results = /* @__PURE__ */new Map();
|
|
52
|
+
for (const [name, info] of collected) {
|
|
53
|
+
const metadata = {
|
|
54
|
+
description: info.description
|
|
55
|
+
};
|
|
56
|
+
if (info.args) {
|
|
57
|
+
const flags = [...info.args.matchAll(/--?([a-z-]+)/gi)];
|
|
58
|
+
flags.length > 0 && (metadata.args = flags.map(m => `--${m[1]}`));
|
|
59
|
+
}
|
|
60
|
+
results.set(name, metadata);
|
|
61
|
+
}
|
|
62
|
+
return results;
|
|
52
63
|
}
|
|
53
|
-
function
|
|
54
|
-
try {
|
|
55
|
-
if ((0, import_node_fs.existsSync)(CACHE_FILE)) return JSON.parse((0, import_node_fs.readFileSync)(CACHE_FILE, "utf-8"));
|
|
56
|
-
} catch {}
|
|
57
|
-
return {};
|
|
58
|
-
}
|
|
59
|
-
function saveCache(cache) {
|
|
60
|
-
try {
|
|
61
|
-
(0, import_node_fs.existsSync)(CACHE_DIR) || (0, import_node_fs.mkdirSync)(CACHE_DIR, {
|
|
62
|
-
recursive: !0
|
|
63
|
-
}), (0, import_node_fs.writeFileSync)(CACHE_FILE, JSON.stringify(cache, null, 2));
|
|
64
|
-
} catch {}
|
|
65
|
-
}
|
|
66
|
-
function getScriptMetadata(filePath) {
|
|
67
|
-
const cache = loadCache(),
|
|
68
|
-
stat = (0, import_node_fs.statSync)(filePath);
|
|
69
|
-
if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs) return cache[filePath];
|
|
70
|
-
const metadata = extractMetadata(filePath);
|
|
71
|
-
return cache[filePath] = metadata, saveCache(cache), metadata;
|
|
72
|
-
}
|
|
73
|
-
function discoverScripts(dir, baseDir = dir, depth = 0, maxDepth = 1) {
|
|
64
|
+
function discoverScripts(dir, baseDir = dir) {
|
|
74
65
|
const scripts = /* @__PURE__ */new Map();
|
|
75
66
|
if (!(0, import_node_fs.existsSync)(dir)) return scripts;
|
|
76
67
|
try {
|
|
77
68
|
const entries = (0, import_node_fs.readdirSync)(dir);
|
|
78
69
|
for (const entry of entries) {
|
|
79
|
-
const fullPath = (0, import_node_path.join)(dir, entry)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
70
|
+
const fullPath = (0, import_node_path.join)(dir, entry),
|
|
71
|
+
stat = (0, import_node_fs.statSync)(fullPath),
|
|
72
|
+
skipFiles = ["cmd.ts", "run.ts"];
|
|
73
|
+
if (stat.isDirectory()) {
|
|
74
|
+
if (entry === "helpers" || entry === "internal") continue;
|
|
75
|
+
const subEntries = (0, import_node_fs.readdirSync)(fullPath);
|
|
76
|
+
for (const subEntry of subEntries) {
|
|
77
|
+
const subPath = (0, import_node_path.join)(fullPath, subEntry);
|
|
78
|
+
if ((0, import_node_fs.statSync)(subPath).isFile() && (subEntry.endsWith(".ts") || subEntry.endsWith(".js"))) {
|
|
79
|
+
const scriptName = (0, import_node_path.relative)(baseDir, subPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
80
|
+
scripts.set(scriptName, subPath);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
} else if ((entry.endsWith(".ts") || entry.endsWith(".js")) && !skipFiles.includes(entry)) {
|
|
85
84
|
const scriptName = (0, import_node_path.relative)(baseDir, fullPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
86
85
|
scripts.set(scriptName, fullPath);
|
|
87
86
|
}
|
|
@@ -15,67 +15,62 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0
|
|
|
15
15
|
var script_utils_exports = {};
|
|
16
16
|
__export(script_utils_exports, {
|
|
17
17
|
discoverScripts: () => discoverScripts,
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
getAllScriptMetadata: () => getAllScriptMetadata,
|
|
19
|
+
getLocalScriptsDir: () => getLocalScriptsDir
|
|
20
20
|
});
|
|
21
21
|
module.exports = __toCommonJS(script_utils_exports);
|
|
22
|
-
var import_node_fs = require("node:fs"),
|
|
23
|
-
const CACHE_DIR = (0, import_node_path.join)((0, import_node_os.homedir)(), ".takeout"), CACHE_FILE = (0, import_node_path.join)(CACHE_DIR, "script-cache.json");
|
|
22
|
+
var import_node_fs = require("node:fs"), import_node_path = require("node:path"), import_cmd = require("@take-out/scripts/cmd");
|
|
24
23
|
function getLocalScriptsDir() {
|
|
25
24
|
return (0, import_node_path.join)(process.cwd(), "scripts");
|
|
26
25
|
}
|
|
27
|
-
function
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
26
|
+
async function getAllScriptMetadata(scripts) {
|
|
27
|
+
const collected = /* @__PURE__ */ new Map();
|
|
28
|
+
let currentName = "";
|
|
29
|
+
(0, import_cmd.setInterceptCmd)((info) => {
|
|
30
|
+
collected.set(currentName, info);
|
|
31
|
+
});
|
|
32
|
+
for (const [name, path] of scripts) {
|
|
33
|
+
try {
|
|
34
|
+
if (!(0, import_node_fs.readFileSync)(path, "utf-8").slice(0, 200).includes("cmd")) continue;
|
|
35
|
+
} catch {
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
currentName = name;
|
|
39
|
+
try {
|
|
40
|
+
await import(path);
|
|
41
|
+
} catch {
|
|
36
42
|
}
|
|
37
|
-
const stat = (0, import_node_fs.statSync)(filePath);
|
|
38
|
-
return metadata.mtime = stat.mtimeMs, metadata;
|
|
39
|
-
} catch {
|
|
40
|
-
return {};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
function loadCache() {
|
|
44
|
-
try {
|
|
45
|
-
if ((0, import_node_fs.existsSync)(CACHE_FILE))
|
|
46
|
-
return JSON.parse((0, import_node_fs.readFileSync)(CACHE_FILE, "utf-8"));
|
|
47
|
-
} catch {
|
|
48
43
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
const results = /* @__PURE__ */ new Map();
|
|
45
|
+
for (const [name, info] of collected) {
|
|
46
|
+
const metadata = { description: info.description };
|
|
47
|
+
if (info.args) {
|
|
48
|
+
const flags = [...info.args.matchAll(/--?([a-z-]+)/gi)];
|
|
49
|
+
flags.length > 0 && (metadata.args = flags.map((m) => `--${m[1]}`));
|
|
50
|
+
}
|
|
51
|
+
results.set(name, metadata);
|
|
55
52
|
}
|
|
53
|
+
return results;
|
|
56
54
|
}
|
|
57
|
-
function
|
|
58
|
-
const cache = loadCache(), stat = (0, import_node_fs.statSync)(filePath);
|
|
59
|
-
if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs)
|
|
60
|
-
return cache[filePath];
|
|
61
|
-
const metadata = extractMetadata(filePath);
|
|
62
|
-
return cache[filePath] = metadata, saveCache(cache), metadata;
|
|
63
|
-
}
|
|
64
|
-
function discoverScripts(dir, baseDir = dir, depth = 0, maxDepth = 1) {
|
|
55
|
+
function discoverScripts(dir, baseDir = dir) {
|
|
65
56
|
const scripts = /* @__PURE__ */ new Map();
|
|
66
57
|
if (!(0, import_node_fs.existsSync)(dir))
|
|
67
58
|
return scripts;
|
|
68
59
|
try {
|
|
69
60
|
const entries = (0, import_node_fs.readdirSync)(dir);
|
|
70
61
|
for (const entry of entries) {
|
|
71
|
-
const fullPath = (0, import_node_path.join)(dir, entry);
|
|
72
|
-
if (
|
|
73
|
-
if (entry === "helpers" || entry === "internal"
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
62
|
+
const fullPath = (0, import_node_path.join)(dir, entry), stat = (0, import_node_fs.statSync)(fullPath), skipFiles = ["cmd.ts", "run.ts"];
|
|
63
|
+
if (stat.isDirectory()) {
|
|
64
|
+
if (entry === "helpers" || entry === "internal") continue;
|
|
65
|
+
const subEntries = (0, import_node_fs.readdirSync)(fullPath);
|
|
66
|
+
for (const subEntry of subEntries) {
|
|
67
|
+
const subPath = (0, import_node_path.join)(fullPath, subEntry);
|
|
68
|
+
if ((0, import_node_fs.statSync)(subPath).isFile() && (subEntry.endsWith(".ts") || subEntry.endsWith(".js"))) {
|
|
69
|
+
const scriptName = (0, import_node_path.relative)(baseDir, subPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
70
|
+
scripts.set(scriptName, subPath);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
} else if ((entry.endsWith(".ts") || entry.endsWith(".js")) && !skipFiles.includes(entry)) {
|
|
79
74
|
const scriptName = (0, import_node_path.relative)(baseDir, fullPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
80
75
|
scripts.set(scriptName, fullPath);
|
|
81
76
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/script-utils.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAIA,qBAAgE,oBAChE,mBAA+B,sBAE/B,aAAgC;AAQzB,SAAS,qBAA6B;AAC3C,aAAO,uBAAK,QAAQ,IAAI,GAAG,SAAS;AACtC;AAGA,eAAsB,qBACpB,SACsC;AACtC,QAAM,YAAY,oBAAI,IAAoD;AAC1E,MAAI,cAAc;AAGlB,kCAAgB,CAAC,SAAS;AACxB,cAAU,IAAI,aAAa,IAAI;AAAA,EACjC,CAAC;AAED,aAAW,CAAC,MAAM,IAAI,KAAK,SAAS;AAElC,QAAI;AAEF,UAAI,KADS,6BAAa,MAAM,OAAO,EAAE,MAAM,GAAG,GAAG,EAC3C,SAAS,KAAK,EAAG;AAAA,IAC7B,QAAQ;AAAE;AAAA,IAAS;AAEnB,kBAAc;AACd,QAAI;AAAE,YAAM,OAAO;AAAA,IAAM,QAAQ;AAAA,IAAC;AAAA,EACpC;AAEA,QAAM,UAAU,oBAAI,IAA4B;AAChD,aAAW,CAAC,MAAM,IAAI,KAAK,WAAW;AACpC,UAAM,WAA2B,EAAE,aAAa,KAAK,YAAY;AACjE,QAAI,KAAK,MAAM;AACb,YAAM,QAAQ,CAAC,GAAG,KAAK,KAAK,SAAS,gBAAgB,CAAC;AACtD,MAAI,MAAM,SAAS,MACjB,SAAS,OAAO,MAAM,IAAI,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,EAAE;AAAA,IAEhD;AACA,YAAQ,IAAI,MAAM,QAAQ;AAAA,EAC5B;AAEA,SAAO;AACT;AAGO,SAAS,gBAAgB,KAAa,UAAkB,KAA0B;AACvF,QAAM,UAAU,oBAAI,IAAoB;AAExC,MAAI,KAAC,2BAAW,GAAG;AACjB,WAAO;AAGT,MAAI;AACF,UAAM,cAAU,4BAAY,GAAG;AAE/B,eAAW,SAAS,SAAS;AAC3B,YAAM,eAAW,uBAAK,KAAK,KAAK,GAC1B,WAAO,yBAAS,QAAQ,GAGxB,YAAY,CAAC,UAAU,QAAQ;AAErC,UAAI,KAAK,YAAY,GAAG;AACtB,YAAI,UAAU,aAAa,UAAU,WAAY;AAEjD,cAAM,iBAAa,4BAAY,QAAQ;AACvC,mBAAW,YAAY,YAAY;AACjC,gBAAM,cAAU,uBAAK,UAAU,QAAQ;AACvC,kBAAI,yBAAS,OAAO,EAAE,OAAO,MAAM,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,KAAK,IAAI;AAExF,kBAAM,iBADe,2BAAS,SAAS,OAAO,EAAE,MAAM,IAAI,EAAE,KAAK,GAAG,EACpC,QAAQ,cAAc,EAAE;AACxD,oBAAQ,IAAI,YAAY,OAAO;AAAA,UACjC;AAAA,QACF;AAAA,MACF,YAAY,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,KAAK,MAAM,CAAC,UAAU,SAAS,KAAK,GAAG;AAEzF,cAAM,iBADe,2BAAS,SAAS,QAAQ,EAAE,MAAM,IAAI,EAAE,KAAK,GAAG,EACrC,QAAQ,cAAc,EAAE;AACxD,gBAAQ,IAAI,YAAY,QAAQ;AAAA,MAClC;AAAA,IACF;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
package/dist/esm/cli.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
#!/usr/bin/env
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import { spawnSync } from "node:child_process";
|
|
2
3
|
import { existsSync, statSync } from "node:fs";
|
|
3
4
|
import { join } from "node:path";
|
|
4
5
|
import { defineCommand, runMain } from "citty";
|
|
@@ -10,31 +11,37 @@ function isScriptCategory(name) {
|
|
|
10
11
|
return !1;
|
|
11
12
|
}
|
|
12
13
|
}
|
|
13
|
-
function
|
|
14
|
+
function findLocalScript(name) {
|
|
14
15
|
const scriptsDir = join(process.cwd(), "scripts"), normalizedName = name.replace(/:/g, "/");
|
|
15
16
|
for (const ext of [".ts", ".js", ""]) {
|
|
16
17
|
const scriptPath = join(scriptsDir, `${normalizedName}${ext}`);
|
|
17
18
|
if (existsSync(scriptPath))
|
|
18
|
-
return
|
|
19
|
+
return scriptPath;
|
|
19
20
|
}
|
|
20
|
-
return
|
|
21
|
+
return null;
|
|
21
22
|
}
|
|
22
|
-
function
|
|
23
|
+
function isLocalScript(name) {
|
|
24
|
+
return findLocalScript(name) !== null;
|
|
25
|
+
}
|
|
26
|
+
function findBuiltInScript(name) {
|
|
23
27
|
try {
|
|
24
28
|
const resolved = import.meta.resolve("@take-out/scripts/package.json"), packageJsonPath = new URL(resolved).pathname, packageRoot = join(packageJsonPath, ".."), srcPath = join(packageRoot, "src"), normalizedName = name.replace(/:/g, "/");
|
|
25
29
|
for (const ext of [".ts", ".js", ""]) {
|
|
26
30
|
const scriptPath = join(srcPath, `${normalizedName}${ext}`);
|
|
27
31
|
if (existsSync(scriptPath))
|
|
28
|
-
return
|
|
32
|
+
return scriptPath;
|
|
29
33
|
}
|
|
30
34
|
} catch {
|
|
31
35
|
}
|
|
32
|
-
return
|
|
36
|
+
return null;
|
|
33
37
|
}
|
|
34
|
-
|
|
38
|
+
function isBuiltInScript(name) {
|
|
39
|
+
return findBuiltInScript(name) !== null;
|
|
40
|
+
}
|
|
41
|
+
const isShorthand = !0;
|
|
35
42
|
if (isShorthand) {
|
|
36
43
|
const firstArg = process.argv[2], secondArg = process.argv[3];
|
|
37
|
-
firstArg && ![
|
|
44
|
+
if (firstArg && ![
|
|
38
45
|
"docs",
|
|
39
46
|
"onboard",
|
|
40
47
|
"run",
|
|
@@ -47,7 +54,21 @@ if (isShorthand) {
|
|
|
47
54
|
"-h",
|
|
48
55
|
"--version",
|
|
49
56
|
"-v"
|
|
50
|
-
].includes(firstArg)
|
|
57
|
+
].includes(firstArg)) {
|
|
58
|
+
let resolvedScriptName;
|
|
59
|
+
isScriptCategory(firstArg) ? (secondArg && !secondArg.startsWith("-") && (resolvedScriptName = `${firstArg}/${secondArg}`, process.argv.splice(2, 2, resolvedScriptName)), process.argv.splice(2, 0, "run")) : firstArg?.includes("/") || isLocalScript(firstArg) || isBuiltInScript(firstArg) ? (resolvedScriptName = firstArg, process.argv.splice(2, 0, "run")) : process.argv.splice(2, 0, "script");
|
|
60
|
+
const hasHelp = process.argv.includes("--help") || process.argv.includes("-h");
|
|
61
|
+
if (resolvedScriptName && hasHelp) {
|
|
62
|
+
const scriptPath = findLocalScript(resolvedScriptName) || findBuiltInScript(resolvedScriptName);
|
|
63
|
+
if (scriptPath) {
|
|
64
|
+
const flagArgs = process.argv.slice(3).filter((a) => a !== resolvedScriptName), result = spawnSync("bun", [scriptPath, ...flagArgs], {
|
|
65
|
+
stdio: "inherit",
|
|
66
|
+
shell: !1
|
|
67
|
+
});
|
|
68
|
+
process.exit(result.status || 0);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
51
72
|
}
|
|
52
73
|
const main = defineCommand({
|
|
53
74
|
meta: {
|
|
@@ -68,7 +89,7 @@ const main = defineCommand({
|
|
|
68
89
|
async run() {
|
|
69
90
|
if (!(process.argv.length > 2)) {
|
|
70
91
|
const { listAllScripts } = await import("./utils/script-listing");
|
|
71
|
-
listAllScripts();
|
|
92
|
+
await listAllScripts();
|
|
72
93
|
}
|
|
73
94
|
}
|
|
74
95
|
});
|
package/dist/esm/cli.js.map
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/cli.ts"],
|
|
4
|
-
"mappings": ";AAOA,SAAS,YAAY,gBAAgB;AACrC,SAAS,YAAY;AAErB,SAAS,eAAe,eAAe;AAGvC,SAAS,iBAAiB,MAAuB;AAC/C,QAAM,aAAa,KAAK,QAAQ,IAAI,GAAG,SAAS,GAC1C,eAAe,KAAK,YAAY,IAAI;AAE1C,MAAI;AACF,WAAO,WAAW,YAAY,KAAK,SAAS,YAAY,EAAE,YAAY;AAAA,EACxE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGA,SAAS,
|
|
4
|
+
"mappings": ";AAOA,SAAS,iBAAiB;AAC1B,SAAS,YAAY,gBAAgB;AACrC,SAAS,YAAY;AAErB,SAAS,eAAe,eAAe;AAGvC,SAAS,iBAAiB,MAAuB;AAC/C,QAAM,aAAa,KAAK,QAAQ,IAAI,GAAG,SAAS,GAC1C,eAAe,KAAK,YAAY,IAAI;AAE1C,MAAI;AACF,WAAO,WAAW,YAAY,KAAK,SAAS,YAAY,EAAE,YAAY;AAAA,EACxE,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAGA,SAAS,gBAAgB,MAA6B;AACpD,QAAM,aAAa,KAAK,QAAQ,IAAI,GAAG,SAAS,GAC1C,iBAAiB,KAAK,QAAQ,MAAM,GAAG;AAE7C,aAAW,OAAO,CAAC,OAAO,OAAO,EAAE,GAAG;AACpC,UAAM,aAAa,KAAK,YAAY,GAAG,cAAc,GAAG,GAAG,EAAE;AAC7D,QAAI,WAAW,UAAU;AACvB,aAAO;AAAA,EAEX;AAEA,SAAO;AACT;AAEA,SAAS,cAAc,MAAuB;AAC5C,SAAO,gBAAgB,IAAI,MAAM;AACnC;AAGA,SAAS,kBAAkB,MAA6B;AACtD,MAAI;AACF,UAAM,WAAW,YAAY,QAAQ,gCAAgC,GAC/D,kBAAkB,IAAI,IAAI,QAAQ,EAAE,UACpC,cAAc,KAAK,iBAAiB,IAAI,GACxC,UAAU,KAAK,aAAa,KAAK,GAGjC,iBAAiB,KAAK,QAAQ,MAAM,GAAG;AAG7C,eAAW,OAAO,CAAC,OAAO,OAAO,EAAE,GAAG;AACpC,YAAM,aAAa,KAAK,SAAS,GAAG,cAAc,GAAG,GAAG,EAAE;AAC1D,UAAI,WAAW,UAAU;AACvB,eAAO;AAAA,IAEX;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;AAEA,SAAS,gBAAgB,MAAuB;AAC9C,SAAO,kBAAkB,IAAI,MAAM;AACrC;AAGA,MAAM,cAAc;AAEpB,IAAI,aAAa;AAEf,QAAM,WAAW,QAAQ,KAAK,CAAC,GACzB,YAAY,QAAQ,KAAK,CAAC;AAgBhC,MAAI,YAAY,CAfQ;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EAEiC,SAAS,QAAQ,GAAG;AAEnD,QAAI;AAIJ,IAAI,iBAAiB,QAAQ,KAGvB,aAAa,CAAC,UAAU,WAAW,GAAG,MACxC,qBAAqB,GAAG,QAAQ,IAAI,SAAS,IAE7C,QAAQ,KAAK,OAAO,GAAG,GAAG,kBAAkB,IAG9C,QAAQ,KAAK,OAAO,GAAG,GAAG,KAAK,KACtB,UAAU,SAAS,GAAG,KAItB,cAAc,QAAQ,KAAK,gBAAgB,QAAQ,KAH5D,qBAAqB,UAErB,QAAQ,KAAK,OAAO,GAAG,GAAG,KAAK,KAQ/B,QAAQ,KAAK,OAAO,GAAG,GAAG,QAAQ;AAIpC,UAAM,UAAU,QAAQ,KAAK,SAAS,QAAQ,KAAK,QAAQ,KAAK,SAAS,IAAI;AAC7E,QAAI,sBAAsB,SAAS;AACjC,YAAM,aAAa,gBAAgB,kBAAkB,KAAK,kBAAkB,kBAAkB;AAC9F,UAAI,YAAY;AACd,cAAM,WAAW,QAAQ,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,MAAM,kBAAkB,GACvE,SAAS,UAAU,OAAO,CAAC,YAAY,GAAG,QAAQ,GAAG;AAAA,UACzD,OAAO;AAAA,UACP,OAAO;AAAA,QACT,CAAC;AACD,gBAAQ,KAAK,OAAO,UAAU,CAAC;AAAA,MACjC;AAAA,IACF;AAAA,EACF;AACF;AAEA,MAAM,OAAO,cAAc;AAAA,EACzB,MAAM;AAAA,IACJ,MAAM,cAAc,QAAQ;AAAA,IAC5B,SAAS;AAAA,IACT,aAAa;AAAA,EACf;AAAA,EACA,aAAa;AAAA,IACX,SAAS,MAAM,OAAO,oBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,IACxE,MAAM,MAAM,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW;AAAA,IAC/D,aAAa,MAAM,OAAO,sBAAsB,EAAE,KAAK,CAAC,MAAM,EAAE,eAAe;AAAA,IAC/E,KAAK,MAAM,OAAO,gBAAgB,EAAE,KAAK,CAAC,MAAM,EAAE,UAAU;AAAA,IAC5D,WAAW,MAAM,OAAO,oBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,IACzE,QAAQ,MAAM,OAAO,mBAAmB,EAAE,KAAK,CAAC,MAAM,EAAE,aAAa;AAAA,IACrE,MAAM,MAAM,OAAO,iBAAiB,EAAE,KAAK,CAAC,MAAM,EAAE,WAAW;AAAA,IAC/D,SAAS,MAAM,OAAO,oBAAoB,EAAE,KAAK,CAAC,MAAM,EAAE,cAAc;AAAA,EAC1E;AAAA,EACA,MAAM,MAAM;AAEV,QAAI,EADY,QAAQ,KAAK,SAAS,IACxB;AACZ,YAAM,EAAE,eAAe,IAAI,MAAM,OAAO,wBAAwB;AAChE,YAAM,eAAe;AAAA,IACvB;AAAA,EACF;AACF,CAAC;AAED,QAAQ,IAAI;",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|