@take-out/cli 0.0.51 → 0.0.57

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 (57) hide show
  1. package/dist/cjs/cli.cjs +3 -1
  2. package/dist/cjs/cli.js +3 -1
  3. package/dist/cjs/cli.js.map +1 -1
  4. package/dist/cjs/commands/run-all.cjs +69 -0
  5. package/dist/cjs/commands/run-all.js +59 -0
  6. package/dist/cjs/commands/run-all.js.map +6 -0
  7. package/dist/cjs/commands/run.cjs +2 -2
  8. package/dist/cjs/commands/run.js +2 -2
  9. package/dist/cjs/commands/run.js.map +1 -1
  10. package/dist/cjs/commands/script.cjs +8 -83
  11. package/dist/cjs/commands/script.js +8 -85
  12. package/dist/cjs/commands/script.js.map +1 -1
  13. package/dist/cjs/commands/script.native.js.map +1 -1
  14. package/dist/cjs/utils/script-listing.cjs +9 -9
  15. package/dist/cjs/utils/script-listing.js +8 -8
  16. package/dist/cjs/utils/script-listing.js.map +1 -1
  17. package/dist/cjs/utils/script-utils.cjs +91 -0
  18. package/dist/cjs/utils/script-utils.js +87 -0
  19. package/dist/cjs/utils/script-utils.js.map +6 -0
  20. package/dist/cjs/utils/script-utils.native.js +126 -0
  21. package/dist/cjs/utils/script-utils.native.js.map +6 -0
  22. package/dist/esm/cli.js +3 -0
  23. package/dist/esm/cli.js.map +1 -1
  24. package/dist/esm/cli.mjs +3 -1
  25. package/dist/esm/cli.mjs.map +1 -1
  26. package/dist/esm/commands/run-all.js +46 -0
  27. package/dist/esm/commands/run-all.js.map +6 -0
  28. package/dist/esm/commands/run-all.mjs +46 -0
  29. package/dist/esm/commands/run-all.mjs.map +1 -0
  30. package/dist/esm/commands/run.js +2 -2
  31. package/dist/esm/commands/run.js.map +1 -1
  32. package/dist/esm/commands/run.mjs +2 -2
  33. package/dist/esm/commands/run.mjs.map +1 -1
  34. package/dist/esm/commands/script.js +6 -84
  35. package/dist/esm/commands/script.js.map +1 -1
  36. package/dist/esm/commands/script.mjs +7 -79
  37. package/dist/esm/commands/script.mjs.map +1 -1
  38. package/dist/esm/utils/script-listing.js +1 -5
  39. package/dist/esm/utils/script-listing.js.map +1 -1
  40. package/dist/esm/utils/script-listing.mjs +1 -1
  41. package/dist/esm/utils/script-listing.mjs.map +1 -1
  42. package/dist/esm/utils/script-utils.js +80 -0
  43. package/dist/esm/utils/script-utils.js.map +6 -0
  44. package/dist/esm/utils/script-utils.mjs +66 -0
  45. package/dist/esm/utils/script-utils.mjs.map +1 -0
  46. package/dist/esm/utils/script-utils.native.js +112 -0
  47. package/dist/esm/utils/script-utils.native.js.map +6 -0
  48. package/package.json +7 -7
  49. package/scripts/seed.ts +12 -4
  50. package/src/cli.ts +3 -0
  51. package/src/commands/run-all.ts +62 -0
  52. package/src/commands/run.ts +3 -2
  53. package/src/commands/script.ts +9 -159
  54. package/src/utils/script-listing.ts +1 -6
  55. package/src/utils/script-utils.ts +153 -0
  56. package/types/utils/script-utils.d.ts +13 -0
  57. package/types/utils/script-utils.d.ts.map +1 -0
@@ -2,7 +2,7 @@ import { existsSync, statSync } from "node:fs";
2
2
  import { join, relative } from "node:path";
3
3
  import { fileURLToPath } from "node:url";
4
4
  import pc from "picocolors";
