@take-out/cli 0.2.9 → 0.3.0
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 +0 -0
- package/dist/esm/cli.mjs +0 -0
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -6
- package/package.json +7 -6
- package/src/commands/changed.ts +6 -6
- package/src/commands/onboard.ts +63 -63
- package/src/commands/run.ts +1 -1
- package/src/commands/script.ts +3 -3
- package/src/commands/skills.ts +6 -6
- package/src/commands/sync.ts +3 -3
- package/src/utils/env-setup.ts +8 -8
- package/src/utils/env.ts +3 -3
- package/src/utils/files.ts +6 -6
- package/src/utils/parallel-runner.ts +1 -1
- package/src/utils/prompts.ts +6 -6
- package/src/utils/script-listing.ts +5 -5
- package/src/utils/script-utils.ts +1 -1
- package/src/utils/sync.ts +1 -1
- package/src/withExpoModulesCoreSwift6Fix.cjs +58 -0
- package/dist/cjs/cli.js +0 -123
- package/dist/cjs/cli.js.map +0 -6
- package/dist/cjs/commands/changed.js +0 -214
- package/dist/cjs/commands/changed.js.map +0 -6
- package/dist/cjs/commands/docs.js +0 -174
- package/dist/cjs/commands/docs.js.map +0 -6
- package/dist/cjs/commands/env-setup.js +0 -78
- package/dist/cjs/commands/env-setup.js.map +0 -6
- package/dist/cjs/commands/onboard.js +0 -641
- package/dist/cjs/commands/onboard.js.map +0 -6
- package/dist/cjs/commands/run-all.js +0 -74
- package/dist/cjs/commands/run-all.js.map +0 -6
- package/dist/cjs/commands/run.js +0 -95
- package/dist/cjs/commands/run.js.map +0 -6
- package/dist/cjs/commands/script.js +0 -261
- package/dist/cjs/commands/script.js.map +0 -6
- package/dist/cjs/commands/skills.js +0 -168
- package/dist/cjs/commands/skills.js.map +0 -6
- package/dist/cjs/commands/sync.js +0 -187
- package/dist/cjs/commands/sync.js.map +0 -6
- package/dist/cjs/constants/ascii.js +0 -30
- package/dist/cjs/constants/ascii.js.map +0 -6
- package/dist/cjs/index.js +0 -21
- package/dist/cjs/index.js.map +0 -6
- package/dist/cjs/types.js +0 -14
- package/dist/cjs/types.js.map +0 -6
- package/dist/cjs/utils/env-categories.js +0 -296
- package/dist/cjs/utils/env-categories.js.map +0 -6
- package/dist/cjs/utils/env-setup.js +0 -190
- package/dist/cjs/utils/env-setup.js.map +0 -6
- package/dist/cjs/utils/env.js +0 -97
- package/dist/cjs/utils/env.js.map +0 -6
- package/dist/cjs/utils/files.js +0 -164
- package/dist/cjs/utils/files.js.map +0 -6
- package/dist/cjs/utils/parallel-runner.js +0 -113
- package/dist/cjs/utils/parallel-runner.js.map +0 -6
- package/dist/cjs/utils/ports.js +0 -81
- package/dist/cjs/utils/ports.js.map +0 -6
- package/dist/cjs/utils/prerequisites.js +0 -107
- package/dist/cjs/utils/prerequisites.js.map +0 -6
- package/dist/cjs/utils/prompts.js +0 -162
- package/dist/cjs/utils/prompts.js.map +0 -6
- package/dist/cjs/utils/script-listing.js +0 -97
- package/dist/cjs/utils/script-listing.js.map +0 -6
- package/dist/cjs/utils/script-utils.js +0 -82
- package/dist/cjs/utils/script-utils.js.map +0 -6
- package/dist/cjs/utils/sync.js +0 -70
- package/dist/cjs/utils/sync.js.map +0 -6
- package/dist/esm/cli.js +0 -106
- package/dist/esm/cli.js.map +0 -6
- package/dist/esm/commands/changed.js +0 -194
- package/dist/esm/commands/changed.js.map +0 -6
- package/dist/esm/commands/docs.js +0 -159
- package/dist/esm/commands/docs.js.map +0 -6
- package/dist/esm/commands/env-setup.js +0 -56
- package/dist/esm/commands/env-setup.js.map +0 -6
- package/dist/esm/commands/onboard.js +0 -655
- package/dist/esm/commands/onboard.js.map +0 -6
- package/dist/esm/commands/run-all.js +0 -53
- package/dist/esm/commands/run-all.js.map +0 -6
- package/dist/esm/commands/run.js +0 -74
- package/dist/esm/commands/run.js.map +0 -6
- package/dist/esm/commands/script.js +0 -255
- package/dist/esm/commands/script.js.map +0 -6
- package/dist/esm/commands/skills.js +0 -159
- package/dist/esm/commands/skills.js.map +0 -6
- package/dist/esm/commands/sync.js +0 -177
- package/dist/esm/commands/sync.js.map +0 -6
- package/dist/esm/constants/ascii.js +0 -14
- package/dist/esm/constants/ascii.js.map +0 -6
- package/dist/esm/types.js +0 -1
- package/dist/esm/types.js.map +0 -6
- package/dist/esm/utils/env-categories.js +0 -272
- package/dist/esm/utils/env-categories.js.map +0 -6
- package/dist/esm/utils/env-setup.js +0 -171
- package/dist/esm/utils/env-setup.js.map +0 -6
- package/dist/esm/utils/env.js +0 -83
- package/dist/esm/utils/env.js.map +0 -6
- package/dist/esm/utils/files.js +0 -150
- package/dist/esm/utils/files.js.map +0 -6
- package/dist/esm/utils/parallel-runner.js +0 -98
- package/dist/esm/utils/parallel-runner.js.map +0 -6
- package/dist/esm/utils/ports.js +0 -65
- package/dist/esm/utils/ports.js.map +0 -6
- package/dist/esm/utils/prerequisites.js +0 -91
- package/dist/esm/utils/prerequisites.js.map +0 -6
- package/dist/esm/utils/prompts.js +0 -139
- package/dist/esm/utils/prompts.js.map +0 -6
- package/dist/esm/utils/script-listing.js +0 -80
- package/dist/esm/utils/script-listing.js.map +0 -6
- package/dist/esm/utils/script-utils.js +0 -68
- package/dist/esm/utils/script-utils.js.map +0 -6
- package/dist/esm/utils/sync.js +0 -50
- package/dist/esm/utils/sync.js.map +0 -6
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { execSync } from "node:child_process";
|
|
2
|
-
function execCommand(command) {
|
|
3
|
-
try {
|
|
4
|
-
return execSync(command, {
|
|
5
|
-
encoding: "utf-8",
|
|
6
|
-
stdio: ["pipe", "pipe", "ignore"]
|
|
7
|
-
}).trim();
|
|
8
|
-
} catch {
|
|
9
|
-
return null;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
function getVersion(command) {
|
|
13
|
-
const output = execCommand(command);
|
|
14
|
-
if (!output) return null;
|
|
15
|
-
const match = output.match(/\d+\.\d+\.\d+/);
|
|
16
|
-
return match ? match[0] : output;
|
|
17
|
-
}
|
|
18
|
-
function compareVersions(current, required) {
|
|
19
|
-
const parseCurrent = current.replace(/^v/, "").split(".").map(Number), parseRequired = required.replace(/^v/, "").split(".").map(Number);
|
|
20
|
-
for (let i = 0; i < 3; i++) {
|
|
21
|
-
const curr = parseCurrent[i] || 0, req = parseRequired[i] || 0;
|
|
22
|
-
if (curr > req) return !0;
|
|
23
|
-
if (curr < req) return !1;
|
|
24
|
-
}
|
|
25
|
-
return !0;
|
|
26
|
-
}
|
|
27
|
-
function checkBun() {
|
|
28
|
-
const version = getVersion("bun --version") ?? void 0, requiredVersion = "1.0.0", hasBunv = !!execCommand("bunv --version");
|
|
29
|
-
let message = version ? compareVersions(version, requiredVersion) ? `Bun ${version} installed` : `Bun ${version} installed (${requiredVersion}+ recommended)` : "Bun not found";
|
|
30
|
-
return version && !hasBunv && (message += " (consider installing bunv for auto version switching)"), {
|
|
31
|
-
name: "Bun",
|
|
32
|
-
required: !0,
|
|
33
|
-
installed: !!version,
|
|
34
|
-
version,
|
|
35
|
-
requiredVersion,
|
|
36
|
-
message,
|
|
37
|
-
installUrl: "https://bun.sh",
|
|
38
|
-
recommendation: hasBunv ? void 0 : "Install bunv to automatically switch bun versions: https://github.com/aklinker1/bunv"
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
function checkNode() {
|
|
42
|
-
const version = getVersion("node --version") ?? void 0, requiredVersion = "20.0.0", hasFnm = !!execCommand("fnm --version");
|
|
43
|
-
let message = version ? compareVersions(version, requiredVersion) ? `Node.js ${version} installed` : `Node.js ${version} installed (${requiredVersion}+ recommended)` : "Node.js not found (optional)";
|
|
44
|
-
return version && !hasFnm && (message += " (consider installing fnm for auto version switching)"), {
|
|
45
|
-
name: "Node.js",
|
|
46
|
-
required: !1,
|
|
47
|
-
installed: !!version,
|
|
48
|
-
version,
|
|
49
|
-
requiredVersion,
|
|
50
|
-
message,
|
|
51
|
-
installUrl: "https://nodejs.org",
|
|
52
|
-
recommendation: hasFnm ? void 0 : "Install fnm to automatically switch node versions: https://github.com/Schniz/fnm"
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
function checkDocker() {
|
|
56
|
-
const version = getVersion("docker --version") ?? void 0, isRunning = !!execCommand("docker ps");
|
|
57
|
-
return {
|
|
58
|
-
name: "Docker",
|
|
59
|
-
required: !0,
|
|
60
|
-
installed: !!version,
|
|
61
|
-
version,
|
|
62
|
-
message: version ? isRunning ? `Docker ${version} running` : "Docker installed but not running" : "Docker not found",
|
|
63
|
-
installUrl: "https://docs.docker.com/get-docker/"
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
function checkGit() {
|
|
67
|
-
const version = getVersion("git --version") ?? void 0;
|
|
68
|
-
return {
|
|
69
|
-
name: "Git",
|
|
70
|
-
required: !0,
|
|
71
|
-
installed: !!version,
|
|
72
|
-
version,
|
|
73
|
-
message: version ? `Git ${version} installed` : "Git not found",
|
|
74
|
-
installUrl: "https://git-scm.com"
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
function checkAllPrerequisites() {
|
|
78
|
-
return [checkBun(), checkNode(), checkDocker(), checkGit()];
|
|
79
|
-
}
|
|
80
|
-
function hasRequiredPrerequisites(checks) {
|
|
81
|
-
return checks.filter((c) => c.required).every((c) => c.installed);
|
|
82
|
-
}
|
|
83
|
-
export {
|
|
84
|
-
checkAllPrerequisites,
|
|
85
|
-
checkBun,
|
|
86
|
-
checkDocker,
|
|
87
|
-
checkGit,
|
|
88
|
-
checkNode,
|
|
89
|
-
hasRequiredPrerequisites
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=prerequisites.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/prerequisites.ts"],
|
|
4
|
-
"mappings": "AAIA,SAAS,gBAAgB;AAIzB,SAAS,YAAY,SAAgC;AACnD,MAAI;AACF,WAAO,SAAS,SAAS;AAAA,MACvB,UAAU;AAAA,MACV,OAAO,CAAC,QAAQ,QAAQ,QAAQ;AAAA,IAClC,CAAC,EAAE,KAAK;AAAA,EACV,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,WAAW,SAAgC;AAClD,QAAM,SAAS,YAAY,OAAO;AAClC,MAAI,CAAC,OAAQ,QAAO;AAGpB,QAAM,QAAQ,OAAO,MAAM,eAAe;AAC1C,SAAO,QAAQ,MAAM,CAAC,IAAI;AAC5B;AAEA,SAAS,gBAAgB,SAAiB,UAA2B;AACnE,QAAM,eAAe,QAAQ,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM,GAC9D,gBAAgB,SAAS,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG,EAAE,IAAI,MAAM;AAEtE,WAAS,IAAI,GAAG,IAAI,GAAG,KAAK;AAC1B,UAAM,OAAO,aAAa,CAAC,KAAK,GAC1B,MAAM,cAAc,CAAC,KAAK;AAChC,QAAI,OAAO,IAAK,QAAO;AACvB,QAAI,OAAO,IAAK,QAAO;AAAA,EACzB;AACA,SAAO;AACT;AAEO,SAAS,WAA8B;AAC5C,QAAM,UAAU,WAAW,eAAe,KAAK,QACzC,kBAAkB,SAClB,UAAU,CAAC,CAAC,YAAY,gBAAgB;AAE9C,MAAI,UAAU,UACV,gBAAgB,SAAS,eAAe,IACtC,OAAO,OAAO,eACd,OAAO,OAAO,eAAe,eAAe,mBAC9C;AAEJ,SAAI,WAAW,CAAC,YACd,WAAW,2DAGN;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW,CAAC,CAAC;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,gBAAiB,UAEb,SADA;AAAA,EAEN;AACF;AAEO,SAAS,YAA+B;AAC7C,QAAM,UAAU,WAAW,gBAAgB,KAAK,QAC1C,kBAAkB,UAClB,SAAS,CAAC,CAAC,YAAY,eAAe;AAE5C,MAAI,UAAU,UACV,gBAAgB,SAAS,eAAe,IACtC,WAAW,OAAO,eAClB,WAAW,OAAO,eAAe,eAAe,mBAClD;AAEJ,SAAI,WAAW,CAAC,WACd,WAAW,0DAGN;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW,CAAC,CAAC;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,IACA,YAAY;AAAA,IACZ,gBAAiB,SAEb,SADA;AAAA,EAEN;AACF;AAEO,SAAS,cAAiC;AAC/C,QAAM,UAAU,WAAW,kBAAkB,KAAK,QAC5C,YAAY,CAAC,CAAC,YAAY,WAAW;AAE3C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW,CAAC,CAAC;AAAA,IACb;AAAA,IACA,SAAU,UAEL,YAEC,UAAU,OAAO,aADjB,qCAFF;AAAA,IAIJ,YAAY;AAAA,EACd;AACF;AAEO,SAAS,WAA8B;AAC5C,QAAM,UAAU,WAAW,eAAe,KAAK;AAE/C,SAAO;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,WAAW,CAAC,CAAC;AAAA,IACb;AAAA,IACA,SAAS,UAAU,OAAO,OAAO,eAAe;AAAA,IAChD,YAAY;AAAA,EACd;AACF;AAEO,SAAS,wBAA6C;AAC3D,SAAO,CAAC,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,CAAC;AAC5D;AAEO,SAAS,yBAAyB,QAAsC;AAC7E,SAAO,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS;AAClE;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import * as p from "@clack/prompts";
|
|
2
|
-
import pc from "picocolors";
|
|
3
|
-
function displayWelcome(projectName = "Takeout") {
|
|
4
|
-
console.info(), p.intro(pc.bgCyan(pc.black(` ${projectName} Starter Kit `))), console.info(), p.note(
|
|
5
|
-
pc.dim(
|
|
6
|
-
`You can re-run 'bun onboard' anytime to reconfigure or skip to specific steps.
|
|
7
|
-
No need to decide everything upfront!`
|
|
8
|
-
),
|
|
9
|
-
pc.cyan("Tip")
|
|
10
|
-
);
|
|
11
|
-
}
|
|
12
|
-
function displayOutro(message) {
|
|
13
|
-
p.outro(pc.green(message));
|
|
14
|
-
}
|
|
15
|
-
function displayPrerequisites(checks) {
|
|
16
|
-
const items = checks.map((check) => {
|
|
17
|
-
const icon = check.installed ? pc.green("\u2713") : pc.red("\u2717"), message = check.message || "", recommendation = check.recommendation ? `
|
|
18
|
-
${pc.dim(check.recommendation)}` : "";
|
|
19
|
-
return `${icon} ${pc.bold(check.name)}: ${message}${recommendation}`;
|
|
20
|
-
});
|
|
21
|
-
p.note(items.join(`
|
|
22
|
-
`), "Prerequisites");
|
|
23
|
-
}
|
|
24
|
-
function displayPortConflicts(conflicts) {
|
|
25
|
-
if (conflicts.length === 0) return;
|
|
26
|
-
const items = conflicts.map((conflict) => {
|
|
27
|
-
const pid = conflict.pid ? ` (PID: ${conflict.pid})` : "";
|
|
28
|
-
return `${pc.yellow("\u26A0")} Port ${conflict.port} (${conflict.name})${pid}`;
|
|
29
|
-
});
|
|
30
|
-
p.note(items.join(`
|
|
31
|
-
`), pc.yellow("Port Conflicts Detected"));
|
|
32
|
-
}
|
|
33
|
-
async function confirmContinue(message, defaultValue = !0) {
|
|
34
|
-
const result = await p.confirm({
|
|
35
|
-
message,
|
|
36
|
-
initialValue: defaultValue
|
|
37
|
-
});
|
|
38
|
-
return p.isCancel(result) && (p.cancel("Operation cancelled."), process.exit(0)), result;
|
|
39
|
-
}
|
|
40
|
-
async function promptText(message, defaultValue, placeholder) {
|
|
41
|
-
const result = await p.text({
|
|
42
|
-
message,
|
|
43
|
-
defaultValue,
|
|
44
|
-
placeholder
|
|
45
|
-
});
|
|
46
|
-
return p.isCancel(result) && (p.cancel("Operation cancelled."), process.exit(0)), result;
|
|
47
|
-
}
|
|
48
|
-
async function promptPassword(message) {
|
|
49
|
-
const result = await p.password({
|
|
50
|
-
message
|
|
51
|
-
});
|
|
52
|
-
return p.isCancel(result) && (p.cancel("Operation cancelled."), process.exit(0)), result;
|
|
53
|
-
}
|
|
54
|
-
async function promptSelect(message, options) {
|
|
55
|
-
const result = await p.select({
|
|
56
|
-
message,
|
|
57
|
-
options
|
|
58
|
-
});
|
|
59
|
-
return p.isCancel(result) ? "cancel" : result;
|
|
60
|
-
}
|
|
61
|
-
async function promptStartStep() {
|
|
62
|
-
return console.info(), console.info(pc.gray("What would you like to do?")), console.info(), promptSelect("Select starting point:", [
|
|
63
|
-
{
|
|
64
|
-
value: "full",
|
|
65
|
-
label: "Complete setup",
|
|
66
|
-
hint: "Run through all setup steps"
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
value: "prerequisites",
|
|
70
|
-
label: "Check prerequisites",
|
|
71
|
-
hint: "Verify bun, docker, git, etc."
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
value: "identity",
|
|
75
|
-
label: "Project identity",
|
|
76
|
-
hint: "Customize app name and bundle ID"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
value: "ports",
|
|
80
|
-
label: "Check ports",
|
|
81
|
-
hint: "Verify required ports are available"
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
value: "eject",
|
|
85
|
-
label: "Eject from monorepo",
|
|
86
|
-
hint: "Remove ./packages, use published versions"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
value: "production",
|
|
90
|
-
label: "Production deployment",
|
|
91
|
-
hint: "Configure production environment and deployment"
|
|
92
|
-
}
|
|
93
|
-
]);
|
|
94
|
-
}
|
|
95
|
-
async function promptOldSelect(message, options) {
|
|
96
|
-
const result = await p.select({
|
|
97
|
-
message,
|
|
98
|
-
options
|
|
99
|
-
});
|
|
100
|
-
return p.isCancel(result) && (p.cancel("Operation cancelled."), process.exit(0)), result;
|
|
101
|
-
}
|
|
102
|
-
function showSpinner(message) {
|
|
103
|
-
const s = p.spinner();
|
|
104
|
-
return s.start(message), s;
|
|
105
|
-
}
|
|
106
|
-
function showError(message) {
|
|
107
|
-
p.log.error(pc.red(message));
|
|
108
|
-
}
|
|
109
|
-
function showWarning(message) {
|
|
110
|
-
p.log.warning(pc.yellow(message));
|
|
111
|
-
}
|
|
112
|
-
function showSuccess(message) {
|
|
113
|
-
p.log.success(pc.green(message));
|
|
114
|
-
}
|
|
115
|
-
function showInfo(message) {
|
|
116
|
-
p.log.info(pc.blue(message));
|
|
117
|
-
}
|
|
118
|
-
function showStep(message) {
|
|
119
|
-
p.log.step(message);
|
|
120
|
-
}
|
|
121
|
-
export {
|
|
122
|
-
confirmContinue,
|
|
123
|
-
displayOutro,
|
|
124
|
-
displayPortConflicts,
|
|
125
|
-
displayPrerequisites,
|
|
126
|
-
displayWelcome,
|
|
127
|
-
promptOldSelect,
|
|
128
|
-
promptPassword,
|
|
129
|
-
promptSelect,
|
|
130
|
-
promptStartStep,
|
|
131
|
-
promptText,
|
|
132
|
-
showError,
|
|
133
|
-
showInfo,
|
|
134
|
-
showSpinner,
|
|
135
|
-
showStep,
|
|
136
|
-
showSuccess,
|
|
137
|
-
showWarning
|
|
138
|
-
};
|
|
139
|
-
//# sourceMappingURL=prompts.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/prompts.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { existsSync, statSync } from "node:fs";
|
|
2
|
-
import { join, relative } from "node:path";
|
|
3
|
-
import { fileURLToPath } from "node:url";
|
|
4
|
-
import pc from "picocolors";
|
|
5
|
-
import {
|
|
6
|
-
discoverScripts,
|
|
7
|
-
getAllScriptMetadata,
|
|
8
|
-
getLocalScriptsDir
|
|
9
|
-
} from "./script-utils";
|
|
10
|
-
function findScriptsPackageRoot() {
|
|
11
|
-
try {
|
|
12
|
-
const resolved = import.meta.resolve("@take-out/scripts/package.json"), packageJsonPath = fileURLToPath(new URL(resolved)), packageRoot = join(packageJsonPath, ".."), srcPath = join(packageRoot, "src");
|
|
13
|
-
if (existsSync(srcPath))
|
|
14
|
-
return srcPath;
|
|
15
|
-
} catch {
|
|
16
|
-
}
|
|
17
|
-
return null;
|
|
18
|
-
}
|
|
19
|
-
function formatScriptList(title, scripts, metadata) {
|
|
20
|
-
if (scripts.size === 0) return;
|
|
21
|
-
console.info(), console.info(pc.bold(pc.cyan(title))), console.info();
|
|
22
|
-
const categories = /* @__PURE__ */ new Map(), rootScripts = [];
|
|
23
|
-
for (const [name, path] of scripts)
|
|
24
|
-
if (name.includes("/")) {
|
|
25
|
-
const category = name.split("/")[0];
|
|
26
|
-
categories.has(category) || categories.set(category, []), categories.get(category).push([name, path]);
|
|
27
|
-
} else
|
|
28
|
-
rootScripts.push([name, path]);
|
|
29
|
-
for (const [name] of rootScripts) {
|
|
30
|
-
let line = ` ${pc.green(name)}`;
|
|
31
|
-
const meta = metadata.get(name);
|
|
32
|
-
meta?.description && (line += pc.dim(` - ${meta.description}`)), console.info(line);
|
|
33
|
-
}
|
|
34
|
-
for (const [category, categoryScripts] of categories) {
|
|
35
|
-
console.info(), console.info(` ${pc.yellow(category)}/`);
|
|
36
|
-
for (const [name] of categoryScripts) {
|
|
37
|
-
const shortName = name.substring(category.length + 1);
|
|
38
|
-
let line = ` ${pc.green(shortName)}`;
|
|
39
|
-
const meta = metadata.get(name);
|
|
40
|
-
meta?.description && (line += pc.dim(` - ${meta.description}`)), console.info(line);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
async function listAllScripts(includeCommands = !0) {
|
|
45
|
-
console.info(), console.info(pc.bold(pc.cyan("Takeout CLI - Project Scripts & Commands"))), console.info(), console.info(pc.dim(" Manage scripts, run tasks, and configure your project")), console.info(), includeCommands && (console.info(pc.bold(pc.cyan("Built-in Commands"))), console.info(), console.info(` ${pc.green("onboard")} - Setup wizard for new projects`), console.info(` ${pc.green("docs")} - View documentation`), console.info(` ${pc.green("env:setup")} - Setup environment variables`), console.info(` ${pc.green("run")} - Run scripts in parallel`), console.info(` ${pc.green("script")} - Manage and run scripts`), console.info(` ${pc.green("skills")} - Manage Claude Code skills`), console.info(` ${pc.green("sync")} - Sync fork with upstream Takeout`), console.info(` ${pc.green("changed")} - Show changes since last sync`), console.info(` ${pc.green("completion")} - Shell completion setup`));
|
|
46
|
-
const localScripts = discoverScripts(getLocalScriptsDir()), builtInDir = findScriptsPackageRoot(), builtInScripts = builtInDir ? discoverScripts(builtInDir) : /* @__PURE__ */ new Map(), allScripts = new Map([...localScripts, ...builtInScripts]), metadata = await getAllScriptMetadata(allScripts);
|
|
47
|
-
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(pc.yellow("No scripts found")), console.info(), console.info(
|
|
48
|
-
pc.dim(`Create scripts in ${relative(process.cwd(), getLocalScriptsDir())}/`)
|
|
49
|
-
), console.info(pc.dim("Or install @take-out/scripts package for built-in scripts"))), console.info(), console.info(pc.bold("Usage:")), console.info(
|
|
50
|
-
` ${pc.cyan("tko <command>")} ${pc.dim("Run a built-in command")}`
|
|
51
|
-
), console.info(
|
|
52
|
-
` ${pc.cyan("tko <script-name>")} ${pc.dim("Execute direct script")}`
|
|
53
|
-
), console.info(
|
|
54
|
-
` ${pc.cyan("tko <group> <script>")} ${pc.dim("Execute nested script")}`
|
|
55
|
-
), console.info(` ${pc.cyan("tko script new <path>")} ${pc.dim("Create a new script")}`), console.info();
|
|
56
|
-
}
|
|
57
|
-
async function listCategoryScripts(categoryName) {
|
|
58
|
-
const localDir = getLocalScriptsDir(), categoryPath = join(localDir, categoryName);
|
|
59
|
-
if (existsSync(categoryPath) && statSync(categoryPath).isDirectory()) {
|
|
60
|
-
const categoryScripts = discoverScripts(categoryPath);
|
|
61
|
-
if (categoryScripts.size > 0) {
|
|
62
|
-
const metadata = await getAllScriptMetadata(categoryScripts);
|
|
63
|
-
console.info(), console.info(pc.bold(pc.cyan(`${categoryName} Scripts`))), console.info();
|
|
64
|
-
for (const [name] of categoryScripts) {
|
|
65
|
-
const shortName = name.replace(`${categoryName}/`, ""), meta = metadata.get(name);
|
|
66
|
-
let line = ` ${pc.green(shortName)}`;
|
|
67
|
-
meta?.description && (line += pc.dim(` - ${meta.description}`)), meta?.args && meta.args.length > 0 && (line += pc.dim(` [${meta.args.join(", ")}]`)), console.info(line);
|
|
68
|
-
}
|
|
69
|
-
console.info(), console.info(pc.dim(`Run: tko ${categoryName}/<name> [args...] to execute`)), console.info();
|
|
70
|
-
} else
|
|
71
|
-
console.info(), console.info(pc.yellow(`No scripts found in ${categoryName}/`)), console.info();
|
|
72
|
-
return !0;
|
|
73
|
-
}
|
|
74
|
-
return !1;
|
|
75
|
-
}
|
|
76
|
-
export {
|
|
77
|
-
listAllScripts,
|
|
78
|
-
listCategoryScripts
|
|
79
|
-
};
|
|
80
|
-
//# sourceMappingURL=script-listing.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/script-listing.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
|
|
2
|
-
import { join, relative } from "node:path";
|
|
3
|
-
import { setInterceptCmd } from "@take-out/scripts/cmd";
|
|
4
|
-
function getLocalScriptsDir() {
|
|
5
|
-
return join(process.cwd(), "scripts");
|
|
6
|
-
}
|
|
7
|
-
async function getAllScriptMetadata(scripts) {
|
|
8
|
-
const collected = /* @__PURE__ */ new Map();
|
|
9
|
-
let currentName = "";
|
|
10
|
-
setInterceptCmd((info) => {
|
|
11
|
-
collected.set(currentName, info);
|
|
12
|
-
});
|
|
13
|
-
for (const [name, path] of scripts) {
|
|
14
|
-
try {
|
|
15
|
-
if (!readFileSync(path, "utf-8").slice(0, 200).includes("cmd")) continue;
|
|
16
|
-
} catch {
|
|
17
|
-
continue;
|
|
18
|
-
}
|
|
19
|
-
currentName = name;
|
|
20
|
-
try {
|
|
21
|
-
await import(path);
|
|
22
|
-
} catch {
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const results = /* @__PURE__ */ new Map();
|
|
26
|
-
for (const [name, info] of collected) {
|
|
27
|
-
const metadata = { description: info.description };
|
|
28
|
-
if (info.args) {
|
|
29
|
-
const flags = [...info.args.matchAll(/--?([a-z-]+)/gi)];
|
|
30
|
-
flags.length > 0 && (metadata.args = flags.map((m) => `--${m[1]}`));
|
|
31
|
-
}
|
|
32
|
-
results.set(name, metadata);
|
|
33
|
-
}
|
|
34
|
-
return results;
|
|
35
|
-
}
|
|
36
|
-
function discoverScripts(dir, baseDir = dir) {
|
|
37
|
-
const scripts = /* @__PURE__ */ new Map();
|
|
38
|
-
if (!existsSync(dir))
|
|
39
|
-
return scripts;
|
|
40
|
-
try {
|
|
41
|
-
const entries = readdirSync(dir);
|
|
42
|
-
for (const entry of entries) {
|
|
43
|
-
const fullPath = join(dir, entry);
|
|
44
|
-
if (statSync(fullPath).isDirectory()) {
|
|
45
|
-
if (entry === "helpers" || entry === "internal") continue;
|
|
46
|
-
const subEntries = readdirSync(fullPath);
|
|
47
|
-
for (const subEntry of subEntries) {
|
|
48
|
-
const subPath = join(fullPath, subEntry);
|
|
49
|
-
if (statSync(subPath).isFile() && (subEntry.endsWith(".ts") || subEntry.endsWith(".js"))) {
|
|
50
|
-
const scriptName = relative(baseDir, subPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
51
|
-
scripts.set(scriptName, subPath);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
} else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
|
|
55
|
-
const scriptName = relative(baseDir, fullPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
|
|
56
|
-
scripts.set(scriptName, fullPath);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
} catch {
|
|
60
|
-
}
|
|
61
|
-
return scripts;
|
|
62
|
-
}
|
|
63
|
-
export {
|
|
64
|
-
discoverScripts,
|
|
65
|
-
getAllScriptMetadata,
|
|
66
|
-
getLocalScriptsDir
|
|
67
|
-
};
|
|
68
|
-
//# sourceMappingURL=script-utils.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/script-utils.ts"],
|
|
4
|
-
"mappings": "AAIA,SAAS,YAAY,cAAc,aAAa,gBAAgB;AAChE,SAAS,MAAM,gBAAgB;AAE/B,SAAS,uBAAuB;AAQzB,SAAS,qBAA6B;AAC3C,SAAO,KAAK,QAAQ,IAAI,GAAG,SAAS;AACtC;AAGA,eAAsB,qBACpB,SACsC;AACtC,QAAM,YAAY,oBAAI,IAAoD;AAC1E,MAAI,cAAc;AAGlB,kBAAgB,CAAC,SAAS;AACxB,cAAU,IAAI,aAAa,IAAI;AAAA,EACjC,CAAC;AAED,aAAW,CAAC,MAAM,IAAI,KAAK,SAAS;AAElC,QAAI;AAEF,UAAI,CADS,aAAa,MAAM,OAAO,EAAE,MAAM,GAAG,GAAG,EAC3C,SAAS,KAAK,EAAG;AAAA,IAC7B,QAAQ;AACN;AAAA,IACF;AAEA,kBAAc;AACd,QAAI;AACF,YAAM,OAAO;AAAA,IACf,QAAQ;AAAA,IAAC;AAAA,EACX;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,CAAC,WAAW,GAAG;AACjB,WAAO;AAGT,MAAI;AACF,UAAM,UAAU,YAAY,GAAG;AAE/B,eAAW,SAAS,SAAS;AAC3B,YAAM,WAAW,KAAK,KAAK,KAAK;AAGhC,UAFa,SAAS,QAAQ,EAErB,YAAY,GAAG;AACtB,YAAI,UAAU,aAAa,UAAU,WAAY;AAEjD,cAAM,aAAa,YAAY,QAAQ;AACvC,mBAAW,YAAY,YAAY;AACjC,gBAAM,UAAU,KAAK,UAAU,QAAQ;AACvC,cACE,SAAS,OAAO,EAAE,OAAO,MACxB,SAAS,SAAS,KAAK,KAAK,SAAS,SAAS,KAAK,IACpD;AAEA,kBAAM,aADe,SAAS,SAAS,OAAO,EAAE,MAAM,IAAI,EAAE,KAAK,GAAG,EACpC,QAAQ,cAAc,EAAE;AACxD,oBAAQ,IAAI,YAAY,OAAO;AAAA,UACjC;AAAA,QACF;AAAA,MACF,WAAW,MAAM,SAAS,KAAK,KAAK,MAAM,SAAS,KAAK,GAAG;AAEzD,cAAM,aADe,SAAS,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
|
-
"names": []
|
|
6
|
-
}
|
package/dist/esm/utils/sync.js
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { createHash } from "node:crypto";
|
|
2
|
-
import { existsSync, readFileSync, writeFileSync, mkdirSync, statSync } from "node:fs";
|
|
3
|
-
import { relative, dirname } from "node:path";
|
|
4
|
-
import { confirm } from "@clack/prompts";
|
|
5
|
-
import pc from "picocolors";
|
|
6
|
-
function getFileHash(filePath) {
|
|
7
|
-
const content = readFileSync(filePath);
|
|
8
|
-
return createHash("md5").update(content).digest("hex");
|
|
9
|
-
}
|
|
10
|
-
function compareFiles(sourcePath, targetPath) {
|
|
11
|
-
if (!existsSync(targetPath))
|
|
12
|
-
return "new";
|
|
13
|
-
const sourceHash = getFileHash(sourcePath), targetHash = getFileHash(targetPath);
|
|
14
|
-
return sourceHash === targetHash ? "identical" : "modified";
|
|
15
|
-
}
|
|
16
|
-
async function syncFileWithConfirmation(file) {
|
|
17
|
-
const relPath = relative(process.cwd(), file.targetPath);
|
|
18
|
-
if (file.status === "identical")
|
|
19
|
-
return console.info(pc.dim(` \u2713 ${file.name} (already up to date)`)), !1;
|
|
20
|
-
const statusColor = file.status === "new" ? pc.green : pc.yellow, statusText = file.status === "new" ? "NEW" : "MODIFIED";
|
|
21
|
-
if (console.info(), console.info(statusColor(` ${statusText}: ${file.name}`)), file.status === "modified") {
|
|
22
|
-
const sourceSize = file.sourceSize || 0, targetSize = file.targetSize || 0, diff = sourceSize - targetSize;
|
|
23
|
-
console.info(pc.dim(` Source: ${sourceSize} bytes`)), console.info(pc.dim(` Target: ${targetSize} bytes`)), diff > 0 ? console.info(pc.cyan(` Source is ${diff} bytes larger`)) : diff < 0 && console.info(pc.magenta(` Target is ${Math.abs(diff)} bytes larger`));
|
|
24
|
-
}
|
|
25
|
-
console.info(pc.dim(` \u2192 ${relPath}`));
|
|
26
|
-
const shouldSync = await confirm({
|
|
27
|
-
message: "Overwrite this file?",
|
|
28
|
-
initialValue: !0
|
|
29
|
-
});
|
|
30
|
-
if (shouldSync === !1 || typeof shouldSync == "symbol")
|
|
31
|
-
return console.info(pc.dim(" \u2298 Skipped")), !1;
|
|
32
|
-
const targetDir = dirname(file.targetPath);
|
|
33
|
-
existsSync(targetDir) || mkdirSync(targetDir, { recursive: !0 });
|
|
34
|
-
const content = readFileSync(file.sourcePath);
|
|
35
|
-
return writeFileSync(file.targetPath, content), console.info(pc.green(" \u2713 Synced")), !0;
|
|
36
|
-
}
|
|
37
|
-
function getFileSize(filePath) {
|
|
38
|
-
try {
|
|
39
|
-
return statSync(filePath).size;
|
|
40
|
-
} catch {
|
|
41
|
-
return 0;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export {
|
|
45
|
-
compareFiles,
|
|
46
|
-
getFileHash,
|
|
47
|
-
getFileSize,
|
|
48
|
-
syncFileWithConfirmation
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=sync.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/utils/sync.ts"],
|
|
4
|
-
"mappings": "AAIA,SAAS,kBAAkB;AAC3B,SAAS,YAAY,cAAc,eAAe,WAAW,gBAAgB;AAC7E,SAAe,UAAU,eAAe;AAExC,SAAS,eAAe;AACxB,OAAO,QAAQ;AAWR,SAAS,YAAY,UAA0B;AACpD,QAAM,UAAU,aAAa,QAAQ;AACrC,SAAO,WAAW,KAAK,EAAE,OAAO,OAAO,EAAE,OAAO,KAAK;AACvD;AAEO,SAAS,aACd,YACA,YACkC;AAClC,MAAI,CAAC,WAAW,UAAU;AACxB,WAAO;AAGT,QAAM,aAAa,YAAY,UAAU,GACnC,aAAa,YAAY,UAAU;AAEzC,SAAO,eAAe,aAAa,cAAc;AACnD;AAEA,eAAsB,yBAAyB,MAAoC;AACjF,QAAM,UAAU,SAAS,QAAQ,IAAI,GAAG,KAAK,UAAU;AAEvD,MAAI,KAAK,WAAW;AAClB,mBAAQ,KAAK,GAAG,IAAI,YAAO,KAAK,IAAI,uBAAuB,CAAC,GACrD;AAGT,QAAM,cAAc,KAAK,WAAW,QAAQ,GAAG,QAAQ,GAAG,QACpD,aAAa,KAAK,WAAW,QAAQ,QAAQ;AAKnD,MAHA,QAAQ,KAAK,GACb,QAAQ,KAAK,YAAY,KAAK,UAAU,KAAK,KAAK,IAAI,EAAE,CAAC,GAErD,KAAK,WAAW,YAAY;AAC9B,UAAM,aAAa,KAAK,cAAc,GAChC,aAAa,KAAK,cAAc,GAChC,OAAO,aAAa;AAE1B,YAAQ,KAAK,GAAG,IAAI,eAAe,UAAU,QAAQ,CAAC,GACtD,QAAQ,KAAK,GAAG,IAAI,eAAe,UAAU,QAAQ,CAAC,GAElD,OAAO,IACT,QAAQ,KAAK,GAAG,KAAK,iBAAiB,IAAI,eAAe,CAAC,IACjD,OAAO,KAChB,QAAQ,KAAK,GAAG,QAAQ,iBAAiB,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC;AAAA,EAE3E;AAEA,UAAQ,KAAK,GAAG,IAAI,cAAS,OAAO,EAAE,CAAC;AAEvC,QAAM,aAAa,MAAM,QAAQ;AAAA,IAC/B,SAAS;AAAA,IACT,cAAc;AAAA,EAChB,CAAC;AAED,MAAI,eAAe,MAAS,OAAO,cAAe;AAChD,mBAAQ,KAAK,GAAG,IAAI,kBAAa,CAAC,GAC3B;AAIT,QAAM,YAAY,QAAQ,KAAK,UAAU;AACzC,EAAK,WAAW,SAAS,KACvB,UAAU,WAAW,EAAE,WAAW,GAAK,CAAC;AAI1C,QAAM,UAAU,aAAa,KAAK,UAAU;AAC5C,uBAAc,KAAK,YAAY,OAAO,GAEtC,QAAQ,KAAK,GAAG,MAAM,iBAAY,CAAC,GAC5B;AACT;AAEO,SAAS,YAAY,UAA0B;AACpD,MAAI;AACF,WAAO,SAAS,QAAQ,EAAE;AAAA,EAC5B,QAAQ;AACN,WAAO;AAAA,EACT;AACF;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|