@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export interface RouteTypesReport {
|
|
2
|
+
readonly ok: boolean;
|
|
3
|
+
readonly check: boolean;
|
|
4
|
+
/** Files written (or, with `check`, that would be). */
|
|
5
|
+
readonly written: readonly string[];
|
|
6
|
+
readonly removed: readonly string[];
|
|
7
|
+
/** With `check`: every generated file missing, out of date, or no longer generated. */
|
|
8
|
+
readonly stale: readonly string[];
|
|
9
|
+
/** Set when tsconfig does not merge `.nifra/types` in through `rootDirs`. */
|
|
10
|
+
readonly tsconfig?: string;
|
|
11
|
+
}
|
|
12
|
+
/** Why the app's tsconfig cannot resolve `./+types/<name>`, or `undefined` when it can. */
|
|
13
|
+
export declare function routeTypesTsconfigIssue(appRoot: string): string | undefined;
|
|
14
|
+
/** Generate (or, with `check`, verify) an app's route types. */
|
|
15
|
+
export declare function routeTypes(appRoot: string, options?: {
|
|
16
|
+
readonly check?: boolean;
|
|
17
|
+
}): RouteTypesReport;
|
|
18
|
+
/**
|
|
19
|
+
* Refresh route types before a command that type-checks or bundles; quiet unless something changed.
|
|
20
|
+
* Never throws: a routes tree the generator cannot read is the command's own error to report.
|
|
21
|
+
*/
|
|
22
|
+
export declare function refreshRouteTypes(appRoot: string, log?: (line: string) => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* Keep route types current while `nifra dev` runs: they depend only on which route files exist, so a
|
|
25
|
+
* route added or removed (or `backend/app.ts` appearing) regenerates them. Returns the stop function.
|
|
26
|
+
*/
|
|
27
|
+
export declare function watchRouteTypes(appRoot: string): () => void;
|
|
28
|
+
//# sourceMappingURL=route-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-types.d.ts","sourceRoot":"","sources":["../src/route-types.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;IACpB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,uDAAuD;IACvD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AA4BD,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW3E;AAKD,gEAAgE;AAChE,wBAAgB,UAAU,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,gBAAgB,CAgBlB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,GAAG,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAkB,GACxC,IAAI,CAgBN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,IAAI,CAgB3D"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `nifra types`: the generated `./+types/<route>` modules (see `@nifrajs/web/route-types`), plus the one
|
|
3
|
+
* tsconfig line that lets routes import them. `nifra dev`, `nifra build` and `nifra check` refresh them
|
|
4
|
+
* too, so a fresh checkout type-checks without running this by hand.
|
|
5
|
+
*/
|
|
6
|
+
import { existsSync, readFileSync, watch } from "node:fs";
|
|
7
|
+
import { dirname, join, relative, resolve } from "node:path";
|
|
8
|
+
import { ROUTE_TYPES_DIR, staleRouteTypes, writeRouteTypes } from "@nifrajs/web/route-types";
|
|
9
|
+
import { stripComments } from "./check-scan.js";
|
|
10
|
+
const TSCONFIG_HINT = `add "rootDirs": [".", "./${ROUTE_TYPES_DIR}"] to compilerOptions in tsconfig.json, so a route can import ./+types/<name>`;
|
|
11
|
+
/** A tsconfig's JSONC as an object, following relative `extends`, or `undefined` when unreadable. */
|
|
12
|
+
function readTsconfig(path, depth = 0) {
|
|
13
|
+
if (depth > 8 || !existsSync(path))
|
|
14
|
+
return undefined;
|
|
15
|
+
try {
|
|
16
|
+
const text = stripComments(readFileSync(path, "utf8")).replace(/,(\s*[}\]])/g, "$1");
|
|
17
|
+
const config = JSON.parse(text);
|
|
18
|
+
if (config.compilerOptions?.rootDirs !== undefined || typeof config.extends !== "string") {
|
|
19
|
+
return config;
|
|
20
|
+
}
|
|
21
|
+
if (!config.extends.startsWith("."))
|
|
22
|
+
return config;
|
|
23
|
+
const base = config.extends.endsWith(".json") ? config.extends : `${config.extends}.json`;
|
|
24
|
+
const parent = readTsconfig(resolve(dirname(path), base), depth + 1);
|
|
25
|
+
return { compilerOptions: { ...parent?.compilerOptions, ...config.compilerOptions } };
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/** Why the app's tsconfig cannot resolve `./+types/<name>`, or `undefined` when it can. */
|
|
32
|
+
export function routeTypesTsconfigIssue(appRoot) {
|
|
33
|
+
const tsconfig = join(appRoot, "tsconfig.json");
|
|
34
|
+
if (!existsSync(tsconfig))
|
|
35
|
+
return undefined;
|
|
36
|
+
const rootDirs = readTsconfig(tsconfig)?.compilerOptions?.rootDirs;
|
|
37
|
+
const merged = Array.isArray(rootDirs) &&
|
|
38
|
+
rootDirs.some((dir) => typeof dir === "string" && resolve(appRoot, dir) === resolve(appRoot, ROUTE_TYPES_DIR));
|
|
39
|
+
return merged ? undefined : TSCONFIG_HINT;
|
|
40
|
+
}
|
|
41
|
+
const appRelative = (appRoot, paths) => paths.map((path) => relative(appRoot, path).replaceAll("\\", "/"));
|
|
42
|
+
/** Generate (or, with `check`, verify) an app's route types. */
|
|
43
|
+
export function routeTypes(appRoot, options = {}) {
|
|
44
|
+
const tsconfig = routeTypesTsconfigIssue(appRoot);
|
|
45
|
+
const extra = tsconfig === undefined ? {} : { tsconfig };
|
|
46
|
+
if (options.check === true) {
|
|
47
|
+
const stale = appRelative(appRoot, staleRouteTypes({ appRoot }));
|
|
48
|
+
return { ok: stale.length === 0, check: true, written: [], removed: [], stale, ...extra };
|
|
49
|
+
}
|
|
50
|
+
const { written, removed } = writeRouteTypes({ appRoot });
|
|
51
|
+
return {
|
|
52
|
+
ok: true,
|
|
53
|
+
check: false,
|
|
54
|
+
written: appRelative(appRoot, written),
|
|
55
|
+
removed: appRelative(appRoot, removed),
|
|
56
|
+
stale: [],
|
|
57
|
+
...extra,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Refresh route types before a command that type-checks or bundles; quiet unless something changed.
|
|
62
|
+
* Never throws: a routes tree the generator cannot read is the command's own error to report.
|
|
63
|
+
*/
|
|
64
|
+
export function refreshRouteTypes(appRoot, log = console.log) {
|
|
65
|
+
if (!existsSync(join(appRoot, "routes")))
|
|
66
|
+
return;
|
|
67
|
+
let report;
|
|
68
|
+
try {
|
|
69
|
+
report = routeTypes(appRoot);
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
log(`[nifra] route types: ${error instanceof Error ? error.message : String(error)}`);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
const { written, removed, tsconfig } = report;
|
|
76
|
+
if (written.length + removed.length > 0) {
|
|
77
|
+
log(`[nifra] route types: ${written.length} written, ${removed.length} removed in ${ROUTE_TYPES_DIR}`);
|
|
78
|
+
}
|
|
79
|
+
if (tsconfig !== undefined)
|
|
80
|
+
log(`[nifra] route types: ${tsconfig}`);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Keep route types current while `nifra dev` runs: they depend only on which route files exist, so a
|
|
84
|
+
* route added or removed (or `backend/app.ts` appearing) regenerates them. Returns the stop function.
|
|
85
|
+
*/
|
|
86
|
+
export function watchRouteTypes(appRoot) {
|
|
87
|
+
const routes = join(appRoot, "routes");
|
|
88
|
+
if (!existsSync(routes))
|
|
89
|
+
return () => { };
|
|
90
|
+
let timer;
|
|
91
|
+
const schedule = () => {
|
|
92
|
+
clearTimeout(timer);
|
|
93
|
+
timer = setTimeout(() => refreshRouteTypes(appRoot), 50);
|
|
94
|
+
};
|
|
95
|
+
// Not persistent: the dev server's own shutdown must not wait on this watcher.
|
|
96
|
+
const watchers = [watch(routes, { recursive: true, persistent: false }, schedule)];
|
|
97
|
+
const backend = join(appRoot, "backend");
|
|
98
|
+
if (existsSync(backend))
|
|
99
|
+
watchers.push(watch(backend, { persistent: false }, schedule));
|
|
100
|
+
return () => {
|
|
101
|
+
clearTimeout(timer);
|
|
102
|
+
for (const watcher of watchers)
|
|
103
|
+
watcher.close();
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=route-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-types.js","sourceRoot":"","sources":["../src/route-types.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/codes.d.ts
CHANGED
|
@@ -19,6 +19,15 @@ export declare const RULE_CODES: Readonly<{
|
|
|
19
19
|
readonly "NF-C017": "Rule pack validation";
|
|
20
20
|
readonly "NF-C018": "Reserved client segment check";
|
|
21
21
|
readonly "NF-C019": "Duplicate route registration check";
|
|
22
|
+
readonly "NF-C024": "Overlapping route registration check";
|
|
23
|
+
readonly "NF-C025": "Route overlap analysis budget check";
|
|
24
|
+
readonly "NF-C026": "Route param modifier check";
|
|
25
|
+
readonly "NF-C027": "Page route under the backend mount";
|
|
26
|
+
readonly "NF-C028": "Zone import check";
|
|
27
|
+
readonly "NF-C029": "Private environment read in browser code";
|
|
28
|
+
readonly "NF-C030": "Route data without an output schema";
|
|
29
|
+
readonly "NF-C031": "Sensitive field in an output schema";
|
|
30
|
+
readonly "NF-C032": "Credential in browser code";
|
|
22
31
|
readonly "NF-C020": "Island enhancer cleanup check";
|
|
23
32
|
readonly "NF-C021": "nano binding cleanup check";
|
|
24
33
|
readonly "NF-C022": "nano bindList key check";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/rules/codes.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"codes.d.ts","sourceRoot":"","sources":["../../src/rules/codes.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+CZ,CAAA;AAEX,6DAA6D;AAC7D,eAAO,MAAM,aAAa,EAAE,WAAW,CAAC,MAAM,CAAa,CAAA;AAE3D,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,UAAU,CAAA;AAEjD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,IAAI,WAAW,CAE/D;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAO5C"}
|
package/dist/rules/codes.js
CHANGED
|
@@ -19,6 +19,15 @@ export const RULE_CODES = Object.freeze({
|
|
|
19
19
|
"NF-C017": "Rule pack validation",
|
|
20
20
|
"NF-C018": "Reserved client segment check",
|
|
21
21
|
"NF-C019": "Duplicate route registration check",
|
|
22
|
+
"NF-C024": "Overlapping route registration check",
|
|
23
|
+
"NF-C025": "Route overlap analysis budget check",
|
|
24
|
+
"NF-C026": "Route param modifier check",
|
|
25
|
+
"NF-C027": "Page route under the backend mount",
|
|
26
|
+
"NF-C028": "Zone import check",
|
|
27
|
+
"NF-C029": "Private environment read in browser code",
|
|
28
|
+
"NF-C030": "Route data without an output schema",
|
|
29
|
+
"NF-C031": "Sensitive field in an output schema",
|
|
30
|
+
"NF-C032": "Credential in browser code",
|
|
22
31
|
"NF-C020": "Island enhancer cleanup check",
|
|
23
32
|
"NF-C021": "nano binding cleanup check",
|
|
24
33
|
"NF-C022": "nano bindList key check",
|
package/dist/rules/codes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/rules/codes.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,oCAAoC;IAC/C,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,0CAA0C;IACrD,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,kDAAkD;CACrD,CAAC,CAAA;AAEX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAA;AAI3D,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,IAAI,UAAU,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAA;IACjG,CAAC;AACH,CAAC;AAED,qBAAqB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"codes.js","sourceRoot":"","sources":["../../src/rules/codes.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAE/F,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,sBAAsB;IACjC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,oCAAoC;IAC/C,SAAS,EAAE,sCAAsC;IACjD,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,oCAAoC;IAC/C,SAAS,EAAE,mBAAmB;IAC9B,SAAS,EAAE,0CAA0C;IACrD,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,4BAA4B;IACvC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,wBAAwB;IACnC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,uBAAuB;IAClC,SAAS,EAAE,yBAAyB;IACpC,SAAS,EAAE,gBAAgB;IAC3B,SAAS,EAAE,qCAAqC;IAChD,SAAS,EAAE,6BAA6B;IACxC,SAAS,EAAE,0CAA0C;IACrD,SAAS,EAAE,2BAA2B;IACtC,SAAS,EAAE,+BAA+B;IAC1C,SAAS,EAAE,kDAAkD;CACrD,CAAC,CAAA;AAEX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,aAAa,GAAwB,IAAI,GAAG,EAAE,CAAA;AAI3D,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,IAAI,UAAU,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM;QACtC,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAA;IACjE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAA;IACjG,CAAC;AACH,CAAC;AAED,qBAAqB,EAAE,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CheckRule } from "./index.js";
|
|
2
|
+
export interface MissingOutputSchema {
|
|
3
|
+
readonly name: "loader" | "action";
|
|
4
|
+
readonly schema: "loaderOutput" | "actionOutput";
|
|
5
|
+
readonly line: number;
|
|
6
|
+
}
|
|
7
|
+
/** The loader and action a route's backend half exports, may return data from, and gives no schema. */
|
|
8
|
+
export declare function missingOutputSchemas(content: string): MissingOutputSchema[];
|
|
9
|
+
export declare const missingOutputRule: CheckRule;
|
|
10
|
+
export declare const sensitiveOutputRule: CheckRule;
|
|
11
|
+
export declare const dataGuardRules: readonly CheckRule[];
|
|
12
|
+
//# sourceMappingURL=data-guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-guard.d.ts","sourceRoot":"","sources":["../../src/rules/data-guard.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAyH3C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAA;IAClC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAAA;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAID,uGAAuG;AACvG,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB,EAAE,CAmB3E;AAED,eAAO,MAAM,iBAAiB,EAAE,SAyB/B,CAAA;AAKD,eAAO,MAAM,mBAAmB,EAAE,SAkCjC,CAAA;AAED,eAAO,MAAM,cAAc,sBAA0D,CAAA"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NF-C030 and NF-C031: the data guard, checked from source.
|
|
3
|
+
*
|
|
4
|
+
* The server enforces both at runtime, on every request: data a loader or action returns without an
|
|
5
|
+
* output schema fails the request, and an output schema naming a sensitive field without
|
|
6
|
+
* `t.declassified` fails the route when it loads. These report what source alone shows, before a
|
|
7
|
+
* request ever does. NF-C030 is a warning because only running the loader proves it returns data.
|
|
8
|
+
*/
|
|
9
|
+
import { isSensitiveFieldName } from "@nifrajs/web/zones";
|
|
10
|
+
import { codePositionMask } from "../check-scan.js";
|
|
11
|
+
import { diagnostic } from "../diagnostics.js";
|
|
12
|
+
import { codeUnitOrder } from "../internal/code-unit-order.js";
|
|
13
|
+
import { zonedFiles } from "./zones.js";
|
|
14
|
+
const lineAt = (text, index) => text.slice(0, index).split("\n").length;
|
|
15
|
+
const byPlace = (a, b) => codeUnitOrder(a.file ?? "", b.file ?? "") || (a.line ?? 0) - (b.line ?? 0);
|
|
16
|
+
const exported = (mask, name) => new RegExp(`\\bexport\\s+(?:(?:async\\s+)?function\\s*\\*?\\s*|(?:const|let|var)\\s+)${name}\\b|\\bexport\\s*\\{[^}]*\\b${name}\\b[^}]*\\}`).exec(mask);
|
|
17
|
+
/** A return that hands the browser nothing: a bare return, a redirect, a status, a thrown signal. */
|
|
18
|
+
const CONTROL_FLOW = /^(?:;|$|null\b|undefined\b|redirect\s*\(|notFound\s*\(|gone\s*\(|statusPage\s*\(|new\s+Response\s*\(|Response\s*\.)/;
|
|
19
|
+
const closing = (mask, open) => {
|
|
20
|
+
let depth = 0;
|
|
21
|
+
for (let i = open; i < mask.length; i++) {
|
|
22
|
+
const c = mask[i];
|
|
23
|
+
if (c === "(" || c === "{" || c === "[")
|
|
24
|
+
depth++;
|
|
25
|
+
else if (c === ")" || c === "}" || c === "]") {
|
|
26
|
+
depth--;
|
|
27
|
+
if (depth === 0)
|
|
28
|
+
return i;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
return mask.length;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Whether the function exported as `name` may return data, read from its type-stripped source: an
|
|
35
|
+
* arrow's expression body, or a `return <value>` that is not a redirect or a status.
|
|
36
|
+
*/
|
|
37
|
+
function mayReturnData(js, name) {
|
|
38
|
+
const mask = codePositionMask(js);
|
|
39
|
+
const found = exported(mask, name);
|
|
40
|
+
if (found === null || found[0].startsWith("export {") || found[0].startsWith("export{")) {
|
|
41
|
+
return true; // declared elsewhere in the file and re-exported: assume it does
|
|
42
|
+
}
|
|
43
|
+
const params = mask.indexOf("(", found.index + found[0].length);
|
|
44
|
+
if (params === -1)
|
|
45
|
+
return true;
|
|
46
|
+
let at = closing(mask, params) + 1;
|
|
47
|
+
while (/\s/.test(mask[at] ?? ""))
|
|
48
|
+
at++;
|
|
49
|
+
if (mask.startsWith("=>", at)) {
|
|
50
|
+
at += 2;
|
|
51
|
+
while (/\s/.test(mask[at] ?? ""))
|
|
52
|
+
at++;
|
|
53
|
+
if (mask[at] !== "{")
|
|
54
|
+
return !CONTROL_FLOW.test(js.slice(at, at + 40));
|
|
55
|
+
}
|
|
56
|
+
if (mask[at] !== "{")
|
|
57
|
+
return true;
|
|
58
|
+
const body = mask.slice(at, closing(mask, at));
|
|
59
|
+
for (const match of body.matchAll(/\breturn\b/g)) {
|
|
60
|
+
const from = at + match.index + "return".length;
|
|
61
|
+
const rest = js.slice(from, from + 40).replace(/^[ \t]+/, "");
|
|
62
|
+
if (!CONTROL_FLOW.test(rest))
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
/** Where an expression starting at `start` ends: a `,`, `;` or closer at its own depth. */
|
|
68
|
+
function expressionEnd(mask, start) {
|
|
69
|
+
let depth = 0;
|
|
70
|
+
for (let i = start; i < mask.length; i++) {
|
|
71
|
+
const c = mask[i];
|
|
72
|
+
if (c === "(" || c === "{" || c === "[")
|
|
73
|
+
depth++;
|
|
74
|
+
else if (c === ")" || c === "}" || c === "]") {
|
|
75
|
+
if (depth === 0)
|
|
76
|
+
return i;
|
|
77
|
+
depth--;
|
|
78
|
+
}
|
|
79
|
+
else if (depth === 0 && (c === "," || c === ";"))
|
|
80
|
+
return i;
|
|
81
|
+
else if (depth === 0 && c === "\n") {
|
|
82
|
+
const next = /\S/.exec(mask.slice(i))?.[0];
|
|
83
|
+
const prev = /\S(?=\s*$)/.exec(mask.slice(start, i))?.[0];
|
|
84
|
+
if (next !== undefined &&
|
|
85
|
+
!".?:+-*/&|".includes(next) &&
|
|
86
|
+
!"=(,[{:?+-*/&|".includes(prev ?? "")) {
|
|
87
|
+
return i;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return mask.length;
|
|
92
|
+
}
|
|
93
|
+
/** Object keys inside `[start, end)` whose name is sensitive and whose value is not declassified. */
|
|
94
|
+
function sensitiveKeys(src, mask, start, end) {
|
|
95
|
+
const found = [];
|
|
96
|
+
for (let colon = mask.indexOf(":", start); colon !== -1 && colon < end; colon = mask.indexOf(":", colon + 1)) {
|
|
97
|
+
let k = colon - 1;
|
|
98
|
+
while (k >= start && /\s/.test(src[k] ?? ""))
|
|
99
|
+
k--;
|
|
100
|
+
let key;
|
|
101
|
+
let keyStart;
|
|
102
|
+
if (/[\w$]/.test(mask[k] ?? "")) {
|
|
103
|
+
keyStart = k;
|
|
104
|
+
while (keyStart > start && /[\w$]/.test(mask[keyStart - 1] ?? ""))
|
|
105
|
+
keyStart--;
|
|
106
|
+
key = mask.slice(keyStart, k + 1);
|
|
107
|
+
}
|
|
108
|
+
else if (src[k] === '"' || src[k] === "'") {
|
|
109
|
+
keyStart = src.lastIndexOf(src[k], k - 1);
|
|
110
|
+
if (keyStart < start)
|
|
111
|
+
continue;
|
|
112
|
+
key = src.slice(keyStart + 1, k);
|
|
113
|
+
}
|
|
114
|
+
else
|
|
115
|
+
continue;
|
|
116
|
+
let p = keyStart - 1;
|
|
117
|
+
while (p >= start && /\s/.test(mask[p] ?? ""))
|
|
118
|
+
p--;
|
|
119
|
+
if (mask[p] !== "{" && mask[p] !== ",")
|
|
120
|
+
continue;
|
|
121
|
+
if (!isSensitiveFieldName(key))
|
|
122
|
+
continue;
|
|
123
|
+
const value = src.slice(colon + 1, colon + 80).trimStart();
|
|
124
|
+
if (/^[\w$.]*declassified\s*\(/.test(value))
|
|
125
|
+
continue;
|
|
126
|
+
found.push({ key, index: keyStart });
|
|
127
|
+
}
|
|
128
|
+
return found;
|
|
129
|
+
}
|
|
130
|
+
let transpiler;
|
|
131
|
+
/** The loader and action a route's backend half exports, may return data from, and gives no schema. */
|
|
132
|
+
export function missingOutputSchemas(content) {
|
|
133
|
+
const mask = codePositionMask(content);
|
|
134
|
+
const missing = [];
|
|
135
|
+
let js;
|
|
136
|
+
for (const [name, schema] of [
|
|
137
|
+
["loader", "loaderOutput"],
|
|
138
|
+
["action", "actionOutput"],
|
|
139
|
+
]) {
|
|
140
|
+
const fn = exported(mask, name);
|
|
141
|
+
if (fn === null || exported(mask, schema) !== null)
|
|
142
|
+
continue;
|
|
143
|
+
try {
|
|
144
|
+
transpiler ??= new Bun.Transpiler({ loader: "ts" });
|
|
145
|
+
js ??= transpiler.transformSync(content);
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
js = content;
|
|
149
|
+
}
|
|
150
|
+
if (mayReturnData(js, name))
|
|
151
|
+
missing.push({ name, schema, line: lineAt(content, fn.index) });
|
|
152
|
+
}
|
|
153
|
+
return missing;
|
|
154
|
+
}
|
|
155
|
+
export const missingOutputRule = {
|
|
156
|
+
code: "NF-C030",
|
|
157
|
+
title: "Route data without an output schema",
|
|
158
|
+
async scan(ctx) {
|
|
159
|
+
const findings = [];
|
|
160
|
+
for (const { file, classification } of zonedFiles(ctx).files) {
|
|
161
|
+
if (classification.zone !== "route-backend")
|
|
162
|
+
continue;
|
|
163
|
+
const content = ctx.sources.read(file);
|
|
164
|
+
if (content === undefined)
|
|
165
|
+
continue;
|
|
166
|
+
for (const { name, schema, line } of missingOutputSchemas(content)) {
|
|
167
|
+
findings.push(diagnostic({
|
|
168
|
+
code: "NF-C030",
|
|
169
|
+
severity: "warn",
|
|
170
|
+
file,
|
|
171
|
+
line,
|
|
172
|
+
message: `${file} exports a ${name} but no ${schema}. Data it returns fails the request: everything sent to the browser needs an output schema. Export one: export const ${schema} = t.object({ ... })`,
|
|
173
|
+
evidence: [`export: ${name}`, `missing: ${schema}`],
|
|
174
|
+
verify: "nifra check",
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
return findings.sort(byPlace);
|
|
179
|
+
},
|
|
180
|
+
};
|
|
181
|
+
const OUTPUT_DECLARATION = /\bexport\s+(?:const|let|var)\s+(?:loaderOutput|actionOutput)\b[^=]*=|\boutput\s*:/g;
|
|
182
|
+
export const sensitiveOutputRule = {
|
|
183
|
+
code: "NF-C031",
|
|
184
|
+
title: "Sensitive field in an output schema",
|
|
185
|
+
async scan(ctx) {
|
|
186
|
+
const findings = [];
|
|
187
|
+
for (const { file, classification } of zonedFiles(ctx).files) {
|
|
188
|
+
if (classification.zone !== "route-backend" && classification.zone !== "fn")
|
|
189
|
+
continue;
|
|
190
|
+
const content = ctx.sources.read(file);
|
|
191
|
+
if (content === undefined)
|
|
192
|
+
continue;
|
|
193
|
+
const mask = codePositionMask(content);
|
|
194
|
+
for (const declaration of mask.matchAll(OUTPUT_DECLARATION)) {
|
|
195
|
+
const start = declaration.index + declaration[0].length;
|
|
196
|
+
for (const { key, index } of sensitiveKeys(content, mask, start, expressionEnd(mask, start))) {
|
|
197
|
+
findings.push(diagnostic({
|
|
198
|
+
code: "NF-C031",
|
|
199
|
+
severity: "error",
|
|
200
|
+
file,
|
|
201
|
+
line: lineAt(content, index),
|
|
202
|
+
message: `${file} declares "${key}" in an output schema, a field name that usually holds a credential or personal identifier. Remove it, or wrap its schema in t.declassified("why it may reach the browser", ...)`,
|
|
203
|
+
evidence: [`field: ${key}`],
|
|
204
|
+
verify: "nifra check",
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return findings.sort(byPlace);
|
|
210
|
+
},
|
|
211
|
+
};
|
|
212
|
+
export const dataGuardRules = Object.freeze([missingOutputRule, sensitiveOutputRule]);
|
|
213
|
+
//# sourceMappingURL=data-guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-guard.js","sourceRoot":"","sources":["../../src/rules/data-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Diagnostic } from "../diagnostics.js";
|
|
2
|
+
import type { TypeScriptSession } from "../internal/typescript-import.js";
|
|
2
3
|
import type { ProjectFacts } from "../project-facts.js";
|
|
3
4
|
export type { ProjectFacts } from "../project-facts.js";
|
|
4
5
|
export interface SourceFile {
|
|
@@ -13,6 +14,8 @@ export interface RuleContext {
|
|
|
13
14
|
readonly root: string;
|
|
14
15
|
readonly sources: SourceIndex;
|
|
15
16
|
readonly project: ProjectFacts;
|
|
17
|
+
/** One compiler session shared by every AST-backed rule in a check. */
|
|
18
|
+
readonly typescriptSession?: TypeScriptSession;
|
|
16
19
|
}
|
|
17
20
|
export interface CheckRule {
|
|
18
21
|
readonly code: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAIvD,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;IACjC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAA;IAC9B,uEAAuE;IACvE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CAC/C;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,UAAU,EAAE,CAAC,CAAA;CACvD;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAA;CACrC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,GAAG,SAAS,QAAQ,EAAE,CA6B7F;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,SAAS,QAAQ,EAAE,CAoFlE;AAED,wBAAsB,eAAe,CACnC,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,SAAS,SAAS,EAAE,EAC9B,KAAK,GAAE,SAAS,QAAQ,EAAO,GAC9B,OAAO,CAAC,UAAU,EAAE,CAAC,CAoBvB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,WAAW,CAMrE"}
|
package/dist/rules/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isBuiltInCode } from "./codes.js";
|
|
2
|
+
import { releaseRuleTypeScript, retainRuleTypeScript } from "./typescript.js";
|
|
2
3
|
export function validateRulePacks(packs) {
|
|
3
4
|
if (packs === undefined)
|
|
4
5
|
return [];
|
|
@@ -114,12 +115,23 @@ export function parseRulePacks(value) {
|
|
|
114
115
|
export async function runRuleRegistry(ctx, builtIns, packs = []) {
|
|
115
116
|
const rules = [...builtIns, ...validateRulePacks(packs).flatMap((pack) => pack.rules)];
|
|
116
117
|
const out = [];
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
118
|
+
const ownsTypeScriptSession = ctx.typescriptSession === undefined &&
|
|
119
|
+
ctx.project.check.unsupportedTypeScriptVersion === undefined &&
|
|
120
|
+
rules.some((rule) => isBuiltInCode(rule.code) || rule.code.startsWith("NF-"));
|
|
121
|
+
if (ownsTypeScriptSession)
|
|
122
|
+
retainRuleTypeScript(ctx);
|
|
123
|
+
try {
|
|
124
|
+
for (const rule of rules) {
|
|
125
|
+
if (isBuiltInCode(rule.code) === false && rule.code.startsWith("NF-")) {
|
|
126
|
+
throw new Error(`application rule pack code ${rule.code} uses the reserved NF- prefix`);
|
|
127
|
+
}
|
|
128
|
+
const findings = await rule.scan(ctx);
|
|
129
|
+
out.push(...findings);
|
|
120
130
|
}
|
|
121
|
-
|
|
122
|
-
|
|
131
|
+
}
|
|
132
|
+
finally {
|
|
133
|
+
if (ownsTypeScriptSession)
|
|
134
|
+
await releaseRuleTypeScript(ctx);
|
|
123
135
|
}
|
|
124
136
|
return out;
|
|
125
137
|
}
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAiC7E,MAAM,UAAU,iBAAiB,CAAC,KAAsC;IACtE,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,MAAM,UAAU,GAAe,EAAE,CAAA;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;YAC3D,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;QAC9D,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;QAC9E,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,qBAAqB,CAAC,CAAA;QAC5F,MAAM,KAAK,GAAgB,EAAE,CAAA;QAC7B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC9B,IACE,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ;gBAC9B,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;gBAC9B,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,EAC/B,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAA;YACpE,CAAC;YACD,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAA;YACzF,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAC1F,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACpB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;AAClC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IAClC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4BAA4B,CAAC,CAAA;IAC5E,MAAM,KAAK,GAAe,EAAE,CAAA;IAC5B,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAC3E,MAAM,IAAI,SAAS,CAAC,6BAA6B,CAAC,CAAA;QACpD,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;QAC9D,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAA;QACjC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtD,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAA;QAClE,MAAM,KAAK,GAAgB,EAAE,CAAA;QAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBAC3E,MAAM,IAAI,SAAS,CAAC,aAAa,IAAI,2BAA2B,CAAC,CAAA;YACnE,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;YAC9D,IACE,OAAO,UAAU,CAAC,IAAI,KAAK,QAAQ;gBACnC,OAAO,UAAU,CAAC,KAAK,KAAK,QAAQ;gBACpC,OAAO,UAAU,CAAC,IAAI,KAAK,UAAU,EACrC,CAAC;gBACD,MAAM,IAAI,SAAS,CAAC,aAAa,IAAI,2BAA2B,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;YAC5B,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,UAAU,CAAC,IAAI;gBACrB,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;oBAClB,MAAM,MAAM,GAAY,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAA;oBACnE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;wBACxB,MAAM,IAAI,SAAS,CAAC,QAAQ,UAAU,CAAC,IAAI,6BAA6B,CAAC,CAAA;oBAC3E,MAAM,QAAQ,GAAiB,EAAE,CAAA;oBACjC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;wBAC1B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;4BAClE,MAAM,IAAI,SAAS,CAAC,QAAQ,UAAU,CAAC,IAAI,iCAAiC,CAAC,CAAA;wBAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;wBACxD,IACE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ;4BAChC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;gCAC3B,OAAO,CAAC,QAAQ,KAAK,MAAM;gCAC3B,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC;4BAC9B,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EACnC,CAAC;4BACD,MAAM,IAAI,SAAS,CAAC,QAAQ,UAAU,CAAC,IAAI,iCAAiC,CAAC,CAAA;wBAC/E,CAAC;wBACD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;wBACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;wBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;wBAC/B,MAAM,MAAM,GACV,OAAO,OAAO,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;4BACpF,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACjD,CAAC,CAAC,SAAS,CAAA;wBACf,QAAQ,CAAC,IAAI,CAAC;4BACZ,IAAI;4BACJ,QAAQ;4BACR,OAAO;4BACP,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACnE,GAAG,CAAC,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACnE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;gCACjC,CAAC,CAAC;oCACE,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CACnD;iCACF;gCACH,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,CAAC,OAAO,MAAM,EAAE,MAAM,KAAK,QAAQ;gCACpC,CAAC,CAAC;oCACE,GAAG,EAAE;wCACH,MAAM,EAAE,MAAM,CAAC,MAAM;wCACrB,GAAG,CAAC,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;qCAC3E;iCACF;gCACH,CAAC,CAAC,EAAE,CAAC;4BACP,GAAG,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC1E,CAAC,CAAA;oBACJ,CAAC;oBACD,OAAO,QAAQ,CAAA;gBACjB,CAAC;aACF,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,GAAgB,EAChB,QAA8B,EAC9B,QAA6B,EAAE;IAE/B,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACtF,MAAM,GAAG,GAAiB,EAAE,CAAA;IAC5B,MAAM,qBAAqB,GACzB,GAAG,CAAC,iBAAiB,KAAK,SAAS;QACnC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,KAAK,SAAS;QAC5D,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAA;IAC/E,IAAI,qBAAqB;QAAE,oBAAoB,CAAC,GAAG,CAAC,CAAA;IACpD,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,+BAA+B,CAAC,CAAA;YACzF,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YACrC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;YAAS,CAAC;QACT,IAAI,qBAAqB;YAAE,MAAM,qBAAqB,CAAC,GAAG,CAAC,CAAA;IAC7D,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAA4B;IACtD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;IACnE,OAAO,MAAM,CAAC,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;KACtC,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/rules/islands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"islands.d.ts","sourceRoot":"","sources":["../../src/rules/islands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAA;AA+HxD,eAAO,MAAM,iBAAiB,EAAE,SA8C/B,CAAA;AAED,eAAO,MAAM,WAAW,sBAAqC,CAAA"}
|