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
|
@@ -123,6 +123,11 @@ async function errorFromFailedFetch(originalUrl, resolvedUrl, res) {
|
|
|
123
123
|
}
|
|
124
124
|
return fallback;
|
|
125
125
|
}
|
|
126
|
+
function failedProxiedAssetError(kind, url, resolvedUrl) {
|
|
127
|
+
return new RemoteComponentsError(
|
|
128
|
+
`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}`
|
|
129
|
+
);
|
|
130
|
+
}
|
|
126
131
|
function failedProxyFetchError(originalUrl, proxyUrl, status, responseBody) {
|
|
127
132
|
if (status === 404) {
|
|
128
133
|
return new RemoteComponentsError(
|
|
@@ -174,7 +179,7 @@ function warnCrossOriginFetchError(logLocation, url) {
|
|
|
174
179
|
}
|
|
175
180
|
logWarn(
|
|
176
181
|
logLocation,
|
|
177
|
-
`Failed to fetch cross-origin resource "${parsed.href}".
|
|
182
|
+
`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}`
|
|
178
183
|
);
|
|
179
184
|
} catch {
|
|
180
185
|
}
|
|
@@ -756,6 +761,7 @@ import * as ReactDOM from "react-dom";
|
|
|
756
761
|
import * as ReactDOMClient from "react-dom/client";
|
|
757
762
|
|
|
758
763
|
// src/config/webpack/apply-shared-modules.ts
|
|
764
|
+
var DEDUPLICATION_SKIPPED = "shared module deduplication skipped. The remote may load its own copy of shared dependencies.";
|
|
759
765
|
function applySharedModules(bundle, resolve) {
|
|
760
766
|
logDebug(
|
|
761
767
|
"SharedModules",
|
|
@@ -799,13 +805,16 @@ function applySharedModules(bundle, resolve) {
|
|
|
799
805
|
} else {
|
|
800
806
|
logWarn(
|
|
801
807
|
"SharedModules",
|
|
802
|
-
`webpackBundle.m is not available for bundle "${bundle}"`
|
|
808
|
+
`webpackBundle.m is not available for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
|
|
803
809
|
);
|
|
804
810
|
}
|
|
805
811
|
}
|
|
806
812
|
}
|
|
807
813
|
} else {
|
|
808
|
-
logWarn(
|
|
814
|
+
logWarn(
|
|
815
|
+
"SharedModules",
|
|
816
|
+
`No webpack require found for bundle "${bundle}" \u2014 ${DEDUPLICATION_SKIPPED}`
|
|
817
|
+
);
|
|
809
818
|
logDebug(
|
|
810
819
|
"SharedModules",
|
|
811
820
|
`Available bundles: ${Object.keys(self.__remote_webpack_require__ ?? {})}`
|
|
@@ -991,9 +1000,6 @@ function createRSCStream(rscName, data) {
|
|
|
991
1000
|
});
|
|
992
1001
|
}
|
|
993
1002
|
|
|
994
|
-
// src/runtime/turbopack/chunk-loader.ts
|
|
995
|
-
init_constants();
|
|
996
|
-
|
|
997
1003
|
// src/runtime/turbopack/patterns.ts
|
|
998
1004
|
var REMOTE_SHARED_MARKER_RE = /(?:self|[a-z])\.TURBOPACK_REMOTE_SHARED/;
|
|
999
1005
|
var REMOTE_SHARED_ASSIGNMENT_RE = /\.TURBOPACK_REMOTE_SHARED=await (?:__turbopack_context__|[a-z])\.A\((?<sharedModuleId>[0-9]+)\)/;
|
|
@@ -1062,11 +1068,7 @@ function createChunkLoader(runtime, resolveClientUrl) {
|
|
|
1062
1068
|
}).then(resolve).catch((error) => {
|
|
1063
1069
|
const isProxied = isProxiedUrl(resolvedUrl);
|
|
1064
1070
|
if (isProxied) {
|
|
1065
|
-
reject(
|
|
1066
|
-
new RemoteComponentsError(
|
|
1067
|
-
`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}`
|
|
1068
|
-
)
|
|
1069
|
-
);
|
|
1071
|
+
reject(failedProxiedAssetError("chunk", url, resolvedUrl));
|
|
1070
1072
|
} else {
|
|
1071
1073
|
warnCrossOriginFetchError("ChunkLoader", url);
|
|
1072
1074
|
reject(error);
|
|
@@ -1444,6 +1446,7 @@ function createTurbopackContext(bundle, exports, moduleExports, modules, moduleI
|
|
|
1444
1446
|
}
|
|
1445
1447
|
|
|
1446
1448
|
// src/runtime/turbopack/shared-modules.ts
|
|
1449
|
+
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).";
|
|
1447
1450
|
async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {}) {
|
|
1448
1451
|
const self = globalThis;
|
|
1449
1452
|
self.__remote_shared_modules__ = self.__remote_shared_modules__ ?? {};
|
|
@@ -1494,7 +1497,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
1494
1497
|
} else {
|
|
1495
1498
|
logError(
|
|
1496
1499
|
"SharedModules",
|
|
1497
|
-
`Host shared module "${module}" not found for ID ${id}`
|
|
1500
|
+
`Host shared module "${module}" not found for ID ${id}. ${DEDUPLICATION_WARNING}`
|
|
1498
1501
|
);
|
|
1499
1502
|
}
|
|
1500
1503
|
}
|
|
@@ -1511,7 +1514,7 @@ async function initializeSharedModules(bundle, hostShared = {}, remoteShared = {
|
|
|
1511
1514
|
} else {
|
|
1512
1515
|
logError(
|
|
1513
1516
|
"SharedModules",
|
|
1514
|
-
`Shared module "${module}" not found for "${bundle}"`
|
|
1517
|
+
`Shared module "${module}" not found for "${bundle}". ${DEDUPLICATION_WARNING}`
|
|
1515
1518
|
);
|
|
1516
1519
|
}
|
|
1517
1520
|
}
|
|
@@ -1659,7 +1662,6 @@ function createModuleRequire(runtime) {
|
|
|
1659
1662
|
}
|
|
1660
1663
|
|
|
1661
1664
|
// src/runtime/loaders/script-loader.ts
|
|
1662
|
-
init_constants();
|
|
1663
1665
|
async function loadScripts(scripts, resolveClientUrl) {
|
|
1664
1666
|
await Promise.all(
|
|
1665
1667
|
scripts.map((script) => {
|
|
@@ -1675,11 +1677,7 @@ async function loadScripts(scripts, resolveClientUrl) {
|
|
|
1675
1677
|
newScript.onerror = () => {
|
|
1676
1678
|
const isProxied = isProxiedUrl(resolvedSrc);
|
|
1677
1679
|
if (isProxied) {
|
|
1678
|
-
reject(
|
|
1679
|
-
new RemoteComponentsError(
|
|
1680
|
-
`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}`
|
|
1681
|
-
)
|
|
1682
|
-
);
|
|
1680
|
+
reject(failedProxiedAssetError("script", newSrc, resolvedSrc));
|
|
1683
1681
|
} else {
|
|
1684
1682
|
warnCrossOriginFetchError("ScriptLoader", newSrc);
|
|
1685
1683
|
reject(
|