5
- import { discoverScripts, getLocalScriptsDir, getScriptMetadata } from "../commands/script.mjs";
5
+ import { discoverScripts, getLocalScriptsDir, getScriptMetadata } from "./script-utils.mjs";
6
6
  function findScriptsPackageRoot() {
7
7
  try {
8
8
  const resolved = import.meta.resolve("@take-out/scripts/package.json"),
@@ -1 +1 @@
1
- {"version":3,"names":["existsSync","statSync","join","relative","fileURLToPath","pc","discoverScripts","getLocalScriptsDir","getScriptMetadata","findScriptsPackageRoot","resolved","import","meta","resolve","packageJsonPath","URL","packageRoot","srcPath","formatScriptList","title","scripts","showDescriptions","size","console","info","bold","cyan","categories","Map","rootScripts","name","path","includes","parts","split","length","category","has","set","get","push","line","green","metadata","description","dim","categoryScripts","yellow","shortName","startsWith","substring","listAllScripts","includeCommands","localScripts","builtInDir","builtInScripts","process","cwd","listCategoryScripts","categoryName","localDir","categoryPath","isDirectory","replace","args"],"sources":["../../../src/utils/script-listing.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["existsSync","statSync","join","relative","fileURLToPath","pc","discoverScripts","getLocalScriptsDir","getScriptMetadata","findScriptsPackageRoot","resolved","import","meta","resolve","packageJsonPath","URL","packageRoot","srcPath","formatScriptList","title","scripts","showDescriptions","size","console","info","bold","cyan","categories","Map","rootScripts","name","path","includes","parts","split","length","category","has","set","get","push","line","green","metadata","description","dim","categoryScripts","yellow","shortName","startsWith","substring","listAllScripts","includeCommands","localScripts","builtInDir","builtInScripts","process","cwd","listCategoryScripts","categoryName","localDir","categoryPath","isDirectory","replace","args"],"sources":["../../../src/utils/script-listing.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ import {
2
+ existsSync,
3
+ readdirSync,
4
+ statSync,
5
+ readFileSync,
6
+ writeFileSync,
7
+ mkdirSync
8
+ } from "node:fs";
9
+ import { homedir } from "node:os";
10
+ import { join, relative } from "node:path";
11
+ const CACHE_DIR = join(homedir(), ".takeout"), CACHE_FILE = join(CACHE_DIR, "script-cache.json");
12
+ function getLocalScriptsDir() {
13
+ return join(process.cwd(), "scripts");
14
+ }
15
+ function extractMetadata(filePath) {
16
+ try {
17
+ const lines = readFileSync(filePath, "utf-8").split(`
18
+ `).slice(0, 20), metadata = {};
19
+ for (const line of lines) {
20
+ const descMatch = line.match(/@description\s+(.+)/);
21
+ descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
22
+ const argsMatch = line.match(/@args\s+(.+)/);
23
+ argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map((a) => a.trim()));
24
+ }
25
+ const stat = statSync(filePath);
26
+ return metadata.mtime = stat.mtimeMs, metadata;
27
+ } catch {
28
+ return {};
29
+ }
30
+ }
31
+ function loadCache() {
32
+ try {
33
+ if (existsSync(CACHE_FILE))
34
+ return JSON.parse(readFileSync(CACHE_FILE, "utf-8"));
35
+ } catch {
36
+ }
37
+ return {};
38
+ }
39
+ function saveCache(cache) {
40
+ try {
41
+ existsSync(CACHE_DIR) || mkdirSync(CACHE_DIR, { recursive: !0 }), writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
42
+ } catch {
43
+ }
44
+ }
45
+ function getScriptMetadata(filePath) {
46
+ const cache = loadCache(), stat = statSync(filePath);
47
+ if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs)
48
+ return cache[filePath];
49
+ const metadata = extractMetadata(filePath);
50
+ return cache[filePath] = metadata, saveCache(cache), metadata;
51
+ }
52
+ function discoverScripts(dir, baseDir = dir, depth = 0, maxDepth = 1) {
53
+ const scripts = /* @__PURE__ */ new Map();
54
+ if (!existsSync(dir))
55
+ return scripts;
56
+ try {
57
+ const entries = readdirSync(dir);
58
+ for (const entry of entries) {
59
+ const fullPath = join(dir, entry);
60
+ if (statSync(fullPath).isDirectory()) {
61
+ if (entry === "helpers" || depth >= maxDepth)
62
+ continue;
63
+ const subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth);
64
+ for (const [name, path] of subScripts)
65
+ scripts.set(name, path);
66
+ } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
67
+ const scriptName = relative(baseDir, fullPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
68
+ scripts.set(scriptName, fullPath);
69
+ }
70
+ }
71
+ } catch {
72
+ }
73
+ return scripts;
74
+ }
75
+ export {
76
+ discoverScripts,
77
+ getLocalScriptsDir,
78
+ getScriptMetadata
79
+ };
80
+ //# sourceMappingURL=script-utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/script-utils.ts"],
4
+ "mappings": "AAIA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,eAAe;AACxB,SAAS,MAAM,gBAAgB;AAG/B,MAAM,YAAY,KAAK,QAAQ,GAAG,UAAU,GACtC,aAAa,KAAK,WAAW,mBAAmB;AAa/C,SAAS,qBAA6B;AAC3C,SAAO,KAAK,QAAQ,IAAI,GAAG,SAAS;AACtC;AAGA,SAAS,gBAAgB,UAAkC;AACzD,MAAI;AAEF,UAAM,QADU,aAAa,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,OAAO,SAAS,QAAQ;AAC9B,oBAAS,QAAQ,KAAK,SAEf;AAAA,EACT,QAAc;AACZ,WAAO,CAAC;AAAA,EACV;AACF;AAGA,SAAS,YAAyB;AAChC,MAAI;AACF,QAAI,WAAW,UAAU;AACvB,aAAO,KAAK,MAAM,aAAa,YAAY,OAAO,CAAC;AAAA,EAEvD,QAAc;AAAA,EAEd;AACA,SAAO,CAAC;AACV;AAGA,SAAS,UAAU,OAAoB;AACrC,MAAI;AACF,IAAK,WAAW,SAAS,KACvB,UAAU,WAAW,EAAE,WAAW,GAAK,CAAC,GAE1C,cAAc,YAAY,KAAK,UAAU,OAAO,MAAM,CAAC,CAAC;AAAA,EAC1D,QAAc;AAAA,EAEd;AACF;AAGO,SAAS,kBAAkB,UAAkC;AAClE,QAAM,QAAQ,UAAU,GAClB,OAAO,SAAS,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,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;AAEtB,YAAI,UAAU,aAAa,SAAS;AAClC;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,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,QAAc;AAAA,EAEd;AAEA,SAAO;AACT;",
5
+ "names": []
6
+ }
@@ -0,0 +1,66 @@
1
+ import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
2
+ import { homedir } from "node:os";
3
+ import { join, relative } from "node:path";
4
+ const CACHE_DIR = join(homedir(), ".takeout"),
5
+ CACHE_FILE = join(CACHE_DIR, "script-cache.json");
6
+ function getLocalScriptsDir() {
7
+ return join(process.cwd(), "scripts");
8
+ }
9
+ function extractMetadata(filePath) {
10
+ try {
11
+ const lines = readFileSync(filePath, "utf-8").split(`
12
+ `).slice(0, 20),
13
+ metadata = {};
14
+ for (const line of lines) {
15
+ const descMatch = line.match(/@description\s+(.+)/);
16
+ descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
17
+ const argsMatch = line.match(/@args\s+(.+)/);
18
+ argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map(a => a.trim()));
19
+ }
20
+ const stat = statSync(filePath);
21
+ return metadata.mtime = stat.mtimeMs, metadata;
22
+ } catch {
23
+ return {};
24
+ }
25
+ }
26
+ function loadCache() {
27
+ try {
28
+ if (existsSync(CACHE_FILE)) return JSON.parse(readFileSync(CACHE_FILE, "utf-8"));
29
+ } catch {}
30
+ return {};
31
+ }
32
+ function saveCache(cache) {
33
+ try {
34
+ existsSync(CACHE_DIR) || mkdirSync(CACHE_DIR, {
35
+ recursive: !0
36
+ }), writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
37
+ } catch {}
38
+ }
39
+ function getScriptMetadata(filePath) {
40
+ const cache = loadCache(),
41
+ stat = statSync(filePath);
42
+ if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs) return cache[filePath];
43
+ const metadata = extractMetadata(filePath);
44
+ return cache[filePath] = metadata, saveCache(cache), metadata;
45
+ }
46
+ function discoverScripts(dir, baseDir = dir, depth = 0, maxDepth = 1) {
47
+ const scripts = /* @__PURE__ */new Map();
48
+ if (!existsSync(dir)) return scripts;
49
+ try {
50
+ const entries = readdirSync(dir);
51
+ for (const entry of entries) {
52
+ const fullPath = join(dir, entry);
53
+ if (statSync(fullPath).isDirectory()) {
54
+ if (entry === "helpers" || depth >= maxDepth) continue;
55
+ const subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth);
56
+ for (const [name, path] of subScripts) scripts.set(name, path);
57
+ } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
58
+ const scriptName = relative(baseDir, fullPath).split("\\").join("/").replace(/\.(ts|js)$/, "");
59
+ scripts.set(scriptName, fullPath);
60
+ }
61
+ }
62
+ } catch {}
63
+ return scripts;
64
+ }
65
+ export { discoverScripts, getLocalScriptsDir, getScriptMetadata };
66
+ //# sourceMappingURL=script-utils.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["existsSync","readdirSync","statSync","readFileSync","writeFileSync","mkdirSync","homedir","join","relative","CACHE_DIR","CACHE_FILE","getLocalScriptsDir","process","cwd","extractMetadata","filePath","lines","split","slice","metadata","line","descMatch","match","description","trim","argsMatch","args","map","a","stat","mtime","mtimeMs","loadCache","JSON","parse","saveCache","cache","recursive","stringify","getScriptMetadata","discoverScripts","dir","baseDir","depth","maxDepth","scripts","Map","entries","entry","fullPath","isDirectory","subScripts","name","path","set","endsWith","scriptName","replace"],"sources":["../../../src/utils/script-utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ import { existsSync, readdirSync, statSync, readFileSync, writeFileSync, mkdirSync } from "fs";
2
+ import { homedir } from "os";
3
+ import { join, relative } from "path";
4
+ var CACHE_DIR = join(homedir(), ".takeout"), CACHE_FILE = join(CACHE_DIR, "script-cache.json");
5
+ function getLocalScriptsDir() {
6
+ return join(process.cwd(), "scripts");
7
+ }
8
+ function extractMetadata(filePath) {
9
+ try {
10
+ var content = readFileSync(filePath, "utf-8"), lines = content.split(`
11
+ `).slice(0, 20), metadata = {}, _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
12
+ try {
13
+ for (var _iterator = lines[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
14
+ var line = _step.value, descMatch = line.match(/@description\s+(.+)/);
15
+ descMatch && descMatch[1] && (metadata.description = descMatch[1].trim());
16
+ var argsMatch = line.match(/@args\s+(.+)/);
17
+ argsMatch && argsMatch[1] && (metadata.args = argsMatch[1].split(",").map(function(a) {
18
+ return a.trim();
19
+ }));
20
+ }
21
+ } catch (err) {
22
+ _didIteratorError = !0, _iteratorError = err;
23
+ } finally {
24
+ try {
25
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
26
+ } finally {
27
+ if (_didIteratorError)
28
+ throw _iteratorError;
29
+ }
30
+ }
31
+ var stat = statSync(filePath);
32
+ return metadata.mtime = stat.mtimeMs, metadata;
33
+ } catch {
34
+ return {};
35
+ }
36
+ }
37
+ function loadCache() {
38
+ try {
39
+ if (existsSync(CACHE_FILE))
40
+ return JSON.parse(readFileSync(CACHE_FILE, "utf-8"));
41
+ } catch {
42
+ }
43
+ return {};
44
+ }
45
+ function saveCache(cache) {
46
+ try {
47
+ existsSync(CACHE_DIR) || mkdirSync(CACHE_DIR, {
48
+ recursive: !0
49
+ }), writeFileSync(CACHE_FILE, JSON.stringify(cache, null, 2));
50
+ } catch {
51
+ }
52
+ }
53
+ function getScriptMetadata(filePath) {
54
+ var cache = loadCache(), stat = statSync(filePath);
55
+ if (cache[filePath] && cache[filePath].mtime === stat.mtimeMs)
56
+ return cache[filePath];
57
+ var metadata = extractMetadata(filePath);
58
+ return cache[filePath] = metadata, saveCache(cache), metadata;
59
+ }
60
+ function discoverScripts(dir) {
61
+ var baseDir = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : dir, depth = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0, maxDepth = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 1, scripts = /* @__PURE__ */ new Map();
62
+ if (!existsSync(dir))
63
+ return scripts;
64
+ try {
65
+ var entries = readdirSync(dir), _iteratorNormalCompletion = !0, _didIteratorError = !1, _iteratorError = void 0;
66
+ try {
67
+ for (var _iterator = entries[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = !0) {
68
+ var entry = _step.value, fullPath = join(dir, entry), stat = statSync(fullPath);
69
+ if (stat.isDirectory()) {
70
+ if (entry === "helpers" || depth >= maxDepth)
71
+ continue;
72
+ var subScripts = discoverScripts(fullPath, baseDir, depth + 1, maxDepth), _iteratorNormalCompletion1 = !0, _didIteratorError1 = !1, _iteratorError1 = void 0;
73
+ try {
74
+ for (var _iterator1 = subScripts[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = !0) {
75
+ var [name, path] = _step1.value;
76
+ scripts.set(name, path);
77
+ }
78
+ } catch (err) {
79
+ _didIteratorError1 = !0, _iteratorError1 = err;
80
+ } finally {
81
+ try {
82
+ !_iteratorNormalCompletion1 && _iterator1.return != null && _iterator1.return();
83
+ } finally {
84
+ if (_didIteratorError1)
85
+ throw _iteratorError1;
86
+ }
87
+ }
88
+ } else if (entry.endsWith(".ts") || entry.endsWith(".js")) {
89
+ var relativePath = relative(baseDir, fullPath).split("\\").join("/"), scriptName = relativePath.replace(/\.(ts|js)$/, "");
90
+ scripts.set(scriptName, fullPath);
91
+ }
92
+ }
93
+ } catch (err) {
94
+ _didIteratorError = !0, _iteratorError = err;
95
+ } finally {
96
+ try {
97
+ !_iteratorNormalCompletion && _iterator.return != null && _iterator.return();
98
+ } finally {
99
+ if (_didIteratorError)
100
+ throw _iteratorError;
101
+ }
102
+ }
103
+ } catch {
104
+ }
105
+ return scripts;
106
+ }
107
+ export {
108
+ discoverScripts,
109
+ getLocalScriptsDir,
110
+ getScriptMetadata
111
+ };
112
+ //# sourceMappingURL=script-utils.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/utils/script-utils.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@take-out/cli",
3
- "version": "0.0.51",
3
+ "version": "0.0.57",
4
4
  "description": "CLI tools for Takeout starter kit - interactive onboarding and project setup",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "source": "src/index.ts",
8
8
  "main": "dist/cjs",
9
9
  "module": "dist/esm",
10
- "types": "./types/index.d.ts",
10
+ "types": "./src/index.ts",
11
11
  "bin": {
12
12
  "takeout": "./cli.mjs",
13
13
  "tko": "./cli.mjs"
@@ -39,8 +39,8 @@
39
39
  "./withOpSqliteStatic": "./src/withOpSqliteStatic.cjs"
40
40
  },
41
41
  "scripts": {
42
- "build": "tamagui-build",
43
- "watch": "SKIP_INITIAL_BUILD=1 tamagui-build --watch",
42
+ "build": "tamagui-build --skip-native --skip-types",
43
+ "watch": "tamagui-build --skip-native --skip-types --watch",
44
44
  "typecheck": "tko run typecheck",
45
45
  "lint": "oxlint src",
46
46
  "lint:fix": "oxfmt src && oxlint --fix --fix-suggestions src",
@@ -50,8 +50,8 @@
50
50
  },
51
51
  "dependencies": {
52
52
  "@clack/prompts": "^0.8.2",
53
- "@take-out/docs": "0.0.51",
54
- "@take-out/scripts": "0.0.51",
53
+ "@take-out/docs": "0.0.57",
54
+ "@take-out/scripts": "0.0.57",
55
55
  "citty": "^0.1.6",
56
56
  "picocolors": "^1.1.1"
57
57
  },
@@ -64,7 +64,7 @@
64
64
  }
65
65
  },
66
66
  "devDependencies": {
67
- "@tamagui/build": "^2.0.0-1769189735283",
67
+ "@tamagui/build": "2.0.0-rc.0",
68
68
  "@types/node": "24.0.3",
69
69
  "bun-types": "latest",
70
70
  "oxfmt": "^0.16.0",
package/scripts/seed.ts CHANGED
@@ -62,24 +62,32 @@ const seedPosts = [
62
62
  id: 'seed-post-1',
63
63
  userId: 'seed-user-1',
64
64
  image: 'https://images.unsplash.com/photo-1511920170033-f8396924c348?w=1200',
65
+ imageWidth: 1200,
66
+ imageHeight: 800,
65
67
  caption: 'morning coffee vibes',
66
68
  },
67
69
  {
68
70
  id: 'seed-post-2',
69
71
  userId: 'seed-user-2',
70
72
  image: 'https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1200',
73
+ imageWidth: 1200,
74
+ imageHeight: 800,
71
75
  caption: 'caught this sunset on my hike today',
72
76
  },
73
77
  {
74
78
  id: 'seed-post-3',
75
79
  userId: 'seed-user-3',
76
80
  image: 'https://images.unsplash.com/photo-1552053831-71594a27632d?w=1200',
81
+ imageWidth: 1200,
82
+ imageHeight: 799,
77
83
  caption: 'someone wanted to say hi',
78
84
  },
79
85
  {
80
86
  id: 'seed-post-4',
81
87
  userId: 'seed-user-4',
82
88
  image: 'https://images.unsplash.com/photo-1480714378408-67cf0d13bc1b?w=1200',
89
+ imageWidth: 1200,
90
+ imageHeight: 799,
83
91
  caption: 'city lights never get old',
84
92
  },
85
93
  ]
@@ -176,10 +184,10 @@ async function seed() {
176
184
 
177
185
  for (const p of seedPosts) {
178
186
  await pool.query(
179
- `INSERT INTO post (id, "userId", image, caption, "hiddenByAdmin", "createdAt", "commentCount")
180
- VALUES ($1, $2, $3, $4, $5, $6, $7)
181
- ON CONFLICT (id) DO NOTHING`,
182
- [p.id, p.userId, p.image, p.caption, false, now, 0]
187
+ `INSERT INTO post (id, "userId", image, "imageWidth", "imageHeight", caption, "hiddenByAdmin", "createdAt", "commentCount")
188
+ VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9)
189
+ ON CONFLICT (id) DO UPDATE SET "imageWidth" = $4, "imageHeight" = $5`,
190
+ [p.id, p.userId, p.image, p.imageWidth, p.imageHeight, p.caption, false, now, 0]
183
191
  )
184
192
 
185
193
  console.info(` created post: ${p.id}`)
package/src/cli.ts CHANGED
@@ -15,6 +15,7 @@ import { docsCommand } from './commands/docs'
15
15
  import { envSetupCommand } from './commands/env-setup'
16
16
  import { onboardCommand } from './commands/onboard'
17
17
  import { runCommand } from './commands/run'
18
+ import { runAllCommand } from './commands/run-all'
18
19
  import { scriptCommand } from './commands/script'
19
20
  import { syncCommand } from './commands/sync'
20
21
  import { listAllScripts } from './utils/script-listing'
@@ -83,6 +84,7 @@ if (isShorthand) {
83
84
  'docs',
84
85
  'onboard',
85
86
  'run',
87
+ 'run-all',
86
88
  'script',
87
89
  'env:setup',
88
90
  'sync',
@@ -130,6 +132,7 @@ const main = defineCommand({
130
132
  docs: docsCommand,
131
133
  'env:setup': envSetupCommand,
132
134
  run: runCommand,
135
+ 'run-all': runAllCommand,
133
136
  script: scriptCommand,
134
137
  sync: syncCommand,
135
138
  changed: changedCommand,
@@ -0,0 +1,62 @@
1
+ import { spawn } from 'node:child_process'
2
+ import { existsSync, readFileSync } from 'node:fs'
3
+ import { resolve, parse } from 'node:path'
4
+
5
+ import { defineCommand } from 'citty'
6
+
7
+ export const runAllCommand = defineCommand({
8
+ meta: {
9
+ name: 'run-all',
10
+ description: 'Run multiple package.json scripts in parallel',
11
+ },
12
+ args: {
13
+ scripts: {
14
+ type: 'positional',
15
+ description: 'Scripts to run in parallel',
16
+ required: false,
17
+ },
18
+ },
19
+ run: async () => {
20
+ // Get all arguments after 'run-all'
21
+ const scriptArgs = process.argv.slice(3)
22
+
23
+ // Find the project root by looking for package.json with workspaces or takeout field
24
+ let currentDir = process.cwd()
25
+ let projectRoot = ''
26
+
27
+ while (currentDir !== parse(currentDir).root) {
28
+ const packageJsonPath = resolve(currentDir, 'package.json')
29
+ if (existsSync(packageJsonPath)) {
30
+ try {
31
+ const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf8'))
32
+ if (pkg.workspaces || pkg.takeout) {
33
+ projectRoot = currentDir
34
+ break
35
+ }
36
+ } catch {}
37
+ }
38
+ currentDir = resolve(currentDir, '..')
39
+ }
40
+
41
+ if (!projectRoot) {
42
+ console.error('Could not find project root')
43
+ process.exit(1)
44
+ }
45
+
46
+ // check if local packages/scripts exists (takeout monorepo), otherwise use installed package
47
+ const localScriptsPath = resolve(projectRoot, 'packages/scripts/src/run.ts')
48
+ const scriptPath = existsSync(localScriptsPath)
49
+ ? localScriptsPath
50
+ : resolve(projectRoot, 'node_modules/@take-out/scripts/src/run.ts')
51
+
52
+ const child = spawn('bun', [scriptPath, ...scriptArgs], {
53
+ stdio: 'inherit',
54
+ shell: false,
55
+ })
56
+
57
+ const code = await new Promise<number>((resolve) => {
58
+ child.on('exit', (code) => resolve(code || 0))
59
+ })
60
+ process.exit(code)
61
+ },
62
+ })
@@ -34,7 +34,7 @@ export const runCommand = defineCommand({
34
34
 
35
35
  if (hasAllFlag) {
36
36
  // Run all scripts in this category in parallel
37
- const { discoverScripts } = await import('./script')
37
+ const { discoverScripts } = await import('../utils/script-utils')
38
38
  const { runScriptsInParallel } = await import('../utils/parallel-runner')
39
39
  const pc = (await import('picocolors')).default
40
40
  const categoryScripts = discoverScripts(categoryPath)
@@ -59,7 +59,8 @@ export const runCommand = defineCommand({
59
59
  }
60
60
 
61
61
  // Lazy load script functions only when needed
62
- const { discoverScripts, getScriptMetadata } = await import('./script')
62
+ const { discoverScripts, getScriptMetadata } =
63
+ await import('../utils/script-utils')
63
64
  const pc = (await import('picocolors')).default
64
65
 
65
66
  // List scripts in this category