@wirecat/cli-core 0.0.0 → 0.18.1

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 (173) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +344 -0
  3. package/config/biome.base.json +56 -0
  4. package/config/cspell.json +57 -0
  5. package/config/lefthook.yml +34 -0
  6. package/config/rumdl.toml +9 -0
  7. package/config/tsconfig.base.json +21 -0
  8. package/config/tsconfig.scripts.json +13 -0
  9. package/config/tsconfig.test.json +11 -0
  10. package/config/vale/CliDocs/Filler.yml +9 -0
  11. package/config/vale/CliDocs/SentenceLength.yml +6 -0
  12. package/config/vale/Tg/Tone.yml +7 -0
  13. package/dist/codegen/index.d.ts +12 -0
  14. package/dist/codegen/index.d.ts.map +1 -0
  15. package/dist/codegen/index.js +11 -0
  16. package/dist/codegen/index.js.map +1 -0
  17. package/dist/codegen/manifest.d.ts +47 -0
  18. package/dist/codegen/manifest.d.ts.map +1 -0
  19. package/dist/codegen/manifest.js +73 -0
  20. package/dist/codegen/manifest.js.map +1 -0
  21. package/dist/codegen/model.d.ts +146 -0
  22. package/dist/codegen/model.d.ts.map +1 -0
  23. package/dist/codegen/model.js +7 -0
  24. package/dist/codegen/model.js.map +1 -0
  25. package/dist/codegen/names.d.ts +4 -0
  26. package/dist/codegen/names.d.ts.map +1 -0
  27. package/dist/codegen/names.js +46 -0
  28. package/dist/codegen/names.js.map +1 -0
  29. package/dist/codegen/pipeline.d.ts +24 -0
  30. package/dist/codegen/pipeline.d.ts.map +1 -0
  31. package/dist/codegen/pipeline.js +193 -0
  32. package/dist/codegen/pipeline.js.map +1 -0
  33. package/dist/codegen/runtime.d.ts +24 -0
  34. package/dist/codegen/runtime.d.ts.map +1 -0
  35. package/dist/codegen/runtime.js +38 -0
  36. package/dist/codegen/runtime.js.map +1 -0
  37. package/dist/codegen/tree.d.ts +29 -0
  38. package/dist/codegen/tree.d.ts.map +1 -0
  39. package/dist/codegen/tree.js +87 -0
  40. package/dist/codegen/tree.js.map +1 -0
  41. package/dist/codegen/typescript.d.ts +6 -0
  42. package/dist/codegen/typescript.d.ts.map +1 -0
  43. package/dist/codegen/typescript.js +78 -0
  44. package/dist/codegen/typescript.js.map +1 -0
  45. package/dist/codegen/valibot.d.ts +10 -0
  46. package/dist/codegen/valibot.d.ts.map +1 -0
  47. package/dist/codegen/valibot.js +132 -0
  48. package/dist/codegen/valibot.js.map +1 -0
  49. package/dist/commands/index.d.ts +76 -0
  50. package/dist/commands/index.d.ts.map +1 -0
  51. package/dist/commands/index.js +62 -0
  52. package/dist/commands/index.js.map +1 -0
  53. package/dist/commands/page.d.ts +80 -0
  54. package/dist/commands/page.d.ts.map +1 -0
  55. package/dist/commands/page.js +100 -0
  56. package/dist/commands/page.js.map +1 -0
  57. package/dist/completion/index.d.ts +37 -0
  58. package/dist/completion/index.d.ts.map +1 -0
  59. package/dist/completion/index.js +87 -0
  60. package/dist/completion/index.js.map +1 -0
  61. package/dist/config.d.ts +20 -0
  62. package/dist/config.d.ts.map +1 -0
  63. package/dist/config.js +61 -0
  64. package/dist/config.js.map +1 -0
  65. package/dist/credentials.d.ts +48 -0
  66. package/dist/credentials.d.ts.map +1 -0
  67. package/dist/credentials.js +120 -0
  68. package/dist/credentials.js.map +1 -0
  69. package/dist/dev/bin.d.ts +3 -0
  70. package/dist/dev/bin.d.ts.map +1 -0
  71. package/dist/dev/bin.js +8 -0
  72. package/dist/dev/bin.js.map +1 -0
  73. package/dist/dev/main.d.ts +7 -0
  74. package/dist/dev/main.d.ts.map +1 -0
  75. package/dist/dev/main.js +149 -0
  76. package/dist/dev/main.js.map +1 -0
  77. package/dist/dev/next-version.d.ts +11 -0
  78. package/dist/dev/next-version.d.ts.map +1 -0
  79. package/dist/dev/next-version.js +33 -0
  80. package/dist/dev/next-version.js.map +1 -0
  81. package/dist/dev/slow-tests.d.ts +14 -0
  82. package/dist/dev/slow-tests.d.ts.map +1 -0
  83. package/dist/dev/slow-tests.js +17 -0
  84. package/dist/dev/slow-tests.js.map +1 -0
  85. package/dist/dev/test-matrix.d.ts +35 -0
  86. package/dist/dev/test-matrix.d.ts.map +1 -0
  87. package/dist/dev/test-matrix.js +93 -0
  88. package/dist/dev/test-matrix.js.map +1 -0
  89. package/dist/errors.d.ts +34 -0
  90. package/dist/errors.d.ts.map +1 -0
  91. package/dist/errors.js +36 -0
  92. package/dist/errors.js.map +1 -0
  93. package/dist/exit-codes.d.ts +11 -0
  94. package/dist/exit-codes.d.ts.map +1 -0
  95. package/dist/exit-codes.js +25 -0
  96. package/dist/exit-codes.js.map +1 -0
  97. package/dist/http/index.d.ts +20 -0
  98. package/dist/http/index.d.ts.map +1 -0
  99. package/dist/http/index.js +46 -0
  100. package/dist/http/index.js.map +1 -0
  101. package/dist/index.d.ts +16 -0
  102. package/dist/index.d.ts.map +1 -0
  103. package/dist/index.js +15 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/keyring.d.ts +27 -0
  106. package/dist/keyring.d.ts.map +1 -0
  107. package/dist/keyring.js +45 -0
  108. package/dist/keyring.js.map +1 -0
  109. package/dist/logger.d.ts +12 -0
  110. package/dist/logger.d.ts.map +1 -0
  111. package/dist/logger.js +7 -0
  112. package/dist/logger.js.map +1 -0
  113. package/dist/logging.d.ts +31 -0
  114. package/dist/logging.d.ts.map +1 -0
  115. package/dist/logging.js +58 -0
  116. package/dist/logging.js.map +1 -0
  117. package/dist/mcp/index.d.ts +32 -0
  118. package/dist/mcp/index.d.ts.map +1 -0
  119. package/dist/mcp/index.js +105 -0
  120. package/dist/mcp/index.js.map +1 -0
  121. package/dist/paths.d.ts +28 -0
  122. package/dist/paths.d.ts.map +1 -0
  123. package/dist/paths.js +23 -0
  124. package/dist/paths.js.map +1 -0
  125. package/dist/pretty.d.ts +12 -0
  126. package/dist/pretty.d.ts.map +1 -0
  127. package/dist/pretty.js +83 -0
  128. package/dist/pretty.js.map +1 -0
  129. package/dist/release/index.d.ts +38 -0
  130. package/dist/release/index.d.ts.map +1 -0
  131. package/dist/release/index.js +91 -0
  132. package/dist/release/index.js.map +1 -0
  133. package/dist/release/markdown.d.ts +36 -0
  134. package/dist/release/markdown.d.ts.map +1 -0
  135. package/dist/release/markdown.js +153 -0
  136. package/dist/release/markdown.js.map +1 -0
  137. package/dist/release/structure.d.ts +16 -0
  138. package/dist/release/structure.d.ts.map +1 -0
  139. package/dist/release/structure.js +74 -0
  140. package/dist/release/structure.js.map +1 -0
  141. package/dist/renderer.d.ts +34 -0
  142. package/dist/renderer.d.ts.map +1 -0
  143. package/dist/renderer.js +55 -0
  144. package/dist/renderer.js.map +1 -0
  145. package/dist/retry.d.ts +27 -0
  146. package/dist/retry.d.ts.map +1 -0
  147. package/dist/retry.js +26 -0
  148. package/dist/retry.js.map +1 -0
  149. package/dist/sanitize.d.ts +25 -0
  150. package/dist/sanitize.d.ts.map +1 -0
  151. package/dist/sanitize.js +52 -0
  152. package/dist/sanitize.js.map +1 -0
  153. package/dist/skill/index.d.ts +78 -0
  154. package/dist/skill/index.d.ts.map +1 -0
  155. package/dist/skill/index.js +190 -0
  156. package/dist/skill/index.js.map +1 -0
  157. package/dist/streams.d.ts +24 -0
  158. package/dist/streams.d.ts.map +1 -0
  159. package/dist/streams.js +26 -0
  160. package/dist/streams.js.map +1 -0
  161. package/dist/testing/index.d.ts +24 -0
  162. package/dist/testing/index.d.ts.map +1 -0
  163. package/dist/testing/index.js +29 -0
  164. package/dist/testing/index.js.map +1 -0
  165. package/dist/time.d.ts +21 -0
  166. package/dist/time.d.ts.map +1 -0
  167. package/dist/time.js +19 -0
  168. package/dist/time.js.map +1 -0
  169. package/dist/update/index.d.ts +80 -0
  170. package/dist/update/index.d.ts.map +1 -0
  171. package/dist/update/index.js +159 -0
  172. package/dist/update/index.js.map +1 -0
  173. package/package.json +116 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/update/index.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAA;AAE/E;;;;GAIG;AACH,eAAO,MAAM,WAAW,eAAgB,MAAM,KAAG,SAOhD,CAAA;AAED,4FAA4F;AAC5F,eAAO,MAAM,aAAa,cAAe,SAAS,eAAe,MAAM,KAAG,MAAM,EAAE,GAAG,SAYpF,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,OAAO,cAAe,MAAM,WAAW,MAAM,KAAG,OAS5D,CAAA;AAED,oGAAoG;AACpG,eAAO,MAAM,aAAa,gBACX,MAAM,SACZ,SAAS,kBACM;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3C,OAAO,CAAC,MAAM,GAAG,SAAS,CAY5B,CAAA;AAED,eAAO,MAAM,cAAc,QAAsB,CAAA;AAEjD,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,OAAO,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,gDAAgD;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,SAAS,CAAA;IACpB,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAA;IACjD,yFAAyF;IACzF,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC;AAED,mGAAmG;AACnG,eAAO,MAAM,SAAS,2EAQnB,aAAa,KAAG,OAQuB,CAAA;AAE1C,QAAA,MAAM,WAAW;;;IAGf,wGAAwG;;aAExG,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,WAAW,CAAC,CAAA;AAE3D,0EAA0E;AAC1E,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,WAM9C,CAAA;AAED,gGAAgG;AAChG,eAAO,MAAM,eAAe,SAAU,MAAM,KAAG,WAAW,GAAG,SAG5D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,SAAU,MAAM,SAAS,OAAO,CAAC,WAAW,CAAC,KAAG,IAM5E,CAAA;AAED,eAAO,MAAM,UAAU,UAAW,WAAW,GAAG,SAAS,OAAO,MAAM,KAAG,OACT,CAAA;AAEhE;;;;GAIG;AACH,eAAO,MAAM,SAAS,uBAAwB,SAAS,MAAM,EAAE,aAAY,MAAM,CAAC,QAAQ;;UAElC,MAAM,EAAE;;CACX,CAAA;AAErD,uHAAuH;AACvH,eAAO,MAAM,SAAS,SAAU,SAAS,MAAM,EAAE,KAAG,MAKnD,CAAA;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAClD,8EAA8E;IAC9E,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,kDAAkD;IAClD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,SAAS,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,+EAStB,aAAa,KAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAsB5C,CAAA"}
