@nifrajs/cli 4.0.2 → 5.1.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.
- package/README.md +10 -2
- package/dist/agent-files.d.ts +107 -0
- package/dist/agent-files.d.ts.map +1 -0
- package/dist/agent-files.js +162 -0
- package/dist/agent-files.js.map +1 -0
- package/dist/app-files.d.ts +6 -0
- package/dist/app-files.d.ts.map +1 -1
- package/dist/app-files.js +27 -2
- package/dist/app-files.js.map +1 -1
- package/dist/assure-hydration.d.ts.map +1 -1
- package/dist/assure-hydration.js +9 -2
- package/dist/assure-hydration.js.map +1 -1
- package/dist/assure.d.ts +12 -2
- package/dist/assure.d.ts.map +1 -1
- package/dist/assure.js +59 -8
- package/dist/assure.js.map +1 -1
- package/dist/capabilities-tool.d.ts.map +1 -1
- package/dist/capabilities-tool.js +36 -9
- package/dist/capabilities-tool.js.map +1 -1
- package/dist/check-diagnostics.d.ts +22 -2
- package/dist/check-diagnostics.d.ts.map +1 -1
- package/dist/check-diagnostics.js +54 -7
- package/dist/check-diagnostics.js.map +1 -1
- package/dist/check-scan.d.ts +83 -24
- package/dist/check-scan.d.ts.map +1 -1
- package/dist/check-scan.js +1516 -318
- package/dist/check-scan.js.map +1 -1
- package/dist/check.d.ts +2 -2
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +203 -70
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +9 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +215 -50
- package/dist/cli.js.map +1 -1
- package/dist/client-module.d.ts +20 -0
- package/dist/client-module.d.ts.map +1 -0
- package/dist/client-module.js +73 -0
- package/dist/client-module.js.map +1 -0
- package/dist/command-catalog.d.ts +24 -5
- package/dist/command-catalog.d.ts.map +1 -1
- package/dist/command-catalog.js +194 -45
- package/dist/command-catalog.js.map +1 -1
- package/dist/component-check.d.ts +13 -0
- package/dist/component-check.d.ts.map +1 -0
- package/dist/component-check.js +59 -0
- package/dist/component-check.js.map +1 -0
- package/dist/contract-proof.d.ts +1 -1
- package/dist/contract-proof.d.ts.map +1 -1
- package/dist/contract-proof.js +2 -24
- package/dist/contract-proof.js.map +1 -1
- package/dist/contracts.d.ts +19 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +50 -3
- package/dist/contracts.js.map +1 -1
- package/dist/db-tool.d.ts.map +1 -1
- package/dist/db-tool.js +4 -3
- package/dist/db-tool.js.map +1 -1
- package/dist/dev-bun-config.d.ts +5 -1
- package/dist/dev-bun-config.d.ts.map +1 -1
- package/dist/dev-bun-config.js +44 -11
- package/dist/dev-bun-config.js.map +1 -1
- package/dist/dev-feed-tool.d.ts +18 -1
- package/dist/dev-feed-tool.d.ts.map +1 -1
- package/dist/dev-feed-tool.js +93 -0
- package/dist/dev-feed-tool.js.map +1 -1
- package/dist/diagnostics.d.ts +3 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js.map +1 -1
- package/dist/diff-tool.d.ts +9 -8
- package/dist/diff-tool.d.ts.map +1 -1
- package/dist/diff-tool.js +28 -24
- package/dist/diff-tool.js.map +1 -1
- package/dist/doctor.d.ts +13 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +23 -15
- package/dist/doctor.js.map +1 -1
- package/dist/env-file.d.ts +6 -0
- package/dist/env-file.d.ts.map +1 -1
- package/dist/env-file.js +6 -0
- package/dist/env-file.js.map +1 -1
- package/dist/fix-recipes.d.ts +2 -0
- package/dist/fix-recipes.d.ts.map +1 -1
- package/dist/fix-recipes.js +102 -2
- package/dist/fix-recipes.js.map +1 -1
- package/dist/hand-built-manifest.d.ts +27 -0
- package/dist/hand-built-manifest.d.ts.map +1 -0
- package/dist/hand-built-manifest.js +124 -0
- package/dist/hand-built-manifest.js.map +1 -0
- package/dist/hooks-report.d.ts +23 -0
- package/dist/hooks-report.d.ts.map +1 -0
- package/dist/hooks-report.js +104 -0
- package/dist/hooks-report.js.map +1 -0
- package/dist/init-agents.d.ts +18 -2
- package/dist/init-agents.d.ts.map +1 -1
- package/dist/init-agents.js +20 -13
- package/dist/init-agents.js.map +1 -1
- package/dist/internal/config-paths.d.ts +16 -0
- package/dist/internal/config-paths.d.ts.map +1 -0
- package/dist/internal/config-paths.js +124 -0
- package/dist/internal/config-paths.js.map +1 -0
- package/dist/internal/installed-package.d.ts +4 -0
- package/dist/internal/installed-package.d.ts.map +1 -0
- package/dist/internal/installed-package.js +17 -0
- package/dist/internal/installed-package.js.map +1 -0
- package/dist/internal/nifra-project.d.ts +41 -0
- package/dist/internal/nifra-project.d.ts.map +1 -0
- package/dist/internal/nifra-project.js +183 -0
- package/dist/internal/nifra-project.js.map +1 -0
- package/dist/internal/project-specifiers.d.ts +29 -0
- package/dist/internal/project-specifiers.d.ts.map +1 -0
- package/dist/internal/project-specifiers.js +435 -0
- package/dist/internal/project-specifiers.js.map +1 -0
- package/dist/internal/script-kind.d.ts.map +1 -1
- package/dist/internal/script-kind.js +2 -1
- package/dist/internal/script-kind.js.map +1 -1
- package/dist/internal/source-facts.d.ts +8 -1
- package/dist/internal/source-facts.d.ts.map +1 -1
- package/dist/internal/source-facts.js +22 -5
- package/dist/internal/source-facts.js.map +1 -1
- package/dist/internal/typescript-import.d.ts +1 -1
- package/dist/internal/typescript-import.d.ts.map +1 -1
- package/dist/internal/typescript-import.js +10 -6
- package/dist/internal/typescript-import.js.map +1 -1
- package/dist/introspect.d.ts +15 -6
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +87 -25
- package/dist/introspect.js.map +1 -1
- package/dist/levels-tool.d.ts.map +1 -1
- package/dist/levels-tool.js +98 -23
- package/dist/levels-tool.js.map +1 -1
- package/dist/load.d.ts +33 -10
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +60 -10
- package/dist/load.js.map +1 -1
- package/dist/mcp-context.d.ts +5 -5
- package/dist/mcp-context.d.ts.map +1 -1
- package/dist/mcp-context.js +8 -23
- package/dist/mcp-context.js.map +1 -1
- package/dist/mcp-delegate.d.ts +2 -2
- package/dist/mcp-delegate.d.ts.map +1 -1
- package/dist/mcp-delegate.js +19 -7
- package/dist/mcp-delegate.js.map +1 -1
- package/dist/mcp-exec.d.ts +13 -4
- package/dist/mcp-exec.d.ts.map +1 -1
- package/dist/mcp-exec.js +56 -14
- package/dist/mcp-exec.js.map +1 -1
- package/dist/mcp-http.js +1 -1
- package/dist/mcp-io.d.ts +30 -0
- package/dist/mcp-io.d.ts.map +1 -1
- package/dist/mcp-io.js +63 -0
- package/dist/mcp-io.js.map +1 -1
- package/dist/mcp-isolate.d.ts.map +1 -1
- package/dist/mcp-isolate.js +3 -2
- package/dist/mcp-isolate.js.map +1 -1
- package/dist/mcp-path.d.ts +2 -1
- package/dist/mcp-path.d.ts.map +1 -1
- package/dist/mcp-path.js +9 -24
- package/dist/mcp-path.js.map +1 -1
- package/dist/mcp-project-child.js +1 -1
- package/dist/mcp-project-child.js.map +1 -1
- package/dist/mcp-root.d.ts.map +1 -1
- package/dist/mcp-root.js +50 -10
- package/dist/mcp-root.js.map +1 -1
- package/dist/mcp-ws.d.ts.map +1 -1
- package/dist/mcp-ws.js +3 -1
- package/dist/mcp-ws.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +48 -19
- package/dist/mcp.js.map +1 -1
- package/dist/migrate-layout.d.ts +47 -1
- package/dist/migrate-layout.d.ts.map +1 -1
- package/dist/migrate-layout.js +1972 -170
- package/dist/migrate-layout.js.map +1 -1
- package/dist/output-schemas.d.ts +128 -0
- package/dist/output-schemas.d.ts.map +1 -0
- package/dist/output-schemas.js +975 -0
- package/dist/output-schemas.js.map +1 -0
- package/dist/port.d.ts.map +1 -1
- package/dist/port.js +3 -2
- package/dist/port.js.map +1 -1
- package/dist/project-facts.d.ts +15 -4
- package/dist/project-facts.d.ts.map +1 -1
- package/dist/project-facts.js +1 -0
- package/dist/project-facts.js.map +1 -1
- package/dist/project-path.d.ts +6 -0
- package/dist/project-path.d.ts.map +1 -1
- package/dist/project-path.js +48 -14
- package/dist/project-path.js.map +1 -1
- package/dist/recipes/5.0.0.d.ts +11 -0
- package/dist/recipes/5.0.0.d.ts.map +1 -0
- package/dist/recipes/5.0.0.js +34 -0
- package/dist/recipes/5.0.0.js.map +1 -0
- package/dist/recipes/index.d.ts +7 -0
- package/dist/recipes/index.d.ts.map +1 -1
- package/dist/recipes/index.js +2 -0
- package/dist/recipes/index.js.map +1 -1
- package/dist/release-verification.d.ts +5 -0
- package/dist/release-verification.d.ts.map +1 -1
- package/dist/release-verification.js +14 -0
- package/dist/release-verification.js.map +1 -1
- package/dist/replay.d.ts.map +1 -1
- package/dist/replay.js +12 -3
- package/dist/replay.js.map +1 -1
- package/dist/review.d.ts +3 -1
- package/dist/review.d.ts.map +1 -1
- package/dist/review.js +43 -7
- package/dist/review.js.map +1 -1
- package/dist/rules/codes.d.ts +12 -0
- package/dist/rules/codes.d.ts.map +1 -1
- package/dist/rules/codes.js +12 -0
- package/dist/rules/codes.js.map +1 -1
- package/dist/rules/comment-markers.d.ts +16 -7
- package/dist/rules/comment-markers.d.ts.map +1 -1
- package/dist/rules/comment-markers.js +58 -19
- package/dist/rules/comment-markers.js.map +1 -1
- package/dist/rules/contract-visibility.d.ts +3 -0
- package/dist/rules/contract-visibility.d.ts.map +1 -0
- package/dist/rules/contract-visibility.js +337 -0
- package/dist/rules/contract-visibility.js.map +1 -0
- package/dist/rules/data-guard.d.ts +13 -0
- package/dist/rules/data-guard.d.ts.map +1 -1
- package/dist/rules/data-guard.js +356 -37
- package/dist/rules/data-guard.js.map +1 -1
- package/dist/rules/layout.d.ts +4 -0
- package/dist/rules/layout.d.ts.map +1 -0
- package/dist/rules/layout.js +19 -0
- package/dist/rules/layout.js.map +1 -0
- package/dist/rules/legacy.d.ts.map +1 -1
- package/dist/rules/legacy.js +178 -44
- package/dist/rules/legacy.js.map +1 -1
- package/dist/rules/pages.d.ts +50 -0
- package/dist/rules/pages.d.ts.map +1 -1
- package/dist/rules/pages.js +436 -4
- package/dist/rules/pages.js.map +1 -1
- package/dist/rules/routes.d.ts +6 -0
- package/dist/rules/routes.d.ts.map +1 -1
- package/dist/rules/routes.js +111 -16
- package/dist/rules/routes.js.map +1 -1
- package/dist/rules/secrets.js +2 -2
- package/dist/rules/secrets.js.map +1 -1
- package/dist/rules/security.d.ts +13 -1
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +313 -69
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/zones.d.ts +13 -0
- package/dist/rules/zones.d.ts.map +1 -1
- package/dist/rules/zones.js +218 -44
- package/dist/rules/zones.js.map +1 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +6 -4
- package/dist/scaffold.js.map +1 -1
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +14 -5
- package/dist/sdk.js.map +1 -1
- package/dist/stylex-migrate.d.ts.map +1 -1
- package/dist/stylex-migrate.js +290 -24
- package/dist/stylex-migrate.js.map +1 -1
- package/dist/test-tool.d.ts.map +1 -1
- package/dist/test-tool.js +6 -3
- package/dist/test-tool.js.map +1 -1
- package/dist/typecheck-coverage.d.ts +20 -0
- package/dist/typecheck-coverage.d.ts.map +1 -0
- package/dist/typecheck-coverage.js +129 -0
- package/dist/typecheck-coverage.js.map +1 -0
- package/dist/upgrade.d.ts +84 -0
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +498 -78
- package/dist/upgrade.js.map +1 -1
- package/dist/verification-plan.d.ts.map +1 -1
- package/dist/verification-plan.js +16 -2
- package/dist/verification-plan.js.map +1 -1
- package/dist/version-drift.d.ts +22 -0
- package/dist/version-drift.d.ts.map +1 -0
- package/dist/version-drift.js +94 -0
- package/dist/version-drift.js.map +1 -0
- package/dist/web-app-options.d.ts +1 -1
- package/dist/web-app-options.d.ts.map +1 -1
- package/dist/web-app-options.js +1 -1
- package/dist/web-app-options.js.map +1 -1
- package/dist/work-graph.d.ts.map +1 -1
- package/dist/work-graph.js +20 -8
- package/dist/work-graph.js.map +1 -1
- package/docs/examples.json +55 -7
- package/docs/llms-full.txt +2043 -222
- package/docs/types.json +1573 -246
- package/package.json +11 -12
- package/src/agent-files.ts +203 -0
- package/src/app-files.ts +34 -4
- package/src/assure-hydration.ts +18 -2
- package/src/assure.ts +88 -10
- package/src/capabilities-tool.ts +47 -9
- package/src/check-diagnostics.ts +75 -9
- package/src/check-scan.ts +1816 -377
- package/src/check.ts +258 -81
- package/src/cli.ts +242 -37
- package/src/client-module.ts +97 -0
- package/src/command-catalog.ts +237 -52
- package/src/component-check.ts +79 -0
- package/src/contract-proof.ts +3 -25
- package/src/contracts.ts +60 -3
- package/src/db-tool.ts +5 -2
- package/src/dev-bun-config.ts +51 -10
- package/src/dev-feed-tool.ts +112 -1
- package/src/diagnostics.ts +3 -0
- package/src/diff-tool.ts +33 -26
- package/src/doctor.ts +43 -21
- package/src/env-file.ts +7 -0
- package/src/fix-recipes.ts +116 -2
- package/src/hand-built-manifest.ts +144 -0
- package/src/hooks-report.ts +135 -0
- package/src/init-agents.ts +21 -14
- package/src/internal/config-paths.ts +154 -0
- package/src/internal/installed-package.ts +15 -0
- package/src/internal/nifra-project.ts +191 -0
- package/src/internal/project-specifiers.ts +477 -0
- package/src/internal/script-kind.ts +2 -1
- package/src/internal/source-facts.ts +48 -5
- package/src/internal/typescript-import.ts +15 -6
- package/src/introspect.ts +104 -28
- package/src/levels-tool.ts +124 -29
- package/src/load.ts +107 -17
- package/src/mcp-context.ts +12 -25
- package/src/mcp-delegate.ts +22 -10
- package/src/mcp-exec.ts +68 -18
- package/src/mcp-http.ts +1 -1
- package/src/mcp-io.ts +74 -0
- package/src/mcp-isolate.ts +9 -2
- package/src/mcp-path.ts +8 -22
- package/src/mcp-project-child.ts +1 -1
- package/src/mcp-root.ts +58 -8
- package/src/mcp-ws.ts +4 -2
- package/src/mcp.ts +56 -22
- package/src/migrate-layout.ts +2257 -176
- package/src/output-schemas.ts +1240 -0
- package/src/port.ts +3 -2
- package/src/project-facts.ts +17 -3
- package/src/project-path.ts +44 -13
- package/src/recipes/5.0.0.ts +35 -0
- package/src/recipes/index.ts +10 -0
- package/src/release-verification.ts +20 -0
- package/src/replay.ts +14 -3
- package/src/review.ts +44 -10
- package/src/rules/codes.ts +12 -0
- package/src/rules/comment-markers.ts +57 -21
- package/src/rules/contract-visibility.ts +383 -0
- package/src/rules/data-guard.ts +391 -42
- package/src/rules/layout.ts +22 -0
- package/src/rules/legacy.ts +206 -52
- package/src/rules/pages.ts +481 -4
- package/src/rules/routes.ts +124 -16
- package/src/rules/secrets.ts +2 -2
- package/src/rules/security.ts +391 -72
- package/src/rules/zones.ts +232 -42
- package/src/scaffold.ts +6 -4
- package/src/sdk.ts +14 -5
- package/src/stylex-migrate.ts +251 -24
- package/src/test-tool.ts +12 -3
- package/src/typecheck-coverage.ts +134 -0
- package/src/upgrade.ts +576 -72
- package/src/verification-plan.ts +33 -2
- package/src/version-drift.ts +118 -0
- package/src/web-app-options.ts +2 -2
- package/src/work-graph.ts +17 -12
package/dist/load.js
CHANGED
|
@@ -27,13 +27,33 @@ import { assertCurrentLayout, BACKEND_APP_FILE, CONFIG_FILE, FRAMEWORK_FILE } fr
|
|
|
27
27
|
import { checkPipelineSeparation } from "./pipeline-guard.js";
|
|
28
28
|
/** The {@link NifraFramework} fields forwarded to `createWebApp` and imported by the generated server
|
|
29
29
|
* entry, in one list so every command that builds the app forwards the same set. */
|
|
30
|
-
export const FRAMEWORK_WEB_OPTIONS = [
|
|
30
|
+
export const FRAMEWORK_WEB_OPTIONS = [
|
|
31
|
+
"apiPrefix",
|
|
32
|
+
"apiStrip",
|
|
33
|
+
"mounts",
|
|
34
|
+
"csp",
|
|
35
|
+
"nonce",
|
|
36
|
+
"serverComponents",
|
|
37
|
+
];
|
|
31
38
|
/** Refuse a forwarded field of the wrong shape at load, naming the field, rather than letting it fail
|
|
32
39
|
* later inside `createWebApp` or the generated server entry. */
|
|
33
40
|
function assertFrameworkWebOptions(fw, configFile) {
|
|
34
41
|
const wrong = (field, expected) => {
|
|
35
42
|
throw new Error(`[nifra] ${configFile}: \`${field}\` must be ${expected}.`);
|
|
36
43
|
};
|
|
44
|
+
if (fw.componentPipeline !== undefined) {
|
|
45
|
+
const pipeline = fw.componentPipeline;
|
|
46
|
+
if (typeof pipeline !== "object" ||
|
|
47
|
+
pipeline === null ||
|
|
48
|
+
!["react", "vue", "svelte", "solid", "preact"].includes(pipeline.adapter) ||
|
|
49
|
+
typeof pipeline.entries !== "object" ||
|
|
50
|
+
pipeline.entries === null ||
|
|
51
|
+
typeof pipeline.entries.client !== "string" ||
|
|
52
|
+
typeof pipeline.entries.ssr !== "string" ||
|
|
53
|
+
(pipeline.adapter === "react" && typeof pipeline.entries.rsc !== "string") ||
|
|
54
|
+
(pipeline.adapter !== "react" && pipeline.entries.rsc !== undefined))
|
|
55
|
+
wrong("componentPipeline", "an adapter plus existing client/ssr entries and a React-only rsc entry");
|
|
56
|
+
}
|
|
37
57
|
if (fw.apiPrefix !== undefined && typeof fw.apiPrefix !== "string") {
|
|
38
58
|
wrong("apiPrefix", 'a path string such as "/api", or "" to turn the backend mount off');
|
|
39
59
|
}
|
|
@@ -63,6 +83,11 @@ function assertFrameworkWebOptions(fw, configFile) {
|
|
|
63
83
|
const indicator = Reflect.get(fw.dev, "indicator");
|
|
64
84
|
if (indicator !== undefined && typeof indicator !== "boolean")
|
|
65
85
|
wrong("dev.indicator", "a boolean");
|
|
86
|
+
const allowedHosts = Reflect.get(fw.dev, "allowedHosts");
|
|
87
|
+
if (allowedHosts !== undefined &&
|
|
88
|
+
(!Array.isArray(allowedHosts) ||
|
|
89
|
+
allowedHosts.some((host) => typeof host !== "string" || host.trim() === "")))
|
|
90
|
+
wrong("dev.allowedHosts", 'an array of host names such as ["app.test"]');
|
|
66
91
|
}
|
|
67
92
|
}
|
|
68
93
|
/**
|
|
@@ -116,25 +141,43 @@ export async function loadMonorepoApps(rootCwd, config) {
|
|
|
116
141
|
}
|
|
117
142
|
const isAdapter = (v) => typeof v === "object" && v !== null;
|
|
118
143
|
const importWithQuery = (path, query) => import(__rewriteRelativeImportExtension(query === undefined || query === "" ? path : `${path}?${query}`));
|
|
144
|
+
/** Whether `cwd` has a web config file, the one thing that makes it more than its backend. */
|
|
145
|
+
export const hasAppConfig = (cwd) => existsSync(resolve(cwd, CONFIG_FILE)) || existsSync(resolve(cwd, FRAMEWORK_FILE));
|
|
119
146
|
/**
|
|
120
|
-
* What reads only the backend
|
|
121
|
-
*
|
|
147
|
+
* What reads only the backend: the whole app when it has a web config, else `backend/app.ts`
|
|
148
|
+
* alone, so an API-only app needs no adapter for its routes, context, hooks or OpenAPI document.
|
|
122
149
|
*/
|
|
123
150
|
export async function loadBackendApp(cwd, options = {}) {
|
|
124
|
-
if (
|
|
151
|
+
if (hasAppConfig(cwd))
|
|
125
152
|
return loadApp(cwd, "dist", options);
|
|
126
|
-
}
|
|
127
153
|
assertCurrentLayout(cwd);
|
|
128
154
|
const backendPath = resolve(cwd, BACKEND_APP_FILE);
|
|
129
155
|
if (!existsSync(backendPath)) {
|
|
130
|
-
throw new Error(`[nifra] no ${BACKEND_APP_FILE} in ${cwd}:
|
|
156
|
+
throw new Error(`[nifra] no ${CONFIG_FILE}, ${FRAMEWORK_FILE} or ${BACKEND_APP_FILE} in ${cwd}: a web app needs its config, an API-only app its ${BACKEND_APP_FILE}`);
|
|
131
157
|
}
|
|
132
158
|
const backend = (await importWithQuery(backendPath, options.importQuery)).backend;
|
|
133
159
|
return { cwd, backend };
|
|
134
160
|
}
|
|
161
|
+
/** The fields the generated server entry imports from backend/framework.ts. */
|
|
162
|
+
const SERVER_OPTIONS = [...FRAMEWORK_WEB_OPTIONS, "use"];
|
|
163
|
+
/**
|
|
164
|
+
* `config` with each server option it leaves unset taken from backend/framework.ts, so `nifra dev` and
|
|
165
|
+
* the server entry `nifra build` generates read one value without nifra.config.ts re-exporting it.
|
|
166
|
+
*/
|
|
167
|
+
async function withServerOptions(config, frameworkPath, importQuery) {
|
|
168
|
+
// biome-ignore lint/plugin/requireSafetyCommentForTypeAssertion: a config module, read like nifra.config.ts; every web option taken from it is validated below.
|
|
169
|
+
const framework = (await importWithQuery(frameworkPath, importQuery));
|
|
170
|
+
const taken = {};
|
|
171
|
+
for (const name of SERVER_OPTIONS) {
|
|
172
|
+
if (config[name] === undefined && framework[name] !== undefined)
|
|
173
|
+
taken[name] = framework[name];
|
|
174
|
+
}
|
|
175
|
+
assertFrameworkWebOptions(taken, FRAMEWORK_FILE);
|
|
176
|
+
return { ...config, ...taken };
|
|
177
|
+
}
|
|
135
178
|
/** Discover + validate the app conventions rooted at `cwd`. Prefers `nifra.config.ts`, falls back
|
|
136
|
-
* to
|
|
137
|
-
*
|
|
179
|
+
* to `backend/framework.ts`; with both, a server option nifra.config.ts leaves unset comes from
|
|
180
|
+
* backend/framework.ts. Throws a clear, actionable error if neither exists or the config is
|
|
138
181
|
* malformed. */
|
|
139
182
|
export async function loadApp(cwd, outDirName = "dist", options = {}) {
|
|
140
183
|
// nifra.config.ts is the CLI's config (it may import Vite plugins / the SFC compiler, which a
|
|
@@ -148,12 +191,19 @@ export async function loadApp(cwd, outDirName = "dist", options = {}) {
|
|
|
148
191
|
" nifra is zero-config but needs one of them exporting at least:\n" +
|
|
149
192
|
" export const adapter = reactAdapter // from @nifrajs/web-react\n" +
|
|
150
193
|
' export const clientModule = "@nifrajs/web-react/client"\n' +
|
|
151
|
-
" (create-nifra scaffolds this for you.)"
|
|
194
|
+
" (create-nifra scaffolds this for you.)" +
|
|
195
|
+
(existsSync(resolve(cwd, BACKEND_APP_FILE))
|
|
196
|
+
? `\n With ${BACKEND_APP_FILE} and no web config this is an API-only app: \`nifra routes\`,\n` +
|
|
197
|
+
" `nifra context`, `nifra openapi` and `nifra mcp` read its backend; pages need the config."
|
|
198
|
+
: ""));
|
|
152
199
|
}
|
|
153
200
|
if (!existsSync(resolve(cwd, "routes"))) {
|
|
154
201
|
throw new Error(`[nifra] no routes/ directory in ${cwd} - nifra apps are file-routed under routes/.`);
|
|
155
202
|
}
|
|
156
|
-
const
|
|
203
|
+
const loaded = (await importWithQuery(configPath, options.importQuery));
|
|
204
|
+
const fw = configFile === CONFIG_FILE && existsSync(resolve(cwd, FRAMEWORK_FILE))
|
|
205
|
+
? await withServerOptions(loaded, resolve(cwd, FRAMEWORK_FILE), options.importQuery)
|
|
206
|
+
: loaded;
|
|
157
207
|
if (!isAdapter(fw.adapter) || typeof fw.clientModule !== "string") {
|
|
158
208
|
throw new Error(`[nifra] ${configFile} must export \`adapter\` (a render adapter object) and \`clientModule\` (a string).`);
|
|
159
209
|
}
|
package/dist/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAG/C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAG/C,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnG,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AA+F7D;oFACoF;AACpF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,UAAU;IACV,QAAQ;IACR,KAAK;IACL,OAAO;IACP,kBAAkB;CACV,CAAA;AAGV;gEACgE;AAChE,SAAS,yBAAyB,CAAC,EAA2B,EAAE,UAAkB;IAChF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,QAAgB,EAAS,EAAE;QACvD,MAAM,IAAI,KAAK,CAAC,WAAW,UAAU,OAAO,KAAK,cAAc,QAAQ,GAAG,CAAC,CAAA;IAC7E,CAAC,CAAA;IACD,IAAI,EAAE,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,EAAE,CAAC,iBAAiB,CAAA;QACrC,IACE,OAAO,QAAQ,KAAK,QAAQ;YAC5B,QAAQ,KAAK,IAAI;YACjB,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzE,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACpC,QAAQ,CAAC,OAAO,KAAK,IAAI;YACzB,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,KAAK,QAAQ;YAC3C,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ;YACxC,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC;YAC1E,CAAC,QAAQ,CAAC,OAAO,KAAK,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC;YAEpE,KAAK,CACH,mBAAmB,EACnB,wEAAwE,CACzE,CAAA;IACL,CAAC;IACD,IAAI,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACnE,KAAK,CAAC,WAAW,EAAE,mEAAmE,CAAC,CAAA;IACzF,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,QAAQ,KAAK,SAAS;QAAE,KAAK,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;IACjG,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,QAAQ,EAAE,mCAAmC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,EAAE,CAAC;QAC5E,KAAK,CAAC,KAAK,EAAE,sCAAsC,CAAC,CAAA;IACtD,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;QAC7D,KAAK,CAAC,OAAO,EAAE,kEAAkE,CAAC,CAAA;IACpF,CAAC;IACD,IAAI,EAAE,CAAC,gBAAgB,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC7E,KAAK,CAAC,kBAAkB,EAAE,4CAA4C,CAAC,CAAA;IACzE,CAAC;IACD,IAAI,EAAE,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC7D,KAAK,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAA;IACvD,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5D,KAAK,CAAC,UAAU,EAAE,4EAA4E,CAAC,CAAA;IACjG,CAAC;IACD,IAAI,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC,GAAG,KAAK,QAAQ,IAAI,EAAE,CAAC,GAAG,KAAK,IAAI;YAC/C,KAAK,CAAC,KAAK,EAAE,wCAAwC,CAAC,CAAA;QACxD,MAAM,SAAS,GAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;QAC3D,IAAI,SAAS,KAAK,SAAS,IAAI,OAAO,SAAS,KAAK,SAAS;YAC3D,KAAK,CAAC,eAAe,EAAE,WAAW,CAAC,CAAA;QACrC,MAAM,YAAY,GAAY,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;QACjE,IACE,YAAY,KAAK,SAAS;YAC1B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC3B,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAE9E,KAAK,CAAC,kBAAkB,EAAE,6CAA6C,CAAC,CAAA;IAC5E,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAS,wBAAwB,CAAC,OAAwB,EAAE,UAAkB;IAC5E,MAAM,UAAU,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAA;IACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAM;IACnC,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,uKAAuK;QAC1L,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACnD,CAAA;AACH,CAAC;AAED,uGAAuG;AACvG,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA+B;IAClE,MAAM,KAAK,GAAG,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;IACjE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;AAChC,CAAC;AAkED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,UAA0B,EAAE;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAA;IAClD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAAE,OAAO,IAAI,CAAA;IAC9E,MAAM,GAAG,GAAG,CAAC,MAAM,MAAM,kCACvB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,EAC1E,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAwC,CAAA;IAC3D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC1E,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAA8B,EAAE,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,MAA2B;IAE3B,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACvD,IAAI;QACJ,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,CAAU,EAAW,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAA;AAE9E,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,KAAyB,EAAoB,EAAE,CACpF,MAAM,kCAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,KAAK,EAAE,EAAC,CAAA;AAEzE,8FAA8F;AAC9F,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAW,EAAW,EAAE,CACnD,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAA;AAEnF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAW,EACX,UAA0B,EAAE;IAE5B,IAAI,YAAY,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;IAC3D,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACxB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAClD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CACb,cAAc,WAAW,KAAK,cAAc,OAAO,gBAAgB,OAAO,GAAG,qDAAqD,gBAAgB,EAAE,CACrJ,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GACX,CAAC,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CACzD,CAAC,OAAO,CAAA;IACT,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AACzB,CAAC;AAED,+EAA+E;AAC/E,MAAM,cAAc,GAAG,CAAC,GAAG,qBAAqB,EAAE,KAAK,CAAU,CAAA;AAEjE;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAA+B,EAC/B,aAAqB,EACrB,WAA+B;IAE/B,gKAAgK;IAChK,MAAM,SAAS,GAAG,CAAC,MAAM,eAAe,CAAC,aAAa,EAAE,WAAW,CAAC,CAA4B,CAAA;IAChG,MAAM,KAAK,GAA4B,EAAE,CAAA;IACzC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAChG,CAAC;IACD,yBAAyB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAA;IAChD,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;AAChC,CAAC;AAED;;;gBAGgB;AAChB,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAW,EACX,UAAU,GAAG,MAAM,EACnB,UAA0B,EAAE;IAE5B,8FAA8F;IAC9F,iGAAiG;IACjG,sEAAsE;IACtE,mBAAmB,CAAC,GAAG,CAAC,CAAA;IACxB,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAA;IACvF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAA;IAC3C,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,cAAc,WAAW,OAAO,cAAc,aAAa,GAAG,KAAK;YACjE,wEAAwE;YACxE,qFAAqF;YACrF,mEAAmE;YACnE,8CAA8C;YAC9C,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;gBACzC,CAAC,CAAC,gBAAgB,gBAAgB,iEAAiE;oBACjG,iGAAiG;gBACnG,CAAC,CAAC,EAAE,CAAC,CACV,CAAA;IACH,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CACb,mCAAmC,GAAG,8CAA8C,CACrF,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,MAAM,eAAe,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAA4B,CAAA;IAClG,MAAM,EAAE,GACN,UAAU,KAAK,WAAW,IAAI,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QACpE,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC;QACpF,CAAC,CAAC,MAAM,CAAA;IACZ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAClE,MAAM,IAAI,KAAK,CACb,WAAW,UAAU,qFAAqF,CAC3G,CAAA;IACH,CAAC;IACD,yBAAyB,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;IACzC,+FAA+F;IAC/F,oGAAoG;IACpG,uGAAuG;IACvG,qGAAqG;IACrG,sGAAsG;IACtG,gCAAgC;IAChC,IAAI,YAAoB,CAAA;IACxB,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1E,6FAA6F;QAC7F,0FAA0F;QAC1F,qEAAqE;QACrE,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACpE,CAAC;SAAM,CAAC;QACN,mGAAmG;QACnG,iGAAiG;QACjG,mGAAmG;QACnG,qGAAqG;QACrG,2EAA2E;QAC3E,IACE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC;YAC5B,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;YAChC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EACzC,CAAC;YACD,MAAM,IAAI,KAAK,CACb,yBAAyB,EAAE,CAAC,YAAY,wDAAwD;gBAC9F,8EAA8E;gBAC9E,MAAM,EAAE,CAAC,YAAY,uEAAuE,CAC/F,CAAA;QACH,CAAC;QACD,YAAY,GAAG,EAAE,CAAC,YAAY,CAAA;IAChC,CAAC;IACD,MAAM,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpE,cAAc,CAAC,EAAE,CAAC,WAAW,CAAC;QAC9B,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC;QAChC,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC;KACjC,CAAC,CAAA;IACF,MAAM,eAAe,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,CAAA;IACrE,wBAAwB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAA;IAErD,IAAI,OAAgB,CAAA;IACpB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAA;IAClD,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,OAAO,GAAI,CAAC,MAAM,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAA2B;aAC3F,OAAO,CAAA;IACZ,CAAC;IAED,OAAO;QACL,GAAG;QACH,UAAU;QACV,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC;QAChC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE,YAAY,EAAoB;QACpD,eAAe;QACf,OAAO;KACR,CAAA;AACH,CAAC"}
|
package/dist/mcp-context.d.ts
CHANGED
|
@@ -4,12 +4,12 @@
|
|
|
4
4
|
* Resources, prompts, path scoping, and monorepo namespacing are independent of the JSON-RPC loop and
|
|
5
5
|
* of backend reflection. App loading is injected through the shared cached loader seam.
|
|
6
6
|
*/
|
|
7
|
-
import type {
|
|
7
|
+
import type { AppLoader } from "./load.js";
|
|
8
8
|
import type { McpPrompt, McpResource, McpServerFeatures, McpTool } from "./mcp-protocol.js";
|
|
9
|
-
export declare function openApiHandler(args: Record<string, unknown>, loadAppCached:
|
|
10
|
-
export declare function projectResources(cwd: string, loadAppCached?:
|
|
9
|
+
export declare function openApiHandler(args: Record<string, unknown>, loadAppCached: AppLoader): Promise<string>;
|
|
10
|
+
export declare function projectResources(cwd: string, loadAppCached?: AppLoader): McpResource[];
|
|
11
11
|
export declare function projectPrompts(): McpPrompt[];
|
|
12
|
-
export declare function projectFeatures(cwd: string, loadAppCached?:
|
|
12
|
+
export declare function projectFeatures(cwd: string, loadAppCached?: AppLoader): McpServerFeatures;
|
|
13
13
|
/**
|
|
14
14
|
* Resolve an optional `dir` tool argument - a subdirectory of the project root the caller wants to scope a
|
|
15
15
|
* check/test to (e.g. `nifra check` on `app/` when the MCP server's root is a monorepo). Returns the
|
|
@@ -22,7 +22,7 @@ export declare function dirError(dir: string | undefined): string;
|
|
|
22
22
|
/** Build the project-scoped tools for `cwd`. */
|
|
23
23
|
export interface CommandMcpToolOptions {
|
|
24
24
|
readonly cwd: string;
|
|
25
|
-
readonly loadAppCached?:
|
|
25
|
+
readonly loadAppCached?: AppLoader;
|
|
26
26
|
}
|
|
27
27
|
/** Adapt one executable catalog spec to its MCP descriptor and project-scoped handler. */
|
|
28
28
|
export declare function namespaceForApp(name: string, tools: McpTool[], features: McpServerFeatures): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-context.d.ts","sourceRoot":"","sources":["../src/mcp-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-context.d.ts","sourceRoot":"","sources":["../src/mcp-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAQ3F,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,SAAS,GACvB,OAAO,CAAC,MAAM,CAAC,CAIjB;AA8BD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,SAAsC,GACpD,WAAW,EAAE,CAmCf;AAED,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAkE5C;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,SAAsC,GACpD,iBAAiB,CAEnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CActF;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAMxD;AAED,gDAAgD;AAChD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,CAAA;CACnC;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,EAAE,EAChB,QAAQ,EAAE,iBAAiB,GAC1B;IAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IAAC,QAAQ,EAAE,iBAAiB,CAAA;CAAE,CAkBnD;AAED;;;;;;;;;;;;;;;GAeG"}
|
package/dist/mcp-context.js
CHANGED
|
@@ -9,6 +9,7 @@ import { readFile } from "node:fs/promises";
|
|
|
9
9
|
import { basename, isAbsolute, relative, resolve } from "node:path";
|
|
10
10
|
import { createCachedAppLoader } from "./mcp-exec.js";
|
|
11
11
|
import { resolveMcpProjectPath } from "./mcp-path.js";
|
|
12
|
+
import { writeTargetOf } from "./project-path.js";
|
|
12
13
|
function openApiFormat(args) {
|
|
13
14
|
const format = args.format;
|
|
14
15
|
return format === "yaml" ? "yaml" : "json";
|
|
@@ -16,7 +17,7 @@ function openApiFormat(args) {
|
|
|
16
17
|
export async function openApiHandler(args, loadAppCached) {
|
|
17
18
|
const { renderOpenApiWithTypes } = await import("./openapi-tool.js");
|
|
18
19
|
const pathPrefix = typeof args.path === "string" ? args.path : undefined;
|
|
19
|
-
return renderOpenApiWithTypes(await loadAppCached(), openApiFormat(args), pathPrefix);
|
|
20
|
+
return renderOpenApiWithTypes(await loadAppCached.backend(), openApiFormat(args), pathPrefix);
|
|
20
21
|
}
|
|
21
22
|
async function readProjectFile(cwd, relativeFile, maxChars) {
|
|
22
23
|
const target = resolveMcpProjectPath(cwd, relativeFile);
|
|
@@ -47,7 +48,7 @@ export function projectResources(cwd, loadAppCached = createCachedAppLoader(cwd)
|
|
|
47
48
|
mimeType: "application/json",
|
|
48
49
|
read: async () => {
|
|
49
50
|
const { routesToJson } = await import("./introspect.js");
|
|
50
|
-
return { text: JSON.stringify(routesToJson(await loadAppCached()), null, 2) };
|
|
51
|
+
return { text: JSON.stringify(routesToJson(await loadAppCached.backend()), null, 2) };
|
|
51
52
|
},
|
|
52
53
|
},
|
|
53
54
|
{
|
|
@@ -149,27 +150,11 @@ export function resolveProjectDir(root, dir) {
|
|
|
149
150
|
const lexical = relative(root, target);
|
|
150
151
|
return lexical === "" || (!lexical.startsWith("..") && !isAbsolute(lexical)) ? target : null;
|
|
151
152
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
const rel = relative(canonicalRoot, canonicalProbe);
|
|
158
|
-
if (rel.startsWith("..") || isAbsolute(rel))
|
|
159
|
-
return null;
|
|
160
|
-
return missing.length === 0 ? canonicalProbe : resolve(canonicalProbe, ...missing.reverse());
|
|
161
|
-
}
|
|
162
|
-
catch {
|
|
163
|
-
const parent = resolve(probe, "..");
|
|
164
|
-
if (parent === probe)
|
|
165
|
-
return null;
|
|
166
|
-
// `basename`, not a slice past `parent`: when `parent` is the filesystem root its trailing
|
|
167
|
-
// separator is part of it, so `parent.length + 1` eats the first character of the segment and
|
|
168
|
-
// the path gets rebuilt wrong.
|
|
169
|
-
missing.push(basename(probe));
|
|
170
|
-
probe = parent;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
153
|
+
const canonical = writeTargetOf(target);
|
|
154
|
+
if (canonical === undefined)
|
|
155
|
+
return null;
|
|
156
|
+
const rel = relative(canonicalRoot, canonical);
|
|
157
|
+
return rel.startsWith("..") || isAbsolute(rel) ? null : canonical;
|
|
173
158
|
}
|
|
174
159
|
/** Consistent error string for a `dir` that escapes the project root. */
|
|
175
160
|
export function dirError(dir) {
|
package/dist/mcp-context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-context.js","sourceRoot":"","sources":["../src/mcp-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACrD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-context.js","sourceRoot":"","sources":["../src/mcp-context.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-delegate.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* answer still reads as authoritative. So the server settles the version before it serves:
|
|
7
7
|
*
|
|
8
8
|
* 1. The project installs its own `@nifrajs/cli` at a different version: hand the whole session to
|
|
9
|
-
* that CLI (`
|
|
9
|
+
* that CLI (its `bin` script, run by this Bun with `--no-env-file`, stdio inherited) and step aside.
|
|
10
10
|
* 2. Handing off is impossible (no project CLI, a missing bin, or this process IS the hand-off and
|
|
11
11
|
* the versions still disagree): serve, but the version-sensitive tools refuse with the fix
|
|
12
12
|
* instead of answering for the wrong release.
|
|
@@ -17,7 +17,7 @@ import type { ToolingDrift } from "./mcp-root.js";
|
|
|
17
17
|
export declare const MCP_DELEGATED_ENV = "NIFRA_MCP_DELEGATED";
|
|
18
18
|
/** The tools whose answer is a property of the nifra release: they refuse under a version split. */
|
|
19
19
|
export declare const VERSION_SENSITIVE_TOOLS: ReadonlySet<string>;
|
|
20
|
-
/** The project's own CLI: its version and, when
|
|
20
|
+
/** The project's own CLI: its version and, when it is on disk, the script its `bin` names. */
|
|
21
21
|
export interface ProjectCli {
|
|
22
22
|
readonly version: string;
|
|
23
23
|
readonly bin?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-delegate.d.ts","sourceRoot":"","sources":["../src/mcp-delegate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,wBAAwB,CAAA;AAEtD,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAOtD,CAAA;AAEF,
|
|
1
|
+
{"version":3,"file":"mcp-delegate.d.ts","sourceRoot":"","sources":["../src/mcp-delegate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA;AAEjD,gFAAgF;AAChF,eAAO,MAAM,iBAAiB,wBAAwB,CAAA;AAEtD,oGAAoG;AACpG,eAAO,MAAM,uBAAuB,EAAE,WAAW,CAAC,MAAM,CAOtD,CAAA;AAEF,8FAA8F;AAC9F,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CACtB;AAWD,sGAAsG;AACtG,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAwBlF;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CACjC,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAY9B;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,EAAE;IACP,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IAChD,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B,GACA,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA0B7B;AAOD,kFAAkF;AAClF,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,OAAO,YAAY,KAAG,aAUjE,CAAA;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,EAAE,EAChB,KAAK,EAAE,YAAY,GAAG,SAAS,GAC9B,OAAO,EAAE,CAOX"}
|
package/dist/mcp-delegate.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* answer still reads as authoritative. So the server settles the version before it serves:
|
|
7
7
|
*
|
|
8
8
|
* 1. The project installs its own `@nifrajs/cli` at a different version: hand the whole session to
|
|
9
|
-
* that CLI (`
|
|
9
|
+
* that CLI (its `bin` script, run by this Bun with `--no-env-file`, stdio inherited) and step aside.
|
|
10
10
|
* 2. Handing off is impossible (no project CLI, a missing bin, or this process IS the hand-off and
|
|
11
11
|
* the versions still disagree): serve, but the version-sensitive tools refuse with the fix
|
|
12
12
|
* instead of answering for the wrong release.
|
|
@@ -25,18 +25,28 @@ export const VERSION_SENSITIVE_TOOLS = new Set([
|
|
|
25
25
|
"nifra_assure",
|
|
26
26
|
"nifra_contracts",
|
|
27
27
|
]);
|
|
28
|
-
const BIN_NAME = process.platform === "win32" ? "nifra.exe" : "nifra";
|
|
29
28
|
const MAX_ANCESTOR_DIRS = 8;
|
|
29
|
+
function binScript(bin) {
|
|
30
|
+
if (typeof bin === "string")
|
|
31
|
+
return bin;
|
|
32
|
+
if (typeof bin !== "object" || bin === null)
|
|
33
|
+
return undefined;
|
|
34
|
+
const named = Reflect.get(bin, "nifra");
|
|
35
|
+
return typeof named === "string" ? named : undefined;
|
|
36
|
+
}
|
|
30
37
|
/** The nearest `@nifrajs/cli` install at or above `root` (a monorepo app hoists to the repo root). */
|
|
31
38
|
export async function findProjectCli(root) {
|
|
32
39
|
let dir = root;
|
|
33
40
|
for (let depth = 0; depth < MAX_ANCESTOR_DIRS; depth++) {
|
|
34
|
-
const
|
|
41
|
+
const pkg = join(dir, "node_modules", "@nifrajs", "cli");
|
|
35
42
|
try {
|
|
36
|
-
const meta = JSON.parse(await readFile(join(
|
|
43
|
+
const meta = JSON.parse(await readFile(join(pkg, "package.json"), "utf8"));
|
|
37
44
|
if (typeof meta.version === "string" && meta.version.length > 0) {
|
|
38
|
-
const
|
|
39
|
-
|
|
45
|
+
const script = binScript(meta.bin);
|
|
46
|
+
const bin = script === undefined ? undefined : join(pkg, script);
|
|
47
|
+
return bin !== undefined && existsSync(bin)
|
|
48
|
+
? { version: meta.version, bin }
|
|
49
|
+
: { version: meta.version };
|
|
40
50
|
}
|
|
41
51
|
}
|
|
42
52
|
catch {
|
|
@@ -61,7 +71,9 @@ export async function delegateToProjectCli(options) {
|
|
|
61
71
|
const cli = await findProjectCli(options.root);
|
|
62
72
|
if (cli === undefined || cli.version === options.version || cli.bin === undefined)
|
|
63
73
|
return undefined;
|
|
64
|
-
|
|
74
|
+
// Not the `.bin` shim: its `bun` would load the project's `.env`, and the inherited
|
|
75
|
+
// NIFRA_MCP_WITHOUT_ENV_FILES then tells that CLI the values are already gone.
|
|
76
|
+
return handOffSession([process.execPath, "--no-env-file", cli.bin, "mcp", ...options.args], {
|
|
65
77
|
cwd: options.cwd,
|
|
66
78
|
env: { ...process.env, [MCP_DELEGATED_ENV]: "1" },
|
|
67
79
|
announce: `[nifra] mcp: this CLI is ${options.version}; the project installs @nifrajs/cli ${cli.version} - serving this session from ${cli.bin}`,
|
package/dist/mcp-delegate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-delegate.js","sourceRoot":"","sources":["../src/mcp-delegate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAIzC,gFAAgF;AAChF,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAA;AAEtD,oGAAoG;AACpG,MAAM,CAAC,MAAM,uBAAuB,GAAwB,IAAI,GAAG,CAAC;IAClE,aAAa;IACb,aAAa;IACb,YAAY;IACZ,eAAe;IACf,cAAc;IACd,iBAAiB;CAClB,CAAC,CAAA;AAQF,MAAM,QAAQ,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-delegate.js","sourceRoot":"","sources":["../src/mcp-delegate.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp-exec.d.ts
CHANGED
|
@@ -6,14 +6,19 @@
|
|
|
6
6
|
* replaceable.
|
|
7
7
|
*/
|
|
8
8
|
import { type CommandCatalogEntry, type CommandSpec } from "./command-catalog.js";
|
|
9
|
-
import type { LoadAppOptions, LoadedApp } from "./load.js";
|
|
9
|
+
import type { AppLoader, LoadAppOptions, LoadedApp } from "./load.js";
|
|
10
10
|
import { type CommandMcpToolOptions } from "./mcp-context.js";
|
|
11
11
|
import type { McpTool, McpToolContext } from "./mcp-protocol.js";
|
|
12
|
+
type GatePaths = Pick<typeof import("node:path"), "isAbsolute" | "relative" | "resolve">;
|
|
13
|
+
/** The files a stack the caller supplies may show a codeframe from: project source, never a dotfile
|
|
14
|
+
* or anything under a dot directory (`.env`, `.git/`, `.nifra/`), and never a file outside the root -
|
|
15
|
+
* which on Windows includes one on another drive, where `relative` answers with an absolute path. */
|
|
16
|
+
export declare function explainSourceGate(root: string, paths?: GatePaths): (file: string) => boolean;
|
|
12
17
|
/** Path to a sibling child entry (`mcp-run` / `mcp-render` / `mcp-ws`), resolved next to this module (`.ts` in
|
|
13
18
|
* dev, `.js` once built). Each runs in a FRESH subprocess per call so the project's current code loads. */
|
|
14
19
|
export declare function toMcpTool(source: CommandSpec<unknown, unknown> | CommandCatalogEntry, options: CommandMcpToolOptions): McpTool;
|
|
15
|
-
export declare function catalogProjectTools(cwd: string, loadAppCached?:
|
|
16
|
-
export declare function projectTools(cwd: string, loadAppCached?:
|
|
20
|
+
export declare function catalogProjectTools(cwd: string, loadAppCached?: AppLoader): McpTool[];
|
|
21
|
+
export declare function projectTools(cwd: string, loadAppCached?: AppLoader): McpTool[];
|
|
17
22
|
/** Spawn `bun <child> <cwd>`, pipe `input` to its stdin, return its stdout (or a stderr-backed error). */
|
|
18
23
|
/**
|
|
19
24
|
* How long a child gets before it is killed.
|
|
@@ -28,6 +33,9 @@ export declare function projectTools(cwd: string, loadAppCached?: (outDirName?:
|
|
|
28
33
|
* within one attention span rather than after minutes of polling.
|
|
29
34
|
*/
|
|
30
35
|
export declare function spawnChild(child: "mcp-run" | "mcp-render" | "mcp-ws", cwd: string, input: unknown, label: string, signal?: AbortSignal): Promise<string>;
|
|
36
|
+
/** Stop every warm worker and start no more, once the MCP client has closed stdin. A live worker
|
|
37
|
+
* holds the process open, so the server would otherwise never exit. */
|
|
38
|
+
export declare function closeWarmWorkers(): void;
|
|
31
39
|
/** A persistent `mcp-run`/`mcp-render` `--worker` subprocess: the backend/web app is loaded ONCE and
|
|
32
40
|
* reused across newline-delimited `{ id, input }` requests, replying `{ id, output }`. The same machinery
|
|
33
41
|
* powers both `nifra_run warm` and `nifra_render warm` - `child` selects which engine, `label` shapes the
|
|
@@ -39,6 +47,7 @@ export declare class WarmWorker {
|
|
|
39
47
|
private readonly label;
|
|
40
48
|
private readonly proc;
|
|
41
49
|
private readonly pending;
|
|
50
|
+
private readonly stopper;
|
|
42
51
|
private stdoutBuffer;
|
|
43
52
|
private stdoutBufferBytes;
|
|
44
53
|
private stderrBuffer;
|
|
@@ -72,6 +81,6 @@ export interface CachedAppLoaderOptions {
|
|
|
72
81
|
/** `mtime:size` of the app's config, framework and backend entry files: what notices an edit. */
|
|
73
82
|
export declare function appFingerprint(cwd: string): Promise<string>;
|
|
74
83
|
/** Cache LoadedApp inside one MCP server process, invalidating when config/backend mtimes change. */
|
|
75
|
-
export declare function createCachedAppLoader(cwd: string, options?: CachedAppLoaderOptions):
|
|
84
|
+
export declare function createCachedAppLoader(cwd: string, options?: CachedAppLoaderOptions): AppLoader;
|
|
76
85
|
export {};
|
|
77
86
|
//# sourceMappingURL=mcp-exec.d.ts.map
|
package/dist/mcp-exec.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-exec.d.ts","sourceRoot":"","sources":["../src/mcp-exec.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,EACL,KAAK,mBAAmB,EAExB,KAAK,WAAW,EAMjB,MAAM,sBAAsB,CAAA;AAI7B,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"mcp-exec.d.ts","sourceRoot":"","sources":["../src/mcp-exec.ts"],"names":[],"mappings":"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"}
|