vike 0.4.142-commit-acfc159 → 0.4.143-commit-f03b42d
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 +1 -6
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +2 -2
- 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/v1-design/getVikeConfig.js +103 -95
- 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/shared/{getConfigValueSource.js → getConfigValueSourcesRelevant.js} +1 -12
- package/dist/cjs/node/plugin/shared/loggerNotProd.js +1 -1
- package/dist/cjs/node/plugin/utils.js +1 -2
- package/dist/cjs/node/prerender/runPrerender.js +13 -16
- 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/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/objectAssign.js +3 -1
- package/dist/cjs/utils/projectInfo.js +1 -1
- package/dist/cjs/utils/{resolve.js → requireResolve.js} +3 -3
- 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 +1 -6
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +1 -1
- 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/v1-design/getFilePathToShowToUser.d.ts +8 -0
- 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 +104 -96
- 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/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.js +2 -2
- 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.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/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/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 +200 -11
- package/dist/esm/shared/page-configs/PageConfig.d.ts +59 -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 +7 -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 +2 -1
- package/dist/esm/types/index.js +1 -1
- package/dist/esm/utils/objectAssign.js +3 -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/{resolve.js → requireResolve.js} +2 -2
- package/package.json +3 -3
- package/dist/cjs/shared/page-configs/loadPageCode.js +0 -63
- 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/assertDefaultExport.d.ts +0 -8
- package/dist/esm/utils/assertDefaultExport.js +0 -47
- package/dist/esm/utils/resolve.d.ts +0 -2
- /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; } });
|
|
@@ -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;
|
|
@@ -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-f03b42d';
|
|
6
6
|
const projectInfo = {
|
|
7
7
|
projectName: 'Vike',
|
|
8
8
|
projectVersion: PROJECT_VERSION,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.requireResolve = void 0;
|
|
4
4
|
const assert_js_1 = require("./assert.js");
|
|
5
5
|
const assertIsNotBrowser_js_1 = require("./assertIsNotBrowser.js");
|
|
6
6
|
const assertIsNotProductionRuntime_js_1 = require("./assertIsNotProductionRuntime.js");
|
|
@@ -12,7 +12,7 @@ const importMetaUrl = `file://${__filename}`;
|
|
|
12
12
|
const require_ = (0, module_1.createRequire)(importMetaUrl);
|
|
13
13
|
(0, assertIsNotBrowser_js_1.assertIsNotBrowser)();
|
|
14
14
|
(0, assertIsNotProductionRuntime_js_1.assertIsNotProductionRuntime)();
|
|
15
|
-
function
|
|
15
|
+
function requireResolve(importPath, cwd) {
|
|
16
16
|
(0, filesystemPathHandling_js_1.assertPosixPath)(cwd);
|
|
17
17
|
const clean = addFileExtensionsToRequireResolve();
|
|
18
18
|
importPath = removeFileExtention(importPath);
|
|
@@ -31,7 +31,7 @@ function resolve(importPath, cwd) {
|
|
|
31
31
|
}
|
|
32
32
|
return importedFile;
|
|
33
33
|
}
|
|
34
|
-
exports.
|
|
34
|
+
exports.requireResolve = requireResolve;
|
|
35
35
|
function removeFileExtention(importPath) {
|
|
36
36
|
for (const ext of isScriptFile_js_1.scriptFileExtensionList) {
|
|
37
37
|
const suffix = `.${ext}`;
|
|
@@ -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);
|
|
@@ -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,5 +1,16 @@
|
|
|
1
1
|
export { generateEagerImport };
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Naming:
|
|
4
|
+
* `import { someExport as someImport } from './some-file'`
|
|
5
|
+
* <=>
|
|
6
|
+
* `{`
|
|
7
|
+
* `importPath: './some-file',`
|
|
8
|
+
* `exportName: 'someExport',`
|
|
9
|
+
* `importName: 'someImport',`
|
|
10
|
+
* `}`
|
|
11
|
+
* We discard the information that the import variable is called `someImport` because we don't need it.
|
|
12
|
+
*/
|
|
13
|
+
declare function generateEagerImport(importPath: string, varCounter?: number, exportName?: string): {
|
|
14
|
+
importName: string;
|
|
4
15
|
importStatement: string;
|
|
5
16
|
};
|
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
export { generateEagerImport };
|
|
2
2
|
let varCounterGlobal = 0;
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* Naming:
|
|
5
|
+
* `import { someExport as someImport } from './some-file'`
|
|
6
|
+
* <=>
|
|
7
|
+
* `{`
|
|
8
|
+
* `importPath: './some-file',`
|
|
9
|
+
* `exportName: 'someExport',`
|
|
10
|
+
* `importName: 'someImport',`
|
|
11
|
+
* `}`
|
|
12
|
+
* We discard the information that the import variable is called `someImport` because we don't need it.
|
|
13
|
+
*/
|
|
14
|
+
function generateEagerImport(importPath, varCounter, exportName) {
|
|
4
15
|
if (varCounter === undefined)
|
|
5
16
|
varCounter = varCounterGlobal++;
|
|
6
|
-
const
|
|
17
|
+
const importName = `import_${varCounter}`;
|
|
7
18
|
const importLiteral = (() => {
|
|
8
|
-
if (!
|
|
9
|
-
return `* as ${
|
|
19
|
+
if (!exportName || exportName === '*') {
|
|
20
|
+
return `* as ${importName}`;
|
|
10
21
|
}
|
|
11
|
-
if (
|
|
12
|
-
return
|
|
22
|
+
if (exportName === 'default') {
|
|
23
|
+
return importName;
|
|
13
24
|
}
|
|
14
|
-
return `{ ${
|
|
25
|
+
return `{ ${exportName} as ${importName} }`;
|
|
15
26
|
})();
|
|
16
27
|
const importStatement = `import ${importLiteral} from '${importPath}';`;
|
|
17
|
-
return {
|
|
28
|
+
return { importName, importStatement };
|
|
18
29
|
}
|
|
@@ -121,9 +121,9 @@ function addImport(importPath, fileType, exportNames, isBuild) {
|
|
|
121
121
|
return `() => import('${importPath}${query}')`;
|
|
122
122
|
}
|
|
123
123
|
else {
|
|
124
|
-
const {
|
|
124
|
+
const { importName, importStatement } = generateEagerImport(`${importPath}${query}`);
|
|
125
125
|
fileContent += importStatement + '\n';
|
|
126
|
-
return
|
|
126
|
+
return importName;
|
|
127
127
|
}
|
|
128
128
|
})();
|
|
129
129
|
fileContent += `${mapVar}['${importPath}'] = ${value};\n`;
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
export { getFilePathToShowToUser };
|
|
2
2
|
export type { FilePath };
|
|
3
3
|
type FilePath = {
|
|
4
|
+
/** The file's path relative to the filesystem root.
|
|
5
|
+
*
|
|
6
|
+
* Example: `/home/rom/code/my-app/pages/some-page/Page.js`
|
|
7
|
+
*/
|
|
4
8
|
filePathAbsolute: string;
|
|
9
|
+
/** The file's path relative to the Vite's root (i.e. the user's project root directory).
|
|
10
|
+
*
|
|
11
|
+
* Example: `/pages/some-page/Page.js`
|
|
12
|
+
*/
|
|
5
13
|
filePathRelativeToUserRootDir: null | string;
|
|
6
14
|
};
|
|
7
15
|
declare function getFilePathToShowToUser(filePath: FilePath): string;
|
|
@@ -2,11 +2,11 @@ export { getVikeConfig };
|
|
|
2
2
|
export { reloadVikeConfig };
|
|
3
3
|
export { vikeConfigDependencies };
|
|
4
4
|
export { isVikeConfigFile };
|
|
5
|
-
import type {
|
|
5
|
+
import type { PageConfigGlobalBuildTime, PageConfigBuildTime } from '../../../../../shared/page-configs/PageConfig.js';
|
|
6
6
|
import type { ExtensionResolved } from '../../../../../shared/ConfigVike.js';
|
|
7
7
|
type VikeConfig = {
|
|
8
8
|
pageConfigs: PageConfigBuildTime[];
|
|
9
|
-
pageConfigGlobal:
|
|
9
|
+
pageConfigGlobal: PageConfigGlobalBuildTime;
|
|
10
10
|
globalVikeConfig: Record<string, unknown>;
|
|
11
11
|
};
|
|
12
12
|
declare const vikeConfigDependencies: Set<string>;
|