@kodycodes/cli 1.26.2 → 1.27.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 (296) hide show
  1. package/README.md +175 -167
  2. package/dist/add-mcp-install.d.ts +1 -1
  3. package/dist/api-token.d.ts +1 -1
  4. package/dist/auth-6ZE6QQXA.js +31 -0
  5. package/dist/auth-6ZE6QQXA.js.map +6 -0
  6. package/dist/auth-bootstrap.d.ts +1 -1
  7. package/dist/auth.d.ts +27 -3
  8. package/dist/bin.js +27 -3
  9. package/dist/bin.js.map +6 -1
  10. package/dist/capability-proxy.d.ts +1 -1
  11. package/dist/chunk-2IHISXHN.js +1413 -0
  12. package/dist/chunk-2IHISXHN.js.map +6 -0
  13. package/dist/chunk-2XPH7L2P.js +23 -0
  14. package/dist/chunk-2XPH7L2P.js.map +6 -0
  15. package/dist/chunk-3H72XY5R.js +535 -0
  16. package/dist/chunk-3H72XY5R.js.map +6 -0
  17. package/dist/chunk-46IJPEID.js +30 -0
  18. package/dist/chunk-46IJPEID.js.map +6 -0
  19. package/dist/chunk-4GIFJVGT.js +14 -0
  20. package/dist/chunk-4GIFJVGT.js.map +6 -0
  21. package/dist/chunk-5JIRHJQP.js +1016 -0
  22. package/dist/chunk-5JIRHJQP.js.map +6 -0
  23. package/dist/chunk-5ZBJAP6G.js +2005 -0
  24. package/dist/chunk-5ZBJAP6G.js.map +6 -0
  25. package/dist/chunk-6ZYUGXVW.js +26 -0
  26. package/dist/chunk-6ZYUGXVW.js.map +6 -0
  27. package/dist/chunk-7PRJ36I5.js +23 -0
  28. package/dist/chunk-7PRJ36I5.js.map +6 -0
  29. package/dist/chunk-BTL3PJ2H.js +38 -0
  30. package/dist/chunk-BTL3PJ2H.js.map +6 -0
  31. package/dist/chunk-CASGRYOF.js +21 -0
  32. package/dist/chunk-CASGRYOF.js.map +6 -0
  33. package/dist/chunk-CPS7HW4T.js +56 -0
  34. package/dist/chunk-CPS7HW4T.js.map +6 -0
  35. package/dist/chunk-CWWHR4FH.js +19 -0
  36. package/dist/chunk-CWWHR4FH.js.map +6 -0
  37. package/dist/chunk-D366STO5.js +2051 -0
  38. package/dist/chunk-D366STO5.js.map +6 -0
  39. package/dist/chunk-DW5UTJ6T.js +115 -0
  40. package/dist/chunk-DW5UTJ6T.js.map +6 -0
  41. package/dist/chunk-EJXEVGWF.js +47 -0
  42. package/dist/chunk-EJXEVGWF.js.map +6 -0
  43. package/dist/chunk-FBEZ6PZ7.js +746 -0
  44. package/dist/chunk-FBEZ6PZ7.js.map +6 -0
  45. package/dist/chunk-JOMBXQOS.js +435 -0
  46. package/dist/chunk-JOMBXQOS.js.map +6 -0
  47. package/dist/{package-local-runtime-source.js → chunk-LU7I7CQ4.js} +395 -52
  48. package/dist/chunk-LU7I7CQ4.js.map +6 -0
  49. package/dist/chunk-OZDWOZLV.js +964 -0
  50. package/dist/chunk-OZDWOZLV.js.map +6 -0
  51. package/dist/chunk-SLNAWWQK.js +64 -0
  52. package/dist/chunk-SLNAWWQK.js.map +6 -0
  53. package/dist/chunk-TUUFQYWP.js +348 -0
  54. package/dist/chunk-TUUFQYWP.js.map +6 -0
  55. package/dist/chunk-UW6AWLXX.js +43 -0
  56. package/dist/chunk-UW6AWLXX.js.map +6 -0
  57. package/dist/chunk-W2SAFAT4.js +1563 -0
  58. package/dist/chunk-W2SAFAT4.js.map +6 -0
  59. package/dist/chunk-XV6D6HSG.js +57 -0
  60. package/dist/chunk-XV6D6HSG.js.map +6 -0
  61. package/dist/chunk-Y4FOJETX.js +616 -0
  62. package/dist/chunk-Y4FOJETX.js.map +6 -0
  63. package/dist/chunk-YDWTXEKQ.js +469 -0
  64. package/dist/chunk-YDWTXEKQ.js.map +6 -0
  65. package/dist/chunk-ZILB2HWE.js +24 -0
  66. package/dist/chunk-ZILB2HWE.js.map +6 -0
  67. package/dist/cli.js +74 -1500
  68. package/dist/cli.js.map +6 -1
  69. package/dist/defaults.d.ts +1 -1
  70. package/dist/detect-running-hosts.d.ts +1 -1
  71. package/dist/dev/dev-assets.d.ts +1 -1
  72. package/dist/dev/dev-registry.d.ts +1 -1
  73. package/dist/dev/error-page.d.ts +1 -1
  74. package/dist/dev/live-reload.d.ts +2 -2
  75. package/dist/dev-command-5PDEIWOC.js +5025 -0
  76. package/dist/dev-command-5PDEIWOC.js.map +6 -0
  77. package/dist/dev-command.d.ts +1 -1
  78. package/dist/discover-login-identity.d.ts +6 -7
  79. package/dist/discover-org.d.ts +2 -3
  80. package/dist/generated/openapi-routes.d.ts +6 -0
  81. package/dist/git-credential-INB2UV4C.js +170 -0
  82. package/dist/git-credential-INB2UV4C.js.map +6 -0
  83. package/dist/install-ONEJRYZ3.js +10728 -0
  84. package/dist/install-ONEJRYZ3.js.map +6 -0
  85. package/dist/install.d.ts +1 -1
  86. package/dist/local-execute-I3BP5NEQ.js +395 -0
  87. package/dist/local-execute-I3BP5NEQ.js.map +6 -0
  88. package/dist/local-execute-auth.d.ts +2 -2
  89. package/dist/local-execute.d.ts +1 -1
  90. package/dist/local-gateway-fetch-forward.d.ts +2 -2
  91. package/dist/local-package-run-JFKNSNWM.js +23 -0
  92. package/dist/local-package-run-JFKNSNWM.js.map +6 -0
  93. package/dist/local-package-run.d.ts +2 -2
  94. package/dist/mock/mock-fetch-gateway.d.ts +2 -2
  95. package/dist/mock/mock-supported.d.ts +1 -1
  96. package/dist/mock-dep-resolve-B5ZH4U3H.js +60 -0
  97. package/dist/mock-dep-resolve-B5ZH4U3H.js.map +6 -0
  98. package/dist/mock-fetch-gateway-S2ULVFAI.js +35 -0
  99. package/dist/mock-fetch-gateway-S2ULVFAI.js.map +6 -0
  100. package/dist/mock-local-deps-2VVNJLFF.js +200 -0
  101. package/dist/mock-local-deps-2VVNJLFF.js.map +6 -0
  102. package/dist/mock-local-deps.d.ts +1 -1
  103. package/dist/mock-server-TFO7Q26H.js +22 -0
  104. package/dist/mock-server-TFO7Q26H.js.map +6 -0
  105. package/dist/oauth-browser.d.ts +42 -0
  106. package/dist/oauth-provider.d.ts +14 -19
  107. package/dist/open-api-client-SR4B7265.js +43 -0
  108. package/dist/open-api-client-SR4B7265.js.map +6 -0
  109. package/dist/open-api-client.d.ts +2 -1
  110. package/dist/org-535LB4PD.js +134 -0
  111. package/dist/org-535LB4PD.js.map +6 -0
  112. package/dist/org-resolve.d.ts +2 -0
  113. package/dist/package-app-dev.d.ts +2 -2
  114. package/dist/package-manifest-DFF6XCPV.js +15 -0
  115. package/dist/package-manifest-DFF6XCPV.js.map +6 -0
  116. package/dist/remote-execute-JN6DRFEU.js +129 -0
  117. package/dist/remote-execute-JN6DRFEU.js.map +6 -0
  118. package/dist/remote-execute.d.ts +3 -3
  119. package/dist/setup-git-MHK563LB.js +87 -0
  120. package/dist/setup-git-MHK563LB.js.map +6 -0
  121. package/dist/setup-git.d.ts +1 -1
  122. package/dist/skill-D74XVI6T.js +61 -0
  123. package/dist/skill-D74XVI6T.js.map +6 -0
  124. package/dist/store-27J4CQZ2.js +48 -0
  125. package/dist/store-27J4CQZ2.js.map +6 -0
  126. package/dist/structured-error-5MLWXYR3.js +14 -0
  127. package/dist/structured-error-5MLWXYR3.js.map +6 -0
  128. package/dist/structured-error.d.ts +1 -1
  129. package/dist/target-33ATHDUF.js +17 -0
  130. package/dist/target-33ATHDUF.js.map +6 -0
  131. package/package.json +12 -11
  132. package/skills/kody/SKILL.md +53 -50
  133. package/dist/add-mcp-install.js +0 -59
  134. package/dist/add-mcp-install.js.map +0 -1
  135. package/dist/api-token-store.js +0 -120
  136. package/dist/api-token-store.js.map +0 -1
  137. package/dist/api-token.js +0 -238
  138. package/dist/api-token.js.map +0 -1
  139. package/dist/auth-bootstrap.js +0 -373
  140. package/dist/auth-bootstrap.js.map +0 -1
  141. package/dist/auth.js +0 -386
  142. package/dist/auth.js.map +0 -1
  143. package/dist/capability-proxy.js +0 -527
  144. package/dist/capability-proxy.js.map +0 -1
  145. package/dist/credential-call-map.js +0 -155
  146. package/dist/credential-call-map.js.map +0 -1
  147. package/dist/credential-client-runtime-source.js +0 -9
  148. package/dist/credential-client-runtime-source.js.map +0 -1
  149. package/dist/credentialed-fetch-scan.js +0 -98
  150. package/dist/credentialed-fetch-scan.js.map +0 -1
  151. package/dist/defaults.js +0 -34
  152. package/dist/defaults.js.map +0 -1
  153. package/dist/detect-running-hosts.js +0 -13
  154. package/dist/detect-running-hosts.js.map +0 -1
  155. package/dist/dev/dev-assets.js +0 -202
  156. package/dist/dev/dev-assets.js.map +0 -1
  157. package/dist/dev/dev-bundler.js +0 -65
  158. package/dist/dev/dev-bundler.js.map +0 -1
  159. package/dist/dev/dev-events.js +0 -94
  160. package/dist/dev/dev-events.js.map +0 -1
  161. package/dist/dev/dev-port.js +0 -80
  162. package/dist/dev/dev-port.js.map +0 -1
  163. package/dist/dev/dev-protocol.js +0 -14
  164. package/dist/dev/dev-protocol.js.map +0 -1
  165. package/dist/dev/dev-registry.js +0 -95
  166. package/dist/dev/dev-registry.js.map +0 -1
  167. package/dist/dev/dev-watcher.js +0 -162
  168. package/dist/dev/dev-watcher.js.map +0 -1
  169. package/dist/dev/error-page.js +0 -64
  170. package/dist/dev/error-page.js.map +0 -1
  171. package/dist/dev/live-reload.js +0 -151
  172. package/dist/dev/live-reload.js.map +0 -1
  173. package/dist/dev/prebuild.js +0 -102
  174. package/dist/dev/prebuild.js.map +0 -1
  175. package/dist/dev/process-reaper.js +0 -151
  176. package/dist/dev/process-reaper.js.map +0 -1
  177. package/dist/dev/stack-trace.js +0 -56
  178. package/dist/dev/stack-trace.js.map +0 -1
  179. package/dist/dev/workerd-process.js +0 -118
  180. package/dist/dev/workerd-process.js.map +0 -1
  181. package/dist/dev-command.js +0 -676
  182. package/dist/dev-command.js.map +0 -1
  183. package/dist/discover-login-identity.js +0 -77
  184. package/dist/discover-login-identity.js.map +0 -1
  185. package/dist/discover-org.js +0 -62
  186. package/dist/discover-org.js.map +0 -1
  187. package/dist/git-credential.js +0 -147
  188. package/dist/git-credential.js.map +0 -1
  189. package/dist/help.js +0 -333
  190. package/dist/help.js.map +0 -1
  191. package/dist/host-catalog.js +0 -427
  192. package/dist/host-catalog.js.map +0 -1
  193. package/dist/host-config.js +0 -80
  194. package/dist/host-config.js.map +0 -1
  195. package/dist/http-error-body.js +0 -35
  196. package/dist/http-error-body.js.map +0 -1
  197. package/dist/install-hosts.js +0 -328
  198. package/dist/install-hosts.js.map +0 -1
  199. package/dist/install.js +0 -120
  200. package/dist/install.js.map +0 -1
  201. package/dist/invoke-passthrough.js +0 -60
  202. package/dist/invoke-passthrough.js.map +0 -1
  203. package/dist/local-bundle.js +0 -200
  204. package/dist/local-bundle.js.map +0 -1
  205. package/dist/local-execute-auth.js +0 -53
  206. package/dist/local-execute-auth.js.map +0 -1
  207. package/dist/local-execute.js +0 -338
  208. package/dist/local-execute.js.map +0 -1
  209. package/dist/local-gateway-fetch-forward.js +0 -135
  210. package/dist/local-gateway-fetch-forward.js.map +0 -1
  211. package/dist/local-host-runtime-surface.js +0 -75
  212. package/dist/local-host-runtime-surface.js.map +0 -1
  213. package/dist/local-package-graph.js +0 -405
  214. package/dist/local-package-graph.js.map +0 -1
  215. package/dist/local-package-run.js +0 -307
  216. package/dist/local-package-run.js.map +0 -1
  217. package/dist/local-runtime-bridge.js +0 -132
  218. package/dist/local-runtime-bridge.js.map +0 -1
  219. package/dist/local-runtime-source.js +0 -541
  220. package/dist/local-runtime-source.js.map +0 -1
  221. package/dist/login-callback-assets.js +0 -10
  222. package/dist/login-callback-assets.js.map +0 -1
  223. package/dist/login-callback-page.js +0 -362
  224. package/dist/login-callback-page.js.map +0 -1
  225. package/dist/mcp.d.ts +0 -34
  226. package/dist/mcp.js +0 -134
  227. package/dist/mcp.js.map +0 -1
  228. package/dist/mock/ensure-msw.js +0 -215
  229. package/dist/mock/ensure-msw.js.map +0 -1
  230. package/dist/mock/install-mock-fetch-shim.js +0 -36
  231. package/dist/mock/install-mock-fetch-shim.js.map +0 -1
  232. package/dist/mock/load-package-mocks.js +0 -136
  233. package/dist/mock/load-package-mocks.js.map +0 -1
  234. package/dist/mock/mock-fetch-gateway.js +0 -343
  235. package/dist/mock/mock-fetch-gateway.js.map +0 -1
  236. package/dist/mock/mock-gateway-fetch-shim.js +0 -104
  237. package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
  238. package/dist/mock/mock-server.js +0 -499
  239. package/dist/mock/mock-server.js.map +0 -1
  240. package/dist/mock/mock-storage.js +0 -186
  241. package/dist/mock/mock-storage.js.map +0 -1
  242. package/dist/mock/mock-supported.js +0 -63
  243. package/dist/mock/mock-supported.js.map +0 -1
  244. package/dist/mock-dep-resolve.js +0 -47
  245. package/dist/mock-dep-resolve.js.map +0 -1
  246. package/dist/mock-local-deps.js +0 -207
  247. package/dist/mock-local-deps.js.map +0 -1
  248. package/dist/network-error.js +0 -11
  249. package/dist/network-error.js.map +0 -1
  250. package/dist/node-engine.js +0 -21
  251. package/dist/node-engine.js.map +0 -1
  252. package/dist/oauth-provider.js +0 -107
  253. package/dist/oauth-provider.js.map +0 -1
  254. package/dist/onboarding-prompt.js +0 -15
  255. package/dist/onboarding-prompt.js.map +0 -1
  256. package/dist/open-api-client.js +0 -432
  257. package/dist/open-api-client.js.map +0 -1
  258. package/dist/open-url.js +0 -21
  259. package/dist/open-url.js.map +0 -1
  260. package/dist/org-resolve.js +0 -16
  261. package/dist/org-resolve.js.map +0 -1
  262. package/dist/org-slug.js +0 -11
  263. package/dist/org-slug.js.map +0 -1
  264. package/dist/org.js +0 -100
  265. package/dist/org.js.map +0 -1
  266. package/dist/package-app-dev.js +0 -922
  267. package/dist/package-app-dev.js.map +0 -1
  268. package/dist/package-collaborators.js +0 -179
  269. package/dist/package-collaborators.js.map +0 -1
  270. package/dist/package-info.js +0 -19
  271. package/dist/package-info.js.map +0 -1
  272. package/dist/package-local-runtime-source.js.map +0 -1
  273. package/dist/package-manifest.js +0 -364
  274. package/dist/package-manifest.js.map +0 -1
  275. package/dist/process-info.js +0 -14
  276. package/dist/process-info.js.map +0 -1
  277. package/dist/redact.js +0 -16
  278. package/dist/redact.js.map +0 -1
  279. package/dist/remote-execute.js +0 -108
  280. package/dist/remote-execute.js.map +0 -1
  281. package/dist/setup-git.js +0 -676
  282. package/dist/setup-git.js.map +0 -1
  283. package/dist/skill.js +0 -35
  284. package/dist/skill.js.map +0 -1
  285. package/dist/store.js +0 -597
  286. package/dist/store.js.map +0 -1
  287. package/dist/structured-error.js +0 -57
  288. package/dist/structured-error.js.map +0 -1
  289. package/dist/target.js +0 -52
  290. package/dist/target.js.map +0 -1
  291. package/dist/tool-result.js +0 -19
  292. package/dist/tool-result.js.map +0 -1
  293. package/dist/which.js +0 -22
  294. package/dist/which.js.map +0 -1
  295. package/dist/workerd-binary.js +0 -98
  296. package/dist/workerd-binary.js.map +0 -1
