@kodycodes/cli 1.26.2 → 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-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 -162
- 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 -151
- 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 -676
- 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 -922
- 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
|
@@ -1,21 +1,60 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
forwardLocalGatewayFetchStream,
|
|
4
|
+
installMockFetchShimModules,
|
|
5
|
+
startLocalRuntimeBridge
|
|
6
|
+
} from "./chunk-SXHULGL4.js";
|
|
7
|
+
import {
|
|
8
|
+
bundleLocalUserModule,
|
|
9
|
+
createRuntimeFlatAliasSource,
|
|
10
|
+
createWorkerdConfig,
|
|
11
|
+
credentialClientRuntimeSource,
|
|
12
|
+
kodyRuntimeStorageSymbolDescription,
|
|
13
|
+
localExecuteGatewayFetchShimModuleName,
|
|
14
|
+
localGatewayFetchStreamRuntimeSource,
|
|
15
|
+
localWorkerModuleNames,
|
|
16
|
+
resolveLocalPackageGraph,
|
|
17
|
+
runSecretEnvVar,
|
|
18
|
+
runSecretHeader,
|
|
19
|
+
writePackageModuleFiles
|
|
20
|
+
} from "./chunk-D55XPY3T.js";
|
|
21
|
+
import {
|
|
22
|
+
resolveMockFetchGateway,
|
|
23
|
+
tryHandleMockGatewayFetchCall
|
|
24
|
+
} from "./chunk-XOPPGRUP.js";
|
|
25
|
+
import {
|
|
26
|
+
assertTokenSafeApiUrl,
|
|
27
|
+
callCapabilityProxy
|
|
28
|
+
} from "./chunk-R4IUV5P5.js";
|
|
29
|
+
import {
|
|
30
|
+
ensureWorkerdBinary
|
|
31
|
+
} from "./chunk-BISUL7CE.js";
|
|
32
|
+
import {
|
|
33
|
+
redact
|
|
34
|
+
} from "./chunk-CASGRYOF.js";
|
|
35
|
+
import {
|
|
36
|
+
apiTokenEnvVar
|
|
37
|
+
} from "./chunk-IHP6PV6X.js";
|
|
38
|
+
|
|
39
|
+
// src/local-package-run.ts
|
|
40
|
+
import { spawn } from "node:child_process";
|
|
41
|
+
import { randomBytes } from "node:crypto";
|
|
42
|
+
import { rmSync } from "node:fs";
|
|
43
|
+
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
44
|
+
import { request as httpRequest } from "node:http";
|
|
45
|
+
import { tmpdir } from "node:os";
|
|
46
|
+
import { join } from "node:path";
|
|
47
|
+
import { setTimeout as delay } from "node:timers/promises";
|
|
48
|
+
|
|
49
|
+
// src/dev/dev-protocol.ts
|
|
50
|
+
var appLogMarker = "kody-dev-log";
|
|
51
|
+
var devRequestIdHeader = "x-kody-dev-request";
|
|
52
|
+
var devErrorHeader = "x-kody-dev-error";
|
|
53
|
+
|
|
54
|
+
// src/package-local-runtime-source.ts
|
|
55
|
+
function createPackageLocalRuntimeModuleSource(input) {
|
|
56
|
+
const ctxLiteral = JSON.stringify(input.packageContext);
|
|
57
|
+
const storageBlock = input.mockStorage ? `
|
|
19
58
|
export function packageStorage() {
|
|
20
59
|
return {
|
|
21
60
|
async get(key) {
|
|
@@ -43,8 +82,7 @@ export function packageStorage() {
|
|
|
43
82
|
},
|
|
44
83
|
};
|
|
45
84
|
}
|
|
46
|
-
`
|
|
47
|
-
: `
|
|
85
|
+
` : `
|
|
48
86
|
export function packageStorage() {
|
|
49
87
|
throw new Error(
|
|
50
88
|
'packageStorage() against --target prod requires a published package with real storage. ' +
|
|
@@ -52,12 +90,12 @@ export function packageStorage() {
|
|
|
52
90
|
);
|
|
53
91
|
}
|
|
54
92
|
`;
|
|
55
|
-
|
|
93
|
+
return `
|
|
56
94
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
57
95
|
|
|
58
96
|
${localGatewayFetchStreamRuntimeSource({
|
|
59
|
-
|
|
60
|
-
|
|
97
|
+
callUnavailableMessage: "kody:runtime is only available while a local package run is in progress."
|
|
98
|
+
})}
|
|
61
99
|
|
|
62
100
|
export const kody = __kodyNamespace(['kody']);
|
|
63
101
|
|
|
@@ -256,14 +294,11 @@ void __kodyBytesToBase64;
|
|
|
256
294
|
void __kodyBase64ToBytes;
|
|
257
295
|
`.trimStart();
|
|
258
296
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
.join('\n');
|
|
265
|
-
const sideEffectBlock = sideEffectImports ? `${sideEffectImports}\n` : '';
|
|
266
|
-
return `
|
|
297
|
+
function createPackageModuleEntrySource(input = {}) {
|
|
298
|
+
const sideEffectImports = [...new Set(input.sideEffectModules ?? [])].filter((name) => typeof name === "string" && name.trim().length > 0).map((name) => `import ${JSON.stringify(name)};`).join("\n");
|
|
299
|
+
const sideEffectBlock = sideEffectImports ? `${sideEffectImports}
|
|
300
|
+
` : "";
|
|
301
|
+
return `
|
|
267
302
|
${sideEffectBlock}import {
|
|
268
303
|
__kodyInstallLocalBridge,
|
|
269
304
|
__kodyRunInLocalRuntime,
|
|
@@ -336,26 +371,11 @@ export default {
|
|
|
336
371
|
};
|
|
337
372
|
`.trimStart();
|
|
338
373
|
}
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* workerd entry for `kody dev` apps. Beyond resolving the fetch handler it:
|
|
346
|
-
* tags every `console.*` call with the proxy's request id (written to stdout
|
|
347
|
-
* behind {@link appLogMarker} so the CLI can stream it), strips the internal
|
|
348
|
-
* run-secret / request-id headers before the app sees the request, and turns
|
|
349
|
-
* uncaught handler errors into a {@link devErrorHeader} response carrying the
|
|
350
|
-
* raw stack for the CLI to source-map.
|
|
351
|
-
*/
|
|
352
|
-
export function createPackageAppEntrySource(input = {}) {
|
|
353
|
-
const sideEffectImports = [...new Set(input.sideEffectModules ?? [])]
|
|
354
|
-
.filter((name) => typeof name === 'string' && name.trim().length > 0)
|
|
355
|
-
.map((name) => `import ${JSON.stringify(name)};`)
|
|
356
|
-
.join('\n');
|
|
357
|
-
const sideEffectBlock = sideEffectImports ? `${sideEffectImports}\n` : '';
|
|
358
|
-
return `
|
|
374
|
+
function createPackageAppEntrySource(input = {}) {
|
|
375
|
+
const sideEffectImports = [...new Set(input.sideEffectModules ?? [])].filter((name) => typeof name === "string" && name.trim().length > 0).map((name) => `import ${JSON.stringify(name)};`).join("\n");
|
|
376
|
+
const sideEffectBlock = sideEffectImports ? `${sideEffectImports}
|
|
377
|
+
` : "";
|
|
378
|
+
return `
|
|
359
379
|
${sideEffectBlock}import { AsyncLocalStorage } from 'node:async_hooks';
|
|
360
380
|
import { formatWithOptions } from 'node:util';
|
|
361
381
|
import {
|
|
@@ -468,4 +488,305 @@ export default {
|
|
|
468
488
|
};
|
|
469
489
|
`.trimStart();
|
|
470
490
|
}
|
|
471
|
-
|
|
491
|
+
|
|
492
|
+
// src/local-package-run.ts
|
|
493
|
+
var workerdStartTimeoutMs = 3e4;
|
|
494
|
+
var workerdExitGraceMs = 1e3;
|
|
495
|
+
async function runLocalPackageModule(input) {
|
|
496
|
+
assertTokenSafeApiUrl(input.apiUrl);
|
|
497
|
+
input.onStatus?.(`Bundling ${input.modulePath}\u2026`);
|
|
498
|
+
const code = await bundleLocalUserModule(input.modulePath);
|
|
499
|
+
const client = {
|
|
500
|
+
apiUrl: input.apiUrl,
|
|
501
|
+
token: input.token,
|
|
502
|
+
fetchFn: input.fetchFn,
|
|
503
|
+
...input.org ? { org: input.org } : {}
|
|
504
|
+
};
|
|
505
|
+
const workerdPath = input.workerdPath ?? await ensureWorkerdBinary({
|
|
506
|
+
onDownload: (url) => input.onStatus?.(`Downloading workerd from ${url}\u2026`)
|
|
507
|
+
});
|
|
508
|
+
const runSecret = randomBytes(32).toString("hex");
|
|
509
|
+
const workDir = await mkdtemp(join(tmpdir(), "kody-pkg-"));
|
|
510
|
+
let child;
|
|
511
|
+
let bridge;
|
|
512
|
+
const stopWorkerd = () => child?.kill("SIGKILL");
|
|
513
|
+
const releaseSignals = cleanupOnSignal(() => {
|
|
514
|
+
stopWorkerd();
|
|
515
|
+
rmSync(workDir, { recursive: true, force: true });
|
|
516
|
+
});
|
|
517
|
+
const startedAt = /* @__PURE__ */ new Date();
|
|
518
|
+
const finish = (sandbox) => {
|
|
519
|
+
const endedAt = /* @__PURE__ */ new Date();
|
|
520
|
+
const logs = sandbox.logs ?? [];
|
|
521
|
+
const base = {
|
|
522
|
+
timing: {
|
|
523
|
+
startedAt: startedAt.toISOString(),
|
|
524
|
+
endedAt: endedAt.toISOString(),
|
|
525
|
+
durationMs: endedAt.getTime() - startedAt.getTime()
|
|
526
|
+
},
|
|
527
|
+
target: input.target
|
|
528
|
+
};
|
|
529
|
+
if (typeof sandbox.error === "string") {
|
|
530
|
+
return {
|
|
531
|
+
content: [{ type: "text", text: `Error: ${sandbox.error}` }],
|
|
532
|
+
structuredContent: { ...base, returnedBytes: 0, error: sandbox.error, logs },
|
|
533
|
+
isError: true
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
const text = typeof sandbox.result === "string" ? sandbox.result : JSON.stringify(sandbox.result, null, 2) ?? "undefined";
|
|
537
|
+
const serialized = typeof sandbox.result === "string" ? sandbox.result : JSON.stringify(sandbox.result) ?? "undefined";
|
|
538
|
+
return {
|
|
539
|
+
content: [{ type: "text", text }],
|
|
540
|
+
structuredContent: {
|
|
541
|
+
...base,
|
|
542
|
+
returnedBytes: Buffer.byteLength(serialized),
|
|
543
|
+
result: sandbox.result,
|
|
544
|
+
logs
|
|
545
|
+
},
|
|
546
|
+
isError: false
|
|
547
|
+
};
|
|
548
|
+
};
|
|
549
|
+
try {
|
|
550
|
+
const mockFetchGateway = await resolveMockFetchGateway({
|
|
551
|
+
target: input.target,
|
|
552
|
+
packageRoot: input.packageRoot,
|
|
553
|
+
passthroughHosts: input.passthroughHosts,
|
|
554
|
+
allowPrivateNetwork: input.allowPrivateNetwork,
|
|
555
|
+
onStatus: input.onStatus
|
|
556
|
+
});
|
|
557
|
+
const packageGraph = await resolveLocalPackageGraph({
|
|
558
|
+
...client,
|
|
559
|
+
code,
|
|
560
|
+
...input.depResolve ? { depResolve: input.depResolve } : {},
|
|
561
|
+
...input.packageRoot ? { packageRoot: input.packageRoot } : {},
|
|
562
|
+
onStatus: input.onStatus
|
|
563
|
+
});
|
|
564
|
+
bridge = await startLocalRuntimeBridge({
|
|
565
|
+
runSecret,
|
|
566
|
+
forwardCall: async (call, signal) => {
|
|
567
|
+
const mocked = tryHandleMockGatewayFetchCall({
|
|
568
|
+
gateway: mockFetchGateway,
|
|
569
|
+
path: call.path,
|
|
570
|
+
args: call.args,
|
|
571
|
+
signal
|
|
572
|
+
});
|
|
573
|
+
if (mocked) return await mocked;
|
|
574
|
+
return await callCapabilityProxy({
|
|
575
|
+
...client,
|
|
576
|
+
...call,
|
|
577
|
+
signal
|
|
578
|
+
});
|
|
579
|
+
},
|
|
580
|
+
forwardGatewayFetchStream: async ({ request, response: response2, signal }) => {
|
|
581
|
+
await forwardLocalGatewayFetchStream({
|
|
582
|
+
request,
|
|
583
|
+
response: response2,
|
|
584
|
+
signal,
|
|
585
|
+
client,
|
|
586
|
+
...mockFetchGateway ? { mockFetchGateway } : {}
|
|
587
|
+
});
|
|
588
|
+
}
|
|
589
|
+
});
|
|
590
|
+
const files = { entry: "entry.js", user: "main.js", runtime: "runtime.js" };
|
|
591
|
+
let packageModules = await writePackageModuleFiles(
|
|
592
|
+
workDir,
|
|
593
|
+
packageGraph,
|
|
594
|
+
writeFile,
|
|
595
|
+
join
|
|
596
|
+
);
|
|
597
|
+
let gatewayFetchShimModules = packageGraph.modules.map((module) => module.name).filter((name) => name === localExecuteGatewayFetchShimModuleName);
|
|
598
|
+
if (mockFetchGateway) {
|
|
599
|
+
const installed = await installMockFetchShimModules({
|
|
600
|
+
workDir,
|
|
601
|
+
packageModules
|
|
602
|
+
});
|
|
603
|
+
packageModules = installed.packageModules;
|
|
604
|
+
gatewayFetchShimModules = installed.sideEffectModules;
|
|
605
|
+
}
|
|
606
|
+
await writeFile(
|
|
607
|
+
join(workDir, files.entry),
|
|
608
|
+
createPackageModuleEntrySource({ sideEffectModules: gatewayFetchShimModules })
|
|
609
|
+
);
|
|
610
|
+
await writeFile(join(workDir, files.user), code);
|
|
611
|
+
await writeFile(
|
|
612
|
+
join(workDir, files.runtime),
|
|
613
|
+
createPackageLocalRuntimeModuleSource({
|
|
614
|
+
packageContext: input.packageContext,
|
|
615
|
+
mockStorage: input.target === "mock"
|
|
616
|
+
})
|
|
617
|
+
);
|
|
618
|
+
await writeFile(
|
|
619
|
+
join(workDir, localWorkerModuleNames.runtimeFlatAlias),
|
|
620
|
+
createRuntimeFlatAliasSource()
|
|
621
|
+
);
|
|
622
|
+
const configPath = join(workDir, "config.capnp");
|
|
623
|
+
await writeFile(
|
|
624
|
+
configPath,
|
|
625
|
+
createWorkerdConfig({
|
|
626
|
+
bridgePort: bridge.port,
|
|
627
|
+
files,
|
|
628
|
+
packageModules,
|
|
629
|
+
allowPrivateNetwork: input.allowPrivateNetwork
|
|
630
|
+
})
|
|
631
|
+
);
|
|
632
|
+
const env = { ...process.env, [runSecretEnvVar]: runSecret };
|
|
633
|
+
delete env[apiTokenEnvVar];
|
|
634
|
+
child = spawn(workerdPath, ["serve", configPath, "--control-fd=3"], {
|
|
635
|
+
cwd: workDir,
|
|
636
|
+
env,
|
|
637
|
+
stdio: ["ignore", "pipe", "pipe", "pipe"]
|
|
638
|
+
});
|
|
639
|
+
const workerd = watchWorkerd(child);
|
|
640
|
+
const started = await workerd.listening;
|
|
641
|
+
if ("exitDetail" in started) {
|
|
642
|
+
return finish({
|
|
643
|
+
error: `Local package run could not load the module${started.exitDetail}`
|
|
644
|
+
});
|
|
645
|
+
}
|
|
646
|
+
let response;
|
|
647
|
+
try {
|
|
648
|
+
response = await postToWorkerd({
|
|
649
|
+
port: started.port,
|
|
650
|
+
runSecret,
|
|
651
|
+
body: JSON.stringify({ params: input.params ?? {} })
|
|
652
|
+
});
|
|
653
|
+
} catch (error) {
|
|
654
|
+
const exitDetail = await Promise.race([workerd.exited, delay(workerdExitGraceMs, null)]);
|
|
655
|
+
if (exitDetail !== null) throw new Error(`workerd exited during the run${exitDetail}`);
|
|
656
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
657
|
+
throw new Error(`Local package run failed (${reason}).${workerd.stderr()}`);
|
|
658
|
+
}
|
|
659
|
+
if (response.status !== 200) {
|
|
660
|
+
throw new Error(
|
|
661
|
+
`Local package runtime returned HTTP ${response.status}.${workerd.stderr()}`
|
|
662
|
+
);
|
|
663
|
+
}
|
|
664
|
+
return finish(JSON.parse(response.body));
|
|
665
|
+
} finally {
|
|
666
|
+
releaseSignals();
|
|
667
|
+
stopWorkerd();
|
|
668
|
+
await bridge?.close();
|
|
669
|
+
await rm(workDir, { recursive: true, force: true });
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
function buildLocalPackageContext(input) {
|
|
673
|
+
const appBasePath = input.appBasePath ?? "";
|
|
674
|
+
return {
|
|
675
|
+
packageId: input.packageId ?? `local:${input.kodyId}`,
|
|
676
|
+
kodyId: input.kodyId,
|
|
677
|
+
sourceId: `local:${input.kodyId}`,
|
|
678
|
+
publishedCommit: null,
|
|
679
|
+
appBasePath,
|
|
680
|
+
hostedUrl: input.hostedUrl.replace(/\/+$/, ""),
|
|
681
|
+
assetBasePath: appBasePath ? `${appBasePath}/_assets` : "/_assets",
|
|
682
|
+
clientModuleUrl: input.clientModuleUrl ?? null
|
|
683
|
+
};
|
|
684
|
+
}
|
|
685
|
+
function cleanupOnSignal(cleanup) {
|
|
686
|
+
const signals = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
687
|
+
const release = () => {
|
|
688
|
+
for (const signal of signals) process.off(signal, handler);
|
|
689
|
+
};
|
|
690
|
+
const handler = (signal) => {
|
|
691
|
+
release();
|
|
692
|
+
cleanup();
|
|
693
|
+
process.kill(process.pid, signal);
|
|
694
|
+
};
|
|
695
|
+
for (const signal of signals) process.once(signal, handler);
|
|
696
|
+
return release;
|
|
697
|
+
}
|
|
698
|
+
function watchWorkerd(child) {
|
|
699
|
+
let stderrText = "";
|
|
700
|
+
child.stderr?.on("data", (chunk) => {
|
|
701
|
+
stderrText += chunk.toString("utf8");
|
|
702
|
+
});
|
|
703
|
+
child.stdout?.resume();
|
|
704
|
+
const stderr = () => {
|
|
705
|
+
const trimmed = redact(stderrText.trim());
|
|
706
|
+
return trimmed ? `
|
|
707
|
+
${trimmed}` : "";
|
|
708
|
+
};
|
|
709
|
+
const exited = new Promise((resolve) => {
|
|
710
|
+
child.once("exit", (code, signal) => {
|
|
711
|
+
resolve(` (workerd exit ${signal ?? code})${stderr()}`);
|
|
712
|
+
});
|
|
713
|
+
});
|
|
714
|
+
const listening = new Promise((resolve, reject) => {
|
|
715
|
+
const control = child.stdio[3];
|
|
716
|
+
let buffered = "";
|
|
717
|
+
const timer = setTimeout(() => {
|
|
718
|
+
reject(new Error(`workerd did not start within ${workerdStartTimeoutMs / 1e3}s.${stderr()}`));
|
|
719
|
+
}, workerdStartTimeoutMs);
|
|
720
|
+
control?.on("data", (chunk) => {
|
|
721
|
+
buffered += chunk.toString("utf8");
|
|
722
|
+
for (const line of buffered.split("\n")) {
|
|
723
|
+
const port = parseListenPort(line);
|
|
724
|
+
if (port !== null) {
|
|
725
|
+
clearTimeout(timer);
|
|
726
|
+
resolve({ port });
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
});
|
|
730
|
+
child.once("error", (error) => {
|
|
731
|
+
clearTimeout(timer);
|
|
732
|
+
reject(new Error(`Could not start workerd: ${error.message}`));
|
|
733
|
+
});
|
|
734
|
+
void exited.then((exitDetail) => {
|
|
735
|
+
clearTimeout(timer);
|
|
736
|
+
resolve({ exitDetail });
|
|
737
|
+
});
|
|
738
|
+
});
|
|
739
|
+
return { listening, exited, stderr };
|
|
740
|
+
}
|
|
741
|
+
function parseListenPort(line) {
|
|
742
|
+
if (!line.trim()) return null;
|
|
743
|
+
try {
|
|
744
|
+
const event = JSON.parse(line);
|
|
745
|
+
return event.event === "listen" && event.socket === "http" && typeof event.port === "number" ? event.port : null;
|
|
746
|
+
} catch {
|
|
747
|
+
return null;
|
|
748
|
+
}
|
|
749
|
+
}
|
|
750
|
+
function postToWorkerd(input) {
|
|
751
|
+
return new Promise((resolve, reject) => {
|
|
752
|
+
const request = httpRequest(
|
|
753
|
+
{
|
|
754
|
+
host: "127.0.0.1",
|
|
755
|
+
port: input.port,
|
|
756
|
+
method: "POST",
|
|
757
|
+
path: "/",
|
|
758
|
+
headers: {
|
|
759
|
+
"content-type": "application/json",
|
|
760
|
+
"content-length": Buffer.byteLength(input.body),
|
|
761
|
+
[runSecretHeader]: input.runSecret
|
|
762
|
+
}
|
|
763
|
+
},
|
|
764
|
+
(response) => {
|
|
765
|
+
readBody(response).then(
|
|
766
|
+
(body) => resolve({ status: response.statusCode ?? 0, body }),
|
|
767
|
+
reject
|
|
768
|
+
);
|
|
769
|
+
}
|
|
770
|
+
);
|
|
771
|
+
request.on("error", reject);
|
|
772
|
+
request.end(input.body);
|
|
773
|
+
});
|
|
774
|
+
}
|
|
775
|
+
async function readBody(stream) {
|
|
776
|
+
const chunks = [];
|
|
777
|
+
for await (const chunk of stream) {
|
|
778
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
779
|
+
}
|
|
780
|
+
return Buffer.concat(chunks).toString("utf8");
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
export {
|
|
784
|
+
appLogMarker,
|
|
785
|
+
devRequestIdHeader,
|
|
786
|
+
devErrorHeader,
|
|
787
|
+
createPackageLocalRuntimeModuleSource,
|
|
788
|
+
createPackageAppEntrySource,
|
|
789
|
+
runLocalPackageModule,
|
|
790
|
+
buildLocalPackageContext
|
|
791
|
+
};
|
|
792
|
+
//# sourceMappingURL=chunk-64XN367G.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/local-package-run.ts", "../src/dev/dev-protocol.ts", "../src/package-local-runtime-source.ts"],
|
|
4
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,SAAS,aAAgC;AACzC,SAAS,mBAAmB;AAC5B,SAAS,cAAc;AACvB,SAAS,SAAS,IAAI,iBAAiB;AACvC,SAAS,WAAW,mBAAyC;AAC7D,SAAS,cAAc;AACvB,SAAS,YAAY;AAErB,SAAS,cAAc,aAAa;;;ACJ7B,IAAM,eAAe;AAGrB,IAAM,qBAAqB;AAG3B,IAAM,iBAAiB;;;AC2BvB,SAAS,sCAAsC,OAI3C;AACV,QAAM,aAAa,KAAK,UAAU,MAAM,cAAc;AACtD,QAAM,eAAe,MAAM,cACxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IA6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASH,SAAO;AAAA;AAAA;AAAA,EAGN,qCAAqC;AAAA,IACtC,wBACC;AAAA,EACF,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8CAYgC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAyItD,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAOiB,KAAK,UAAU,mCAAmC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgCjG,UAAU;AACZ;AAGO,SAAS,+BACf,QAAuD,CAAC,GAC/C;AACT,QAAM,oBAAoB,CAAC,GAAG,IAAI,IAAI,MAAM,qBAAqB,CAAC,CAAC,CAAC,EAClE,OAAO,CAAC,SAAS,OAAO,SAAS,YAAY,KAAK,KAAK,EAAE,SAAS,CAAC,EACnE,IAAI,CAAC,SAAS,UAAU,KAAK,UAAU,IAAI,CAAC,GAAG,EAC/C,KAAK,IAAI;AACX,QAAM,kBAAkB,oBAAoB,GAAG,iBAAiB;AAAA,IAAO;AACvE,SAAO;AAAA,EACN,eAAe;AAAA;AAAA;AAAA,SAGR,KAAK,UAAU,uBAAuB,OAAO,CAAC;AAAA;AAAA,gCAEvB,KAAK,UAAU,eAAe,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBASxC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kCAuCJ,KAAK,UAAU,KAAK,uBAAuB,IAAI,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBlF,UAAU;AACZ;AAeO,SAAS,4BACf,QAAuD,CAAC,GAC/C;AACT,QAAM,oBAAoB,CAAC,GAAG,IAAI,IAAI,MAAM,qBAAqB,CAAC,CAAC,CAAC,EAClE,OAAO,CAAC,SAAS,OAAO,SAAS,YAAY,KAAK,KAAK,EAAE,SAAS,CAAC,EACnE,IAAI,CAAC,SAAS,UAAU,KAAK,UAAU,IAAI,CAAC,GAAG,EAC/C,KAAK,IAAI;AACX,QAAM,kBAAkB,oBAAoB,GAAG,iBAAiB;AAAA,IAAO;AACvE,SAAO;AAAA,EACN,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,SAKR,KAAK,UAAU,uBAAuB,OAAO,CAAC;AAAA;AAAA,gCAEvB,KAAK,UAAU,eAAe,CAAC;AAAA,gCAC/B,KAAK,UAAU,kBAAkB,CAAC;AAAA,+BACnC,KAAK,UAAU,cAAc,CAAC;AAAA,0BACnC,KAAK,UAAU,YAAY,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAiD/B,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAyCH,KAAK,UAAU,KAAK,uBAAuB,IAAI,EAAE,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUnF,UAAU;AACZ;;;AFvaA,IAAM,wBAAwB;AAC9B,IAAM,qBAAqB;AAE3B,eAAsB,sBACrB,OAC0B;AAC1B,wBAAsB,MAAM,MAAM;AAClC,QAAM,WAAW,YAAY,MAAM,UAAU,QAAG;AAChD,QAAM,OAAO,MAAM,sBAAsB,MAAM,UAAU;AACzD,QAAM,SAAS;AAAA,IACd,QAAQ,MAAM;AAAA,IACd,OAAO,MAAM;AAAA,IACb,SAAS,MAAM;AAAA,IACf,GAAI,MAAM,MAAM,EAAE,KAAK,MAAM,IAAI,IAAI,CAAC;AAAA,EACvC;AAEA,QAAM,cACL,MAAM,eACL,MAAM,oBAAoB;AAAA,IAC1B,YAAY,CAAC,QAAQ,MAAM,WAAW,4BAA4B,GAAG,QAAG;AAAA,EACzE,CAAC;AAEF,QAAM,YAAY,YAAY,EAAE,EAAE,SAAS,KAAK;AAChD,QAAM,UAAU,MAAM,QAAQ,KAAK,OAAO,GAAG,WAAW,CAAC;AACzD,MAAI;AACJ,MAAI;AACJ,QAAM,cAAc,MAAM,OAAO,KAAK,SAAS;AAC/C,QAAM,iBAAiB,gBAAgB,MAAM;AAC5C,gBAAY;AACZ,WAAO,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACjD,CAAC;AACD,QAAM,YAAY,oBAAI,KAAK;AAC3B,QAAM,SAAS,CAAC,YAA6C;AAC5D,UAAM,UAAU,oBAAI,KAAK;AACzB,UAAM,OAAO,QAAQ,QAAQ,CAAC;AAC9B,UAAM,OAAO;AAAA,MACZ,QAAQ;AAAA,QACP,WAAW,UAAU,YAAY;AAAA,QACjC,SAAS,QAAQ,YAAY;AAAA,QAC7B,YAAY,QAAQ,QAAQ,IAAI,UAAU,QAAQ;AAAA,MACnD;AAAA,MACA,QAAQ,MAAM;AAAA,IACf;AACA,QAAI,OAAO,QAAQ,UAAU,UAAU;AACtC,aAAO;AAAA,QACN,SAAS,CAAC,EAAE,MAAM,QAAQ,MAAM,UAAU,QAAQ,KAAK,GAAG,CAAC;AAAA,QAC3D,mBAAmB,EAAE,GAAG,MAAM,eAAe,GAAG,OAAO,QAAQ,OAAO,KAAK;AAAA,QAC3E,SAAS;AAAA,MACV;AAAA,IACD;AACA,UAAM,OACL,OAAO,QAAQ,WAAW,WACvB,QAAQ,SACP,KAAK,UAAU,QAAQ,QAAQ,MAAM,CAAC,KAAK;AAChD,UAAM,aACL,OAAO,QAAQ,WAAW,WACvB,QAAQ,SACP,KAAK,UAAU,QAAQ,MAAM,KAAK;AACvC,WAAO;AAAA,MACN,SAAS,CAAC,EAAE,MAAM,QAAQ,KAAK,CAAC;AAAA,MAChC,mBAAmB;AAAA,QAClB,GAAG;AAAA,QACH,eAAe,OAAO,WAAW,UAAU;AAAA,QAC3C,QAAQ,QAAQ;AAAA,QAChB;AAAA,MACD;AAAA,MACA,SAAS;AAAA,IACV;AAAA,EACD;AAEA,MAAI;AACH,UAAM,mBAAmB,MAAM,wBAAwB;AAAA,MACtD,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB,kBAAkB,MAAM;AAAA,MACxB,qBAAqB,MAAM;AAAA,MAC3B,UAAU,MAAM;AAAA,IACjB,CAAC;AACD,UAAM,eAAe,MAAM,yBAAyB;AAAA,MACnD,GAAG;AAAA,MACH;AAAA,MACA,GAAI,MAAM,aAAa,EAAE,YAAY,MAAM,WAAW,IAAI,CAAC;AAAA,MAC3D,GAAI,MAAM,cAAc,EAAE,aAAa,MAAM,YAAY,IAAI,CAAC;AAAA,MAC9D,UAAU,MAAM;AAAA,IACjB,CAAC;AACD,aAAS,MAAM,wBAAwB;AAAA,MACtC;AAAA,MACA,aAAa,OAAO,MAAM,WAAW;AACpC,cAAM,SAAS,8BAA8B;AAAA,UAC5C,SAAS;AAAA,UACT,MAAM,KAAK;AAAA,UACX,MAAM,KAAK;AAAA,UACX;AAAA,QACD,CAAC;AACD,YAAI,OAAQ,QAAO,MAAM;AACzB,eAAO,MAAM,oBAAoB;AAAA,UAChC,GAAG;AAAA,UACH,GAAG;AAAA,UACH;AAAA,QACD,CAAC;AAAA,MACF;AAAA,MACA,2BAA2B,OAAO,EAAE,SAAS,UAAAA,WAAU,OAAO,MAAM;AACnE,cAAM,+BAA+B;AAAA,UACpC;AAAA,UACA,UAAAA;AAAA,UACA;AAAA,UACA;AAAA,UACA,GAAI,mBAAmB,EAAE,iBAAiB,IAAI,CAAC;AAAA,QAChD,CAAC;AAAA,MACF;AAAA,IACD,CAAC;AACD,UAAM,QAAQ,EAAE,OAAO,YAAY,MAAM,WAAW,SAAS,aAAa;AAC1E,QAAI,iBAAiB,MAAM;AAAA,MAC1B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AACA,QAAI,0BAAyC,aAAa,QACxD,IAAI,CAAC,WAAW,OAAO,IAAI,EAC3B,OAAO,CAAC,SAAS,SAAS,sCAAsC;AAClE,QAAI,kBAAkB;AACrB,YAAM,YAAY,MAAM,4BAA4B;AAAA,QACnD;AAAA,QACA;AAAA,MACD,CAAC;AACD,uBAAiB,UAAU;AAC3B,gCAA0B,UAAU;AAAA,IACrC;AACA,UAAM;AAAA,MACL,KAAK,SAAS,MAAM,KAAK;AAAA,MACzB,+BAA+B,EAAE,mBAAmB,wBAAwB,CAAC;AAAA,IAC9E;AACA,UAAM,UAAU,KAAK,SAAS,MAAM,IAAI,GAAG,IAAI;AAC/C,UAAM;AAAA,MACL,KAAK,SAAS,MAAM,OAAO;AAAA,MAC3B,sCAAsC;AAAA,QACrC,gBAAgB,MAAM;AAAA,QACtB,aAAa,MAAM,WAAW;AAAA,MAC/B,CAAC;AAAA,IACF;AACA,UAAM;AAAA,MACL,KAAK,SAAS,uBAAuB,gBAAgB;AAAA,MACrD,6BAA6B;AAAA,IAC9B;AACA,UAAM,aAAa,KAAK,SAAS,cAAc;AAC/C,UAAM;AAAA,MACL;AAAA,MACA,oBAAoB;AAAA,QACnB,YAAY,OAAO;AAAA,QACnB;AAAA,QACA;AAAA,QACA,qBAAqB,MAAM;AAAA,MAC5B,CAAC;AAAA,IACF;AAEA,UAAM,MAAyB,EAAE,GAAG,QAAQ,KAAK,CAAC,eAAe,GAAG,UAAU;AAC9E,WAAO,IAAI,cAAc;AACzB,YAAQ,MAAM,aAAa,CAAC,SAAS,YAAY,gBAAgB,GAAG;AAAA,MACnE,KAAK;AAAA,MACL;AAAA,MACA,OAAO,CAAC,UAAU,QAAQ,QAAQ,MAAM;AAAA,IACzC,CAAC;AACD,UAAM,UAAU,aAAa,KAAK;AAClC,UAAM,UAAU,MAAM,QAAQ;AAC9B,QAAI,gBAAgB,SAAS;AAC5B,aAAO,OAAO;AAAA,QACb,OAAO,8CAA8C,QAAQ,UAAU;AAAA,MACxE,CAAC;AAAA,IACF;AACA,QAAI;AACJ,QAAI;AACH,iBAAW,MAAM,cAAc;AAAA,QAC9B,MAAM,QAAQ;AAAA,QACd;AAAA,QACA,MAAM,KAAK,UAAU,EAAE,QAAQ,MAAM,UAAU,CAAC,EAAE,CAAC;AAAA,MACpD,CAAC;AAAA,IACF,SAAS,OAAO;AACf,YAAM,aAAa,MAAM,QAAQ,KAAK,CAAC,QAAQ,QAAQ,MAAM,oBAAoB,IAAI,CAAC,CAAC;AACvF,UAAI,eAAe,KAAM,OAAM,IAAI,MAAM,gCAAgC,UAAU,EAAE;AACrF,YAAM,SAAS,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACpE,YAAM,IAAI,MAAM,6BAA6B,MAAM,KAAK,QAAQ,OAAO,CAAC,EAAE;AAAA,IAC3E;AACA,QAAI,SAAS,WAAW,KAAK;AAC5B,YAAM,IAAI;AAAA,QACT,uCAAuC,SAAS,MAAM,IAAI,QAAQ,OAAO,CAAC;AAAA,MAC3E;AAAA,IACD;AACA,WAAO,OAAO,KAAK,MAAM,SAAS,IAAI,CAAoB;AAAA,EAC3D,UAAE;AACD,mBAAe;AACf,gBAAY;AACZ,UAAM,QAAQ,MAAM;AACpB,UAAM,GAAG,SAAS,EAAE,WAAW,MAAM,OAAO,KAAK,CAAC;AAAA,EACnD;AACD;AAGO,SAAS,yBAAyB,OAMjB;AACvB,QAAM,cAAc,MAAM,eAAe;AACzC,SAAO;AAAA,IACN,WAAW,MAAM,aAAa,SAAS,MAAM,MAAM;AAAA,IACnD,QAAQ,MAAM;AAAA,IACd,UAAU,SAAS,MAAM,MAAM;AAAA,IAC/B,iBAAiB;AAAA,IACjB;AAAA,IACA,WAAW,MAAM,UAAU,QAAQ,QAAQ,EAAE;AAAA,IAC7C,eAAe,cAAc,GAAG,WAAW,aAAa;AAAA,IACxD,iBAAiB,MAAM,mBAAmB;AAAA,EAC3C;AACD;AAEA,SAAS,gBAAgB,SAAiC;AACzD,QAAM,UAAiC,CAAC,UAAU,WAAW,QAAQ;AACrE,QAAM,UAAU,MAAM;AACrB,eAAW,UAAU,QAAS,SAAQ,IAAI,QAAQ,OAAO;AAAA,EAC1D;AACA,QAAM,UAAU,CAAC,WAA2B;AAC3C,YAAQ;AACR,YAAQ;AACR,YAAQ,KAAK,QAAQ,KAAK,MAAM;AAAA,EACjC;AACA,aAAW,UAAU,QAAS,SAAQ,KAAK,QAAQ,OAAO;AAC1D,SAAO;AACR;AAEA,SAAS,aAAa,OAAqB;AAC1C,MAAI,aAAa;AACjB,QAAM,QAAQ,GAAG,QAAQ,CAAC,UAAkB;AAC3C,kBAAc,MAAM,SAAS,MAAM;AAAA,EACpC,CAAC;AACD,QAAM,QAAQ,OAAO;AACrB,QAAM,SAAS,MAAM;AACpB,UAAM,UAAU,OAAO,WAAW,KAAK,CAAC;AACxC,WAAO,UAAU;AAAA,EAAK,OAAO,KAAK;AAAA,EACnC;AACA,QAAM,SAAS,IAAI,QAAgB,CAAC,YAAY;AAC/C,UAAM,KAAK,QAAQ,CAAC,MAAM,WAAW;AACpC,cAAQ,kBAAkB,UAAU,IAAI,IAAI,OAAO,CAAC,EAAE;AAAA,IACvD,CAAC;AAAA,EACF,CAAC;AACD,QAAM,YAAY,IAAI,QAAmD,CAAC,SAAS,WAAW;AAC7F,UAAM,UAAU,MAAM,MAAM,CAAC;AAC7B,QAAI,WAAW;AACf,UAAM,QAAQ,WAAW,MAAM;AAC9B,aAAO,IAAI,MAAM,gCAAgC,wBAAwB,GAAI,KAAK,OAAO,CAAC,EAAE,CAAC;AAAA,IAC9F,GAAG,qBAAqB;AACxB,aAAS,GAAG,QAAQ,CAAC,UAAkB;AACtC,kBAAY,MAAM,SAAS,MAAM;AACjC,iBAAW,QAAQ,SAAS,MAAM,IAAI,GAAG;AACxC,cAAM,OAAO,gBAAgB,IAAI;AACjC,YAAI,SAAS,MAAM;AAClB,uBAAa,KAAK;AAClB,kBAAQ,EAAE,KAAK,CAAC;AAAA,QACjB;AAAA,MACD;AAAA,IACD,CAAC;AACD,UAAM,KAAK,SAAS,CAAC,UAAU;AAC9B,mBAAa,KAAK;AAClB,aAAO,IAAI,MAAM,4BAA4B,MAAM,OAAO,EAAE,CAAC;AAAA,IAC9D,CAAC;AACD,SAAK,OAAO,KAAK,CAAC,eAAe;AAChC,mBAAa,KAAK;AAClB,cAAQ,EAAE,WAAW,CAAC;AAAA,IACvB,CAAC;AAAA,EACF,CAAC;AACD,SAAO,EAAE,WAAW,QAAQ,OAAO;AACpC;AAEA,SAAS,gBAAgB,MAA6B;AACrD,MAAI,CAAC,KAAK,KAAK,EAAG,QAAO;AACzB,MAAI;AACH,UAAM,QAAQ,KAAK,MAAM,IAAI;AAC7B,WAAO,MAAM,UAAU,YAAY,MAAM,WAAW,UAAU,OAAO,MAAM,SAAS,WACjF,MAAM,OACN;AAAA,EACJ,QAAQ;AACP,WAAO;AAAA,EACR;AACD;AAEA,SAAS,cAAc,OAIuB;AAC7C,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,UAAM,UAAU;AAAA,MACf;AAAA,QACC,MAAM;AAAA,QACN,MAAM,MAAM;AAAA,QACZ,QAAQ;AAAA,QACR,MAAM;AAAA,QACN,SAAS;AAAA,UACR,gBAAgB;AAAA,UAChB,kBAAkB,OAAO,WAAW,MAAM,IAAI;AAAA,UAC9C,CAAC,eAAe,GAAG,MAAM;AAAA,QAC1B;AAAA,MACD;AAAA,MACA,CAAC,aAAa;AACb,iBAAS,QAAQ,EAAE;AAAA,UAClB,CAAC,SAAS,QAAQ,EAAE,QAAQ,SAAS,cAAc,GAAG,KAAK,CAAC;AAAA,UAC5D;AAAA,QACD;AAAA,MACD;AAAA,IACD;AACA,YAAQ,GAAG,SAAS,MAAM;AAC1B,YAAQ,IAAI,MAAM,IAAI;AAAA,EACvB,CAAC;AACF;AAEA,eAAe,SAAS,QAA0C;AACjE,QAAM,SAAwB,CAAC;AAC/B,mBAAiB,SAAS,QAAQ;AACjC,WAAO,KAAK,OAAO,SAAS,KAAK,IAAI,QAAQ,OAAO,KAAK,KAAK,CAAC;AAAA,EAChE;AACA,SAAO,OAAO,OAAO,MAAM,EAAE,SAAS,MAAM;AAC7C;",
|
|
5
|
+
"names": ["response"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/which.ts
|
|
4
|
+
import { accessSync, constants } from "node:fs";
|
|
5
|
+
import { delimiter, join } from "node:path";
|
|
6
|
+
function which(command, env = process.env) {
|
|
7
|
+
const pathValue = env.PATH ?? env.Path;
|
|
8
|
+
if (!pathValue) return void 0;
|
|
9
|
+
const extensions = process.platform === "win32" ? (env.PATHEXT ?? ".EXE;.CMD;.BAT;.COM").split(";") : [""];
|
|
10
|
+
for (const directory of pathValue.split(delimiter)) {
|
|
11
|
+
for (const extension of extensions) {
|
|
12
|
+
const candidate = join(directory, `${command}${extension}`);
|
|
13
|
+
try {
|
|
14
|
+
accessSync(candidate, constants.X_OK);
|
|
15
|
+
return candidate;
|
|
16
|
+
} catch {
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return void 0;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export {
|
|
24
|
+
which
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=chunk-6XQP5SWX.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/which.ts"],
|
|
4
|
+
"mappings": ";;;AAAA,SAAS,YAAY,iBAAiB;AACtC,SAAS,WAAW,YAAY;AAEzB,SAAS,MAAM,SAAiB,MAAyB,QAAQ,KAAyB;AAChG,QAAM,YAAY,IAAI,QAAQ,IAAI;AAClC,MAAI,CAAC,UAAW,QAAO;AACvB,QAAM,aACL,QAAQ,aAAa,WAAW,IAAI,WAAW,uBAAuB,MAAM,GAAG,IAAI,CAAC,EAAE;AACvF,aAAW,aAAa,UAAU,MAAM,SAAS,GAAG;AACnD,eAAW,aAAa,YAAY;AACnC,YAAM,YAAY,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,EAAE;AAC1D,UAAI;AACH,mBAAW,WAAW,UAAU,IAAI;AACpC,eAAO;AAAA,MACR,QAAQ;AAAA,MAER;AAAA,IACD;AAAA,EACD;AACA,SAAO;AACR;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { createRequire as __createRequire } from 'node:module'; const require = __createRequire(import.meta.url);
|
|
2
|
+
|
|
3
|
+
// src/invoke-passthrough.ts
|
|
4
|
+
var invokeLocalName = "action";
|
|
5
|
+
function parseExecuteInvokeSpecifier(raw) {
|
|
6
|
+
const trimmed = raw.trim();
|
|
7
|
+
if (!trimmed) {
|
|
8
|
+
throw new Error(
|
|
9
|
+
"Unsupported execute invoke specifier. Use a kody:@scope/package/export (or @scope/package#export) package import, not a URL."
|
|
10
|
+
);
|
|
11
|
+
}
|
|
12
|
+
if (/:\/\//.test(trimmed) && !trimmed.startsWith("kody:@")) {
|
|
13
|
+
throw new Error(
|
|
14
|
+
"Unsupported execute invoke specifier. Use a kody:@scope/package/export (or @scope/package#export) package import, not a URL."
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
let value = trimmed;
|
|
18
|
+
const hashIndex = value.indexOf("#");
|
|
19
|
+
if (hashIndex >= 0) {
|
|
20
|
+
const before = value.slice(0, hashIndex).trim();
|
|
21
|
+
const after = value.slice(hashIndex + 1).trim().replace(/^\.\//, "");
|
|
22
|
+
if (!before || value.includes("#", hashIndex + 1)) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
"Unsupported execute invoke specifier. Use a kody:@scope/package/export (or @scope/package#export) package import, not a URL."
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
value = after ? `${before}/${after}` : before;
|
|
28
|
+
}
|
|
29
|
+
if (value.startsWith("@")) {
|
|
30
|
+
value = `kody:${value}`;
|
|
31
|
+
}
|
|
32
|
+
if (!value.startsWith("kody:@")) {
|
|
33
|
+
throw new Error(
|
|
34
|
+
"Unsupported execute invoke specifier. Use a kody:@scope/package/export (or @scope/package#export) package import, not a URL."
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
function buildExecuteInvokePassthroughSource(specifier) {
|
|
40
|
+
return `import ${invokeLocalName} from ${JSON.stringify(specifier)}
|
|
41
|
+
|
|
42
|
+
export default async function main(params) {
|
|
43
|
+
return await ${invokeLocalName}(params)
|
|
44
|
+
}`;
|
|
45
|
+
}
|
|
46
|
+
function resolveExecuteInvokeCode(invoke) {
|
|
47
|
+
return buildExecuteInvokePassthroughSource(parseExecuteInvokeSpecifier(invoke));
|
|
48
|
+
}
|
|
49
|
+
function isPublishedPackageInvokeSpecifier(raw) {
|
|
50
|
+
try {
|
|
51
|
+
parseExecuteInvokeSpecifier(raw);
|
|
52
|
+
return true;
|
|
53
|
+
} catch {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export {
|
|
59
|
+
resolveExecuteInvokeCode,
|
|
60
|
+
isPublishedPackageInvokeSpecifier
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=chunk-75RZUXQL.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/invoke-passthrough.ts"],
|
|
4
|
+
"mappings": ";;;AAMA,IAAM,kBAAkB;AAEjB,SAAS,4BAA4B,KAAqB;AAChE,QAAM,UAAU,IAAI,KAAK;AACzB,MAAI,CAAC,SAAS;AACb,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AACA,MAAI,QAAQ,KAAK,OAAO,KAAK,CAAC,QAAQ,WAAW,QAAQ,GAAG;AAC3D,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,MAAI,QAAQ;AACZ,QAAM,YAAY,MAAM,QAAQ,GAAG;AACnC,MAAI,aAAa,GAAG;AACnB,UAAM,SAAS,MAAM,MAAM,GAAG,SAAS,EAAE,KAAK;AAC9C,UAAM,QAAQ,MACZ,MAAM,YAAY,CAAC,EACnB,KAAK,EACL,QAAQ,SAAS,EAAE;AACrB,QAAI,CAAC,UAAU,MAAM,SAAS,KAAK,YAAY,CAAC,GAAG;AAClD,YAAM,IAAI;AAAA,QACT;AAAA,MACD;AAAA,IACD;AACA,YAAQ,QAAQ,GAAG,MAAM,IAAI,KAAK,KAAK;AAAA,EACxC;AAEA,MAAI,MAAM,WAAW,GAAG,GAAG;AAC1B,YAAQ,QAAQ,KAAK;AAAA,EACtB;AAEA,MAAI,CAAC,MAAM,WAAW,QAAQ,GAAG;AAChC,UAAM,IAAI;AAAA,MACT;AAAA,IACD;AAAA,EACD;AAEA,SAAO;AACR;AAEO,SAAS,oCAAoC,WAA2B;AAC9E,SAAO,UAAU,eAAe,SAAS,KAAK,UAAU,SAAS,CAAC;AAAA;AAAA;AAAA,gBAGnD,eAAe;AAAA;AAE/B;AAEO,SAAS,yBAAyB,QAAwB;AAChE,SAAO,oCAAoC,4BAA4B,MAAM,CAAC;AAC/E;AAOO,SAAS,kCAAkC,KAAsB;AACvE,MAAI;AACH,gCAA4B,GAAG;AAC/B,WAAO;AAAA,EACR,QAAQ;AACP,WAAO;AAAA,EACR;AACD;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|