padrone 1.0.0 → 1.2.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.
Files changed (80) hide show
  1. package/CHANGELOG.md +51 -0
  2. package/LICENSE +1 -1
  3. package/README.md +92 -49
  4. package/dist/args-CKNh7Dm9.mjs +175 -0
  5. package/dist/args-CKNh7Dm9.mjs.map +1 -0
  6. package/dist/chunk-y_GBKt04.mjs +5 -0
  7. package/dist/codegen/index.d.mts +305 -0
  8. package/dist/codegen/index.d.mts.map +1 -0
  9. package/dist/codegen/index.mjs +1348 -0
  10. package/dist/codegen/index.mjs.map +1 -0
  11. package/dist/completion.d.mts +64 -0
  12. package/dist/completion.d.mts.map +1 -0
  13. package/dist/completion.mjs +417 -0
  14. package/dist/completion.mjs.map +1 -0
  15. package/dist/docs/index.d.mts +34 -0
  16. package/dist/docs/index.d.mts.map +1 -0
  17. package/dist/docs/index.mjs +404 -0
  18. package/dist/docs/index.mjs.map +1 -0
  19. package/dist/formatter-Dvx7jFXr.d.mts +82 -0
  20. package/dist/formatter-Dvx7jFXr.d.mts.map +1 -0
  21. package/dist/help-mUIX0T0V.mjs +1195 -0
  22. package/dist/help-mUIX0T0V.mjs.map +1 -0
  23. package/dist/index.d.mts +122 -438
  24. package/dist/index.d.mts.map +1 -1
  25. package/dist/index.mjs +1240 -1161
  26. package/dist/index.mjs.map +1 -1
  27. package/dist/test.d.mts +112 -0
  28. package/dist/test.d.mts.map +1 -0
  29. package/dist/test.mjs +138 -0
  30. package/dist/test.mjs.map +1 -0
  31. package/dist/types-qrtt0135.d.mts +1037 -0
  32. package/dist/types-qrtt0135.d.mts.map +1 -0
  33. package/dist/update-check-EbNDkzyV.mjs +146 -0
  34. package/dist/update-check-EbNDkzyV.mjs.map +1 -0
  35. package/package.json +61 -20
  36. package/src/args.ts +365 -0
  37. package/src/cli/completions.ts +29 -0
  38. package/src/cli/docs.ts +86 -0
  39. package/src/cli/doctor.ts +312 -0
  40. package/src/cli/index.ts +159 -0
  41. package/src/cli/init.ts +135 -0
  42. package/src/cli/link.ts +320 -0
  43. package/src/cli/wrap.ts +152 -0
  44. package/src/codegen/README.md +118 -0
  45. package/src/codegen/code-builder.ts +226 -0
  46. package/src/codegen/discovery.ts +232 -0
  47. package/src/codegen/file-emitter.ts +73 -0
  48. package/src/codegen/generators/barrel-file.ts +16 -0
  49. package/src/codegen/generators/command-file.ts +184 -0
  50. package/src/codegen/generators/command-tree.ts +124 -0
  51. package/src/codegen/index.ts +33 -0
  52. package/src/codegen/parsers/fish.ts +163 -0
  53. package/src/codegen/parsers/help.ts +378 -0
  54. package/src/codegen/parsers/merge.ts +158 -0
  55. package/src/codegen/parsers/zsh.ts +221 -0
  56. package/src/codegen/schema-to-code.ts +199 -0
  57. package/src/codegen/template.ts +69 -0
  58. package/src/codegen/types.ts +143 -0
  59. package/src/colorizer.ts +2 -2
  60. package/src/command-utils.ts +501 -0
  61. package/src/completion.ts +110 -97
  62. package/src/create.ts +1044 -284
  63. package/src/docs/index.ts +607 -0
  64. package/src/errors.ts +131 -0
  65. package/src/formatter.ts +149 -63
  66. package/src/help.ts +151 -55
  67. package/src/index.ts +13 -15
  68. package/src/interactive.ts +169 -0
  69. package/src/parse.ts +31 -16
  70. package/src/repl-loop.ts +317 -0
  71. package/src/runtime.ts +304 -0
  72. package/src/shell-utils.ts +83 -0
  73. package/src/test.ts +285 -0
  74. package/src/type-helpers.ts +12 -12
  75. package/src/type-utils.ts +124 -14
  76. package/src/types.ts +803 -144
  77. package/src/update-check.ts +244 -0
  78. package/src/wrap.ts +185 -0
  79. package/src/zod.d.ts +2 -2
  80. package/src/options.ts +0 -180
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-qrtt0135.d.mts","names":[],"sources":["../src/args.ts","../src/help.ts","../src/runtime.ts","../src/type-utils.ts","../src/update-check.ts","../src/wrap.ts","../src/types.ts"],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { t as __require } from "./chunk-y_GBKt04.mjs";
2
+ //#region src/update-check.ts
3
+ /**
4
+ * Parses an interval string like '1d', '12h', '30m', '1w' into milliseconds.
5
+ */
6
+ function parseInterval(interval) {
7
+ const match = interval.match(/^(\d+)\s*(ms|s|m|h|d|w)$/);
8
+ if (!match) return 864e5;
9
+ const value = parseInt(match[1], 10);
10
+ switch (match[2]) {
11
+ case "ms": return value;
12
+ case "s": return value * 1e3;
13
+ case "m": return value * 6e4;
14
+ case "h": return value * 36e5;
15
+ case "d": return value * 864e5;
16
+ case "w": return value * 6048e5;
17
+ default: return 864e5;
18
+ }
19
+ }
20
+ /**
21
+ * Compares two semver version strings.
22
+ * Returns true if `latest` is newer than `current`.
23
+ */
24
+ function isNewerVersion(current, latest) {
25
+ const parse = (v) => {
26
+ const parts = v.replace(/^v/, "").split("-");
27
+ const nums = parts[0].split(".").map(Number);
28
+ return {
29
+ major: nums[0] ?? 0,
30
+ minor: nums[1] ?? 0,
31
+ patch: nums[2] ?? 0,
32
+ prerelease: parts[1]
33
+ };
34
+ };
35
+ const c = parse(current);
36
+ const l = parse(latest);
37
+ if (l.prerelease && !c.prerelease) return false;
38
+ if (l.major !== c.major) return l.major > c.major;
39
+ if (l.minor !== c.minor) return l.minor > c.minor;
40
+ if (l.patch !== c.patch) return l.patch > c.patch;
41
+ return false;
42
+ }
43
+ /**
44
+ * Reads the update check cache file.
45
+ */
46
+ function readCache(cachePath) {
47
+ try {
48
+ const { existsSync, readFileSync } = __require("node:fs");
49
+ if (!existsSync(cachePath)) return void 0;
50
+ const data = JSON.parse(readFileSync(cachePath, "utf-8"));
51
+ if (typeof data.lastCheck === "number" && typeof data.latestVersion === "string") return data;
52
+ } catch {}
53
+ }
54
+ /**
55
+ * Writes the update check cache file.
56
+ */
57
+ function writeCache(cachePath, data) {
58
+ try {
59
+ const { existsSync, mkdirSync, writeFileSync } = __require("node:fs");
60
+ const { dirname } = __require("node:path");
61
+ const dir = dirname(cachePath);
62
+ if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
63
+ writeFileSync(cachePath, JSON.stringify(data), "utf-8");
64
+ } catch {}
65
+ }
66
+ /**
67
+ * Resolves the cache path, expanding `~` to the home directory.
68
+ */
69
+ function resolveCachePath(cachePath) {
70
+ const { homedir } = __require("node:os");
71
+ const { resolve } = __require("node:path");
72
+ if (cachePath.startsWith("~")) return cachePath.replace("~", homedir());
73
+ return resolve(cachePath);
74
+ }
75
+ /**
76
+ * Fetches the latest version from the registry.
77
+ */
78
+ async function fetchLatestVersion(packageName, registry) {
79
+ const url = registry === "npm" ? `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest` : registry;
80
+ try {
81
+ const response = await fetch(url);
82
+ if (!response.ok) return void 0;
83
+ const data = await response.json();
84
+ if (typeof data.version === "string") return data.version;
85
+ const distTags = data["dist-tags"];
86
+ if (distTags?.latest) return distTags.latest;
87
+ } catch {}
88
+ }
89
+ /**
90
+ * Formats the update notification message.
91
+ */
92
+ function formatUpdateMessage(currentVersion, latestVersion, packageName) {
93
+ return `\n Update available: ${currentVersion} \u2192 ${latestVersion}\n Run "${`npm update -g ${packageName}`}" to update\n`;
94
+ }
95
+ /**
96
+ * Checks for updates in the background. Returns a function that, when called,
97
+ * prints the update notification if a newer version was found.
98
+ *
99
+ * This is designed to be non-blocking: the check starts immediately but the
100
+ * result is only consumed after command execution completes.
101
+ */
102
+ function createUpdateChecker(programName, currentVersion, config, runtime) {
103
+ const packageName = config.packageName ?? programName;
104
+ const registry = config.registry ?? "npm";
105
+ const intervalMs = parseInterval(config.interval ?? "1d");
106
+ const disableEnvVar = config.disableEnvVar ?? `${programName.toUpperCase().replace(/-/g, "_")}_NO_UPDATE_CHECK`;
107
+ const defaultCachePath = `~/.config/${programName}-update-check.json`;
108
+ const cachePath = resolveCachePath(config.cache ?? defaultCachePath);
109
+ const env = runtime.env();
110
+ if (env.CI || env.CONTINUOUS_INTEGRATION) return noop;
111
+ if (env[disableEnvVar]) return noop;
112
+ if (typeof process !== "undefined" && !process.stdout?.isTTY) return noop;
113
+ const cached = readCache(cachePath);
114
+ if (cached && Date.now() - cached.lastCheck < intervalMs) {
115
+ if (isNewerVersion(currentVersion, cached.latestVersion)) return () => {
116
+ runtime.error(formatUpdateMessage(currentVersion, cached.latestVersion, packageName));
117
+ };
118
+ return noop;
119
+ }
120
+ const fetchPromise = fetchLatestVersion(packageName, registry).then((latestVersion) => {
121
+ if (latestVersion) {
122
+ writeCache(cachePath, {
123
+ lastCheck: Date.now(),
124
+ latestVersion
125
+ });
126
+ if (isNewerVersion(currentVersion, latestVersion)) return latestVersion;
127
+ }
128
+ });
129
+ let resolved = null;
130
+ fetchPromise.then((v) => {
131
+ resolved = v;
132
+ }, () => {
133
+ resolved = void 0;
134
+ });
135
+ return () => {
136
+ if (resolved !== null) {
137
+ if (resolved) runtime.error(formatUpdateMessage(currentVersion, resolved, packageName));
138
+ return;
139
+ }
140
+ };
141
+ }
142
+ function noop() {}
143
+ //#endregion
144
+ export { createUpdateChecker };
145
+
146
+ //# sourceMappingURL=update-check-EbNDkzyV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-check-EbNDkzyV.mjs","names":[],"sources":["../src/update-check.ts"],"sourcesContent":["import type { ResolvedPadroneRuntime } from './runtime.ts';\n\n/**\n * Configuration for the update check feature.\n */\nexport type UpdateCheckConfig = {\n /**\n * The npm package name to check. Defaults to the program name.\n */\n packageName?: string;\n /**\n * Registry to check for updates.\n * - `'npm'` — checks the npm registry (default)\n * - A URL string — custom registry endpoint that returns JSON with a `version` or `dist-tags.latest` field\n */\n registry?: 'npm' | string;\n /**\n * How often to check for updates. Accepts shorthand like `'1d'`, `'12h'`, `'30m'`.\n * Defaults to `'1d'` (once per day).\n */\n interval?: string;\n /**\n * Path to the cache file for storing the last check timestamp and latest version.\n * Defaults to `~/.config/<programName>-update-check.json`.\n */\n cache?: string;\n /**\n * Environment variable name to disable update checks (e.g. `'MYAPP_NO_UPDATE_CHECK'`).\n * When set to a truthy value, update checks are skipped.\n * Defaults to `'<PROGRAM_NAME>_NO_UPDATE_CHECK'` (uppercased, hyphens to underscores).\n */\n disableEnvVar?: string;\n};\n\ntype CacheData = {\n lastCheck: number;\n latestVersion: string;\n};\n\n/**\n * Parses an interval string like '1d', '12h', '30m', '1w' into milliseconds.\n */\nexport function parseInterval(interval: string): number {\n const match = interval.match(/^(\\d+)\\s*(ms|s|m|h|d|w)$/);\n if (!match) return 86_400_000; // default 1d\n\n const value = parseInt(match[1]!, 10);\n const unit = match[2]!;\n\n switch (unit) {\n case 'ms':\n return value;\n case 's':\n return value * 1000;\n case 'm':\n return value * 60_000;\n case 'h':\n return value * 3_600_000;\n case 'd':\n return value * 86_400_000;\n case 'w':\n return value * 604_800_000;\n default:\n return 86_400_000;\n }\n}\n\n/**\n * Compares two semver version strings.\n * Returns true if `latest` is newer than `current`.\n */\nexport function isNewerVersion(current: string, latest: string): boolean {\n const parse = (v: string) => {\n const cleaned = v.replace(/^v/, '');\n const parts = cleaned.split('-');\n const nums = parts[0]!.split('.').map(Number);\n return { major: nums[0] ?? 0, minor: nums[1] ?? 0, patch: nums[2] ?? 0, prerelease: parts[1] };\n };\n\n const c = parse(current);\n const l = parse(latest);\n\n // Don't notify about pre-release versions unless user is already on a pre-release\n if (l.prerelease && !c.prerelease) return false;\n\n if (l.major !== c.major) return l.major > c.major;\n if (l.minor !== c.minor) return l.minor > c.minor;\n if (l.patch !== c.patch) return l.patch > c.patch;\n return false;\n}\n\n/**\n * Reads the update check cache file.\n */\nfunction readCache(cachePath: string): CacheData | undefined {\n try {\n const { existsSync, readFileSync } = require('node:fs') as typeof import('node:fs');\n if (!existsSync(cachePath)) return undefined;\n const data = JSON.parse(readFileSync(cachePath, 'utf-8'));\n if (typeof data.lastCheck === 'number' && typeof data.latestVersion === 'string') {\n return data as CacheData;\n }\n } catch {\n // Ignore errors\n }\n return undefined;\n}\n\n/**\n * Writes the update check cache file.\n */\nfunction writeCache(cachePath: string, data: CacheData): void {\n try {\n const { existsSync, mkdirSync, writeFileSync } = require('node:fs') as typeof import('node:fs');\n const { dirname } = require('node:path') as typeof import('node:path');\n const dir = dirname(cachePath);\n if (!existsSync(dir)) {\n mkdirSync(dir, { recursive: true });\n }\n writeFileSync(cachePath, JSON.stringify(data), 'utf-8');\n } catch {\n // Ignore errors — cache is best-effort\n }\n}\n\n/**\n * Resolves the cache path, expanding `~` to the home directory.\n */\nfunction resolveCachePath(cachePath: string): string {\n const { homedir } = require('node:os') as typeof import('node:os');\n const { resolve } = require('node:path') as typeof import('node:path');\n if (cachePath.startsWith('~')) {\n return cachePath.replace('~', homedir());\n }\n return resolve(cachePath);\n}\n\n/**\n * Fetches the latest version from the registry.\n */\nasync function fetchLatestVersion(packageName: string, registry: string): Promise<string | undefined> {\n const url = registry === 'npm' ? `https://registry.npmjs.org/${encodeURIComponent(packageName)}/latest` : registry;\n\n try {\n const response = await fetch(url);\n if (!response.ok) return undefined;\n const data = (await response.json()) as Record<string, unknown>;\n\n // npm registry returns { version: \"x.y.z\" }\n if (typeof data.version === 'string') return data.version;\n\n // Custom endpoint may return { \"dist-tags\": { latest: \"x.y.z\" } }\n const distTags = data['dist-tags'] as Record<string, string> | undefined;\n if (distTags?.latest) return distTags.latest;\n } catch {\n // Network errors are expected (offline, firewall, etc.)\n }\n return undefined;\n}\n\n/**\n * Formats the update notification message.\n */\nexport function formatUpdateMessage(currentVersion: string, latestVersion: string, packageName: string): string {\n const updateCommand = `npm update -g ${packageName}`;\n return `\\n Update available: ${currentVersion} \\u2192 ${latestVersion}\\n Run \"${updateCommand}\" to update\\n`;\n}\n\n/**\n * Checks for updates in the background. Returns a function that, when called,\n * prints the update notification if a newer version was found.\n *\n * This is designed to be non-blocking: the check starts immediately but the\n * result is only consumed after command execution completes.\n */\nexport function createUpdateChecker(\n programName: string,\n currentVersion: string,\n config: UpdateCheckConfig,\n runtime: ResolvedPadroneRuntime,\n): () => void {\n const packageName = config.packageName ?? programName;\n const registry = config.registry ?? 'npm';\n const intervalMs = parseInterval(config.interval ?? '1d');\n const disableEnvVar = config.disableEnvVar ?? `${programName.toUpperCase().replace(/-/g, '_')}_NO_UPDATE_CHECK`;\n\n const defaultCachePath = `~/.config/${programName}-update-check.json`;\n const cachePath = resolveCachePath(config.cache ?? defaultCachePath);\n\n // Check if disabled\n const env = runtime.env();\n if (env.CI || env.CONTINUOUS_INTEGRATION) return noop;\n if (env[disableEnvVar]) return noop;\n if (typeof process !== 'undefined' && !process.stdout?.isTTY) return noop;\n\n // Check cache — if we checked recently, use cached result\n const cached = readCache(cachePath);\n if (cached && Date.now() - cached.lastCheck < intervalMs) {\n // Use cached version for display\n if (isNewerVersion(currentVersion, cached.latestVersion)) {\n return () => {\n runtime.error(formatUpdateMessage(currentVersion, cached.latestVersion, packageName));\n };\n }\n return noop;\n }\n\n // Start background fetch\n const fetchPromise = fetchLatestVersion(packageName, registry).then((latestVersion) => {\n if (latestVersion) {\n writeCache(cachePath, { lastCheck: Date.now(), latestVersion });\n if (isNewerVersion(currentVersion, latestVersion)) {\n return latestVersion;\n }\n }\n return undefined;\n });\n\n // Return a function that blocks on the result (briefly — the fetch should be done by now)\n let resolved: string | undefined | null = null; // null = not yet resolved\n fetchPromise.then(\n (v) => {\n resolved = v;\n },\n () => {\n resolved = undefined;\n },\n );\n\n return () => {\n // If the fetch already resolved, use the result synchronously\n if (resolved !== null) {\n if (resolved) {\n runtime.error(formatUpdateMessage(currentVersion, resolved, packageName));\n }\n return;\n }\n\n // Otherwise, we can't block — just skip this time.\n // The cache will be written when the promise resolves, so next invocation will show the message.\n };\n}\n\nfunction noop() {}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,13 @@
1
1
  {
2
2
  "name": "padrone",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "description": "Create type-safe, interactive CLI apps with Zod schemas",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "main": "./dist/index.mjs",
8
+ "module": "./dist/index.mjs",
9
+ "types": "./dist/index.d.mts",
10
+ "sideEffects": false,
5
11
  "keywords": [
6
12
  "cli",
7
13
  "command-line",
@@ -23,13 +29,22 @@
23
29
  "type": "git",
24
30
  "url": "git+https://github.com/KurtGokhan/padrone.git"
25
31
  },
26
- "license": "MIT",
27
32
  "author": {
28
33
  "name": "Gokhan Kurt",
29
34
  "email": "gokhan@gkurt.com",
30
35
  "url": "https://gkurt.com"
31
36
  },
32
- "type": "module",
37
+ "files": [
38
+ "dist/",
39
+ "src/",
40
+ "media/",
41
+ "README.md",
42
+ "LICENSE",
43
+ "CHANGELOG.md"
44
+ ],
45
+ "bin": {
46
+ "padrone": "./src/cli/index.ts"
47
+ },
33
48
  "imports": {
34
49
  "#*": "./*"
35
50
  },
@@ -41,31 +56,57 @@
41
56
  "default": "./dist/index.mjs"
42
57
  },
