vike 0.4.228 → 0.4.229-commit-2a06dcc
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/cjs/__internal/index.js +2 -2
- package/dist/cjs/client/client-routing-runtime/globalContext.js +49 -0
- package/dist/cjs/client/server-routing-runtime/globalContext.js +41 -0
- package/dist/cjs/client/server-routing-runtime/utils.js +1 -1
- package/dist/cjs/client/shared/createGetGlobalContextClient.js +58 -0
- package/dist/cjs/client/shared/getJsonSerializedInHtml.js +31 -0
- package/dist/cjs/client/shared/utils.js +22 -0
- package/dist/cjs/node/plugin/index.js +3 -1
- package/dist/cjs/node/plugin/plugins/baseUrls.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/handleAssetsManifest.js +10 -5
- package/dist/cjs/node/plugin/plugins/build/pluginBuildApp.js +1 -1
- package/dist/cjs/node/plugin/plugins/build/pluginBuildConfig.js +3 -10
- package/dist/cjs/node/plugin/plugins/build/pluginBuildEntry.js +9 -5
- package/dist/cjs/node/plugin/plugins/build/pluginModuleBanner.js +9 -5
- package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +1 -1
- package/dist/cjs/node/plugin/plugins/commonConfig.js +14 -3
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +2 -7
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +6 -1
- package/dist/cjs/node/plugin/plugins/envVars.js +17 -19
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +3 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +11 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +13 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +15 -12
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
- package/dist/cjs/node/plugin/plugins/replaceConstants.js +76 -0
- package/dist/cjs/node/plugin/shared/applyRegExWithMagicString.js +10 -0
- package/dist/cjs/node/plugin/shared/findPageFiles.js +1 -1
- package/dist/cjs/node/plugin/shared/getFilePath.js +2 -2
- package/dist/cjs/node/plugin/shared/resolveClientEntriesDev.js +7 -19
- package/dist/cjs/node/plugin/utils.js +1 -0
- package/dist/cjs/node/prerender/runPrerender.js +44 -41
- package/dist/cjs/node/prerender/utils.js +1 -1
- package/dist/cjs/node/runtime/globalContext.js +102 -125
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
- package/dist/cjs/node/runtime/html/propKeys.js +47 -0
- package/dist/cjs/node/runtime/html/renderHtml.js +7 -1
- package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +37 -67
- package/dist/cjs/node/runtime/index-deprecated.js +9 -38
- package/dist/cjs/node/runtime/index.js +56 -2
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/createHttpResponse.js +8 -3
- package/dist/cjs/node/runtime/renderPage/createPageContextServerSide.js +73 -0
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +2 -2
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +2 -2
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +1 -1
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/cjs/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/log404/index.js +1 -1
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +3 -68
- package/dist/cjs/node/runtime/renderPage.js +102 -81
- package/dist/cjs/node/runtime/universal-middleware.js +7 -1
- package/dist/cjs/node/runtime/utils.js +3 -2
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +1 -1
- package/dist/cjs/shared/createGlobalContextShared.js +54 -0
- package/dist/cjs/shared/createPageContextShared.js +17 -0
- package/dist/cjs/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/cjs/shared/hooks/executeHookGeneric.js +18 -0
- package/dist/cjs/shared/hooks/getHook.js +45 -27
- package/dist/cjs/shared/htmlElementIds.js +5 -0
- package/dist/cjs/shared/page-configs/serialize/serializeConfigValues.js +3 -7
- package/dist/cjs/shared/route/executeGuardHook.js +1 -1
- package/dist/cjs/shared/route/loadPageRoutes.js +2 -1
- package/dist/cjs/utils/PROJECT_VERSION.js +1 -1
- package/dist/cjs/utils/catchInfiniteLoop.js +3 -3
- package/dist/cjs/utils/getPublicProxy.js +27 -0
- package/dist/cjs/utils/isImportPath.js +21 -0
- package/dist/cjs/utils/isScriptFile.js +24 -21
- package/dist/cjs/utils/objectAssign.js +6 -10
- package/dist/cjs/utils/objectReplace.js +4 -4
- package/dist/cjs/utils/{isNpmPackage.js → parseNpmPackage.js} +24 -23
- package/dist/cjs/utils/path.js +12 -2
- package/dist/cjs/utils/requireResolve.js +134 -53
- package/dist/esm/__internal/index.js +3 -3
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +29 -10
- package/dist/esm/client/client-routing-runtime/createPageContext.js +23 -22
- package/dist/esm/client/client-routing-runtime/getPageContextFromHooks.js +5 -4
- package/dist/esm/client/client-routing-runtime/globalContext.d.ts +20 -0
- package/dist/esm/client/client-routing-runtime/globalContext.js +13 -0
- package/dist/esm/client/client-routing-runtime/initOnLinkClick.js +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +2 -2
- package/dist/esm/client/client-routing-runtime/renderPageClientSide.js +8 -7
- package/dist/esm/client/client-routing-runtime/utils.d.ts +0 -1
- package/dist/esm/client/client-routing-runtime/utils.js +0 -1
- package/dist/esm/client/index.d.ts +1 -0
- package/dist/esm/client/index.js +4 -0
- package/dist/esm/client/node.js +1 -3
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.d.ts +36 -0
- package/dist/esm/client/server-routing-runtime/createPageContextClientSide.js +47 -0
- package/dist/esm/client/server-routing-runtime/entry.js +2 -2
- package/dist/esm/client/server-routing-runtime/globalContext.d.ts +17 -0
- package/dist/esm/client/server-routing-runtime/globalContext.js +5 -0
- package/dist/esm/client/server-routing-runtime/utils.d.ts +1 -1
- package/dist/esm/client/server-routing-runtime/utils.js +1 -1
- package/dist/esm/client/shared/createGetGlobalContextClient.d.ts +23 -0
- package/dist/esm/client/shared/createGetGlobalContextClient.js +58 -0
- package/dist/esm/client/shared/executeOnRenderClientHook.js +5 -4
- package/dist/esm/client/shared/{getPageContextSerializedInHtml.d.ts → getJsonSerializedInHtml.d.ts} +2 -0
- package/dist/esm/client/shared/getJsonSerializedInHtml.js +29 -0
- package/dist/esm/client/shared/removeFoucBuster.js +1 -0
- package/dist/esm/client/shared/utils.d.ts +4 -0
- package/dist/esm/client/shared/utils.js +4 -0
- package/dist/esm/node/plugin/index.js +3 -1
- package/dist/esm/node/plugin/plugins/baseUrls.js +2 -2
- package/dist/esm/node/plugin/plugins/build/handleAssetsManifest.js +11 -6
- package/dist/esm/node/plugin/plugins/build/pluginBuildApp.js +2 -2
- package/dist/esm/node/plugin/plugins/build/pluginBuildConfig.js +4 -11
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/build/pluginBuildEntry.js +10 -6
- package/dist/esm/node/plugin/plugins/build/pluginModuleBanner.js +9 -5
- package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +2 -2
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +2 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +15 -4
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +3 -8
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +7 -2
- package/dist/esm/node/plugin/plugins/envVars.js +18 -20
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +4 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +11 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles/ignorePatternsBuiltIn.js +2 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/crawlPlusFiles.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/loadFileAtConfigTime.js +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.d.ts → pointerImports.d.ts} +2 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/{transformPointerImports.js → pointerImports.js} +14 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.d.ts +1 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/resolvePointerImport.js +20 -19
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/transpileAndExecuteFile.js +15 -12
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +11 -11
- package/dist/esm/node/plugin/plugins/replaceConstants.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/replaceConstants.js +71 -0
- package/dist/esm/node/plugin/shared/applyRegExWithMagicString.d.ts +3 -0
- package/dist/esm/node/plugin/shared/applyRegExWithMagicString.js +8 -0
- package/dist/esm/node/plugin/shared/findPageFiles.js +2 -2
- package/dist/esm/node/plugin/shared/getFilePath.js +3 -3
- package/dist/esm/node/plugin/shared/resolveClientEntriesDev.js +8 -20
- package/dist/esm/node/plugin/utils.d.ts +1 -0
- package/dist/esm/node/plugin/utils.js +1 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +314 -5
- package/dist/esm/node/prerender/runPrerender.js +48 -45
- package/dist/esm/node/prerender/utils.d.ts +1 -1
- package/dist/esm/node/prerender/utils.js +1 -1
- package/dist/esm/node/runtime/globalContext.d.ts +425 -47
- package/dist/esm/node/runtime/globalContext.js +103 -126
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +18 -5
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.d.ts +2 -2
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScript.js +2 -2
- package/dist/esm/node/runtime/html/injectAssets.d.ts +3 -3
- package/dist/esm/node/runtime/html/propKeys.d.ts +8 -0
- package/dist/esm/node/runtime/html/propKeys.js +45 -0
- package/dist/esm/node/runtime/html/renderHtml.js +7 -1
- package/dist/esm/node/runtime/html/{serializePageContextClientSide.d.ts → serializeContext.d.ts} +7 -6
- package/dist/esm/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js} +36 -67
- package/dist/esm/node/runtime/index-deprecated.d.ts +1 -16
- package/dist/esm/node/runtime/index-deprecated.js +9 -36
- package/dist/esm/node/runtime/index.d.ts +23 -1
- package/dist/esm/node/runtime/index.js +38 -3
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/analyzePage.js +1 -1
- package/dist/esm/node/runtime/renderPage/createHttpResponse.d.ts +5 -4
- package/dist/esm/node/runtime/renderPage/createHttpResponse.js +8 -3
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.d.ts +155 -0
- package/dist/esm/node/runtime/renderPage/createPageContextServerSide.js +71 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderAndDataHooks.js +3 -3
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +1 -1
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +3 -3
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +1 -17
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +2 -2
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +1 -1
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadUserFilesServerSide.js +1 -1
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.js +1 -1
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +3 -3
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +1 -1
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +225 -179
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +4 -69
- package/dist/esm/node/runtime/renderPage.d.ts +146 -7
- package/dist/esm/node/runtime/renderPage.js +105 -84
- package/dist/esm/node/runtime/universal-middleware.js +7 -1
- package/dist/esm/node/runtime/utils.d.ts +3 -2
- package/dist/esm/node/runtime/utils.js +3 -2
- package/dist/esm/shared/VikeNamespace.d.ts +35 -13
- package/dist/esm/shared/assertPageContextProvidedByUser.js +1 -1
- package/dist/esm/shared/createGlobalContextShared.d.ts +39 -0
- package/dist/esm/shared/createGlobalContextShared.js +51 -0
- package/dist/esm/shared/createPageContextShared.d.ts +9 -0
- package/dist/esm/shared/createPageContextShared.js +15 -0
- package/dist/esm/shared/getPageFiles/fileTypes.js +1 -1
- package/dist/esm/shared/hooks/executeHookGeneric.d.ts +8 -0
- package/dist/esm/shared/hooks/executeHookGeneric.js +16 -0
- package/dist/esm/shared/hooks/getHook.d.ts +5 -3
- package/dist/esm/shared/hooks/getHook.js +47 -29
- package/dist/esm/shared/htmlElementIds.d.ts +2 -0
- package/dist/esm/shared/htmlElementIds.js +2 -0
- package/dist/esm/shared/page-configs/Config.d.ts +12 -2
- package/dist/esm/shared/page-configs/getConfigDefinedAt.d.ts +1 -1
- package/dist/esm/shared/page-configs/serialize/serializeConfigValues.js +3 -7
- package/dist/esm/shared/route/executeGuardHook.js +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +2 -1
- package/dist/esm/shared/types.d.ts +64 -32
- package/dist/esm/types/index.d.ts +1 -5
- package/dist/esm/utils/PROJECT_VERSION.d.ts +1 -1
- package/dist/esm/utils/PROJECT_VERSION.js +1 -1
- package/dist/esm/utils/catchInfiniteLoop.js +4 -4
- package/dist/esm/utils/getGlobalObject.d.ts +1 -1
- package/dist/esm/utils/getPublicProxy.d.ts +2 -0
- package/dist/esm/utils/getPublicProxy.js +25 -0
- package/dist/esm/utils/isImportPath.d.ts +4 -0
- package/dist/esm/utils/isImportPath.js +19 -0
- package/dist/esm/utils/isScriptFile.d.ts +5 -5
- package/dist/esm/utils/isScriptFile.js +23 -20
- package/dist/esm/utils/objectAssign.d.ts +1 -1
- package/dist/esm/utils/objectAssign.js +6 -10
- package/dist/esm/utils/objectReplace.d.ts +1 -1
- package/dist/esm/utils/objectReplace.js +4 -4
- package/dist/esm/utils/parseNpmPackage.d.ts +19 -0
- package/dist/esm/utils/{isNpmPackage.js → parseNpmPackage.js} +24 -24
- package/dist/esm/utils/path.d.ts +1 -1
- package/dist/esm/utils/path.js +12 -2
- package/dist/esm/utils/requireResolve.d.ts +20 -7
- package/dist/esm/utils/requireResolve.js +134 -53
- package/package.json +14 -13
- package/dist/cjs/node/runtime/index-common.js +0 -27
- package/dist/cjs/utils/makePublicCopy.js +0 -32
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +0 -19
- package/dist/esm/client/server-routing-runtime/getPageContext.js +0 -44
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +0 -20
- package/dist/esm/node/runtime/index-common.d.ts +0 -8
- package/dist/esm/node/runtime/index-common.js +0 -10
- package/dist/esm/utils/isNpmPackage.d.ts +0 -17
- package/dist/esm/utils/makePublicCopy.d.ts +0 -3
- package/dist/esm/utils/makePublicCopy.js +0 -30
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.getHtmlTags = getHtmlTags;
|
|
7
7
|
const isFontFallback_js_1 = require("../../renderPage/isFontFallback.js");
|
|
8
8
|
const utils_js_1 = require("../../utils.js");
|
|
9
|
-
const
|
|
9
|
+
const serializeContext_js_1 = require("../serializeContext.js");
|
|
10
10
|
const sanitizeJson_js_1 = require("./sanitizeJson.js");
|
|
11
11
|
const inferHtmlTags_js_1 = require("./inferHtmlTags.js");
|
|
12
12
|
const mergeScriptTags_js_1 = require("./mergeScriptTags.js");
|
|
@@ -14,11 +14,12 @@ const helpers_js_1 = require("../../../../shared/page-configs/helpers.js");
|
|
|
14
14
|
const getConfigValueRuntime_js_1 = require("../../../../shared/page-configs/getConfigValueRuntime.js");
|
|
15
15
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
16
16
|
const getConfigDefinedAt_js_1 = require("../../../../shared/page-configs/getConfigDefinedAt.js");
|
|
17
|
+
const htmlElementIds_js_1 = require("../../../../shared/htmlElementIds.js");
|
|
17
18
|
const stamp = '__injectFilterEntry';
|
|
18
19
|
async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectFilter, pageAssets, viteDevScript, isStream) {
|
|
19
20
|
(0, utils_js_1.assert)([true, false].includes(pageContext._isHtmlOnly));
|
|
20
21
|
const isHtmlOnly = pageContext._isHtmlOnly;
|
|
21
|
-
const { isProduction } = pageContext._globalContext;
|
|
22
|
+
const { _isProduction: isProduction } = pageContext._globalContext;
|
|
22
23
|
const injectScriptsAt = getInjectScriptsAt(pageContext.pageId, pageContext._pageConfigs);
|
|
23
24
|
const injectFilterEntries = [];
|
|
24
25
|
pageAssets
|
|
@@ -124,14 +125,21 @@ async function getHtmlTags(pageContext, streamFromReactStreamingPackage, injectF
|
|
|
124
125
|
// - https://github.com/vikejs/vike-vue/issues/85
|
|
125
126
|
(0, utils_js_1.assertWarning)(false, "We recommend against using HTML streaming and a pageContext promise (https://vike.dev/streaming#initial-data-after-stream-end) at the same time, because progressive hydration (https://vike.dev/streaming#progressive-rendering) won't work.", { onlyOnce: true });
|
|
126
127
|
}
|
|
127
|
-
// <script id="vike_pageContext" type="application/json">
|
|
128
128
|
if (!isHtmlOnly) {
|
|
129
|
+
// <script id="vike_pageContext" type="application/json">
|
|
129
130
|
htmlTags.push({
|
|
130
131
|
htmlTag: () =>
|
|
131
132
|
// Needs to be called after resolvePageContextPromise()
|
|
132
133
|
getPageContextJsonScriptTag(pageContext),
|
|
133
134
|
position: positionJavaScriptEntry
|
|
134
135
|
});
|
|
136
|
+
// <script id="vike_globalContext" type="application/json">
|
|
137
|
+
htmlTags.push({
|
|
138
|
+
htmlTag: () =>
|
|
139
|
+
// Needs to be called after resolvePageContextPromise()
|
|
140
|
+
getGlobalContextJsonScriptTag(pageContext),
|
|
141
|
+
position: positionJavaScriptEntry
|
|
142
|
+
});
|
|
135
143
|
}
|
|
136
144
|
// The JavaScript entry <script> tag
|
|
137
145
|
const scriptEntry = mergeScriptEntries(pageAssets, viteDevScript);
|
|
@@ -162,13 +170,18 @@ function mergeScriptEntries(pageAssets, viteDevScript) {
|
|
|
162
170
|
return scriptTag;
|
|
163
171
|
}
|
|
164
172
|
function getPageContextJsonScriptTag(pageContext) {
|
|
165
|
-
const
|
|
166
|
-
const htmlTag = `<script id="
|
|
173
|
+
const pageContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getPageContextClientSerialized)(pageContext));
|
|
174
|
+
const htmlTag = `<script id="${htmlElementIds_js_1.htmlElementId_pageContext}" type="application/json">${pageContextClientSerialized}</script>`;
|
|
167
175
|
// Used by contra.com https://github.com/gajus
|
|
168
176
|
// @ts-expect-error
|
|
169
177
|
pageContext._pageContextHtmlTag = htmlTag;
|
|
170
178
|
return htmlTag;
|
|
171
179
|
}
|
|
180
|
+
function getGlobalContextJsonScriptTag(pageContext) {
|
|
181
|
+
const globalContextClientSerialized = (0, sanitizeJson_js_1.sanitizeJson)((0, serializeContext_js_1.getGlobalContextClientSerialized)(pageContext));
|
|
182
|
+
const htmlTag = `<script id="${htmlElementIds_js_1.htmlElementId_globalContext}" type="application/json">${globalContextClientSerialized}</script>`;
|
|
183
|
+
return htmlTag;
|
|
184
|
+
}
|
|
172
185
|
function assertInjectFilterEntries(injectFilterEntries) {
|
|
173
186
|
try {
|
|
174
187
|
checkForWrongUsage(injectFilterEntries);
|
|
@@ -9,10 +9,10 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
9
9
|
const reachOutCTA = 'Create a new GitHub issue to discuss a solution.';
|
|
10
10
|
async function getViteDevScript(pageContext) {
|
|
11
11
|
const globalContext = pageContext._globalContext;
|
|
12
|
-
if (globalContext.
|
|
12
|
+
if (globalContext._isProduction) {
|
|
13
13
|
return '';
|
|
14
14
|
}
|
|
15
|
-
const { viteDevServer } = globalContext;
|
|
15
|
+
const { _viteDevServer: viteDevServer } = globalContext;
|
|
16
16
|
const fakeHtmlBegin = '<html> <head>'; // White space to test whether user is using a minifier
|
|
17
17
|
const fakeHtmlEnd = '</head><body></body></html>';
|
|
18
18
|
let fakeHtml = fakeHtmlBegin + fakeHtmlEnd;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPropVal = getPropVal;
|
|
4
|
+
exports.setPropVal = setPropVal;
|
|
5
|
+
exports.getPropKeys = getPropKeys;
|
|
6
|
+
const utils_js_1 = require("../utils.js");
|
|
7
|
+
// Get a nested property from an object using a dot-separated path such as 'user.id'
|
|
8
|
+
function getPropVal(obj, prop) {
|
|
9
|
+
const keys = getPropKeys(prop);
|
|
10
|
+
let value = obj;
|
|
11
|
+
for (const key of keys) {
|
|
12
|
+
if ((0, utils_js_1.isObject)(value) && key in value) {
|
|
13
|
+
value = value[key];
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
return null; // Property or intermediate property doesn't exist
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return { value };
|
|
20
|
+
}
|
|
21
|
+
// Set a nested property in an object using a dot-separated path such as 'user.id'
|
|
22
|
+
function setPropVal(obj, prop, val) {
|
|
23
|
+
const keys = getPropKeys(prop);
|
|
24
|
+
let currentObj = obj;
|
|
25
|
+
// Creating intermediate objects if necessary
|
|
26
|
+
for (let i = 0; i <= keys.length - 2; i++) {
|
|
27
|
+
const key = keys[i];
|
|
28
|
+
if (!(key in currentObj)) {
|
|
29
|
+
// Create intermediate object
|
|
30
|
+
currentObj[key] = {};
|
|
31
|
+
}
|
|
32
|
+
if (!(0, utils_js_1.isObject)(currentObj[key])) {
|
|
33
|
+
// Skip value upon data structure conflict
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
currentObj = currentObj[key];
|
|
37
|
+
}
|
|
38
|
+
// Set the final key to the value
|
|
39
|
+
const finalKey = keys[keys.length - 1];
|
|
40
|
+
currentObj[finalKey] = val;
|
|
41
|
+
}
|
|
42
|
+
function getPropKeys(prop) {
|
|
43
|
+
// Like `prop.split('.')` but with added support for `\` escaping, see getPageContextClientSerialized.spec.ts
|
|
44
|
+
return prop
|
|
45
|
+
.split(/(?<!\\)\./) // Split on unescaped dots
|
|
46
|
+
.map((key) => key.replace(/\\\./g, '.')); // Replace escaped dots with literal dots
|
|
47
|
+
}
|
|
@@ -76,7 +76,13 @@ async function renderHtmlStream(streamOriginal, injectString, pageContext, onErr
|
|
|
76
76
|
return injectAtStreamAfterFirstChunk();
|
|
77
77
|
};
|
|
78
78
|
}
|
|
79
|
+
let makeClosableAgain = () => { };
|
|
80
|
+
if ((0, react_streaming_js_1.isStreamFromReactStreamingPackage)(streamOriginal)) {
|
|
81
|
+
// Make sure Vike injects its HTML fragments, such as `<script id="vike_pageContext" type="application/json">`, before the stream is closed
|
|
82
|
+
makeClosableAgain = streamOriginal.doNotClose();
|
|
83
|
+
}
|
|
79
84
|
const streamWrapper = await (0, stream_js_1.processStream)(streamOriginal, processStreamOptions);
|
|
85
|
+
makeClosableAgain();
|
|
80
86
|
return streamWrapper;
|
|
81
87
|
}
|
|
82
88
|
function isTemplateWrapped(something) {
|
|
@@ -197,7 +203,7 @@ function renderTemplate(templateContent, pageContext) {
|
|
|
197
203
|
}
|
|
198
204
|
}
|
|
199
205
|
{
|
|
200
|
-
const { isProduction } = pageContext._globalContext;
|
|
206
|
+
const { _isProduction: isProduction } = pageContext._globalContext;
|
|
201
207
|
if ((0, utils_js_1.isHtml)(templateVar) &&
|
|
202
208
|
// We don't show this warning in production because it's expected that some users may (un)willingly do some XSS injection: we avoid flooding the production logs.
|
|
203
209
|
!isProduction) {
|
package/dist/cjs/node/runtime/html/{serializePageContextClientSide.js → serializeContext.js}
RENAMED
|
@@ -3,9 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
6
|
+
exports.getPageContextClientSerialized = getPageContextClientSerialized;
|
|
7
|
+
exports.getPageContextClientSerializedAbort = getPageContextClientSerializedAbort;
|
|
8
|
+
exports.getGlobalContextClientSerialized = getGlobalContextClientSerialized;
|
|
9
9
|
const stringify_1 = require("@brillout/json-serializer/stringify");
|
|
10
10
|
const utils_js_1 = require("../utils.js");
|
|
11
11
|
const error_page_js_1 = require("../../../shared/error-page.js");
|
|
@@ -14,7 +14,8 @@ const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
|
14
14
|
const NOT_SERIALIZABLE_js_1 = require("../../../shared/NOT_SERIALIZABLE.js");
|
|
15
15
|
const pageContextInitIsPassedToClient_js_1 = require("../../../shared/misc/pageContextInitIsPassedToClient.js");
|
|
16
16
|
const isServerSideError_js_1 = require("../../../shared/misc/isServerSideError.js");
|
|
17
|
-
const
|
|
17
|
+
const propKeys_js_1 = require("./propKeys.js");
|
|
18
|
+
const passToClientBuiltInPageContext = [
|
|
18
19
|
'abortReason',
|
|
19
20
|
'_urlRewrite',
|
|
20
21
|
'_urlRedirect',
|
|
@@ -28,29 +29,39 @@ const PASS_TO_CLIENT = [
|
|
|
28
29
|
'routeParams',
|
|
29
30
|
'data' // for data() hook
|
|
30
31
|
];
|
|
31
|
-
const
|
|
32
|
-
function
|
|
33
|
-
const
|
|
34
|
-
const pageContextClient = applyPassToClient(
|
|
35
|
-
if (
|
|
32
|
+
const pageToClientBuiltInPageContextError = ['pageProps', 'is404', isServerSideError_js_1.isServerSideError];
|
|
33
|
+
function getPageContextClientSerialized(pageContext) {
|
|
34
|
+
const passToClientPageContext = getPassToClientPageContext(pageContext);
|
|
35
|
+
const pageContextClient = applyPassToClient(passToClientPageContext, pageContext);
|
|
36
|
+
if (passToClientPageContext.some((prop) => (0, propKeys_js_1.getPropVal)(pageContext._pageContextInit, prop))) {
|
|
36
37
|
pageContextClient[pageContextInitIsPassedToClient_js_1.pageContextInitIsPassedToClient] = true;
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
+
const pageContextClientSerialized = serializeObject(pageContextClient, 'pageContext', passToClientPageContext);
|
|
40
|
+
return pageContextClientSerialized;
|
|
41
|
+
}
|
|
42
|
+
function getGlobalContextClientSerialized(pageContext) {
|
|
43
|
+
const passToClient = pageContext._passToClient;
|
|
44
|
+
const globalContextClient = applyPassToClient(passToClient, pageContext.globalContext);
|
|
45
|
+
const globalContextClientSerialized = serializeObject(globalContextClient, 'globalContext', passToClient);
|
|
46
|
+
return globalContextClientSerialized;
|
|
47
|
+
}
|
|
48
|
+
function serializeObject(obj, objName, passToClient) {
|
|
49
|
+
let serialized;
|
|
39
50
|
try {
|
|
40
|
-
|
|
51
|
+
serialized = serializeValue(obj);
|
|
41
52
|
}
|
|
42
53
|
catch (err) {
|
|
43
54
|
const h = (s) => picocolors_1.default.cyan(s);
|
|
44
55
|
let hasWarned = false;
|
|
45
56
|
const propsNonSerializable = [];
|
|
46
57
|
passToClient.forEach((prop) => {
|
|
47
|
-
const res = getPropVal(
|
|
58
|
+
const res = (0, propKeys_js_1.getPropVal)(obj, prop);
|
|
48
59
|
if (!res)
|
|
49
60
|
return;
|
|
50
61
|
const { value } = res;
|
|
51
|
-
const varName =
|
|
62
|
+
const varName = `${objName}${(0, propKeys_js_1.getPropKeys)(prop).map(utils_js_1.getPropAccessNotation).join('')}`;
|
|
52
63
|
try {
|
|
53
|
-
|
|
64
|
+
serializeValue(value, varName);
|
|
54
65
|
}
|
|
55
66
|
catch (err) {
|
|
56
67
|
propsNonSerializable.push(prop);
|
|
@@ -62,7 +73,7 @@ function serializePageContextClientSide(pageContext) {
|
|
|
62
73
|
}
|
|
63
74
|
(0, utils_js_1.assertUsage)(false, `Cannot serialize config ${h(pathString)} set by useConfig(), see https://vike.dev/useConfig#serialization-error`);
|
|
64
75
|
}
|
|
65
|
-
// Non-serializable
|
|
76
|
+
// Non-serializable property set by the user
|
|
66
77
|
let msg = [
|
|
67
78
|
`${h(varName)} can't be serialized and, therefore, can't be passed to the client side.`,
|
|
68
79
|
`Make sure ${h(varName)} is serializable, or remove ${h(JSON.stringify(prop))} from ${h('passToClient')}.`
|
|
@@ -83,31 +94,31 @@ function serializePageContextClientSide(pageContext) {
|
|
|
83
94
|
});
|
|
84
95
|
(0, utils_js_1.assert)(hasWarned);
|
|
85
96
|
propsNonSerializable.forEach((prop) => {
|
|
86
|
-
|
|
97
|
+
obj[(0, propKeys_js_1.getPropKeys)(prop)[0]] = NOT_SERIALIZABLE_js_1.NOT_SERIALIZABLE;
|
|
87
98
|
});
|
|
88
99
|
try {
|
|
89
|
-
|
|
100
|
+
serialized = serializeValue(obj);
|
|
90
101
|
}
|
|
91
102
|
catch (err) {
|
|
92
103
|
(0, utils_js_1.assert)(false);
|
|
93
104
|
}
|
|
94
105
|
}
|
|
95
|
-
return
|
|
106
|
+
return serialized;
|
|
96
107
|
}
|
|
97
|
-
function
|
|
108
|
+
function serializeValue(value, varName) {
|
|
98
109
|
return (0, stringify_1.stringify)(value, { forbidReactElements: true, valueName: varName });
|
|
99
110
|
}
|
|
100
|
-
function
|
|
101
|
-
let passToClient = [...pageContext._passToClient, ...
|
|
111
|
+
function getPassToClientPageContext(pageContext) {
|
|
112
|
+
let passToClient = [...pageContext._passToClient, ...passToClientBuiltInPageContext];
|
|
102
113
|
if ((0, error_page_js_1.isErrorPage)(pageContext.pageId, pageContext._pageConfigs)) {
|
|
103
114
|
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(pageContext, 'is404', 'boolean'));
|
|
104
115
|
(0, addIs404ToPageProps_js_1.addIs404ToPageProps)(pageContext);
|
|
105
|
-
passToClient.push(...
|
|
116
|
+
passToClient.push(...pageToClientBuiltInPageContextError);
|
|
106
117
|
}
|
|
107
118
|
passToClient = (0, utils_js_1.unique)(passToClient);
|
|
108
119
|
return passToClient;
|
|
109
120
|
}
|
|
110
|
-
function
|
|
121
|
+
function getPageContextClientSerializedAbort(pageContext) {
|
|
111
122
|
(0, utils_js_1.assert)(pageContext._urlRedirect || pageContext._urlRewrite || pageContext.abortStatusCode);
|
|
112
123
|
(0, utils_js_1.assert)(pageContext._abortCall);
|
|
113
124
|
(0, utils_js_1.assert)(pageContext._abortCaller);
|
|
@@ -140,59 +151,18 @@ function serializePageContextAbort(pageContext) {
|
|
|
140
151
|
onlyOnce: false
|
|
141
152
|
});
|
|
142
153
|
}
|
|
143
|
-
return
|
|
154
|
+
return serializeValue(pageContext);
|
|
144
155
|
}
|
|
145
156
|
function applyPassToClient(passToClient, pageContext) {
|
|
146
157
|
const pageContextClient = {};
|
|
147
158
|
passToClient.forEach((prop) => {
|
|
148
159
|
// Get value from pageContext
|
|
149
|
-
const res = getPropVal(pageContext, prop);
|
|
160
|
+
const res = (0, propKeys_js_1.getPropVal)(pageContext, prop);
|
|
150
161
|
if (!res)
|
|
151
162
|
return;
|
|
152
163
|
const { value } = res;
|
|
153
164
|
// Set value to pageContextClient
|
|
154
|
-
setPropVal(pageContextClient, prop, value);
|
|
165
|
+
(0, propKeys_js_1.setPropVal)(pageContextClient, prop, value);
|
|
155
166
|
});
|
|
156
167
|
return pageContextClient;
|
|
157
168
|
}
|
|
158
|
-
// Get a nested property from an object using a dot-separated path such as 'user.id'
|
|
159
|
-
function getPropVal(obj, prop) {
|
|
160
|
-
const keys = getPropKeys(prop);
|
|
161
|
-
let value = obj;
|
|
162
|
-
for (const key of keys) {
|
|
163
|
-
if ((0, utils_js_1.isObject)(value) && key in value) {
|
|
164
|
-
value = value[key];
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
return null; // Property or intermediate property doesn't exist
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
return { value };
|
|
171
|
-
}
|
|
172
|
-
// Set a nested property in an object using a dot-separated path such as 'user.id'
|
|
173
|
-
function setPropVal(obj, prop, val) {
|
|
174
|
-
const keys = getPropKeys(prop);
|
|
175
|
-
let currentObj = obj;
|
|
176
|
-
// Creating intermediate objects if necessary
|
|
177
|
-
for (let i = 0; i <= keys.length - 2; i++) {
|
|
178
|
-
const key = keys[i];
|
|
179
|
-
if (!(key in currentObj)) {
|
|
180
|
-
// Create intermediate object
|
|
181
|
-
currentObj[key] = {};
|
|
182
|
-
}
|
|
183
|
-
if (!(0, utils_js_1.isObject)(currentObj[key])) {
|
|
184
|
-
// Skip value upon data structure conflict
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
currentObj = currentObj[key];
|
|
188
|
-
}
|
|
189
|
-
// Set the final key to the value
|
|
190
|
-
const finalKey = keys[keys.length - 1];
|
|
191
|
-
currentObj[finalKey] = val;
|
|
192
|
-
}
|
|
193
|
-
function getPropKeys(prop) {
|
|
194
|
-
// Like `prop.split('.')` but with added support for `\` escaping, see serializePageContextClientSide.spec.ts
|
|
195
|
-
return prop
|
|
196
|
-
.split(/(?<!\\)\./) // Split on unescaped dots
|
|
197
|
-
.map((key) => key.replace(/\\\./g, '.')); // Replace escaped dots with literal dots
|
|
198
|
-
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
// TODO/v1-release: replace this with:
|
|
3
|
-
// assertUsage(false, "`import { something } from 'vike'` doesn't exist: instead import from 'vike/server', 'vike/client', 'vike/plugin', ...")
|
|
4
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
5
3
|
if (k2 === undefined) k2 = k;
|
|
6
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -19,44 +17,17 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
19
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
18
|
};
|
|
21
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
(0, assert_js_1.assertUsage)(!(0, isBrowser_js_1.isBrowser)(), "It's forbidden to `import { something } from 'vike'` on the client-side: the module 'vike' is a server-only module.", { showStackTrace: true });
|
|
26
|
-
__exportStar(require("./index-common.js"), exports);
|
|
27
|
-
__exportStar(require("../../types/index-dreprecated.js"), exports);
|
|
20
|
+
// TODO/soon: point package.json#exports['./server'] to this file.
|
|
21
|
+
// - Write migration guide, see comment below.
|
|
22
|
+
__exportStar(require("./index.js"), exports);
|
|
28
23
|
const utils_js_1 = require("./utils.js");
|
|
29
24
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
30
|
-
const abort_js_1 = require("../../shared/route/abort.js");
|
|
31
|
-
/** @deprecated
|
|
32
|
-
* Replace:
|
|
33
|
-
* ```
|
|
34
|
-
* import { RenderErrorPage } from 'vike'
|
|
35
|
-
* ```
|
|
36
|
-
* With:
|
|
37
|
-
* ```
|
|
38
|
-
* import { render } from 'vike/abort'
|
|
39
|
-
* ```
|
|
40
|
-
*
|
|
41
|
-
* See https://vike.dev/render
|
|
42
|
-
*/
|
|
43
|
-
const RenderErrorPage = (...args) => {
|
|
44
|
-
(0, utils_js_1.assertWarning)(false, [
|
|
45
|
-
'Replace:',
|
|
46
|
-
picocolors_1.default.red(" import { RenderErrorPage } from 'vike'"),
|
|
47
|
-
'With:',
|
|
48
|
-
picocolors_1.default.green(" import { render } from 'vike/abort'"),
|
|
49
|
-
'See https://vike.dev/render'
|
|
50
|
-
].join('\n'), { onlyOnce: true, showStackTrace: true });
|
|
51
|
-
return (0, abort_js_1.RenderErrorPage)(...args);
|
|
52
|
-
};
|
|
53
|
-
exports.RenderErrorPage = RenderErrorPage;
|
|
54
25
|
(0, utils_js_1.assertWarning)(false, [
|
|
55
|
-
'You have
|
|
56
|
-
picocolors_1.default.red(" import { something } from 'vike'"),
|
|
26
|
+
'You have outdated imports:',
|
|
27
|
+
picocolors_1.default.bold(picocolors_1.default.red(" import { something } from 'vike/server'")),
|
|
57
28
|
'Replace them with:',
|
|
58
|
-
picocolors_1.default.green(" import { something } from 'vike
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
29
|
+
picocolors_1.default.bold(picocolors_1.default.green(" import { something } from 'vike'"))
|
|
30
|
+
/* Add migration guide, with migration scritps such as `$ rename vike/server vike`
|
|
31
|
+
`See ${pc.underline('https://vike.dev/migration/0.4.xxx')}`
|
|
32
|
+
*/
|
|
62
33
|
].join('\n'), { showStackTrace: true, onlyOnce: true });
|
|
@@ -13,8 +13,62 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
13
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
17
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
|
+
};
|
|
16
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
exports.RenderErrorPage = exports.createPageRenderer = exports._injectAssets = exports.createDevMiddleware = exports.getGlobalContextAsync = exports.getGlobalContextSync = exports.getGlobalContext = exports.version = exports.stampPipe = exports.pipeStream = exports.pipeNodeStream = exports.pipeWebStream = exports.dangerouslySkipEscape = exports.escapeInject = exports.renderPage = void 0;
|
|
17
21
|
const isBrowser_js_1 = require("../../utils/isBrowser.js");
|
|
18
22
|
const assert_js_1 = require("../../utils/assert.js");
|
|
19
|
-
(0, assert_js_1.
|
|
20
|
-
|
|
23
|
+
(0, assert_js_1.assert)(!(0, isBrowser_js_1.isBrowser)());
|
|
24
|
+
var renderPage_js_1 = require("./renderPage.js");
|
|
25
|
+
Object.defineProperty(exports, "renderPage", { enumerable: true, get: function () { return renderPage_js_1.renderPage; } });
|
|
26
|
+
var renderHtml_js_1 = require("./html/renderHtml.js");
|
|
27
|
+
Object.defineProperty(exports, "escapeInject", { enumerable: true, get: function () { return renderHtml_js_1.escapeInject; } });
|
|
28
|
+
Object.defineProperty(exports, "dangerouslySkipEscape", { enumerable: true, get: function () { return renderHtml_js_1.dangerouslySkipEscape; } });
|
|
29
|
+
var stream_js_1 = require("./html/stream.js");
|
|
30
|
+
Object.defineProperty(exports, "pipeWebStream", { enumerable: true, get: function () { return stream_js_1.pipeWebStream; } });
|
|
31
|
+
Object.defineProperty(exports, "pipeNodeStream", { enumerable: true, get: function () { return stream_js_1.pipeNodeStream; } });
|
|
32
|
+
Object.defineProperty(exports, "pipeStream", { enumerable: true, get: function () { return stream_js_1.pipeStream; } });
|
|
33
|
+
Object.defineProperty(exports, "stampPipe", { enumerable: true, get: function () { return stream_js_1.stampPipe; } });
|
|
34
|
+
var utils_js_1 = require("./utils.js");
|
|
35
|
+
Object.defineProperty(exports, "version", { enumerable: true, get: function () { return utils_js_1.PROJECT_VERSION; } });
|
|
36
|
+
var globalContext_js_1 = require("./globalContext.js");
|
|
37
|
+
Object.defineProperty(exports, "getGlobalContext", { enumerable: true, get: function () { return globalContext_js_1.getGlobalContext; } });
|
|
38
|
+
Object.defineProperty(exports, "getGlobalContextSync", { enumerable: true, get: function () { return globalContext_js_1.getGlobalContextSync; } });
|
|
39
|
+
Object.defineProperty(exports, "getGlobalContextAsync", { enumerable: true, get: function () { return globalContext_js_1.getGlobalContextAsync; } });
|
|
40
|
+
var index_js_1 = require("../runtime-dev/index.js");
|
|
41
|
+
Object.defineProperty(exports, "createDevMiddleware", { enumerable: true, get: function () { return index_js_1.createDevMiddleware; } });
|
|
42
|
+
// TODO/v1-release: remove
|
|
43
|
+
// Deprecated exports
|
|
44
|
+
__exportStar(require("../../types/index-dreprecated.js"), exports);
|
|
45
|
+
var injectAssets__public_js_1 = require("./html/injectAssets/injectAssets__public.js");
|
|
46
|
+
Object.defineProperty(exports, "_injectAssets", { enumerable: true, get: function () { return injectAssets__public_js_1.injectAssets__public; } });
|
|
47
|
+
var createPageRenderer_js_1 = require("../createPageRenderer.js");
|
|
48
|
+
Object.defineProperty(exports, "createPageRenderer", { enumerable: true, get: function () { return createPageRenderer_js_1.createPageRenderer; } });
|
|
49
|
+
const utils_js_2 = require("./utils.js");
|
|
50
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
51
|
+
const abort_js_1 = require("../../shared/route/abort.js");
|
|
52
|
+
/** @deprecated
|
|
53
|
+
* Replace:
|
|
54
|
+
* ```
|
|
55
|
+
* import { RenderErrorPage } from 'vike'
|
|
56
|
+
* ```
|
|
57
|
+
* With:
|
|
58
|
+
* ```
|
|
59
|
+
* import { render } from 'vike/abort'
|
|
60
|
+
* ```
|
|
61
|
+
*
|
|
62
|
+
* See https://vike.dev/render
|
|
63
|
+
*/
|
|
64
|
+
const RenderErrorPage = (...args) => {
|
|
65
|
+
(0, utils_js_2.assertWarning)(false, [
|
|
66
|
+
'Replace:',
|
|
67
|
+
picocolors_1.default.red(" import { RenderErrorPage } from 'vike'"),
|
|
68
|
+
'With:',
|
|
69
|
+
picocolors_1.default.green(" import { render } from 'vike/abort'"),
|
|
70
|
+
'See https://vike.dev/render'
|
|
71
|
+
].join('\n'), { onlyOnce: true, showStackTrace: true });
|
|
72
|
+
return (0, abort_js_1.RenderErrorPage)(...args);
|
|
73
|
+
};
|
|
74
|
+
exports.RenderErrorPage = RenderErrorPage;
|
|
@@ -22,7 +22,7 @@ async function analyzePage(pageFilesAll, pageConfig, pageId, globalContext) {
|
|
|
22
22
|
eagerlyImported: false
|
|
23
23
|
});
|
|
24
24
|
// In production we inject the import of the server virtual module with ?extractAssets inside the client virtual module
|
|
25
|
-
if (!globalContext.
|
|
25
|
+
if (!globalContext._isProduction) {
|
|
26
26
|
clientDependencies.push({
|
|
27
27
|
id: (0, virtualFilePageConfigValuesAll_js_1.getVirtualFileIdPageConfigValuesAll)(pageConfig.pageId, false),
|
|
28
28
|
onlyAssets: true,
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createHttpResponsePage = createHttpResponsePage;
|
|
4
4
|
exports.createHttpResponsePageContextJson = createHttpResponsePageContextJson;
|
|
5
5
|
exports.createHttpResponseError = createHttpResponseError;
|
|
6
|
+
exports.createHttpResponseErrorWithoutGlobalContext = createHttpResponseErrorWithoutGlobalContext;
|
|
6
7
|
exports.createHttpResponseRedirect = createHttpResponseRedirect;
|
|
7
8
|
exports.createHttpResponseFavicon404 = createHttpResponseFavicon404;
|
|
8
9
|
exports.createHttpResponseBaseIsMissing = createHttpResponseBaseIsMissing;
|
|
@@ -66,9 +67,6 @@ function createHttpResponseBaseIsMissing(urlOriginal, baseServer) {
|
|
|
66
67
|
}
|
|
67
68
|
function createHttpResponseError(pageContext) {
|
|
68
69
|
const reason = (() => {
|
|
69
|
-
if (!pageContext) {
|
|
70
|
-
return 'no error page (https://vike.dev/error-page) could be rendered';
|
|
71
|
-
}
|
|
72
70
|
const errorPageId = (0, error_page_js_1.getErrorPageId)(pageContext._pageFilesAll, pageContext._pageConfigs);
|
|
73
71
|
if (errorPageId) {
|
|
74
72
|
return "the error page (https://vike.dev/error-page) couldn't be rendered (for example if an error occurred while rendering the error page)";
|
|
@@ -77,6 +75,13 @@ function createHttpResponseError(pageContext) {
|
|
|
77
75
|
return 'no error page (https://vike.dev/error-page) is defined, make sure to create one';
|
|
78
76
|
}
|
|
79
77
|
})();
|
|
78
|
+
return createHttpResponseError_(reason);
|
|
79
|
+
}
|
|
80
|
+
function createHttpResponseErrorWithoutGlobalContext() {
|
|
81
|
+
const reason = 'no error page (https://vike.dev/error-page) could be rendered';
|
|
82
|
+
return createHttpResponseError_(reason);
|
|
83
|
+
}
|
|
84
|
+
function createHttpResponseError_(reason) {
|
|
80
85
|
const httpResponse = createHttpResponse(500, 'text/html;charset=utf-8', [], `<p>An error occurred.</p><script>console.log(${JSON.stringify(`This HTTP response was generated by Vike. Vike returned this response because ${reason}.`)})</script>`);
|
|
81
86
|
return httpResponse;
|
|
82
87
|
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPageContextServerSide = createPageContextServerSide;
|
|
4
|
+
exports.createPageContextServerSideWithoutGlobalContext = createPageContextServerSideWithoutGlobalContext;
|
|
5
|
+
const utils_js_1 = require("../utils.js");
|
|
6
|
+
const getPageContextUrlComputed_js_1 = require("../../../shared/getPageContextUrlComputed.js");
|
|
7
|
+
const createPageContextShared_js_1 = require("../../../shared/createPageContextShared.js");
|
|
8
|
+
async function createPageContextServerSide(pageContextInit, globalContext, globalObject_public, { isPrerendering, ssr: { urlHandler, isClientSideNavigation } = {
|
|
9
|
+
urlHandler: null,
|
|
10
|
+
isClientSideNavigation: false
|
|
11
|
+
} }) {
|
|
12
|
+
(0, utils_js_1.assert)(pageContextInit.urlOriginal);
|
|
13
|
+
const pageContextCreated = createPageContext(pageContextInit, isPrerendering);
|
|
14
|
+
(0, utils_js_1.objectAssign)(pageContextCreated, {
|
|
15
|
+
/* Don't spread globalContext for now? Or never spread it as it leads to confusion? The convenience isn't worth the added confusion?
|
|
16
|
+
// We must use Flatten<T> otherwise TypeScript complains upon assigning types
|
|
17
|
+
...(globalContext as Flatten<typeof globalContext>), // least precedence
|
|
18
|
+
*/
|
|
19
|
+
globalContext: globalObject_public,
|
|
20
|
+
_globalContext: globalContext,
|
|
21
|
+
// The following is defined on `pageContext` because we can eventually make these non-global
|
|
22
|
+
_baseServer: globalContext.baseServer,
|
|
23
|
+
_baseAssets: globalContext.baseAssets,
|
|
24
|
+
// TODO/now: add meta.default
|
|
25
|
+
_includeAssetsImportedByServer: globalContext.config.includeAssetsImportedByServer ?? true,
|
|
26
|
+
// TODO/soon: use GloablContext instead
|
|
27
|
+
_pageFilesAll: globalContext._pageFilesAll,
|
|
28
|
+
_pageConfigs: globalContext._pageConfigs,
|
|
29
|
+
_pageConfigGlobal: globalContext._pageConfigGlobal,
|
|
30
|
+
_allPageIds: globalContext._allPageIds,
|
|
31
|
+
_pageRoutes: globalContext._pageRoutes,
|
|
32
|
+
_onBeforeRouteHook: globalContext._onBeforeRouteHook,
|
|
33
|
+
_pageContextInit: pageContextInit,
|
|
34
|
+
_urlRewrite: null,
|
|
35
|
+
_urlHandler: urlHandler,
|
|
36
|
+
isClientSideNavigation
|
|
37
|
+
});
|
|
38
|
+
// pageContext.urlParsed
|
|
39
|
+
const pageContextUrlComputed = (0, getPageContextUrlComputed_js_1.getPageContextUrlComputed)(pageContextCreated);
|
|
40
|
+
(0, utils_js_1.objectAssign)(pageContextCreated, pageContextUrlComputed);
|
|
41
|
+
// pageContext.headers
|
|
42
|
+
{
|
|
43
|
+
let headers;
|
|
44
|
+
if (pageContextInit.headersOriginal) {
|
|
45
|
+
headers = (0, utils_js_1.normalizeHeaders)(pageContextInit.headersOriginal);
|
|
46
|
+
(0, utils_js_1.assertUsage)(!('headers' in pageContextInit), "You're defining pageContextInit.headersOriginal as well as pageContextInit.headers but you should only define pageContextInit.headersOriginal instead, see https://vike.dev/headers");
|
|
47
|
+
}
|
|
48
|
+
else if (pageContextInit.headers) {
|
|
49
|
+
headers = pageContextInit.headers;
|
|
50
|
+
// TODO/next-major-release: remove
|
|
51
|
+
(0, utils_js_1.assertWarning)(false, 'Setting pageContextInit.headers is deprecated: set pageContextInit.headersOriginal instead, see https://vike.dev/headers', { onlyOnce: true });
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
headers = null;
|
|
55
|
+
}
|
|
56
|
+
(0, utils_js_1.objectAssign)(pageContextCreated, { headers });
|
|
57
|
+
}
|
|
58
|
+
const pageContextAugmented = await (0, createPageContextShared_js_1.createPageContextShared)(pageContextCreated, globalContext._pageConfigGlobal);
|
|
59
|
+
(0, utils_js_1.augmentType)(pageContextCreated, pageContextAugmented);
|
|
60
|
+
return pageContextCreated;
|
|
61
|
+
}
|
|
62
|
+
function createPageContextServerSideWithoutGlobalContext(pageContextInit) {
|
|
63
|
+
const pageContext = createPageContext(pageContextInit, false);
|
|
64
|
+
return pageContext;
|
|
65
|
+
}
|
|
66
|
+
function createPageContext(pageContextInit, isPrerendering) {
|
|
67
|
+
const pageContext = {
|
|
68
|
+
isClientSide: false,
|
|
69
|
+
isPrerendering
|
|
70
|
+
};
|
|
71
|
+
(0, utils_js_1.objectAssign)(pageContext, pageContextInit);
|
|
72
|
+
return pageContext;
|
|
73
|
+
}
|
|
@@ -9,8 +9,8 @@ async function executeOnBeforeRenderAndDataHooks(pageContext) {
|
|
|
9
9
|
if (pageContext._pageContextAlreadyProvidedByOnPrerenderHook) {
|
|
10
10
|
return;
|
|
11
11
|
}
|
|
12
|
-
const dataHook = (0, getHook_js_1.
|
|
13
|
-
const onBeforeRenderHook = (0, getHook_js_1.
|
|
12
|
+
const dataHook = (0, getHook_js_1.getHookFromPageContext)(pageContext, 'data');
|
|
13
|
+
const onBeforeRenderHook = (0, getHook_js_1.getHookFromPageContext)(pageContext, 'onBeforeRender');
|
|
14
14
|
if (!dataHook && !onBeforeRenderHook) {
|
|
15
15
|
return;
|
|
16
16
|
}
|
|
@@ -41,12 +41,12 @@ function getRenderHook(pageContext) {
|
|
|
41
41
|
{
|
|
42
42
|
let hook;
|
|
43
43
|
let hookName = undefined;
|
|
44
|
-
hook = (0, getHook_js_1.
|
|
44
|
+
hook = (0, getHook_js_1.getHookFromPageContext)(pageContext, 'onRenderHtml');
|
|
45
45
|
if (hook) {
|
|
46
46
|
hookName = 'onRenderHtml';
|
|
47
47
|
}
|
|
48
48
|
else {
|
|
49
|
-
hook = (0, getHook_js_1.
|
|
49
|
+
hook = (0, getHook_js_1.getHookFromPageContext)(pageContext, 'render');
|
|
50
50
|
if (hook) {
|
|
51
51
|
hookName = 'render';
|
|
52
52
|
}
|
|
@@ -42,7 +42,7 @@ function getManifestEntry(id, assetsManifest) {
|
|
|
42
42
|
return { manifestEntry, manifestKey };
|
|
43
43
|
}
|
|
44
44
|
// npm package import
|
|
45
|
-
(0, utils_js_1.
|
|
45
|
+
(0, utils_js_1.assertIsImportPathNpmPackage)(id);
|
|
46
46
|
const found = Object.entries(assetsManifest).find(([, e]) => e.name === (0, prependEntriesDir_js_1.prependEntriesDir)(id));
|
|
47
47
|
(0, utils_js_1.assert)(found);
|
|
48
48
|
const [manifestKey, manifestEntry] = found;
|