remote-components 0.0.43 → 0.0.45

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 (92) hide show
  1. package/README.md +1 -1
  2. package/dist/{component-loader-2ca91ad8.d.ts → component-loader-26b1f55e.d.ts} +63 -1
  3. package/dist/html/host.cjs +25 -19
  4. package/dist/html/host.cjs.map +1 -1
  5. package/dist/html/host.js +25 -19
  6. package/dist/html/host.js.map +1 -1
  7. package/dist/internal/next/host/app-router-client.d.ts +4 -3
  8. package/dist/internal/next/remote/render-client.cjs +1 -1
  9. package/dist/internal/next/remote/render-client.cjs.map +1 -1
  10. package/dist/internal/next/remote/render-client.js +1 -1
  11. package/dist/internal/next/remote/render-client.js.map +1 -1
  12. package/dist/internal/shared/client/remote-component.d.ts +2 -2
  13. package/dist/internal/shared/ssr/dom-flight.cjs.map +1 -1
  14. package/dist/internal/shared/ssr/dom-flight.d.ts +2 -39
  15. package/dist/internal/shared/ssr/dom-flight.js.map +1 -1
  16. package/dist/internal/shared/ssr/fetch-headers.cjs +4 -6
  17. package/dist/internal/shared/ssr/fetch-headers.cjs.map +1 -1
  18. package/dist/internal/shared/ssr/fetch-headers.d.ts +1 -1
  19. package/dist/internal/shared/ssr/fetch-headers.js +4 -6
  20. package/dist/internal/shared/ssr/fetch-headers.js.map +1 -1
  21. package/dist/internal/shared/ssr/fetch-remote-component.cjs +58 -24
  22. package/dist/internal/shared/ssr/fetch-remote-component.cjs.map +1 -1
  23. package/dist/internal/shared/ssr/fetch-remote-component.d.ts +9 -37
  24. package/dist/internal/shared/ssr/fetch-remote-component.js +60 -22
  25. package/dist/internal/shared/ssr/fetch-remote-component.js.map +1 -1
  26. package/dist/internal/shared/ssr/fetch-with-hooks.cjs +40 -0
  27. package/dist/internal/shared/ssr/fetch-with-hooks.cjs.map +1 -0
  28. package/dist/internal/shared/ssr/fetch-with-hooks.d.ts +40 -0
  29. package/dist/internal/shared/ssr/fetch-with-hooks.js +16 -0
  30. package/dist/internal/shared/ssr/fetch-with-hooks.js.map +1 -0
  31. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.cjs +6 -0
  32. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.cjs.map +1 -1
  33. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.d.ts +3 -0
  34. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.js +6 -0
  35. package/dist/internal/shared/ssr/get-ssr-relative-path-base-url.js.map +1 -1
  36. package/dist/internal/shared/ssr/skeleton.cjs +97 -0
  37. package/dist/internal/shared/ssr/skeleton.cjs.map +1 -0
  38. package/dist/internal/shared/ssr/skeleton.d.ts +17 -0
  39. package/dist/internal/shared/ssr/skeleton.js +72 -0
  40. package/dist/internal/shared/ssr/skeleton.js.map +1 -0
  41. package/dist/internal/webpack/next-client-pages-loader.d.ts +3 -3
  42. package/dist/next/config.cjs +1 -9
  43. package/dist/next/config.cjs.map +1 -1
  44. package/dist/next/config.js +1 -9
  45. package/dist/next/config.js.map +1 -1
  46. package/dist/next/host/app-router-server.cjs +8 -8
  47. package/dist/next/host/app-router-server.cjs.map +1 -1
  48. package/dist/next/host/app-router-server.d.ts +14 -4
  49. package/dist/next/host/app-router-server.js +8 -8
  50. package/dist/next/host/app-router-server.js.map +1 -1
  51. package/dist/next/host/client/index.cjs +29 -12
  52. package/dist/next/host/client/index.cjs.map +1 -1
  53. package/dist/next/host/client/index.d.ts +1 -1
  54. package/dist/next/host/client/index.js +29 -12
  55. package/dist/next/host/client/index.js.map +1 -1
  56. package/dist/next/host/pages-router-client.cjs +62 -2
  57. package/dist/next/host/pages-router-client.cjs.map +1 -1
  58. package/dist/next/host/pages-router-client.d.ts +27 -1
  59. package/dist/next/host/pages-router-client.js +63 -3
  60. package/dist/next/host/pages-router-client.js.map +1 -1
  61. package/dist/next/host/pages-router-server.cjs +18 -22
  62. package/dist/next/host/pages-router-server.cjs.map +1 -1
  63. package/dist/next/host/pages-router-server.d.ts +37 -3
  64. package/dist/next/host/pages-router-server.js +18 -22
  65. package/dist/next/host/pages-router-server.js.map +1 -1
  66. package/dist/next/index.cjs.map +1 -1
  67. package/dist/next/index.d.ts +2 -1
  68. package/dist/next/index.js.map +1 -1
  69. package/dist/react/index.cjs +29 -12
  70. package/dist/react/index.cjs.map +1 -1
  71. package/dist/react/index.d.ts +13 -5
  72. package/dist/react/index.js +29 -12
  73. package/dist/react/index.js.map +1 -1
  74. package/dist/shared/host/app.cjs +1 -1
  75. package/dist/shared/host/app.cjs.map +1 -1
  76. package/dist/shared/host/app.js +1 -1
  77. package/dist/shared/host/app.js.map +1 -1
  78. package/dist/shared/host/pages.cjs +1 -1
  79. package/dist/shared/host/pages.cjs.map +1 -1
  80. package/dist/shared/host/pages.js +1 -1
  81. package/dist/shared/host/pages.js.map +1 -1
  82. package/dist/shared/remote/app.cjs +1 -1
  83. package/dist/shared/remote/app.cjs.map +1 -1
  84. package/dist/shared/remote/app.js +1 -1
  85. package/dist/shared/remote/app.js.map +1 -1
  86. package/dist/shared/remote/pages.cjs +1 -1
  87. package/dist/shared/remote/pages.cjs.map +1 -1
  88. package/dist/shared/remote/pages.js +1 -1
  89. package/dist/shared/remote/pages.js.map +1 -1
  90. package/dist/types-6e4ba234.d.ts +136 -0
  91. package/package.json +54 -32
  92. package/dist/types-cbf6c34f.d.ts +0 -9
