vike 0.4.142 → 0.4.143-commit-dc6fea0
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/node/plugin/index.js +2 -2
- package/dist/cjs/node/plugin/plugins/buildConfig.js +4 -5
- package/dist/cjs/node/plugin/plugins/commonConfig.js +2 -7
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -2
- package/dist/cjs/node/plugin/plugins/envVars.js +3 -5
- package/dist/cjs/node/plugin/plugins/importUserCode/generateEagerImport.js +19 -8
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +2 -2
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +1 -1
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +6 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +122 -124
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +37 -27
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +50 -80
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/helpers.js +12 -3
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +25 -25
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +19 -16
- package/dist/cjs/node/plugin/plugins/suppressRollupWarning.js +16 -3
- package/dist/cjs/node/plugin/shared/{getConfigValueSource.js → getConfigValueSourcesRelevant.js} +1 -12
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +1 -1
- package/dist/cjs/node/plugin/shared/loggerNotProd.js +3 -3
- package/dist/cjs/node/plugin/utils.js +1 -2
- package/dist/cjs/node/prerender/runPrerender.js +13 -16
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/cjs/node/runtime/html/stream.js +4 -1
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/cjs/node/runtime/renderPage/loadPageFilesServerSide.js +2 -2
- package/dist/cjs/node/runtime/renderPage/log404/index.js +10 -5
- package/dist/cjs/node/shared/virtual-files/virtualFilePageConfigValuesAll.js +1 -1
- package/dist/cjs/shared/error-page.js +1 -1
- package/dist/cjs/shared/getPageFiles/assertPageConfigs.js +13 -13
- package/dist/cjs/shared/getPageFiles/getExports.js +3 -3
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +9 -43
- package/dist/cjs/shared/getPageFiles/parsePageConfigsSerialized.js +62 -0
- package/dist/cjs/shared/page-configs/assertExports.js +60 -0
- package/dist/cjs/shared/page-configs/loadConfigValues.js +18 -0
- package/dist/cjs/shared/page-configs/parseConfigValuesImported.js +50 -0
- package/dist/cjs/shared/page-configs/utils.js +1 -1
- package/dist/cjs/shared/route/loadPageRoutes.js +11 -13
- package/dist/cjs/shared/route/resolvePrecedence.js +32 -11
- package/dist/cjs/shared/route/resolveRedirects.js +1 -1
- package/dist/cjs/shared/route/resolveRouteFunction.js +1 -0
- package/dist/cjs/shared/route/resolveRouteString.js +99 -43
- package/dist/cjs/shared/utils.js +1 -1
- package/dist/cjs/types/defineConfig.js +7 -0
- package/dist/cjs/types/index.js +3 -0
- package/dist/cjs/utils/getFilePathAbsolute.js +16 -12
- package/dist/cjs/utils/objectAssign.js +3 -1
- package/dist/cjs/utils/parseUrl.js +6 -1
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/cjs/utils/requireResolve.js +60 -0
- package/dist/esm/__internal/index.d.ts +3 -3
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageContext.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/getPageId.d.ts +2 -2
- package/dist/esm/client/client-routing-runtime/prefetch.js +3 -1
- package/dist/esm/client/client-routing-runtime/useClientRouter.js +2 -2
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +1 -1
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +2 -2
- package/dist/esm/client/shared/loadPageFilesClientSide.d.ts +2 -2
- package/dist/esm/client/shared/loadPageFilesClientSide.js +2 -2
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +2 -2
- package/dist/esm/node/plugin/index.js +3 -2
- package/dist/esm/node/plugin/plugins/buildConfig.js +4 -5
- package/dist/esm/node/plugin/plugins/commonConfig.js +2 -7
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- package/dist/esm/node/plugin/plugins/envVars.js +4 -6
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +13 -2
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.js +19 -8
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.d.ts +19 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +6 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +3 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +123 -125
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +35 -25
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +49 -79
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.js +10 -1
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.d.ts +18 -6
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +25 -25
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.d.ts +2 -2
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +19 -16
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.js +16 -3
- package/dist/esm/node/plugin/shared/{getConfigValueSource.d.ts → getConfigValueSourcesRelevant.d.ts} +0 -2
- package/dist/esm/node/plugin/shared/{getConfigValueSource.js → getConfigValueSourcesRelevant.js} +0 -11
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +2 -2
- package/dist/esm/node/plugin/shared/loggerNotProd.js +4 -4
- package/dist/esm/node/plugin/utils.d.ts +1 -2
- package/dist/esm/node/plugin/utils.js +1 -2
- package/dist/esm/node/prerender/runPrerender.js +13 -16
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +1 -1
- package/dist/esm/node/runtime/html/injectAssets.d.ts +2 -2
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +2 -2
- package/dist/esm/node/runtime/html/stream.js +4 -1
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/analyzePage.js +2 -2
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.js +2 -2
- package/dist/esm/node/runtime/renderPage/log404/index.js +10 -5
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +2 -2
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +13 -13
- package/dist/esm/node/shared/getClientEntryFilePath.d.ts +2 -2
- package/dist/esm/node/shared/virtual-files/virtualFilePageConfigValuesAll.js +1 -1
- package/dist/esm/shared/addIs404ToPageProps.d.ts +2 -2
- package/dist/esm/shared/addUrlComputedProps.d.ts +4 -2
- package/dist/esm/shared/error-page.d.ts +3 -3
- package/dist/esm/shared/error-page.js +1 -1
- package/dist/esm/shared/getPageFiles/analyzeClientSide.d.ts +2 -2
- package/dist/esm/shared/getPageFiles/assertPageConfigs.d.ts +5 -5
- package/dist/esm/shared/getPageFiles/assertPageConfigs.js +12 -12
- package/dist/esm/shared/getPageFiles/getExports.d.ts +2 -2
- package/dist/esm/shared/getPageFiles/getExports.js +1 -1
- package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +3 -3
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +9 -43
- package/dist/esm/shared/getPageFiles/parsePageConfigsSerialized.d.ts +6 -0
- package/dist/esm/shared/getPageFiles/parsePageConfigsSerialized.js +59 -0
- package/dist/esm/shared/getPageFiles/setPageFiles.d.ts +3 -3
- package/dist/esm/shared/page-configs/Config.d.ts +201 -14
- package/dist/esm/shared/page-configs/PageConfig.d.ts +60 -39
- package/dist/esm/shared/page-configs/assertExports.d.ts +6 -0
- package/dist/esm/shared/page-configs/assertExports.js +54 -0
- package/dist/esm/shared/page-configs/findPageConfig.d.ts +2 -2
- package/dist/esm/shared/page-configs/loadConfigValues.d.ts +3 -0
- package/dist/esm/shared/page-configs/loadConfigValues.js +15 -0
- package/dist/esm/shared/page-configs/parseConfigValuesImported.d.ts +3 -0
- package/dist/esm/shared/page-configs/parseConfigValuesImported.js +44 -0
- package/dist/esm/shared/page-configs/utils.d.ts +3 -2
- package/dist/esm/shared/page-configs/utils.js +1 -1
- package/dist/esm/shared/route/executeGuardHook.d.ts +2 -2
- package/dist/esm/shared/route/index.d.ts +3 -3
- package/dist/esm/shared/route/loadPageRoutes.d.ts +2 -2
- package/dist/esm/shared/route/loadPageRoutes.js +11 -13
- package/dist/esm/shared/route/resolvePrecedence.js +33 -12
- package/dist/esm/shared/route/resolveRedirects.js +1 -1
- package/dist/esm/shared/route/resolveRouteFunction.js +1 -0
- package/dist/esm/shared/route/resolveRouteString.d.ts +21 -4
- package/dist/esm/shared/route/resolveRouteString.js +98 -42
- package/dist/esm/shared/types.d.ts +8 -6
- package/dist/esm/shared/utils.d.ts +1 -1
- package/dist/esm/shared/utils.js +1 -1
- package/dist/esm/types/defineConfig.d.ts +3 -0
- package/dist/esm/types/defineConfig.js +4 -0
- package/dist/esm/types/index.d.ts +3 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/utils/getFilePathAbsolute.d.ts +2 -2
- package/dist/esm/utils/getFilePathAbsolute.js +15 -11
- package/dist/esm/utils/objectAssign.js +3 -1
- package/dist/esm/utils/parseUrl.js +6 -1
- package/dist/esm/utils/projectInfo.d.ts +1 -1
- package/dist/esm/utils/projectInfo.js +1 -1
- package/dist/esm/utils/requireResolve.d.ts +2 -0
- package/dist/esm/utils/requireResolve.js +57 -0
- package/package.json +3 -3
- package/dist/cjs/shared/page-configs/loadPageCode.js +0 -63
- package/dist/cjs/utils/addFileExtensionsToRequireResolve.js +0 -23
- package/dist/cjs/utils/assertDefaultExport.js +0 -53
- package/dist/esm/shared/page-configs/loadPageCode.d.ts +0 -3
- package/dist/esm/shared/page-configs/loadPageCode.js +0 -57
- package/dist/esm/utils/addFileExtensionsToRequireResolve.d.ts +0 -2
- package/dist/esm/utils/addFileExtensionsToRequireResolve.js +0 -20
- package/dist/esm/utils/assertDefaultExport.d.ts +0 -8
- package/dist/esm/utils/assertDefaultExport.js +0 -47
- /package/dist/cjs/shared/getPageFiles/{assertExports.js → assert_exports_old_design.js} +0 -0
- /package/dist/esm/shared/getPageFiles/{assertExports.d.ts → assert_exports_old_design.d.ts} +0 -0
- /package/dist/esm/shared/getPageFiles/{assertExports.js → assert_exports_old_design.js} +0 -0
|
@@ -3,7 +3,7 @@ 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.assertRouteString = exports.analyzeRouteString = exports.isStaticRouteString = exports.getUrlFromRouteString = exports.resolveRouteString = void 0;
|
|
6
|
+
exports.parseRouteString = exports.assertRouteString = exports.analyzeRouteString = exports.isStaticRouteString = exports.getUrlFromRouteString = exports.resolveRouteString = void 0;
|
|
7
7
|
const utils_js_1 = require("../utils.js");
|
|
8
8
|
const utils_js_2 = require("./utils.js");
|
|
9
9
|
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
@@ -11,44 +11,105 @@ const PARAM_TOKEN_NEW = '@';
|
|
|
11
11
|
// TODO/v1-release: remove
|
|
12
12
|
const PARAM_TOKEN_OLD = ':';
|
|
13
13
|
function assertRouteString(routeString, errPrefix = 'Invalid') {
|
|
14
|
-
|
|
15
|
-
(0, utils_js_2.assertUsage)(routeString !== '', `${
|
|
16
|
-
(0, utils_js_2.assertUsage)(
|
|
14
|
+
let errPrefix2 = `${errPrefix} Route String ${highlight(routeString)}`;
|
|
15
|
+
(0, utils_js_2.assertUsage)(routeString !== '', `${errPrefix2} (empty string): set it to ${highlight('/')} instead`);
|
|
16
|
+
(0, utils_js_2.assertUsage)(['/', '*'].includes(routeString[0]), `${errPrefix2}: it should start with ${highlight('/')} or ${highlight('*')}`);
|
|
17
|
+
(0, utils_js_2.assertUsage)(!routeString.includes('**'), `${errPrefix2}: set it to ${highlight(routeString.split('**').join('*'))} instead`);
|
|
17
18
|
}
|
|
18
19
|
exports.assertRouteString = assertRouteString;
|
|
19
20
|
function resolveRouteString(routeString, urlPathname) {
|
|
20
21
|
assertRouteString(routeString);
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
if (routeString === '*') {
|
|
27
|
-
routeString = '/*';
|
|
28
|
-
}
|
|
29
|
-
for (let i = 0; i < Math.max(routeSegments.length, urlSegments.length); i++) {
|
|
30
|
-
const routeSegment = routeSegments[i];
|
|
31
|
-
const urlSegment = urlSegments[i];
|
|
32
|
-
if (routeSegment === '*') {
|
|
33
|
-
routeParams['*'] = urlSegments.slice(Math.max(1, i)).join('/');
|
|
34
|
-
return { routeParams };
|
|
22
|
+
const segments = parseRouteString(routeString);
|
|
23
|
+
const routeRegexStrInner = segments
|
|
24
|
+
.map((segment) => {
|
|
25
|
+
if (segment.param) {
|
|
26
|
+
return '[^/]+';
|
|
35
27
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return null;
|
|
28
|
+
if (segment.glob) {
|
|
29
|
+
if (segment.isLastDir) {
|
|
30
|
+
return '|/.*';
|
|
40
31
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
else {
|
|
44
|
-
if ((routeSegment || '') !== (urlSegment || '')) {
|
|
45
|
-
return null;
|
|
32
|
+
else {
|
|
33
|
+
return '.*';
|
|
46
34
|
}
|
|
47
35
|
}
|
|
48
|
-
|
|
36
|
+
// segment.static
|
|
37
|
+
return (0, utils_js_1.escapeRegex)(segment.static);
|
|
38
|
+
})
|
|
39
|
+
.map((s) => `(${s})`)
|
|
40
|
+
.join('');
|
|
41
|
+
const routeRegex = new RegExp(`^${routeRegexStrInner}/?$`);
|
|
42
|
+
const routeRegexMatch = urlPathname.match(routeRegex);
|
|
43
|
+
/* DEBUG
|
|
44
|
+
console.log()
|
|
45
|
+
console.log('routeString', routeString)
|
|
46
|
+
console.log('urlPathname', urlPathname)
|
|
47
|
+
console.log('routeSegments', segments)
|
|
48
|
+
console.log('routeRegex', routeRegex)
|
|
49
|
+
console.log('routeRegexMatch', routeRegexMatch)
|
|
50
|
+
//*/
|
|
51
|
+
if (!routeRegexMatch)
|
|
52
|
+
return null;
|
|
53
|
+
const routeParams = {};
|
|
54
|
+
const [_, ...segmentsValue] = routeRegexMatch;
|
|
55
|
+
let globIdx = 0;
|
|
56
|
+
const hasMultipleGlobs = segments.filter((segment) => segment.glob).length > 1;
|
|
57
|
+
segments.forEach((segment, i) => {
|
|
58
|
+
let val = segmentsValue[i];
|
|
59
|
+
if (segment.param) {
|
|
60
|
+
routeParams[segment.param] = val;
|
|
61
|
+
}
|
|
62
|
+
if (segment.glob) {
|
|
63
|
+
const param = `*${hasMultipleGlobs ? ++globIdx : ''}`;
|
|
64
|
+
if (segment.isLastDir)
|
|
65
|
+
val = val.slice(1);
|
|
66
|
+
routeParams[param] = val;
|
|
67
|
+
}
|
|
68
|
+
});
|
|
49
69
|
return { routeParams };
|
|
50
70
|
}
|
|
51
71
|
exports.resolveRouteString = resolveRouteString;
|
|
72
|
+
function parseRouteString(routeString) {
|
|
73
|
+
const segments = [];
|
|
74
|
+
const pushStatic = (s) => {
|
|
75
|
+
const segmentLast = segments[segments.length - 1];
|
|
76
|
+
if (segmentLast?.static) {
|
|
77
|
+
segmentLast.static += s;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
segments.push({ static: s });
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const parts = routeString.split('/');
|
|
84
|
+
parts.forEach((s, i) => {
|
|
85
|
+
const isFirst = i === 0;
|
|
86
|
+
const isLast = i === parts.length - 1;
|
|
87
|
+
if (isParam(s)) {
|
|
88
|
+
(0, utils_js_1.assertWarning)(!s.startsWith(PARAM_TOKEN_OLD), `Outdated Route String ${highlight(routeString)}, use ${highlight(routeString.split(PARAM_TOKEN_OLD).join(PARAM_TOKEN_NEW))} instead`, { onlyOnce: true });
|
|
89
|
+
if (!isFirst)
|
|
90
|
+
pushStatic('/');
|
|
91
|
+
segments.push({ param: s.slice(1) });
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
if (s === '*' && isLast && routeString !== '*' && routeString !== '/*') {
|
|
95
|
+
segments.push({ glob: true, isLastDir: true });
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
if (!isFirst)
|
|
99
|
+
pushStatic('/');
|
|
100
|
+
s.split('*').forEach((s, i) => {
|
|
101
|
+
if (i !== 0)
|
|
102
|
+
segments.push({ glob: true });
|
|
103
|
+
if (s !== '') {
|
|
104
|
+
pushStatic(s);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
return segments;
|
|
111
|
+
}
|
|
112
|
+
exports.parseRouteString = parseRouteString;
|
|
52
113
|
function getUrlFromRouteString(routeString) {
|
|
53
114
|
(0, utils_js_2.assert)(routeString.startsWith('/'));
|
|
54
115
|
if (isStaticRouteString(routeString)) {
|
|
@@ -58,24 +119,19 @@ function getUrlFromRouteString(routeString) {
|
|
|
58
119
|
return null;
|
|
59
120
|
}
|
|
60
121
|
exports.getUrlFromRouteString = getUrlFromRouteString;
|
|
61
|
-
function assertGlob(routeString) {
|
|
62
|
-
const numberOfGlobChars = routeString.split('*').length - 1;
|
|
63
|
-
(0, utils_js_2.assertUsage)(numberOfGlobChars <= 1, `Invalid Route String ${highlight(routeString)}: Route Strings aren't allowed to contain more than one glob ${highlight('*')} (use a Route Function instead)`);
|
|
64
|
-
(0, utils_js_2.assertUsage)(numberOfGlobChars === 0 || (numberOfGlobChars === 1 && routeString.endsWith('*')), `Invalid Route String ${highlight(routeString)}: make sure it ends with ${highlight('*')} or use a Route Function`);
|
|
65
|
-
}
|
|
66
122
|
function analyzeRouteString(routeString) {
|
|
67
|
-
const
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
123
|
+
const segments = parseRouteString(routeString);
|
|
124
|
+
const countStaticParts = (s) => s?.split('/').filter(Boolean).length || 0;
|
|
125
|
+
let numberOfStaticPartsBeginning = 0;
|
|
126
|
+
for (const segment of segments) {
|
|
127
|
+
if (!segment.static)
|
|
71
128
|
break;
|
|
72
|
-
|
|
73
|
-
numberOfStaticSegmentsBeginning++;
|
|
129
|
+
numberOfStaticPartsBeginning += countStaticParts(segment.static);
|
|
74
130
|
}
|
|
75
|
-
const
|
|
76
|
-
const
|
|
77
|
-
const
|
|
78
|
-
return {
|
|
131
|
+
const numberOfStaticParts = segments.map((s) => countStaticParts(s.static)).reduce((sum, a) => sum + a, 0);
|
|
132
|
+
const numberOfParams = segments.filter((s) => s.param).length;
|
|
133
|
+
const numberOfGlobs = segments.filter((s) => s.glob).length;
|
|
134
|
+
return { numberOfStaticPartsBeginning, numberOfStaticParts, numberOfParams, numberOfGlobs };
|
|
79
135
|
}
|
|
80
136
|
exports.analyzeRouteString = analyzeRouteString;
|
|
81
137
|
function isParam(routeSegment) {
|
package/dist/cjs/shared/utils.js
CHANGED
|
@@ -38,6 +38,6 @@ __exportStar(require("../utils/projectInfo.js"), exports);
|
|
|
38
38
|
__exportStar(require("../utils/hasPropertyGetter.js"), exports);
|
|
39
39
|
__exportStar(require("../utils/isPromise.js"), exports);
|
|
40
40
|
__exportStar(require("../utils/checkType.js"), exports);
|
|
41
|
-
__exportStar(require("../utils/assertDefaultExport.js"), exports);
|
|
42
41
|
__exportStar(require("../utils/objectEntries.js"), exports);
|
|
43
42
|
__exportStar(require("../utils/getValuePrintable.js"), exports);
|
|
43
|
+
__exportStar(require("../utils/escapeRegex.js"), exports);
|
package/dist/cjs/types/index.js
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defineConfig = void 0;
|
|
4
|
+
var defineConfig_js_1 = require("./defineConfig.js");
|
|
5
|
+
Object.defineProperty(exports, "defineConfig", { enumerable: true, get: function () { return defineConfig_js_1.defineConfig; } });
|
|
@@ -3,7 +3,7 @@ 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.
|
|
6
|
+
exports.getFilePathRelativeToUserRootDir = exports.getFilePathAbsolute = void 0;
|
|
7
7
|
const filesystemPathHandling_js_1 = require("./filesystemPathHandling.js");
|
|
8
8
|
const assert_js_1 = require("./assert.js");
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
@@ -47,20 +47,24 @@ function getFilePathAbsolute(filePath, config) {
|
|
|
47
47
|
return filePathAbsolute;
|
|
48
48
|
}
|
|
49
49
|
exports.getFilePathAbsolute = getFilePathAbsolute;
|
|
50
|
-
function
|
|
51
|
-
(0, filesystemPathHandling_js_1.assertPosixPath)(
|
|
50
|
+
function getFilePathRelativeToUserRootDir(filePathAbsolute, userRootDir, alwaysRelative = false) {
|
|
51
|
+
(0, filesystemPathHandling_js_1.assertPosixPath)(filePathAbsolute);
|
|
52
52
|
(0, filesystemPathHandling_js_1.assertPosixPath)(userRootDir);
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
let filePathRelativeToUserRootDir = path_1.default.posix.relative(userRootDir, filePathAbsolute);
|
|
54
|
+
if (filePathAbsolute.startsWith(userRootDir)) {
|
|
55
|
+
(0, assert_js_1.assert)(!filePathRelativeToUserRootDir.startsWith('.') && !filePathRelativeToUserRootDir.startsWith('/'),
|
|
56
|
+
// Surprinsingly, this assertion seem to fail sometimes: https://github.com/vikejs/vike/issues/1139
|
|
57
|
+
{ filePathRelativeToUserRootDir, filePathAbsolute, userRootDir });
|
|
58
|
+
filePathRelativeToUserRootDir = `/${filePathRelativeToUserRootDir}`;
|
|
59
|
+
return filePathRelativeToUserRootDir;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
if (alwaysRelative) {
|
|
63
|
+
return filePathRelativeToUserRootDir;
|
|
57
64
|
}
|
|
58
65
|
else {
|
|
59
|
-
return
|
|
66
|
+
return filePathAbsolute;
|
|
60
67
|
}
|
|
61
68
|
}
|
|
62
|
-
(0, assert_js_1.assert)(!filePathRelativeToRoot.startsWith('.') && !filePathRelativeToRoot.startsWith('/'));
|
|
63
|
-
const filePathVite = `/${filePathRelativeToRoot}`;
|
|
64
|
-
return filePathVite;
|
|
65
69
|
}
|
|
66
|
-
exports.
|
|
70
|
+
exports.getFilePathRelativeToUserRootDir = getFilePathRelativeToUserRootDir;
|
|
@@ -5,6 +5,8 @@ exports.objectAssign = void 0;
|
|
|
5
5
|
// - With type inference
|
|
6
6
|
// - Preserves property descriptors, which we need for preserving the getters added by addUrlComputedProps()
|
|
7
7
|
function objectAssign(obj, objAddendum) {
|
|
8
|
-
|
|
8
|
+
if (objAddendum) {
|
|
9
|
+
Object.defineProperties(obj, Object.getOwnPropertyDescriptors(objAddendum));
|
|
10
|
+
}
|
|
9
11
|
}
|
|
10
12
|
exports.objectAssign = objectAssign;
|
|
@@ -112,7 +112,10 @@ function parsePathname(urlWithoutHashNorSearch, baseServer) {
|
|
|
112
112
|
else {
|
|
113
113
|
// In the browser, this is the Base URL of the current URL
|
|
114
114
|
// Safe access `window?.document?.baseURI` for users who shim `window` in Node.js
|
|
115
|
-
|
|
115
|
+
let baseURI = typeof window !== 'undefined' && window?.document?.baseURI;
|
|
116
|
+
if (baseURI)
|
|
117
|
+
baseURI = parseOrigin(baseURI).pathname;
|
|
118
|
+
const base = baseURI || baseServer;
|
|
116
119
|
const pathname = resolveUrlPathnameRelative(urlWithoutHashNorSearch, base);
|
|
117
120
|
// We need to parse the origin in case `base === window.document.baseURI`
|
|
118
121
|
const parsed = parseOrigin(pathname);
|
|
@@ -155,6 +158,8 @@ function resolveUrlPathnameRelative(pathnameRelative, base) {
|
|
|
155
158
|
let pathnameAbsolute = stack.join('/');
|
|
156
159
|
if (baseRestoreTrailingSlash && !pathnameAbsolute.endsWith('/'))
|
|
157
160
|
pathnameAbsolute += '/';
|
|
161
|
+
if (!pathnameAbsolute.startsWith('/'))
|
|
162
|
+
pathnameAbsolute = '/' + pathnameAbsolute;
|
|
158
163
|
return pathnameAbsolute;
|
|
159
164
|
}
|
|
160
165
|
/* Not needed anymore?
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.projectInfo = void 0;
|
|
4
4
|
const assertSingleInstance_js_1 = require("./assertSingleInstance.js");
|
|
5
|
-
const PROJECT_VERSION = '0.4.
|
|
5
|
+
const PROJECT_VERSION = '0.4.143-commit-dc6fea0';
|
|
6
6
|
const projectInfo = {
|
|
7
7
|
projectName: 'Vike',
|
|
8
8
|
projectVersion: PROJECT_VERSION,
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.requireResolve = void 0;
|
|
4
|
+
const assert_js_1 = require("./assert.js");
|
|
5
|
+
const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
|
|
6
|
+
const assertIsNotProductionRuntime_js_1 = require("./assertIsNotProductionRuntime.js");
|
|
7
|
+
const filesystemPathHandling_js_1 = require("./filesystemPathHandling.js");
|
|
8
|
+
const isScriptFile_js_1 = require("./isScriptFile.js");
|
|
9
|
+
const module_1 = require("module");
|
|
10
|
+
// @ts-ignore Shimed by dist-cjs-fixup.js for CJS build.
|
|
11
|
+
const importMetaUrl = `file://${__filename}`;
|
|
12
|
+
const require_ = (0, module_1.createRequire)(importMetaUrl);
|
|
13
|
+
(0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
|
|
14
|
+
(0, assertIsNotProductionRuntime_js_1.assertIsNotProductionRuntime)();
|
|
15
|
+
function requireResolve(importPath, cwd) {
|
|
16
|
+
(0, filesystemPathHandling_js_1.assertPosixPath)(cwd);
|
|
17
|
+
const clean = addFileExtensionsToRequireResolve();
|
|
18
|
+
importPath = removeFileExtention(importPath);
|
|
19
|
+
let importedFile;
|
|
20
|
+
try {
|
|
21
|
+
importedFile = require_.resolve(importPath, { paths: [cwd] });
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
importedFile = null;
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
clean();
|
|
28
|
+
}
|
|
29
|
+
if (importedFile) {
|
|
30
|
+
importedFile = (0, filesystemPathHandling_js_1.toPosixPath)(importedFile);
|
|
31
|
+
}
|
|
32
|
+
return importedFile;
|
|
33
|
+
}
|
|
34
|
+
exports.requireResolve = requireResolve;
|
|
35
|
+
function removeFileExtention(importPath) {
|
|
36
|
+
for (const ext of isScriptFile_js_1.scriptFileExtensionList) {
|
|
37
|
+
const suffix = `.${ext}`;
|
|
38
|
+
if (importPath.endsWith(suffix)) {
|
|
39
|
+
return importPath.slice(0, -1 * suffix.length);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return importPath;
|
|
43
|
+
}
|
|
44
|
+
function addFileExtensionsToRequireResolve() {
|
|
45
|
+
const added = [];
|
|
46
|
+
isScriptFile_js_1.scriptFileExtensionList.forEach((ext) => {
|
|
47
|
+
(0, assert_js_1.assert)(!ext.includes('.'));
|
|
48
|
+
ext = `.${ext}`;
|
|
49
|
+
if (!require.extensions[ext]) {
|
|
50
|
+
require.extensions[ext] = require.extensions['.js'];
|
|
51
|
+
added.push(ext);
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
const clean = () => {
|
|
55
|
+
added.forEach((ext) => {
|
|
56
|
+
delete require.extensions[ext];
|
|
57
|
+
});
|
|
58
|
+
};
|
|
59
|
+
return clean;
|
|
60
|
+
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { route, type PageRoutes } from '../shared/route/index.js';
|
|
2
2
|
import { type PageFile } from '../shared/getPageFiles.js';
|
|
3
|
-
import {
|
|
3
|
+
import { PageConfigRuntime } from '../shared/page-configs/PageConfig.js';
|
|
4
4
|
export { route, getPagesAndRoutes };
|
|
5
|
-
export type { PageRoutes, PageFile, PageConfig };
|
|
5
|
+
export type { PageRoutes, PageFile, PageConfigRuntime as PageConfig };
|
|
6
6
|
/**
|
|
7
7
|
* Used by {@link https://github.com/magne4000/vite-plugin-vercel|vite-plugin-vercel}
|
|
8
8
|
* to compute some rewrite rules and extract { isr } configs.
|
|
@@ -12,6 +12,6 @@ export type { PageRoutes, PageFile, PageConfig };
|
|
|
12
12
|
declare function getPagesAndRoutes(): Promise<{
|
|
13
13
|
pageRoutes: PageRoutes;
|
|
14
14
|
pageFilesAll: PageFile[];
|
|
15
|
-
pageConfigs:
|
|
15
|
+
pageConfigs: PageConfigRuntime[];
|
|
16
16
|
allPageIds: string[];
|
|
17
17
|
}>;
|
|
@@ -8,8 +8,8 @@ declare function createPageContext<T extends {
|
|
|
8
8
|
_baseServer: string;
|
|
9
9
|
_isProduction: boolean;
|
|
10
10
|
_pageFilesAll: import("../../shared/getPageFiles/getPageFileObject.js").PageFile[];
|
|
11
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").
|
|
12
|
-
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").
|
|
11
|
+
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
12
|
+
_pageConfigGlobal: import("../../shared/page-configs/PageConfig.js").PageConfigGlobalRuntime;
|
|
13
13
|
_allPageIds: string[];
|
|
14
14
|
_pageRoutes: import("../../shared/route/loadPageRoutes.js").PageRoutes;
|
|
15
15
|
_onBeforeRouteHook: import("../../shared/route/executeOnBeforeRouteHook.js").OnBeforeRouteHook | null;
|
|
@@ -5,7 +5,7 @@ export { isAlreadyServerSideRouted };
|
|
|
5
5
|
import type { PageContextExports, PageFile } from '../../shared/getPageFiles.js';
|
|
6
6
|
import type { PageContextUrlComputedPropsInternal } from '../../shared/addUrlComputedProps.js';
|
|
7
7
|
import { PageContextForRoute } from '../../shared/route/index.js';
|
|
8
|
-
import type {
|
|
8
|
+
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
9
9
|
import type { PageContextForPassToClientWarning } from '../shared/getPageContextProxyForUser.js';
|
|
10
10
|
type PageContextAddendum = {
|
|
11
11
|
_pageId: string;
|
|
@@ -23,7 +23,7 @@ declare function getPageContextErrorPage(pageContext: {
|
|
|
23
23
|
_allPageIds: string[];
|
|
24
24
|
_isFirstRenderAttempt: boolean;
|
|
25
25
|
_pageFilesAll: PageFile[];
|
|
26
|
-
_pageConfigs:
|
|
26
|
+
_pageConfigs: PageConfigRuntime[];
|
|
27
27
|
} & PageContextPassThrough): Promise<PageContextAddendum>;
|
|
28
28
|
declare function checkIf404(err: unknown): boolean;
|
|
29
29
|
declare function isAlreadyServerSideRouted(err: unknown): boolean;
|
|
@@ -2,9 +2,9 @@ export { getPageId };
|
|
|
2
2
|
declare function getPageId(url: string): Promise<{
|
|
3
3
|
pageId: null;
|
|
4
4
|
pageFilesAll: import("../../shared/getPageFiles/getPageFileObject.js").PageFile[];
|
|
5
|
-
pageConfigs: import("../../shared/page-configs/PageConfig.js").
|
|
5
|
+
pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
6
6
|
} | {
|
|
7
7
|
pageId: string;
|
|
8
8
|
pageFilesAll: import("../../shared/getPageFiles/getPageFileObject.js").PageFile[];
|
|
9
|
-
pageConfigs: import("../../shared/page-configs/PageConfig.js").
|
|
9
|
+
pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
10
10
|
}>;
|
|
@@ -18,7 +18,9 @@ const linkPrefetchHandlerAdded = new Map();
|
|
|
18
18
|
* @param url - The URL of the page you want to prefetch.
|
|
19
19
|
*/
|
|
20
20
|
async function prefetch(url) {
|
|
21
|
-
assertUsage(checkIfClientRouting(), 'prefetch() only works with Client Routing, see https://vike.dev/prefetch', {
|
|
21
|
+
assertUsage(checkIfClientRouting(), 'prefetch() only works with Client Routing, see https://vike.dev/prefetch', {
|
|
22
|
+
showStackTrace: true
|
|
23
|
+
});
|
|
22
24
|
assertUsage(!isExternalLink(url), `You are trying to prefetch the URL ${url} of another domain which cannot be prefetched`, { showStackTrace: true });
|
|
23
25
|
if (isAlreadyPrefetched(url))
|
|
24
26
|
return;
|
|
@@ -103,7 +103,7 @@ function useClientRouter() {
|
|
|
103
103
|
// Start transition before any await's
|
|
104
104
|
if (renderingNumber > 1) {
|
|
105
105
|
if (isTransitioning === false) {
|
|
106
|
-
globalObject.onPageTransitionStart?.(pageContextBase);
|
|
106
|
+
await globalObject.onPageTransitionStart?.(pageContextBase);
|
|
107
107
|
isTransitioning = true;
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -265,7 +265,7 @@ function useClientRouter() {
|
|
|
265
265
|
else if (renderingNumber === renderingCounter) {
|
|
266
266
|
if (pageContext.exports.onPageTransitionEnd) {
|
|
267
267
|
assertHook(pageContext, 'onPageTransitionEnd');
|
|
268
|
-
pageContext.exports.onPageTransitionEnd(pageContext);
|
|
268
|
+
await pageContext.exports.onPageTransitionEnd(pageContext);
|
|
269
269
|
}
|
|
270
270
|
isTransitioning = false;
|
|
271
271
|
}
|
|
@@ -8,7 +8,7 @@ declare function getPageContext(): Promise<{
|
|
|
8
8
|
_hasPageContextFromClient: boolean;
|
|
9
9
|
} & {
|
|
10
10
|
_pageFilesAll: import("../../shared/getPageFiles/getPageFileObject.js").PageFile[];
|
|
11
|
-
_pageConfigs: import("../../shared/page-configs/PageConfig.js").
|
|
11
|
+
_pageConfigs: import("../../shared/page-configs/PageConfig.js").PageConfigRuntime[];
|
|
12
12
|
} & import("../../shared/getPageFiles/getExports.js").PageContextExports & {
|
|
13
13
|
_pageFilesLoaded: import("../../shared/getPageFiles/getPageFileObject.js").PageFile[];
|
|
14
14
|
}>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { executeOnRenderClientHook };
|
|
2
2
|
import type { PageFile, PageContextExports } from '../../shared/getPageFiles.js';
|
|
3
3
|
import { type PageContextForUserConsumptionClientSide } from './preparePageContextForUserConsumptionClientSide.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
5
5
|
declare function executeOnRenderClientHook<PC extends {
|
|
6
6
|
_pageFilesLoaded: PageFile[];
|
|
7
7
|
urlOriginal?: string;
|
|
8
8
|
urlPathname?: string;
|
|
9
9
|
_pageId: string;
|
|
10
|
-
_pageConfigs:
|
|
10
|
+
_pageConfigs: PageConfigRuntime[];
|
|
11
11
|
} & PageContextExports & PageContextForUserConsumptionClientSide>(pageContext: PC, isClientRouting: boolean): Promise<void>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { type PageFile, type PageContextExports } from '../../shared/getPageFiles.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
3
3
|
export { loadPageFilesClientSide };
|
|
4
4
|
export { isErrorFetchingStaticAssets };
|
|
5
|
-
declare function loadPageFilesClientSide(pageFilesAll: PageFile[], pageConfigs:
|
|
5
|
+
declare function loadPageFilesClientSide(pageFilesAll: PageFile[], pageConfigs: PageConfigRuntime[], pageId: string): Promise<PageContextExports & {
|
|
6
6
|
_pageFilesLoaded: PageFile[];
|
|
7
7
|
}>;
|
|
8
8
|
declare function isErrorFetchingStaticAssets(err: unknown): boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getPageFilesClientSide, getExports } from '../../shared/getPageFiles.js';
|
|
2
2
|
import { findPageConfig } from '../../shared/page-configs/findPageConfig.js';
|
|
3
|
-
import {
|
|
3
|
+
import { loadConfigValues } from '../../shared/page-configs/loadConfigValues.js';
|
|
4
4
|
export { loadPageFilesClientSide };
|
|
5
5
|
export { isErrorFetchingStaticAssets };
|
|
6
6
|
const stamp = '__whileFetchingAssets';
|
|
@@ -13,7 +13,7 @@ async function loadPageFilesClientSide(pageFilesAll, pageConfigs, pageId) {
|
|
|
13
13
|
try {
|
|
14
14
|
// prettier-ignore
|
|
15
15
|
const result = await Promise.all([
|
|
16
|
-
pageConfig &&
|
|
16
|
+
pageConfig && loadConfigValues(pageConfig, isDev),
|
|
17
17
|
...pageFilesClientSide.map((p) => p.loadFile?.()),
|
|
18
18
|
]);
|
|
19
19
|
pageConfigLoaded = result[0];
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export { preparePageContextForUserConsumptionClientSide };
|
|
2
2
|
export type { PageContextForUserConsumptionClientSide };
|
|
3
3
|
import type { PageContextExports } from '../../shared/getPageFiles.js';
|
|
4
|
-
import type {
|
|
4
|
+
import type { PageConfigRuntime } from '../../shared/page-configs/PageConfig.js';
|
|
5
5
|
import { PageContextForPassToClientWarning } from './getPageContextProxyForUser.js';
|
|
6
6
|
type PageContextForUserConsumptionClientSide = PageContextExports & PageContextForPassToClientWarning & {
|
|
7
7
|
_pageId: string;
|
|
8
|
-
_pageConfigs:
|
|
8
|
+
_pageConfigs: PageConfigRuntime[];
|
|
9
9
|
};
|
|
10
10
|
declare function preparePageContextForUserConsumptionClientSide<T extends PageContextForUserConsumptionClientSide>(pageContext: T, isClientRouting: boolean): T & {
|
|
11
11
|
Page: unknown;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export default plugin;
|
|
2
2
|
export { plugin };
|
|
3
|
+
// TODO/v1-release: remove
|
|
3
4
|
export { plugin as ssr };
|
|
4
5
|
import { assertUsage, markEnvAsVite } from './utils.js';
|
|
5
6
|
import { buildConfig } from './plugins/buildConfig.js';
|
|
@@ -48,7 +49,7 @@ function plugin(vikeConfig) {
|
|
|
48
49
|
];
|
|
49
50
|
return plugins;
|
|
50
51
|
}
|
|
51
|
-
// Enable `const
|
|
52
|
+
// Enable `const vike = require('vike/plugin')`.
|
|
52
53
|
// - This lives at the end of the file to ensure it happens after all assignments to `exports`.
|
|
53
54
|
// - This is only used for the CJS build; we wrap it in a try-catch for the ESM build.
|
|
54
55
|
try {
|
|
@@ -59,6 +60,6 @@ catch { }
|
|
|
59
60
|
Object.defineProperty(plugin, 'apply', {
|
|
60
61
|
enumerable: true,
|
|
61
62
|
get: () => {
|
|
62
|
-
assertUsage(false, `Add ${pc.cyan('
|
|
63
|
+
assertUsage(false, `Add ${pc.cyan('vike()')} instead of ${pc.cyan('vike')} to vite.config.js#plugins (i.e. call the function and add the return value instead of adding the function itself)`, { showStackTrace: true });
|
|
63
64
|
}
|
|
64
65
|
});
|
|
@@ -50,8 +50,10 @@ function buildConfig() {
|
|
|
50
50
|
},
|
|
51
51
|
async writeBundle(options, bundle) {
|
|
52
52
|
const manifestEntry = bundle[manifestTempFile];
|
|
53
|
-
|
|
54
|
-
|
|
53
|
+
/* Fails with @vitejs/plugin-legacy because writeBundle() is called twice during the client build (once for normal client assets and a second time for legacy assets), see reproduction at https://github.com/vikejs/vike/issues/1154
|
|
54
|
+
assert(generateManifest === !!manifestEntry)
|
|
55
|
+
*/
|
|
56
|
+
if (manifestEntry) {
|
|
55
57
|
const { dir } = options;
|
|
56
58
|
assert(dir);
|
|
57
59
|
const manifestFilePathOld = path.join(dir, manifestEntry.fileName);
|
|
@@ -61,9 +63,6 @@ function buildConfig() {
|
|
|
61
63
|
const manifestFilePathNew = path.join(dir, '..', 'assets.json');
|
|
62
64
|
await fs.rename(manifestFilePathOld, manifestFilePathNew);
|
|
63
65
|
}
|
|
64
|
-
else {
|
|
65
|
-
assert(!manifestEntry);
|
|
66
|
-
}
|
|
67
66
|
}
|
|
68
67
|
};
|
|
69
68
|
}
|
|
@@ -14,12 +14,7 @@ function commonConfig() {
|
|
|
14
14
|
{
|
|
15
15
|
name: 'vike-commonConfig-1',
|
|
16
16
|
config: () => ({
|
|
17
|
-
appType: 'custom'
|
|
18
|
-
ssr: {
|
|
19
|
-
// Needed as long as Vike is published as CJS.
|
|
20
|
-
// TODO: can we remove this once Vike is published as ESM?
|
|
21
|
-
external: ['vike', 'vike/server']
|
|
22
|
-
}
|
|
17
|
+
appType: 'custom'
|
|
23
18
|
}),
|
|
24
19
|
configResolved(config) {
|
|
25
20
|
installRequireShim_setUserRootDir(config.root);
|
|
@@ -70,5 +65,5 @@ function assertEsm(userViteRoot) {
|
|
|
70
65
|
}
|
|
71
66
|
assert(dir.endsWith('/'));
|
|
72
67
|
dir = pc.dim(dir);
|
|
73
|
-
assertWarning(packageJson.type === 'module', `We recommend setting ${dir}package.json#type to "module"
|
|
68
|
+
assertWarning(packageJson.type === 'module', `We recommend setting ${dir}package.json#type to "module", see https://vike.dev/CJS`, { onlyOnce: true });
|
|
74
69
|
}
|
|
@@ -2,7 +2,7 @@ export { determineOptimizeDeps };
|
|
|
2
2
|
import { findPageFiles } from '../../shared/findPageFiles.js';
|
|
3
3
|
import { assert, getFilePathAbsolute, isNotNullish, isNpmPackageImport, unique } from '../../utils.js';
|
|
4
4
|
import { getVikeConfig } from '../importUserCode/v1-design/getVikeConfig.js';
|
|
5
|
-
import { getConfigValueSourcesRelevant } from '../../shared/
|
|
5
|
+
import { getConfigValueSourcesRelevant } from '../../shared/getConfigValueSourcesRelevant.js';
|
|
6
6
|
import { analyzeClientEntries } from '../buildConfig.js';
|
|
7
7
|
import { virtualFileIdImportUserCodeClientCR, virtualFileIdImportUserCodeClientSR } from '../../../shared/virtual-files/virtualFileImportUserCode.js';
|
|
8
8
|
async function determineOptimizeDeps(config, configVike, isDev) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { envVarsPlugin };
|
|
2
2
|
import { loadEnv } from 'vite';
|
|
3
|
-
import { assert, assertPosixPath, assertUsage, assertWarning,
|
|
3
|
+
import { assert, assertPosixPath, assertUsage, assertWarning, getFilePathRelativeToUserRootDir, lowerFirst } from '../utils.js';
|
|
4
4
|
function envVarsPlugin() {
|
|
5
5
|
let envsAll;
|
|
6
6
|
let config;
|
|
@@ -41,11 +41,9 @@ function envVarsPlugin() {
|
|
|
41
41
|
if (isPrivate && isClientSide) {
|
|
42
42
|
if (!code.includes(varName))
|
|
43
43
|
return;
|
|
44
|
-
const
|
|
45
|
-
const errMsgAddendum = isBuild
|
|
46
|
-
|
|
47
|
-
: ' (vike will prevent your app from building for production)';
|
|
48
|
-
const errMsg = `${varName} used in ${filePathVite} and therefore included in client-side bundle which can be be a security leak${errMsgAddendum}, remove ${varName} or rename ${key} to ${keyPublic}, see https://vike.dev/env`;
|
|
44
|
+
const filePathToShowToUser = getFilePathRelativeToUserRootDir(id, config.root);
|
|
45
|
+
const errMsgAddendum = isBuild ? '' : ' (vike will prevent your app from building for production)';
|
|
46
|
+
const errMsg = `${varName} used in ${filePathToShowToUser} and therefore included in client-side bundle which can be be a security leak${errMsgAddendum}, remove ${varName} or rename ${key} to ${keyPublic}, see https://vike.dev/env`;
|
|
49
47
|
if (isBuild) {
|
|
50
48
|
assertUsage(false, errMsg);
|
|
51
49
|
}
|