@take-out/cli 0.4.3 → 0.4.5
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/dist/cjs/cli.cjs +53 -35
- package/dist/cjs/commands/changed.cjs +133 -95
- package/dist/cjs/commands/docs.cjs +276 -203
- package/dist/cjs/commands/env-setup.cjs +45 -33
- package/dist/cjs/commands/onboard.cjs +668 -224
- package/dist/cjs/commands/run-all.cjs +54 -45
- package/dist/cjs/commands/run.cjs +80 -65
- package/dist/cjs/commands/script.cjs +263 -187
- package/dist/cjs/commands/skills.cjs +174 -118
- package/dist/cjs/commands/sync.cjs +193 -93
- package/dist/cjs/constants/ascii.cjs +14 -12
- package/dist/cjs/index.cjs +12 -10
- package/dist/cjs/types.cjs +7 -5
- package/dist/cjs/utils/env-categories.cjs +53 -48
- package/dist/cjs/utils/env-setup.cjs +214 -106
- package/dist/cjs/utils/env.cjs +65 -44
- package/dist/cjs/utils/files.cjs +186 -113
- package/dist/cjs/utils/parallel-runner.cjs +125 -75
- package/dist/cjs/utils/ports.cjs +21 -21
- package/dist/cjs/utils/prerequisites.cjs +42 -34
- package/dist/cjs/utils/prompts.cjs +66 -41
- package/dist/cjs/utils/script-listing.cjs +130 -60
- package/dist/cjs/utils/script-utils.cjs +29 -19
- package/dist/cjs/utils/sync.cjs +67 -45
- package/dist/esm/cli.mjs +40 -24
- package/dist/esm/cli.mjs.map +1 -1
- package/dist/esm/commands/changed.mjs +104 -68
- package/dist/esm/commands/changed.mjs.map +1 -1
- package/dist/esm/commands/docs.mjs +245 -174
- package/dist/esm/commands/docs.mjs.map +1 -1
- package/dist/esm/commands/env-setup.mjs +18 -8
- package/dist/esm/commands/env-setup.mjs.map +1 -1
- package/dist/esm/commands/onboard.mjs +631 -189
- package/dist/esm/commands/onboard.mjs.map +1 -1
- package/dist/esm/commands/run-all.mjs +26 -19
- package/dist/esm/commands/run-all.mjs.map +1 -1
- package/dist/esm/commands/run.mjs +52 -39
- package/dist/esm/commands/run.mjs.map +1 -1
- package/dist/esm/commands/script.mjs +230 -156
- package/dist/esm/commands/script.mjs.map +1 -1
- package/dist/esm/commands/skills.mjs +143 -89
- package/dist/esm/commands/skills.mjs.map +1 -1
- package/dist/esm/commands/sync.mjs +160 -62
- package/dist/esm/commands/sync.mjs.map +1 -1
- package/dist/esm/constants/ascii.mjs +2 -2
- package/dist/esm/constants/ascii.mjs.map +1 -1
- package/dist/esm/utils/env-categories.mjs +29 -26
- package/dist/esm/utils/env-categories.mjs.map +1 -1
- package/dist/esm/utils/env-setup.mjs +184 -78
- package/dist/esm/utils/env-setup.mjs.map +1 -1
- package/dist/esm/utils/env.mjs +50 -31
- package/dist/esm/utils/env.mjs.map +1 -1
- package/dist/esm/utils/files.mjs +171 -100
- package/dist/esm/utils/files.mjs.map +1 -1
- package/dist/esm/utils/parallel-runner.mjs +111 -63
- package/dist/esm/utils/parallel-runner.mjs.map +1 -1
- package/dist/esm/utils/ports.mjs +9 -11
- package/dist/esm/utils/ports.mjs.map +1 -1
- package/dist/esm/utils/prerequisites.mjs +30 -24
- package/dist/esm/utils/prerequisites.mjs.map +1 -1
- package/dist/esm/utils/prompts.mjs +40 -17
- package/dist/esm/utils/prompts.mjs.map +1 -1
- package/dist/esm/utils/script-listing.mjs +101 -33
- package/dist/esm/utils/script-listing.mjs.map +1 -1
- package/dist/esm/utils/script-utils.mjs +14 -6
- package/dist/esm/utils/script-utils.mjs.map +1 -1
- package/dist/esm/utils/sync.mjs +38 -18
- package/dist/esm/utils/sync.mjs.map +1 -1
- package/package.json +5 -5
|
@@ -2,42 +2,44 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
6
|
-
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
32
34
|
var run_all_exports = {};
|
|
33
35
|
__export(run_all_exports, {
|
|
34
36
|
runAllCommand: () => runAllCommand
|
|
35
37
|
});
|
|
36
38
|
module.exports = __toCommonJS(run_all_exports);
|
|
37
|
-
var import_node_child_process = require("node:child_process")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
var import_node_child_process = require("node:child_process");
|
|
40
|
+
var import_node_fs = require("node:fs");
|
|
41
|
+
var import_node_path = require("node:path");
|
|
42
|
+
var import_citty = require("citty");
|
|
41
43
|
const runAllCommand = (0, import_citty.defineCommand)({
|
|
42
44
|
meta: {
|
|
43
45
|
name: "run-all",
|
|
@@ -47,25 +49,28 @@ const runAllCommand = (0, import_citty.defineCommand)({
|
|
|
47
49
|
scripts: {
|
|
48
50
|
type: "positional",
|
|
49
51
|
description: "Scripts to run in parallel",
|
|
50
|
-
required:
|
|
52
|
+
required: false
|
|
51
53
|
}
|
|
52
54
|
},
|
|
53
55
|
run: async () => {
|
|
54
|
-
const scriptArgs = process.argv.slice(3)
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
const scriptArgs = process.argv.slice(3);
|
|
57
|
+
const usePty = scriptArgs.includes("--pty");
|
|
58
|
+
const filteredArgs = scriptArgs.filter(a => a !== "--pty");
|
|
57
59
|
if (usePty) {
|
|
58
60
|
const projectRoot = findProjectRoot();
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
61
|
+
if (!projectRoot) {
|
|
62
|
+
console.error("Could not find project root");
|
|
63
|
+
process.exit(1);
|
|
64
|
+
}
|
|
65
|
+
const localRunPath = (0, import_node_path.resolve)(projectRoot, "packages/run/src/run-pty.mjs");
|
|
66
|
+
const scriptPath = (0, import_node_fs.existsSync)(localRunPath) ? localRunPath : (0, import_node_path.resolve)(projectRoot, "node_modules/@take-out/run/src/run-pty.mjs");
|
|
67
|
+
const child = (0, import_node_child_process.spawn)("node", [scriptPath, ...filteredArgs], {
|
|
68
|
+
stdio: "inherit",
|
|
69
|
+
shell: false
|
|
70
|
+
});
|
|
71
|
+
const code = await new Promise(resolve2 => {
|
|
72
|
+
child.on("exit", code2 => resolve2(code2 || 0));
|
|
73
|
+
});
|
|
69
74
|
process.exit(code);
|
|
70
75
|
} else {
|
|
71
76
|
const {
|
|
@@ -78,12 +83,16 @@ const runAllCommand = (0, import_citty.defineCommand)({
|
|
|
78
83
|
});
|
|
79
84
|
function findProjectRoot() {
|
|
80
85
|
let currentDir = process.cwd();
|
|
81
|
-
|
|
86
|
+
while (currentDir !== (0, import_node_path.parse)(currentDir).root) {
|
|
82
87
|
const packageJsonPath = (0, import_node_path.resolve)(currentDir, "package.json");
|
|
83
|
-
if ((0, import_node_fs.existsSync)(packageJsonPath))
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
if ((0, import_node_fs.existsSync)(packageJsonPath)) {
|
|
89
|
+
try {
|
|
90
|
+
const pkg = JSON.parse((0, import_node_fs.readFileSync)(packageJsonPath, "utf8"));
|
|
91
|
+
if (pkg.workspaces || pkg.takeout) {
|
|
92
|
+
return currentDir;
|
|
93
|
+
}
|
|
94
|
+
} catch {}
|
|
95
|
+
}
|
|
87
96
|
currentDir = (0, import_node_path.resolve)(currentDir, "..");
|
|
88
97
|
}
|
|
89
98
|
return "";
|
|
@@ -2,42 +2,44 @@ var __create = Object.create;
|
|
|
2
2
|
var __defProp = Object.defineProperty;
|
|
3
3
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf
|
|
6
|
-
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
7
|
var __export = (target, all) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
for (var name in all) __defProp(target, name, {
|
|
9
|
+
get: all[name],
|
|
10
|
+
enumerable: true
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
15
16
|
get: () => from[key],
|
|
16
17
|
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
17
18
|
});
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
20
22
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
23
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
24
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
25
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
26
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
27
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
28
|
+
value: mod,
|
|
29
|
+
enumerable: true
|
|
30
|
+
}) : target, mod));
|
|
31
|
+
var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
|
|
32
|
+
value: true
|
|
33
|
+
}), mod);
|
|
32
34
|
var run_exports = {};
|
|
33
35
|
__export(run_exports, {
|
|
34
36
|
runCommand: () => runCommand
|
|
35
37
|
});
|
|
36
38
|
module.exports = __toCommonJS(run_exports);
|
|
37
|
-
var import_node_child_process = require("node:child_process")
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
39
|
+
var import_node_child_process = require("node:child_process");
|
|
40
|
+
var import_node_fs = require("node:fs");
|
|
41
|
+
var import_node_path = require("node:path");
|
|
42
|
+
var import_citty = require("citty");
|
|
41
43
|
const runCommand = (0, import_citty.defineCommand)({
|
|
42
44
|
meta: {
|
|
43
45
|
name: "run",
|
|
@@ -47,29 +49,30 @@ const runCommand = (0, import_citty.defineCommand)({
|
|
|
47
49
|
scripts: {
|
|
48
50
|
type: "positional",
|
|
49
51
|
description: "Scripts to run",
|
|
50
|
-
required:
|
|
52
|
+
required: false
|
|
51
53
|
}
|
|
52
54
|
},
|
|
53
55
|
run: async () => {
|
|
54
|
-
const scriptArgs = process.argv.slice(3)
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
const scriptArgs = process.argv.slice(3);
|
|
57
|
+
const firstArg = scriptArgs[0];
|
|
58
|
+
const secondArg = scriptArgs[1];
|
|
57
59
|
if (firstArg) {
|
|
58
|
-
const localDir = (0, import_node_path.join)(process.cwd(), "scripts")
|
|
59
|
-
|
|
60
|
+
const localDir = (0, import_node_path.join)(process.cwd(), "scripts");
|
|
61
|
+
const categoryPath = (0, import_node_path.join)(localDir, firstArg);
|
|
60
62
|
if ((0, import_node_fs.existsSync)(categoryPath) && (0, import_node_fs.statSync)(categoryPath).isDirectory()) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
63
|
+
const nonFlagArgs = scriptArgs.slice(1).filter(a => !a.startsWith("--"));
|
|
64
|
+
const hasSubScript = nonFlagArgs.length > 0;
|
|
65
|
+
const hasAllFlag = secondArg === "--all" && !hasSubScript;
|
|
66
|
+
const hasDefaultAllFlag = scriptArgs.includes("--default-all") && !hasSubScript;
|
|
64
67
|
if (hasAllFlag || hasDefaultAllFlag) {
|
|
65
68
|
const {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
discoverScripts: discoverScripts2
|
|
70
|
+
} = await import("../utils/script-utils");
|
|
71
|
+
const {
|
|
72
|
+
runScriptsInParallel
|
|
73
|
+
} = await import("../utils/parallel-runner");
|
|
74
|
+
const pc2 = (await import("picocolors")).default;
|
|
75
|
+
const categoryScripts2 = discoverScripts2(categoryPath);
|
|
73
76
|
if (categoryScripts2.size === 0) {
|
|
74
77
|
console.info(pc2.yellow(`No scripts found in ${firstArg}/`));
|
|
75
78
|
return;
|
|
@@ -84,41 +87,53 @@ const runCommand = (0, import_citty.defineCommand)({
|
|
|
84
87
|
return;
|
|
85
88
|
}
|
|
86
89
|
const {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
90
|
+
discoverScripts,
|
|
91
|
+
getAllScriptMetadata
|
|
92
|
+
} = await import("../utils/script-utils");
|
|
93
|
+
const pc = (await import("picocolors")).default;
|
|
94
|
+
const categoryScripts = discoverScripts(categoryPath);
|
|
92
95
|
if (categoryScripts.size > 0) {
|
|
93
96
|
const metadata = await getAllScriptMetadata(categoryScripts);
|
|
94
|
-
console.info()
|
|
97
|
+
console.info();
|
|
98
|
+
console.info(pc.bold(pc.cyan(`${firstArg} Scripts`)));
|
|
99
|
+
console.info();
|
|
95
100
|
for (const [name] of categoryScripts) {
|
|
96
|
-
const shortName = name.replace(`${firstArg}/`, "")
|
|
97
|
-
|
|
101
|
+
const shortName = name.replace(`${firstArg}/`, "");
|
|
102
|
+
const meta = metadata.get(name);
|
|
98
103
|
let line = ` ${pc.green(shortName)}`;
|
|
99
|
-
|
|
104
|
+
if (meta?.description) {
|
|
105
|
+
line += pc.dim(` - ${meta.description}`);
|
|
106
|
+
}
|
|
107
|
+
if (meta?.args && meta.args.length > 0) {
|
|
108
|
+
line += pc.dim(` [${meta.args.join(", ")}]`);
|
|
109
|
+
}
|
|
110
|
+
console.info(line);
|
|
100
111
|
}
|
|
101
|
-
console.info()
|
|
112
|
+
console.info();
|
|
113
|
+
console.info(pc.dim(`Run: tko ${firstArg} <name> [args...]`));
|
|
114
|
+
console.info(pc.dim(`Or: tko ${firstArg} --all to run all scripts`));
|
|
115
|
+
console.info(pc.dim(`Or: tko run ${firstArg}/<name> [args...] to execute`));
|
|
116
|
+
console.info();
|
|
102
117
|
} else {
|
|
103
118
|
const pc2 = (await import("picocolors")).default;
|
|
104
119
|
console.info(pc2.yellow(`No scripts found in ${firstArg}/`));
|
|
105
120
|
}
|
|
106
121
|
return;
|
|
107
122
|
}
|
|
108
|
-
const normalizedName = firstArg.replace(/:/g, "/")
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
123
|
+
const normalizedName = firstArg.replace(/:/g, "/");
|
|
124
|
+
const {
|
|
125
|
+
findScript
|
|
126
|
+
} = await import("./script");
|
|
127
|
+
const scriptPath = findScript(normalizedName);
|
|
113
128
|
if (scriptPath) {
|
|
114
|
-
const scriptArgsToPass = scriptArgs.slice(1).filter(a => a !== "--default-all" && a !== "--all")
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
129
|
+
const scriptArgsToPass = scriptArgs.slice(1).filter(a => a !== "--default-all" && a !== "--all");
|
|
130
|
+
const child = (0, import_node_child_process.spawn)("bun", [scriptPath, ...scriptArgsToPass], {
|
|
131
|
+
stdio: "inherit",
|
|
132
|
+
shell: false
|
|
133
|
+
});
|
|
134
|
+
const code = await new Promise(resolve => {
|
|
135
|
+
child.on("exit", code2 => resolve(code2 || 0));
|
|
136
|
+
});
|
|
122
137
|
process.exit(code);
|
|
123
138
|
}
|
|
124
139
|
}
|