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