@take-out/cli 0.0.39
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/LICENSE +21 -0
- package/README.md +274 -0
- package/cli.mjs +3 -0
- package/dist/cjs/cli.cjs +71 -0
- package/dist/cjs/cli.js +70 -0
- package/dist/cjs/cli.js.map +6 -0
- package/dist/cjs/cli.native.js +79 -0
- package/dist/cjs/cli.native.js.map +6 -0
- package/dist/cjs/commands/changed.cjs +212 -0
- package/dist/cjs/commands/changed.js +214 -0
- package/dist/cjs/commands/changed.js.map +6 -0
- package/dist/cjs/commands/changed.native.js +289 -0
- package/dist/cjs/commands/changed.native.js.map +6 -0
- package/dist/cjs/commands/docs.cjs +388 -0
- package/dist/cjs/commands/docs.js +313 -0
- package/dist/cjs/commands/docs.js.map +6 -0
- package/dist/cjs/commands/docs.native.js +476 -0
- package/dist/cjs/commands/docs.native.js.map +6 -0
- package/dist/cjs/commands/env-setup.cjs +90 -0
- package/dist/cjs/commands/env-setup.js +78 -0
- package/dist/cjs/commands/env-setup.js.map +6 -0
- package/dist/cjs/commands/env-setup.native.js +85 -0
- package/dist/cjs/commands/env-setup.native.js.map +6 -0
- package/dist/cjs/commands/onboard.cjs +479 -0
- package/dist/cjs/commands/onboard.js +631 -0
- package/dist/cjs/commands/onboard.js.map +6 -0
- package/dist/cjs/commands/onboard.native.js +608 -0
- package/dist/cjs/commands/onboard.native.js.map +6 -0
- package/dist/cjs/commands/run.cjs +148 -0
- package/dist/cjs/commands/run.js +116 -0
- package/dist/cjs/commands/run.js.map +6 -0
- package/dist/cjs/commands/run.native.js +140 -0
- package/dist/cjs/commands/run.native.js.map +6 -0
- package/dist/cjs/commands/script.cjs +379 -0
- package/dist/cjs/commands/script.js +339 -0
- package/dist/cjs/commands/script.js.map +6 -0
- package/dist/cjs/commands/script.native.js +449 -0
- package/dist/cjs/commands/script.native.js.map +6 -0
- package/dist/cjs/commands/sync.cjs +190 -0
- package/dist/cjs/commands/sync.js +168 -0
- package/dist/cjs/commands/sync.js.map +6 -0
- package/dist/cjs/commands/sync.native.js +211 -0
- package/dist/cjs/commands/sync.native.js.map +6 -0
- package/dist/cjs/constants/ascii.cjs +36 -0
- package/dist/cjs/constants/ascii.js +30 -0
- package/dist/cjs/constants/ascii.js.map +6 -0
- package/dist/cjs/constants/ascii.native.js +36 -0
- package/dist/cjs/constants/ascii.native.js.map +6 -0
- package/dist/cjs/index.cjs +64 -0
- package/dist/cjs/index.js +55 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/index.native.js +94 -0
- package/dist/cjs/index.native.js.map +6 -0
- package/dist/cjs/types.cjs +16 -0
- package/dist/cjs/types.js +14 -0
- package/dist/cjs/types.js.map +6 -0
- package/dist/cjs/types.native.js +15 -0
- package/dist/cjs/types.native.js.map +6 -0
- package/dist/cjs/utils/env-categories.cjs +272 -0
- package/dist/cjs/utils/env-categories.js +296 -0
- package/dist/cjs/utils/env-categories.js.map +6 -0
- package/dist/cjs/utils/env-categories.native.js +317 -0
- package/dist/cjs/utils/env-categories.native.js.map +6 -0
- package/dist/cjs/utils/env-setup.cjs +181 -0
- package/dist/cjs/utils/env-setup.js +190 -0
- package/dist/cjs/utils/env-setup.js.map +6 -0
- package/dist/cjs/utils/env-setup.native.js +264 -0
- package/dist/cjs/utils/env-setup.native.js.map +6 -0
- package/dist/cjs/utils/env.cjs +118 -0
- package/dist/cjs/utils/env.js +97 -0
- package/dist/cjs/utils/env.js.map +6 -0
- package/dist/cjs/utils/env.native.js +128 -0
- package/dist/cjs/utils/env.native.js.map +6 -0
- package/dist/cjs/utils/files.cjs +215 -0
- package/dist/cjs/utils/files.js +164 -0
- package/dist/cjs/utils/files.js.map +6 -0
- package/dist/cjs/utils/files.native.js +266 -0
- package/dist/cjs/utils/files.native.js.map +6 -0
- package/dist/cjs/utils/parallel-runner.cjs +99 -0
- package/dist/cjs/utils/parallel-runner.js +84 -0
- package/dist/cjs/utils/parallel-runner.js.map +6 -0
- package/dist/cjs/utils/parallel-runner.native.js +123 -0
- package/dist/cjs/utils/parallel-runner.native.js.map +6 -0
- package/dist/cjs/utils/ports.cjs +101 -0
- package/dist/cjs/utils/ports.js +81 -0
- package/dist/cjs/utils/ports.js.map +6 -0
- package/dist/cjs/utils/ports.native.js +130 -0
- package/dist/cjs/utils/ports.native.js.map +6 -0
- package/dist/cjs/utils/prerequisites.cjs +119 -0
- package/dist/cjs/utils/prerequisites.js +107 -0
- package/dist/cjs/utils/prerequisites.js.map +6 -0
- package/dist/cjs/utils/prerequisites.native.js +127 -0
- package/dist/cjs/utils/prerequisites.native.js.map +6 -0
- package/dist/cjs/utils/prompts.cjs +161 -0
- package/dist/cjs/utils/prompts.js +162 -0
- package/dist/cjs/utils/prompts.js.map +6 -0
- package/dist/cjs/utils/prompts.native.js +179 -0
- package/dist/cjs/utils/prompts.native.js.map +6 -0
- package/dist/cjs/utils/script-listing.cjs +113 -0
- package/dist/cjs/utils/script-listing.js +108 -0
- package/dist/cjs/utils/script-listing.js.map +6 -0
- package/dist/cjs/utils/script-listing.native.js +174 -0
- package/dist/cjs/utils/script-listing.native.js.map +6 -0
- package/dist/cjs/utils/sync.cjs +85 -0
- package/dist/cjs/utils/sync.js +70 -0
- package/dist/cjs/utils/sync.js.map +6 -0
- package/dist/cjs/utils/sync.native.js +84 -0
- package/dist/cjs/utils/sync.native.js.map +6 -0
- package/dist/cjs/utils/welcome.cjs +50 -0
- package/dist/cjs/utils/welcome.js +42 -0
- package/dist/cjs/utils/welcome.js.map +6 -0
- package/dist/cjs/utils/welcome.native.js +47 -0
- package/dist/cjs/utils/welcome.native.js.map +6 -0
- package/dist/esm/cli.js +79 -0
- package/dist/esm/cli.js.map +6 -0
- package/dist/esm/cli.mjs +71 -0
- package/dist/esm/cli.mjs.map +1 -0
- package/dist/esm/cli.native.js +69 -0
- package/dist/esm/cli.native.js.map +1 -0
- package/dist/esm/commands/changed.js +194 -0
- package/dist/esm/commands/changed.js.map +6 -0
- package/dist/esm/commands/changed.mjs +178 -0
- package/dist/esm/commands/changed.mjs.map +1 -0
- package/dist/esm/commands/changed.native.js +273 -0
- package/dist/esm/commands/changed.native.js.map +1 -0
- package/dist/esm/commands/docs.js +306 -0
- package/dist/esm/commands/docs.js.map +6 -0
- package/dist/esm/commands/docs.mjs +353 -0
- package/dist/esm/commands/docs.mjs.map +1 -0
- package/dist/esm/commands/docs.native.js +516 -0
- package/dist/esm/commands/docs.native.js.map +1 -0
- package/dist/esm/commands/env-setup.js +56 -0
- package/dist/esm/commands/env-setup.js.map +6 -0
- package/dist/esm/commands/env-setup.mjs +56 -0
- package/dist/esm/commands/env-setup.mjs.map +1 -0
- package/dist/esm/commands/env-setup.native.js +59 -0
- package/dist/esm/commands/env-setup.native.js.map +1 -0
- package/dist/esm/commands/onboard.js +645 -0
- package/dist/esm/commands/onboard.js.map +6 -0
- package/dist/esm/commands/onboard.mjs +445 -0
- package/dist/esm/commands/onboard.mjs.map +1 -0
- package/dist/esm/commands/onboard.native.js +584 -0
- package/dist/esm/commands/onboard.native.js.map +1 -0
- package/dist/esm/commands/run.js +95 -0
- package/dist/esm/commands/run.js.map +6 -0
- package/dist/esm/commands/run.mjs +114 -0
- package/dist/esm/commands/run.mjs.map +1 -0
- package/dist/esm/commands/run.native.js +133 -0
- package/dist/esm/commands/run.native.js.map +1 -0
- package/dist/esm/commands/script.js +338 -0
- package/dist/esm/commands/script.js.map +6 -0
- package/dist/esm/commands/script.mjs +336 -0
- package/dist/esm/commands/script.mjs.map +1 -0
- package/dist/esm/commands/script.native.js +445 -0
- package/dist/esm/commands/script.native.js.map +1 -0
- package/dist/esm/commands/sync.js +158 -0
- package/dist/esm/commands/sync.js.map +6 -0
- package/dist/esm/commands/sync.mjs +155 -0
- package/dist/esm/commands/sync.mjs.map +1 -0
- package/dist/esm/commands/sync.native.js +173 -0
- package/dist/esm/commands/sync.native.js.map +1 -0
- package/dist/esm/constants/ascii.js +14 -0
- package/dist/esm/constants/ascii.js.map +6 -0
- package/dist/esm/constants/ascii.mjs +12 -0
- package/dist/esm/constants/ascii.mjs.map +1 -0
- package/dist/esm/constants/ascii.native.js +12 -0
- package/dist/esm/constants/ascii.native.js.map +1 -0
- package/dist/esm/index.js +83 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/index.mjs +7 -0
- package/dist/esm/index.mjs.map +1 -0
- package/dist/esm/index.native.js +7 -0
- package/dist/esm/index.native.js.map +1 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/types.js.map +6 -0
- package/dist/esm/types.mjs +2 -0
- package/dist/esm/types.mjs.map +1 -0
- package/dist/esm/types.native.js +2 -0
- package/dist/esm/types.native.js.map +1 -0
- package/dist/esm/utils/env-categories.js +272 -0
- package/dist/esm/utils/env-categories.js.map +6 -0
- package/dist/esm/utils/env-categories.mjs +233 -0
- package/dist/esm/utils/env-categories.mjs.map +1 -0
- package/dist/esm/utils/env-categories.native.js +246 -0
- package/dist/esm/utils/env-categories.native.js.map +1 -0
- package/dist/esm/utils/env-setup.js +173 -0
- package/dist/esm/utils/env-setup.js.map +6 -0
- package/dist/esm/utils/env-setup.mjs +146 -0
- package/dist/esm/utils/env-setup.mjs.map +1 -0
- package/dist/esm/utils/env-setup.native.js +243 -0
- package/dist/esm/utils/env-setup.native.js.map +1 -0
- package/dist/esm/utils/env.js +83 -0
- package/dist/esm/utils/env.js.map +6 -0
- package/dist/esm/utils/env.mjs +90 -0
- package/dist/esm/utils/env.mjs.map +1 -0
- package/dist/esm/utils/env.native.js +99 -0
- package/dist/esm/utils/env.native.js.map +1 -0
- package/dist/esm/utils/files.js +150 -0
- package/dist/esm/utils/files.js.map +6 -0
- package/dist/esm/utils/files.mjs +187 -0
- package/dist/esm/utils/files.mjs.map +1 -0
- package/dist/esm/utils/files.native.js +247 -0
- package/dist/esm/utils/files.native.js.map +1 -0
- package/dist/esm/utils/parallel-runner.js +69 -0
- package/dist/esm/utils/parallel-runner.js.map +6 -0
- package/dist/esm/utils/parallel-runner.mjs +76 -0
- package/dist/esm/utils/parallel-runner.mjs.map +1 -0
- package/dist/esm/utils/parallel-runner.native.js +109 -0
- package/dist/esm/utils/parallel-runner.native.js.map +1 -0
- package/dist/esm/utils/ports.js +65 -0
- package/dist/esm/utils/ports.js.map +6 -0
- package/dist/esm/utils/ports.mjs +74 -0
- package/dist/esm/utils/ports.mjs.map +1 -0
- package/dist/esm/utils/ports.native.js +93 -0
- package/dist/esm/utils/ports.native.js.map +1 -0
- package/dist/esm/utils/prerequisites.js +91 -0
- package/dist/esm/utils/prerequisites.js.map +6 -0
- package/dist/esm/utils/prerequisites.mjs +91 -0
- package/dist/esm/utils/prerequisites.mjs.map +1 -0
- package/dist/esm/utils/prerequisites.native.js +97 -0
- package/dist/esm/utils/prerequisites.native.js.map +1 -0
- package/dist/esm/utils/prompts.js +139 -0
- package/dist/esm/utils/prompts.js.map +6 -0
- package/dist/esm/utils/prompts.mjs +112 -0
- package/dist/esm/utils/prompts.mjs.map +1 -0
- package/dist/esm/utils/prompts.native.js +115 -0
- package/dist/esm/utils/prompts.native.js.map +1 -0
- package/dist/esm/utils/script-listing.js +91 -0
- package/dist/esm/utils/script-listing.js.map +6 -0
- package/dist/esm/utils/script-listing.mjs +76 -0
- package/dist/esm/utils/script-listing.mjs.map +1 -0
- package/dist/esm/utils/script-listing.native.js +151 -0
- package/dist/esm/utils/script-listing.native.js.map +1 -0
- package/dist/esm/utils/sync.js +50 -0
- package/dist/esm/utils/sync.js.map +6 -0
- package/dist/esm/utils/sync.mjs +48 -0
- package/dist/esm/utils/sync.mjs.map +1 -0
- package/dist/esm/utils/sync.native.js +53 -0
- package/dist/esm/utils/sync.native.js.map +1 -0
- package/dist/esm/utils/welcome.js +21 -0
- package/dist/esm/utils/welcome.js.map +6 -0
- package/dist/esm/utils/welcome.mjs +15 -0
- package/dist/esm/utils/welcome.mjs.map +1 -0
- package/dist/esm/utils/welcome.native.js +18 -0
- package/dist/esm/utils/welcome.native.js.map +1 -0
- package/docs/aggregates.md +579 -0
- package/docs/cloudflare-dev-tunnel.md +41 -0
- package/docs/database.md +203 -0
- package/docs/docs.md +8 -0
- package/docs/emitters.md +562 -0
- package/docs/hot-updater.md +223 -0
- package/docs/native-hot-update.md +252 -0
- package/docs/one-components.md +234 -0
- package/docs/one-hooks.md +570 -0
- package/docs/one-routes.md +660 -0
- package/docs/package-json.md +115 -0
- package/docs/react-native-navigation-flow.md +184 -0
- package/docs/scripts.md +147 -0
- package/docs/sync-prompt.md +208 -0
- package/docs/tamagui.md +478 -0
- package/docs/testing-integration.md +564 -0
- package/docs/triggers.md +450 -0
- package/docs/zero.md +719 -0
- package/package.json +76 -0
- package/scripts/seed.ts +209 -0
- package/src/cli.ts +147 -0
- package/src/commands/changed.ts +313 -0
- package/src/commands/docs.ts +582 -0
- package/src/commands/env-setup.ts +69 -0
- package/src/commands/onboard.ts +1391 -0
- package/src/commands/run.ts +173 -0
- package/src/commands/script.ts +587 -0
- package/src/commands/sync.ts +305 -0
- package/src/constants/ascii.ts +17 -0
- package/src/index.ts +63 -0
- package/src/types.ts +59 -0
- package/src/utils/env-categories.ts +245 -0
- package/src/utils/env-setup.ts +338 -0
- package/src/utils/env.ts +127 -0
- package/src/utils/files.ts +302 -0
- package/src/utils/parallel-runner.ts +129 -0
- package/src/utils/ports.ts +77 -0
- package/src/utils/prerequisites.ts +137 -0
- package/src/utils/prompts.ts +197 -0
- package/src/utils/script-listing.ts +214 -0
- package/src/utils/sync.ts +101 -0
- package/src/withOpSqliteStatic.cjs +51 -0
- package/types/cli.d.ts +7 -0
- package/types/cli.d.ts.map +1 -0
- package/types/commands/changed.d.ts +14 -0
- package/types/commands/changed.d.ts.map +1 -0
- package/types/commands/docs.d.ts +5 -0
- package/types/commands/docs.d.ts.map +1 -0
- package/types/commands/env-setup.d.ts +25 -0
- package/types/commands/env-setup.d.ts.map +1 -0
- package/types/commands/onboard.d.ts +16 -0
- package/types/commands/onboard.d.ts.map +1 -0
- package/types/commands/run.d.ts +8 -0
- package/types/commands/run.d.ts.map +1 -0
- package/types/commands/script.d.ts +28 -0
- package/types/commands/script.d.ts.map +1 -0
- package/types/commands/sync.d.ts +5 -0
- package/types/commands/sync.d.ts.map +1 -0
- package/types/constants/ascii.d.ts +6 -0
- package/types/constants/ascii.d.ts.map +1 -0
- package/types/index.d.ts +12 -0
- package/types/index.d.ts.map +1 -0
- package/types/types.d.ts +54 -0
- package/types/types.d.ts.map +1 -0
- package/types/utils/env-categories.d.ts +8 -0
- package/types/utils/env-categories.d.ts.map +1 -0
- package/types/utils/env-setup.d.ts +10 -0
- package/types/utils/env-setup.d.ts.map +1 -0
- package/types/utils/env.d.ts +19 -0
- package/types/utils/env.d.ts.map +1 -0
- package/types/utils/files.d.ts +47 -0
- package/types/utils/files.d.ts.map +1 -0
- package/types/utils/parallel-runner.d.ts +15 -0
- package/types/utils/parallel-runner.d.ts.map +1 -0
- package/types/utils/ports.d.ts +16 -0
- package/types/utils/ports.d.ts.map +1 -0
- package/types/utils/prerequisites.d.ts +11 -0
- package/types/utils/prerequisites.d.ts.map +1 -0
- package/types/utils/prompts.d.ts +30 -0
- package/types/utils/prompts.d.ts.map +1 -0
- package/types/utils/script-listing.d.ts +7 -0
- package/types/utils/script-listing.d.ts.map +1 -0
- package/types/utils/sync.d.ts +16 -0
- package/types/utils/sync.d.ts.map +1 -0
- package/types/utils/welcome.d.ts +6 -0
- package/types/utils/welcome.d.ts.map +1 -0
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { existsSync, statSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { defineCommand, runMain } from "citty";
|
|
5
|
+
import { changedCommand } from "./commands/changed.native.js";
|
|
6
|
+
import { docsCommand } from "./commands/docs.native.js";
|
|
7
|
+
import { envSetupCommand } from "./commands/env-setup.native.js";
|
|
8
|
+
import { onboardCommand } from "./commands/onboard.native.js";
|
|
9
|
+
import { runCommand } from "./commands/run.native.js";
|
|
10
|
+
import { scriptCommand } from "./commands/script.native.js";
|
|
11
|
+
import { syncCommand } from "./commands/sync.native.js";
|
|
12
|
+
import { listAllScripts } from "./utils/script-listing.native.js";
|
|
13
|
+
var _process_argv_, _process_argv_1;
|
|
14
|
+
function isScriptCategory(name) {
|
|
15
|
+
var scriptsDir = join(process.cwd(), "scripts"),
|
|
16
|
+
categoryPath = join(scriptsDir, name);
|
|
17
|
+
try {
|
|
18
|
+
return existsSync(categoryPath) && statSync(categoryPath).isDirectory();
|
|
19
|
+
} catch {
|
|
20
|
+
return !1;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
function isLocalScript(name) {
|
|
24
|
+
for (var scriptsDir = join(process.cwd(), "scripts"), normalizedName = name.replace(/:/g, "/"), _i = 0, _iter = [".ts", ".js", ""]; _i < _iter.length; _i++) {
|
|
25
|
+
var ext = _iter[_i],
|
|
26
|
+
scriptPath = join(scriptsDir, `${normalizedName}${ext}`);
|
|
27
|
+
if (existsSync(scriptPath)) return !0;
|
|
28
|
+
}
|
|
29
|
+
return !1;
|
|
30
|
+
}
|
|
31
|
+
function isBuiltInScript(name) {
|
|
32
|
+
try {
|
|
33
|
+
for (var 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, "/"), _i = 0, _iter = [".ts", ".js", ""]; _i < _iter.length; _i++) {
|
|
34
|
+
var ext = _iter[_i],
|
|
35
|
+
scriptPath = join(srcPath, `${normalizedName}${ext}`);
|
|
36
|
+
if (existsSync(scriptPath)) return !0;
|
|
37
|
+
}
|
|
38
|
+
} catch {}
|
|
39
|
+
return !1;
|
|
40
|
+
}
|
|
41
|
+
var isShorthand = ((_process_argv_ = process.argv[1]) === null || _process_argv_ === void 0 ? void 0 : _process_argv_.endsWith("tko")) || ((_process_argv_1 = process.argv[1]) === null || _process_argv_1 === void 0 ? void 0 : _process_argv_1.includes("/.bin/tko"));
|
|
42
|
+
if (isShorthand) {
|
|
43
|
+
var firstArg = process.argv[2],
|
|
44
|
+
secondArg = process.argv[3],
|
|
45
|
+
builtInCommands = ["docs", "onboard", "run", "script", "env:setup", "sync", "changed", "--help", "-h", "--version", "-v"];
|
|
46
|
+
firstArg && !builtInCommands.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"));
|
|
47
|
+
}
|
|
48
|
+
var main = defineCommand({
|
|
49
|
+
meta: {
|
|
50
|
+
name: isShorthand ? "tko" : "takeout",
|
|
51
|
+
version: "0.0.2",
|
|
52
|
+
description: "CLI tools for Takeout starter kit"
|
|
53
|
+
},
|
|
54
|
+
subCommands: {
|
|
55
|
+
onboard: onboardCommand,
|
|
56
|
+
docs: docsCommand,
|
|
57
|
+
"env:setup": envSetupCommand,
|
|
58
|
+
run: runCommand,
|
|
59
|
+
script: scriptCommand,
|
|
60
|
+
sync: syncCommand,
|
|
61
|
+
changed: changedCommand
|
|
62
|
+
},
|
|
63
|
+
run() {
|
|
64
|
+
var hasArgs = process.argv.length > 2;
|
|
65
|
+
hasArgs || listAllScripts();
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
runMain(main);
|
|
69
|
+
//# sourceMappingURL=cli.native.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["existsSync","statSync","join","defineCommand","runMain","changedCommand","docsCommand","envSetupCommand","onboardCommand","runCommand","scriptCommand","syncCommand","listAllScripts","_process_argv_","_process_argv_1","isScriptCategory","name","scriptsDir","process","cwd","categoryPath","isDirectory","isLocalScript","normalizedName","replace","_i","_iter","length","ext","scriptPath","isBuiltInScript","resolved","import","meta","resolve","packageJsonPath","URL","pathname","packageRoot","srcPath","isShorthand","argv","endsWith","includes","firstArg","secondArg","builtInCommands","startsWith","splice","main","version","description","subCommands","onboard","docs","run","script","sync"],"sources":["../../src/cli.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
import pc from "picocolors";
|
|
6
|
+
const UPSTREAM_REPO = "tamagui/takeout3", UPSTREAM_REMOTE = "takeout-upstream", TAKEOUT_FILE = ".takeout", COMMIT_TYPE_ORDER = [
|
|
7
|
+
"feat",
|
|
8
|
+
"fix",
|
|
9
|
+
"perf",
|
|
10
|
+
"refactor",
|
|
11
|
+
"docs",
|
|
12
|
+
"chore",
|
|
13
|
+
"test",
|
|
14
|
+
"ci"
|
|
15
|
+
];
|
|
16
|
+
function readTakeoutConfig() {
|
|
17
|
+
const configPath = join(process.cwd(), TAKEOUT_FILE);
|
|
18
|
+
if (!existsSync(configPath))
|
|
19
|
+
return null;
|
|
20
|
+
try {
|
|
21
|
+
const content = readFileSync(configPath, "utf-8"), config = {};
|
|
22
|
+
for (const line of content.split(`
|
|
23
|
+
`)) {
|
|
24
|
+
const trimmed = line.trim();
|
|
25
|
+
if (trimmed.startsWith("#") || !trimmed) continue;
|
|
26
|
+
const [key, ...valueParts] = trimmed.split("="), value = valueParts.join("=").trim();
|
|
27
|
+
key === "sha" && (config.sha = value), key === "date" && (config.date = value);
|
|
28
|
+
}
|
|
29
|
+
return config;
|
|
30
|
+
} catch {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function parseConventionalCommit(message) {
|
|
35
|
+
const match = message.match(/^(\w+)(?:\(([^)]+)\))?(!)?: (.+)$/);
|
|
36
|
+
if (!match) return null;
|
|
37
|
+
const [, type, scope, breaking, msg] = match;
|
|
38
|
+
return [
|
|
39
|
+
"feat",
|
|
40
|
+
"fix",
|
|
41
|
+
"perf",
|
|
42
|
+
"refactor",
|
|
43
|
+
"docs",
|
|
44
|
+
"chore",
|
|
45
|
+
"test",
|
|
46
|
+
"ci",
|
|
47
|
+
"build",
|
|
48
|
+
"style"
|
|
49
|
+
].includes(type) ? {
|
|
50
|
+
type,
|
|
51
|
+
scope,
|
|
52
|
+
message: msg,
|
|
53
|
+
breaking: !!breaking || message.toLowerCase().includes("breaking")
|
|
54
|
+
} : null;
|
|
55
|
+
}
|
|
56
|
+
function ensureUpstreamRemote() {
|
|
57
|
+
try {
|
|
58
|
+
return execSync("git remote", { encoding: "utf-8" }).includes(UPSTREAM_REMOTE) || (console.info(pc.dim(` adding ${UPSTREAM_REMOTE} remote...`)), execSync(`git remote add ${UPSTREAM_REMOTE} git@github.com:${UPSTREAM_REPO}.git`, {
|
|
59
|
+
stdio: "pipe"
|
|
60
|
+
})), console.info(pc.dim(` fetching from ${UPSTREAM_REMOTE}...`)), execSync(`git fetch ${UPSTREAM_REMOTE} --quiet`, { stdio: "pipe" }), !0;
|
|
61
|
+
} catch (err) {
|
|
62
|
+
return console.error(pc.red(`failed to setup upstream remote: ${err}`)), !1;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function getCommitsBetween(fromSha, toRef) {
|
|
66
|
+
const commits = [];
|
|
67
|
+
try {
|
|
68
|
+
const lines = execSync(
|
|
69
|
+
`git log ${fromSha}..${toRef} --pretty=format:"%H|%ad|%s" --date=short 2>/dev/null`,
|
|
70
|
+
{ encoding: "utf-8", maxBuffer: 10485760 }
|
|
71
|
+
).trim().split(`
|
|
72
|
+
`).filter(Boolean);
|
|
73
|
+
for (const line of lines) {
|
|
74
|
+
const [hash, date, ...messageParts] = line.split("|"), message = messageParts.join("|"), parsed = parseConventionalCommit(message);
|
|
75
|
+
commits.push({
|
|
76
|
+
hash: hash.slice(0, 7),
|
|
77
|
+
type: parsed?.type || "other",
|
|
78
|
+
scope: parsed?.scope,
|
|
79
|
+
message: parsed?.message || message,
|
|
80
|
+
breaking: parsed?.breaking || !1,
|
|
81
|
+
date
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
} catch {
|
|
85
|
+
}
|
|
86
|
+
return commits;
|
|
87
|
+
}
|
|
88
|
+
function formatChangelog(commits) {
|
|
89
|
+
if (commits.length === 0) {
|
|
90
|
+
console.info(pc.dim(" no changes found"));
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
94
|
+
for (const commit of commits) {
|
|
95
|
+
const existing = grouped.get(commit.type) || [];
|
|
96
|
+
existing.push(commit), grouped.set(commit.type, existing);
|
|
97
|
+
}
|
|
98
|
+
const sortedTypes = Array.from(grouped.keys()).sort((a, b) => {
|
|
99
|
+
const aIdx = COMMIT_TYPE_ORDER.indexOf(a), bIdx = COMMIT_TYPE_ORDER.indexOf(b);
|
|
100
|
+
return (aIdx === -1 ? 999 : aIdx) - (bIdx === -1 ? 999 : bIdx);
|
|
101
|
+
}), breakingChanges = commits.filter((c) => c.breaking);
|
|
102
|
+
if (breakingChanges.length > 0) {
|
|
103
|
+
console.info(), console.info(pc.red(pc.bold(" BREAKING CHANGES")));
|
|
104
|
+
for (const commit of breakingChanges) {
|
|
105
|
+
const scope = commit.scope ? pc.cyan(`(${commit.scope})`) : "";
|
|
106
|
+
console.info(
|
|
107
|
+
` ${pc.red("!")} ${scope} ${commit.message} ${pc.dim(`(${commit.hash})`)}`
|
|
108
|
+
);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
const typeLabels = {
|
|
112
|
+
feat: "Features",
|
|
113
|
+
fix: "Bug Fixes",
|
|
114
|
+
perf: "Performance",
|
|
115
|
+
refactor: "Refactoring",
|
|
116
|
+
docs: "Documentation",
|
|
117
|
+
chore: "Maintenance",
|
|
118
|
+
test: "Tests",
|
|
119
|
+
ci: "CI",
|
|
120
|
+
build: "Build",
|
|
121
|
+
style: "Style",
|
|
122
|
+
other: "Other"
|
|
123
|
+
}, typeColors = {
|
|
124
|
+
feat: pc.green,
|
|
125
|
+
fix: pc.yellow,
|
|
126
|
+
perf: pc.magenta,
|
|
127
|
+
refactor: pc.blue,
|
|
128
|
+
docs: pc.dim,
|
|
129
|
+
chore: pc.dim,
|
|
130
|
+
test: pc.dim,
|
|
131
|
+
ci: pc.dim,
|
|
132
|
+
build: pc.dim,
|
|
133
|
+
style: pc.dim,
|
|
134
|
+
other: pc.white
|
|
135
|
+
};
|
|
136
|
+
for (const type of sortedTypes) {
|
|
137
|
+
const typeCommits = grouped.get(type).filter((c) => !c.breaking);
|
|
138
|
+
if (typeCommits.length === 0) continue;
|
|
139
|
+
const label = typeLabels[type] || type, color = typeColors[type] || pc.white;
|
|
140
|
+
console.info(), console.info(color(pc.bold(` ${label}`)));
|
|
141
|
+
for (const commit of typeCommits) {
|
|
142
|
+
const scope = commit.scope ? pc.cyan(`(${commit.scope}) `) : "";
|
|
143
|
+
console.info(
|
|
144
|
+
` ${pc.dim("-")} ${scope}${commit.message} ${pc.dim(`(${commit.hash})`)}`
|
|
145
|
+
);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const changedCommand = defineCommand({
|
|
150
|
+
meta: {
|
|
151
|
+
name: "changed",
|
|
152
|
+
description: "Show changes in upstream Takeout since last sync"
|
|
153
|
+
},
|
|
154
|
+
args: {
|
|
155
|
+
from: {
|
|
156
|
+
type: "string",
|
|
157
|
+
description: "Starting commit SHA (defaults to .takeout file)"
|
|
158
|
+
},
|
|
159
|
+
to: {
|
|
160
|
+
type: "string",
|
|
161
|
+
description: "Ending commit ref (defaults to upstream main)"
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
async run({ args }) {
|
|
165
|
+
console.info(), console.info(pc.bold(pc.cyan("Takeout Changes"))), console.info();
|
|
166
|
+
let fromSha = args.from;
|
|
167
|
+
const config = readTakeoutConfig();
|
|
168
|
+
if (!fromSha) {
|
|
169
|
+
if (!config?.sha) {
|
|
170
|
+
console.info(pc.yellow("No .takeout file found with last sync SHA.")), console.info(), console.info(pc.dim("Either:")), console.info(pc.dim(" 1. Create a .takeout file with: sha=<commit-sha>")), console.info(pc.dim(" 2. Run with --from <sha> to specify starting point")), console.info(pc.dim(" 3. Run `tko sync` to sync and create the file")), console.info();
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
fromSha = config.sha;
|
|
174
|
+
}
|
|
175
|
+
if (!ensureUpstreamRemote())
|
|
176
|
+
return;
|
|
177
|
+
const toRef = args.to || `${UPSTREAM_REMOTE}/main`;
|
|
178
|
+
console.info(pc.dim(` from: ${fromSha.slice(0, 7)}`)), console.info(pc.dim(` to: ${toRef}`)), config?.date && console.info(pc.dim(` last sync: ${config.date}`));
|
|
179
|
+
const commits = getCommitsBetween(fromSha, toRef);
|
|
180
|
+
if (commits.length === 0) {
|
|
181
|
+
console.info(), console.info(pc.green("\u2713 Already up to date with upstream!")), console.info();
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
console.info(), console.info(
|
|
185
|
+
pc.bold(
|
|
186
|
+
`${commits.length} commit${commits.length === 1 ? "" : "s"} since last sync:`
|
|
187
|
+
)
|
|
188
|
+
), formatChangelog(commits), console.info(), console.info(pc.dim("Run `tko sync` to sync these changes into your fork.")), console.info();
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
export {
|
|
192
|
+
changedCommand
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=changed.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/commands/changed.ts"],
|
|
4
|
+
"mappings": "AAIA,SAAS,gBAAgB;AACzB,SAAS,YAAY,oBAAoB;AACzC,SAAS,YAAY;AAErB,SAAS,qBAAqB;AAC9B,OAAO,QAAQ;AAEf,MAAM,gBAAgB,oBAChB,kBAAkB,oBAClB,eAAe,YAEf,oBAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAgBA,SAAS,oBAA0C;AACjD,QAAM,aAAa,KAAK,QAAQ,IAAI,GAAG,YAAY;AAEnD,MAAI,CAAC,WAAW,UAAU;AACxB,WAAO;AAGT,MAAI;AACF,UAAM,UAAU,aAAa,YAAY,OAAO,GAC1C,SAAwB,CAAC;AAE/B,eAAW,QAAQ,QAAQ,MAAM;AAAA,CAAI,GAAG;AACtC,YAAM,UAAU,KAAK,KAAK;AAC1B,UAAI,QAAQ,WAAW,GAAG,KAAK,CAAC,QAAS;AAEzC,YAAM,CAAC,KAAK,GAAG,UAAU,IAAI,QAAQ,MAAM,GAAG,GACxC,QAAQ,WAAW,KAAK,GAAG,EAAE,KAAK;AAExC,MAAI,QAAQ,UAAO,OAAO,MAAM,QAC5B,QAAQ,WAAQ,OAAO,OAAO;AAAA,IACpC;AAEA,WAAO;AAAA,EACT,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEA,SAAS,wBACP,SAC6E;AAE7E,QAAM,QAAQ,QAAQ,MAAM,mCAAmC;AAC/D,MAAI,CAAC,MAAO,QAAO;AAEnB,QAAM,CAAC,EAAE,MAAM,OAAO,UAAU,GAAG,IAAI;AAevC,SAZmB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,EACgB,SAAS,IAAI,IAEtB;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU,CAAC,CAAC,YAAY,QAAQ,YAAY,EAAE,SAAS,UAAU;AAAA,EACnE,IAPuC;AAQzC;AAEA,SAAS,uBAAgC;AACvC,MAAI;AAGF,WADgB,SAAS,cAAc,EAAE,UAAU,QAAQ,CAAC,EAC/C,SAAS,eAAe,MACnC,QAAQ,KAAK,GAAG,IAAI,YAAY,eAAe,YAAY,CAAC,GAC5D,SAAS,kBAAkB,eAAe,mBAAmB,aAAa,QAAQ;AAAA,MAChF,OAAO;AAAA,IACT,CAAC,IAIH,QAAQ,KAAK,GAAG,IAAI,mBAAmB,eAAe,KAAK,CAAC,GAC5D,SAAS,aAAa,eAAe,YAAY,EAAE,OAAO,OAAO,CAAC,GAC3D;AAAA,EACT,SAAS,KAAK;AACZ,mBAAQ,MAAM,GAAG,IAAI,oCAAoC,GAAG,EAAE,CAAC,GACxD;AAAA,EACT;AACF;AAEA,SAAS,kBAAkB,SAAiB,OAA6B;AACvE,QAAM,UAAwB,CAAC;AAE/B,MAAI;AAOF,UAAM,QALS;AAAA,MACb,WAAW,OAAO,KAAK,KAAK;AAAA,MAC5B,EAAE,UAAU,SAAS,WAAW,SAAiB;AAAA,IACnD,EAEqB,KAAK,EAAE,MAAM;AAAA,CAAI,EAAE,OAAO,OAAO;AAEtD,eAAW,QAAQ,OAAO;AACxB,YAAM,CAAC,MAAM,MAAM,GAAG,YAAY,IAAI,KAAK,MAAM,GAAG,GAC9C,UAAU,aAAa,KAAK,GAAG,GAE/B,SAAS,wBAAwB,OAAO;AAG9C,cAAQ,KAAK;AAAA,QACX,MAAM,KAAK,MAAM,GAAG,CAAC;AAAA,QACrB,MAAM,QAAQ,QAAQ;AAAA,QACtB,OAAO,QAAQ;AAAA,QACf,SAAS,QAAQ,WAAW;AAAA,QAC5B,UAAU,QAAQ,YAAY;AAAA,QAC9B;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,QAAQ;AAAA,EAER;AAEA,SAAO;AACT;AAEA,SAAS,gBAAgB,SAA6B;AACpD,MAAI,QAAQ,WAAW,GAAG;AACxB,YAAQ,KAAK,GAAG,IAAI,oBAAoB,CAAC;AACzC;AAAA,EACF;AAGA,QAAM,UAAU,oBAAI,IAA0B;AAC9C,aAAW,UAAU,SAAS;AAC5B,UAAM,WAAW,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC;AAC9C,aAAS,KAAK,MAAM,GACpB,QAAQ,IAAI,OAAO,MAAM,QAAQ;AAAA,EACnC;AAGA,QAAM,cAAc,MAAM,KAAK,QAAQ,KAAK,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM;AAC5D,UAAM,OAAO,kBAAkB,QAAQ,CAAC,GAClC,OAAO,kBAAkB,QAAQ,CAAC;AACxC,YAAQ,SAAS,KAAK,MAAM,SAAS,SAAS,KAAK,MAAM;AAAA,EAC3D,CAAC,GAGK,kBAAkB,QAAQ,OAAO,CAAC,MAAM,EAAE,QAAQ;AACxD,MAAI,gBAAgB,SAAS,GAAG;AAC9B,YAAQ,KAAK,GACb,QAAQ,KAAK,GAAG,IAAI,GAAG,KAAK,oBAAoB,CAAC,CAAC;AAClD,eAAW,UAAU,iBAAiB;AACpC,YAAM,QAAQ,OAAO,QAAQ,GAAG,KAAK,IAAI,OAAO,KAAK,GAAG,IAAI;AAC5D,cAAQ;AAAA,QACN,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,OAAO,OAAO,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC;AAAA,MAC7E;AAAA,IACF;AAAA,EACF;AAEA,QAAM,aAAqC;AAAA,IACzC,MAAM;AAAA,IACN,KAAK;AAAA,IACL,MAAM;AAAA,IACN,UAAU;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,OAAO;AAAA,IACP,OAAO;AAAA,IACP,OAAO;AAAA,EACT,GAEM,aAAoD;AAAA,IACxD,MAAM,GAAG;AAAA,IACT,KAAK,GAAG;AAAA,IACR,MAAM,GAAG;AAAA,IACT,UAAU,GAAG;AAAA,IACb,MAAM,GAAG;AAAA,IACT,OAAO,GAAG;AAAA,IACV,MAAM,GAAG;AAAA,IACT,IAAI,GAAG;AAAA,IACP,OAAO,GAAG;AAAA,IACV,OAAO,GAAG;AAAA,IACV,OAAO,GAAG;AAAA,EACZ;AAEA,aAAW,QAAQ,aAAa;AAC9B,UAAM,cAAc,QAAQ,IAAI,IAAI,EAAG,OAAO,CAAC,MAAM,CAAC,EAAE,QAAQ;AAChE,QAAI,YAAY,WAAW,EAAG;AAE9B,UAAM,QAAQ,WAAW,IAAI,KAAK,MAC5B,QAAQ,WAAW,IAAI,KAAK,GAAG;AAErC,YAAQ,KAAK,GACb,QAAQ,KAAK,MAAM,GAAG,KAAK,KAAK,KAAK,EAAE,CAAC,CAAC;AAEzC,eAAW,UAAU,aAAa;AAChC,YAAM,QAAQ,OAAO,QAAQ,GAAG,KAAK,IAAI,OAAO,KAAK,IAAI,IAAI;AAC7D,cAAQ;AAAA,QACN,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,OAAO,OAAO,IAAI,GAAG,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC;AAAA,MAC5E;AAAA,IACF;AAAA,EACF;AACF;AAEO,MAAM,iBAAiB,cAAc;AAAA,EAC1C,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,aAAa;AAAA,EACf;AAAA,EACA,MAAM;AAAA,IACJ,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,IAAI;AAAA,MACF,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,MAAM,IAAI,EAAE,KAAK,GAAG;AAClB,YAAQ,KAAK,GACb,QAAQ,KAAK,GAAG,KAAK,GAAG,KAAK,iBAAiB,CAAC,CAAC,GAChD,QAAQ,KAAK;AAGb,QAAI,UAAU,KAAK;AACnB,UAAM,SAAS,kBAAkB;AAEjC,QAAI,CAAC,SAAS;AACZ,UAAI,CAAC,QAAQ,KAAK;AAChB,gBAAQ,KAAK,GAAG,OAAO,4CAA4C,CAAC,GACpE,QAAQ,KAAK,GACb,QAAQ,KAAK,GAAG,IAAI,SAAS,CAAC,GAC9B,QAAQ,KAAK,GAAG,IAAI,oDAAoD,CAAC,GACzE,QAAQ,KAAK,GAAG,IAAI,sDAAsD,CAAC,GAC3E,QAAQ,KAAK,GAAG,IAAI,iDAAiD,CAAC,GACtE,QAAQ,KAAK;AACb;AAAA,MACF;AACA,gBAAU,OAAO;AAAA,IACnB;AAGA,QAAI,CAAC,qBAAqB;AACxB;AAGF,UAAM,QAAQ,KAAK,MAAM,GAAG,eAAe;AAE3C,YAAQ,KAAK,GAAG,IAAI,WAAW,QAAQ,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,GACrD,QAAQ,KAAK,GAAG,IAAI,WAAW,KAAK,EAAE,CAAC,GAEnC,QAAQ,QACV,QAAQ,KAAK,GAAG,IAAI,gBAAgB,OAAO,IAAI,EAAE,CAAC;AAIpD,UAAM,UAAU,kBAAkB,SAAS,KAAK;AAEhD,QAAI,QAAQ,WAAW,GAAG;AACxB,cAAQ,KAAK,GACb,QAAQ,KAAK,GAAG,MAAM,0CAAqC,CAAC,GAC5D,QAAQ,KAAK;AACb;AAAA,IACF;AAEA,YAAQ,KAAK,GACb,QAAQ;AAAA,MACN,GAAG;AAAA,QACD,GAAG,QAAQ,MAAM,UAAU,QAAQ,WAAW,IAAI,KAAK,GAAG;AAAA,MAC5D;AAAA,IACF,GAEA,gBAAgB,OAAO,GAEvB,QAAQ,KAAK,GACb,QAAQ,KAAK,GAAG,IAAI,sDAAsD,CAAC,GAC3E,QAAQ,KAAK;AAAA,EACf;AACF,CAAC;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { execSync } from "node:child_process";
|
|
2
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { defineCommand } from "citty";
|
|
5
|
+
import pc from "picocolors";
|
|
6
|
+
const UPSTREAM_REPO = "tamagui/takeout3",
|
|
7
|
+
UPSTREAM_REMOTE = "takeout-upstream",
|
|
8
|
+
TAKEOUT_FILE = ".takeout",
|
|
9
|
+
COMMIT_TYPE_ORDER = ["feat", "fix", "perf", "refactor", "docs", "chore", "test", "ci"];
|
|
10
|
+
function readTakeoutConfig() {
|
|
11
|
+
const configPath = join(process.cwd(), TAKEOUT_FILE);
|
|
12
|
+
if (!existsSync(configPath)) return null;
|
|
13
|
+
try {
|
|
14
|
+
const content = readFileSync(configPath, "utf-8"),
|
|
15
|
+
config = {};
|
|
16
|
+
for (const line of content.split(`
|
|
17
|
+
`)) {
|
|
18
|
+
const trimmed = line.trim();
|
|
19
|
+
if (trimmed.startsWith("#") || !trimmed) continue;
|
|
20
|
+
const [key, ...valueParts] = trimmed.split("="),
|
|
21
|
+
value = valueParts.join("=").trim();
|
|
22
|
+
key === "sha" && (config.sha = value), key === "date" && (config.date = value);
|
|
23
|
+
}
|
|
24
|
+
return config;
|
|
25
|
+
} catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function parseConventionalCommit(message) {
|
|
30
|
+
const match = message.match(/^(\w+)(?:\(([^)]+)\))?(!)?: (.+)$/);
|
|
31
|
+
if (!match) return null;
|
|
32
|
+
const [, type, scope, breaking, msg] = match;
|
|
33
|
+
return ["feat", "fix", "perf", "refactor", "docs", "chore", "test", "ci", "build", "style"].includes(type) ? {
|
|
34
|
+
type,
|
|
35
|
+
scope,
|
|
36
|
+
message: msg,
|
|
37
|
+
breaking: !!breaking || message.toLowerCase().includes("breaking")
|
|
38
|
+
} : null;
|
|
39
|
+
}
|
|
40
|
+
function ensureUpstreamRemote() {
|
|
41
|
+
try {
|
|
42
|
+
return execSync("git remote", {
|
|
43
|
+
encoding: "utf-8"
|
|
44
|
+
}).includes(UPSTREAM_REMOTE) || (console.info(pc.dim(` adding ${UPSTREAM_REMOTE} remote...`)), execSync(`git remote add ${UPSTREAM_REMOTE} git@github.com:${UPSTREAM_REPO}.git`, {
|
|
45
|
+
stdio: "pipe"
|
|
46
|
+
})), console.info(pc.dim(` fetching from ${UPSTREAM_REMOTE}...`)), execSync(`git fetch ${UPSTREAM_REMOTE} --quiet`, {
|
|
47
|
+
stdio: "pipe"
|
|
48
|
+
}), !0;
|
|
49
|
+
} catch (err) {
|
|
50
|
+
return console.error(pc.red(`failed to setup upstream remote: ${err}`)), !1;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function getCommitsBetween(fromSha, toRef) {
|
|
54
|
+
const commits = [];
|
|
55
|
+
try {
|
|
56
|
+
const lines = execSync(`git log ${fromSha}..${toRef} --pretty=format:"%H|%ad|%s" --date=short 2>/dev/null`, {
|
|
57
|
+
encoding: "utf-8",
|
|
58
|
+
maxBuffer: 10485760
|
|
59
|
+
}).trim().split(`
|
|
60
|
+
`).filter(Boolean);
|
|
61
|
+
for (const line of lines) {
|
|
62
|
+
const [hash, date, ...messageParts] = line.split("|"),
|
|
63
|
+
message = messageParts.join("|"),
|
|
64
|
+
parsed = parseConventionalCommit(message);
|
|
65
|
+
commits.push({
|
|
66
|
+
hash: hash.slice(0, 7),
|
|
67
|
+
type: parsed?.type || "other",
|
|
68
|
+
scope: parsed?.scope,
|
|
69
|
+
message: parsed?.message || message,
|
|
70
|
+
breaking: parsed?.breaking || !1,
|
|
71
|
+
date
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
} catch {}
|
|
75
|
+
return commits;
|
|
76
|
+
}
|
|
77
|
+
function formatChangelog(commits) {
|
|
78
|
+
if (commits.length === 0) {
|
|
79
|
+
console.info(pc.dim(" no changes found"));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
const grouped = /* @__PURE__ */new Map();
|
|
83
|
+
for (const commit of commits) {
|
|
84
|
+
const existing = grouped.get(commit.type) || [];
|
|
85
|
+
existing.push(commit), grouped.set(commit.type, existing);
|
|
86
|
+
}
|
|
87
|
+
const sortedTypes = Array.from(grouped.keys()).sort((a, b) => {
|
|
88
|
+
const aIdx = COMMIT_TYPE_ORDER.indexOf(a),
|
|
89
|
+
bIdx = COMMIT_TYPE_ORDER.indexOf(b);
|
|
90
|
+
return (aIdx === -1 ? 999 : aIdx) - (bIdx === -1 ? 999 : bIdx);
|
|
91
|
+
}),
|
|
92
|
+
breakingChanges = commits.filter(c => c.breaking);
|
|
93
|
+
if (breakingChanges.length > 0) {
|
|
94
|
+
console.info(), console.info(pc.red(pc.bold(" BREAKING CHANGES")));
|
|
95
|
+
for (const commit of breakingChanges) {
|
|
96
|
+
const scope = commit.scope ? pc.cyan(`(${commit.scope})`) : "";
|
|
97
|
+
console.info(` ${pc.red("!")} ${scope} ${commit.message} ${pc.dim(`(${commit.hash})`)}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const typeLabels = {
|
|
101
|
+
feat: "Features",
|
|
102
|
+
fix: "Bug Fixes",
|
|
103
|
+
perf: "Performance",
|
|
104
|
+
refactor: "Refactoring",
|
|
105
|
+
docs: "Documentation",
|
|
106
|
+
chore: "Maintenance",
|
|
107
|
+
test: "Tests",
|
|
108
|
+
ci: "CI",
|
|
109
|
+
build: "Build",
|
|
110
|
+
style: "Style",
|
|
111
|
+
other: "Other"
|
|
112
|
+
},
|
|
113
|
+
typeColors = {
|
|
114
|
+
feat: pc.green,
|
|
115
|
+
fix: pc.yellow,
|
|
116
|
+
perf: pc.magenta,
|
|
117
|
+
refactor: pc.blue,
|
|
118
|
+
docs: pc.dim,
|
|
119
|
+
chore: pc.dim,
|
|
120
|
+
test: pc.dim,
|
|
121
|
+
ci: pc.dim,
|
|
122
|
+
build: pc.dim,
|
|
123
|
+
style: pc.dim,
|
|
124
|
+
other: pc.white
|
|
125
|
+
};
|
|
126
|
+
for (const type of sortedTypes) {
|
|
127
|
+
const typeCommits = grouped.get(type).filter(c => !c.breaking);
|
|
128
|
+
if (typeCommits.length === 0) continue;
|
|
129
|
+
const label = typeLabels[type] || type,
|
|
130
|
+
color = typeColors[type] || pc.white;
|
|
131
|
+
console.info(), console.info(color(pc.bold(` ${label}`)));
|
|
132
|
+
for (const commit of typeCommits) {
|
|
133
|
+
const scope = commit.scope ? pc.cyan(`(${commit.scope}) `) : "";
|
|
134
|
+
console.info(` ${pc.dim("-")} ${scope}${commit.message} ${pc.dim(`(${commit.hash})`)}`);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
const changedCommand = defineCommand({
|
|
139
|
+
meta: {
|
|
140
|
+
name: "changed",
|
|
141
|
+
description: "Show changes in upstream Takeout since last sync"
|
|
142
|
+
},
|
|
143
|
+
args: {
|
|
144
|
+
from: {
|
|
145
|
+
type: "string",
|
|
146
|
+
description: "Starting commit SHA (defaults to .takeout file)"
|
|
147
|
+
},
|
|
148
|
+
to: {
|
|
149
|
+
type: "string",
|
|
150
|
+
description: "Ending commit ref (defaults to upstream main)"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
async run({
|
|
154
|
+
args
|
|
155
|
+
}) {
|
|
156
|
+
console.info(), console.info(pc.bold(pc.cyan("Takeout Changes"))), console.info();
|
|
157
|
+
let fromSha = args.from;
|
|
158
|
+
const config = readTakeoutConfig();
|
|
159
|
+
if (!fromSha) {
|
|
160
|
+
if (!config?.sha) {
|
|
161
|
+
console.info(pc.yellow("No .takeout file found with last sync SHA.")), console.info(), console.info(pc.dim("Either:")), console.info(pc.dim(" 1. Create a .takeout file with: sha=<commit-sha>")), console.info(pc.dim(" 2. Run with --from <sha> to specify starting point")), console.info(pc.dim(" 3. Run `tko sync` to sync and create the file")), console.info();
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
fromSha = config.sha;
|
|
165
|
+
}
|
|
166
|
+
if (!ensureUpstreamRemote()) return;
|
|
167
|
+
const toRef = args.to || `${UPSTREAM_REMOTE}/main`;
|
|
168
|
+
console.info(pc.dim(` from: ${fromSha.slice(0, 7)}`)), console.info(pc.dim(` to: ${toRef}`)), config?.date && console.info(pc.dim(` last sync: ${config.date}`));
|
|
169
|
+
const commits = getCommitsBetween(fromSha, toRef);
|
|
170
|
+
if (commits.length === 0) {
|
|
171
|
+
console.info(), console.info(pc.green("\u2713 Already up to date with upstream!")), console.info();
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
console.info(), console.info(pc.bold(`${commits.length} commit${commits.length === 1 ? "" : "s"} since last sync:`)), formatChangelog(commits), console.info(), console.info(pc.dim("Run `tko sync` to sync these changes into your fork.")), console.info();
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
export { changedCommand };
|
|
178
|
+
//# sourceMappingURL=changed.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["execSync","existsSync","readFileSync","join","defineCommand","pc","UPSTREAM_REPO","UPSTREAM_REMOTE","TAKEOUT_FILE","COMMIT_TYPE_ORDER","readTakeoutConfig","configPath","process","cwd","content","config","line","split","trimmed","trim","startsWith","key","valueParts","value","sha","date","parseConventionalCommit","message","match","type","scope","breaking","msg","includes","toLowerCase","ensureUpstreamRemote","encoding","console","info","dim","stdio","err","error","red","getCommitsBetween","fromSha","toRef","commits","lines","maxBuffer","filter","Boolean","hash","messageParts","parsed","push","slice","formatChangelog","length","grouped","Map","commit","existing","get","set","sortedTypes","Array","from","keys","sort","a","b","aIdx","indexOf","bIdx","breakingChanges","c","bold","cyan","typeLabels","feat","fix","perf","refactor","docs","chore","test","ci","build","style","other","typeColors","green","yellow","magenta","blue","white","typeCommits","label","color","changedCommand","meta","name","description","args","to","run"],"sources":["../../../src/commands/changed.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|