@noego/wood 0.7.2 → 0.7.4

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 (37) hide show
  1. package/bin/wood.js +9 -1
  2. package/dist/codegen/renderer_app_generator.cjs +14 -13
  3. package/dist/codegen/renderer_app_generator.cjs.map +1 -1
  4. package/dist/codegen/renderer_app_generator.js +14 -13
  5. package/dist/codegen/renderer_app_generator.js.map +1 -1
  6. package/dist/navigation/index.cjs +14 -0
  7. package/dist/navigation/index.cjs.map +1 -1
  8. package/dist/navigation/index.d.cts +3 -1
  9. package/dist/navigation/index.d.ts +3 -1
  10. package/dist/navigation/index.js +13 -0
  11. package/dist/navigation/index.js.map +1 -1
  12. package/dist/testing/browser.cjs +11 -1
  13. package/dist/testing/browser.cjs.map +1 -1
  14. package/dist/testing/browser.d.cts +7 -1
  15. package/dist/testing/browser.d.ts +7 -1
  16. package/dist/testing/browser.js +10 -1
  17. package/dist/testing/browser.js.map +1 -1
  18. package/dist/testing/native_browser/happy_dom_tab.cjs +3 -2
  19. package/dist/testing/native_browser/happy_dom_tab.cjs.map +1 -1
  20. package/dist/testing/native_browser/happy_dom_tab.js +3 -2
  21. package/dist/testing/native_browser/happy_dom_tab.js.map +1 -1
  22. package/dist/testing/native_browser/host_transport.cjs +18 -8
  23. package/dist/testing/native_browser/host_transport.cjs.map +1 -1
  24. package/dist/testing/native_browser/host_transport.d.cts +3 -3
  25. package/dist/testing/native_browser/host_transport.d.ts +3 -3
  26. package/dist/testing/native_browser/host_transport.js +18 -8
  27. package/dist/testing/native_browser/host_transport.js.map +1 -1
  28. package/dist/testing/native_browser/playwright_tab.cjs +4 -6
  29. package/dist/testing/native_browser/playwright_tab.cjs.map +1 -1
  30. package/dist/testing/native_browser/playwright_tab.js +4 -6
  31. package/dist/testing/native_browser/playwright_tab.js.map +1 -1
  32. package/dist/testing/native_browser/renderer_entry.cjs +5 -2
  33. package/dist/testing/native_browser/renderer_entry.cjs.map +1 -1
  34. package/dist/testing/native_browser/renderer_entry.js +5 -2
  35. package/dist/testing/native_browser/renderer_entry.js.map +1 -1
  36. package/docs/native-browser-testing.md +11 -0
  37. package/package.json +2 -2
@@ -394,6 +394,12 @@ declare function createBrowserBridgeFixture(input: WoodBridgeFixtureInput | unde
394
394
  manifest: RuntimeBridgeManifestEntry[];
395
395
  bridgeInit: string;
396
396
  };
397
+ /**
398
+ * Whether a Vite importer id belongs to the runner project. Vite hands the
399
+ * resolver either a filesystem path or a `/@fs/<path>` URL, possibly with a
400
+ * query; both forms are normalised before the ancestry check.
401
+ */
402
+ declare function isInsideRoot(rootDir: string, importer: string): boolean;
397
403
  declare function createWoodBrowserResolver(rootDir: string): any;
398
404
  declare function loadSveltePlugin(rootDir: string): Promise<any | null>;
399
405
  declare function startSharedBrowserViteServer(input: {
@@ -420,4 +426,4 @@ declare global {
420
426
  }
421
427
  }
422
428
 
423
- export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserFixture, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browserAssertions, createBrowserBridgeFixture, createBrowserFixture, createWoodBrowserResolver, loadSveltePlugin, startSharedBrowserViteServer };
429
+ export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserFixture, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browserAssertions, createBrowserBridgeFixture, createBrowserFixture, createWoodBrowserResolver, isInsideRoot, loadSveltePlugin, startSharedBrowserViteServer };
@@ -394,6 +394,12 @@ declare function createBrowserBridgeFixture(input: WoodBridgeFixtureInput | unde
394
394
  manifest: RuntimeBridgeManifestEntry[];
395
395
  bridgeInit: string;
396
396
  };
