@nifrajs/cli 3.3.0 → 4.0.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 +42 -3
- package/dist/app-files.d.ts +11 -0
- package/dist/app-files.d.ts.map +1 -0
- package/dist/app-files.js +34 -0
- package/dist/app-files.js.map +1 -0
- package/dist/assure-hydration.d.ts +7 -1
- package/dist/assure-hydration.d.ts.map +1 -1
- package/dist/assure-hydration.js +128 -43
- package/dist/assure-hydration.js.map +1 -1
- package/dist/assure.d.ts.map +1 -1
- package/dist/assure.js +16 -2
- package/dist/assure.js.map +1 -1
- package/dist/capabilities-tool.d.ts +5 -1
- package/dist/capabilities-tool.d.ts.map +1 -1
- package/dist/capabilities-tool.js +32 -10
- package/dist/capabilities-tool.js.map +1 -1
- package/dist/cdn-check.d.ts +41 -0
- package/dist/cdn-check.d.ts.map +1 -0
- package/dist/cdn-check.js +207 -0
- package/dist/cdn-check.js.map +1 -0
- package/dist/check-diagnostics.d.ts +7 -15
- package/dist/check-diagnostics.d.ts.map +1 -1
- package/dist/check-diagnostics.js +162 -713
- package/dist/check-diagnostics.js.map +1 -1
- package/dist/check-scan.d.ts +58 -7
- package/dist/check-scan.d.ts.map +1 -1
- package/dist/check-scan.js +323 -62
- package/dist/check-scan.js.map +1 -1
- package/dist/check.d.ts +1 -0
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +145 -54
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +42 -16
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +306 -87
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.d.ts +60 -5
- package/dist/command-catalog.d.ts.map +1 -1
- package/dist/command-catalog.js +298 -33
- package/dist/command-catalog.js.map +1 -1
- package/dist/config-target.d.ts +8 -0
- package/dist/config-target.d.ts.map +1 -0
- package/dist/config-target.js +45 -0
- package/dist/config-target.js.map +1 -0
- package/dist/contracts.d.ts +3 -2
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +56 -16
- package/dist/contracts.js.map +1 -1
- package/dist/db-audit.d.ts +37 -0
- package/dist/db-audit.d.ts.map +1 -0
- package/dist/db-audit.js +99 -0
- package/dist/db-audit.js.map +1 -0
- package/dist/db-child.d.ts +64 -0
- package/dist/db-child.d.ts.map +1 -0
- package/dist/db-child.js +213 -0
- package/dist/db-child.js.map +1 -0
- package/dist/db-config.d.ts +60 -0
- package/dist/db-config.d.ts.map +1 -0
- package/dist/db-config.js +176 -0
- package/dist/db-config.js.map +1 -0
- package/dist/db-tool.d.ts +84 -0
- package/dist/db-tool.d.ts.map +1 -0
- package/dist/db-tool.js +537 -0
- package/dist/db-tool.js.map +1 -0
- package/dist/dev-bun-config.d.ts +20 -13
- package/dist/dev-bun-config.d.ts.map +1 -1
- package/dist/dev-bun-config.js +98 -41
- package/dist/dev-bun-config.js.map +1 -1
- package/dist/dev-feed-tool.d.ts +106 -0
- package/dist/dev-feed-tool.d.ts.map +1 -0
- package/dist/dev-feed-tool.js +713 -0
- package/dist/dev-feed-tool.js.map +1 -0
- package/dist/dev-server-client.d.ts +67 -0
- package/dist/dev-server-client.d.ts.map +1 -0
- package/dist/dev-server-client.js +195 -0
- package/dist/dev-server-client.js.map +1 -0
- package/dist/diagnostics.d.ts +86 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/diagnostics.js +85 -0
- package/dist/diagnostics.js.map +1 -1
- package/dist/diff-tool.d.ts +3 -3
- package/dist/diff-tool.d.ts.map +1 -1
- package/dist/diff-tool.js +6 -5
- package/dist/diff-tool.js.map +1 -1
- package/dist/docs-search.d.ts.map +1 -1
- package/dist/docs-search.js +12 -4
- package/dist/docs-search.js.map +1 -1
- package/dist/doctor.d.ts +17 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +76 -15
- package/dist/doctor.js.map +1 -1
- package/dist/env-file.d.ts +15 -0
- package/dist/env-file.d.ts.map +1 -1
- package/dist/env-file.js +73 -1
- package/dist/env-file.js.map +1 -1
- package/dist/fix-recipes.d.ts.map +1 -1
- package/dist/fix-recipes.js +41 -21
- package/dist/fix-recipes.js.map +1 -1
- package/dist/frontend-guidance.js +5 -5
- package/dist/frontend-guidance.js.map +1 -1
- package/dist/i18n-check.d.ts +16 -0
- package/dist/i18n-check.d.ts.map +1 -0
- package/dist/i18n-check.js +154 -0
- package/dist/i18n-check.js.map +1 -0
- package/dist/init-agents.d.ts +49 -13
- package/dist/init-agents.d.ts.map +1 -1
- package/dist/init-agents.js +239 -34
- package/dist/init-agents.js.map +1 -1
- package/dist/internal/code-unit-order.d.ts +4 -0
- package/dist/internal/code-unit-order.d.ts.map +1 -0
- package/dist/internal/code-unit-order.js +6 -0
- package/dist/internal/code-unit-order.js.map +1 -0
- package/dist/internal/script-kind.d.ts +7 -0
- package/dist/internal/script-kind.d.ts.map +1 -0
- package/dist/internal/script-kind.js +12 -0
- package/dist/internal/script-kind.js.map +1 -0
- package/dist/internal/source-facts.d.ts +5 -0
- package/dist/internal/source-facts.d.ts.map +1 -1
- package/dist/internal/source-facts.js +61 -5
- package/dist/internal/source-facts.js.map +1 -1
- package/dist/internal/typescript-import.d.ts +49 -24
- package/dist/internal/typescript-import.d.ts.map +1 -1
- package/dist/internal/typescript-import.js +507 -67
- package/dist/internal/typescript-import.js.map +1 -1
- package/dist/introspect.d.ts +6 -4
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +93 -74
- package/dist/introspect.js.map +1 -1
- package/dist/learn.js +3 -3
- package/dist/learn.js.map +1 -1
- package/dist/levels-tool.d.ts +10 -0
- package/dist/levels-tool.d.ts.map +1 -1
- package/dist/levels-tool.js +33 -3
- package/dist/levels-tool.js.map +1 -1
- package/dist/load.d.ts +71 -16
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +78 -18
- package/dist/load.js.map +1 -1
- package/dist/manifest-tool.d.ts.map +1 -1
- package/dist/manifest-tool.js +3 -2
- package/dist/manifest-tool.js.map +1 -1
- package/dist/mcp-app-tool.d.ts.map +1 -1
- package/dist/mcp-app-tool.js +2 -0
- package/dist/mcp-app-tool.js.map +1 -1
- package/dist/mcp-context.d.ts.map +1 -1
- package/dist/mcp-context.js +5 -6
- package/dist/mcp-context.js.map +1 -1
- package/dist/mcp-delegate.d.ts +57 -0
- package/dist/mcp-delegate.d.ts.map +1 -0
- package/dist/mcp-delegate.js +130 -0
- package/dist/mcp-delegate.js.map +1 -0
- package/dist/mcp-docs-tools.d.ts.map +1 -1
- package/dist/mcp-docs-tools.js +23 -5
- package/dist/mcp-docs-tools.js.map +1 -1
- package/dist/mcp-exec.d.ts +3 -0
- package/dist/mcp-exec.d.ts.map +1 -1
- package/dist/mcp-exec.js +263 -131
- package/dist/mcp-exec.js.map +1 -1
- package/dist/mcp-http.d.ts.map +1 -1
- package/dist/mcp-http.js +20 -5
- package/dist/mcp-http.js.map +1 -1
- package/dist/mcp-io.d.ts +26 -0
- package/dist/mcp-io.d.ts.map +1 -1
- package/dist/mcp-io.js +113 -0
- package/dist/mcp-io.js.map +1 -1
- package/dist/mcp-isolate.d.ts +48 -0
- package/dist/mcp-isolate.d.ts.map +1 -0
- package/dist/mcp-isolate.js +222 -0
- package/dist/mcp-isolate.js.map +1 -0
- package/dist/mcp-path.d.ts +10 -0
- package/dist/mcp-path.d.ts.map +1 -0
- package/dist/mcp-path.js +51 -0
- package/dist/mcp-path.js.map +1 -0
- package/dist/mcp-project-child.d.ts +74 -0
- package/dist/mcp-project-child.d.ts.map +1 -0
- package/dist/mcp-project-child.js +130 -0
- package/dist/mcp-project-child.js.map +1 -0
- package/dist/mcp-reflect.d.ts.map +1 -1
- package/dist/mcp-reflect.js +2 -2
- package/dist/mcp-reflect.js.map +1 -1
- package/dist/mcp-render.d.ts.map +1 -1
- package/dist/mcp-render.js +64 -45
- package/dist/mcp-render.js.map +1 -1
- package/dist/mcp-root.d.ts +37 -9
- package/dist/mcp-root.d.ts.map +1 -1
- package/dist/mcp-root.js +124 -25
- package/dist/mcp-root.js.map +1 -1
- package/dist/mcp-run.d.ts +18 -1
- package/dist/mcp-run.d.ts.map +1 -1
- package/dist/mcp-run.js +159 -55
- package/dist/mcp-run.js.map +1 -1
- package/dist/mcp-ws.js +4 -1
- package/dist/mcp-ws.js.map +1 -1
- package/dist/mcp.d.ts +18 -5
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +165 -82
- package/dist/mcp.js.map +1 -1
- package/dist/migrate-layout.d.ts +44 -0
- package/dist/migrate-layout.d.ts.map +1 -0
- package/dist/migrate-layout.js +982 -0
- package/dist/migrate-layout.js.map +1 -0
- package/dist/openapi-tool.d.ts +2 -2
- package/dist/openapi-tool.d.ts.map +1 -1
- package/dist/openapi-tool.js.map +1 -1
- package/dist/openapi-types.d.ts +2 -1
- package/dist/openapi-types.d.ts.map +1 -1
- package/dist/openapi-types.js +240 -12
- package/dist/openapi-types.js.map +1 -1
- package/dist/pipeline-report.d.ts +3 -2
- package/dist/pipeline-report.d.ts.map +1 -1
- package/dist/pipeline-report.js +19 -16
- package/dist/pipeline-report.js.map +1 -1
- package/dist/port.d.ts +5 -4
- package/dist/port.d.ts.map +1 -1
- package/dist/port.js +46 -29
- package/dist/port.js.map +1 -1
- package/dist/project-facts.d.ts +28 -4
- package/dist/project-facts.d.ts.map +1 -1
- package/dist/project-facts.js +12 -2
- package/dist/project-facts.js.map +1 -1
- package/dist/recipes/4.0.0.d.ts +9 -0
- package/dist/recipes/4.0.0.d.ts.map +1 -0
- package/dist/recipes/4.0.0.js +34 -0
- package/dist/recipes/4.0.0.js.map +1 -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 +11 -1
- package/dist/release-verification.d.ts.map +1 -1
- package/dist/release-verification.js +47 -4
- package/dist/release-verification.js.map +1 -1
- package/dist/review.d.ts +21 -0
- package/dist/review.d.ts.map +1 -0
- package/dist/review.js +823 -0
- package/dist/review.js.map +1 -0
- package/dist/route-types.d.ts +28 -0
- package/dist/route-types.d.ts.map +1 -0
- package/dist/route-types.js +106 -0
- package/dist/route-types.js.map +1 -0
- package/dist/rules/codes.d.ts +9 -0
- package/dist/rules/codes.d.ts.map +1 -1
- package/dist/rules/codes.js +9 -0
- package/dist/rules/codes.js.map +1 -1
- package/dist/rules/data-guard.d.ts +12 -0
- package/dist/rules/data-guard.d.ts.map +1 -0
- package/dist/rules/data-guard.js +213 -0
- package/dist/rules/data-guard.js.map +1 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +17 -5
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/islands.d.ts.map +1 -1
- package/dist/rules/islands.js +7 -4
- package/dist/rules/islands.js.map +1 -1
- package/dist/rules/legacy.d.ts +3 -1
- package/dist/rules/legacy.d.ts.map +1 -1
- package/dist/rules/legacy.js +829 -34
- package/dist/rules/legacy.js.map +1 -1
- package/dist/rules/nano.d.ts.map +1 -1
- package/dist/rules/nano.js +15 -6
- package/dist/rules/nano.js.map +1 -1
- package/dist/rules/pages.d.ts +15 -0
- package/dist/rules/pages.d.ts.map +1 -0
- package/dist/rules/pages.js +88 -0
- package/dist/rules/pages.js.map +1 -0
- package/dist/rules/routes.d.ts +11 -0
- package/dist/rules/routes.d.ts.map +1 -1
- package/dist/rules/routes.js +180 -2
- package/dist/rules/routes.js.map +1 -1
- package/dist/rules/secrets.d.ts +10 -0
- package/dist/rules/secrets.d.ts.map +1 -0
- package/dist/rules/secrets.js +169 -0
- package/dist/rules/secrets.js.map +1 -0
- package/dist/rules/security.d.ts +7 -0
- package/dist/rules/security.d.ts.map +1 -1
- package/dist/rules/security.js +171 -65
- package/dist/rules/security.js.map +1 -1
- package/dist/rules/typescript.d.ts +16 -0
- package/dist/rules/typescript.d.ts.map +1 -0
- package/dist/rules/typescript.js +59 -0
- package/dist/rules/typescript.js.map +1 -0
- package/dist/rules/zones.d.ts +17 -0
- package/dist/rules/zones.d.ts.map +1 -0
- package/dist/rules/zones.js +174 -0
- package/dist/rules/zones.js.map +1 -0
- package/dist/scaffold.d.ts +25 -12
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/scaffold.js +154 -90
- package/dist/scaffold.js.map +1 -1
- package/dist/sdk.d.ts +17 -3
- package/dist/sdk.d.ts.map +1 -1
- package/dist/sdk.js +941 -153
- package/dist/sdk.js.map +1 -1
- package/dist/search-terms.d.ts +2 -0
- package/dist/search-terms.d.ts.map +1 -1
- package/dist/search-terms.js +23 -8
- package/dist/search-terms.js.map +1 -1
- package/dist/smoke.d.ts +79 -0
- package/dist/smoke.d.ts.map +1 -0
- package/dist/smoke.js +494 -0
- package/dist/smoke.js.map +1 -0
- package/dist/sync-manifest.d.ts.map +1 -1
- package/dist/sync-manifest.js +2 -1
- package/dist/sync-manifest.js.map +1 -1
- package/dist/sync-routes.d.ts +4 -3
- package/dist/sync-routes.d.ts.map +1 -1
- package/dist/sync-routes.js +4 -3
- package/dist/sync-routes.js.map +1 -1
- package/dist/test-tool.d.ts.map +1 -1
- package/dist/test-tool.js +30 -11
- package/dist/test-tool.js.map +1 -1
- package/dist/types-search.d.ts.map +1 -1
- package/dist/types-search.js +11 -5
- package/dist/types-search.js.map +1 -1
- package/dist/upgrade.d.ts +36 -6
- package/dist/upgrade.d.ts.map +1 -1
- package/dist/upgrade.js +167 -29
- package/dist/upgrade.js.map +1 -1
- package/dist/verification-plan.d.ts.map +1 -1
- package/dist/verification-plan.js +8 -0
- package/dist/verification-plan.js.map +1 -1
- package/dist/verification.d.ts.map +1 -1
- package/dist/verification.js +45 -12
- package/dist/verification.js.map +1 -1
- package/dist/web-app-options.d.ts +19 -0
- package/dist/web-app-options.d.ts.map +1 -0
- package/dist/web-app-options.js +49 -0
- package/dist/web-app-options.js.map +1 -0
- package/dist/work-graph.d.ts +3 -0
- package/dist/work-graph.d.ts.map +1 -1
- package/dist/work-graph.js +33 -16
- package/dist/work-graph.js.map +1 -1
- package/docs/examples.json +185 -29
- package/docs/llms-full.txt +4123 -548
- package/docs/types.json +14391 -10060
- package/package.json +19 -11
- package/src/app-files.ts +40 -0
- package/src/assure-hydration.ts +139 -46
- package/src/assure.ts +17 -2
- package/src/capabilities-tool.ts +35 -9
- package/src/cdn-check.ts +268 -0
- package/src/check-diagnostics.ts +199 -797
- package/src/check-scan.ts +394 -63
- package/src/check.ts +146 -58
- package/src/cli.ts +347 -92
- package/src/command-catalog.ts +407 -45
- package/src/config-target.ts +47 -0
- package/src/contracts.ts +66 -15
- package/src/db-audit.ts +128 -0
- package/src/db-child.ts +285 -0
- package/src/db-config.ts +224 -0
- package/src/db-tool.ts +690 -0
- package/src/dev-bun-config.ts +116 -40
- package/src/dev-feed-tool.ts +912 -0
- package/src/dev-server-client.ts +267 -0
- package/src/diagnostics.ts +179 -0
- package/src/diff-tool.ts +6 -5
- package/src/docs-search.ts +10 -3
- package/src/doctor.ts +98 -15
- package/src/env-file.ts +78 -1
- package/src/fix-recipes.ts +44 -31
- package/src/frontend-guidance.ts +5 -5
- package/src/i18n-check.ts +179 -0
- package/src/init-agents.ts +301 -38
- package/src/internal/code-unit-order.ts +5 -0
- package/src/internal/script-kind.ts +11 -0
- package/src/internal/source-facts.ts +96 -22
- package/src/internal/typescript-import.ts +663 -68
- package/src/introspect.ts +93 -82
- package/src/learn.ts +3 -3
- package/src/levels-tool.ts +47 -2
- package/src/load.ts +144 -32
- package/src/manifest-tool.ts +3 -2
- package/src/mcp-app-tool.ts +2 -0
- package/src/mcp-context.ts +5 -7
- package/src/mcp-delegate.ts +162 -0
- package/src/mcp-docs-tools.ts +23 -5
- package/src/mcp-exec.ts +301 -161
- package/src/mcp-http.ts +22 -5
- package/src/mcp-io.ts +130 -0
- package/src/mcp-isolate.ts +287 -0
- package/src/mcp-path.ts +50 -0
- package/src/mcp-project-child.ts +182 -0
- package/src/mcp-reflect.ts +3 -2
- package/src/mcp-render.ts +72 -42
- package/src/mcp-root.ts +130 -24
- package/src/mcp-run.ts +190 -56
- package/src/mcp-ws.ts +4 -1
- package/src/mcp.ts +193 -91
- package/src/migrate-layout.ts +1121 -0
- package/src/openapi-tool.ts +7 -3
- package/src/openapi-types.ts +315 -13
- package/src/pipeline-report.ts +22 -18
- package/src/port.ts +53 -30
- package/src/project-facts.ts +42 -8
- package/src/recipes/4.0.0.ts +35 -0
- package/src/recipes/index.ts +2 -0
- package/src/release-verification.ts +74 -5
- package/src/review.ts +988 -0
- package/src/route-types.ts +133 -0
- package/src/rules/codes.ts +9 -0
- package/src/rules/data-guard.ts +230 -0
- package/src/rules/index.ts +18 -5
- package/src/rules/islands.ts +12 -4
- package/src/rules/legacy.ts +947 -35
- package/src/rules/nano.ts +18 -6
- package/src/rules/pages.ts +99 -0
- package/src/rules/routes.ts +181 -2
- package/src/rules/secrets.ts +174 -0
- package/src/rules/security.ts +198 -70
- package/src/rules/typescript.ts +77 -0
- package/src/rules/zones.ts +195 -0
- package/src/scaffold.ts +175 -98
- package/src/sdk.ts +1215 -158
- package/src/search-terms.ts +24 -7
- package/src/smoke.ts +607 -0
- package/src/sync-manifest.ts +2 -1
- package/src/sync-routes.ts +4 -3
- package/src/test-tool.ts +32 -11
- package/src/types-search.ts +11 -4
- package/src/upgrade.ts +205 -25
- package/src/verification-plan.ts +27 -0
- package/src/verification.ts +50 -12
- package/src/web-app-options.ts +57 -0
- package/src/work-graph.ts +40 -16
package/dist/levels-tool.js
CHANGED
|
@@ -49,7 +49,7 @@ export async function collectVerificationLevels(cwd, options = {}) {
|
|
|
49
49
|
]) {
|
|
50
50
|
statuses.push({ level, name, ok: false, reasons: [reason] });
|
|
51
51
|
}
|
|
52
|
-
return finalize(statuses);
|
|
52
|
+
return finalize(statuses, []);
|
|
53
53
|
}
|
|
54
54
|
const config = verification.config;
|
|
55
55
|
// L1 - route assurance.
|
|
@@ -154,9 +154,9 @@ export async function collectVerificationLevels(cwd, options = {}) {
|
|
|
154
154
|
ok: l4Reasons.length === 0,
|
|
155
155
|
reasons: l4Reasons,
|
|
156
156
|
});
|
|
157
|
-
return finalize(statuses);
|
|
157
|
+
return finalize(statuses, assurance.routes);
|
|
158
158
|
}
|
|
159
|
-
function finalize(statuses) {
|
|
159
|
+
function finalize(statuses, routes) {
|
|
160
160
|
// Cumulative: the achieved level is the last rung with every rung below it also holding.
|
|
161
161
|
let achieved = -1;
|
|
162
162
|
for (const status of statuses) {
|
|
@@ -164,9 +164,36 @@ function finalize(statuses) {
|
|
|
164
164
|
break;
|
|
165
165
|
achieved = status.level;
|
|
166
166
|
}
|
|
167
|
+
const declared = routes.filter((route) => route.responseContract !== undefined);
|
|
168
|
+
const enforced = declared.filter((route) => route.responseContract === "enforce").length;
|
|
169
|
+
const warnOnly = declared.filter((route) => route.responseContract === "warn").length;
|
|
170
|
+
const typedOnly = declared.filter((route) => route.responseContract === "unchecked").length;
|
|
171
|
+
const responseContracts = {
|
|
172
|
+
declared: declared.length,
|
|
173
|
+
enforced,
|
|
174
|
+
warnOnly,
|
|
175
|
+
typedOnly,
|
|
176
|
+
status: declared.length === 0 ? "none" : typedOnly === 0 && warnOnly === 0 ? "enforced" : "partial",
|
|
177
|
+
reasons: declared.length === 0
|
|
178
|
+
? ["no response/error schemas declared"]
|
|
179
|
+
: [
|
|
180
|
+
...(typedOnly > 0
|
|
181
|
+
? [
|
|
182
|
+
`${typedOnly} declared route(s) are typed-only; install responseContract("enforce")`,
|
|
183
|
+
]
|
|
184
|
+
: []),
|
|
185
|
+
...(warnOnly > 0
|
|
186
|
+
? [`${warnOnly} declared route(s) are warn-only and still send the original payload`]
|
|
187
|
+
: []),
|
|
188
|
+
],
|
|
189
|
+
};
|
|
167
190
|
return Object.freeze({
|
|
168
191
|
achieved,
|
|
169
192
|
levels: Object.freeze(statuses.map((status) => Object.freeze({ ...status, reasons: Object.freeze([...status.reasons]) }))),
|
|
193
|
+
responseContracts: Object.freeze({
|
|
194
|
+
...responseContracts,
|
|
195
|
+
reasons: Object.freeze([...responseContracts.reasons]),
|
|
196
|
+
}),
|
|
170
197
|
});
|
|
171
198
|
}
|
|
172
199
|
/** CLI entry: print the ladder (or JSON) and return whether the requested floor is met. */
|
|
@@ -182,6 +209,9 @@ export async function runLevels(cwd, options = {}) {
|
|
|
182
209
|
for (const reason of status.reasons)
|
|
183
210
|
console.log(` - ${reason}`);
|
|
184
211
|
}
|
|
212
|
+
console.log(`[nifra] response contracts: ${result.responseContracts.status} (${result.responseContracts.enforced} enforced, ${result.responseContracts.warnOnly} warn-only, ${result.responseContracts.typedOnly} typed-only)`);
|
|
213
|
+
for (const reason of result.responseContracts.reasons)
|
|
214
|
+
console.log(` - ${reason}`);
|
|
185
215
|
console.log(result.achieved < 0
|
|
186
216
|
? "[nifra] verification level: none (L0 failing)"
|
|
187
217
|
: `[nifra] verification level: L${result.achieved}`);
|
package/dist/levels-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"levels-tool.js","sourceRoot":"","sources":["../src/levels-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AAC/E,OAAO,EAAwB,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,OAAO,EAEL,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"levels-tool.js","sourceRoot":"","sources":["../src/levels-tool.ts"],"names":[],"mappings":"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"}
|
package/dist/load.d.ts
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
|
+
import type { CreateWebAppOptions, CssLoadingMode } from "@nifrajs/web";
|
|
2
|
+
import type { SecretExemption } from "@nifrajs/web/build";
|
|
1
3
|
/**
|
|
2
|
-
* A plugin list - either an array, or a **thunk** that returns one (optionally async). Both forms
|
|
3
|
-
* accepted; {@link resolvePlugins} normalizes them. The thunk is just a convenience for
|
|
4
|
-
* plugin's construction - it does NOT make a plugin edge-safe (Bun.build follows a
|
|
5
|
-
* even from an unused export, so a Vite/compiler import in an edge-bundled file
|
|
6
|
-
* safety comes from WHERE the config lives: keep these fields in
|
|
7
|
-
* the edge-imported `framework.ts`. See the module
|
|
4
|
+
* A plugin list - either an array, or a **thunk** that returns one (optionally async). Both forms
|
|
5
|
+
* are accepted; {@link resolvePlugins} normalizes them. The thunk is just a convenience for
|
|
6
|
+
* deferring a plugin's construction - it does NOT make a plugin edge-safe (Bun.build follows a
|
|
7
|
+
* dynamic `import()` even from an unused export, so a Vite/compiler import in an edge-bundled file
|
|
8
|
+
* fails regardless). Edge safety comes from WHERE the config lives: keep these fields in
|
|
9
|
+
* `nifra.config.ts` (CLI-only), not in the edge-imported `backend/framework.ts`. See the module
|
|
10
|
+
* header.
|
|
8
11
|
*/
|
|
9
12
|
export type PluginsField = readonly unknown[] | (() => readonly unknown[] | Promise<readonly unknown[]>);
|
|
10
13
|
/**
|
|
11
|
-
* The CLI's framework wiring - exported from `nifra.config.ts` (or `framework.ts` as a
|
|
12
|
-
* `create-nifra` generates it. Only `adapter` + `clientModule` are required; the
|
|
13
|
-
* fields are framework-specific extras (Vue/Svelte/Solid need them; React/Preact
|
|
14
|
+
* The CLI's framework wiring - exported from `nifra.config.ts` (or `backend/framework.ts` as a
|
|
15
|
+
* fallback). `create-nifra` generates it. Only `adapter` + `clientModule` are required; the
|
|
16
|
+
* plugin/condition fields are framework-specific extras (Vue/Svelte/Solid need them; React/Preact
|
|
17
|
+
* don't).
|
|
14
18
|
*/
|
|
15
19
|
export interface NifraFramework {
|
|
16
20
|
/** The render adapter, e.g. `reactAdapter` from `@nifrajs/web-react`. */
|
|
@@ -20,7 +24,7 @@ export interface NifraFramework {
|
|
|
20
24
|
/** App-level middleware applied to the web app before its page routes are declared -
|
|
21
25
|
* e.g. `(app) => app.use(securityHeaders())`. Runs ahead of the `api`/`mounts` hooks.
|
|
22
26
|
*
|
|
23
|
-
* MUST be exported from `framework.ts`, not `nifra.config.ts`: `nifra build` emits a
|
|
27
|
+
* MUST be exported from `backend/framework.ts`, not `nifra.config.ts`: `nifra build` emits a
|
|
24
28
|
* server entry that imports it, and that entry is edge-bundled. See the module header. */
|
|
25
29
|
readonly use?: (app: never) => void;
|
|
26
30
|
/** Vite plugins for `nifra dev`'s HMR, e.g. `[react()]` / `() => import("@vitejs/plugin-vue")…`. */
|
|
@@ -35,11 +39,53 @@ export interface NifraFramework {
|
|
|
35
39
|
readonly conditions?: readonly string[];
|
|
36
40
|
/** Compile-time `define` replacements, e.g. Vue's `__VUE_*` flags. */
|
|
37
41
|
readonly define?: Readonly<Record<string, string>>;
|
|
42
|
+
/** The deploy target `nifra build` emits without `--target` (default `"bun"`); `nifra target <t>`
|
|
43
|
+
* rewrites it. */
|
|
44
|
+
readonly target?: string;
|
|
45
|
+
/** `"platform"` makes a `cloudflare` / `vercel` build read `c.clientIp` from the header that
|
|
46
|
+
* platform's edge overwrites (`cf-connecting-ip` / `x-real-ip`). Left out, an edge build has no
|
|
47
|
+
* caller address, so a per-caller `rateLimit` refuses every request. Declare it only while that edge
|
|
48
|
+
* is the sole way in: served any other way the header is whatever the client sent. Self-hosting
|
|
49
|
+
* targets use the socket peer either way. */
|
|
50
|
+
readonly clientIp?: "platform";
|
|
51
|
+
/** `nifra dev` settings. `indicator: false` turns the in-page issues badge off for every run
|
|
52
|
+
* (`nifra dev --no-indicator` does it for one); browser errors still reach `nifra errors`. */
|
|
53
|
+
readonly dev?: {
|
|
54
|
+
readonly indicator?: boolean;
|
|
55
|
+
};
|
|
38
56
|
/** Static files directory. Defaults to `<app>/public`; `false` disables it. */
|
|
39
57
|
readonly publicDir?: string | false;
|
|
40
58
|
/** Client-visible environment prefix (default `"PUBLIC_"`; empty disables exposure). */
|
|
41
59
|
readonly publicEnvPrefix?: string;
|
|
60
|
+
/** Reviewed false positives of `nifra build`'s secret scan, each `{ rule, file, reason }` (or
|
|
61
|
+
* `{ rule: "private-env-value", env, reason }`). There is no exemption by value. */
|
|
62
|
+
readonly secretExemptions?: readonly SecretExemption[];
|
|
63
|
+
/** Vite production CSS output policy. `false` emits one aggregate stylesheet for the whole client. */
|
|
64
|
+
readonly cssCodeSplit?: boolean;
|
|
65
|
+
/** Framework-owned SSR stylesheet activation. Deferred mode is intended for aggregate CSS. */
|
|
66
|
+
readonly cssLoading?: CssLoadingMode;
|
|
67
|
+
/** Path `backend/app.ts`'s backend is served at (default `"/api"`; `""` turns the mount off). A
|
|
68
|
+
* page file under it can never render, so the app refuses to start and `nifra build` refuses to
|
|
69
|
+
* build.
|
|
70
|
+
*
|
|
71
|
+
* The fields from here down reach the generated server entry, so like `use` they MUST be exported
|
|
72
|
+
* from `backend/framework.ts` (re-export them from `nifra.config.ts` when both exist). */
|
|
73
|
+
readonly apiPrefix?: string;
|
|
74
|
+
/** Strip {@link apiPrefix} before the backend sees the path, for a backend that declares its routes
|
|
75
|
+
* without it. Default `false`. */
|
|
76
|
+
readonly apiStrip?: boolean;
|
|
77
|
+
/** Apps mounted ahead of page routing - an auth handler, a webhook receiver, a backend served at an
|
|
78
|
+
* extra path. See `createWebApp`'s `mounts`. */
|
|
79
|
+
readonly mounts?: CreateWebAppOptions["mounts"];
|
|
80
|
+
/** A hash-based Content-Security-Policy from `createCspPolicy`. Exclusive with {@link nonce}. */
|
|
81
|
+
readonly csp?: CreateWebAppOptions["csp"];
|
|
82
|
+
/** A per-request CSP nonce resolver. Exclusive with {@link csp}. */
|
|
83
|
+
readonly nonce?: CreateWebAppOptions["nonce"];
|
|
42
84
|
}
|
|
85
|
+
/** The {@link NifraFramework} fields forwarded to `createWebApp` and imported by the generated server
|
|
86
|
+
* entry, in one list so every command that builds the app forwards the same set. */
|
|
87
|
+
export declare const FRAMEWORK_WEB_OPTIONS: readonly ["apiPrefix", "apiStrip", "mounts", "csp", "nonce"];
|
|
88
|
+
export type FrameworkWebOption = (typeof FRAMEWORK_WEB_OPTIONS)[number];
|
|
43
89
|
/** Normalize a {@link PluginsField} (array | thunk | undefined) to a fresh array, awaiting a thunk. */
|
|
44
90
|
export declare function resolvePlugins(field: PluginsField | undefined): Promise<unknown[]>;
|
|
45
91
|
export interface ResolvedPlugins {
|
|
@@ -49,8 +95,9 @@ export interface ResolvedPlugins {
|
|
|
49
95
|
}
|
|
50
96
|
export interface LoadedApp {
|
|
51
97
|
readonly cwd: string;
|
|
52
|
-
/** Absolute path of the config this app was loaded from - `nifra.config.ts`, or
|
|
53
|
-
* fallback. `nifra dev`'s Bun pipeline re-imports it from a
|
|
98
|
+
/** Absolute path of the config this app was loaded from - `nifra.config.ts`, or
|
|
99
|
+
* `backend/framework.ts` as the fallback. `nifra dev`'s Bun pipeline re-imports it from a
|
|
100
|
+
* GENERATED module so the app's own
|
|
54
101
|
* `clientPlugins` reach Bun's dev-server bundler, which takes plugins only as module paths. */
|
|
55
102
|
readonly configPath: string;
|
|
56
103
|
readonly routesDir: string;
|
|
@@ -59,7 +106,7 @@ export interface LoadedApp {
|
|
|
59
106
|
readonly framework: NifraFramework;
|
|
60
107
|
/** Plugin thunks resolved exactly once during app loading and reused by every command phase. */
|
|
61
108
|
readonly resolvedPlugins: ResolvedPlugins;
|
|
62
|
-
/** The `backend` export from `backend.ts`, or `undefined` if there's no `backend.ts`. */
|
|
109
|
+
/** The `backend` export from `backend/app.ts`, or `undefined` if there's no `backend/app.ts`. */
|
|
63
110
|
readonly backend: unknown;
|
|
64
111
|
}
|
|
65
112
|
export interface LoadAppOptions {
|
|
@@ -69,7 +116,8 @@ export interface LoadAppOptions {
|
|
|
69
116
|
/**
|
|
70
117
|
* Root-level monorepo config - exported from `nifra.config.ts` at the workspace root.
|
|
71
118
|
* Each key in `apps` is the short name used to namespace MCP tools (`nifra_<name>_context` etc.);
|
|
72
|
-
* each value is a path relative to the root that contains its own `nifra.config.ts` /
|
|
119
|
+
* each value is a path relative to the root that contains its own `nifra.config.ts` /
|
|
120
|
+
* `backend/framework.ts`.
|
|
73
121
|
*
|
|
74
122
|
* Example:
|
|
75
123
|
* ```ts
|
|
@@ -96,7 +144,14 @@ export declare function loadMonorepoApps(rootCwd: string, config: NifraMonorepoC
|
|
|
96
144
|
name: string;
|
|
97
145
|
cwd: string;
|
|
98
146
|
}>>;
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
147
|
+
/**
|
|
148
|
+
* What reads only the backend (`nifra openapi`): the whole app when it has a web config, else
|
|
149
|
+
* `backend/app.ts` alone, so an API-only app needs no adapter to describe its routes.
|
|
150
|
+
*/
|
|
151
|
+
export declare function loadBackendApp(cwd: string, options?: LoadAppOptions): Promise<Pick<LoadedApp, "cwd" | "backend">>;
|
|
152
|
+
/** Discover + validate the app conventions rooted at `cwd`. Prefers `nifra.config.ts`, falls back
|
|
153
|
+
* to
|
|
154
|
+
* `backend/framework.ts`. Throws a clear, actionable error if neither exists or the config is
|
|
155
|
+
* malformed. */
|
|
101
156
|
export declare function loadApp(cwd: string, outDirName?: string, options?: LoadAppOptions): Promise<LoadedApp>;
|
|
102
157
|
//# sourceMappingURL=load.d.ts.map
|
package/dist/load.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"load.d.ts","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"}
|
package/dist/load.js
CHANGED
|
@@ -9,20 +9,62 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
|
|
|
9
9
|
/**
|
|
10
10
|
* Zero-config app discovery. The CLI reads a few conventions from the project root:
|
|
11
11
|
* - `routes/` - the file-based routes (per `@nifrajs/web/fs`).
|
|
12
|
-
* - `nifra.config.ts` - the CLI's framework wiring (see {@link NifraFramework});
|
|
13
|
-
* used as a fallback. One of the two is required.
|
|
14
|
-
* - `backend.ts` - exports `backend` (a `@nifrajs/core` server, the contract). Optional.
|
|
12
|
+
* - `nifra.config.ts` - the CLI's framework wiring (see {@link NifraFramework});
|
|
13
|
+
* `backend/framework.ts` is used as a fallback. One of the two is required.
|
|
14
|
+
* - `backend/app.ts` - exports `backend` (a `@nifrajs/core` server, the contract). Optional.
|
|
15
15
|
*
|
|
16
|
-
* Why two filenames: a multi-target app's edge entry (`_worker.ts`) imports `framework.ts`
|
|
17
|
-
* render adapter, so `framework.ts` must stay edge-bundlable - it can't reference
|
|
18
|
-
* SFC compiler (Bun would pull them into the `target:"browser"` worker and fail
|
|
19
|
-
* `nifra.config.ts` holds that build/dev tooling instead: it's imported ONLY
|
|
20
|
-
* Bun), so its Vite plugin + SFC-compiler imports (`@vitejs/plugin-vue`,
|
|
21
|
-
* reach the edge bundle. A simple single-target app with no edge
|
|
16
|
+
* Why two filenames: a multi-target app's edge entry (`_worker.ts`) imports `backend/framework.ts`
|
|
17
|
+
* for the render adapter, so `backend/framework.ts` must stay edge-bundlable - it can't reference
|
|
18
|
+
* Vite plugins or the SFC compiler (Bun would pull them into the `target:"browser"` worker and fail
|
|
19
|
+
* on `child_process`). `nifra.config.ts` holds that build/dev tooling instead: it's imported ONLY
|
|
20
|
+
* by this CLI (which runs on Bun), so its Vite plugin + SFC-compiler imports (`@vitejs/plugin-vue`,
|
|
21
|
+
* `@nifrajs/web-vue/plugin`) never reach the edge bundle. A simple single-target app with no edge
|
|
22
|
+
* build can put it all in `backend/framework.ts`.
|
|
22
23
|
*/
|
|
23
24
|
import { existsSync } from "node:fs";
|
|
24
25
|
import { isAbsolute, resolve } from "node:path";
|
|
26
|
+
import { assertCurrentLayout, BACKEND_APP_FILE, CONFIG_FILE, FRAMEWORK_FILE } from "./app-files.js";
|
|
25
27
|
import { checkPipelineSeparation } from "./pipeline-guard.js";
|
|
28
|
+
/** The {@link NifraFramework} fields forwarded to `createWebApp` and imported by the generated server
|
|
29
|
+
* entry, in one list so every command that builds the app forwards the same set. */
|
|
30
|
+
export const FRAMEWORK_WEB_OPTIONS = ["apiPrefix", "apiStrip", "mounts", "csp", "nonce"];
|
|
31
|
+
/** Refuse a forwarded field of the wrong shape at load, naming the field, rather than letting it fail
|
|
32
|
+
* later inside `createWebApp` or the generated server entry. */
|
|
33
|
+
function assertFrameworkWebOptions(fw, configFile) {
|
|
34
|
+
const wrong = (field, expected) => {
|
|
35
|
+
throw new Error(`[nifra] ${configFile}: \`${field}\` must be ${expected}.`);
|
|
36
|
+
};
|
|
37
|
+
if (fw.apiPrefix !== undefined && typeof fw.apiPrefix !== "string") {
|
|
38
|
+
wrong("apiPrefix", 'a path string such as "/api", or "" to turn the backend mount off');
|
|
39
|
+
}
|
|
40
|
+
if (fw.apiStrip !== undefined && typeof fw.apiStrip !== "boolean")
|
|
41
|
+
wrong("apiStrip", "a boolean");
|
|
42
|
+
if (fw.mounts !== undefined && !Array.isArray(fw.mounts)) {
|
|
43
|
+
wrong("mounts", "an array of { path, app } entries");
|
|
44
|
+
}
|
|
45
|
+
if (fw.csp !== undefined && (typeof fw.csp !== "object" || fw.csp === null)) {
|
|
46
|
+
wrong("csp", "the policy createCspPolicy() returns");
|
|
47
|
+
}
|
|
48
|
+
if (fw.nonce !== undefined && typeof fw.nonce !== "function") {
|
|
49
|
+
wrong("nonce", "a nonce resolver function, such as createNonceResolver() returns");
|
|
50
|
+
}
|
|
51
|
+
if (fw.secretExemptions !== undefined && !Array.isArray(fw.secretExemptions)) {
|
|
52
|
+
wrong("secretExemptions", "an array of { rule, file, reason } entries");
|
|
53
|
+
}
|
|
54
|
+
if (fw.target !== undefined && typeof fw.target !== "string") {
|
|
55
|
+
wrong("target", 'a deploy target name such as "bun"');
|
|
56
|
+
}
|
|
57
|
+
if (fw.clientIp !== undefined && fw.clientIp !== "platform") {
|
|
58
|
+
wrong("clientIp", '"platform" (trust the edge platform\'s client-address header), or left out');
|
|
59
|
+
}
|
|
60
|
+
if (fw.dev !== undefined) {
|
|
61
|
+
if (typeof fw.dev !== "object" || fw.dev === null)
|
|
62
|
+
wrong("dev", "an object such as { indicator: false }");
|
|
63
|
+
const indicator = Reflect.get(fw.dev, "indicator");
|
|
64
|
+
if (indicator !== undefined && typeof indicator !== "boolean")
|
|
65
|
+
wrong("dev.indicator", "a boolean");
|
|
66
|
+
}
|
|
67
|
+
}
|
|
26
68
|
/**
|
|
27
69
|
* Refuse a config that puts one pipeline's plugins into the other's slot.
|
|
28
70
|
*
|
|
@@ -74,18 +116,35 @@ export async function loadMonorepoApps(rootCwd, config) {
|
|
|
74
116
|
}
|
|
75
117
|
const isAdapter = (v) => typeof v === "object" && v !== null;
|
|
76
118
|
const importWithQuery = (path, query) => import(__rewriteRelativeImportExtension(query === undefined || query === "" ? path : `${path}?${query}`));
|
|
77
|
-
/**
|
|
78
|
-
*
|
|
119
|
+
/**
|
|
120
|
+
* What reads only the backend (`nifra openapi`): the whole app when it has a web config, else
|
|
121
|
+
* `backend/app.ts` alone, so an API-only app needs no adapter to describe its routes.
|
|
122
|
+
*/
|
|
123
|
+
export async function loadBackendApp(cwd, options = {}) {
|
|
124
|
+
if (existsSync(resolve(cwd, CONFIG_FILE)) || existsSync(resolve(cwd, FRAMEWORK_FILE))) {
|
|
125
|
+
return loadApp(cwd, "dist", options);
|
|
126
|
+
}
|
|
127
|
+
assertCurrentLayout(cwd);
|
|
128
|
+
const backendPath = resolve(cwd, BACKEND_APP_FILE);
|
|
129
|
+
if (!existsSync(backendPath)) {
|
|
130
|
+
throw new Error(`[nifra] no ${BACKEND_APP_FILE} in ${cwd}: the OpenAPI document describes its routes`);
|
|
131
|
+
}
|
|
132
|
+
const backend = (await importWithQuery(backendPath, options.importQuery)).backend;
|
|
133
|
+
return { cwd, backend };
|
|
134
|
+
}
|
|
135
|
+
/** Discover + validate the app conventions rooted at `cwd`. Prefers `nifra.config.ts`, falls back
|
|
136
|
+
* to
|
|
137
|
+
* `backend/framework.ts`. Throws a clear, actionable error if neither exists or the config is
|
|
138
|
+
* malformed. */
|
|
79
139
|
export async function loadApp(cwd, outDirName = "dist", options = {}) {
|
|
80
140
|
// nifra.config.ts is the CLI's config (it may import Vite plugins / the SFC compiler, which a
|
|
81
|
-
// multi-target app keeps OUT of the edge-imported framework.ts). framework.ts is
|
|
82
|
-
// simple single-target app that has no edge build.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
: "framework.ts";
|
|
141
|
+
// multi-target app keeps OUT of the edge-imported backend/framework.ts). backend/framework.ts is
|
|
142
|
+
// the fallback for a simple single-target app that has no edge build.
|
|
143
|
+
assertCurrentLayout(cwd);
|
|
144
|
+
const configFile = existsSync(resolve(cwd, CONFIG_FILE)) ? CONFIG_FILE : FRAMEWORK_FILE;
|
|
86
145
|
const configPath = resolve(cwd, configFile);
|
|
87
146
|
if (!existsSync(configPath)) {
|
|
88
|
-
throw new Error(`[nifra] no
|
|
147
|
+
throw new Error(`[nifra] no ${CONFIG_FILE} or ${FRAMEWORK_FILE} found in ${cwd}.\n` +
|
|
89
148
|
" nifra is zero-config but needs one of them exporting at least:\n" +
|
|
90
149
|
" export const adapter = reactAdapter // from @nifrajs/web-react\n" +
|
|
91
150
|
' export const clientModule = "@nifrajs/web-react/client"\n' +
|
|
@@ -98,6 +157,7 @@ export async function loadApp(cwd, outDirName = "dist", options = {}) {
|
|
|
98
157
|
if (!isAdapter(fw.adapter) || typeof fw.clientModule !== "string") {
|
|
99
158
|
throw new Error(`[nifra] ${configFile} must export \`adapter\` (a render adapter object) and \`clientModule\` (a string).`);
|
|
100
159
|
}
|
|
160
|
+
assertFrameworkWebOptions(fw, configFile);
|
|
101
161
|
// A `clientModule` given as a RELATIVE path (a local client entry, e.g. `./src/client.tsx`) is
|
|
102
162
|
// resolved to absolute here. It is embedded verbatim as an import specifier in the generated client
|
|
103
163
|
// entry, and `nifra dev` and `nifra build` write that entry into DIFFERENT directories - so a relative
|
|
@@ -134,7 +194,7 @@ export async function loadApp(cwd, outDirName = "dist", options = {}) {
|
|
|
134
194
|
const resolvedPlugins = { vitePlugins, clientPlugins, serverPlugins };
|
|
135
195
|
assertPipelineSeparation(resolvedPlugins, configFile);
|
|
136
196
|
let backend;
|
|
137
|
-
const backendPath = resolve(cwd,
|
|
197
|
+
const backendPath = resolve(cwd, BACKEND_APP_FILE);
|
|
138
198
|
if (existsSync(backendPath)) {
|
|
139
199
|
backend = (await importWithQuery(backendPath, options.importQuery))
|
|
140
200
|
.backend;
|
package/dist/load.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":";;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"load.js","sourceRoot":"","sources":["../src/load.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-tool.d.ts","sourceRoot":"","sources":["../src/manifest-tool.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAI7E,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAKvB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"manifest-tool.d.ts","sourceRoot":"","sources":["../src/manifest-tool.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAI7E,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAKvB,MAAM,wBAAwB,CAAA;AAI/B,eAAO,MAAM,qBAAqB,wBAAwB,CAAA;AAE1D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,CAqBlE;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAChC;AAED,2FAA2F;AAC3F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxF,OAAO,CAAC,yBAAyB,CAAC,CAyCpC;AAED,sGAAsG;AACtG,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAO,GACxF,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,8FAA8F;AAC9F,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAS5B;AAED,8EAA8E;AAC9E,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE;IAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GACxC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
|
package/dist/manifest-tool.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { existsSync } from "node:fs";
|
|
3
3
|
import { resolve } from "node:path";
|
|
4
4
|
import { buildNifraManifest, diffNifraManifests, parseNifraManifest, serializeNifraManifest, serializeNifraManifestSignature, signNifraManifest, } from "@nifrajs/core/manifest";
|
|
5
|
+
import { codeUnitOrder } from "./internal/code-unit-order.js";
|
|
5
6
|
import { collectProjectVerification } from "./verification.js";
|
|
6
7
|
export const DEFAULT_MANIFEST_FILE = "nifra.manifest.json";
|
|
7
8
|
export function formatManifestDiff(diff) {
|
|
@@ -10,8 +11,8 @@ export function formatManifestDiff(diff) {
|
|
|
10
11
|
const weight = { breaking: 0, compatible: 1, info: 2 };
|
|
11
12
|
const lines = [...diff.changes]
|
|
12
13
|
.sort((a, b) => weight[a.severity] - weight[b.severity] ||
|
|
13
|
-
a.path
|
|
14
|
-
a.method
|
|
14
|
+
codeUnitOrder(a.path, b.path) ||
|
|
15
|
+
codeUnitOrder(a.method, b.method))
|
|
15
16
|
.map((change) => `${change.severity === "breaking" ? "✖" : change.severity === "compatible" ? "✓" : "•"} ${change.method} ${change.path} [${change.section}] ${change.message}`);
|
|
16
17
|
const breaking = diff.changes.filter((change) => change.severity === "breaking").length;
|
|
17
18
|
lines.push(diff.hasBreaking
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest-tool.js","sourceRoot":"","sources":["../src/manifest-tool.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAGlB,kBAAkB,EAClB,sBAAsB,EACtB,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAA;AAE9D,MAAM,CAAC,MAAM,qBAAqB,GAAG,qBAAqB,CAAA;AAE1D,MAAM,UAAU,kBAAkB,CAAC,IAAuB;IACxD,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,sBAAsB,CAAA;IAC5D,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAW,CAAA;IAC/D,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;SAC5B,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;QACvC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"manifest-tool.js","sourceRoot":"","sources":["../src/manifest-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-tool.d.ts","sourceRoot":"","sources":["../src/mcp-app-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,8FAA8F;AAC9F,eAAO,MAAM,cAAc,kCAoCzB,CAAA;AAEF,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"mcp-app-tool.d.ts","sourceRoot":"","sources":["../src/mcp-app-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAkC,KAAK,OAAO,EAAE,MAAM,cAAc,CAAA;AAC3E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAE5C,8FAA8F;AAC9F,eAAO,MAAM,cAAc,kCAoCzB,CAAA;AAEF,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,GAAG,OAAO,CA0C3F"}
|
package/dist/mcp-app-tool.js
CHANGED
|
@@ -51,6 +51,8 @@ export function examplesAppTool(loadExamples) {
|
|
|
51
51
|
annotations: {
|
|
52
52
|
title: "Browse the nifra example gallery",
|
|
53
53
|
readOnlyHint: true,
|
|
54
|
+
destructiveHint: false,
|
|
55
|
+
idempotentHint: true,
|
|
54
56
|
openWorldHint: false,
|
|
55
57
|
},
|
|
56
58
|
description: "Open an interactive, filterable gallery of ALL of nifra's verified code examples (MCP Apps widget) - for browsing and discovering what exists. NOT for fetching one snippet as text: use nifra_example for that. Pass query to pre-filter; the widget also filters client-side.",
|
package/dist/mcp-app-tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-app-tool.js","sourceRoot":"","sources":["../src/mcp-app-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAA;AAG3E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,GAAG,EAAE,qBAAqB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,sEAAsE;IACnF,IAAI,EAAE;;;;;;;;;WASG;IACT,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;GAqBL;CACF,CAAC,CAAA;AAEF,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,YAAkD;IAChF,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,KAAK,EAAE,kCAAkC;YACzC,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,iRAAiR;QACnR,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,EAAE;YACzF,oBAAoB,EAAE,KAAK;SAC5B;QACD,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,IAAI,EAAE,CAAA;YACxC,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;YACtD,MAAM,OAAO,GAAG,CACd,CAAC;gBACC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzF,CAAC,CAAC,GAAG,CACR,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACd,OAAO;gBACL,IAAI,EACF,OAAO,CAAC,MAAM,KAAK,CAAC;oBAClB,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC/E,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC;iBACJ;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-app-tool.js","sourceRoot":"","sources":["../src/mcp-app-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,aAAa,EAAE,eAAe,EAAgB,MAAM,cAAc,CAAA;AAG3E,8FAA8F;AAC9F,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;IAC5C,GAAG,EAAE,qBAAqB;IAC1B,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,sEAAsE;IACnF,IAAI,EAAE;;;;;;;;;WASG;IACT,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;GAqBL;CACF,CAAC,CAAA;AAEF,sGAAsG;AACtG,MAAM,UAAU,eAAe,CAAC,YAAkD;IAChF,OAAO,aAAa,CAAC;QACnB,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE;YACX,KAAK,EAAE,kCAAkC;YACzC,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;QACD,WAAW,EACT,iRAAiR;QACnR,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iCAAiC,EAAE,EAAE;YACzF,oBAAoB,EAAE,KAAK;SAC5B;QACD,MAAM,EAAE,cAAc;QACtB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;YACtB,MAAM,GAAG,GAAG,CAAC,MAAM,YAAY,EAAE,CAAC,IAAI,EAAE,CAAA;YACxC,MAAM,CAAC,GAAG,CAAE,IAAI,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAA;YACtD,MAAM,OAAO,GAAG,CACd,CAAC;gBACC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACzF,CAAC,CAAC,GAAG,CACR,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;YACd,OAAO;gBACL,IAAI,EACF,OAAO,CAAC,MAAM,KAAK,CAAC;oBAClB,CAAC,CAAC,uBAAuB;oBACzB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,gBAAgB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;gBAC/E,iBAAiB,EAAE;oBACjB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC5B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,KAAK,EAAE,CAAC,CAAC,KAAK;wBACd,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;qBACb,CAAC,CAAC;iBACJ;aACF,CAAA;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -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;
|
|
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;AAO3F,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,GACzD,OAAO,CAAC,MAAM,CAAC,CAIjB;AA8BD,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAA8B,GACtF,WAAW,EAAE,CAmCf;AAED,wBAAgB,cAAc,IAAI,SAAS,EAAE,CAkE5C;AAED,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,aAAa,GAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAA8B,GACtF,iBAAiB,CAEnB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CA4BtF;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,MAAM,OAAO,CAAC,SAAS,CAAC,CAAA;CAClD;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
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { realpathSync } from "node:fs";
|
|
8
8
|
import { readFile } from "node:fs/promises";
|
|
9
|
-
import { basename, isAbsolute, relative, resolve
|
|
9
|
+
import { basename, isAbsolute, relative, resolve } from "node:path";
|
|
10
10
|
import { createCachedAppLoader } from "./mcp-exec.js";
|
|
11
|
+
import { resolveMcpProjectPath } from "./mcp-path.js";
|
|
11
12
|
function openApiFormat(args) {
|
|
12
13
|
const format = args.format;
|
|
13
14
|
return format === "yaml" ? "yaml" : "json";
|
|
@@ -18,11 +19,9 @@ export async function openApiHandler(args, loadAppCached) {
|
|
|
18
19
|
return renderOpenApiWithTypes(await loadAppCached(), openApiFormat(args), pathPrefix);
|
|
19
20
|
}
|
|
20
21
|
async function readProjectFile(cwd, relativeFile, maxChars) {
|
|
21
|
-
const target =
|
|
22
|
-
|
|
23
|
-
if (target !== root && !target.startsWith(`${root}${sep}`)) {
|
|
22
|
+
const target = resolveMcpProjectPath(cwd, relativeFile);
|
|
23
|
+
if (target === null)
|
|
24
24
|
throw new Error(`refusing to read outside project root: ${relativeFile}`);
|
|
25
|
-
}
|
|
26
25
|
try {
|
|
27
26
|
const text = await readFile(target, "utf8");
|
|
28
27
|
return text.length <= maxChars
|
|
@@ -54,7 +53,7 @@ export function projectResources(cwd, loadAppCached = createCachedAppLoader(cwd)
|
|
|
54
53
|
{
|
|
55
54
|
uri: "nifra://openapi",
|
|
56
55
|
name: "OpenAPI 3.1",
|
|
57
|
-
description: "OpenAPI document generated from backend.ts using @nifrajs/schema.",
|
|
56
|
+
description: "OpenAPI document generated from backend/app.ts using @nifrajs/schema.",
|
|
58
57
|
mimeType: "application/json",
|
|
59
58
|
read: async () => ({ text: await openApiHandler({ format: "json" }, loadAppCached) }),
|
|
60
59
|
},
|
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,
|
|
1
|
+
{"version":3,"file":"mcp-context.js","sourceRoot":"","sources":["../src/mcp-context.ts"],"names":[],"mappings":"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"}
|