@@ -1,215 +0,0 @@
1
- /**
2
- * On-demand MSW for `--target mock` fetch mocking.
3
- *
4
- * Kept out of `dependencies` so cold `npx @kodycodes/cli` stays small; when a
5
- * mock path actually needs MSW (`.kody/mocks.ts` / handler dispatch), install
6
- * the pinned version into the Kody user cache (never the user project / global).
7
- */
8
- import { spawn } from 'node:child_process';
9
- import { existsSync } from 'node:fs';
10
- import { mkdir, mkdtemp, rename, rm, writeFile } from 'node:fs/promises';
11
- import { createRequire } from 'node:module';
12
- import { dirname, join } from 'node:path';
13
- import { pathToFileURL } from 'node:url';
14
- import { StructuredCliError } from '../structured-error.js';
15
- import { userCacheDir } from '../workerd-binary.js';
16
- /** Exact pin — bump deliberately when changing mock MSW behavior. */
17
- export const mswPinnedVersion = '3.0.3';
18
- export const mswPackageSpec = `msw@${mswPinnedVersion}`;
19
- export function cachedMswRoot(cacheDir, version = mswPinnedVersion) {
20
- return join(cacheDir, 'deps', 'msw', version);
21
- }
22
- export function cachedMswPackagePath(cacheDir, version = mswPinnedVersion) {
23
- return join(cachedMswRoot(cacheDir, version), 'node_modules', 'msw');
24
- }
25
- function isMswInstalled(root) {
26
- return existsSync(join(root, 'node_modules', 'msw', 'package.json'));
27
- }
28
- /**
29
- * Ensure the pinned `msw` is available and return its package directory
30
- * (`…/node_modules/msw`). Prefers the Kody cache; falls back to a
31
- * CLI-local resolve (devDependency / tests); otherwise installs into the cache.
32
- */
33
- export async function ensureMsw(input = {}) {
34
- const env = input.env ?? process.env;
35
- const cacheDir = input.cacheDir ?? userCacheDir(env);
36
- const root = cachedMswRoot(cacheDir);
37
- const packageDir = cachedMswPackagePath(cacheDir);
38
- if (isMswInstalled(root))
39
- return packageDir;
40
- // Tests / local checkout: msw may already be resolvable from the CLI tree.
41
- // Skip this when a custom cacheDir or installInto seam is provided so the
42
- // on-demand install path stays testable.
43
- if (!input.cacheDir && !input.installInto) {
44
- const local = tryResolveLocalMswPackageDir();
45
- if (local)
46
- return local;
47
- }
48
- input.onInstall?.(mswPackageSpec);
49
- const parent = dirname(root);
50
- await mkdir(parent, { recursive: true });
51
- const staging = await mkdtemp(join(parent, `.msw-${mswPinnedVersion}-`));
52
- try {
53
- if (input.installInto) {
54
- await input.installInto(staging);
55
- }
56
- else {
57
- await npmInstallMsw(staging, env);
58
- }
59
- if (!isMswInstalled(staging)) {
60
- throw mswInstallFailedError({
61
- reason: 'install finished but msw package.json was missing',
62
- packageDir,
63
- });
64
- }
65
- await rm(root, { recursive: true, force: true });
66
- await rename(staging, root);
67
- }
68
- catch (error) {
69
- await rm(staging, { recursive: true, force: true }).catch(() => { });
70
- if (error instanceof StructuredCliError)
71
- throw error;
72
- throw mswInstallFailedError({
73
- reason: error instanceof Error ? error.message : String(error),
74
- packageDir,
75
- });
76
- }
77
- if (!isMswInstalled(root)) {
78
- throw mswInstallFailedError({
79
- reason: 'cache move finished but msw package.json was missing',
80
- packageDir,
81
- });
82
- }
83
- return packageDir;
84
- }
85
- function tryResolveLocalMswPackageDir() {
86
- try {
87
- const require = createRequire(import.meta.url);
88
- return dirname(require.resolve('msw/package.json'));
89
- }
90
- catch {
91
- return null;
92
- }
93
- }
94
- /**
95
- * Ensure + dynamic-import the pinned MSW module from the Kody cache.
96
- */
97
- export async function importMsw(input = {}) {
98
- const packageDir = await ensureMsw(input);
99
- const require = createRequire(join(packageDir, 'package.json'));
100
- const entry = require.resolve('msw');
101
- return (await import(pathToFileURL(entry).href));
102
- }
103
- /** Absolute `file://` href for rewriting bundled `.kody/mocks.ts` imports. */
104
- export async function resolveMswEntryHref(input = {}) {
105
- const packageDir = await ensureMsw(input);
106
- const require = createRequire(join(packageDir, 'package.json'));
107
- return pathToFileURL(require.resolve('msw')).href;
108
- }
109
- async function npmInstallMsw(stagingDir, env) {
110
- await writeFile(join(stagingDir, 'package.json'), `${JSON.stringify({
111
- name: 'kody-msw-cache',
112
- private: true,
113
- dependencies: { msw: mswPinnedVersion },
114
- }, null, 2)}\n`);
115
- await new Promise((resolve, reject) => {
116
- const child = spawn('npm', [
117
- 'install',
118
- '--omit=dev',
119
- '--no-audit',
120
- '--no-fund',
121
- '--no-update-notifier',
122
- '--no-progress',
123
- ], {
124
- cwd: stagingDir,
125
- env: npmInstallEnv(env),
126
- // Ignore stdout so a full pipe buffer cannot hang npm; keep stderr
127
- // for the failure message.
128
- stdio: ['ignore', 'ignore', 'pipe'],
129
- });
130
- let stderr = '';
131
- child.stderr?.on('data', (chunk) => {
132
- stderr += chunk.toString('utf8');
133
- if (stderr.length > 64_000)
134
- stderr = stderr.slice(-64_000);
135
- });
136
- const timer = setTimeout(() => {
137
- child.kill('SIGTERM');
138
- reject(new Error(`npm install ${mswPackageSpec} timed out after 120s`));
139
- }, 120_000);
140
- child.on('error', (error) => {
141
- clearTimeout(timer);
142
- reject(new Error(`could not spawn npm (${error instanceof Error ? error.message : String(error)})`));
143
- });
144
- child.on('close', (code) => {
145
- clearTimeout(timer);
146
- if (code === 0) {
147
- resolve();
148
- return;
149
- }
150
- const detail = stderr.trim().split('\n').at(-1) ?? `npm exited ${code}`;
151
- reject(new Error(detail));
152
- });
153
- });
154
- }
155
- /**
156
- * Minimal env for the on-demand install: keep PATH/home/proxy/certs, drop user
157
- * `npm_config_*` so verbose/json logging cannot flood or change behavior.
158
- * Registry/cache overrides are re-applied when set (tests / offline mirrors).
159
- */
160
- function npmInstallEnv(env) {
161
- const keep = new Set([
162
- 'PATH',
163
- 'HOME',
164
- 'USERPROFILE',
165
- 'TMPDIR',
166
- 'TEMP',
167
- 'TMP',
168
- 'HTTP_PROXY',
169
- 'HTTPS_PROXY',
170
- 'NO_PROXY',
171
- 'ALL_PROXY',
172
- 'NODE_EXTRA_CA_CERTS',
173
- 'SSL_CERT_FILE',
174
- 'SSL_CERT_DIR',
175
- ]);
176
- const out = {};
177
- for (const [key, value] of Object.entries(env)) {
178
- if (value === undefined)
179
- continue;
180
- if (keep.has(key.toUpperCase()))
181
- out[key] = value;
182
- }
183
- if (env.npm_config_registry)
184
- out.npm_config_registry = env.npm_config_registry;
185
- if (env.npm_config_cache)
186
- out.npm_config_cache = env.npm_config_cache;
187
- if (env.NPM_CONFIG_REGISTRY)
188
- out.NPM_CONFIG_REGISTRY = env.NPM_CONFIG_REGISTRY;
189
- if (env.NPM_CONFIG_CACHE)
190
- out.NPM_CONFIG_CACHE = env.NPM_CONFIG_CACHE;
191
- return {
192
- ...out,
193
- CI: 'true',
194
- npm_config_yes: 'true',
195
- npm_config_fund: 'false',
196
- npm_config_audit: 'false',
197
- npm_config_update_notifier: 'false',
198
- npm_config_loglevel: 'error',
199
- // Never install into a user project / global prefix.
200
- npm_config_global: 'false',
201
- };
202
- }
203
- function mswInstallFailedError(input) {
204
- return new StructuredCliError({
205
- code: 'bundle_failed',
206
- message: `Could not install ${mswPackageSpec} for --target mock (${input.reason}).`,
207
- target: 'mock',
208
- where: input.packageDir,
209
- fix: `Connect to the network and retry so the CLI can install ${mswPackageSpec} into the Kody cache ` +
210
- `(${dirname(input.packageDir)}). Offline? Set KODY_CACHE_DIR to a writable cache and install ` +
211
- `${mswPackageSpec} there first, then retry.`,
212
- details: { package: mswPackageSpec, cachePackageDir: input.packageDir },
213
- });
214
- }
215
- //# sourceMappingURL=ensure-msw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-msw.js","sourceRoot":"","sources":["../../src/mock/ensure-msw.ts"],"names":[],"mappings":"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"}
@@ -1,36 +0,0 @@
1
- /**
2
- * When `.kody/mocks.ts` is active under `--target mock`, embed the CLI-owned
3
- * gateway-fetch shim and ensure the workerd entry side-effect imports it.
4
- *
5
- * Keep the origin `.__kody_virtual__/runtime.js` module (CAF / packageStorage
6
- * re-exports). Register the mock wrap under a *flat* module name so bare
7
- * `kody:runtime` does not path-join under `.__kody_virtual__/` (same workerd
8
- * rule as kentcdodds/kody local-execute-package-graph).
9
- */
10
- import { writeFile } from 'node:fs/promises';
11
- import { join } from 'node:path';
12
- import { localExecuteGatewayFetchShimModuleName } from '../local-package-graph.js';
13
- import { createMockGatewayFetchShimSource } from './mock-gateway-fetch-shim.js';
14
- const mockShimFileName = 'mock-gateway-fetch-shim.js';
15
- /** Flat workerd module name — must not contain `/` (path-join hazard). */
16
- export const mockGatewayFetchShimModuleName = '.__kody_mock_gateway_fetch__.js';
17
- export async function installMockFetchShimModules(input) {
18
- const withoutDup = input.packageModules.filter((module) => module.name !== mockGatewayFetchShimModuleName);
19
- await writeFile(join(input.workDir, mockShimFileName), createMockGatewayFetchShimSource());
20
- const originShimNames = withoutDup
21
- .map((module) => module.name)
22
- .filter((name) => name === localExecuteGatewayFetchShimModuleName);
23
- return {
24
- packageModules: [
25
- ...withoutDup,
26
- {
27
- name: mockGatewayFetchShimModuleName,
28
- file: mockShimFileName,
29
- },
30
- ],
31
- // Origin first (runtime re-exports + secret wrap), mock last so ambient
32
- // fetch is fail-closed through the Node MSW gateway.
33
- sideEffectModules: [...originShimNames, mockGatewayFetchShimModuleName],
34
- };
35
- }
36
- //# sourceMappingURL=install-mock-fetch-shim.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"install-mock-fetch-shim.js","sourceRoot":"","sources":["../../src/mock/install-mock-fetch-shim.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAA;AAElF,OAAO,EAAE,gCAAgC,EAAE,MAAM,8BAA8B,CAAA;AAE/E,MAAM,gBAAgB,GAAG,4BAA4B,CAAA;AAErD,0EAA0E;AAC1E,MAAM,CAAC,MAAM,8BAA8B,GAAG,iCAAiC,CAAA;AAE/E,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,KAGjD;IAIA,MAAM,UAAU,GAAG,KAAK,CAAC,cAAc,CAAC,MAAM,CAC7C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,8BAA8B,CAC1D,CAAA;IACD,MAAM,SAAS,CACd,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,gBAAgB,CAAC,EACrC,gCAAgC,EAAE,CAClC,CAAA;IACD,MAAM,eAAe,GAAG,UAAU;SAChC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC;SAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,sCAAsC,CAAC,CAAA;IACnE,OAAO;QACN,cAAc,EAAE;YACf,GAAG,UAAU;YACb;gBACC,IAAI,EAAE,8BAA8B;gBACpC,IAAI,EAAE,gBAAgB;aACtB;SACD;QACD,wEAAwE;QACxE,qDAAqD;QACrD,iBAAiB,EAAE,CAAC,GAAG,eAAe,EAAE,8BAA8B,CAAC;KACvE,CAAA;AACF,CAAC"}
@@ -1,136 +0,0 @@
1
- /**
2
- * Load optional `<packageRoot>/.kody/mocks.ts` for `--target mock` outbound
3
- * fetch mocking. Missing file → no MSW handlers (ambient/gatewayFetch use
4
- * public-network passthrough via the Node gateway; credentialed /
5
- * createAuthenticatedFetch hops still fail closed). Never imported into
6
- * published package bundles.
7
- */
8
- import * as esbuild from 'esbuild';
9
- import { access, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
10
- import { tmpdir } from 'node:os';
11
- import { join } from 'node:path';
12
- import { pathToFileURL } from 'node:url';
13
- import { StructuredCliError } from '../structured-error.js';
14
- import { mswPackageSpec, resolveMswEntryHref, } from './ensure-msw.js';
15
- export const packageMocksRelativePath = '.kody/mocks.ts';
16
- export async function resolvePackageMocksPath(packageRoot) {
17
- const path = join(packageRoot, packageMocksRelativePath);
18
- try {
19
- await access(path);
20
- return path;
21
- }
22
- catch {
23
- return null;
24
- }
25
- }
26
- /**
27
- * Bundle and evaluate `.kody/mocks.ts`. Expects `export const handlers = […]`
28
- * (MSW `http.*` handlers) or a default export of that array.
29
- */
30
- export async function loadPackageMocks(packageRoot, msw = {}) {
31
- const path = await resolvePackageMocksPath(packageRoot);
32
- if (!path)
33
- return null;
34
- const workDir = await mkdtemp(join(tmpdir(), 'kody-mocks-'));
35
- const outfile = join(workDir, 'mocks.mjs');
36
- try {
37
- const mswHref = await resolveMswEntryHref(msw);
38
- let result;
39
- try {
40
- result = await esbuild.build({
41
- entryPoints: [path],
42
- bundle: true,
43
- platform: 'node',
44
- format: 'esm',
45
- target: 'node22',
46
- outfile,
47
- write: true,
48
- logLevel: 'silent',
49
- // Leave MSW external; rewrite the import to the cache-resolved absolute URL.
50
- external: ['msw', 'msw/*'],
51
- });
52
- }
53
- catch (error) {
54
- throw bundleFailedError(path, error);
55
- }
56
- if (result.errors.length > 0) {
57
- throw bundleFailedError(path, { errors: result.errors });
58
- }
59
- const bundled = await readFile(outfile, 'utf8');
60
- const rewritten = bundled.replace(/(from\s*|import\s*\(|require\s*\()\s*(['"])msw\2/g, (_match, prefix, quote) => `${prefix}${quote}${mswHref}${quote}`);
61
- await writeFile(outfile, rewritten);
62
- const mod = (await import(pathToFileURL(outfile).href));
63
- const raw = mod.handlers ?? mod.default;
64
- if (!Array.isArray(raw)) {
65
- throw new StructuredCliError({
66
- code: 'package_manifest_invalid',
67
- message: `${packageMocksRelativePath} must export \`handlers\` (or default) as an array of MSW http handlers.`,
68
- target: 'mock',
69
- where: path,
70
- fix: `export const handlers = [http.get('https://api.example.com/…', () => HttpResponse.json({ ok: true }))]`,
71
- });
72
- }
73
- return { path, handlers: raw };
74
- }
75
- catch (error) {
76
- if (error instanceof StructuredCliError)
77
- throw error;
78
- throw new StructuredCliError({
79
- code: 'bundle_failed',
80
- message: `Could not load ${packageMocksRelativePath}.`,
81
- target: 'mock',
82
- where: path,
83
- fix: `Ensure the file exports MSW handlers. The CLI installs ${mswPackageSpec} into the Kody ` +
84
- `cache on first --target mock use that needs MSW.`,
85
- details: {
86
- cause: error instanceof Error ? error.message : String(error),
87
- },
88
- });
89
- }
90
- finally {
91
- await rm(workDir, { recursive: true, force: true });
92
- }
93
- }
94
- /** Write a tiny helper so tests can assert the relative path without importing fs. */
95
- export function packageMocksPathFor(packageRoot) {
96
- return join(packageRoot, packageMocksRelativePath);
97
- }
98
- function bundleFailedError(path, error) {
99
- const formatted = formatEsbuildErrors(path, error);
100
- return new StructuredCliError({
101
- code: 'bundle_failed',
102
- message: `Could not bundle ${packageMocksRelativePath} for --target mock.${formatted.summary ? ` ${formatted.summary}` : ''}`,
103
- target: 'mock',
104
- where: formatted.where ?? path,
105
- fix: `Fix TypeScript/syntax errors in .kody/mocks.ts and retry. Import handlers from \`msw\` ` +
106
- `(the CLI installs ${mswPackageSpec} into the Kody cache on demand).`,
107
- details: { errors: formatted.errors },
108
- });
109
- }
110
- function formatEsbuildErrors(mocksPath, error) {
111
- const messages = [];
112
- if (error && typeof error === 'object' && 'errors' in error) {
113
- messages.push(...error.errors);
114
- }
115
- if (messages.length === 0) {
116
- const text = error instanceof Error ? error.message : String(error);
117
- return { summary: text, errors: [text] };
118
- }
119
- const errors = messages.map((item) => {
120
- const loc = item.location;
121
- if (loc?.file && typeof loc.line === 'number') {
122
- return `${loc.file}:${loc.line}:${loc.column ?? 0}: ${item.text}`;
123
- }
124
- return item.text;
125
- });
126
- const first = messages[0]?.location;
127
- const where = first?.file && typeof first.line === 'number'
128
- ? `${first.file}:${first.line}:${first.column ?? 0}`
129
- : mocksPath;
130
- return {
131
- summary: errors[0] ?? '',
132
- where,
133
- errors,
134
- };
135
- }
136
- //# sourceMappingURL=load-package-mocks.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"load-package-mocks.js","sourceRoot":"","sources":["../../src/mock/load-package-mocks.ts"],"names":[],"mappings":"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"}