397
+ /**
398
+ * Whether a Vite importer id belongs to the runner project. Vite hands the
399
+ * resolver either a filesystem path or a `/@fs/<path>` URL, possibly with a
400
+ * query; both forms are normalised before the ancestry check.
401
+ */
402
+ declare function isInsideRoot(rootDir: string, importer: string): boolean;
397
403
  declare function createWoodBrowserResolver(rootDir: string): any;
398
404
  declare function loadSveltePlugin(rootDir: string): Promise<any | null>;
399
405
  declare function startSharedBrowserViteServer(input: {
@@ -420,4 +426,4 @@ declare global {
420
426
  }
421
427
  }
422
428
 
423
- export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserFixture, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browserAssertions, createBrowserBridgeFixture, createBrowserFixture, createWoodBrowserResolver, loadSveltePlugin, startSharedBrowserViteServer };
429
+ export { type MountComponentOptions, type MountRouteOptions, type MountTreeOptions, type MountedWoodBridge, type MountedWoodComponent, type MountedWoodNavigation, type MountedWoodRoute, type MountedWoodSurface, type MountedWoodTree, type WoodBridgeFixtureContext, type WoodBridgeFixtureInput, type WoodBridgeRecordedCall, type WoodBridgeRecordedEvent, type WoodBrowserExpect, type WoodBrowserFixture, type WoodBrowserHarnessConfig, type WoodBrowserPageContext, type WoodBrowserTraceConfig, type WoodHitTestResult, type WoodRectSnapshot, type WoodRpcManifestEntryInput, type WoodSpacingAxis, type WoodViewport, browserAssertions, createBrowserBridgeFixture, createBrowserFixture, createWoodBrowserResolver, isInsideRoot, loadSveltePlugin, startSharedBrowserViteServer };
@@ -232,6 +232,13 @@ function resolvePackageDir(rootDir, packageName) {
232
232
  const packageJson = resolvePackageModule(rootDir, `${packageName}/package.json`);
233
233
  return packageJson ? path.dirname(packageJson) : null;
234
234
  }
235
+ function isInsideRoot(rootDir, importer) {
236
+ const withoutQuery = importer.split("?")[0] ?? importer;
237
+ const fsPath = withoutQuery.startsWith("/@fs/") ? `/${withoutQuery.slice("/@fs/".length).replace(/^\/+/, "")}` : withoutQuery;
238
+ const root = path.resolve(rootDir).replace(/\\/g, "/");
239
+ const candidate = path.resolve(fsPath).replace(/\\/g, "/");
240
+ return candidate === root || candidate.startsWith(`${root}/`);
241
+ }
235
242
  function createWoodBrowserResolver(rootDir) {
236
243
  const sveltePackageDir = resolvePackageDir(rootDir, "svelte");
237
244
  const svelteClientEntry = sveltePackageDir ? path.join(sveltePackageDir, "src", "index-client.js") : null;
@@ -240,8 +247,9 @@ function createWoodBrowserResolver(rootDir) {
240
247
  return {
241
248
  name: "wood-browser-resolver",
242
249
  enforce: "pre",
243
- resolveId(source) {
250
+ resolveId(source, importer) {
244
251
  if (source.startsWith("@noego/wood/")) {
252
+ if (importer && isInsideRoot(rootDir, importer)) return null;
245
253
  const resolved = resolvePackageModule(rootDir, source);
246
254
  const esm = resolved?.endsWith(".cjs") ? resolved.replace(/\.cjs$/, ".js") : resolved;
247
255
  return esm && fs.existsSync(esm) ? esm : null;
@@ -1539,6 +1547,7 @@ export {
1539
1547
  createBrowserBridgeFixture,
1540
1548
  createBrowserFixture,
1541
1549
  createWoodBrowserResolver,
1550
+ isInsideRoot,
1542
1551
  loadSveltePlugin,
1543
1552
  startSharedBrowserViteServer
1544
1553
  };