remote-components 0.2.0 → 0.2.1
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/config/nextjs.cjs +1 -1
- package/dist/config/nextjs.cjs.map +1 -1
- package/dist/config/nextjs.js +1 -1
- package/dist/config/nextjs.js.map +1 -1
- package/dist/host/html.cjs +19 -17
- package/dist/host/html.cjs.map +1 -1
- package/dist/host/html.js +19 -17
- package/dist/host/html.js.map +1 -1
- package/dist/host/nextjs/app/client-only.cjs +17 -19
- package/dist/host/nextjs/app/client-only.cjs.map +1 -1
- package/dist/host/nextjs/app/client-only.js +17 -19
- package/dist/host/nextjs/app/client-only.js.map +1 -1
- package/dist/host/react.cjs +17 -15
- package/dist/host/react.cjs.map +1 -1
- package/dist/host/react.js +17 -15
- package/dist/host/react.js.map +1 -1
- package/dist/internal/config/webpack/apply-shared-modules.cjs +6 -2
- package/dist/internal/config/webpack/apply-shared-modules.cjs.map +1 -1
- package/dist/internal/config/webpack/apply-shared-modules.js +6 -2
- package/dist/internal/config/webpack/apply-shared-modules.js.map +1 -1
- package/dist/internal/runtime/loaders/script-loader.cjs +1 -6
- package/dist/internal/runtime/loaders/script-loader.cjs.map +1 -1
- package/dist/internal/runtime/loaders/script-loader.js +4 -9
- package/dist/internal/runtime/loaders/script-loader.js.map +1 -1
- package/dist/internal/runtime/turbopack/chunk-loader.cjs +1 -6
- package/dist/internal/runtime/turbopack/chunk-loader.cjs.map +1 -1
- package/dist/internal/runtime/turbopack/chunk-loader.js +4 -9
- package/dist/internal/runtime/turbopack/chunk-loader.js.map +1 -1
- package/dist/internal/runtime/turbopack/shared-modules.cjs +3 -2
- package/dist/internal/runtime/turbopack/shared-modules.cjs.map +1 -1
- package/dist/internal/runtime/turbopack/shared-modules.js +3 -2
- package/dist/internal/runtime/turbopack/shared-modules.js.map +1 -1
- package/dist/internal/utils/error.cjs +7 -0
- package/dist/internal/utils/error.cjs.map +1 -1
- package/dist/internal/utils/error.d.ts +2 -1
- package/dist/internal/utils/error.js +6 -0
- package/dist/internal/utils/error.js.map +1 -1
- package/dist/internal/utils/logger.cjs +1 -1
- package/dist/internal/utils/logger.cjs.map +1 -1
- package/dist/internal/utils/logger.d.ts +1 -1
- package/dist/internal/utils/logger.js +1 -1
- package/dist/internal/utils/logger.js.map +1 -1
- package/dist/remote/html.cjs +1 -1
- package/dist/remote/html.cjs.map +1 -1
- package/dist/remote/html.js +1 -1
- package/dist/remote/html.js.map +1 -1
- package/package.json +1 -1
|
@@ -150,6 +150,11 @@ async function errorFromFailedFetch(originalUrl, resolvedUrl, res) {
|
|
|
150
150
|
}
|
|
151
151
|
return fallback;
|
|
152
152
|
}
|
|
153
|
+
function failedProxiedAssetError(kind, url, resolvedUrl) {
|
|
154
|
+
return new RemoteComponentsError(
|
|
155
|
+
`Failed to load ${kind} "${url}" via proxy "${resolvedUrl}". Ensure withRemoteComponentsHostProxy middleware is configured, "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher, and the remote URL is included in allowedProxyUrls. See: ${CORS_DOCS_URL}`
|
|
156
|
+
);
|
|
157
|
+
}
|
|
153
158
|
function failedProxyFetchError(originalUrl, proxyUrl, status, responseBody) {
|
|
154
159
|
if (status === 404) {
|
|
155
160
|
return new RemoteComponentsError(
|
|
@@ -201,7 +206,7 @@ function warnCrossOriginFetchError(logLocation, url) {
|
|
|
201
206
|
}
|
|
202
207
|
logWarn(
|
|
203
208
|
logLocation,
|
|
204
|
-
`Failed to fetch cross-origin resource "${parsed.href}".
|
|
209
|
+
`Failed to fetch cross-origin resource "${parsed.href}". To load assets from a protected deployment, two steps are required: (1) configure withRemoteComponentsHostProxy middleware in your host with the remote URL in allowedProxyUrls, and (2) provide a resolveClientUrl prop that rewrites cross-origin asset URLs to go through the proxy. See: ${CORS_DOCS_URL}`
|
|
205
210
|
);
|
|
206
211
|
} catch {
|
|
207
212
|
}
|
|
@@ -775,6 +780,7 @@ var ReactDOM = __toESM(require("react-dom"), 1);
|
|
|
775
780
|
var ReactDOMClient = __toESM(require("react-dom/client"), 1);
|
|
776
781
|
|
|
777
782
|
// src/config/webpack/apply-shared-modules.ts
|
|
783
|
+
var DEDUPLICATION_SKIPPED = "shared module deduplication skipped. The remote may load its own copy of shared dependencies.";
|
|
778
784
|
function applySharedModules(bundle, resolve) {
|
|
779
785
|
logDebug(
|
|
780
786
|
"SharedModules",
|
|
@@ -818,13 +824,16 @@ function applySharedModules(bundle, resolve) {
|
|
|
818
824
|
} else {
|
|
819
825
|
logWarn(
|
|
820
826
|
"SharedModules",
|
|
821
|
-
`webpackBundle.m is not available for bundle "${bundle}"`
|
|
827
|
+
`webpackBundle.m is not available for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
|
|
822
828
|
);
|
|
823
829
|
}
|
|
824
830
|
}
|
|
825
831
|
}
|
|
826
832
|
} else {
|
|
827
|
-
logWarn(
|
|
833
|
+
logWarn(
|
|
834
|
+
"SharedModules",
|
|
835
|
+
`No webpack require found for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
|
|
836
|
+
);
|
|
828
837
|
logDebug(
|
|
829
838
|
"SharedModules",
|
|
830
839
|
`Available bundles: ${Object.keys(self.__remote_webpack_require__ ?? {})}`
|
|
@@ -1010,9 +1019,6 @@ function createRSCStream(rscName, data) {
|
|
|
1010
1019
|
});
|
|
1011
1020
|
}
|
|
1012
1021
|
|
|
1013
|
-
// src/runtime/turbopack/chunk-loader.ts
|
|
1014
|
-
init_constants();
|
|
1015
|
-
|
|
1016
1022
|
// src/runtime/turbopack/patterns.ts
|
|
1017
1023
|
var REMOTE_SHARED_MARKER_RE = /(?:self|[a-z])\.TURBOPACK_REMOTE_SHARED/;
|
|
1018
1024
|
var REMOTE_SHARED_ASSIGNMENT_RE = /\.TURBOPACK_REMOTE_SHARED=await (?:__turbopack_context__|[a-z])\.A\((?<sharedModuleId>[0-9]+)\)/;
|
|
@@ -1081,11 +1087,7 @@ function createChunkLoader(runtime, resolveClientUrl) {
|
|
|
1081
1087
|
}).then(resolve).catch((error) => {
|
|
1082
1088
|
const isProxied = isProxiedUrl(resolvedUrl);
|
|
1083
1089
|
if (isProxied) {
|
|
1084
|
-
reject(
|
|
1085
|
-
new RemoteComponentsError(
|
|
1086
|
-
`Failed to load chunk "${url}" via proxy "${resolvedUrl}". Ensure withRemoteComponentsHostProxy middleware is configured and "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher. See: ${CORS_DOCS_URL}`
|
|
1087
|
-
)
|
|
1088
|
-
);
|
|
1090
|
+
reject(failedProxiedAssetError("chunk", url, resolvedUrl));
|
|
1089
1091
|
} else {
|
|
1090
1092
|
warnCrossOriginFetchError("ChunkLoader", url);
|
|
1091
1093
|
reject(error);
|
|
@@ -1463,6 +1465,7 @@ function createTurbopackContext(bundle, exports, moduleExports, modules, moduleI
|
|
|
1463
1465
|
}
|
|
1464
1466
|
|
|
1465
1467
|
// src/runtime/turbopack/shared-modules.ts
|
|
1468
|
+
var DEDUPLICATION_WARNING = "This module will not be deduplicated \u2014 the remote may load its own copy, which can cause duplicate instance errors (e.g. invalid hook calls if React is loaded twice).";
|
|
1466
1469
|
async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {}) {
|
|
1467
1470
|
const self = globalThis;
|
|
1468
1471
|
self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};
|
|
@@ -1513,7 +1516,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
1513
1516
|
} else {
|
|
1514
1517
|
logError(
|
|
1515
1518
|
"SharedModules",
|
|
1516
|
-
`Host shared module "${module2}" not found for ID ${id}`
|
|
1519
|
+
`Host shared module "${module2}" not found for ID ${id}. ${DEDUPLICATION_WARNING}`
|
|
1517
1520
|
);
|
|
1518
1521
|
}
|
|
1519
1522
|
}
|
|
@@ -1530,7 +1533,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
1530
1533
|
} else {
|
|
1531
1534
|
logError(
|
|
1532
1535
|
"SharedModules",
|
|
1533
|
-
`Shared module "${module2}" not found for "${bundle}"`
|
|
1536
|
+
`Shared module "${module2}" not found for "${bundle}". ${DEDUPLICATION_WARNING}`
|
|
1534
1537
|
);
|
|
1535
1538
|
}
|
|
1536
1539
|
}
|
|
@@ -1678,7 +1681,6 @@ function createModuleRequire(runtime) {
|
|
|
1678
1681
|
}
|
|
1679
1682
|
|
|
1680
1683
|
// src/runtime/loaders/script-loader.ts
|
|
1681
|
-
init_constants();
|
|
1682
1684
|
async function loadScripts(scripts, resolveClientUrl) {
|
|
1683
1685
|
await Promise.all(
|
|
1684
1686
|
scripts.map((script) => {
|
|
@@ -1694,11 +1696,7 @@ async function loadScripts(scripts, resolveClientUrl) {
|
|
|
1694
1696
|
newScript.onerror = () => {
|
|
1695
1697
|
const isProxied = isProxiedUrl(resolvedSrc);
|
|
1696
1698
|
if (isProxied) {
|
|
1697
|
-
reject(
|
|
1698
|
-
new RemoteComponentsError(
|
|
1699
|
-
`Failed to load script "${newSrc}" via proxy "${resolvedSrc}". Ensure withRemoteComponentsHostProxy middleware is configured and "${RC_PROTECTED_REMOTE_FETCH_PATHNAME}" is in the matcher. See: ${CORS_DOCS_URL}`
|
|
1700
|
-
)
|
|
1701
|
-
);
|
|
1699
|
+
reject(failedProxiedAssetError("script", newSrc, resolvedSrc));
|
|
1702
1700
|
} else {
|
|
1703
1701
|
warnCrossOriginFetchError("ScriptLoader", newSrc);
|
|
1704
1702
|
reject(
|