@nifrajs/cli 2.13.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/capabilities-tool.d.ts +54 -1
- package/dist/capabilities-tool.d.ts.map +1 -1
- package/dist/capabilities-tool.js +146 -18
- package/dist/capabilities-tool.js.map +1 -1
- package/dist/check.d.ts +11 -11
- package/dist/check.d.ts.map +1 -1
- package/dist/check.js +260 -49
- package/dist/check.js.map +1 -1
- package/dist/cli.d.ts +11 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +130 -414
- package/dist/cli.js.map +1 -1
- package/dist/command-catalog.d.ts +250 -0
- package/dist/command-catalog.d.ts.map +1 -0
- package/dist/command-catalog.js +1032 -0
- package/dist/command-catalog.js.map +1 -0
- package/dist/contracts.d.ts +9 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +22 -6
- package/dist/contracts.js.map +1 -1
- package/dist/doctor.d.ts +55 -0
- package/dist/doctor.d.ts.map +1 -1
- package/dist/doctor.js +82 -9
- package/dist/doctor.js.map +1 -1
- package/dist/env-file.d.ts +17 -0
- package/dist/env-file.d.ts.map +1 -0
- package/dist/env-file.js +113 -0
- package/dist/env-file.js.map +1 -0
- package/dist/fix-recipes.d.ts.map +1 -1
- package/dist/fix-recipes.js +91 -15
- package/dist/fix-recipes.js.map +1 -1
- package/dist/internal/reserved-segment-codemod.d.ts +36 -0
- package/dist/internal/reserved-segment-codemod.d.ts.map +1 -0
- package/dist/internal/reserved-segment-codemod.js +134 -0
- package/dist/internal/reserved-segment-codemod.js.map +1 -0
- package/dist/internal/typescript-import.d.ts +1 -1
- package/dist/internal/typescript-import.d.ts.map +1 -1
- package/dist/internal/typescript-import.js +62 -11
- package/dist/internal/typescript-import.js.map +1 -1
- package/dist/introspect.d.ts +26 -1
- package/dist/introspect.d.ts.map +1 -1
- package/dist/introspect.js +74 -24
- package/dist/introspect.js.map +1 -1
- package/dist/load.d.ts.map +1 -1
- package/dist/load.js +22 -5
- package/dist/load.js.map +1 -1
- package/dist/manifest-tool.d.ts +15 -1
- package/dist/manifest-tool.d.ts.map +1 -1
- package/dist/manifest-tool.js +23 -9
- package/dist/manifest-tool.js.map +1 -1
- package/dist/mcp-http.js +1 -1
- package/dist/mcp-http.js.map +1 -1
- package/dist/mcp.d.ts +16 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +127 -355
- package/dist/mcp.js.map +1 -1
- package/dist/project-facts.d.ts +40 -0
- package/dist/project-facts.d.ts.map +1 -0
- package/dist/project-facts.js +36 -0
- package/dist/project-facts.js.map +1 -0
- package/dist/recipes/3.0.0.d.ts +10 -0
- package/dist/recipes/3.0.0.d.ts.map +1 -0
- package/dist/recipes/3.0.0.js +23 -0
- package/dist/recipes/3.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.map +1 -1
- package/dist/release-verification.js +15 -0
- package/dist/release-verification.js.map +1 -1
- package/dist/rules/comment-markers.d.ts +8 -0
- package/dist/rules/comment-markers.d.ts.map +1 -1
- package/dist/rules/comment-markers.js +36 -0
- package/dist/rules/comment-markers.js.map +1 -1
- package/dist/rules/index.d.ts +2 -3
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/routes.d.ts.map +1 -1
- package/dist/rules/routes.js +29 -44
- package/dist/rules/routes.js.map +1 -1
- package/dist/rules/security.js +14 -14
- package/dist/rules/security.js.map +1 -1
- package/dist/workspace-link.d.ts +37 -0
- package/dist/workspace-link.d.ts.map +1 -0
- package/dist/workspace-link.js +72 -0
- package/dist/workspace-link.js.map +1 -0
- package/docs/examples.json +1 -1
- package/docs/llms-full.txt +362 -20
- package/docs/types.json +956 -56
- package/package.json +9 -9
- package/src/capabilities-tool.ts +229 -21
- package/src/check.ts +312 -65
- package/src/cli.ts +140 -405
- package/src/command-catalog.ts +1435 -0
- package/src/contracts.ts +28 -7
- package/src/doctor.ts +134 -12
- package/src/env-file.ts +121 -0
- package/src/fix-recipes.ts +101 -15
- package/src/internal/reserved-segment-codemod.ts +150 -0
- package/src/internal/typescript-import.ts +61 -11
- package/src/introspect.ts +82 -21
- package/src/load.ts +25 -6
- package/src/manifest-tool.ts +43 -12
- package/src/mcp-http.ts +1 -1
- package/src/mcp.ts +163 -420
- package/src/project-facts.ts +86 -0
- package/src/recipes/3.0.0.ts +24 -0
- package/src/recipes/index.ts +2 -0
- package/src/release-verification.ts +17 -0
- package/src/rules/comment-markers.ts +36 -0
- package/src/rules/index.ts +3 -4
- package/src/rules/routes.ts +30 -44
- package/src/rules/security.ts +14 -14
- package/src/workspace-link.ts +80 -0
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":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/rules/routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/rules/routes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAe,MAAM,YAAY,CAAA;AA4DxD,eAAO,MAAM,mBAAmB,EAAE,SAoCjC,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAgChC,CAAA;AAED,eAAO,MAAM,UAAU,sBAA2D,CAAA"}
|
package/dist/rules/routes.js
CHANGED
|
@@ -1,48 +1,39 @@
|
|
|
1
|
+
import { RESERVED_KEY_READOUT, reservedKeyFor } from "@nifrajs/client";
|
|
1
2
|
import { diagnostic } from "../diagnostics.js";
|
|
2
3
|
import { commentBlockHasMarker } from "./comment-markers.js";
|
|
3
4
|
/**
|
|
4
|
-
* Route-table lints over the statically collected route registrations (`
|
|
5
|
-
*
|
|
5
|
+
* Route-table lints over the statically collected route registrations (`ProjectFacts.routes` is built
|
|
6
|
+
* once before the registry runs - no rule re-walks source).
|
|
6
7
|
*
|
|
7
8
|
* NF-C018 exists because the typed client's proxy intercepts a fixed set of property names before
|
|
8
|
-
* path resolution (`resolveSegment` + the thenable guard in @nifrajs/client)
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
9
|
+
* path resolution (`resolveSegment` + the thenable guard in @nifrajs/client). A route whose path
|
|
10
|
+
* contains a static segment spelling one of these cannot be reached by DOT ACCESS -
|
|
11
|
+
* `api.delete.post` resolves the DELETE verb, not the path. The typed spelling is a call on the
|
|
12
|
+
* parent node (`api.api("delete").post()`, treaty.ts `SegmentCall`), and the client type rejects
|
|
13
|
+
* the dot access with the same guidance - so the collision is a warning that teaches the call
|
|
14
|
+
* spelling, not a blocking error: the route IS reachable, just not by the spelling its name
|
|
15
|
+
* suggests.
|
|
16
|
+
*
|
|
17
|
+
* The set itself is NOT copied here. It comes from `@nifrajs/client`'s `reserved.ts`, which is the
|
|
18
|
+
* one place it is written down and the one place the freeze policy lives - a lint that carried its
|
|
19
|
+
* own copy is a lint that can disagree with the compiler it is explaining.
|
|
15
20
|
*/
|
|
16
|
-
const RESERVED_VERB_SEGMENTS = new Set([
|
|
17
|
-
"get",
|
|
18
|
-
"post",
|
|
19
|
-
"put",
|
|
20
|
-
"patch",
|
|
21
|
-
"delete",
|
|
22
|
-
"head",
|
|
23
|
-
"options",
|
|
24
|
-
]);
|
|
25
|
-
// Intercepted by exact match only (`key === "subscribe"` etc.), unlike the lowercased verbs.
|
|
26
|
-
const RESERVED_EXACT_SEGMENTS = new Set(["subscribe", "ws", "index", "then"]);
|
|
27
|
-
const RESERVED_READOUT = "get/post/put/patch/delete/head/options (any casing), subscribe, ws, index, then";
|
|
28
21
|
/** Opt-out pragma for a route deliberately served only to NON-typed-client consumers. */
|
|
29
22
|
const RESERVED_SEGMENT_PRAGMA = "nifra-expect reserved-segment";
|
|
30
23
|
/** Parse-don't-cast over the project fact: a malformed entry is dropped, never trusted. */
|
|
31
24
|
function routeFacts(ctx) {
|
|
32
|
-
const raw = ctx.project.
|
|
33
|
-
if (!Array.isArray(raw))
|
|
34
|
-
return [];
|
|
25
|
+
const raw = ctx.project.routes;
|
|
35
26
|
const out = [];
|
|
36
27
|
for (const item of raw) {
|
|
37
|
-
if (typeof item !== "object" || item === null)
|
|
28
|
+
if (typeof item !== "object" || item === null || Array.isArray(item))
|
|
38
29
|
continue;
|
|
39
|
-
const record = item;
|
|
40
|
-
if (typeof record.file
|
|
41
|
-
typeof record.line
|
|
42
|
-
typeof record.method
|
|
43
|
-
typeof record.path
|
|
44
|
-
|
|
45
|
-
}
|
|
30
|
+
const record = Object.fromEntries(Object.entries(item));
|
|
31
|
+
if (typeof record.file !== "string" ||
|
|
32
|
+
typeof record.line !== "number" ||
|
|
33
|
+
typeof record.method !== "string" ||
|
|
34
|
+
typeof record.path !== "string")
|
|
35
|
+
continue;
|
|
36
|
+
out.push({ file: record.file, line: record.line, method: record.method, path: record.path });
|
|
46
37
|
}
|
|
47
38
|
return out;
|
|
48
39
|
}
|
|
@@ -56,15 +47,6 @@ function routeEscapeHint(path, colliding) {
|
|
|
56
47
|
const before = segments.slice(0, Math.max(segments.indexOf(colliding), 0));
|
|
57
48
|
return `${["api", ...before].join(".")}("${colliding}")`;
|
|
58
49
|
}
|
|
59
|
-
/** The reserved key a static path segment collides with, or undefined. Params/wildcards never collide. */
|
|
60
|
-
function reservedCollision(segment) {
|
|
61
|
-
if (segment.startsWith(":") || segment.startsWith("*"))
|
|
62
|
-
return undefined;
|
|
63
|
-
if (RESERVED_EXACT_SEGMENTS.has(segment))
|
|
64
|
-
return segment;
|
|
65
|
-
const lower = segment.toLowerCase();
|
|
66
|
-
return RESERVED_VERB_SEGMENTS.has(lower) ? lower : undefined;
|
|
67
|
-
}
|
|
68
50
|
export const reservedSegmentRule = {
|
|
69
51
|
code: "NF-C018",
|
|
70
52
|
title: "Route segment collides with a reserved client proxy key",
|
|
@@ -75,12 +57,12 @@ export const reservedSegmentRule = {
|
|
|
75
57
|
for (const segment of route.path.split("/")) {
|
|
76
58
|
if (segment === "")
|
|
77
59
|
continue;
|
|
78
|
-
const collision =
|
|
60
|
+
const collision = reservedKeyFor(segment);
|
|
79
61
|
if (collision === undefined)
|
|
80
62
|
continue;
|
|
81
63
|
let lines = linesByFile.get(route.file);
|
|
82
64
|
if (lines === undefined) {
|
|
83
|
-
lines = (ctx.
|
|
65
|
+
lines = (ctx.project.source.read(route.file) ?? "").split("\n");
|
|
84
66
|
linesByFile.set(route.file, lines);
|
|
85
67
|
}
|
|
86
68
|
if (commentBlockHasMarker(lines, route.line, RESERVED_SEGMENT_PRAGMA))
|
|
@@ -90,8 +72,11 @@ export const reservedSegmentRule = {
|
|
|
90
72
|
severity: "warn",
|
|
91
73
|
file: route.file,
|
|
92
74
|
line: route.line,
|
|
93
|
-
message: `${route.method} ${route.path} - segment '${segment}' collides with the reserved client proxy key '${collision}' (reserved: ${
|
|
75
|
+
message: `${route.method} ${route.path} - segment '${segment}' collides with the reserved client proxy key '${collision}' (reserved: ${RESERVED_KEY_READOUT}); dot access cannot reach it - call the parent node with the segment instead (\`${routeEscapeHint(route.path, segment)}\`), rename the segment, or mark an intentionally non-typed-client route with \`// ${RESERVED_SEGMENT_PRAGMA}\` above the registration. \`nifra fix --code NF-C018\` rewrites the broken call sites for you`,
|
|
94
76
|
evidence: [`${route.method} ${route.path}`, `segment: ${segment}`],
|
|
77
|
+
// The route is fine; what needs editing is every typed-client call site the collision
|
|
78
|
+
// broke, which the recipe finds from the compiler rather than from this one finding.
|
|
79
|
+
fix: { recipe: "client.reserved-segment", command: "nifra fix --code NF-C018" },
|
|
95
80
|
verify: "nifra check --lints-only",
|
|
96
81
|
}));
|
|
97
82
|
break; // one finding per route, even if several segments collide
|
package/dist/rules/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/rules/routes.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/rules/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/security.js
CHANGED
|
@@ -102,8 +102,8 @@ export const secretComparisonRule = {
|
|
|
102
102
|
if (ts === undefined)
|
|
103
103
|
return didNotRun("NF-S002", "Non-constant-time secret comparison scan");
|
|
104
104
|
const findings = [];
|
|
105
|
-
for (const file of ctx.
|
|
106
|
-
const parsed = parsedFile(ts, ctx.
|
|
105
|
+
for (const file of ctx.project.source.files) {
|
|
106
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
107
107
|
if (parsed === undefined)
|
|
108
108
|
continue;
|
|
109
109
|
const { tree, lines } = parsed;
|
|
@@ -158,8 +158,8 @@ export const piiLogRule = {
|
|
|
158
158
|
if (ts === undefined)
|
|
159
159
|
return didNotRun("NF-S003", "Sensitive-value-in-log scan");
|
|
160
160
|
const findings = [];
|
|
161
|
-
for (const file of ctx.
|
|
162
|
-
const parsed = parsedFile(ts, ctx.
|
|
161
|
+
for (const file of ctx.project.source.files) {
|
|
162
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
163
163
|
if (parsed === undefined)
|
|
164
164
|
continue;
|
|
165
165
|
const { tree, lines } = parsed;
|
|
@@ -205,8 +205,8 @@ export const failOpenGateRule = {
|
|
|
205
205
|
if (ts === undefined)
|
|
206
206
|
return didNotRun("NF-S001", "Fail-open gate scan");
|
|
207
207
|
const findings = [];
|
|
208
|
-
for (const file of ctx.
|
|
209
|
-
const parsed = parsedFile(ts, ctx.
|
|
208
|
+
for (const file of ctx.project.source.files) {
|
|
209
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
210
210
|
if (parsed === undefined)
|
|
211
211
|
continue;
|
|
212
212
|
const { tree, lines } = parsed;
|
|
@@ -271,8 +271,8 @@ export const corsOriginPredicateRule = {
|
|
|
271
271
|
if (ts === undefined)
|
|
272
272
|
return didNotRun("NF-S004", "CORS origin predicate scan");
|
|
273
273
|
const findings = [];
|
|
274
|
-
for (const file of ctx.
|
|
275
|
-
const parsed = parsedFile(ts, ctx.
|
|
274
|
+
for (const file of ctx.project.source.files) {
|
|
275
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
276
276
|
if (parsed === undefined)
|
|
277
277
|
continue;
|
|
278
278
|
const { tree, lines } = parsed;
|
|
@@ -328,8 +328,8 @@ export const externalRedirectRule = {
|
|
|
328
328
|
if (ts === undefined)
|
|
329
329
|
return didNotRun("NF-S005", "External redirect opt-out scan");
|
|
330
330
|
const findings = [];
|
|
331
|
-
for (const file of ctx.
|
|
332
|
-
const parsed = parsedFile(ts, ctx.
|
|
331
|
+
for (const file of ctx.project.source.files) {
|
|
332
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
333
333
|
if (parsed === undefined)
|
|
334
334
|
continue;
|
|
335
335
|
const { tree, lines } = parsed;
|
|
@@ -379,8 +379,8 @@ export const assuranceEscapeHatchRule = {
|
|
|
379
379
|
if (ts === undefined)
|
|
380
380
|
return didNotRun("NF-S006", "Security escape hatch scan");
|
|
381
381
|
const findings = [];
|
|
382
|
-
for (const file of ctx.
|
|
383
|
-
const parsed = parsedFile(ts, ctx.
|
|
382
|
+
for (const file of ctx.project.source.files) {
|
|
383
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
384
384
|
if (parsed === undefined)
|
|
385
385
|
continue;
|
|
386
386
|
const { tree, lines } = parsed;
|
|
@@ -420,8 +420,8 @@ export const unprefixedSecureCookieRule = {
|
|
|
420
420
|
if (ts === undefined)
|
|
421
421
|
return didNotRun("NF-S007", "Secure cookie prefix scan");
|
|
422
422
|
const findings = [];
|
|
423
|
-
for (const file of ctx.
|
|
424
|
-
const parsed = parsedFile(ts, ctx.
|
|
423
|
+
for (const file of ctx.project.source.files) {
|
|
424
|
+
const parsed = parsedFile(ts, ctx.project.source, file);
|
|
425
425
|
if (parsed === undefined)
|
|
426
426
|
continue;
|
|
427
427
|
const { tree } = parsed;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/rules/security.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/rules/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolving a WORKSPACE-LINKED dependency back to the directory it really lives in.
|
|
3
|
+
*
|
|
4
|
+
* A workspace link is the one install whose realpath deliberately leaves the project: `link:` and
|
|
5
|
+
* `workspaces` entries point at a source checkout, routinely in a sibling repository. That is exactly
|
|
6
|
+
* what makes such a package able to go stale (its `dist/` is nobody's build step) and exactly what a
|
|
7
|
+
* project-contained path check rejects - so the rebuild has to resolve the escape on purpose, under
|
|
8
|
+
* its own rules, rather than reuse `resolveInsideProject`.
|
|
9
|
+
*
|
|
10
|
+
* The rules that keep it safe:
|
|
11
|
+
* - the path is never taken from a diagnostic; it is re-derived from the package NAME by walking the
|
|
12
|
+
* project's own `node_modules` chain, so only a symlink the package manager already created can be
|
|
13
|
+
* reached, and only a package the project actually declares;
|
|
14
|
+
* - a copy that resolves INSIDE `node_modules` is a registry tarball - immutable, never stale, and
|
|
15
|
+
* never rebuilt;
|
|
16
|
+
* - the package must declare the build script itself. nifra runs the project's own script, never a
|
|
17
|
+
* command of its own composition, and never through a shell.
|
|
18
|
+
*/
|
|
19
|
+
export declare function isPackageName(value: string): boolean;
|
|
20
|
+
/** The package's own build script name, or `undefined` when it declares none. */
|
|
21
|
+
export declare function buildScriptName(meta: Record<string, unknown> | undefined): string | undefined;
|
|
22
|
+
export type WorkspaceLinkResolution = {
|
|
23
|
+
readonly ok: true;
|
|
24
|
+
readonly dir: string;
|
|
25
|
+
readonly buildScript: string;
|
|
26
|
+
} | {
|
|
27
|
+
readonly ok: false;
|
|
28
|
+
readonly reason: string;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Resolve `name` to the workspace-linked checkout the project loads it from, refusing with a stated
|
|
32
|
+
* reason rather than resolving to nothing. The upward walk is unbounded on purpose: it has to reach the
|
|
33
|
+
* same hoisted copy the staleness scan found, which in a monorepo sits above the package being checked.
|
|
34
|
+
* It only ever inspects `node_modules/<name>` directories, so it cannot wander into an arbitrary path.
|
|
35
|
+
*/
|
|
36
|
+
export declare function resolveWorkspaceLinkedPackage(cwd: string, name: string): Promise<WorkspaceLinkResolution>;
|
|
37
|
+
//# sourceMappingURL=workspace-link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-link.d.ts","sourceRoot":"","sources":["../src/workspace-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAaH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,iFAAiF;AACjF,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAK7F;AAED,MAAM,MAAM,uBAAuB,GAC/B;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEnD;;;;;GAKG;AACH,wBAAsB,6BAA6B,CACjD,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,uBAAuB,CAAC,CAwBlC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolving a WORKSPACE-LINKED dependency back to the directory it really lives in.
|
|
3
|
+
*
|
|
4
|
+
* A workspace link is the one install whose realpath deliberately leaves the project: `link:` and
|
|
5
|
+
* `workspaces` entries point at a source checkout, routinely in a sibling repository. That is exactly
|
|
6
|
+
* what makes such a package able to go stale (its `dist/` is nobody's build step) and exactly what a
|
|
7
|
+
* project-contained path check rejects - so the rebuild has to resolve the escape on purpose, under
|
|
8
|
+
* its own rules, rather than reuse `resolveInsideProject`.
|
|
9
|
+
*
|
|
10
|
+
* The rules that keep it safe:
|
|
11
|
+
* - the path is never taken from a diagnostic; it is re-derived from the package NAME by walking the
|
|
12
|
+
* project's own `node_modules` chain, so only a symlink the package manager already created can be
|
|
13
|
+
* reached, and only a package the project actually declares;
|
|
14
|
+
* - a copy that resolves INSIDE `node_modules` is a registry tarball - immutable, never stale, and
|
|
15
|
+
* never rebuilt;
|
|
16
|
+
* - the package must declare the build script itself. nifra runs the project's own script, never a
|
|
17
|
+
* command of its own composition, and never through a shell.
|
|
18
|
+
*/
|
|
19
|
+
import { sep } from "node:path";
|
|
20
|
+
import { resolvedInstalledCopy } from "@nifrajs/web/internal/parity";
|
|
21
|
+
/** The one script name a rebuild will run. Guessing among `prepare`/`compile`/`build:*` would risk
|
|
22
|
+
* running something that is not the build at all; a package that names it differently is reported as
|
|
23
|
+
* un-automatable instead. */
|
|
24
|
+
const BUILD_SCRIPT = "build";
|
|
25
|
+
/** A package name npm would accept, with no path segment that could climb out of `node_modules`. */
|
|
26
|
+
const PACKAGE_NAME = /^@?[A-Za-z0-9_.-]+(?:\/[A-Za-z0-9_.-]+)?$/;
|
|
27
|
+
export function isPackageName(value) {
|
|
28
|
+
return PACKAGE_NAME.test(value) && !value.split("/").some((part) => part === "." || part === "..");
|
|
29
|
+
}
|
|
30
|
+
/** The package's own build script name, or `undefined` when it declares none. */
|
|
31
|
+
export function buildScriptName(meta) {
|
|
32
|
+
const scripts = meta?.scripts;
|
|
33
|
+
if (typeof scripts !== "object" || scripts === null)
|
|
34
|
+
return undefined;
|
|
35
|
+
const script = scripts[BUILD_SCRIPT];
|
|
36
|
+
return typeof script === "string" && script.trim().length > 0 ? BUILD_SCRIPT : undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Resolve `name` to the workspace-linked checkout the project loads it from, refusing with a stated
|
|
40
|
+
* reason rather than resolving to nothing. The upward walk is unbounded on purpose: it has to reach the
|
|
41
|
+
* same hoisted copy the staleness scan found, which in a monorepo sits above the package being checked.
|
|
42
|
+
* It only ever inspects `node_modules/<name>` directories, so it cannot wander into an arbitrary path.
|
|
43
|
+
*/
|
|
44
|
+
export async function resolveWorkspaceLinkedPackage(cwd, name) {
|
|
45
|
+
if (!isPackageName(name))
|
|
46
|
+
return { ok: false, reason: `not a package name: ${name}` };
|
|
47
|
+
// Boundary "" and the `node_modules` refusal below mirror `collectStaleWorkspaceDists` exactly, so
|
|
48
|
+
// the rebuild always lands on the same copy the staleness scan flagged.
|
|
49
|
+
const copy = await resolvedInstalledCopy(cwd, "", name);
|
|
50
|
+
if (copy === undefined)
|
|
51
|
+
return { ok: false, reason: `${name} is not installed under ${cwd}` };
|
|
52
|
+
if (copy.path.includes(`${sep}node_modules${sep}`)) {
|
|
53
|
+
return {
|
|
54
|
+
ok: false,
|
|
55
|
+
reason: `${name} resolves to a registry install (${copy.path}), which cannot be stale or rebuilt`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const meta = (await Bun.file(`${copy.path}${sep}package.json`)
|
|
59
|
+
.json()
|
|
60
|
+
.catch(() => undefined));
|
|
61
|
+
if (meta === undefined)
|
|
62
|
+
return { ok: false, reason: `${copy.path} has no readable package.json` };
|
|
63
|
+
const buildScript = buildScriptName(meta);
|
|
64
|
+
if (buildScript === undefined) {
|
|
65
|
+
return {
|
|
66
|
+
ok: false,
|
|
67
|
+
reason: `${name} declares no "${BUILD_SCRIPT}" script in ${copy.path}/package.json, so its artifact cannot be rebuilt automatically - build it the way that package expects`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return { ok: true, dir: copy.path, buildScript };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=workspace-link.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-link.js","sourceRoot":"","sources":["../src/workspace-link.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEpE;;6BAE6B;AAC7B,MAAM,YAAY,GAAG,OAAO,CAAA;AAE5B,oGAAoG;AACpG,MAAM,YAAY,GAAG,2CAA2C,CAAA;AAEhE,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,CAAA;AACpG,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,IAAyC;IACvE,MAAM,OAAO,GAAG,IAAI,EAAE,OAAO,CAAA;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IACrE,MAAM,MAAM,GAAI,OAAmC,CAAC,YAAY,CAAC,CAAA;IACjE,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAA;AAC1F,CAAC;AAMD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAAW,EACX,IAAY;IAEZ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,IAAI,EAAE,EAAE,CAAA;IACrF,mGAAmG;IACnG,wEAAwE;IACxE,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;IACvD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,2BAA2B,GAAG,EAAE,EAAE,CAAA;IAC7F,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,eAAe,GAAG,EAAE,CAAC,EAAE,CAAC;QACnD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,IAAI,oCAAoC,IAAI,CAAC,IAAI,qCAAqC;SAClG,CAAA;IACH,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,GAAG,cAAc,CAAC;SAC3D,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAwC,CAAA;IACjE,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,+BAA+B,EAAE,CAAA;IACjG,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAA;IACzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EAAE,GAAG,IAAI,iBAAiB,YAAY,eAAe,IAAI,CAAC,IAAI,wGAAwG;SAC7K,CAAA;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAA;AAClD,CAAC"}
|
package/docs/examples.json
CHANGED
|
@@ -309,7 +309,7 @@
|
|
|
309
309
|
"name": "PORTABLE_HOOK",
|
|
310
310
|
"topic": "Nifra - Plugins & middleware",
|
|
311
311
|
"slug": "plugins",
|
|
312
|
-
"code": "import type { Middleware } from \"@nifrajs/core/server\"\n\n// ONE implementation, fast on every runtime: on Bun/Deno it mutates the\n// response's own Headers in place; on Node it writes the outcome record on the\n// direct socket writer - no Web Request/Response is ever built for it.\nexport function serverName(value: string): Middleware {\n return {\n onResponseHeaders(headers, req, status) {\n if (status < 500) headers.set(\"server\", value)\n },\n }\n}"
|
|
312
|
+
"code": "import { responseObserver } from \"@nifrajs/core/response-observer\"\nimport { server } from \"@nifrajs/core/server\"\nimport type { Middleware } from \"@nifrajs/core/server\"\n\n// ONE implementation, fast on every runtime: on Bun/Deno it mutates the\n// response's own Headers in place; on Node it writes the outcome record on the\n// direct socket writer - no Web Request/Response is ever built for it.\nexport function serverName(value: string): Middleware {\n return {\n onResponseHeaders(headers, req, status) {\n if (status < 500) headers.set(\"server\", value)\n },\n }\n}\n\nconst app = server().use(responseObserver()).use(serverName(\"nifra\"))"
|
|
313
313
|
},
|
|
314
314
|
{
|
|
315
315
|
"name": "RELIABILITY",
|