@nifrajs/web 2.14.1 → 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.
Files changed (62) hide show
  1. package/dist/boundary.d.ts +158 -0
  2. package/dist/boundary.d.ts.map +1 -0
  3. package/dist/boundary.js +237 -0
  4. package/dist/boundary.js.map +1 -0
  5. package/dist/build-vite.d.ts.map +1 -1
  6. package/dist/build-vite.js +5 -3
  7. package/dist/build-vite.js.map +1 -1
  8. package/dist/build.d.ts.map +1 -1
  9. package/dist/build.js +31 -13
  10. package/dist/build.js.map +1 -1
  11. package/dist/index.d.ts +30 -9
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js +163 -51
  14. package/dist/index.js.map +1 -1
  15. package/dist/internal/fetcher-runtime.d.ts +19 -0
  16. package/dist/internal/fetcher-runtime.d.ts.map +1 -0
  17. package/dist/internal/fetcher-runtime.js +26 -0
  18. package/dist/internal/fetcher-runtime.js.map +1 -0
  19. package/dist/internal/identity-policy.d.ts +51 -0
  20. package/dist/internal/identity-policy.d.ts.map +1 -0
  21. package/dist/internal/identity-policy.js +67 -0
  22. package/dist/internal/identity-policy.js.map +1 -0
  23. package/dist/internal/parity.d.ts +97 -8
  24. package/dist/internal/parity.d.ts.map +1 -1
  25. package/dist/internal/parity.js +281 -47
  26. package/dist/internal/parity.js.map +1 -1
  27. package/dist/internal/query-runtime.d.ts +8 -0
  28. package/dist/internal/query-runtime.d.ts.map +1 -0
  29. package/dist/internal/query-runtime.js +29 -0
  30. package/dist/internal/query-runtime.js.map +1 -0
  31. package/dist/islands.d.ts +2 -2
  32. package/dist/islands.d.ts.map +1 -1
  33. package/dist/islands.js +17 -36
  34. package/dist/islands.js.map +1 -1
  35. package/dist/manifest.d.ts +41 -6
  36. package/dist/manifest.d.ts.map +1 -1
  37. package/dist/manifest.js.map +1 -1
  38. package/dist/render-seam.d.ts +5 -0
  39. package/dist/render-seam.d.ts.map +1 -1
  40. package/dist/render-seam.js +10 -0
  41. package/dist/render-seam.js.map +1 -1
  42. package/dist/router.d.ts +10 -0
  43. package/dist/router.d.ts.map +1 -1
  44. package/dist/router.js +233 -26
  45. package/dist/router.js.map +1 -1
  46. package/dist/vite.d.ts.map +1 -1
  47. package/dist/vite.js +8 -6
  48. package/dist/vite.js.map +1 -1
  49. package/package.json +13 -2
  50. package/src/boundary.ts +407 -0
  51. package/src/build-vite.ts +5 -3
  52. package/src/build.ts +36 -14
  53. package/src/index.ts +235 -49
  54. package/src/internal/fetcher-runtime.ts +36 -0
  55. package/src/internal/identity-policy.ts +94 -0
  56. package/src/internal/parity.ts +409 -57
  57. package/src/internal/query-runtime.ts +31 -0
  58. package/src/islands.ts +22 -41
  59. package/src/manifest.ts +50 -3
  60. package/src/render-seam.ts +6 -0
  61. package/src/router.ts +271 -29
  62. package/src/vite.ts +8 -6
@@ -8,27 +8,26 @@
8
8
  import { existsSync, readdirSync, readFileSync, realpathSync } from "node:fs";
9
9
  import { lstat, realpath, stat } from "node:fs/promises";
10
10
  import { dirname, join, relative, resolve, sep } from "node:path";
11
+ import { matchesSingleCopyDeclaration, readSingleCopyDeclaration, readSingleCopyRegistration, SINGLE_COPY_REGISTER_SPECIFIER, } from "@nifrajs/core/single-copy";
11
12
  import { discoverRoutes } from "../fs.js";
13
+ import { isIdentitySensitivePackage } from "./identity-policy.js";
12
14
  const DEPENDENCY_FIELDS = [
13
15
  "dependencies",
14
16
  "devDependencies",
15
17
  "peerDependencies",
16
18
  "optionalDependencies",
17
19
  ];
18
- const IDENTITY_SENSITIVE_PACKAGES = new Set([
19
- "@nifrajs/core",
20
- "react",
21
- "react-dom",
22
- "preact",
23
- "svelte",
24
- "solid-js",
25
- "vue",
26
- ]);
27
20
  const MAX_WORKSPACE_IMPORTERS = 2_048;