43
58
  "source": "./src/index.ts"
44
- }
59
+ },
60
+ "./test": {
61
+ "padrone@dev": "./src/test.ts",
62
+ "import": {
63
+ "types": "./dist/test.d.mts",
64
+ "default": "./dist/test.mjs"
65
+ },
66
+ "source": "./src/test.ts"
67
+ },
68
+ "./codegen": {
69
+ "padrone@dev": "./src/codegen/index.ts",
70
+ "import": {
71
+ "types": "./dist/codegen.d.mts",
72
+ "default": "./dist/codegen.mjs"
73
+ },
74
+ "source": "./src/codegen/index.ts"
75
+ },
76
+ "./docs": {
77
+ "padrone@dev": "./src/docs/index.ts",
78
+ "import": {
79
+ "types": "./dist/docs.d.mts",
80
+ "default": "./dist/docs.mjs"
81
+ },
82
+ "source": "./src/docs/index.ts"
83
+ },
84
+ "./completion": {
85
+ "padrone@dev": "./src/completion.ts",
86
+ "import": {
87
+ "types": "./dist/completion.d.mts",
88
+ "default": "./dist/completion.mjs"
89
+ },
90
+ "source": "./src/completion.ts"
91
+ },
92
+ "./package.json": "./package.json"
45
93
  },