@@ -1453,23 +1453,35 @@ async function loadStaticRemoteComponent(scripts, url) {
1453
1453
  }
1454
1454
 
1455
1455
  // src/shared/ssr/fetch-headers.ts
1456
- function remoteFetchHeaders(additionalHeaders) {
1456
+ function remoteFetchHeaders() {
1457
1457
  return {
1458
1458
  /**
1459
1459
  * Authenticates deployment protection for the remote. Needed for SSR and SSG clients.
1460
- * Ensure the automation bypass secret is the same on the client and host.
1461
- * Otherwise, manually specify x-vercel-protection-bypass for the remote in the `additionalHeaders` parameter.
1460
+ * If the remote component uses vercel deployment protection, ensure the host and remote vercel
1461
+ * projects share a common automation bypass secret, and the shared secret is used as the
1462
+ * VERCEL_AUTOMATION_BYPASS_SECRET env var in the host project.
1462
1463
  */
1463
1464
  ...typeof process === "object" && typeof process.env === "object" && typeof process.env.VERCEL_AUTOMATION_BYPASS_SECRET === "string" ? {
1464
1465
  "x-vercel-protection-bypass": process.env.VERCEL_AUTOMATION_BYPASS_SECRET
1465
1466
  } : {},
1466
- ...Object.fromEntries(
1467
- additionalHeaders instanceof Headers ? additionalHeaders.entries() : Object.entries(additionalHeaders ?? {})
1468
- ),
1469
1467
  Accept: "text/html"
1470
1468
  };
1471
1469
  }
1472
1470
 
1471
+ // src/shared/ssr/fetch-with-hooks.ts
1472
+ async function fetchWithHooks(url, init, options = {}) {
1473
+ const { onRequest, onResponse } = options;
1474
+ let res = await onRequest?.(url, init);
1475
+ if (!res) {
1476
+ res = await fetch(url, init);
1477
+ }
1478
+ const transformedRes = await onResponse?.(url, res);
1479
+ if (transformedRes) {
1480
+ res = transformedRes;
1481
+ }
1482
+ return res;
1483
+ }
1484
+
1473
1485
  // src/shared/ssr/get-client-or-server-url.ts
1474
1486
  function getClientOrServerUrl(src, serverFallback) {
1475
1487
  const fallback = typeof location !== "undefined" ? location.href : serverFallback;
@@ -1564,12 +1576,13 @@ function RemoteComponent({
1564
1576
  credentials = "same-origin",
1565
1577
  name: nameProp = "__vercel_remote_component",
1566
1578
  shared = {},
1567
- additionalHeaders,
1568
1579
  children,
1569
1580
  onBeforeLoad,
1570
1581
  onLoad,
1571
1582
  onError,
1572
- onChange
1583
+ onChange,
1584
+ onRequest,
1585
+ onResponse
1573
1586
  }) {
1574
1587
  const instanceId = (0, import_react2.useId)();
1575
1588
  const name = (0, import_react2.useMemo)(() => {
@@ -1673,10 +1686,13 @@ function RemoteComponent({
1673
1686
  if (!html && src) {
1674
1687
  const fetchInit = {
1675
1688
  method: "GET",
1676
- headers: remoteFetchHeaders(additionalHeaders),
1689
+ headers: remoteFetchHeaders(),
1677
1690
  credentials
1678
1691
  };
1679
- const res = await fetch(url, fetchInit);
1692
+ const res = await fetchWithHooks(url, fetchInit, {
1693
+ onRequest,
1694
+ onResponse
1695
+ });
1680
1696
  if (!res.ok) {
1681
1697
  let error = failedToFetchRemoteComponentError(
1682
1698
  url.href,
@@ -1985,13 +2001,14 @@ function RemoteComponent({
1985
2001
  name,
1986
2002
  shared,
1987
2003
  shadowRoot,
1988
- additionalHeaders,
1989
2004
  reset,
1990
2005
  id,
1991
2006
  onBeforeLoad,
1992
2007
  onLoad,
1993
2008
  onError,
1994
- onChange
2009
+ onChange,
2010
+ onRequest,
2011
+ onResponse
1995
2012
  ]);
1996
2013
  if (remoteComponent instanceof Error) {
1997
2014
  throw remoteComponent;