28
21
  const MAX_LINKED_PACKAGES = 64;
29
22
  const MAX_LINK_PROBES = 4_096;
30
23
  const SOURCE_EXTENSIONS = /\.(?:c|m)?(?:j|t)sx?$|\.(?:mdx|svelte|vue)$/;
31
- const CSS_IMPORT = /(?:import\s+(?:[^"']+\s+from\s+)?|from\s+)["'][^"']+\.(?:css|scss|sass|less|styl)(?:\?[^"']*)?["']/i;
24
+ /** A first-party reference to a stylesheet by an explicit path specifier. Covers static `import`,
25
+ * re-export `from`, dynamic `import(...)`, and `require(...)`. It stays deliberately *sound*: it only
26
+ * matches when a stylesheet specifier genuinely exists, never on an unreferenced `.css` file in the
27
+ * tree. With the css parity comparison now directional (a scanner miss passes, a false positive fails),
28
+ * a loose pattern would fail correct apps. Specifiers that cannot end in a stylesheet extension (a bare
29
+ * package `exports` subpath) stay unreachable without a resolver; those fall in the passing direction. */
30
+ const CSS_IMPORT = /(?:import\s+(?:[^"']+\s+from\s+)?|from\s+|(?:import|require)\s*\(\s*)["'][^"']+\.(?:css|scss|sass|less|styl)(?:\?[^"']*)?["']/i;
32
31
  /** A single-file-component `<style>` block (Svelte/Vue). The bundler extracts these into the app
33
32
  * stylesheet even though no `import "...css"` statement exists, so the dev contract must count them
34
33
  * or a scoped-style component would look style-free next to a production manifest that carries css. */
@@ -85,6 +84,16 @@ const workspaceContains = async (root, patterns, target) => {
85
84
  }
86
85
  return false;
87
86
  };
87
+ /** The real path, or the input when it cannot be resolved. Roots are compared against each other and
88
+ * printed side by side, so they have to be normalized the same way (`/var` vs `/private/var`). */
89
+ const realpathOrSelf = (path) => {
90
+ try {
91
+ return realpathSync(path);
92
+ }
93
+ catch {
94
+ return path;
95
+ }
96
+ };
88
97
  /** Resolve the workspace root once, even when the caller starts in a workspace package. */
89
98
  export async function resolveParityWorkspaceRoot(start) {
90
99
  const original = realpathSync(resolve(start));
@@ -102,16 +111,29 @@ export async function resolveParityWorkspaceRoot(start) {
102
111
  current = parent;
103
112
  }
104
113
  }
114
+ /**
115
+ * Every workspace manifest that can install its own copy of a dependency.
116
+ *
117
+ * A pathological workspace must not make the scan unbounded, but it must not make it LIE either: the
118
+ * cap used to discard everything collected and return an empty list, which reads downstream as "no
119
+ * duplicates" - a clean bill from a scan that never ran. The bounded prefix is kept and `truncated`
120
+ * says the rest was not looked at.
121
+ */
105
122
  const workspaceImporters = async (root, rootPackage) => {
106
123
  const manifests = new Set([join(root, "package.json")]);
124
+ let truncated = false;
107
125
  for (const pattern of workspacePatterns(rootPackage)) {
126
+ if (truncated)
127
+ break;
108
128
  const packagePattern = `${pattern.replace(/\/$/, "")}/package.json`;
109
129
  for await (const match of new Bun.Glob(packagePattern).scan({ cwd: root, dot: false })) {
110
130
  if (match.split(/[\\/]/).includes("node_modules"))
111
131
  continue;
132
+ if (manifests.size >= MAX_WORKSPACE_IMPORTERS) {
133
+ truncated = true;
134
+ break;
135
+ }
112
136
  manifests.add(join(root, match));
113
- if (manifests.size > MAX_WORKSPACE_IMPORTERS)
114
- return [];
115
137
  }
116
138
  }
117
139
  const importers = [];
@@ -120,7 +142,7 @@ const workspaceImporters = async (root, rootPackage) => {
120
142
  if (pkg !== undefined)
121
143
  importers.push({ root: dirname(manifest), package: pkg });
122
144
  }
123
- return importers;
145
+ return { importers, truncated };
124
146
  };
125
147
  export const resolvedInstalledCopy = async (importer, boundary, name) => {
126
148
  const parts = name.split("/");
@@ -145,7 +167,24 @@ export const resolvedInstalledCopy = async (importer, boundary, name) => {
145
167
  return undefined;
146
168
  }
147
169
  };
170
+ /**
171
+ * How far above a linked package its dependencies may legitimately live.
172
+ *
173
+ * A linked SOURCE CHECKOUT (`link:../../nifra/packages/core`) really does resolve its imports from its
174
+ * own repo's `node_modules`, so the walk goes up to that repo's `.git` - a duplicate found there is one
175
+ * this project genuinely dual-loads.
176
+ *
177
+ * A path that lands INSIDE a `node_modules` directory is a package-manager store copy, not a checkout:
178
+ * a symlink into another project's store (bun's `.bun/<pkg>@<version>`, an `npm link` target, a shared
179
+ * global store) resolves there. Everything above such a copy belongs to whoever owns that store, and
180
+ * walking up would sweep an unrelated project's entire dependency tree into this project's duplicate
181
+ * report - permanent findings in a repo the developer is not even working in, that no change here can
182
+ * clear. Clamp to the copy itself: only its own nested `node_modules` counts, which is exactly the set
183
+ * of modules it can actually load.
184
+ */
148
185
  const linkedRepoBoundary = async (packageRoot) => {
186
+ if (packageRoot.split(sep).includes("node_modules"))
187
+ return packageRoot;
149
188
  let dir = packageRoot;
150
189
  for (let depth = 0; depth < 8; depth++) {
151
190
  if (await pathExists(join(dir, ".git")))
@@ -166,8 +205,11 @@ const linkedPackageRoots = async (importerRoots, manifests, scanRoot) => {
166
205
  if (pkg === undefined)
167
206
  continue;
168
207
  for (const name of dependencyNames(pkg)) {
169
- if (probes++ >= MAX_LINK_PROBES || found.size >= MAX_LINKED_PACKAGES)
170
- return [...found.keys()];
208
+ // Same rule as the importer cap: a bounded scan reports that it stopped. Returning the prefix
209
+ // silently would let a duplicate sitting past the cap read as a clean bill.
210
+ if (probes++ >= MAX_LINK_PROBES || found.size >= MAX_LINKED_PACKAGES) {
211
+ return { roots: [...found.keys()], truncated: true };
212
+ }
171
213
  const candidate = join(importerRoot, "node_modules", ...name.split("/"));
172
214
  const link = await lstat(candidate).catch(() => undefined);
173
215
  if (link === undefined || !link.isSymbolicLink())
@@ -178,26 +220,114 @@ const linkedPackageRoots = async (importerRoots, manifests, scanRoot) => {
178
220
  found.set(resolved, true);
179
221
  }
180
222
  }
181
- return [...found.keys()];
223
+ return { roots: [...found.keys()], truncated: false };
182
224
  };
183
225
  export const displayPath = (cwd, path) => {
184
226
  const rel = relative(cwd, path);
185
227
  return rel === "" ? "." : rel;
186
228
  };
187
- const identityTargets = (pkg) => dependencyNames(pkg)
188
- .filter((name) => name.startsWith("@nifrajs/") || IDENTITY_SENSITIVE_PACKAGES.has(name))
189
- .sort();
190
- const IDENTITY_REMEDIATION = "Align dependency ranges and reinstall from the workspace root so every importer resolves one physical copy; nifra does not rewrite lockfiles for identity conflicts.";
229
+ /**
230
+ * The install root a copy belongs to: the directory ABOVE its last `node_modules` segment.
231
+ *
232
+ * That directory is what a package manager operates on, so it is the unit a fix is expressed in. A
233
+ * copy that sits in no `node_modules` at all is a source checkout, which is its own install root.
234
+ */
235
+ const installRootOf = (path) => {
236
+ const parts = path.split(sep);
237
+ const last = parts.lastIndexOf("node_modules");
238
+ if (last <= 0)
239
+ return path;
240
+ return parts.slice(0, last).join(sep);
241
+ };
242
+ /**
243
+ * State the SHAPE of a duplicate, not just its paths.
244
+ *
245
+ * The failure a developer has to act on is a topology, and the two topologies take opposite fixes.
246
+ * Copies under one install root (a nested `node_modules` shadowing the hoisted one) collapse with a
247
+ * single reinstall from that root. Copies under separate roots - a linked checkout, a standalone app
248
+ * beside this one with its own `node_modules` - do not: that second root belongs to another install,
249
+ * and nothing this project runs can merge it. Naming which case this is turns a path list into a
250
+ * decision.
251
+ */
252
+ const describeTopology = (base, scanRoot, paths) => {
253
+ if (paths.length === 0)
254
+ return undefined;
255
+ const counts = new Map();
256
+ for (const path of paths) {
257
+ const root = installRootOf(path);
258
+ counts.set(root, (counts.get(root) ?? 0) + 1);
259
+ }
260
+ const roots = [...counts.entries()].sort(([a], [b]) => a.localeCompare(b));
261
+ const breakdown = roots
262
+ .map(([root, count]) => `${count} under ${displayPath(base, root)}`)
263
+ .join(", ");
264
+ const outside = roots.filter(([root]) => !pathInside(scanRoot, root));
265
+ const shape = outside.length > 0
266
+ ? `${outside.length} install root${outside.length === 1 ? " is" : "s are"} outside the scanned root (${outside
267
+ .map(([root]) => displayPath(base, root))
268
+ .join(", ")}), so that copy is installed by another project and reinstalling here cannot remove it`
269
+ : roots.length > 1
270
+ ? "all install roots are inside the scanned root, so a nested install is shadowing the hoisted copy and one reinstall from the workspace root collapses it"
271
+ : "one install root holds every copy, so the split is inside a single install (a nested or stored copy), not across projects";
272
+ return `${paths.length} paths under ${roots.length} install root${roots.length === 1 ? "" : "s"}: ${breakdown}; ${shape}`;
273
+ };
274
+ /**
275
+ * State that the gate is workspace-wide, when that is what makes a finding look wrong.
276
+ *
277
+ * Running `nifra build` inside `apps/web` can fail on a copy held by `apps/admin` - a package this
278
+ * app never imports. That is deliberate, not a miss: the scan is anchored on the workspace because
279
+ * copies reached through a workspace-linked dependency are invisible from the app directory, and
280
+ * anchoring on the app is exactly how this guard once reported "none" while dev was already broken.
281
+ * The trade is over-reporting instead of under-reporting, and the note says so rather than leaving a
282
+ * developer to conclude the tool is confused about which project it is checking.
283
+ */
284
+ const describeScope = (requestedRoot, scanRoot, paths) => {
285
+ if (requestedRoot === scanRoot)
286
+ return undefined;
287
+ const outside = paths.filter((path) => !pathInside(requestedRoot, path));
288
+ if (outside.length === 0)
289
+ return undefined;
290
+ const here = relative(scanRoot, requestedRoot) || ".";
291
+ return `${outside.length} of these copies ${outside.length === 1 ? "is" : "are"} outside ${here}, so this fails every build in the workspace, including apps that never import the package. The scan is anchored on the workspace on purpose: a copy reached through a workspace-linked dependency cannot be seen from ${here} alone, and scoping to it would miss the case this check exists for. Fix the copies where they live, or declare the package single-copy.`;
292
+ };
293
+ const identityTargets = (pkg) => dependencyNames(pkg).filter(isIdentitySensitivePackage).sort();
294
+ /** version-skew is a range problem: one reinstall from the root collapses it. */
295
+ const VERSION_SKEW_REMEDIATION = "Align dependency ranges and reinstall from the workspace root so every importer resolves one physical copy; nifra does not rewrite lockfiles for identity conflicts.";
296
+ /** duplicate-path is a topology problem. When the copies come from a linked sibling repo a reinstall
297
+ * does not collapse them - each tree keeps its own copy, which is the whole reason `link:` was chosen.
298
+ * So the fix is either one physical path, or a declaration that nifra can verify and enforce. */
299
+ const duplicatePathRemediation = (name) => `Deduplicate so ${name} resolves to a single physical path, or declare it single-copy: add "nifra": { "singleCopy": ["${name}"] } to package.json and preload "${SINGLE_COPY_REGISTER_SPECIFIER}" from bunfig.toml. nifra then rewrites every duplicate to this app's copy - at one version only, so align ranges first if the copies ever differ.`;
300
+ const identityRemediation = (cause, name) => cause === "version-skew" ? VERSION_SKEW_REMEDIATION : duplicatePathRemediation(name);
301
+ /** What is left to do about a duplicate the declaration already covers. */
302
+ const deduplicatedRemediation = (registration) => registration.run || registration.test
303
+ ? "Declared single-copy and enforced: every duplicate is rewritten to this app's copy, so one module instance loads."
304
+ : `Declared single-copy, so bundled output is deduplicated by the build. Unbundled runs are NOT: Bun's runtime never offers a bare specifier to a resolver, so add preload = ["${SINGLE_COPY_REGISTER_SPECIFIER}"] to bunfig.toml (and under [test]) or \`bun test\` still loads both copies.`;
305
+ /**
306
+ * Read the declaration and its runtime proof, preferring the directory the caller is in.
307
+ *
308
+ * A monorepo declares this per app, not once at the root: the app is what owns the `node_modules` the
309
+ * duplicates must collapse into, and two apps in one workspace can legitimately differ. The workspace
310
+ * root is the fallback so a single-package project needs no second file.
311
+ */
312
+ const singleCopyCoverage = (cwd, scanRoot) => {
313
+ const declared = readSingleCopyDeclaration(cwd) ?? readSingleCopyDeclaration(scanRoot) ?? [];
314
+ const local = readSingleCopyRegistration(cwd);
315
+ const registration = local.run || local.test ? local : readSingleCopyRegistration(scanRoot);
316
+ return { declared, registration };
317
+ };
191
318
  /** Find duplicate identity-sensitive package realpaths without reading application payloads. */
192
- export async function collectIdentityParity(cwd, rootPackage, options = {}) {
193
- const requestedRoot = resolve(cwd);
319
+ export async function collectIdentityParity(cwd, rootPackage) {
320
+ const requestedRoot = realpathOrSelf(resolve(cwd));
194
321
  const localPackage = await readJson(join(requestedRoot, "package.json"));
195
- const workspace = options.useWorkspaceRoot && localPackage !== undefined
196
- ? await resolveParityWorkspaceRoot(requestedRoot)
197
- : { root: requestedRoot, package: localPackage ?? rootPackage ?? {} };
322
+ // One basis for every caller. A package subdirectory is scanned as the workspace that governs it,
323
+ // because that workspace is what installed the copies it loads - and because a doctor and a build
324
+ // that anchor differently answer the same question differently, which is how a guard loses trust.
325
+ const workspace = localPackage === undefined
326
+ ? { root: requestedRoot, package: rootPackage ?? {} }
327
+ : await resolveParityWorkspaceRoot(requestedRoot);
198
328
  const scanRoot = workspace.root;
199
329
  const scanPackage = workspace.package;
200
- const importers = await workspaceImporters(scanRoot, scanPackage);
330
+ const { importers, truncated } = await workspaceImporters(scanRoot, scanPackage);
201
331
  const byPackage = new Map();
202
332
  const record = (name, copy, importer) => {
203
333
  const copies = byPackage.get(name) ?? new Map();
@@ -214,16 +344,16 @@ export async function collectIdentityParity(cwd, rootPackage, options = {}) {
214
344
  targets.add(name);
215
345
  const copy = await resolvedInstalledCopy(importer.root, scanRoot, name);
216
346
  if (copy !== undefined)
217
- record(name, copy, displayPath(cwd, importer.root));
347
+ record(name, copy, displayPath(requestedRoot, importer.root));
218
348
  }
219
349
  }
220
350
  for (const name of targets) {
221
351
  const copy = await resolvedInstalledCopy(scanRoot, scanRoot, name);
222
352
  if (copy !== undefined)
223
- record(name, copy, displayPath(cwd, scanRoot));
353
+ record(name, copy, displayPath(requestedRoot, scanRoot));
224
354
  }
225
- const linkedRoots = await linkedPackageRoots([...importers.map((importer) => importer.root), scanRoot], [...importers.map((importer) => importer.package), scanPackage], scanRoot);
226
- for (const linkedRoot of linkedRoots) {
355
+ const linked = await linkedPackageRoots([...importers.map((importer) => importer.root), scanRoot], [...importers.map((importer) => importer.package), scanPackage], scanRoot);
356
+ for (const linkedRoot of linked.roots) {
227
357
  const linkedPackage = await readJson(join(linkedRoot, "package.json"));
228
358
  const boundary = await linkedRepoBoundary(linkedRoot);
229
359
  const linkedTargets = new Set([
@@ -235,52 +365,109 @@ export async function collectIdentityParity(cwd, rootPackage, options = {}) {
235
365
  continue;
236
366
  const copy = await resolvedInstalledCopy(linkedRoot, boundary, name);
237
367
  if (copy !== undefined)
238
- record(name, copy, displayPath(cwd, linkedRoot));
368
+ record(name, copy, displayPath(requestedRoot, linkedRoot));
239
369
  }
240
370
  }
371
+ const singleCopy = singleCopyCoverage(requestedRoot, scanRoot);
241
372
  const findings = [];
373
+ const deduplicated = [];
242
374
  for (const [name, copies] of [...byPackage.entries()].sort(([a], [b]) => a.localeCompare(b))) {
243
375
  if (copies.size < 2)
244
376
  continue;
377
+ const absolutePaths = [...copies.keys()].sort();
245
378
  const resolvedCopies = [...copies.entries()]
246
379
  .sort(([a], [b]) => a.localeCompare(b))
247
380
  .map(([path, copy]) => ({
248
381
  version: copy.version,
249
- path: displayPath(cwd, path),
382
+ path: displayPath(requestedRoot, path),
250
383
  importers: [...copy.importers].sort(),
251
384
  }));
385
+ const topology = describeTopology(requestedRoot, scanRoot, absolutePaths);
386
+ const scope = describeScope(requestedRoot, scanRoot, absolutePaths);
252
387
  const versions = [...new Set(resolvedCopies.map((copy) => copy.version))].sort();
253
388
  const cause = versions.length > 1 ? "version-skew" : "duplicate-path";
254
- findings.push({
389
+ // A declaration never covers a version skew. Redirecting across versions would hand a package a
390
+ // version it did not ask for, which converts a loud install problem into a quiet behavioural one -
391
+ // so the skew stays fatal and the ranges have to be fixed.
392
+ const covered = cause === "duplicate-path" && matchesSingleCopyDeclaration(singleCopy.declared, name);
393
+ const finding = {
255
394
  package: name,
256
395
  copies: resolvedCopies,
257
396
  versions,
258
397
  cause,
259
398
  explanation: cause === "version-skew"
260
399
  ? `${name} resolves to multiple versions and physical paths, so module state and symbols are not shared`
261
- : `${name} is loaded from more than one physical path, so module state and symbols are not shared`,
262
- remediation: IDENTITY_REMEDIATION,
263
- });
400
+ : covered
401
+ ? `${name} is installed at more than one physical path and is declared single-copy, so every duplicate is rewritten to this app's copy`
402
+ : `${name} is loaded from more than one physical path, so module state and symbols are not shared`,
403
+ remediation: covered
404
+ ? deduplicatedRemediation(singleCopy.registration)
405
+ : identityRemediation(cause, name),
406
+ ...(topology === undefined ? {} : { topology }),
407
+ ...(scope === undefined ? {} : { scope }),
408
+ deduplicated: covered,
409
+ };
410
+ (covered ? deduplicated : findings).push(finding);
264
411
  }
265
- return { workspaceRoot: scanRoot, findings };
412
+ return {
413
+ workspaceRoot: scanRoot,
414
+ requestedRoot,
415
+ truncated: truncated || linked.truncated,
416
+ findings,
417
+ deduplicated,
418
+ singleCopy,
419
+ };
266
420
  }
267
- /** One `- pkg [cause]: ...` line per finding, shared by the hard failure and the dev warning. */
421
+ /** One `- pkg [cause]: ...` block per finding, shared by the hard failure and the dev warning. */
268
422
  export function formatIdentityParityFindings(findings) {
269
423
  return findings
270
424
  .map((finding) => `- ${finding.package} [${finding.cause}]: ${finding.explanation}. ${finding.remediation}\n` +
271
425
  ` versions: ${finding.versions.join(", ")}; paths: ${finding.copies
272
426
  .map((copy) => copy.path)
273
- .join(", ")}`)
427
+ .join(", ")}` +
428
+ (finding.topology === undefined ? "" : `\n topology: ${finding.topology}`) +
429
+ (finding.scope === undefined ? "" : `\n scope: ${finding.scope}`))
274
430
  .join("\n");
275
431
  }
432
+ /**
433
+ * The basis a scan ran on, for any surface that reports its result.
434
+ *
435
+ * A verdict about installs is only as good as where it looked, and the reader cannot see that from a
436
+ * list of relative paths. Stating it also makes a truncated scan impossible to read as a clean one.
437
+ */
438
+ export function identityParityBasis(result) {
439
+ const scope = result.workspaceRoot === result.requestedRoot
440
+ ? `scanned ${result.workspaceRoot}`
441
+ : `scanned ${result.workspaceRoot} (the workspace governing ${result.requestedRoot})`;
442
+ return result.truncated
443
+ ? `${scope}; PARTIAL - enumeration stopped at a scan limit (${MAX_WORKSPACE_IMPORTERS} workspace packages, ${MAX_LINKED_PACKAGES} linked packages, or ${MAX_LINK_PROBES} link probes), so installs beyond it were not examined`
444
+ : scope;
445
+ }
276
446
  /** `2 primary package findings` / `1 primary package finding`. */
277
447
  export const identityParityHeadline = (count) => `${count} primary package finding${count === 1 ? "" : "s"}`;
278
- /** Fail before dev/build when the same identity-sensitive package has multiple realpaths. */
279
- export async function assertIdentityParity(cwd, rootPackage, options = {}) {
280
- const result = await collectIdentityParity(cwd, rootPackage, options);
281
- if (result.findings.length === 0)
448
+ /**
449
+ * Fail before dev/build when the same identity-sensitive package has multiple realpaths AND nothing
450
+ * is collapsing them.
451
+ *
452
+ * A declared package is not a suppression: the build injects the single-copy resolver, so the duplicate
453
+ * genuinely cannot reach the output. Failing on it anyway would leave the only supported answer being
454
+ * to change the install topology, which is the thing an app using linked sibling repositories cannot
455
+ * do. `result.deduplicated` still carries every covered duplicate for the caller to print.
456
+ */
457
+ export async function assertIdentityParity(cwd, rootPackage) {
458
+ const result = await collectIdentityParity(cwd, rootPackage);
459
+ if (result.findings.length === 0) {
460
+ // A bounded scan that found nothing has not shown there is nothing: the duplicate can be sitting
461
+ // in the part it never reached. `truncated` is exactly that state, so the hard gate refuses to
462
+ // read it as a pass - a guard that answers "clean" from an incomplete scan is how a guard stops
463
+ // being worth having. Reporting surfaces (`nifra doctor`, the dev warning) still print the
464
+ // partial result through `identityParityBasis`; only the gate that must not be wrong stops here.
465
+ if (result.truncated) {
466
+ throw new Error(`[nifra] identity parity inconclusive - scan limit reached (${identityParityBasis(result)}). Narrow the scan (run from the app or workspace that governs this install) or reduce the workspace/linked-package topology so the scan can complete.`);
467
+ }
282
468
  return result;
283
- throw new Error(`[nifra] identity parity failed (${identityParityHeadline(result.findings.length)}):\n${formatIdentityParityFindings(result.findings)}`);
469
+ }
470
+ throw new Error(`[nifra] identity parity failed (${identityParityHeadline(result.findings.length)}; ${identityParityBasis(result)}):\n${formatIdentityParityFindings(result.findings)}`);
284
471
  }
285
472
  const assetName = (url) => url.replace(/^.*\//, "");
286
473
  const assetExtension = (url) => {
@@ -333,7 +520,13 @@ export function normalizeBuildManifest(manifest) {
333
520
  routeChunks: Object.fromEntries(Object.entries(manifest.routes)
334
521
  .sort(([a], [b]) => a.localeCompare(b))
335
522
  .map(([route, chunks]) => [route, chunks.length])),
336
- emittedAssets: logicalStaticAssets(manifest).filter((asset) => !asset.startsWith("css:") && !asset.startsWith("public:")),
523
+ // Allowlist, not denylist: the dev/prod module-graph contract is the JavaScript module graph
524
+ // only. `js:entry` and `js:route:<id>:<n>` are the roles dev can reconstruct from source. Which
525
+ // *non-JS* files a bundler emits (svg, woff2, an extracted stylesheet) is an output detail, not
526
+ // a claim dev can make - dev serves those from source. The stylesheet claim that matters keeps
527
+ // its own `css` section; `public/` keeps `publicFiles`. A denylist admitted every future
528
+ // `asset:*` prefix by default, which is how an emitted `asset:svg` hard-failed every build.
529
+ emittedAssets: logicalStaticAssets(manifest).filter((asset) => asset.startsWith("js:")),
337
530
  },
338
531
  publicFiles: [...(manifest.publicFiles ?? [])].sort(),
339
532
  css: (manifest.css ?? []).length > 0 ? ["css:present"] : [],
@@ -406,6 +599,7 @@ export function collectDevelopmentParityInput(routesDir, publicDir) {
406
599
  routes,
407
600
  publicFiles: publicFilesUnder(publicDir),
408
601
  css,
602
+ sourceRoot,
409
603
  };
410
604
  }
411
605
  const equal = (a, b) => JSON.stringify(a) === JSON.stringify(b);
@@ -423,16 +617,56 @@ export function compareManifestParity(development, production) {
423
617
  development: development.publicFiles,
424
618
  production: production.publicFiles,
425
619
  });
426
- if (!equal(development.css, production.css))
620
+ // css is the one section with an inference-based side. The dev scanner (CSS_IMPORT) is
621
+ // sound-but-incomplete by construction, so `dev empty, prod css` is a scanner miss, not an app
622
+ // defect - it passes. Fail only the load-bearing direction: dev found styles the build does not
623
+ // ship, so the production page would render unstyled. module-graph and public-files stay on equality
624
+ // because both sides are ground truth there.
625
+ if (development.css.length > 0 && production.css.length === 0)
427
626
  differences.push({ section: "css", development: development.css, production: production.css });
428
627
  return differences;
429
628
  }
629
+ /** The forms `CSS_IMPORT` cannot see, quoted in a css parity failure so the reader knows where to look. */
630
+ const CSS_SCANNER_BLIND_SPOTS = "a dynamic import(), a bare package subpath (exports), require(), an @import inside a stylesheet, or plugin-injected css";
631
+ const symmetricDifference = (a, b) => {
632
+ const left = new Set(a);
633
+ const right = new Set(b);
634
+ return {
635
+ onlyDevelopment: a.filter((value) => !right.has(value)),
636
+ onlyProduction: b.filter((value) => !left.has(value)),
637
+ };
638
+ };
639
+ /** Turn one parity difference into a message that names the offending files, not two opaque blobs. */
640
+ function explainParityDifference(difference, development, production) {
641
+ if (difference.section === "css") {
642
+ const shipped = (production.css ?? []).join(", ");
643
+ const where = development.sourceRoot === undefined ? "" : ` under ${development.sourceRoot}`;
644
+ return (`css: production ships [${shipped || "(none)"}] but the development scanner found no static ` +
645
+ `stylesheet import${where} - it is blind to ${CSS_SCANNER_BLIND_SPOTS}`);
646
+ }
647
+ if (difference.section === "module-graph") {
648
+ const dev = difference.development;
649
+ const prod = difference.production;
650
+ const routes = symmetricDifference(dev.routes, prod.routes);
651
+ const assets = symmetricDifference(dev.emittedAssets, prod.emittedAssets);
652
+ const parts = [];
653
+ if (routes.onlyDevelopment.length > 0 || routes.onlyProduction.length > 0)
654
+ parts.push(`routes only in development=${JSON.stringify(routes.onlyDevelopment)} only in production=${JSON.stringify(routes.onlyProduction)}`);
655
+ if (assets.onlyDevelopment.length > 0 || assets.onlyProduction.length > 0)
656
+ parts.push(`chunks only in development=${JSON.stringify(assets.onlyDevelopment)} only in production=${JSON.stringify(assets.onlyProduction)}`);
657
+ if (parts.length === 0)
658
+ parts.push(`route chunk counts differ: development=${JSON.stringify(dev.routeChunks)} production=${JSON.stringify(prod.routeChunks)}`);
659
+ return `module-graph: ${parts.join("; ")}`;
660
+ }
661
+ const files = symmetricDifference(difference.development, difference.production);
662
+ return `${difference.section}: only in development=${JSON.stringify(files.onlyDevelopment)} only in production=${JSON.stringify(files.onlyProduction)}`;
663
+ }
430
664
  /** Validate a production manifest against the source manifest a development server should serve. */
431
665
  export function assertDevelopmentProductionParity(development, production) {
432
666
  const differences = compareManifestParity(createDevelopmentParityManifest(development), normalizeBuildManifest(production));
433
667
  if (differences.length > 0) {
434
668
  const detail = differences
435
- .map((difference) => `${difference.section}: development=${JSON.stringify(difference.development)} production=${JSON.stringify(difference.production)}`)
669
+ .map((difference) => explainParityDifference(difference, development, production))
436
670
  .join("; ");
437
671
  throw new Error(`[nifra] development and production manifest parity failed: ${detail}`);
438
672
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parity.js","sourceRoot":"","sources":["../../src/internal/parity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parity.js","sourceRoot":"","sources":["../../src/internal/parity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { QueryClient, QueryState } from "../query.js";
2
+ /** Stable idle state shared by every framework query binding. */
3
+ export declare const IDLE_QUERY_STATE: QueryState<never>;
4
+ /** Return the client-side query singleton, or undefined during SSR. */
5
+ export declare function getQueryClientSingleton(): QueryClient | undefined;
6
+ /** Create the refetch fallback used when a binding has no client-side query cache. */
7
+ export declare function createNoClientRefetch<T>(tag: string, operation: string): () => Promise<T>;
8
+ //# sourceMappingURL=query-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-runtime.d.ts","sourceRoot":"","sources":["../../src/internal/query-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG1D,iEAAiE;AACjE,eAAO,MAAM,gBAAgB,EAAE,UAAU,CAAC,KAAK,CAM7C,CAAA;AAIF,uEAAuE;AACvE,wBAAgB,uBAAuB,IAAI,WAAW,GAAG,SAAS,CAQjE;AAED,sFAAsF;AACtF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAIzF"}