@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.
Files changed (180) hide show
  1. package/README.md +0 -32
  2. package/cli.mjs +2 -2
  3. package/dist/cjs/cli.cjs +33 -11
  4. package/dist/cjs/cli.js +32 -12
  5. package/dist/cjs/cli.js.map +1 -1
  6. package/dist/cjs/commands/run.cjs +6 -5
  7. package/dist/cjs/commands/run.js +6 -5
  8. package/dist/cjs/commands/run.js.map +1 -1
  9. package/dist/cjs/commands/script.cjs +2 -3
  10. package/dist/cjs/commands/script.js +2 -3
  11. package/dist/cjs/commands/script.js.map +1 -1
  12. package/dist/cjs/index.cjs +2 -40
  13. package/dist/cjs/index.js +2 -36
  14. package/dist/cjs/index.js.map +1 -1
  15. package/dist/cjs/utils/env-setup.js.map +1 -1
  16. package/dist/cjs/utils/script-listing.cjs +22 -29
  17. package/dist/cjs/utils/script-listing.js +20 -39
  18. package/dist/cjs/utils/script-listing.js.map +1 -1
  19. package/dist/cjs/utils/script-utils.cjs +46 -47
  20. package/dist/cjs/utils/script-utils.js +41 -46
  21. package/dist/cjs/utils/script-utils.js.map +1 -1
  22. package/dist/esm/cli.js +32 -11
  23. package/dist/esm/cli.js.map +1 -1
  24. package/dist/esm/cli.mjs +32 -10
  25. package/dist/esm/cli.mjs.map +1 -1
  26. package/dist/esm/commands/run.js +6 -5
  27. package/dist/esm/commands/run.js.map +1 -1
  28. package/dist/esm/commands/run.mjs +6 -5
  29. package/dist/esm/commands/run.mjs.map +1 -1
  30. package/dist/esm/commands/script.js +3 -8
  31. package/dist/esm/commands/script.js.map +1 -1
  32. package/dist/esm/commands/script.mjs +4 -4
  33. package/dist/esm/commands/script.mjs.map +1 -1
  34. package/dist/esm/index.js +2 -80
  35. package/dist/esm/index.js.map +1 -1
  36. package/dist/esm/index.mjs +2 -6
  37. package/dist/esm/index.mjs.map +1 -1
  38. package/dist/esm/utils/env-setup.js +2 -4
  39. package/dist/esm/utils/env-setup.js.map +1 -1
  40. package/dist/esm/utils/env-setup.mjs +1 -1
  41. package/dist/esm/utils/env-setup.mjs.map +1 -1
  42. package/dist/esm/utils/script-listing.js +25 -40
  43. package/dist/esm/utils/script-listing.js.map +1 -1
  44. package/dist/esm/utils/script-listing.mjs +24 -30
  45. package/dist/esm/utils/script-listing.mjs.map +1 -1
  46. package/dist/esm/utils/script-utils.js +42 -54
  47. package/dist/esm/utils/script-utils.js.map +1 -1
  48. package/dist/esm/utils/script-utils.mjs +45 -46
  49. package/dist/esm/utils/script-utils.mjs.map +1 -1
  50. package/package.json +7 -6
  51. package/src/cli.ts +42 -14
  52. package/src/commands/run.ts +10 -8
  53. package/src/commands/script.ts +4 -8
  54. package/src/index.ts +1 -63
  55. package/src/utils/env-setup.ts +3 -7
  56. package/src/utils/script-listing.ts +46 -70
  57. package/src/utils/script-utils.ts +51 -105
  58. package/types/cli.d.ts +1 -1
  59. package/types/commands/run.d.ts.map +1 -1
  60. package/types/commands/script.d.ts +1 -1
  61. package/types/commands/script.d.ts.map +1 -1
  62. package/types/index.d.ts +1 -11
  63. package/types/index.d.ts.map +1 -1
  64. package/types/utils/env-setup.d.ts.map +1 -1
  65. package/types/utils/script-listing.d.ts +2 -3
  66. package/types/utils/script-listing.d.ts.map +1 -1
  67. package/types/utils/script-utils.d.ts +3 -5
  68. package/types/utils/script-utils.d.ts.map +1 -1
  69. package/dist/cjs/cli.native.js +0 -72
  70. package/dist/cjs/cli.native.js.map +0 -1
  71. package/dist/cjs/commands/changed.native.js +0 -310
  72. package/dist/cjs/commands/changed.native.js.map +0 -1
  73. package/dist/cjs/commands/docs.native.js +0 -553
  74. package/dist/cjs/commands/docs.native.js.map +0 -1
  75. package/dist/cjs/commands/env-setup.native.js +0 -96
  76. package/dist/cjs/commands/env-setup.native.js.map +0 -1
  77. package/dist/cjs/commands/onboard.native.js +0 -628
  78. package/dist/cjs/commands/onboard.native.js.map +0 -1
  79. package/dist/cjs/commands/run.native.js +0 -169
  80. package/dist/cjs/commands/run.native.js.map +0 -1
  81. package/dist/cjs/commands/script.native.js +0 -491
  82. package/dist/cjs/commands/script.native.js.map +0 -1
  83. package/dist/cjs/commands/sync.native.js +0 -228
  84. package/dist/cjs/commands/sync.native.js.map +0 -1
  85. package/dist/cjs/commands/upgrade.cjs +0 -90
  86. package/dist/cjs/commands/upgrade.js +0 -78
  87. package/dist/cjs/commands/upgrade.js.map +0 -6
  88. package/dist/cjs/commands/upgrade.native.js +0 -95
  89. package/dist/cjs/commands/upgrade.native.js.map +0 -1
  90. package/dist/cjs/constants/ascii.native.js +0 -39
  91. package/dist/cjs/constants/ascii.native.js.map +0 -1
  92. package/dist/cjs/index.native.js +0 -67
  93. package/dist/cjs/index.native.js.map +0 -1
  94. package/dist/cjs/types.native.js +0 -19
  95. package/dist/cjs/types.native.js.map +0 -1
  96. package/dist/cjs/utils/env-categories.native.js +0 -288
  97. package/dist/cjs/utils/env-categories.native.js.map +0 -1
  98. package/dist/cjs/utils/env-setup.native.js +0 -281
  99. package/dist/cjs/utils/env-setup.native.js.map +0 -1
  100. package/dist/cjs/utils/env.native.js +0 -130
  101. package/dist/cjs/utils/env.native.js.map +0 -1
  102. package/dist/cjs/utils/files.native.js +0 -278
  103. package/dist/cjs/utils/files.native.js.map +0 -1
  104. package/dist/cjs/utils/parallel-runner.native.js +0 -144
  105. package/dist/cjs/utils/parallel-runner.native.js.map +0 -1
  106. package/dist/cjs/utils/ports.native.js +0 -123
  107. package/dist/cjs/utils/ports.native.js.map +0 -1
  108. package/dist/cjs/utils/prerequisites.native.js +0 -128
  109. package/dist/cjs/utils/prerequisites.native.js.map +0 -1
  110. package/dist/cjs/utils/prompts.native.js +0 -167
  111. package/dist/cjs/utils/prompts.native.js.map +0 -1
  112. package/dist/cjs/utils/script-listing.native.js +0 -191
  113. package/dist/cjs/utils/script-listing.native.js.map +0 -1
  114. package/dist/cjs/utils/script-utils.native.js +0 -126
  115. package/dist/cjs/utils/script-utils.native.js.map +0 -6
  116. package/dist/cjs/utils/sync.native.js +0 -93
  117. package/dist/cjs/utils/sync.native.js.map +0 -1
  118. package/dist/cjs/utils/welcome.cjs +0 -50
  119. package/dist/cjs/utils/welcome.js +0 -42
  120. package/dist/cjs/utils/welcome.js.map +0 -6
  121. package/dist/cjs/utils/welcome.native.js +0 -47
  122. package/dist/cjs/utils/welcome.native.js.map +0 -6
  123. package/dist/esm/cli.native.js +0 -69
  124. package/dist/esm/cli.native.js.map +0 -1
  125. package/dist/esm/commands/changed.native.js +0 -273
  126. package/dist/esm/commands/changed.native.js.map +0 -1
  127. package/dist/esm/commands/docs.native.js +0 -515
  128. package/dist/esm/commands/docs.native.js.map +0 -1
  129. package/dist/esm/commands/env-setup.native.js +0 -59
  130. package/dist/esm/commands/env-setup.native.js.map +0 -1
  131. package/dist/esm/commands/onboard.native.js +0 -591
  132. package/dist/esm/commands/onboard.native.js.map +0 -1
  133. package/dist/esm/commands/run.native.js +0 -132
  134. package/dist/esm/commands/run.native.js.map +0 -1
  135. package/dist/esm/commands/script.native.js +0 -445
  136. package/dist/esm/commands/script.native.js.map +0 -1
  137. package/dist/esm/commands/sync.native.js +0 -190
  138. package/dist/esm/commands/sync.native.js.map +0 -1
  139. package/dist/esm/commands/upgrade.js +0 -65
  140. package/dist/esm/commands/upgrade.js.map +0 -6
  141. package/dist/esm/commands/upgrade.mjs +0 -67
  142. package/dist/esm/commands/upgrade.mjs.map +0 -1
  143. package/dist/esm/commands/upgrade.native.js +0 -69
  144. package/dist/esm/commands/upgrade.native.js.map +0 -1
  145. package/dist/esm/constants/ascii.native.js +0 -12
  146. package/dist/esm/constants/ascii.native.js.map +0 -1
  147. package/dist/esm/index.native.js +0 -7
  148. package/dist/esm/index.native.js.map +0 -1
  149. package/dist/esm/types.native.js +0 -2
  150. package/dist/esm/types.native.js.map +0 -1
  151. package/dist/esm/utils/env-categories.native.js +0 -246
  152. package/dist/esm/utils/env-categories.native.js.map +0 -1
  153. package/dist/esm/utils/env-setup.native.js +0 -243
  154. package/dist/esm/utils/env-setup.native.js.map +0 -1
  155. package/dist/esm/utils/env.native.js +0 -99
  156. package/dist/esm/utils/env.native.js.map +0 -1
  157. package/dist/esm/utils/files.native.js +0 -247
  158. package/dist/esm/utils/files.native.js.map +0 -1
  159. package/dist/esm/utils/parallel-runner.native.js +0 -118
  160. package/dist/esm/utils/parallel-runner.native.js.map +0 -1
  161. package/dist/esm/utils/ports.native.js +0 -93
  162. package/dist/esm/utils/ports.native.js.map +0 -1
  163. package/dist/esm/utils/prerequisites.native.js +0 -97
  164. package/dist/esm/utils/prerequisites.native.js.map +0 -1
  165. package/dist/esm/utils/prompts.native.js +0 -115
  166. package/dist/esm/utils/prompts.native.js.map +0 -1
  167. package/dist/esm/utils/script-listing.native.js +0 -151
  168. package/dist/esm/utils/script-listing.native.js.map +0 -1
  169. package/dist/esm/utils/script-utils.native.js +0 -112
  170. package/dist/esm/utils/script-utils.native.js.map +0 -6
  171. package/dist/esm/utils/sync.native.js +0 -53
  172. package/dist/esm/utils/sync.native.js.map +0 -1
  173. package/dist/esm/utils/welcome.js +0 -21
  174. package/dist/esm/utils/welcome.js.map +0 -6
  175. package/dist/esm/utils/welcome.mjs +0 -15
  176. package/dist/esm/utils/welcome.mjs.map +0 -1
  177. package/dist/esm/utils/welcome.native.js +0 -18
  178. package/dist/esm/utils/welcome.native.js.map +0 -1
  179. package/types/utils/welcome.d.ts +0 -6
  180. 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, showDescriptions = !1) {
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 parts = name.split("/");
62
- if (parts.length > 0 && parts[0]) {
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, path] of rootScripts) {
63
+ for (const [name] of rootScripts) {
68
64
  let line = ` ${import_picocolors.default.green(name)}`;
69
- if (showDescriptions) {
70
- const metadata = (0, import_script_utils.getScriptMetadata)(path);
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, path] of categoryScripts) {
78
- const shortName = name.startsWith(`${category}/`) ? name.substring(category.length + 1) : 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
- if (showDescriptions) {
81
- const metadata = (0, import_script_utils.getScriptMetadata)(path);
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("\u{1F6E0}\uFE0F 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`));
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
- localScripts.size > 0 && formatScriptList("\u{1F4C1} Local Scripts", localScripts, !0), builtInScripts.size > 0 && formatScriptList("\u{1F4E6} Built-in Scripts", builtInScripts, !0), 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 (e.g., tko onboard)")}`), console.info(` ${import_picocolors.default.cyan("tko <group-name> <script-name>")} ${import_picocolors.default.dim("Execute nested script (e.g., tko web build)")}`), 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(` ${import_picocolors.default.cyan("tko check types")} ${import_picocolors.default.dim("Run TypeScript type checking")}`), console.info();
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
- console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(`\u{1F4C1} ${categoryName} Scripts`))), console.info();
102
- for (const [name, path] of categoryScripts) {
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
- metadata = (0, import_script_utils.getScriptMetadata)(path);
97
+ meta = metadata.get(name);
105
98
  let line = ` ${import_picocolors.default.green(shortName)}`;
106
- metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`)), metadata.args && metadata.args.length > 0 && (line += import_picocolors.default.dim(` [${metadata.args.join(", ")}]`)), console.info(line);
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, showDescriptions = !1) {
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 parts = name.split("/");
48
- if (parts.length > 0 && parts[0]) {
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, path] of rootScripts) {
50
+ for (const [name] of rootScripts) {
55
51
  let line = ` ${import_picocolors.default.green(name)}`;
56
- if (showDescriptions) {
57
- const metadata = (0, import_script_utils.getScriptMetadata)(path);
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, path] of categoryScripts) {
65
- const shortName = name.startsWith(`${category}/`) ? name.substring(category.length + 1) : 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
- if (showDescriptions) {
68
- const metadata = (0, import_script_utils.getScriptMetadata)(path);
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("\u{1F6E0}\uFE0F 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`));
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("\u{1F4C1} Local Scripts", localScripts, !0), builtInScripts.size > 0 && formatScriptList("\u{1F4E6} Built-in Scripts", builtInScripts, !0), localScripts.size === 0 && builtInScripts.size === 0 && (console.info(), console.info(import_picocolors.default.yellow("No scripts found")), console.info(), console.info(
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
- console.info(), console.info(import_picocolors.default.bold(import_picocolors.default.cyan(`\u{1F4C1} ${categoryName} Scripts`))), console.info();
96
- for (const [name, path] of categoryScripts) {
97
- const shortName = name.replace(`${categoryName}/`, ""), metadata = (0, import_script_utils.getScriptMetadata)(path);
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
- metadata.description && (line += import_picocolors.default.dim(` - ${metadata.description}`)), metadata.args && metadata.args.length > 0 && (line += import_picocolors.default.dim(` [${metadata.args.join(", ")}]`)), console.info(line);
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": "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",
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
- getLocalScriptsDir: () => getLocalScriptsDir,
25
- getScriptMetadata: () => getScriptMetadata
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
- import_node_os = require("node:os"),
30
- import_node_path = require("node:path");
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 extractMetadata(filePath) {
37
- try {
38
- const lines = (0, import_node_fs.readFileSync)(filePath, "utf-8").split(`
39
- `).slice(0, 20),
40
- metadata = {};
41
- for (const line of lines) {
42
- const descMatch = line.match(/@description\s+(.+)/);
43
- descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
44
- const argsMatch = line.match(/@args\s+(.+)/);
45
- argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map(a => a.trim()));
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
- const stat = (0, import_node_fs.statSync)(filePath);
48
- return metadata.mtime = stat.mtimeMs, metadata;
49
- } catch {
50
- return {};
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 loadCache() {
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
- if ((0, import_node_fs.statSync)(fullPath).isDirectory()) {
81
- if (entry === "helpers" || entry === "internal" || depth >= maxDepth) continue;
82
- const subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth);
83
- for (const [name, path] of subScripts) scripts.set(name, path);
84
- } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
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
- getLocalScriptsDir: () => getLocalScriptsDir,
19
- getScriptMetadata: () => getScriptMetadata
18
+ getAllScriptMetadata: () => getAllScriptMetadata,
19
+ getLocalScriptsDir: () => getLocalScriptsDir
20
20
  });
21
21
  module.exports = __toCommonJS(script_utils_exports);
22
- var import_node_fs = require("node:fs"), import_node_os = require("node:os"), import_node_path = require("node:path");
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 extractMetadata(filePath) {
28
- try {
29
- const lines = (0, import_node_fs.readFileSync)(filePath, "utf-8").split(`
30
- `).slice(0, 20), metadata = {};
31
- for (const line of lines) {
32
- const descMatch = line.match(/@description\s+(.+)/);
33
- descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
34
- const argsMatch = line.match(/@args\s+(.+)/);
35
- argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map((a) => a.trim()));
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
- return {};
50
- }
51
- function saveCache(cache) {
52
- try {
53
- (0, import_node_fs.existsSync)(CACHE_DIR) || (0, import_node_fs.mkdirSync)(CACHE_DIR, { recursive: !0 }), (0, import_node_fs.writeFileSync)(CACHE_FILE, JSON.stringify(cache, null, 2));
54
- } catch {
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 getScriptMetadata(filePath) {
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 ((0, import_node_fs.statSync)(fullPath).isDirectory()) {
73
- if (entry === "helpers" || entry === "internal" || depth >= maxDepth)
74
- continue;
75
- const subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth);
76
- for (const [name, path] of subScripts)
77
- scripts.set(name, path);
78
- } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
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,qBAOO,oBACP,iBAAwB,oBACxB,mBAA+B;AAG/B,MAAM,gBAAY,2BAAK,wBAAQ,GAAG,UAAU,GACtC,iBAAa,uBAAK,WAAW,mBAAmB;AAa/C,SAAS,qBAA6B;AAC3C,aAAO,uBAAK,QAAQ,IAAI,GAAG,SAAS;AACtC;AAGA,SAAS,gBAAgB,UAAkC;AACzD,MAAI;AAEF,UAAM,YADU,6BAAa,UAAU,OAAO,EACxB,MAAM;AAAA,CAAI,EAAE,MAAM,GAAG,EAAE,GAEvC,WAA2B,CAAC;AAElC,eAAW,QAAQ,OAAO;AAExB,YAAM,YAAY,KAAK,MAAM,qBAAqB;AAClD,MAAI,aAAa,UAAU,CAAC,MAC1B,SAAS,cAAc,UAAU,CAAC,EAAE,KAAK;AAI3C,YAAM,YAAY,KAAK,MAAM,cAAc;AAC3C,MAAI,aAAa,UAAU,CAAC,MAC1B,SAAS,OAAO,UAAU,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC;AAAA,IAE/D;AAGA,UAAM,WAAO,yBAAS,QAAQ;AAC9B,oBAAS,QAAQ,KAAK,SAEf;AAAA,EACT,QAAc;AACZ,WAAO,CAAC;AAAA,EACV;AACF;AAGA,SAAS,YAAyB;AAChC,MAAI;AACF,YAAI,2BAAW,UAAU;AACvB,aAAO,KAAK,UAAM,6BAAa,YAAY,OAAO,CAAC;AAAA,EAEvD,QAAc;AAAA,EAEd;AACA,SAAO,CAAC;AACV;AAGA,SAAS,UAAU,OAAoB;AACrC,MAAI;AACF,QAAK,2BAAW,SAAS,SACvB,0BAAU,WAAW,EAAE,WAAW,GAAK,CAAC,OAE1C,8BAAc,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAc;AAAA,EAEd;AACF;AAGO,SAAS,kBAAkB,UAAkC;AAClE,QAAM,QAAQ,UAAU,GAClB,WAAO,yBAAS,QAAQ;AAG9B,MAAI,MAAM,QAAQ,KAAK,MAAM,QAAQ,EAAE,UAAU,KAAK;AACpD,WAAO,MAAM,QAAQ;AAIvB,QAAM,WAAW,gBAAgB,QAAQ;AAGzC,eAAM,QAAQ,IAAI,UAClB,UAAU,KAAK,GAER;AACT;AAGO,SAAS,gBACd,KACA,UAAkB,KAClB,QAAgB,GAChB,WAAmB,GACE;AACrB,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;AAGhC,cAFa,yBAAS,QAAQ,EAErB,YAAY,GAAG;AAEtB,YAAI,UAAU,aAAa,UAAU,cAAc,SAAS;AAC1D;AAGF,cAAM,aAAa,gBAAgB,UAAU,SAAS,QAAQ,GAAG,QAAQ;AACzE,mBAAW,CAAC,MAAM,IAAI,KAAK;AACzB,kBAAQ,IAAI,MAAM,IAAI;AAAA,MAE1B,WAAW,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,KAAK,GAAG;AAGzD,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,QAAc;AAAA,EAEd;AAEA,SAAO;AACT;",
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 node
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 isLocalScript(name) {
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 !0;
19
+ return scriptPath;
19
20
  }
20
- return !1;
21
+ return null;
21
22
  }
22
- function isBuiltInScript(name) {
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 !0;
32
+ return scriptPath;
29
33
  }
30
34
  } catch {
31
35
  }
32
- return !1;
36
+ return null;
33
37
  }
34
- const isShorthand = process.argv[1]?.endsWith("tko") || process.argv[1]?.includes("/.bin/tko");
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) && (isScriptCategory(firstArg) ? (secondArg && !secondArg.startsWith("-") && process.argv.splice(2, 2, `${firstArg}/${secondArg}`), process.argv.splice(2, 0, "run")) : firstArg?.includes("/") || isLocalScript(firstArg) || isBuiltInScript(firstArg) ? process.argv.splice(2, 0, "run") : process.argv.splice(2, 0, "script"));
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
  });
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }