@kodycodes/cli 1.26.1 → 1.26.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth-4FW6GCLG.js +26 -0
- package/dist/auth-4FW6GCLG.js.map +6 -0
- package/dist/bin.js +27 -3
- package/dist/bin.js.map +6 -1
- package/dist/chunk-46IJPEID.js +30 -0
- package/dist/chunk-46IJPEID.js.map +6 -0
- package/dist/chunk-4D6ORNXY.js +24404 -0
- package/dist/chunk-4D6ORNXY.js.map +6 -0
- package/dist/chunk-64IM6G4Z.js +341 -0
- package/dist/chunk-64IM6G4Z.js.map +6 -0
- package/dist/{package-local-runtime-source.js → chunk-64XN367G.js} +373 -52
- package/dist/chunk-64XN367G.js.map +6 -0
- package/dist/chunk-6XQP5SWX.js +26 -0
- package/dist/chunk-6XQP5SWX.js.map +6 -0
- package/dist/chunk-75RZUXQL.js +62 -0
- package/dist/chunk-75RZUXQL.js.map +6 -0
- package/dist/chunk-BISUL7CE.js +106 -0
- package/dist/chunk-BISUL7CE.js.map +6 -0
- package/dist/chunk-BPGY4IE7.js +57 -0
- package/dist/chunk-BPGY4IE7.js.map +6 -0
- package/dist/chunk-CASGRYOF.js +21 -0
- package/dist/chunk-CASGRYOF.js.map +6 -0
- package/dist/chunk-CWWHR4FH.js +19 -0
- package/dist/chunk-CWWHR4FH.js.map +6 -0
- package/dist/chunk-D55XPY3T.js +1382 -0
- package/dist/chunk-D55XPY3T.js.map +6 -0
- package/dist/chunk-EOCV74B2.js +948 -0
- package/dist/chunk-EOCV74B2.js.map +6 -0
- package/dist/chunk-FBVNFWR6.js +437 -0
- package/dist/chunk-FBVNFWR6.js.map +6 -0
- package/dist/chunk-G4YN6XP5.js +14 -0
- package/dist/chunk-G4YN6XP5.js.map +6 -0
- package/dist/chunk-G6LJWROP.js +18 -0
- package/dist/chunk-G6LJWROP.js.map +6 -0
- package/dist/chunk-IHP6PV6X.js +49 -0
- package/dist/chunk-IHP6PV6X.js.map +6 -0
- package/dist/chunk-JWEFKKAD.js +24 -0
- package/dist/chunk-JWEFKKAD.js.map +6 -0
- package/dist/chunk-LWNB26KO.js +147 -0
- package/dist/chunk-LWNB26KO.js.map +6 -0
- package/dist/chunk-OVGXPRSY.js +20 -0
- package/dist/chunk-OVGXPRSY.js.map +6 -0
- package/dist/chunk-PDWCKWQF.js +453 -0
- package/dist/chunk-PDWCKWQF.js.map +6 -0
- package/dist/chunk-QHBCP4OB.js +44 -0
- package/dist/chunk-QHBCP4OB.js.map +6 -0
- package/dist/chunk-R4IUV5P5.js +664 -0
- package/dist/chunk-R4IUV5P5.js.map +6 -0
- package/dist/chunk-RM34N3KI.js +525 -0
- package/dist/chunk-RM34N3KI.js.map +6 -0
- package/dist/chunk-RTWUNV76.js +309 -0
- package/dist/chunk-RTWUNV76.js.map +6 -0
- package/dist/chunk-SMURF26I.js +23 -0
- package/dist/chunk-SMURF26I.js.map +6 -0
- package/dist/chunk-SXHULGL4.js +426 -0
- package/dist/chunk-SXHULGL4.js.map +6 -0
- package/dist/chunk-TIL35OWA.js +1959 -0
- package/dist/chunk-TIL35OWA.js.map +6 -0
- package/dist/chunk-VQS5YSCI.js +54 -0
- package/dist/chunk-VQS5YSCI.js.map +6 -0
- package/dist/chunk-XDCOWU5R.js +696 -0
- package/dist/chunk-XDCOWU5R.js.map +6 -0
- package/dist/chunk-XOPPGRUP.js +605 -0
- package/dist/chunk-XOPPGRUP.js.map +6 -0
- package/dist/cli.js +74 -1500
- package/dist/cli.js.map +6 -1
- package/dist/dev/dev-watcher.d.ts +5 -1
- package/dist/dev-command-3LX234N6.js +4900 -0
- package/dist/dev-command-3LX234N6.js.map +6 -0
- package/dist/git-credential-FUE3JE3T.js +163 -0
- package/dist/git-credential-FUE3JE3T.js.map +6 -0
- package/dist/install-ZML2TCDG.js +10694 -0
- package/dist/install-ZML2TCDG.js.map +6 -0
- package/dist/local-execute-SZV6XN4T.js +368 -0
- package/dist/local-execute-SZV6XN4T.js.map +6 -0
- package/dist/local-package-run-2TMCAZZ2.js +23 -0
- package/dist/local-package-run-2TMCAZZ2.js.map +6 -0
- package/dist/mcp-G2AWTIXR.js +21 -0
- package/dist/mcp-G2AWTIXR.js.map +6 -0
- package/dist/mock-dep-resolve-TVABDNR7.js +52 -0
- package/dist/mock-dep-resolve-TVABDNR7.js.map +6 -0
- package/dist/mock-fetch-gateway-B5TFGGQS.js +34 -0
- package/dist/mock-fetch-gateway-B5TFGGQS.js.map +6 -0
- package/dist/mock-local-deps-5SZT3PWT.js +197 -0
- package/dist/mock-local-deps-5SZT3PWT.js.map +6 -0
- package/dist/mock-server-SV2IKC4I.js +21 -0
- package/dist/mock-server-SV2IKC4I.js.map +6 -0
- package/dist/open-api-client-DVVMLY7P.js +42 -0
- package/dist/open-api-client-DVVMLY7P.js.map +6 -0
- package/dist/org-X7B5BI4R.js +132 -0
- package/dist/org-X7B5BI4R.js.map +6 -0
- package/dist/package-manifest-QH2RU64C.js +14 -0
- package/dist/package-manifest-QH2RU64C.js.map +6 -0
- package/dist/remote-execute-QMQDVHOY.js +110 -0
- package/dist/remote-execute-QMQDVHOY.js.map +6 -0
- package/dist/setup-git-5KCUBYPB.js +88 -0
- package/dist/setup-git-5KCUBYPB.js.map +6 -0
- package/dist/skill-ENPATRIW.js +43 -0
- package/dist/skill-ENPATRIW.js.map +6 -0
- package/dist/store-WTMRH527.js +48 -0
- package/dist/store-WTMRH527.js.map +6 -0
- package/dist/structured-error-C65GQ53Z.js +13 -0
- package/dist/structured-error-C65GQ53Z.js.map +6 -0
- package/dist/target-3QHY7JT4.js +45 -0
- package/dist/target-3QHY7JT4.js.map +6 -0
- package/dist/webapi-NTVP4BO3.js +2482 -0
- package/dist/webapi-NTVP4BO3.js.map +6 -0
- package/package.json +8 -8
- package/dist/add-mcp-install.js +0 -59
- package/dist/add-mcp-install.js.map +0 -1
- package/dist/api-token-store.js +0 -120
- package/dist/api-token-store.js.map +0 -1
- package/dist/api-token.js +0 -238
- package/dist/api-token.js.map +0 -1
- package/dist/auth-bootstrap.js +0 -373
- package/dist/auth-bootstrap.js.map +0 -1
- package/dist/auth.js +0 -386
- package/dist/auth.js.map +0 -1
- package/dist/capability-proxy.js +0 -527
- package/dist/capability-proxy.js.map +0 -1
- package/dist/credential-call-map.js +0 -155
- package/dist/credential-call-map.js.map +0 -1
- package/dist/credential-client-runtime-source.js +0 -9
- package/dist/credential-client-runtime-source.js.map +0 -1
- package/dist/credentialed-fetch-scan.js +0 -98
- package/dist/credentialed-fetch-scan.js.map +0 -1
- package/dist/defaults.js +0 -34
- package/dist/defaults.js.map +0 -1
- package/dist/detect-running-hosts.js +0 -13
- package/dist/detect-running-hosts.js.map +0 -1
- package/dist/dev/dev-assets.js +0 -202
- package/dist/dev/dev-assets.js.map +0 -1
- package/dist/dev/dev-bundler.js +0 -65
- package/dist/dev/dev-bundler.js.map +0 -1
- package/dist/dev/dev-events.js +0 -94
- package/dist/dev/dev-events.js.map +0 -1
- package/dist/dev/dev-port.js +0 -80
- package/dist/dev/dev-port.js.map +0 -1
- package/dist/dev/dev-protocol.js +0 -14
- package/dist/dev/dev-protocol.js.map +0 -1
- package/dist/dev/dev-registry.js +0 -95
- package/dist/dev/dev-registry.js.map +0 -1
- package/dist/dev/dev-watcher.js +0 -156
- package/dist/dev/dev-watcher.js.map +0 -1
- package/dist/dev/error-page.js +0 -64
- package/dist/dev/error-page.js.map +0 -1
- package/dist/dev/live-reload.js +0 -148
- package/dist/dev/live-reload.js.map +0 -1
- package/dist/dev/prebuild.js +0 -102
- package/dist/dev/prebuild.js.map +0 -1
- package/dist/dev/process-reaper.js +0 -151
- package/dist/dev/process-reaper.js.map +0 -1
- package/dist/dev/stack-trace.js +0 -56
- package/dist/dev/stack-trace.js.map +0 -1
- package/dist/dev/workerd-process.js +0 -118
- package/dist/dev/workerd-process.js.map +0 -1
- package/dist/dev-command.js +0 -672
- package/dist/dev-command.js.map +0 -1
- package/dist/discover-login-identity.js +0 -77
- package/dist/discover-login-identity.js.map +0 -1
- package/dist/discover-org.js +0 -62
- package/dist/discover-org.js.map +0 -1
- package/dist/git-credential.js +0 -147
- package/dist/git-credential.js.map +0 -1
- package/dist/help.js +0 -333
- package/dist/help.js.map +0 -1
- package/dist/host-catalog.js +0 -427
- package/dist/host-catalog.js.map +0 -1
- package/dist/host-config.js +0 -80
- package/dist/host-config.js.map +0 -1
- package/dist/http-error-body.js +0 -35
- package/dist/http-error-body.js.map +0 -1
- package/dist/install-hosts.js +0 -328
- package/dist/install-hosts.js.map +0 -1
- package/dist/install.js +0 -120
- package/dist/install.js.map +0 -1
- package/dist/invoke-passthrough.js +0 -60
- package/dist/invoke-passthrough.js.map +0 -1
- package/dist/local-bundle.js +0 -200
- package/dist/local-bundle.js.map +0 -1
- package/dist/local-execute-auth.js +0 -53
- package/dist/local-execute-auth.js.map +0 -1
- package/dist/local-execute.js +0 -338
- package/dist/local-execute.js.map +0 -1
- package/dist/local-gateway-fetch-forward.js +0 -135
- package/dist/local-gateway-fetch-forward.js.map +0 -1
- package/dist/local-host-runtime-surface.js +0 -75
- package/dist/local-host-runtime-surface.js.map +0 -1
- package/dist/local-package-graph.js +0 -405
- package/dist/local-package-graph.js.map +0 -1
- package/dist/local-package-run.js +0 -307
- package/dist/local-package-run.js.map +0 -1
- package/dist/local-runtime-bridge.js +0 -132
- package/dist/local-runtime-bridge.js.map +0 -1
- package/dist/local-runtime-source.js +0 -541
- package/dist/local-runtime-source.js.map +0 -1
- package/dist/login-callback-assets.js +0 -10
- package/dist/login-callback-assets.js.map +0 -1
- package/dist/login-callback-page.js +0 -362
- package/dist/login-callback-page.js.map +0 -1
- package/dist/mcp.js +0 -134
- package/dist/mcp.js.map +0 -1
- package/dist/mock/ensure-msw.js +0 -215
- package/dist/mock/ensure-msw.js.map +0 -1
- package/dist/mock/install-mock-fetch-shim.js +0 -36
- package/dist/mock/install-mock-fetch-shim.js.map +0 -1
- package/dist/mock/load-package-mocks.js +0 -136
- package/dist/mock/load-package-mocks.js.map +0 -1
- package/dist/mock/mock-fetch-gateway.js +0 -343
- package/dist/mock/mock-fetch-gateway.js.map +0 -1
- package/dist/mock/mock-gateway-fetch-shim.js +0 -104
- package/dist/mock/mock-gateway-fetch-shim.js.map +0 -1
- package/dist/mock/mock-server.js +0 -499
- package/dist/mock/mock-server.js.map +0 -1
- package/dist/mock/mock-storage.js +0 -186
- package/dist/mock/mock-storage.js.map +0 -1
- package/dist/mock/mock-supported.js +0 -63
- package/dist/mock/mock-supported.js.map +0 -1
- package/dist/mock-dep-resolve.js +0 -47
- package/dist/mock-dep-resolve.js.map +0 -1
- package/dist/mock-local-deps.js +0 -207
- package/dist/mock-local-deps.js.map +0 -1
- package/dist/network-error.js +0 -11
- package/dist/network-error.js.map +0 -1
- package/dist/node-engine.js +0 -21
- package/dist/node-engine.js.map +0 -1
- package/dist/oauth-provider.js +0 -107
- package/dist/oauth-provider.js.map +0 -1
- package/dist/onboarding-prompt.js +0 -15
- package/dist/onboarding-prompt.js.map +0 -1
- package/dist/open-api-client.js +0 -432
- package/dist/open-api-client.js.map +0 -1
- package/dist/open-url.js +0 -21
- package/dist/open-url.js.map +0 -1
- package/dist/org-resolve.js +0 -16
- package/dist/org-resolve.js.map +0 -1
- package/dist/org-slug.js +0 -11
- package/dist/org-slug.js.map +0 -1
- package/dist/org.js +0 -100
- package/dist/org.js.map +0 -1
- package/dist/package-app-dev.js +0 -905
- package/dist/package-app-dev.js.map +0 -1
- package/dist/package-collaborators.js +0 -179
- package/dist/package-collaborators.js.map +0 -1
- package/dist/package-info.js +0 -19
- package/dist/package-info.js.map +0 -1
- package/dist/package-local-runtime-source.js.map +0 -1
- package/dist/package-manifest.js +0 -364
- package/dist/package-manifest.js.map +0 -1
- package/dist/process-info.js +0 -14
- package/dist/process-info.js.map +0 -1
- package/dist/redact.js +0 -16
- package/dist/redact.js.map +0 -1
- package/dist/remote-execute.js +0 -108
- package/dist/remote-execute.js.map +0 -1
- package/dist/setup-git.js +0 -676
- package/dist/setup-git.js.map +0 -1
- package/dist/skill.js +0 -35
- package/dist/skill.js.map +0 -1
- package/dist/store.js +0 -597
- package/dist/store.js.map +0 -1
- package/dist/structured-error.js +0 -57
- package/dist/structured-error.js.map +0 -1
- package/dist/target.js +0 -52
- package/dist/target.js.map +0 -1
- package/dist/tool-result.js +0 -19
- package/dist/tool-result.js.map +0 -1
- package/dist/which.js +0 -22
- package/dist/which.js.map +0 -1
- package/dist/workerd-binary.js +0 -98
- package/dist/workerd-binary.js.map +0 -1
package/dist/mock/ensure-msw.js
DELETED
|
@@ -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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"}
|