46
- "main": "./dist/index.mjs",
47
- "module": "./dist/index.mjs",
48
- "types": "./dist/index.d.mts",
49
- "sideEffects": false,
50
- "files": [
51
- "dist/",
52
- "src/",
53
- "media/",
54
- "README.md",
55
- "LICENSE"
56
- ],
57
94
  "scripts": {
58
- "build": "tsdown src/index.ts --dts --sourcemap",
59
- "dev": "bun src/index.ts",
95
+ "build": "tsdown src/index.ts src/test.ts src/codegen/index.ts src/docs/index.ts src/completion.ts --dts --sourcemap",
96
+ "start": "bun --conditions=padrone@dev src/cli/index.ts",
97
+ "dev": "bun --conditions=padrone@dev --watch src/cli/index.ts",
60
98
  "test": "bun test --conditions=padrone@dev",
99
+ "link": "bun start link",
100
+ "unlink": "bun start unlink",
61
101
  "prepack": "bun run build && bun ../../scripts/prepareForRelease.ts"
62
102
  },
63
103
  "dependencies": {
64
- "@standard-schema/spec": "^1.1.0"
104
+ "@standard-schema/spec": "^1.1.0",
105
+ "enquirer": "^2.4.1"
65
106
  },
66
107
  "devDependencies": {
67
- "ai": "^6.0.64",
68
- "tsdown": "^0.20.1",
108
+ "ai": "^6.0.116",
109
+ "tsdown": "^0.21.4",
69
110
  "zod": "^4.3.6"
70
111
  },
71
112
  "peerDependencies": {