@nifrajs/cli 3.5.0 → 4.0.2
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 +4 -0
- package/dist/check-diagnostics.d.ts.map +1 -1
- package/dist/check-diagnostics.js +13 -0
- package/dist/check-diagnostics.js.map +1 -1
- package/dist/check-scan.d.ts +49 -7
- package/dist/check-scan.d.ts.map +1 -1
- package/dist/check-scan.js +291 -62
- package/dist/check-scan.js.map +1 -1
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +99 -63
- 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 +262 -82
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.d.ts +62 -5
- package/dist/command-catalog.d.ts.map +1 -1
- package/dist/command-catalog.js +275 -35
- 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.map +1 -1
- package/dist/contracts.js +52 -13
- 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/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 +48 -22
- 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 +5 -1
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +92 -27
- 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 +67 -17
- 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.js +1 -1
- 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 +2 -0
- package/dist/mcp-exec.d.ts.map +1 -1
- package/dist/mcp-exec.js +132 -108
- package/dist/mcp-exec.js.map +1 -1
- package/dist/mcp-http.d.ts.map +1 -1
- package/dist/mcp-http.js +17 -5
- package/dist/mcp-http.js.map +1 -1
- package/dist/mcp-io.d.ts +14 -0
- package/dist/mcp-io.d.ts.map +1 -1
- package/dist/mcp-io.js +45 -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-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-render.js +2 -2
- 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 +110 -23
- 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 +82 -9
- 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 +16 -3
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +81 -53
- 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 +1155 -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 +5 -0
- package/dist/project-facts.d.ts.map +1 -1
- 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 +36 -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.map +1 -1
- package/dist/review.js +12 -8
- package/dist/review.js.map +1 -1
- 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.map +1 -1
- package/dist/rules/legacy.js +71 -38
- 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 +132 -87
- 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 +10 -2
- package/dist/sync-manifest.d.ts.map +1 -1
- package/dist/sync-manifest.js +44 -19
- 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 +4 -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.map +1 -1
- package/dist/work-graph.js +29 -13
- package/dist/work-graph.js.map +1 -1
- package/docs/examples.json +185 -29
- package/docs/llms-full.txt +3807 -580
- package/docs/types.json +14229 -10939
- package/package.json +19 -12
- 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 +17 -0
- package/src/check-scan.ts +358 -63
- package/src/check.ts +97 -62
- package/src/cli.ts +296 -87
- package/src/command-catalog.ts +389 -48
- package/src/config-target.ts +47 -0
- package/src/contracts.ts +54 -12
- 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/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 +53 -32
- 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 +90 -27
- package/src/learn.ts +3 -3
- package/src/levels-tool.ts +47 -2
- package/src/load.ts +140 -33
- package/src/manifest-tool.ts +3 -2
- package/src/mcp-app-tool.ts +2 -0
- package/src/mcp-context.ts +1 -1
- package/src/mcp-delegate.ts +162 -0
- package/src/mcp-docs-tools.ts +23 -5
- package/src/mcp-exec.ts +160 -132
- package/src/mcp-http.ts +19 -5
- package/src/mcp-io.ts +57 -0
- package/src/mcp-isolate.ts +287 -0
- package/src/mcp-project-child.ts +182 -0
- package/src/mcp-render.ts +2 -2
- package/src/mcp-root.ts +117 -22
- package/src/mcp-run.ts +104 -10
- package/src/mcp-ws.ts +4 -1
- package/src/mcp.ts +106 -64
- package/src/migrate-layout.ts +1338 -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 +5 -0
- package/src/recipes/4.0.0.ts +37 -0
- package/src/recipes/index.ts +2 -0
- package/src/release-verification.ts +74 -5
- package/src/review.ts +13 -8
- 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 +71 -39
- 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 +147 -95
- package/src/sdk.ts +1215 -158
- package/src/search-terms.ts +24 -7
- package/src/smoke.ts +607 -0
- package/src/sync-manifest.ts +50 -19
- 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 +13 -0
- package/src/verification.ts +50 -12
- package/src/web-app-options.ts +57 -0
- package/src/work-graph.ts +27 -13
package/dist/init-agents.js
CHANGED
|
@@ -1,25 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `nifra init-agents` - retrofit an EXISTING app with the agent
|
|
3
|
-
*
|
|
2
|
+
* `nifra init-agents` - retrofit an EXISTING app with the agent files a freshly scaffolded app ships, so
|
|
3
|
+
* an already-built project adopts them in one command:
|
|
4
4
|
*
|
|
5
|
-
* .mcp.json
|
|
6
|
-
* .cursor/
|
|
7
|
-
*
|
|
8
|
-
* AGENTS.md
|
|
5
|
+
* .mcp.json, .cursor/mcp.json - the nifra MCP server for Claude Code and Cursor
|
|
6
|
+
* CLAUDE.md, GEMINI.md, .cursor/rules/nifra.mdc, .github/copilot-instructions.md
|
|
7
|
+
* - each agent's pointer to AGENTS.md, the single source of guidance
|
|
8
|
+
* AGENTS.md - the `## MCP server` section, and for an app with `routes/` the
|
|
9
|
+
* `## Project structure` section, appended when missing (or a minimal
|
|
10
|
+
* file if none exists)
|
|
9
11
|
*
|
|
10
12
|
* The generators are imported from `create-nifra/agent-files` - the SAME source of truth `create-nifra`
|
|
11
13
|
* uses at scaffold time - so a retrofitted app and a freshly scaffolded one get byte-identical configs.
|
|
12
14
|
*
|
|
13
15
|
* Safety: this writes into the user's existing tree, so it NEVER silently clobbers a file they may have
|
|
14
16
|
* customized. By default an existing `.mcp.json` / `CLAUDE.md` / `.cursor/mcp.json` is SKIPPED with a
|
|
15
|
-
* notice; `--force` overwrites. `AGENTS.md` is special-cased -
|
|
16
|
-
*
|
|
17
|
-
*
|
|
17
|
+
* notice; `--force` overwrites. `AGENTS.md` is special-cased - a section it already has is left alone,
|
|
18
|
+
* a missing one is APPENDED (never overwriting the user's conventions), and `--force` is not needed for
|
|
19
|
+
* that append since it's additive. Every write path is resolved + confined under the
|
|
18
20
|
* cwd (no `..` traversal escaping the project root).
|
|
21
|
+
*
|
|
22
|
+
* `--sync-mcp` is the upgrade path: the launch command pins an exact `@nifrajs/cli` version, so after
|
|
23
|
+
* the app upgrades nifra every existing file still launches the old CLI. It rewrites that version and
|
|
24
|
+
* nothing else - the pin in both MCP registries and the launch command in CLAUDE.md and AGENTS.md's
|
|
25
|
+
* MCP section - to the nifra the project installs, leaving every other byte of every file as it was.
|
|
26
|
+
*
|
|
27
|
+
* At a workspace root that is not itself a nifra project but has exactly one nifra member, both runs
|
|
28
|
+
* also name that member in the registries' launch args (`mcp app`), so the server keeps its root when
|
|
29
|
+
* a second nifra member arrives.
|
|
19
30
|
*/
|
|
20
|
-
import { lstat, mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
21
|
-
import { isAbsolute, relative, resolve } from "node:path";
|
|
22
|
-
import { AGENTS_MD_PATH, agentsMcpSection, CLAUDE_MD_PATH, CURSOR_MCP_JSON_PATH,
|
|
31
|
+
import { chmod, lstat, mkdir, readFile, rename, rm, writeFile } from "node:fs/promises";
|
|
32
|
+
import { isAbsolute, relative, resolve, sep } from "node:path";
|
|
33
|
+
import { AGENT_POINTERS, AGENTS_MD_PATH, agentsMcpSection, agentsStructureSection, CLAUDE_MD_PATH, CURSOR_MCP_JSON_PATH, MCP_CLI_VERSION, MCP_JSON_PATH, MCP_SERVER_COMMAND, mcpJson, STRUCTURE_HEADING, } from "create-nifra/agent-files";
|
|
34
|
+
import { installedNifraVersion, resolveRootState } from "./mcp-root.js";
|
|
23
35
|
/** Confine a project-relative path under `cwd` and return the absolute path. Rejects a spec that escapes
|
|
24
36
|
* the root (defense-in-depth - these specs are constants, but the cwd-confinement invariant is enforced
|
|
25
37
|
* at the seam, not assumed). Exported so the invariant is directly testable. */
|
|
@@ -83,18 +95,20 @@ async function writeOwned(cwd, rel, content, force) {
|
|
|
83
95
|
if (!force && (await fileExists(abs))) {
|
|
84
96
|
return { path: rel, action: "skipped", note: "exists - pass --force to overwrite" };
|
|
85
97
|
}
|
|
86
|
-
// `.cursor
|
|
98
|
+
// A nested file (`.cursor/`, `.github/`) needs its parent dir; `recursive` is a no-op at the root.
|
|
87
99
|
await mkdir(resolve(abs, ".."), { recursive: true });
|
|
88
100
|
await atomicWrite(abs, content);
|
|
89
101
|
return { path: rel, action: "wrote" };
|
|
90
102
|
}
|
|
91
103
|
/** Write via a sibling temp file so a crash mid-write can't leave a half-written config in place.
|
|
92
104
|
* `wx` fails rather than following an existing name, and the temp is cleaned up on any failure so a
|
|
93
|
-
* botched run doesn't litter the user's project. */
|
|
94
|
-
async function atomicWrite(abs, content) {
|
|
105
|
+
* botched run doesn't litter the user's project. `mode` carries a replaced file's permissions over. */
|
|
106
|
+
async function atomicWrite(abs, content, mode) {
|
|
95
107
|
const tmp = `${abs}.nifra-${process.pid}-${Date.now()}`;
|
|
96
108
|
await writeFile(tmp, content, { flag: "wx" });
|
|
97
109
|
try {
|
|
110
|
+
if (mode !== undefined)
|
|
111
|
+
await chmod(tmp, mode);
|
|
98
112
|
await rename(tmp, abs);
|
|
99
113
|
}
|
|
100
114
|
catch (error) {
|
|
@@ -103,16 +117,19 @@ async function atomicWrite(abs, content) {
|
|
|
103
117
|
}
|
|
104
118
|
}
|
|
105
119
|
/**
|
|
106
|
-
* AGENTS.md is additive, not owned:
|
|
107
|
-
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
120
|
+
* AGENTS.md is additive, not owned: each section it lacks is appended (preserving the user's
|
|
121
|
+
* conventions), each it has is left alone, and an absent file is written with just those sections.
|
|
122
|
+
* `--force` is irrelevant here - we never overwrite the user's existing guidance. The structure section
|
|
123
|
+
* is for an app with `routes/`; an API-only app has no frontend to keep apart.
|
|
110
124
|
*/
|
|
111
125
|
async function ensureAgentsMd(cwd) {
|
|
112
126
|
const abs = safeJoin(cwd, AGENTS_MD_PATH);
|
|
113
127
|
await assertSafeParents(cwd, abs);
|
|
114
128
|
await assertRegularTarget(abs, AGENTS_MD_PATH);
|
|
115
|
-
const
|
|
129
|
+
const sections = [{ heading: "## MCP server", text: agentsMcpSection() }];
|
|
130
|
+
if (await isDirectory(safeJoin(cwd, "routes"))) {
|
|
131
|
+
sections.push({ heading: STRUCTURE_HEADING, text: agentsStructureSection() });
|
|
132
|
+
}
|
|
116
133
|
let existing;
|
|
117
134
|
try {
|
|
118
135
|
existing = await readFile(abs, "utf8");
|
|
@@ -121,36 +138,215 @@ async function ensureAgentsMd(cwd) {
|
|
|
121
138
|
existing = undefined; // no AGENTS.md yet
|
|
122
139
|
}
|
|
123
140
|
if (existing === undefined) {
|
|
124
|
-
|
|
141
|
+
const body = sections.map((section) => section.text).join("\n\n");
|
|
142
|
+
await atomicWrite(abs, `# AGENTS.md\n\nGuidance for AI coding agents working in this repo.\n\n${body}\n`);
|
|
125
143
|
return { path: AGENTS_MD_PATH, action: "wrote" };
|
|
126
144
|
}
|
|
127
145
|
// Match on the section heading, not the full body, so a reformatted-but-present section still counts.
|
|
128
|
-
|
|
129
|
-
|
|
146
|
+
const current = existing;
|
|
147
|
+
const missing = sections.filter((section) => !current.includes(section.heading));
|
|
148
|
+
if (missing.length === 0) {
|
|
149
|
+
return { path: AGENTS_MD_PATH, action: "present", note: "already has every section" };
|
|
130
150
|
}
|
|
131
|
-
const sep =
|
|
132
|
-
await atomicWrite(abs, `${
|
|
133
|
-
|
|
151
|
+
const sep = current.endsWith("\n") ? "\n" : "\n\n";
|
|
152
|
+
await atomicWrite(abs, `${current}${sep}${missing.map((section) => section.text).join("\n\n")}\n`);
|
|
153
|
+
const names = missing.map((section) => section.heading.slice(3)).join(" + ");
|
|
154
|
+
return { path: AGENTS_MD_PATH, action: "appended", note: names };
|
|
155
|
+
}
|
|
156
|
+
const isDirectory = (path) => lstat(path)
|
|
157
|
+
.then((stat) => stat.isDirectory())
|
|
158
|
+
.catch(() => false);
|
|
159
|
+
/** An exact version: the only pin --sync-mcp rewrites. A dist-tag or a range is a deliberate choice,
|
|
160
|
+
* not a scaffold-time freeze. Prerelease and build suffixes are part of the version. */
|
|
161
|
+
const PIN_VERSION = String.raw `\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?`;
|
|
162
|
+
/** The pin as both MCP registries hold it: one JSON string in the server's `args`. */
|
|
163
|
+
const JSON_PIN = new RegExp(`"@nifrajs/cli@(${PIN_VERSION})"`, "g");
|
|
164
|
+
/** The pin as the markdown quotes it: the whole launch command, so prose that merely mentions a
|
|
165
|
+
* version (an upgrade note, a changelog line) is never touched. */
|
|
166
|
+
const LAUNCH_PIN = new RegExp(`${MCP_SERVER_COMMAND} @nifrajs/cli@(${PIN_VERSION}) mcp`, "g");
|
|
167
|
+
/** The one nifra workspace member `cwd` resolves to, as a POSIX path relative to it, when `cwd` is a
|
|
168
|
+
* workspace root and not itself a nifra project. */
|
|
169
|
+
async function workspaceMember(cwd) {
|
|
170
|
+
const state = await resolveRootState(cwd, false);
|
|
171
|
+
return state.source === "workspace" ? relative(cwd, state.root).split(sep).join("/") : undefined;
|
|
172
|
+
}
|
|
173
|
+
/** The registries' launch args when they name no directory: `["@nifrajs/cli@x.y.z", "mcp"]`. Group 2
|
|
174
|
+
* is the whitespace between the two, reused before the member so the file keeps its own layout. */
|
|
175
|
+
const JSON_BARE_LAUNCH = new RegExp(`("@nifrajs/cli@${PIN_VERSION}"\\s*,(\\s*)"mcp")(\\s*\\])`, "g");
|
|
176
|
+
/** Add `member` after a bare `"mcp"` launch arg; a launch that already names a directory is left alone. */
|
|
177
|
+
function nameMember(text, member) {
|
|
178
|
+
let named = false;
|
|
179
|
+
const rewritten = text.replace(JSON_BARE_LAUNCH, (_match, launch, gap, close) => {
|
|
180
|
+
named = true;
|
|
181
|
+
return `${launch},${gap}${JSON.stringify(member)}${close}`;
|
|
182
|
+
});
|
|
183
|
+
return { text: rewritten, named };
|
|
184
|
+
}
|
|
185
|
+
function repin(text, pattern, target) {
|
|
186
|
+
let pins = 0;
|
|
187
|
+
const stale = [];
|
|
188
|
+
const rewritten = text.replace(pattern, (match, version) => {
|
|
189
|
+
pins++;
|
|
190
|
+
if (version === target)
|
|
191
|
+
return match;
|
|
192
|
+
if (!stale.includes(version))
|
|
193
|
+
stale.push(version);
|
|
194
|
+
return match.replace(`@${version}`, () => `@${target}`);
|
|
195
|
+
});
|
|
196
|
+
return { text: rewritten, pins, stale };
|
|
197
|
+
}
|
|
198
|
+
/** AGENTS.md is the user's file: only its `## MCP server` section - the heading up to the next `#` or
|
|
199
|
+
* `##` heading, or the end of the file - is ours to re-pin. */
|
|
200
|
+
function repinMcpSection(text, target) {
|
|
201
|
+
const heading = /^## MCP server\b.*$/m.exec(text);
|
|
202
|
+
if (heading === null)
|
|
203
|
+
return { text, pins: 0, stale: [] };
|
|
204
|
+
const start = heading.index + heading[0].length;
|
|
205
|
+
const next = /^#{1,2}[ \t]/m.exec(text.slice(start));
|
|
206
|
+
const end = next === null ? text.length : start + next.index;
|
|
207
|
+
const section = repin(text.slice(start, end), LAUNCH_PIN, target);
|
|
208
|
+
return { ...section, text: text.slice(0, start) + section.text + text.slice(end) };
|
|
209
|
+
}
|
|
210
|
+
/** An MCP registry: its pin, and at a workspace root the member its launch names. Only the registries
|
|
211
|
+
* launch the server, so the markdown launch commands keep their wording. */
|
|
212
|
+
function repinRegistry(text, target, member) {
|
|
213
|
+
const scan = repin(text, JSON_PIN, target);
|
|
214
|
+
if (member === undefined || scan.pins === 0)
|
|
215
|
+
return scan;
|
|
216
|
+
const { text: rewritten, named } = nameMember(scan.text, member);
|
|
217
|
+
return named ? { ...scan, text: rewritten, named: member } : scan;
|
|
218
|
+
}
|
|
219
|
+
/** Every file that carries the pin, and the part of it --sync-mcp may rewrite. */
|
|
220
|
+
const PIN_SITES = [
|
|
221
|
+
{ path: MCP_JSON_PATH, repin: repinRegistry },
|
|
222
|
+
{ path: CURSOR_MCP_JSON_PATH, repin: repinRegistry },
|
|
223
|
+
{ path: CLAUDE_MD_PATH, repin: (text, target) => repin(text, LAUNCH_PIN, target) },
|
|
224
|
+
{ path: AGENTS_MD_PATH, repin: repinMcpSection },
|
|
225
|
+
];
|
|
226
|
+
/** Where one file's pin stands against `target`. Never throws on a file it would not write: a
|
|
227
|
+
* symlinked CLAUDE.md (a common alias for AGENTS.md) is reported and left alone, not a hard stop. */
|
|
228
|
+
async function readPin(cwd, site, target, member) {
|
|
229
|
+
const abs = safeJoin(cwd, site.path);
|
|
230
|
+
try {
|
|
231
|
+
await assertSafeParents(cwd, abs);
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
return {
|
|
235
|
+
kind: "skip",
|
|
236
|
+
note: `left alone - ${error.message.replace(/^\[nifra\] /, "")}`,
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
const stat = await lstatOrMissing(abs);
|
|
240
|
+
if (stat === undefined)
|
|
241
|
+
return { kind: "skip", note: "absent - `nifra init-agents` creates it" };
|
|
242
|
+
if (stat.isSymbolicLink() || !stat.isFile())
|
|
243
|
+
return { kind: "skip", note: "not a regular file - left alone" };
|
|
244
|
+
// latin1 is one char per byte, so writing it back reproduces every byte outside a pin exactly,
|
|
245
|
+
// whatever the file's encoding; the pin patterns are ASCII, so they match as they would in UTF-8.
|
|
246
|
+
const scan = site.repin(await readFile(abs, "latin1"), target, member);
|
|
247
|
+
if (scan.pins === 0)
|
|
248
|
+
return { kind: "skip", note: "no pinned @nifrajs/cli launch command" };
|
|
249
|
+
if (scan.stale.length === 0 && scan.named === undefined)
|
|
250
|
+
return { kind: "current" };
|
|
251
|
+
return { kind: "stale", abs, mode: stat.mode & 0o777, scan };
|
|
134
252
|
}
|
|
135
253
|
/**
|
|
136
|
-
*
|
|
254
|
+
* The version --sync-mcp pins to: the nifra the project installs, so the server an agent launches
|
|
255
|
+
* describes the surface the code builds with. The running CLI's own version when nothing is
|
|
256
|
+
* installed. Not simply the running CLI's version: the command that fixes a drifted server is run
|
|
257
|
+
* by that drifted CLI, and it must not re-pin to itself.
|
|
258
|
+
*/
|
|
259
|
+
export async function mcpPinTarget(cwd) {
|
|
260
|
+
const installed = await installedNifraVersion(cwd);
|
|
261
|
+
if (installed !== undefined)
|
|
262
|
+
return installed.version;
|
|
263
|
+
// A workspace with isolated installs keeps nifra in the member's own node_modules.
|
|
264
|
+
const member = await workspaceMember(cwd);
|
|
265
|
+
const memberInstalled = member === undefined ? undefined : await installedNifraVersion(resolve(cwd, member));
|
|
266
|
+
return memberInstalled?.version ?? MCP_CLI_VERSION;
|
|
267
|
+
}
|
|
268
|
+
/** Read-only: every agent file whose pinned `@nifrajs/cli` is not the one the project installs. */
|
|
269
|
+
export async function collectStaleMcpPins(cwd) {
|
|
270
|
+
const target = await mcpPinTarget(cwd);
|
|
271
|
+
const files = [];
|
|
272
|
+
for (const site of PIN_SITES) {
|
|
273
|
+
const state = await readPin(cwd, site, target);
|
|
274
|
+
if (state.kind === "stale")
|
|
275
|
+
files.push({ path: site.path, pinned: state.scan.stale });
|
|
276
|
+
}
|
|
277
|
+
return { target, files };
|
|
278
|
+
}
|
|
279
|
+
/** --sync-mcp: rewrite each stale pin to the project's version and touch nothing else. Creates no
|
|
280
|
+
* file and appends no section - a file without a pin is reported, not repaired. */
|
|
281
|
+
async function syncMcpPins(cwd) {
|
|
282
|
+
const target = await mcpPinTarget(cwd);
|
|
283
|
+
const member = await workspaceMember(cwd);
|
|
284
|
+
const files = [];
|
|
285
|
+
for (const site of PIN_SITES) {
|
|
286
|
+
const state = await readPin(cwd, site, target, member);
|
|
287
|
+
if (state.kind === "skip") {
|
|
288
|
+
files.push({ path: site.path, action: "skipped", note: state.note });
|
|
289
|
+
}
|
|
290
|
+
else if (state.kind === "current") {
|
|
291
|
+
files.push({ path: site.path, action: "present", note: `already pinned to ${target}` });
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
await atomicWrite(state.abs, Buffer.from(state.scan.text, "latin1"), state.mode);
|
|
295
|
+
const notes = [
|
|
296
|
+
...(state.scan.stale.length > 0 ? [`${state.scan.stale.join(", ")} -> ${target}`] : []),
|
|
297
|
+
...(state.scan.named !== undefined ? [`launches \`mcp ${state.scan.named}\``] : []),
|
|
298
|
+
];
|
|
299
|
+
files.push({ path: site.path, action: "synced", note: notes.join("; ") });
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return { cwd, files, syncedTo: target };
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Retrofit `cwd` with the agent files. Pure enough to unit-test (no argv, no process.exit,
|
|
137
306
|
* no console) - the CLI wrapper handles printing + the exit code.
|
|
138
307
|
*/
|
|
139
308
|
export async function initAgents(cwd, opts = {}) {
|
|
140
309
|
const force = opts.force ?? false;
|
|
141
|
-
|
|
310
|
+
if (opts.syncMcp === true) {
|
|
311
|
+
// --force rewrites whole files; --sync-mcp exists to promise it will not. Combined, one of the
|
|
312
|
+
// two promises breaks, so refuse rather than pick.
|
|
313
|
+
if (force)
|
|
314
|
+
throw new Error("[nifra] --sync-mcp cannot be combined with --force");
|
|
315
|
+
return syncMcpPins(cwd);
|
|
316
|
+
}
|
|
317
|
+
// Order: the two MCP registries and each agent's pointer (owned, no-clobber), then AGENTS.md (additive).
|
|
318
|
+
const member = await workspaceMember(cwd);
|
|
319
|
+
const registry = member === undefined ? mcpJson() : nameMember(mcpJson(), member).text;
|
|
142
320
|
const files = [];
|
|
143
|
-
files.push(await writeOwned(cwd, MCP_JSON_PATH,
|
|
144
|
-
files.push(await writeOwned(cwd, CURSOR_MCP_JSON_PATH,
|
|
145
|
-
|
|
321
|
+
files.push(await writeOwned(cwd, MCP_JSON_PATH, registry, force));
|
|
322
|
+
files.push(await writeOwned(cwd, CURSOR_MCP_JSON_PATH, registry, force));
|
|
323
|
+
for (const pointer of AGENT_POINTERS) {
|
|
324
|
+
files.push(await writeOwned(cwd, pointer.path, pointer.content(), force));
|
|
325
|
+
}
|
|
146
326
|
files.push(await ensureAgentsMd(cwd));
|
|
147
|
-
|
|
327
|
+
// A file the run left alone may still launch an old CLI. Say so where the file is reported, with
|
|
328
|
+
// the command that fixes only that. Advisory: a file it cannot read costs the hint, not the run.
|
|
329
|
+
const { target, files: stale } = await collectStaleMcpPins(cwd).catch(() => ({
|
|
330
|
+
target: "",
|
|
331
|
+
files: [],
|
|
332
|
+
}));
|
|
333
|
+
return {
|
|
334
|
+
cwd,
|
|
335
|
+
files: files.map((file) => {
|
|
336
|
+
const pin = stale.find((entry) => entry.path === file.path);
|
|
337
|
+
if (pin === undefined || (file.action !== "skipped" && file.action !== "present"))
|
|
338
|
+
return file;
|
|
339
|
+
const hint = `pinned to ${pin.pinned.join(", ")}; \`nifra init-agents --sync-mcp\` re-pins it to ${target}`;
|
|
340
|
+
return { ...file, note: file.note === undefined ? hint : `${file.note}; ${hint}` };
|
|
341
|
+
}),
|
|
342
|
+
};
|
|
148
343
|
}
|
|
149
344
|
const ACTION_GLYPH = {
|
|
150
345
|
wrote: "✓ wrote",
|
|
151
|
-
appended: "✓ appended
|
|
346
|
+
appended: "✓ appended to",
|
|
152
347
|
skipped: "• skipped",
|
|
153
348
|
present: "• kept",
|
|
349
|
+
synced: "✓ re-pinned",
|
|
154
350
|
};
|
|
155
351
|
/** Format the retrofit result for the terminal. */
|
|
156
352
|
export function renderInitAgents(result) {
|
|
@@ -158,6 +354,12 @@ export function renderInitAgents(result) {
|
|
|
158
354
|
const tail = f.note ? ` (${f.note})` : "";
|
|
159
355
|
return ` ${ACTION_GLYPH[f.action]} ${f.path}${tail}`;
|
|
160
356
|
});
|
|
357
|
+
if (result.syncedTo !== undefined) {
|
|
358
|
+
const footer = result.files.some((f) => f.action === "synced")
|
|
359
|
+
? `\nThe nifra MCP launch now pins @nifrajs/cli@${result.syncedTo}. Restart your agent so it respawns the server.`
|
|
360
|
+
: `\nNothing to re-pin - no file pins a version other than @nifrajs/cli@${result.syncedTo}.`;
|
|
361
|
+
return `nifra init-agents --sync-mcp\n\n${lines.join("\n")}\n${footer}`;
|
|
362
|
+
}
|
|
161
363
|
const wroteAny = result.files.some((f) => f.action === "wrote" || f.action === "appended");
|
|
162
364
|
const footer = wroteAny
|
|
163
365
|
? "\nThe nifra MCP is now registered. Restart your agent so it picks up .mcp.json, then prefer nifra_docs / nifra_example and gate on nifra check."
|
|
@@ -170,7 +372,10 @@ export function renderInitAgents(result) {
|
|
|
170
372
|
* emits the structured result for agents/CI.
|
|
171
373
|
*/
|
|
172
374
|
export async function runInitAgents(cwd, opts = {}) {
|
|
173
|
-
const result = await initAgents(cwd, {
|
|
375
|
+
const result = await initAgents(cwd, {
|
|
376
|
+
force: opts.force ?? false,
|
|
377
|
+
syncMcp: opts.syncMcp ?? false,
|
|
378
|
+
});
|
|
174
379
|
if (opts.json) {
|
|
175
380
|
console.log(JSON.stringify(result, null, 2));
|
|
176
381
|
}
|
package/dist/init-agents.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init-agents.js","sourceRoot":"","sources":["../src/init-agents.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init-agents.js","sourceRoot":"","sources":["../src/init-agents.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** Code-unit order, the same on every runtime and in every locale. A file a project commits (a lock, a
|
|
2
|
+
* generated SDK) sorts with this, so its bytes do not depend on the machine that wrote it. */
|
|
3
|
+
export declare function codeUnitOrder(a: string, b: string): number;
|
|
4
|
+
//# sourceMappingURL=code-unit-order.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-unit-order.d.ts","sourceRoot":"","sources":["../../src/internal/code-unit-order.ts"],"names":[],"mappings":"AAAA;8FAC8F;AAC9F,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** Code-unit order, the same on every runtime and in every locale. A file a project commits (a lock, a
|
|
2
|
+
* generated SDK) sorts with this, so its bytes do not depend on the machine that wrote it. */
|
|
3
|
+
export function codeUnitOrder(a, b) {
|
|
4
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=code-unit-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-unit-order.js","sourceRoot":"","sources":["../../src/internal/code-unit-order.ts"],"names":[],"mappings":"AAAA;8FAC8F;AAC9F,MAAM,UAAU,aAAa,CAAC,CAAS,EAAE,CAAS;IAChD,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type * as TSApi from "typescript";
|
|
2
|
+
/**
|
|
3
|
+
* The parser mode for a source file, by its extension. A `.ts` file is not parsed as TSX: there
|
|
4
|
+
* `<T>(x: T) => x` and `<Type>value` read as JSX, and parser recovery loses what follows them.
|
|
5
|
+
*/
|
|
6
|
+
export declare function scriptKindOf(ts: typeof TSApi, file: string): TSApi.ScriptKind;
|
|
7
|
+
//# sourceMappingURL=script-kind.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-kind.d.ts","sourceRoot":"","sources":["../../src/internal/script-kind.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,CAI7E"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The parser mode for a source file, by its extension. A `.ts` file is not parsed as TSX: there
|
|
3
|
+
* `<T>(x: T) => x` and `<Type>value` read as JSX, and parser recovery loses what follows them.
|
|
4
|
+
*/
|
|
5
|
+
export function scriptKindOf(ts, file) {
|
|
6
|
+
if (file.endsWith(".tsx"))
|
|
7
|
+
return ts.ScriptKind.TSX;
|
|
8
|
+
if (/\.[cm]?ts$/.test(file))
|
|
9
|
+
return ts.ScriptKind.TS;
|
|
10
|
+
return file.endsWith(".jsx") ? ts.ScriptKind.JSX : ts.ScriptKind.JS;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=script-kind.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-kind.js","sourceRoot":"","sources":["../../src/internal/script-kind.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,EAAgB,EAAE,IAAY;IACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,GAAG,CAAA;IACnD,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,CAAC,UAAU,CAAC,EAAE,CAAA;IACpD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAA;AACrE,CAAC"}
|
|
@@ -9,7 +9,12 @@ export interface SourceFacts {
|
|
|
9
9
|
parse(file: string, content: string): TSApi.SourceFile | undefined;
|
|
10
10
|
isValueImportAt(source: TSApi.SourceFile, position: number, specifier: string): boolean | undefined;
|
|
11
11
|
isRouteRegistrationAt(source: TSApi.SourceFile, position: number, method: string, path: string): boolean | undefined;
|
|
12
|
+
/** A call to the free function `callee` whose argument at `pathIndex` is the literal `path`. */
|
|
13
|
+
isFunctionRouteCallAt(source: TSApi.SourceFile, position: number, callee: string, pathIndex: number, path: string): boolean | undefined;
|
|
12
14
|
isResponseSyntaxAt(source: TSApi.SourceFile, position: number): boolean | undefined;
|
|
15
|
+
/** Whether the `import` keyword at `position` starts a runtime `import(specifier)` call (true) or a
|
|
16
|
+
* type-position `import("…")` such as `typeof import("x")` (false); undefined when neither. */
|
|
17
|
+
isDynamicImportAt(source: TSApi.SourceFile, position: number, specifier: string): boolean | undefined;
|
|
13
18
|
}
|
|
14
19
|
export declare function createSourceFacts(ts: TypeScriptApi): SourceFacts;
|
|
15
20
|
//# sourceMappingURL=source-facts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-facts.d.ts","sourceRoot":"","sources":["../../src/internal/source-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"source-facts.d.ts","sourceRoot":"","sources":["../../src/internal/source-facts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,YAAY,CAAA;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE3D;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,UAAU,GAAG,SAAS,CAAA;IAClE,eAAe,CACb,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,SAAS,CAAA;IACtB,qBAAqB,CACnB,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS,CAAA;IACtB,gGAAgG;IAChG,qBAAqB,CACnB,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,GAAG,SAAS,CAAA;IACtB,kBAAkB,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IACnF;mGAC+F;IAC/F,iBAAiB,CACf,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,GAAG,SAAS,CAAA;CACvB;AAuCD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,aAAa,GAAG,WAAW,CAiIhE"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { scriptKindOf } from "./script-kind.js";
|
|
1
2
|
function nodeAt(ts, source, position) {
|
|
2
3
|
let best = source;
|
|
3
4
|
const visit = (node) => {
|
|
@@ -35,14 +36,34 @@ export function createSourceFacts(ts) {
|
|
|
35
36
|
const cached = cache.get(file);
|
|
36
37
|
if (cached?.content === content)
|
|
37
38
|
return cached.source;
|
|
38
|
-
const kind =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
39
|
+
const kind = scriptKindOf(ts, file);
|
|
40
|
+
let parsed;
|
|
41
|
+
try {
|
|
42
|
+
const source = ts.createSourceFile(file, content, ts.ScriptTarget.Latest, true, kind);
|
|
43
|
+
const diagnostics = source.parseDiagnostics;
|
|
44
|
+
parsed = diagnostics !== undefined && diagnostics.length > 0 ? undefined : source;
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// TypeScript 7 parses only the files its session preloaded; a module reached by following an
|
|
48
|
+
// import may not be one. Callers fall back to the lexical rule for a file with no tree.
|
|
49
|
+
parsed = undefined;
|
|
50
|
+
}
|
|
42
51
|
cache.set(file, { content, source: parsed });
|
|
43
52
|
return parsed;
|
|
44
53
|
};
|
|
45
54
|
const isValueImportAt = (source, position, specifier) => {
|
|
55
|
+
const reexport = ancestorAt(ts, source, position, ts.isExportDeclaration);
|
|
56
|
+
if (reexport !== undefined) {
|
|
57
|
+
const from = reexport.moduleSpecifier;
|
|
58
|
+
if (from === undefined || !ts.isStringLiteral(from) || from.text !== specifier)
|
|
59
|
+
return undefined;
|
|
60
|
+
if (reexport.isTypeOnly)
|
|
61
|
+
return false;
|
|
62
|
+
const named = reexport.exportClause;
|
|
63
|
+
if (named !== undefined && ts.isNamedExports(named))
|
|
64
|
+
return named.elements.some((element) => !element.isTypeOnly);
|
|
65
|
+
return true; // `export *` and `export * as ns`
|
|
66
|
+
}
|
|
46
67
|
const declaration = ancestorAt(ts, source, position, ts.isImportDeclaration);
|
|
47
68
|
if (declaration === undefined || !ts.isStringLiteral(declaration.moduleSpecifier))
|
|
48
69
|
return undefined;
|
|
@@ -66,6 +87,16 @@ export function createSourceFacts(ts) {
|
|
|
66
87
|
const first = call.arguments[0];
|
|
67
88
|
return (name === method && first !== undefined && ts.isStringLiteralLike(first) && first.text === path);
|
|
68
89
|
};
|
|
90
|
+
const isFunctionRouteCallAt = (source, position, callee, pathIndex, path) => {
|
|
91
|
+
const call = ancestorAt(ts, source, position, ts.isCallExpression);
|
|
92
|
+
if (call === undefined || !ts.isIdentifier(call.expression))
|
|
93
|
+
return false;
|
|
94
|
+
const argument = call.arguments[pathIndex];
|
|
95
|
+
return (call.expression.text === callee &&
|
|
96
|
+
argument !== undefined &&
|
|
97
|
+
ts.isStringLiteralLike(argument) &&
|
|
98
|
+
argument.text === path);
|
|
99
|
+
};
|
|
69
100
|
const isResponseSyntaxAt = (source, position) => {
|
|
70
101
|
const returnStatement = ancestorAt(ts, source, position, ts.isReturnStatement);
|
|
71
102
|
if (returnStatement !== undefined) {
|
|
@@ -77,6 +108,31 @@ export function createSourceFacts(ts) {
|
|
|
77
108
|
return rawResponseExpression(ts, arrow.body);
|
|
78
109
|
return false;
|
|
79
110
|
};
|
|
80
|
-
|
|
111
|
+
const isDynamicImportAt = (source, position, specifier) => {
|
|
112
|
+
let node = nodeAt(ts, source, Math.max(0, Math.min(position, source.end - 1)));
|
|
113
|
+
for (;;) {
|
|
114
|
+
if (ts.isImportTypeNode(node))
|
|
115
|
+
return false;
|
|
116
|
+
if (ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword) {
|
|
117
|
+
const argument = node.arguments[0];
|
|
118
|
+
if (argument === undefined ||
|
|
119
|
+
!(ts.isStringLiteral(argument) || ts.isNoSubstitutionTemplateLiteral(argument))) {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
return argument.text === specifier ? true : undefined;
|
|
123
|
+
}
|
|
124
|
+
if (node === source)
|
|
125
|
+
return undefined;
|
|
126
|
+
node = node.parent;
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
return {
|
|
130
|
+
parse,
|
|
131
|
+
isValueImportAt,
|
|
132
|
+
isRouteRegistrationAt,
|
|
133
|
+
isFunctionRouteCallAt,
|
|
134
|
+
isResponseSyntaxAt,
|
|
135
|
+
isDynamicImportAt,
|
|
136
|
+
};
|
|
81
137
|
}
|
|
82
138
|
//# sourceMappingURL=source-facts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-facts.js","sourceRoot":"","sources":["../../src/internal/source-facts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"source-facts.js","sourceRoot":"","sources":["../../src/internal/source-facts.ts"],"names":[],"mappings":"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"}
|