@@ -0,0 +1,159 @@
1
+ /**
2
+ * Keeping an installed CLI current: which package manager put it here, what command updates it,
3
+ * whether npm has something newer, and whether a person should be told.
4
+ *
5
+ * Nothing here updates anything by itself, and nothing here decides to print: a CLI that holds
6
+ * somebody's credentials must not change itself unasked, and a line on the terminal is for a
7
+ * person, never for a script or an agent reading JSON. The CLI asks and decides.
8
+ */
9
+ import { spawnSync } from "node:child_process";
10
+ import * as v from "valibot";
11
+ import { loadConfigFile, saveConfigFile } from "../config.js";
12
+ /**
13
+ * Read from where the running file really lives — `realpath` of the script, not `which`: the
14
+ * command on `PATH` is a shim or a link, and only its target says who installed it. Paths measured
15
+ * on 2026-09-24 by installing into throwaway prefixes.
16
+ */
17
+ export const installerOf = (scriptPath) => {
18
+ const path = scriptPath.replaceAll("\\", "/");
19
+ if (path.includes("/_npx/"))
20
+ return "npx";
21
+ if (path.includes("/install/global/node_modules/"))
22
+ return "bun";
23
+ if (/\/\.?pnpm\//.test(path))
24
+ return "pnpm";
25
+ if (path.includes("/node_modules/"))
26
+ return "npm";
27
+ return path.includes("/dist/") ? "checkout" : "unknown";
28
+ };
29
+ /** The argv that updates a global install, or `undefined` where there is nothing to run. */
30
+ export const updateCommand = (installer, packageName) => {
31
+ const target = `${packageName}@latest`;
32
+ switch (installer) {
33
+ case "pnpm":
34
+ return ["pnpm", "add", "-g", target];
35
+ case "npm":
36
+ return ["npm", "install", "-g", target];
37
+ case "bun":
38
+ return ["bun", "add", "-g", target];
39
+ default:
40
+ return undefined;
41
+ }
42
+ };
43
+ /** Plain `x.y.z` only: a pre-release is never offered, so it never counts as newer. */
44
+ export const isNewer = (candidate, current) => {
45
+ const parse = (version) => (/^\d+\.\d+\.\d+$/.test(version) ? version.split(".").map(Number) : undefined);
46
+ const a = parse(candidate);
47
+ const b = parse(current);
48
+ if (!a || !b)
49
+ return false;
50
+ for (let i = 0; i < 3; i++) {
51
+ if (a[i] !== b[i])
52
+ return a[i] > b[i];
53
+ }
54
+ return false;
55
+ };
56
+ /** The `latest` version on npm, or `undefined` on any failure — a hint may never fail a command. */
57
+ export const latestVersion = async (packageName, fetch, { timeoutMs = 1000 } = {}) => {
58
+ try {
59
+ const response = await fetch(`https://registry.npmjs.org/${packageName}/latest`, {
60
+ signal: AbortSignal.timeout(timeoutMs),
61
+ headers: { accept: "application/json" },
62
+ });
63
+ if (!response.ok)
64
+ return undefined;
65
+ const { version } = (await response.json());
66
+ return typeof version === "string" ? version : undefined;
67
+ }
68
+ catch {
69
+ return undefined;
70
+ }
71
+ };
72
+ export const CHECK_EVERY_MS = 24 * 60 * 60 * 1000;
73
+ /** Whether a person is at a terminal who could be told — the only case a check is worth making. */
74
+ export const mayNotify = ({ format, stderrIsTTY, quiet, enabled, installer, env, offVariables = [], }) => enabled &&
75
+ format === "pretty" &&
76
+ stderrIsTTY &&
77
+ !quiet &&
78
+ updateCommand(installer, "any") !== undefined &&
79
+ !env.CI &&
80
+ !env.NO_UPDATE_NOTIFIER &&
81
+ offVariables.every((name) => !env[name]);
82
+ const updateState = v.object({
83
+ checkedAt: v.number(),
84
+ latest: v.optional(v.string()),
85
+ /** When the skill hint (`cli-core/skill`) was last shown — the other daily notice kept in this file. */
86
+ skillHintAt: v.optional(v.number()),
87
+ });
88
+ /** The file as it is, `checkedAt: 0` when it is missing or unreadable. */
89
+ export const readNoticeState = (path) => {
90
+ try {
91
+ return loadConfigFile(path, updateState, () => ({ checkedAt: 0 }));
92
+ }
93
+ catch {
94
+ return { checkedAt: 0 };
95
+ }
96
+ };
97
+ /** What the last check found. A missing or unreadable file is "never checked", not an error. */
98
+ export const readUpdateState = (path) => {
99
+ const state = readNoticeState(path);
100
+ return state.checkedAt > 0 ? state : undefined;
101
+ };
102
+ /**
103
+ * Merged into the file as it is at the moment of writing: the update notice reads before it asks
104
+ * npm and writes after, and the skill hint may have written in between.
105
+ */
106
+ export const writeUpdateState = (path, state) => {
107
+ try {
108
+ saveConfigFile(path, { ...readNoticeState(path), ...state });
109
+ }
110
+ catch {
111
+ // A state file that cannot be written means asking npm again tomorrow, nothing worse.
112
+ }
113
+ };
114
+ export const checkIsDue = (state, now) => state === undefined || now - state.checkedAt >= CHECK_EVERY_MS;
115
+ /**
116
+ * npm and pnpm are `.cmd` shims on Windows, and Node starts a `.cmd` only through a shell. The
117
+ * words are joined rather than passed as arguments, which Node 24 deprecates alongside `shell`;
118
+ * that is safe only because they come from `updateCommand`, never from the person typing.
119
+ */
120
+ export const spawnPlan = ([command, ...args], platform = process.platform) => platform === "win32"
121
+ ? { file: [command, ...args].join(" "), args: [], shell: true }
122
+ : { file: command, args, shell: false };
123
+ /** Runs the update and answers its exit code. stdout stays one result: the package manager's output goes to stderr. */
124
+ export const runUpdate = (argv) => {
125
+ const { file, args, shell } = spawnPlan(argv);
126
+ const { status, error } = spawnSync(file, args, { stdio: ["inherit", 2, 2], shell });
127
+ if (error)
128
+ throw new Error(`could not start ${argv[0]}: ${error.message}`);
129
+ return status ?? 1;
130
+ };
131
+ /**
132
+ * The daily "a newer version exists" line, or `undefined`. Meant to be started beside the command
133
+ * and awaited after it, so asking npm costs the command nothing; any failure is silence.
134
+ */
135
+ export const updateNotice = async ({ argv, packageName, command, version, statePath, fetch, now = Date.now, ...context }) => {
136
+ try {
137
+ // Anywhere, not the first word: that can be a profile (`braze prod update`) or an option's value,
138
+ // and a notice after `update` names the version just installed as the one to get.
139
+ if (argv.includes("complete") || argv.includes("update"))
140
+ return undefined;
141
+ if (!mayNotify(context))
142
+ return undefined;
143
+ const at = now();
144
+ let state = readUpdateState(statePath);
145
+ if (checkIsDue(state, at)) {
146
+ const found = await latestVersion(packageName, fetch, { timeoutMs: 1000 });
147
+ const seen = found ?? state?.latest;
148
+ state = seen ? { checkedAt: at, latest: seen } : { checkedAt: at };
149
+ writeUpdateState(statePath, state);
150
+ }
151
+ return state?.latest && isNewer(state.latest, version)
152
+ ? `${command} ${state.latest} is out — you have ${version}. \`${command} update\` installs it.`
153
+ : undefined;
154
+ }
155
+ catch {
156
+ return undefined;
157
+ }
158
+ };
159
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/update/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,124 @@
1
1
  {
2
2
  "name": "@wirecat/cli-core",
3
- "version": "0.0.0",
4
- "description": "Placeholder: releases of @wirecat/cli-core are published from CI",
3
+ "version": "0.18.1",
4
+ "description": "The parts every command line tool needs: output modes, terminal rendering, error model, exit codes, credentials, clocks",
5
5
  "license": "MIT",
6
+ "author": "Viacheslav Ptsarev",
6
7
  "repository": {
7
8
  "type": "git",
8
9
  "url": "git+https://github.com/WireCatLabs/cli-core.git"
10
+ },
11
+ "type": "module",
12
+ "engines": {
13
+ "node": ">=22"
14
+ },
15
+ "packageManager": "pnpm@11.20.0",
16
+ "files": [
17
+ "dist",
18
+ "config",
19
+ "README.md",
20
+ "LICENSE"
21
+ ],
22
+ "bin": {
23
+ "cli-dev": "dist/dev/bin.js"
24
+ },
25
+ "exports": {
26
+ ".": {
27
+ "types": "./dist/index.d.ts",
28
+ "default": "./dist/index.js"
29
+ },
30
+ "./testing": {
31
+ "types": "./dist/testing/index.d.ts",
32
+ "default": "./dist/testing/index.js"
33
+ },
34
+ "./http": {
35
+ "types": "./dist/http/index.d.ts",
36
+ "default": "./dist/http/index.js"
37
+ },
38
+ "./commands": {
39
+ "types": "./dist/commands/index.d.ts",
40
+ "default": "./dist/commands/index.js"
41
+ },
42
+ "./completion": {
43
+ "types": "./dist/completion/index.d.ts",
44
+ "default": "./dist/completion/index.js"
45
+ },
46
+ "./update": {
47
+ "types": "./dist/update/index.d.ts",
48
+ "default": "./dist/update/index.js"
49
+ },
50
+ "./codegen": {
51
+ "types": "./dist/codegen/index.d.ts",
52
+ "default": "./dist/codegen/index.js"
53
+ },
54
+ "./codegen/runtime": {
55
+ "types": "./dist/codegen/runtime.d.ts",
56
+ "default": "./dist/codegen/runtime.js"
57
+ },
58
+ "./release": {
59
+ "types": "./dist/release/index.d.ts",
60
+ "default": "./dist/release/index.js"
61
+ },
62
+ "./skill": {
63
+ "types": "./dist/skill/index.d.ts",
64
+ "default": "./dist/skill/index.js"
65
+ },
66
+ "./mcp": {
67
+ "types": "./dist/mcp/index.d.ts",
68
+ "default": "./dist/mcp/index.js"
69
+ },
70
+ "./biome": "./config/biome.base.json",
71
+ "./tsconfig.base.json": "./config/tsconfig.base.json",
72
+ "./tsconfig.test.json": "./config/tsconfig.test.json",
73
+ "./tsconfig.scripts.json": "./config/tsconfig.scripts.json",
74
+ "./lefthook.yml": "./config/lefthook.yml",
75
+ "./cspell": "./config/cspell.json"
76
+ },
77
+ "scripts": {
78
+ "build": "tsc --build",
79
+ "typecheck": "tsc --build --force --emitDeclarationOnly && tsc -p tsconfig.test.json && tsc -p tsconfig.scripts.json",
80
+ "lint": "biome check .",
81
+ "lint:fix": "biome check --write .",
82
+ "docs:check": "pnpm build && node dist/dev/bin.js docs-check --ids CLI,MAX,OPS,CORE,SPEC,DOC",
83
+ "test": "vitest run",
84
+ "test:watch": "vitest",
85
+ "test:coverage": "vitest run --coverage",
86
+ "test:slow": "vitest run --reporter=json --outputFile=coverage/tests.json >/dev/null; pnpm build >/dev/null && node dist/dev/bin.js slow-tests",
87
+ "smoke:bun": "bun run scripts/smoke.ts",
88
+ "prepare": "lefthook install || true",
89
+ "secrets:scan": "gitleaks git --no-banner --redact .",
90
+ "prepublishOnly": "pnpm build"
91
+ },
92
+ "dependencies": {
93
+ "cli-table3": "^0.6.5",
94
+ "cross-spawn": "7.0.6",
95
+ "env-paths": "^4.0.0",
96
+ "picocolors": "^1.1.1",
97
+ "pino": "^10.3.1",
98
+ "valibot": "^1.5.0"
99
+ },
100
+ "optionalDependencies": {
101
+ "@napi-rs/keyring": "2.1.0"
102
+ },
103
+ "devDependencies": {
104
+ "@biomejs/biome": "^2.3.14",
105
+ "@types/cross-spawn": "6.0.6",
106
+ "@types/node": "^22.20.4",
107
+ "@vitest/coverage-v8": "^5.0.2",
108
+ "commander": "^15.0.0",
109
+ "lefthook": "^2.1.8",
110
+ "typescript": "^7.0.2",
111
+ "vitest": "^5.0.2"
112
+ },
113
+ "publishConfig": {
114
+ "access": "public"
115
+ },
116
+ "peerDependencies": {
117
+ "commander": ">=15"
118
+ },
119
+ "peerDependenciesMeta": {
120
+ "commander": {
121
+ "optional": true
122
+ }
9
123
  }
10
124
  }