@nifrajs/web 4.0.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/dist/client.d.ts.map +1 -1
- package/dist/client.js +25 -20
- package/dist/client.js.map +1 -1
- package/dist/internal/secret-scan.d.ts.map +1 -1
- package/dist/internal/secret-scan.js +20 -2
- package/dist/internal/secret-scan.js.map +1 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +11 -3
- package/dist/manifest.js.map +1 -1
- package/dist/plugins/zone-guard.d.ts.map +1 -1
- package/dist/plugins/zone-guard.js +10 -2
- package/dist/plugins/zone-guard.js.map +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +70 -16
- package/dist/vite.js.map +1 -1
- package/package.json +3 -3
- package/src/client.ts +24 -18
- package/src/internal/secret-scan.ts +17 -2
- package/src/manifest.ts +15 -3
- package/src/plugins/zone-guard.ts +11 -2
- package/src/vite.ts +60 -16
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* read from the finished graph; the dev server runs it in `throw` mode, where there is no finished graph
|
|
7
7
|
* and the refusal must stop the response.
|
|
8
8
|
*/
|
|
9
|
+
import { statSync } from "node:fs";
|
|
9
10
|
import { dirname, isAbsolute, relative, resolve } from "node:path";
|
|
10
11
|
import { privateEnvDenial } from "../internal/private-env.js";
|
|
11
12
|
import { BACKEND_ONLY_MARKER, browserDenial, createZoneClassifier, } from "../zones.js";
|
|
@@ -14,13 +15,16 @@ const SOURCE_EXTENSIONS = "[cm]?[jt]sx?|svelte|vue|mdx|astro|css|scss|sass|less|
|
|
|
14
15
|
* (images, fonts, wasm, and a `.pem` or `.sql` imported `with { type: "text" }`) goes through
|
|
15
16
|
* `onResolve`: a file-loader asset panics Bun 1.4 on a declining `onLoad`. */
|
|
16
17
|
const SOURCE_FILE = new RegExp(`\\.(?:${SOURCE_EXTENSIONS})$`);
|
|
18
|
+
const ZONE_SUFFIXES = "frontend|backend|shared|fn";
|
|
17
19
|
/**
|
|
18
|
-
* A relative or absolute import whose last segment has an extension, other than a source file.
|
|
20
|
+
* A relative or absolute import whose last segment has an extension, other than a source file. A zone
|
|
21
|
+
* suffix is no extension: `"./calendar.shared"` imports `calendar.shared.ts`.
|
|
19
22
|
* Source files are excluded by the FILTER, not declined by the handler: on Bun's dev server a filter
|
|
20
23
|
* match alone changes how the import resolves, even when the handler declines (see
|
|
21
24
|
* `internal/dev-reserved.ts`), and a source file is the onLoad hook's to judge anyway.
|
|
22
25
|
*/
|
|
23
|
-
const NON_SOURCE_PATH = new RegExp(`^(?:\\.|\\/|[A-Za-z]:[\\\\/])(?![^?#]*\\.(?:${SOURCE_EXTENSIONS})(?:[?#]|$)).*\\.[^./\\\\?#]+(?:[?#].*)?$`);
|
|
26
|
+
const NON_SOURCE_PATH = new RegExp(`^(?:\\.|\\/|[A-Za-z]:[\\\\/])(?![^?#]*\\.(?:${SOURCE_EXTENSIONS}|${ZONE_SUFFIXES})(?:[?#]|$)).*\\.[^./\\\\?#]+(?:[?#].*)?$`);
|
|
27
|
+
const isFile = (path) => statSync(path, { throwIfNoEntry: false })?.isFile() ?? false;
|
|
24
28
|
/** Zones whose code runs in a browser, so may read only public environment variables. */
|
|
25
29
|
const BROWSER_CODE = new Set(["route-frontend", "frontend", "shared"]);
|
|
26
30
|
export function zoneGuardPlugin(options) {
|
|
@@ -58,6 +62,10 @@ export function zoneGuardPlugin(options) {
|
|
|
58
62
|
if (args.importer === "")
|
|
59
63
|
return undefined;
|
|
60
64
|
const file = resolve(dirname(args.importer), args.path.replace(/[?#].*$/, ""));
|
|
65
|
+
// No such file means an extensionless import of a dotted source name (`./date.utils`): Bun resolves
|
|
66
|
+
// it to the source file, which onLoad judges. Judging the bare path would refuse a file never loaded.
|
|
67
|
+
if (!isFile(file))
|
|
68
|
+
return undefined;
|
|
61
69
|
const reason = browserDenial(classifier.classify(file));
|
|
62
70
|
return reason === undefined ? undefined : refuse(file, reason, args.importer);
|
|
63
71
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zone-guard.js","sourceRoot":"","sources":["../../src/plugins/zone-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,oBAAoB,GAErB,MAAM,aAAa,CAAA;AAEpB,MAAM,iBAAiB,GACrB,mFAAmF,CAAA;AACrF;;8EAE8E;AAC9E,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,SAAS,iBAAiB,IAAI,CAAC,CAAA;AAC9D
|
|
1
|
+
{"version":3,"file":"zone-guard.js","sourceRoot":"","sources":["../../src/plugins/zone-guard.ts"],"names":[],"mappings":"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"}
|
package/dist/vite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAsBA,OAAO,EAAoB,KAAK,WAAW,EAAkB,MAAM,kBAAkB,CAAA;AAwBrF,8DAA8D;AAC9D,UAAU,QAAQ;IAChB,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;CACtD;AA4CD,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,0FAA0F;IAC1F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,SAAS,EAAE,CAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,EAChD,GAAG,EAAE,WAAW,KACb,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IACjC,gFAAgF;IAChF,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,OAAO,EAAE,CAAA;IACrC;;;OAGG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACvC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IAClD,mDAAmD;IACnD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;IACvB,+EAA+E;IAC/E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;IACnC,wFAAwF;IACxF,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC;;;;;;OAMG;IACH,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC;;;OAGG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;IACzB;;;OAGG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACtB;AAED,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
|
package/dist/vite.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* injects its HMR client + the framework's refresh preamble. Node `http` (not `Bun.serve`) because
|
|
11
11
|
* Vite's `middlewares` are Connect-style - it runs fine under Bun.
|
|
12
12
|
*/
|
|
13
|
-
import { writeFileSync } from "node:fs";
|
|
13
|
+
import { readdirSync, writeFileSync } from "node:fs";
|
|
14
14
|
import { createServer as createHttpServer, } from "node:http";
|
|
15
15
|
import { dirname, isAbsolute, join, relative, resolve as resolvePath, sep } from "node:path";
|
|
16
16
|
import { CLIENT_BATCH_MAX_BYTES } from "./dev-client.js";
|
|
@@ -32,6 +32,7 @@ export { LAST_ERROR_PATH } from "./diagnostic.js";
|
|
|
32
32
|
// The codegen'd client entry is written here (at the Vite root) so Vite serves + HMRs it.
|
|
33
33
|
const DEV_ENTRY = ".nifra-vite-entry.tsx";
|
|
34
34
|
const VITE_CLOSE_BOUND_MS = 2000;
|
|
35
|
+
const POLL_INTERVAL_MS = 80;
|
|
35
36
|
/** Candidate spellings for Vite's module-graph map. Vite has used native and slash-normalized
|
|
36
37
|
* absolute Windows paths across versions, while watcher events can additionally arrive as a file URL. */
|
|
37
38
|
const modulePathCandidates = (path) => {
|
|
@@ -43,6 +44,24 @@ const pathInside = (root, path) => {
|
|
|
43
44
|
const rel = relative(resolvePath(root), resolvePath(normalizeFilePath(path)));
|
|
44
45
|
return rel === "" || (rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute(rel));
|
|
45
46
|
};
|
|
47
|
+
/** Every file below `dir` as an absolute path. A directory removed mid-walk contributes nothing. */
|
|
48
|
+
const filesUnder = (dir, into = new Set()) => {
|
|
49
|
+
let entries;
|
|
50
|
+
try {
|
|
51
|
+
entries = readdirSync(dir, { withFileTypes: true });
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return into;
|
|
55
|
+
}
|
|
56
|
+
for (const entry of entries) {
|
|
57
|
+
const path = join(dir, entry.name);
|
|
58
|
+
if (entry.isDirectory())
|
|
59
|
+
filesUnder(path, into);
|
|
60
|
+
else
|
|
61
|
+
into.add(path);
|
|
62
|
+
}
|
|
63
|
+
return into;
|
|
64
|
+
};
|
|
46
65
|
const readNodeBody = async (req) => {
|
|
47
66
|
if (req.method === "GET" || req.method === "HEAD")
|
|
48
67
|
return undefined;
|
|
@@ -246,6 +265,9 @@ export async function createViteDevServer(options) {
|
|
|
246
265
|
const manifest = discoverRoutes(routesDir);
|
|
247
266
|
writeFileSync(resolvePath(root, DEV_ENTRY), generateClientEntry(manifest, { clientModule: options.clientModule, resolve: toUrl }));
|
|
248
267
|
};
|
|
268
|
+
const usePolling = options.poll ?? process.env.CHOKIDAR_USEPOLLING === "1";
|
|
269
|
+
// Listed before the entry is generated, so a file added in between is reconciled again, not lost.
|
|
270
|
+
const routeFiles = usePolling ? filesUnder(routesDir) : new Set();
|
|
249
271
|
writeClientEntry();
|
|
250
272
|
const entryUrl = `/${DEV_ENTRY}`;
|
|
251
273
|
// Create our HTTP server FIRST, then hand it to Vite as the HMR WebSocket host (`hmr.server`). In
|
|
@@ -408,7 +430,6 @@ export async function createViteDevServer(options) {
|
|
|
408
430
|
// path-shaped `clientModule` (tests) names no package; there is then nothing to externalize.
|
|
409
431
|
const adapterPackage = packageNameOf(options.clientModule);
|
|
410
432
|
const ssrExternal = [...(adapterPackage !== undefined ? [adapterPackage] : []), "@nifrajs/web"];
|
|
411
|
-
const usePolling = options.poll ?? process.env.CHOKIDAR_USEPOLLING === "1";
|
|
412
433
|
// The feed writes its record and log under `.nifra/`: watching them would turn every log flush into
|
|
413
434
|
// a "file change" that re-creates the app and marks every entry stale.
|
|
414
435
|
const watch = {
|
|
@@ -417,7 +438,7 @@ export async function createViteDevServer(options) {
|
|
|
417
438
|
// Poll when native fs events aren't delivered (containers/sandboxes).
|
|
418
439
|
if (usePolling) {
|
|
419
440
|
watch.usePolling = true;
|
|
420
|
-
watch.interval =
|
|
441
|
+
watch.interval = POLL_INTERVAL_MS;
|
|
421
442
|
}
|
|
422
443
|
// Never `import("vite")` directly here: the guard in `importVite` has to run first, and the dev
|
|
423
444
|
// server importing vite unguarded is precisely what poisoned the module for the whole process.
|
|
@@ -554,21 +575,52 @@ export async function createViteDevServer(options) {
|
|
|
554
575
|
session.markChange();
|
|
555
576
|
refreshApp(normalizeFilePath(path));
|
|
556
577
|
});
|
|
578
|
+
const onAddUnlink = (event, path) => {
|
|
579
|
+
const filePath = normalizeFilePath(path);
|
|
580
|
+
const inRoutes = pathInside(routesDir, filePath);
|
|
581
|
+
if (inRoutes && usePolling) {
|
|
582
|
+
const file = resolvePath(filePath);
|
|
583
|
+
// Whichever of the watcher and the rescan below reports a route file first handles it.
|
|
584
|
+
if (routeFiles.has(file) === (event === "add"))
|
|
585
|
+
return;
|
|
586
|
+
if (event === "add")
|
|
587
|
+
routeFiles.add(file);
|
|
588
|
+
else
|
|
589
|
+
routeFiles.delete(file);
|
|
590
|
+
}
|
|
591
|
+
session.markChange();
|
|
592
|
+
if (inRoutes) {
|
|
593
|
+
writeClientEntry();
|
|
594
|
+
// A newly added route is not in Vite's module graph yet, so invalidating only the
|
|
595
|
+
// route path cannot evict the cached generated entry that imports the route. Evict the
|
|
596
|
+
// generated entry after rewriting it before recreating the SSR app; this also prevents
|
|
597
|
+
// an unlink refresh from briefly loading an entry that still references the deleted file.
|
|
598
|
+
invalidateImporterClosure(resolvePath(root, DEV_ENTRY));
|
|
599
|
+
}
|
|
600
|
+
refreshApp(filePath);
|
|
601
|
+
};
|
|
557
602
|
for (const event of ["add", "unlink"]) {
|
|
558
|
-
vite.watcher.on(event, (path) =>
|
|
559
|
-
session.markChange();
|
|
560
|
-
const filePath = normalizeFilePath(path);
|
|
561
|
-
if (pathInside(routesDir, filePath)) {
|
|
562
|
-
writeClientEntry();
|
|
563
|
-
// A newly added route is not in Vite's module graph yet, so invalidating only the
|
|
564
|
-
// route path cannot evict the cached generated entry that imports the route. Evict the
|
|
565
|
-
// generated entry after rewriting it before recreating the SSR app; this also prevents
|
|
566
|
-
// an unlink refresh from briefly loading an entry that still references the deleted file.
|
|
567
|
-
invalidateImporterClosure(resolvePath(root, DEV_ENTRY));
|
|
568
|
-
}
|
|
569
|
-
refreshApp(filePath);
|
|
570
|
-
});
|
|
603
|
+
vite.watcher.on(event, (path) => onAddUnlink(event, path));
|
|
571
604
|
}
|
|
605
|
+
// Chokidar reports ready before the poller has taken its baseline stat of a directory (Bun's
|
|
606
|
+
// fs.watchFile takes it asynchronously), and a route added or removed in that gap is folded into the
|
|
607
|
+
// baseline and never reported. The manifest comes from a directory scan, so a scan diffed against the
|
|
608
|
+
// route files already handled recovers those events.
|
|
609
|
+
const reconcileRouteFiles = () => {
|
|
610
|
+
const onDisk = filesUnder(routesDir);
|
|
611
|
+
try {
|
|
612
|
+
for (const file of onDisk)
|
|
613
|
+
if (!routeFiles.has(file))
|
|
614
|
+
onAddUnlink("add", file);
|
|
615
|
+
for (const file of [...routeFiles])
|
|
616
|
+
if (!onDisk.has(file))
|
|
617
|
+
onAddUnlink("unlink", file);
|
|
618
|
+
}
|
|
619
|
+
catch (err) {
|
|
620
|
+
console.error("[nifra/web/vite] route rescan failed:", err);
|
|
621
|
+
session.buildFailed(err, "route rescan failed");
|
|
622
|
+
}
|
|
623
|
+
};
|
|
572
624
|
await watcherReady;
|
|
573
625
|
try {
|
|
574
626
|
await listenOrExplain(server, port, "127.0.0.1");
|
|
@@ -588,9 +640,11 @@ export async function createViteDevServer(options) {
|
|
|
588
640
|
const address = server.address();
|
|
589
641
|
const boundPort = typeof address === "object" && address !== null ? address.port : port;
|
|
590
642
|
session.listening(boundPort);
|
|
643
|
+
const routeRescan = usePolling ? setInterval(reconcileRouteFiles, POLL_INTERVAL_MS) : undefined;
|
|
591
644
|
return {
|
|
592
645
|
port: boundPort,
|
|
593
646
|
stop: async () => {
|
|
647
|
+
clearInterval(routeRescan);
|
|
594
648
|
session.stop();
|
|
595
649
|
// Cleared with the server that owns it: the slot is process-global, so a stopped server leaving
|
|
596
650
|
// its loader behind would hand the next one's adapter a graph that is closed (tests start and
|
package/dist/vite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nifrajs/web",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.2",
|
|
4
4
|
"description": "Framework-agnostic SSR core for nifra - the render seam + HTML document orchestration.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bun",
|
|
@@ -244,8 +244,8 @@
|
|
|
244
244
|
"access": "public"
|
|
245
245
|
},
|
|
246
246
|
"dependencies": {
|
|
247
|
-
"@nifrajs/core": "4.0.
|
|
248
|
-
"@nifrajs/island-trigger": "4.0.
|
|
247
|
+
"@nifrajs/core": "4.0.2",
|
|
248
|
+
"@nifrajs/island-trigger": "4.0.2"
|
|
249
249
|
},
|
|
250
250
|
"peerDependencies": {
|
|
251
251
|
"@babel/core": "^7.26.0",
|
package/src/client.ts
CHANGED
|
@@ -206,6 +206,23 @@ export function waitForStyles(options: WaitForStylesOptions = {}): Promise<void>
|
|
|
206
206
|
return Promise.all(promises).then(() => undefined)
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
/**
|
|
210
|
+
* Resolve `href` against this page and keep it only when history may move there without a load: same
|
|
211
|
+
* scheme and host as the document, or null. Compared by protocol + host rather than `URL.origin`,
|
|
212
|
+
* which is `"null"` for every non-special scheme - a native webview's `capacitor://localhost` page and
|
|
213
|
+
* a `javascript:` target alike. An opaque or `file:` document may not push another path at all, so its
|
|
214
|
+
* links load natively.
|
|
215
|
+
*/
|
|
216
|
+
function sameDocumentUrl(href: string): URL | null {
|
|
217
|
+
if (location.origin === "null" || location.protocol === "file:") return null
|
|
218
|
+
try {
|
|
219
|
+
const url = new URL(href, location.href)
|
|
220
|
+
return url.protocol === location.protocol && url.host === location.host ? url : null
|
|
221
|
+
} catch {
|
|
222
|
+
return null
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
|
|
209
226
|
/**
|
|
210
227
|
* Attach history + link interception to a router. Returns a teardown function that removes the
|
|
211
228
|
* listeners. A data-fetch failure during a client navigation falls back to a full-page load, so
|
|
@@ -288,7 +305,7 @@ export function installHistory(
|
|
|
288
305
|
|
|
289
306
|
// Parse a path into the `{ pathname, search, hash }` a `BlockerFunction` decides on.
|
|
290
307
|
const locationOf = (path: string): BlockerLocation => {
|
|
291
|
-
const url = new URL(path, location.
|
|
308
|
+
const url = new URL(path, location.href)
|
|
292
309
|
return { pathname: url.pathname, search: url.search, hash: url.hash }
|
|
293
310
|
}
|
|
294
311
|
|
|
@@ -332,17 +349,6 @@ export function installHistory(
|
|
|
332
349
|
// Commit a navigation only after its URL and origin are known-safe. An unmatched same-origin path
|
|
333
350
|
// becomes a hard load BEFORE history is mutated; otherwise the address bar could change while the
|
|
334
351
|
// router intentionally kept rendering the old route.
|
|
335
|
-
const parseNavigationUrl = (path: string): URL | null => {
|
|
336
|
-
try {
|
|
337
|
-
const url = new URL(path, location.origin)
|
|
338
|
-
if (url.protocol !== "http:" && url.protocol !== "https:") return null
|
|
339
|
-
if (url.origin !== location.origin) return null
|
|
340
|
-
return url
|
|
341
|
-
} catch {
|
|
342
|
-
return null
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
|
|
346
352
|
const commit = (path: string, url: URL, mode: "push" | "replace", state?: unknown): void => {
|
|
347
353
|
const routePath = url.pathname + url.search
|
|
348
354
|
if (router.match(routePath) === null) {
|
|
@@ -387,7 +393,7 @@ export function installHistory(
|
|
|
387
393
|
const go = (path: string, mode: "push" | "replace", state?: unknown): void => {
|
|
388
394
|
// Validate before the blocker observes the target. A blocker receives parsed locations, so letting a
|
|
389
395
|
// malformed string reach `locationOf` would make an otherwise no-throw navigate unexpectedly throw.
|
|
390
|
-
const url =
|
|
396
|
+
const url = sameDocumentUrl(path)
|
|
391
397
|
if (url === null) {
|
|
392
398
|
settle()
|
|
393
399
|
return
|
|
@@ -432,8 +438,8 @@ export function installHistory(
|
|
|
432
438
|
if (anchor.target !== "" && anchor.target !== "_self") return null
|
|
433
439
|
if (anchor.hasAttribute("download")) return null
|
|
434
440
|
if (anchor.getAttribute("rel")?.split(/\s+/).includes("external")) return null
|
|
435
|
-
const url =
|
|
436
|
-
if (url
|
|
441
|
+
const url = sameDocumentUrl(anchor.href)
|
|
442
|
+
if (url === null) return null
|
|
437
443
|
if (router.match(url.pathname) === null) return null
|
|
438
444
|
// A same-page fragment link (`#section`, `/here#section` - only the hash differs) → null: let the
|
|
439
445
|
// browser do its native in-page anchor jump. Intercepting it would drop the fragment from the URL
|
|
@@ -465,7 +471,7 @@ export function installHistory(
|
|
|
465
471
|
const warm = (target: EventTarget | null): void => {
|
|
466
472
|
const href = inAppHref(target)
|
|
467
473
|
if (href === null) return
|
|
468
|
-
const url = new URL(href, location.
|
|
474
|
+
const url = new URL(href, location.href)
|
|
469
475
|
const path = url.pathname + url.search // the #hash isn't data
|
|
470
476
|
if (path !== location.pathname + location.search) void router.prefetch(path)
|
|
471
477
|
}
|
|
@@ -689,8 +695,8 @@ export function installForms(router: ClientRouter): () => void {
|
|
|
689
695
|
const form = event.target
|
|
690
696
|
if (!(form instanceof HTMLFormElement)) return
|
|
691
697
|
if (form.method.toLowerCase() !== "post") return // GET forms submit natively
|
|
692
|
-
const url =
|
|
693
|
-
if (url
|
|
698
|
+
const url = sameDocumentUrl(form.action) // resolved (or the current document URL if unset)
|
|
699
|
+
if (url === null) return
|
|
694
700
|
if (router.match(url.pathname) === null) return // not an app route → native submit
|
|
695
701
|
event.preventDefault()
|
|
696
702
|
// `data-nifra-revalidate="false"` opts out of the post-action loader revalidation (the action's
|
|
@@ -152,7 +152,21 @@ const PLACEHOLDER =
|
|
|
152
152
|
* interpolation are not literals. The lookbehind starts a name only where an identifier starts: a
|
|
153
153
|
* match from inside a long word run backtracks the rest of that run, quadratic in its length. */
|
|
154
154
|
const ASSIGNED =
|
|
155
|
-
/(?<![\w$])([A-Za-z_$][\w$]*)["']
|
|
155
|
+
/(?<![\w$])([A-Za-z_$][\w$]*)(["']?)\s*([:=]|\?\?=|\|\|=)\s*(?:"([^"\\\r\n]{16,256})"|'([^'\\\r\n]{16,256})'|`([^`\\$\r\n]{16,256})`)/g
|
|
156
|
+
|
|
157
|
+
/** Whether a match's name is what the literal is assigned to. A quoted name must be the whole string,
|
|
158
|
+
* not the tail of one (`? "new-password" : "current-password"`), and a key is never preceded by a
|
|
159
|
+
* ternary's `?` or a member access's `.` (`ready ? config.apiKey : "..."`). */
|
|
160
|
+
function namesTheTarget(text: string, start: number, quote: string, operator: string): boolean {
|
|
161
|
+
let before = start - 1
|
|
162
|
+
if (quote !== "") {
|
|
163
|
+
if (text[before] !== quote) return false
|
|
164
|
+
before--
|
|
165
|
+
}
|
|
166
|
+
if (operator !== ":") return true
|
|
167
|
+
while (before >= 0 && /\s/.test(text[before] ?? "")) before--
|
|
168
|
+
return text[before] !== "?" && text[before] !== "."
|
|
169
|
+
}
|
|
156
170
|
|
|
157
171
|
const EXTRA_SECRET_NAME =
|
|
158
172
|
/(?:accesskey|signingkey|encryptionkey|masterkey|serviceaccountkey|connectionstring)$/
|
|
@@ -237,7 +251,8 @@ function assignedMatches(text: string): Match[] {
|
|
|
237
251
|
for (const found of text.matchAll(ASSIGNED)) {
|
|
238
252
|
const name = found[1] ?? ""
|
|
239
253
|
if (!isSensitiveFieldName(name) && !EXTRA_SECRET_NAME.test(name.toLowerCase())) continue
|
|
240
|
-
|
|
254
|
+
if (!namesTheTarget(text, found.index, found[2] ?? "", found[3] ?? "")) continue
|
|
255
|
+
const value = found[4] ?? found[5] ?? found[6] ?? ""
|
|
241
256
|
if (PUBLIC_VALUE.test(value) || PLACEHOLDER.test(value) || !looksRandom(value, 16)) continue
|
|
242
257
|
matches.push({
|
|
243
258
|
rule: "assigned-secret",
|
package/src/manifest.ts
CHANGED
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
* portable (no fs, no DOM) and fully unit-testable. Edge deploys pre-build the manifest.
|
|
6
6
|
*/
|
|
7
7
|
import { routePatternOverlap } from "@nifrajs/core"
|
|
8
|
-
import {
|
|
8
|
+
import {
|
|
9
|
+
type CompiledRoutePattern,
|
|
10
|
+
compareRoutePatternSpecificity,
|
|
11
|
+
compileRoutePattern,
|
|
12
|
+
paramConstraint,
|
|
13
|
+
} from "@nifrajs/core/pattern"
|
|
9
14
|
import type { CookieOptions, ResponseResult, StandardSchemaV1 } from "@nifrajs/core/server"
|
|
10
15
|
import type { BoundaryDescriptor, BoundaryRegistration } from "./boundary.ts"
|
|
11
16
|
import { guardChannel, outputGuard } from "./internal/output-guard.ts"
|
|
@@ -1109,6 +1114,7 @@ export function buildManifest(
|
|
|
1109
1114
|
|
|
1110
1115
|
const byPattern = new Map<string, string>()
|
|
1111
1116
|
const routes: RouteEntry[] = []
|
|
1117
|
+
const shapes: { file: string; pattern: string; shape: CompiledRoutePattern }[] = []
|
|
1112
1118
|
for (const file of routeFiles) {
|
|
1113
1119
|
const dirs = ancestorDirs(file)
|
|
1114
1120
|
const layoutDirsForFile = dirs.filter((dir) => layoutDirs.has(dir))
|
|
@@ -1132,14 +1138,20 @@ export function buildManifest(
|
|
|
1132
1138
|
`[nifra/web] duplicate route: "${file}" and "${existing}" both map to "${pattern}"`,
|
|
1133
1139
|
)
|
|
1134
1140
|
}
|
|
1135
|
-
|
|
1141
|
+
// A path two shapes share goes to the more specific one (static > mixed > param > wildcard,
|
|
1142
|
+
// segment by segment - the router's own order), and each keeps paths of its own, so
|
|
1143
|
+
// `users/me.tsx` beside `users/[id].tsx` is ordinary. Only one shape twice is ambiguous.
|
|
1144
|
+
const shape = compileRoutePattern(pattern)
|
|
1145
|
+
for (const previous of shapes) {
|
|
1146
|
+
if (compareRoutePatternSpecificity(previous.shape, shape) !== 0) continue
|
|
1136
1147
|
const witness = routePatternOverlap(previous.pattern, pattern)
|
|
1137
1148
|
if (witness !== undefined) {
|
|
1138
1149
|
throw new Error(
|
|
1139
|
-
`[nifra/web] overlapping routes: "${previous.file}" (${previous.pattern}) and "${file}" (${pattern}) both match "${witness}"; make the patterns disjoint or remove one route`,
|
|
1150
|
+
`[nifra/web] overlapping routes: "${previous.file}" (${previous.pattern}) and "${file}" (${pattern}) both match "${witness}" with the same shape, so one of them could never be served; make the patterns disjoint or remove one route`,
|
|
1140
1151
|
)
|
|
1141
1152
|
}
|
|
1142
1153
|
}
|
|
1154
|
+
shapes.push({ file, pattern, shape })
|
|
1143
1155
|
byPattern.set(pattern, file)
|
|
1144
1156
|
routes.push({
|
|
1145
1157
|
id,
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* and the refusal must stop the response.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
+
import { statSync } from "node:fs"
|
|
10
11
|
import { dirname, isAbsolute, relative, resolve } from "node:path"
|
|
11
12
|
import type { BunPlugin } from "bun"
|
|
12
13
|
import { privateEnvDenial } from "../internal/private-env.ts"
|
|
@@ -23,16 +24,21 @@ const SOURCE_EXTENSIONS =
|
|
|
23
24
|
* (images, fonts, wasm, and a `.pem` or `.sql` imported `with { type: "text" }`) goes through
|
|
24
25
|
* `onResolve`: a file-loader asset panics Bun 1.4 on a declining `onLoad`. */
|
|
25
26
|
const SOURCE_FILE = new RegExp(`\\.(?:${SOURCE_EXTENSIONS})$`)
|
|
27
|
+
const ZONE_SUFFIXES = "frontend|backend|shared|fn"
|
|
26
28
|
/**
|
|
27
|
-
* A relative or absolute import whose last segment has an extension, other than a source file.
|
|
29
|
+
* A relative or absolute import whose last segment has an extension, other than a source file. A zone
|
|
30
|
+
* suffix is no extension: `"./calendar.shared"` imports `calendar.shared.ts`.
|
|
28
31
|
* Source files are excluded by the FILTER, not declined by the handler: on Bun's dev server a filter
|
|
29
32
|
* match alone changes how the import resolves, even when the handler declines (see
|
|
30
33
|
* `internal/dev-reserved.ts`), and a source file is the onLoad hook's to judge anyway.
|
|
31
34
|
*/
|
|
32
35
|
const NON_SOURCE_PATH = new RegExp(
|
|
33
|
-
`^(?:\\.|\\/|[A-Za-z]:[\\\\/])(?![^?#]*\\.(?:${SOURCE_EXTENSIONS})(?:[?#]|$)).*\\.[^./\\\\?#]+(?:[?#].*)?$`,
|
|
36
|
+
`^(?:\\.|\\/|[A-Za-z]:[\\\\/])(?![^?#]*\\.(?:${SOURCE_EXTENSIONS}|${ZONE_SUFFIXES})(?:[?#]|$)).*\\.[^./\\\\?#]+(?:[?#].*)?$`,
|
|
34
37
|
)
|
|
35
38
|
|
|
39
|
+
const isFile = (path: string): boolean =>
|
|
40
|
+
statSync(path, { throwIfNoEntry: false })?.isFile() ?? false
|
|
41
|
+
|
|
36
42
|
export interface ZoneGuardOptions {
|
|
37
43
|
/** The app root: the directory holding `routes/`, `frontend/`, `backend/` and `shared/`. */
|
|
38
44
|
readonly appRoot: string
|
|
@@ -88,6 +94,9 @@ export function zoneGuardPlugin(options: ZoneGuardOptions): BunPlugin {
|
|
|
88
94
|
// An entry point (a dev server's HTML page) is the build's own choice, not an import.
|
|
89
95
|
if (args.importer === "") return undefined
|
|
90
96
|
const file = resolve(dirname(args.importer), args.path.replace(/[?#].*$/, ""))
|
|
97
|
+
// No such file means an extensionless import of a dotted source name (`./date.utils`): Bun resolves
|
|
98
|
+
// it to the source file, which onLoad judges. Judging the bare path would refuse a file never loaded.
|
|
99
|
+
if (!isFile(file)) return undefined
|
|
91
100
|
const reason = browserDenial(classifier.classify(file))
|
|
92
101
|
return reason === undefined ? undefined : refuse(file, reason, args.importer)
|
|
93
102
|
})
|