vike 0.0.0-alpha.0 → 0.4.142-commit-8bf568b
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/RenderErrorPage.js +2 -0
- package/__internal/setup.js +2 -0
- package/__internal.js +2 -0
- package/abort.js +2 -0
- package/cli.js +2 -0
- package/client/router.js +2 -0
- package/client.js +2 -0
- package/dist/cjs/__internal/index.js +31 -0
- package/dist/cjs/node/cli/bin.js +44 -0
- package/dist/cjs/node/cli/index.js +11 -0
- package/dist/cjs/node/cli/onLoad.js +8 -0
- package/dist/cjs/node/cli/utils.js +21 -0
- package/dist/cjs/node/client/router.js +15 -0
- package/dist/cjs/node/createPageRenderer.js +133 -0
- package/dist/cjs/node/importBuild.js +3 -0
- package/dist/cjs/node/plugin/index.js +70 -0
- package/dist/cjs/node/plugin/onLoad.js +13 -0
- package/dist/cjs/node/plugin/plugins/autoFullBuild.js +104 -0
- package/dist/cjs/node/plugin/plugins/baseUrls.js +43 -0
- package/dist/cjs/node/plugin/plugins/buildConfig.js +252 -0
- package/dist/cjs/node/plugin/plugins/commonConfig/assertResolveAlias.js +73 -0
- package/dist/cjs/node/plugin/plugins/commonConfig.js +80 -0
- package/dist/cjs/node/plugin/plugins/config/assertVikeConfig.js +74 -0
- package/dist/cjs/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +27 -0
- package/dist/cjs/node/plugin/plugins/config/index.js +77 -0
- package/dist/cjs/node/plugin/plugins/config/pickFirst.js +7 -0
- package/dist/cjs/node/plugin/plugins/config/resolveBase.js +48 -0
- package/dist/cjs/node/plugin/plugins/config/resolveExtensions.js +107 -0
- package/dist/cjs/node/plugin/plugins/config/stemUtils.js +85 -0
- package/dist/cjs/node/plugin/plugins/devConfig/determineFsAllowList.js +42 -0
- package/dist/cjs/node/plugin/plugins/devConfig/determineOptimizeDeps.js +125 -0
- package/dist/cjs/node/plugin/plugins/devConfig/index.js +87 -0
- package/dist/cjs/node/plugin/plugins/distFileNames.js +169 -0
- package/dist/cjs/node/plugin/plugins/envVars.js +82 -0
- package/dist/cjs/node/plugin/plugins/extensionsAssets.js +101 -0
- package/dist/cjs/node/plugin/plugins/extractAssetsPlugin.js +234 -0
- package/dist/cjs/node/plugin/plugins/extractExportNamesPlugin.js +95 -0
- package/dist/cjs/node/plugin/plugins/importBuild/index.js +54 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/generateEagerImport.js +21 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +242 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/index.js +140 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/debug.js +5 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +10 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +100 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +176 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1120 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +79 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigs.js +160 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/helpers.js +34 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +13 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +154 -0
- package/dist/cjs/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +283 -0
- package/dist/cjs/node/plugin/plugins/manifest.js +59 -0
- package/dist/cjs/node/plugin/plugins/packageJsonFile.js +45 -0
- package/dist/cjs/node/plugin/plugins/previewConfig.js +61 -0
- package/dist/cjs/node/plugin/plugins/removeRequireHookPlugin.js +18 -0
- package/dist/cjs/node/plugin/plugins/setGlobalContext.js +31 -0
- package/dist/cjs/node/plugin/plugins/suppressRollupWarning.js +51 -0
- package/dist/cjs/node/plugin/shared/addSsrMiddleware.js +41 -0
- package/dist/cjs/node/plugin/shared/findPageFiles.js +24 -0
- package/dist/cjs/node/plugin/shared/getConfigValueSource.js +25 -0
- package/dist/cjs/node/plugin/shared/getHttpRequestAsyncStore.js +122 -0
- package/dist/cjs/node/plugin/shared/isAsset.js +41 -0
- package/dist/cjs/node/plugin/shared/isErrorDebug.js +8 -0
- package/dist/cjs/node/plugin/shared/isViteCliCall.js +84 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +15 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +15 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +38 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx.js +26 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +30 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +19 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +19 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +29 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +13 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +15 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +168 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd/log.js +114 -0
- package/dist/cjs/node/plugin/shared/loggerNotProd.js +224 -0
- package/dist/cjs/node/plugin/shared/loggerVite/removeSuperfluousViteLog.js +25 -0
- package/dist/cjs/node/plugin/shared/loggerVite.js +61 -0
- package/dist/cjs/node/plugin/shared/parseEsModule.js +34 -0
- package/dist/cjs/node/plugin/shared/removeSourceMap.js +12 -0
- package/dist/cjs/node/plugin/shared/rollupIsEsm.js +16 -0
- package/dist/cjs/node/plugin/utils.js +41 -0
- package/dist/cjs/node/prerender/index.js +5 -0
- package/dist/cjs/node/prerender/runPrerender.js +707 -0
- package/dist/cjs/node/prerender/utils.js +31 -0
- package/dist/cjs/node/runtime/globalContext/loadImportBuild.js +30 -0
- package/dist/cjs/node/runtime/globalContext.js +163 -0
- package/dist/cjs/node/runtime/html/injectAssets/getHtmlTags.js +161 -0
- package/dist/cjs/node/runtime/html/injectAssets/getViteDevScripts.js +28 -0
- package/dist/cjs/node/runtime/html/injectAssets/inferHtmlTags.js +52 -0
- package/dist/cjs/node/runtime/html/injectAssets/injectAssets__public.js +32 -0
- package/dist/cjs/node/runtime/html/injectAssets/injectHtmlTags.js +157 -0
- package/dist/cjs/node/runtime/html/injectAssets/mergeScriptTags.js +71 -0
- package/dist/cjs/node/runtime/html/injectAssets/sanitizeJson.js +9 -0
- package/dist/cjs/node/runtime/html/injectAssets.js +76 -0
- package/dist/cjs/node/runtime/html/renderHtml.js +237 -0
- package/dist/cjs/node/runtime/html/serializePageContextClientSide.js +117 -0
- package/dist/cjs/node/runtime/html/stream/react-streaming.js +36 -0
- package/dist/cjs/node/runtime/html/stream.js +751 -0
- package/dist/cjs/node/runtime/index-common.js +23 -0
- package/dist/cjs/node/runtime/index-deprecated.js +61 -0
- package/dist/cjs/node/runtime/index.js +19 -0
- package/dist/cjs/node/runtime/onLoad.js +12 -0
- package/dist/cjs/node/runtime/page-files/setup.js +23 -0
- package/dist/cjs/node/runtime/renderPage/analyzePage.js +69 -0
- package/dist/cjs/node/runtime/renderPage/assertArguments.js +43 -0
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject/assertNoInfiniteHttpRedirect.js +44 -0
- package/dist/cjs/node/runtime/renderPage/createHttpResponseObject.js +68 -0
- package/dist/cjs/node/runtime/renderPage/debugPageFiles.js +53 -0
- package/dist/cjs/node/runtime/renderPage/executeOnBeforeRenderHook.js +23 -0
- package/dist/cjs/node/runtime/renderPage/executeOnRenderHtmlHook.js +139 -0
- package/dist/cjs/node/runtime/renderPage/getEarlyHints.js +46 -0
- package/dist/cjs/node/runtime/renderPage/getHttpResponseBody.js +131 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +25 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets/getManifestEntry.js +128 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +75 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +61 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +33 -0
- package/dist/cjs/node/runtime/renderPage/getPageAssets.js +133 -0
- package/dist/cjs/node/runtime/renderPage/handleErrorWithoutErrorPage.js +43 -0
- package/dist/cjs/node/runtime/renderPage/handlePageContextRequestUrl.js +33 -0
- package/dist/cjs/node/runtime/renderPage/inferMediaType.js +41 -0
- package/dist/cjs/node/runtime/renderPage/isConfigInvalid.js +8 -0
- package/dist/cjs/node/runtime/renderPage/isNewError.js +23 -0
- package/dist/cjs/node/runtime/renderPage/loadPageFilesServerSide.js +100 -0
- package/dist/cjs/node/runtime/renderPage/log404/index.js +144 -0
- package/dist/cjs/node/runtime/renderPage/loggerProd.js +23 -0
- package/dist/cjs/node/runtime/renderPage/loggerRuntime.js +17 -0
- package/dist/cjs/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +19 -0
- package/dist/cjs/node/runtime/renderPage/renderPageAlreadyRouted.js +186 -0
- package/dist/cjs/node/runtime/renderPage.js +405 -0
- package/dist/cjs/node/runtime/utils.js +71 -0
- package/dist/cjs/node/shared/ViteManifest.js +2 -0
- package/dist/cjs/node/shared/assertPluginManifest.js +24 -0
- package/dist/cjs/node/shared/assertRuntimeManifest.js +19 -0
- package/dist/cjs/node/shared/extractAssetsQuery.js +29 -0
- package/dist/cjs/node/shared/getClientEntryFilePath.js +18 -0
- package/dist/cjs/node/shared/getConfigVike.js +8 -0
- package/dist/cjs/node/shared/utils.js +33 -0
- package/dist/cjs/node/shared/virtual-files/virtualFileImportUserCode.js +27 -0
- package/dist/cjs/node/shared/virtual-files/virtualFilePageConfigValuesAll.js +39 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/shared/ConfigVike.js +2 -0
- package/dist/cjs/shared/RenderErrorPage.js +6 -0
- package/dist/cjs/shared/VikeNamespace.js +2 -0
- package/dist/cjs/shared/abort.js +16 -0
- package/dist/cjs/shared/addIs404ToPageProps.js +26 -0
- package/dist/cjs/shared/addUrlComputedProps.js +111 -0
- package/dist/cjs/shared/assertHookReturnedObject.js +22 -0
- package/dist/cjs/shared/assertOnBeforeRenderHookReturn.js +22 -0
- package/dist/cjs/shared/assertPageContextProvidedByUser.js +21 -0
- package/dist/cjs/shared/assertPageFilePath.js +12 -0
- package/dist/cjs/shared/determinePageIdOld.js +12 -0
- package/dist/cjs/shared/error-page.js +41 -0
- package/dist/cjs/shared/getPageContextRequestUrl.js +16 -0
- package/dist/cjs/shared/getPageFiles/analyzeClientSide.js +22 -0
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +2 -0
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +51 -0
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +30 -0
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide/getExportNames.js +16 -0
- package/dist/cjs/shared/getPageFiles/analyzePageClientSide.js +61 -0
- package/dist/cjs/shared/getPageFiles/analyzePageServerSide.js +23 -0
- package/dist/cjs/shared/getPageFiles/assertExports.js +24 -0
- package/dist/cjs/shared/getPageFiles/assertPageConfigs.js +19 -0
- package/dist/cjs/shared/getPageFiles/fileTypes.js +53 -0
- package/dist/cjs/shared/getPageFiles/getAllPageIdFiles.js +106 -0
- package/dist/cjs/shared/getPageFiles/getExports.js +146 -0
- package/dist/cjs/shared/getPageFiles/getPageFileObject.js +62 -0
- package/dist/cjs/shared/getPageFiles/parseGlobResults.js +127 -0
- package/dist/cjs/shared/getPageFiles/setPageFiles.js +47 -0
- package/dist/cjs/shared/getPageFiles.js +18 -0
- package/dist/cjs/shared/hooks/executeHook.js +74 -0
- package/dist/cjs/shared/hooks/getHook.js +29 -0
- package/dist/cjs/shared/notSerializable.js +5 -0
- package/dist/cjs/shared/page-configs/Config/PageContextConfig.js +2 -0
- package/dist/cjs/shared/page-configs/Config/helpers.js +2 -0
- package/dist/cjs/shared/page-configs/Config.js +2 -0
- package/dist/cjs/shared/page-configs/PageConfig.js +2 -0
- package/dist/cjs/shared/page-configs/findPageConfig.js +11 -0
- package/dist/cjs/shared/page-configs/getExportPath.js +31 -0
- package/dist/cjs/shared/page-configs/loadPageCode.js +63 -0
- package/dist/cjs/shared/page-configs/utils.js +80 -0
- package/dist/cjs/shared/route/abort.js +161 -0
- package/dist/cjs/shared/route/debug.js +14 -0
- package/dist/cjs/shared/route/deduceRouteStringFromFilesystemPath.js +53 -0
- package/dist/cjs/shared/route/executeGuardHook.js +40 -0
- package/dist/cjs/shared/route/executeOnBeforeRouteHook.js +56 -0
- package/dist/cjs/shared/route/index.js +119 -0
- package/dist/cjs/shared/route/loadPageRoutes.js +197 -0
- package/dist/cjs/shared/route/resolvePrecedence.js +72 -0
- package/dist/cjs/shared/route/resolveRedirects.js +55 -0
- package/dist/cjs/shared/route/resolveRoute.js +21 -0
- package/dist/cjs/shared/route/resolveRouteFunction.js +70 -0
- package/dist/cjs/shared/route/resolveRouteString.js +101 -0
- package/dist/cjs/shared/route/routing.js +9 -0
- package/dist/cjs/shared/route/utils.js +43 -0
- package/dist/cjs/shared/sortPageContext.js +17 -0
- package/dist/cjs/shared/types.js +2 -0
- package/dist/cjs/shared/utils.js +43 -0
- package/dist/cjs/types/index-dreprecated.js +3 -0
- package/dist/cjs/types/index.js +2 -0
- package/dist/cjs/utils/PromiseType.js +2 -0
- package/dist/cjs/utils/arrayIncludes.js +7 -0
- package/dist/cjs/utils/assert.js +194 -0
- package/dist/cjs/utils/assertDefaultExport.js +53 -0
- package/dist/cjs/utils/assertIsBrowser.js +9 -0
- package/dist/cjs/utils/assertIsNotBrowser.js +10 -0
- package/dist/cjs/utils/assertIsNotProductionRuntime.js +44 -0
- package/dist/cjs/utils/assertNodeVersion.js +14 -0
- package/dist/cjs/utils/assertPathIsFilesystemAbsolute.js +20 -0
- package/dist/cjs/utils/assertRoutingType.js +30 -0
- package/dist/cjs/utils/assertSingleInstance.js +97 -0
- package/dist/cjs/utils/autoRetry.js +23 -0
- package/dist/cjs/utils/capitalizeFirstLetter.js +10 -0
- package/dist/cjs/utils/cast.js +7 -0
- package/dist/cjs/utils/checkType.js +7 -0
- package/dist/cjs/utils/compareString.js +11 -0
- package/dist/cjs/utils/createErrorWithCleanStackTrace.js +46 -0
- package/dist/cjs/utils/debug.js +109 -0
- package/dist/cjs/utils/debugGlob.js +6 -0
- package/dist/cjs/utils/deepEqual.js +11 -0
- package/dist/cjs/utils/dynamicImport.js +8 -0
- package/dist/cjs/utils/escapeRegex.js +8 -0
- package/dist/cjs/utils/filesystemPathHandling.js +19 -0
- package/dist/cjs/utils/findUserPackageJsonPath.js +24 -0
- package/dist/cjs/utils/freezePartial.js +36 -0
- package/dist/cjs/utils/getCurrentUrl.js +19 -0
- package/dist/cjs/utils/getDependencyPackageJson.js +91 -0
- package/dist/cjs/utils/getFileExtension.js +17 -0
- package/dist/cjs/utils/getFilePathAbsolute.js +70 -0
- package/dist/cjs/utils/getGlobalObject.js +11 -0
- package/dist/cjs/utils/getMostSimilar.js +69 -0
- package/dist/cjs/utils/getOutDirs.js +121 -0
- package/dist/cjs/utils/getPropAccessNotation.js +10 -0
- package/dist/cjs/utils/getRandomId.js +15 -0
- package/dist/cjs/utils/getTerminWidth.js +8 -0
- package/dist/cjs/utils/getValuePrintable.js +11 -0
- package/dist/cjs/utils/hasProp.js +48 -0
- package/dist/cjs/utils/hasPropertyGetter.js +8 -0
- package/dist/cjs/utils/humanizeTime.js +25 -0
- package/dist/cjs/utils/isBrowser.js +9 -0
- package/dist/cjs/utils/isCallable.js +7 -0
- package/dist/cjs/utils/isDev.js +32 -0
- package/dist/cjs/utils/isEquivalentError.js +18 -0
- package/dist/cjs/utils/isHtml.js +10 -0
- package/dist/cjs/utils/isNodeJS.js +17 -0
- package/dist/cjs/utils/isNotNullish.js +5 -0
- package/dist/cjs/utils/isNpmPackage.js +96 -0
- package/dist/cjs/utils/isObject.js +7 -0
- package/dist/cjs/utils/isObjectWithKeys.js +16 -0
- package/dist/cjs/utils/isPlainObject.js +18 -0
- package/dist/cjs/utils/isPromise.js +8 -0
- package/dist/cjs/utils/isReact.js +24 -0
- package/dist/cjs/utils/isScriptFile.js +53 -0
- package/dist/cjs/utils/isStemPackageName.js +14 -0
- package/dist/cjs/utils/isStringRecord.js +7 -0
- package/dist/cjs/utils/isVitest.js +7 -0
- package/dist/cjs/utils/joinEnglish.js +14 -0
- package/dist/cjs/utils/mergeCumulativeValues.js +21 -0
- package/dist/cjs/utils/nodeEnv.js +16 -0
- package/dist/cjs/utils/objectAssign.js +10 -0
- package/dist/cjs/utils/objectEntries.js +8 -0
- package/dist/cjs/utils/objectKeys.js +10 -0
- package/dist/cjs/utils/pLimit.js +135 -0
- package/dist/cjs/utils/parseUrl-extras.js +96 -0
- package/dist/cjs/utils/parseUrl.js +221 -0
- package/dist/cjs/utils/path-shim.js +15 -0
- package/dist/cjs/utils/projectInfo.js +14 -0
- package/dist/cjs/utils/removeEmptyLines.js +10 -0
- package/dist/cjs/utils/removeFileExtention.js +7 -0
- package/dist/cjs/utils/resolve.js +60 -0
- package/dist/cjs/utils/serverSideRouteTo.js +7 -0
- package/dist/cjs/utils/sleep.js +7 -0
- package/dist/cjs/utils/slice.js +36 -0
- package/dist/cjs/utils/sorter.js +60 -0
- package/dist/cjs/utils/stringifyStringArray.js +7 -0
- package/dist/cjs/utils/stripAnsi.js +22 -0
- package/dist/cjs/utils/styleFileRE.js +5 -0
- package/dist/cjs/utils/throttle.js +16 -0
- package/dist/cjs/utils/trackLogs.js +31 -0
- package/dist/cjs/utils/trimWithAnsi.js +41 -0
- package/dist/cjs/utils/truncateString.js +19 -0
- package/dist/cjs/utils/unique.js +7 -0
- package/dist/cjs/utils/urlToFile.js +36 -0
- package/dist/cjs/utils/virtual-files.js +33 -0
- package/dist/cjs/utils/viteIsSSR.js +23 -0
- package/dist/cjs/utils/warnIfErrorIsNotObject.js +24 -0
- package/dist/esm/__internal/index.d.ts +17 -0
- package/dist/esm/__internal/index.js +27 -0
- package/dist/esm/client/client-routing-runtime/createPageContext.d.ts +18 -0
- package/dist/esm/client/client-routing-runtime/createPageContext.js +35 -0
- package/dist/esm/client/client-routing-runtime/entry.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/entry.js +9 -0
- package/dist/esm/client/client-routing-runtime/getBaseServer.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/getBaseServer.js +11 -0
- package/dist/esm/client/client-routing-runtime/getPageContext/removeBuiltInOverrides.d.ts +7 -0
- package/dist/esm/client/client-routing-runtime/getPageContext/removeBuiltInOverrides.js +22 -0
- package/dist/esm/client/client-routing-runtime/getPageContext.d.ts +29 -0
- package/dist/esm/client/client-routing-runtime/getPageContext.js +240 -0
- package/dist/esm/client/client-routing-runtime/getPageId.d.ts +10 -0
- package/dist/esm/client/client-routing-runtime/getPageId.js +17 -0
- package/dist/esm/client/client-routing-runtime/history.d.ts +13 -0
- package/dist/esm/client/client-routing-runtime/history.js +71 -0
- package/dist/esm/client/client-routing-runtime/index.d.ts +18 -0
- package/dist/esm/client/client-routing-runtime/index.js +7 -0
- package/dist/esm/client/client-routing-runtime/isExternalLink.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/isExternalLink.js +4 -0
- package/dist/esm/client/client-routing-runtime/navigate.d.ts +17 -0
- package/dist/esm/client/client-routing-runtime/navigate.js +34 -0
- package/dist/esm/client/client-routing-runtime/navigationState.d.ts +5 -0
- package/dist/esm/client/client-routing-runtime/navigationState.js +14 -0
- package/dist/esm/client/client-routing-runtime/onLoad.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/onLoad.js +8 -0
- package/dist/esm/client/client-routing-runtime/pageFiles.d.ts +1 -0
- package/dist/esm/client/client-routing-runtime/pageFiles.js +4 -0
- package/dist/esm/client/client-routing-runtime/prefetch/alreadyPrefetched.d.ts +4 -0
- package/dist/esm/client/client-routing-runtime/prefetch/alreadyPrefetched.js +16 -0
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.d.ts +11 -0
- package/dist/esm/client/client-routing-runtime/prefetch/getPrefetchSettings.js +82 -0
- package/dist/esm/client/client-routing-runtime/prefetch.d.ts +15 -0
- package/dist/esm/client/client-routing-runtime/prefetch.js +89 -0
- package/dist/esm/client/client-routing-runtime/skipLink/isClientSideRoutable.d.ts +2 -0
- package/dist/esm/client/client-routing-runtime/skipLink/isClientSideRoutable.js +15 -0
- package/dist/esm/client/client-routing-runtime/skipLink.d.ts +3 -0
- package/dist/esm/client/client-routing-runtime/skipLink.js +61 -0
- package/dist/esm/client/client-routing-runtime/useClientRouter.d.ts +6 -0
- package/dist/esm/client/client-routing-runtime/useClientRouter.js +493 -0
- package/dist/esm/client/client-routing-runtime/utils.d.ts +22 -0
- package/dist/esm/client/client-routing-runtime/utils.js +28 -0
- package/dist/esm/client/node.d.ts +1 -0
- package/dist/esm/client/node.js +9 -0
- package/dist/esm/client/server-routing-runtime/entry.d.ts +1 -0
- package/dist/esm/client/server-routing-runtime/entry.js +17 -0
- package/dist/esm/client/server-routing-runtime/getPageContext.d.ts +14 -0
- package/dist/esm/client/server-routing-runtime/getPageContext.js +36 -0
- package/dist/esm/client/server-routing-runtime/index.d.ts +16 -0
- package/dist/esm/client/server-routing-runtime/index.js +2 -0
- package/dist/esm/client/server-routing-runtime/onLoad.d.ts +2 -0
- package/dist/esm/client/server-routing-runtime/onLoad.js +5 -0
- package/dist/esm/client/server-routing-runtime/pageFiles.d.ts +1 -0
- package/dist/esm/client/server-routing-runtime/pageFiles.js +4 -0
- package/dist/esm/client/server-routing-runtime/utils.d.ts +14 -0
- package/dist/esm/client/server-routing-runtime/utils.js +18 -0
- package/dist/esm/client/shared/executeOnRenderClientHook.d.ts +11 -0
- package/dist/esm/client/shared/executeOnRenderClientHook.js +63 -0
- package/dist/esm/client/shared/getPageContextProxyForUser.d.ts +11 -0
- package/dist/esm/client/shared/getPageContextProxyForUser.js +66 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.d.ts +5 -0
- package/dist/esm/client/shared/getPageContextSerializedInHtml.js +16 -0
- package/dist/esm/client/shared/loadPageFilesClientSide.d.ts +8 -0
- package/dist/esm/client/shared/loadPageFilesClientSide.js +64 -0
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.d.ts +12 -0
- package/dist/esm/client/shared/preparePageContextForUserConsumptionClientSide.js +53 -0
- package/dist/esm/node/cli/bin.d.ts +1 -0
- package/dist/esm/node/cli/bin.js +42 -0
- package/dist/esm/node/cli/index.d.ts +2 -0
- package/dist/esm/node/cli/index.js +7 -0
- package/dist/esm/node/cli/onLoad.d.ts +2 -0
- package/dist/esm/node/cli/onLoad.js +5 -0
- package/dist/esm/node/cli/utils.d.ts +2 -0
- package/dist/esm/node/cli/utils.js +5 -0
- package/dist/esm/node/client/router.d.ts +4 -0
- package/dist/esm/node/client/router.js +12 -0
- package/dist/esm/node/createPageRenderer.d.ts +13 -0
- package/dist/esm/node/createPageRenderer.js +131 -0
- package/dist/esm/node/importBuild.d.ts +1 -0
- package/dist/esm/node/importBuild.js +3 -0
- package/dist/esm/node/plugin/index.d.ts +6 -0
- package/dist/esm/node/plugin/index.js +64 -0
- package/dist/esm/node/plugin/onLoad.d.ts +2 -0
- package/dist/esm/node/plugin/onLoad.js +10 -0
- package/dist/esm/node/plugin/plugins/autoFullBuild.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/autoFullBuild.js +98 -0
- package/dist/esm/node/plugin/plugins/baseUrls.d.ts +4 -0
- package/dist/esm/node/plugin/plugins/baseUrls.js +40 -0
- package/dist/esm/node/plugin/plugins/buildConfig.d.ts +12 -0
- package/dist/esm/node/plugin/plugins/buildConfig.js +246 -0
- package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/commonConfig/assertResolveAlias.js +67 -0
- package/dist/esm/node/plugin/plugins/commonConfig.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/commonConfig.js +74 -0
- package/dist/esm/node/plugin/plugins/config/assertVikeConfig.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/config/assertVikeConfig.js +71 -0
- package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/config/findConfigVikeFromStemPackages.js +24 -0
- package/dist/esm/node/plugin/plugins/config/index.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/config/index.js +71 -0
- package/dist/esm/node/plugin/plugins/config/pickFirst.d.ts +1 -0
- package/dist/esm/node/plugin/plugins/config/pickFirst.js +3 -0
- package/dist/esm/node/plugin/plugins/config/resolveBase.d.ts +10 -0
- package/dist/esm/node/plugin/plugins/config/resolveBase.js +42 -0
- package/dist/esm/node/plugin/plugins/config/resolveExtensions.d.ts +4 -0
- package/dist/esm/node/plugin/plugins/config/resolveExtensions.js +101 -0
- package/dist/esm/node/plugin/plugins/config/stemUtils.d.ts +8 -0
- package/dist/esm/node/plugin/plugins/config/stemUtils.js +79 -0
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.d.ts +4 -0
- package/dist/esm/node/plugin/plugins/devConfig/determineFsAllowList.js +36 -0
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.d.ts +4 -0
- package/dist/esm/node/plugin/plugins/devConfig/determineOptimizeDeps.js +122 -0
- package/dist/esm/node/plugin/plugins/devConfig/index.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/devConfig/index.js +84 -0
- package/dist/esm/node/plugin/plugins/distFileNames.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/distFileNames.js +163 -0
- package/dist/esm/node/plugin/plugins/envVars.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/envVars.js +79 -0
- package/dist/esm/node/plugin/plugins/extensionsAssets.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/extensionsAssets.js +95 -0
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/extractAssetsPlugin.js +232 -0
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/extractExportNamesPlugin.js +92 -0
- package/dist/esm/node/plugin/plugins/importBuild/index.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/importBuild/index.js +48 -0
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/importUserCode/generateEagerImport.js +18 -0
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.d.ts +6 -0
- package/dist/esm/node/plugin/plugins/importUserCode/getVirtualFileImportUserCode.js +236 -0
- package/dist/esm/node/plugin/plugins/importUserCode/index.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/importUserCode/index.js +134 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/debug.d.ts +8 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/debug.js +2 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.d.ts +7 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getFilePathToShowToUser.js +7 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.d.ts +53 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/configDefinitionsBuiltIn.js +97 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.d.ts +31 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig/filesystemRouting.js +174 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.d.ts +15 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVikeConfig.js +1114 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/getVirtualFilePageConfigValuesAll.js +73 -0
- 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 +154 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.d.ts +5 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/helpers.js +31 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/isConfigEnvMatch.js +10 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.d.ts +31 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/replaceImportStatements.js +148 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.d.ts +12 -0
- package/dist/esm/node/plugin/plugins/importUserCode/v1-design/transpileAndExecuteFile.js +277 -0
- package/dist/esm/node/plugin/plugins/manifest.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/manifest.js +53 -0
- package/dist/esm/node/plugin/plugins/packageJsonFile.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/packageJsonFile.js +42 -0
- package/dist/esm/node/plugin/plugins/previewConfig.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/previewConfig.js +55 -0
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/removeRequireHookPlugin.js +15 -0
- package/dist/esm/node/plugin/plugins/setGlobalContext.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/setGlobalContext.js +28 -0
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.d.ts +3 -0
- package/dist/esm/node/plugin/plugins/suppressRollupWarning.js +48 -0
- package/dist/esm/node/plugin/shared/addSsrMiddleware.d.ts +4 -0
- package/dist/esm/node/plugin/shared/addSsrMiddleware.js +38 -0
- package/dist/esm/node/plugin/shared/findPageFiles.d.ts +4 -0
- package/dist/esm/node/plugin/shared/findPageFiles.js +18 -0
- package/dist/esm/node/plugin/shared/getConfigValueSource.d.ts +7 -0
- package/dist/esm/node/plugin/shared/getConfigValueSource.js +22 -0
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.d.ts +11 -0
- package/dist/esm/node/plugin/shared/getHttpRequestAsyncStore.js +103 -0
- package/dist/esm/node/plugin/shared/isAsset.d.ts +2 -0
- package/dist/esm/node/plugin/shared/isAsset.js +38 -0
- package/dist/esm/node/plugin/shared/isErrorDebug.d.ts +2 -0
- package/dist/esm/node/plugin/shared/isErrorDebug.js +5 -0
- package/dist/esm/node/plugin/shared/isViteCliCall.d.ts +10 -0
- package/dist/esm/node/plugin/shared/isViteCliCall.js +81 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.d.ts +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelReact.js +12 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.d.ts +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errBabelSolid.js +12 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.d.ts +33 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errEsbuild.js +35 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx.d.ts +47 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errMdx.js +23 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.d.ts +30 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errPostcss.js +27 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.d.ts +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwc.js +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.d.ts +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errSwcBig.js +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.d.ts +30 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueCss.js +26 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.d.ts +14 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueHtml.js +10 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.d.ts +16 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet/fixture-errors/errVueJavascript.js +12 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.d.ts +15 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/errorWithCodeSnippet.js +163 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/log.d.ts +14 -0
- package/dist/esm/node/plugin/shared/loggerNotProd/log.js +108 -0
- package/dist/esm/node/plugin/shared/loggerNotProd.d.ts +39 -0
- package/dist/esm/node/plugin/shared/loggerNotProd.js +218 -0
- package/dist/esm/node/plugin/shared/loggerVite/removeSuperfluousViteLog.d.ts +6 -0
- package/dist/esm/node/plugin/shared/loggerVite/removeSuperfluousViteLog.js +22 -0
- package/dist/esm/node/plugin/shared/loggerVite.d.ts +3 -0
- package/dist/esm/node/plugin/shared/loggerVite.js +58 -0
- package/dist/esm/node/plugin/shared/parseEsModule.d.ts +11 -0
- package/dist/esm/node/plugin/shared/parseEsModule.js +31 -0
- package/dist/esm/node/plugin/shared/removeSourceMap.d.ts +7 -0
- package/dist/esm/node/plugin/shared/removeSourceMap.js +9 -0
- package/dist/esm/node/plugin/shared/rollupIsEsm.d.ts +3 -0
- package/dist/esm/node/plugin/shared/rollupIsEsm.js +12 -0
- package/dist/esm/node/plugin/utils.d.ts +19 -0
- package/dist/esm/node/plugin/utils.js +25 -0
- package/dist/esm/node/prerender/index.d.ts +1 -0
- package/dist/esm/node/prerender/index.js +1 -0
- package/dist/esm/node/prerender/runPrerender.d.ts +53 -0
- package/dist/esm/node/prerender/runPrerender.js +678 -0
- package/dist/esm/node/prerender/utils.d.ts +13 -0
- package/dist/esm/node/prerender/utils.js +15 -0
- package/dist/esm/node/runtime/globalContext/loadImportBuild.d.ts +18 -0
- package/dist/esm/node/runtime/globalContext/loadImportBuild.js +27 -0
- package/dist/esm/node/runtime/globalContext.d.ts +52 -0
- package/dist/esm/node/runtime/globalContext.js +157 -0
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.d.ts +27 -0
- package/dist/esm/node/runtime/html/injectAssets/getHtmlTags.js +155 -0
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScripts.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets/getViteDevScripts.js +22 -0
- package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.d.ts +7 -0
- package/dist/esm/node/runtime/html/injectAssets/inferHtmlTags.js +49 -0
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets/injectAssets__public.js +29 -0
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.d.ts +10 -0
- package/dist/esm/node/runtime/html/injectAssets/injectHtmlTags.js +155 -0
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets/mergeScriptTags.js +68 -0
- package/dist/esm/node/runtime/html/injectAssets/sanitizeJson.d.ts +2 -0
- package/dist/esm/node/runtime/html/injectAssets/sanitizeJson.js +6 -0
- package/dist/esm/node/runtime/html/injectAssets.d.ts +34 -0
- package/dist/esm/node/runtime/html/injectAssets.js +73 -0
- package/dist/esm/node/runtime/html/renderHtml.d.ts +33 -0
- package/dist/esm/node/runtime/html/renderHtml.js +231 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.d.ts +22 -0
- package/dist/esm/node/runtime/html/serializePageContextClientSide.js +111 -0
- package/dist/esm/node/runtime/html/stream/react-streaming.d.ts +25 -0
- package/dist/esm/node/runtime/html/stream/react-streaming.js +33 -0
- package/dist/esm/node/runtime/html/stream.d.ts +84 -0
- package/dist/esm/node/runtime/html/stream.js +745 -0
- package/dist/esm/node/runtime/index-common.d.ts +10 -0
- package/dist/esm/node/runtime/index-common.js +11 -0
- package/dist/esm/node/runtime/index-deprecated.d.ts +17 -0
- package/dist/esm/node/runtime/index-deprecated.js +40 -0
- package/dist/esm/node/runtime/index.d.ts +1 -0
- package/dist/esm/node/runtime/index.js +3 -0
- package/dist/esm/node/runtime/onLoad.d.ts +2 -0
- package/dist/esm/node/runtime/onLoad.js +9 -0
- package/dist/esm/node/runtime/page-files/setup.d.ts +1 -0
- package/dist/esm/node/runtime/page-files/setup.js +21 -0
- package/dist/esm/node/runtime/renderPage/analyzePage.d.ts +5 -0
- package/dist/esm/node/runtime/renderPage/analyzePage.js +66 -0
- package/dist/esm/node/runtime/renderPage/assertArguments.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/assertArguments.js +37 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/assertNoInfiniteHttpRedirect.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject/assertNoInfiniteHttpRedirect.js +38 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject.d.ts +28 -0
- package/dist/esm/node/runtime/renderPage/createHttpResponseObject.js +65 -0
- package/dist/esm/node/runtime/renderPage/debugPageFiles.d.ts +24 -0
- package/dist/esm/node/runtime/renderPage/debugPageFiles.js +47 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderHook.d.ts +7 -0
- package/dist/esm/node/runtime/renderPage/executeOnBeforeRenderHook.js +20 -0
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.d.ts +25 -0
- package/dist/esm/node/runtime/renderPage/executeOnRenderHtmlHook.js +133 -0
- package/dist/esm/node/runtime/renderPage/getEarlyHints.d.ts +7 -0
- package/dist/esm/node/runtime/renderPage/getEarlyHints.js +43 -0
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.d.ts +31 -0
- package/dist/esm/node/runtime/renderPage/getHttpResponseBody.js +125 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/assertClientEntryId.js +22 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.d.ts +6 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/getManifestEntry.js +125 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.d.ts +4 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsDev.js +72 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.d.ts +4 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/retrieveAssetsProd.js +58 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.d.ts +3 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets/sortPageAssetsForEarlyHintsHeader.js +30 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets.d.ts +19 -0
- package/dist/esm/node/runtime/renderPage/getPageAssets.js +130 -0
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.d.ts +11 -0
- package/dist/esm/node/runtime/renderPage/handleErrorWithoutErrorPage.js +37 -0
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.d.ts +5 -0
- package/dist/esm/node/runtime/renderPage/handlePageContextRequestUrl.js +30 -0
- package/dist/esm/node/runtime/renderPage/inferMediaType.d.ts +7 -0
- package/dist/esm/node/runtime/renderPage/inferMediaType.js +38 -0
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/isConfigInvalid.js +4 -0
- package/dist/esm/node/runtime/renderPage/isNewError.d.ts +4 -0
- package/dist/esm/node/runtime/renderPage/isNewError.js +20 -0
- package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.d.ts +29 -0
- package/dist/esm/node/runtime/renderPage/loadPageFilesServerSide.js +97 -0
- package/dist/esm/node/runtime/renderPage/log404/index.d.ts +10 -0
- package/dist/esm/node/runtime/renderPage/log404/index.js +138 -0
- package/dist/esm/node/runtime/renderPage/loggerProd.d.ts +2 -0
- package/dist/esm/node/runtime/renderPage/loggerProd.js +17 -0
- package/dist/esm/node/runtime/renderPage/loggerRuntime.d.ts +5 -0
- package/dist/esm/node/runtime/renderPage/loggerRuntime.js +15 -0
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.d.ts +26 -0
- package/dist/esm/node/runtime/renderPage/preparePageContextForUserConsumptionServerSide.js +16 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.d.ts +265 -0
- package/dist/esm/node/runtime/renderPage/renderPageAlreadyRouted.js +180 -0
- package/dist/esm/node/runtime/renderPage.d.ts +17 -0
- package/dist/esm/node/runtime/renderPage.js +399 -0
- package/dist/esm/node/runtime/utils.d.ts +52 -0
- package/dist/esm/node/runtime/utils.js +55 -0
- package/dist/esm/node/shared/ViteManifest.d.ts +13 -0
- package/dist/esm/node/shared/ViteManifest.js +1 -0
- package/dist/esm/node/shared/assertPluginManifest.d.ts +14 -0
- package/dist/esm/node/shared/assertPluginManifest.js +21 -0
- package/dist/esm/node/shared/assertRuntimeManifest.d.ts +11 -0
- package/dist/esm/node/shared/assertRuntimeManifest.js +16 -0
- package/dist/esm/node/shared/extractAssetsQuery.d.ts +4 -0
- package/dist/esm/node/shared/extractAssetsQuery.js +26 -0
- package/dist/esm/node/shared/getClientEntryFilePath.d.ts +3 -0
- package/dist/esm/node/shared/getClientEntryFilePath.js +15 -0
- package/dist/esm/node/shared/getConfigVike.d.ts +3 -0
- package/dist/esm/node/shared/getConfigVike.js +5 -0
- package/dist/esm/node/shared/utils.d.ts +15 -0
- package/dist/esm/node/shared/utils.js +17 -0
- package/dist/esm/node/shared/virtual-files/virtualFileImportUserCode.d.ts +11 -0
- package/dist/esm/node/shared/virtual-files/virtualFileImportUserCode.js +24 -0
- package/dist/esm/node/shared/virtual-files/virtualFilePageConfigValuesAll.d.ts +9 -0
- package/dist/esm/node/shared/virtual-files/virtualFilePageConfigValuesAll.js +36 -0
- package/dist/esm/shared/ConfigVike.d.ts +128 -0
- package/dist/esm/shared/ConfigVike.js +1 -0
- package/dist/esm/shared/RenderErrorPage.d.ts +1 -0
- package/dist/esm/shared/RenderErrorPage.js +2 -0
- package/dist/esm/shared/VikeNamespace.d.ts +43 -0
- package/dist/esm/shared/VikeNamespace.js +1 -0
- package/dist/esm/shared/abort.d.ts +1 -0
- package/dist/esm/shared/abort.js +11 -0
- package/dist/esm/shared/addIs404ToPageProps.d.ts +7 -0
- package/dist/esm/shared/addIs404ToPageProps.js +23 -0
- package/dist/esm/shared/addUrlComputedProps.d.ts +62 -0
- package/dist/esm/shared/addUrlComputedProps.js +108 -0
- package/dist/esm/shared/assertHookReturnedObject.d.ts +4 -0
- package/dist/esm/shared/assertHookReturnedObject.js +19 -0
- package/dist/esm/shared/assertOnBeforeRenderHookReturn.d.ts +4 -0
- package/dist/esm/shared/assertOnBeforeRenderHookReturn.js +16 -0
- package/dist/esm/shared/assertPageContextProvidedByUser.d.ts +5 -0
- package/dist/esm/shared/assertPageContextProvidedByUser.js +15 -0
- package/dist/esm/shared/assertPageFilePath.d.ts +2 -0
- package/dist/esm/shared/assertPageFilePath.js +9 -0
- package/dist/esm/shared/determinePageIdOld.d.ts +2 -0
- package/dist/esm/shared/determinePageIdOld.js +9 -0
- package/dist/esm/shared/error-page.d.ts +8 -0
- package/dist/esm/shared/error-page.js +38 -0
- package/dist/esm/shared/getPageContextRequestUrl.d.ts +6 -0
- package/dist/esm/shared/getPageContextRequestUrl.js +13 -0
- package/dist/esm/shared/getPageFiles/analyzeClientSide.d.ts +7 -0
- package/dist/esm/shared/getPageFiles/analyzeClientSide.js +19 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/ClientDependency.d.ts +6 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/ClientDependency.js +1 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.d.ts +10 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/analyzeExports.js +48 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.d.ts +14 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/determineClientEntry.js +27 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/getExportNames.d.ts +3 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide/getExportNames.js +13 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide.d.ts +17 -0
- package/dist/esm/shared/getPageFiles/analyzePageClientSide.js +58 -0
- package/dist/esm/shared/getPageFiles/analyzePageServerSide.d.ts +5 -0
- package/dist/esm/shared/getPageFiles/analyzePageServerSide.js +20 -0
- package/dist/esm/shared/getPageFiles/assertExports.d.ts +7 -0
- package/dist/esm/shared/getPageFiles/assertExports.js +21 -0
- package/dist/esm/shared/getPageFiles/assertPageConfigs.d.ts +5 -0
- package/dist/esm/shared/getPageFiles/assertPageConfigs.js +16 -0
- package/dist/esm/shared/getPageFiles/fileTypes.d.ts +8 -0
- package/dist/esm/shared/getPageFiles/fileTypes.js +50 -0
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.d.ts +5 -0
- package/dist/esm/shared/getPageFiles/getAllPageIdFiles.js +103 -0
- package/dist/esm/shared/getPageFiles/getExports.d.ts +39 -0
- package/dist/esm/shared/getPageFiles/getExports.js +140 -0
- package/dist/esm/shared/getPageFiles/getPageFileObject.d.ts +18 -0
- package/dist/esm/shared/getPageFiles/getPageFileObject.js +59 -0
- package/dist/esm/shared/getPageFiles/parseGlobResults.d.ts +8 -0
- package/dist/esm/shared/getPageFiles/parseGlobResults.js +124 -0
- package/dist/esm/shared/getPageFiles/setPageFiles.d.ts +13 -0
- package/dist/esm/shared/getPageFiles/setPageFiles.js +44 -0
- package/dist/esm/shared/getPageFiles.d.ts +9 -0
- package/dist/esm/shared/getPageFiles.js +8 -0
- package/dist/esm/shared/hooks/executeHook.d.ts +5 -0
- package/dist/esm/shared/hooks/executeHook.js +71 -0
- package/dist/esm/shared/hooks/getHook.d.ts +24 -0
- package/dist/esm/shared/hooks/getHook.js +26 -0
- package/dist/esm/shared/notSerializable.d.ts +1 -0
- package/dist/esm/shared/notSerializable.js +2 -0
- package/dist/esm/shared/page-configs/Config/PageContextConfig.d.ts +8 -0
- package/dist/esm/shared/page-configs/Config/PageContextConfig.js +1 -0
- package/dist/esm/shared/page-configs/Config/helpers.d.ts +10 -0
- package/dist/esm/shared/page-configs/Config/helpers.js +1 -0
- package/dist/esm/shared/page-configs/Config.d.ts +131 -0
- package/dist/esm/shared/page-configs/Config.js +1 -0
- package/dist/esm/shared/page-configs/PageConfig.d.ts +97 -0
- package/dist/esm/shared/page-configs/PageConfig.js +1 -0
- package/dist/esm/shared/page-configs/findPageConfig.d.ts +3 -0
- package/dist/esm/shared/page-configs/findPageConfig.js +8 -0
- package/dist/esm/shared/page-configs/getExportPath.d.ts +2 -0
- package/dist/esm/shared/page-configs/getExportPath.js +28 -0
- package/dist/esm/shared/page-configs/loadPageCode.d.ts +3 -0
- package/dist/esm/shared/page-configs/loadPageCode.js +57 -0
- package/dist/esm/shared/page-configs/utils.d.ts +28 -0
- package/dist/esm/shared/page-configs/utils.js +74 -0
- package/dist/esm/shared/route/abort.d.ts +103 -0
- package/dist/esm/shared/route/abort.js +155 -0
- package/dist/esm/shared/route/debug.d.ts +3 -0
- package/dist/esm/shared/route/debug.js +11 -0
- package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.d.ts +7 -0
- package/dist/esm/shared/route/deduceRouteStringFromFilesystemPath.js +50 -0
- package/dist/esm/shared/route/executeGuardHook.d.ts +8 -0
- package/dist/esm/shared/route/executeGuardHook.js +37 -0
- package/dist/esm/shared/route/executeOnBeforeRouteHook.d.ts +17 -0
- package/dist/esm/shared/route/executeOnBeforeRouteHook.js +50 -0
- package/dist/esm/shared/route/index.d.ts +31 -0
- package/dist/esm/shared/route/index.js +113 -0
- package/dist/esm/shared/route/loadPageRoutes.d.ts +29 -0
- package/dist/esm/shared/route/loadPageRoutes.js +194 -0
- package/dist/esm/shared/route/resolvePrecedence.d.ts +8 -0
- package/dist/esm/shared/route/resolvePrecedence.js +69 -0
- package/dist/esm/shared/route/resolveRedirects.d.ts +4 -0
- package/dist/esm/shared/route/resolveRedirects.js +50 -0
- package/dist/esm/shared/route/resolveRoute.d.ts +5 -0
- package/dist/esm/shared/route/resolveRoute.js +15 -0
- package/dist/esm/shared/route/resolveRouteFunction.d.ts +14 -0
- package/dist/esm/shared/route/resolveRouteFunction.js +64 -0
- package/dist/esm/shared/route/resolveRouteString.d.ts +17 -0
- package/dist/esm/shared/route/resolveRouteString.js +95 -0
- package/dist/esm/shared/route/routing.d.ts +1 -0
- package/dist/esm/shared/route/routing.js +5 -0
- package/dist/esm/shared/route/utils.d.ts +18 -0
- package/dist/esm/shared/route/utils.js +27 -0
- package/dist/esm/shared/sortPageContext.d.ts +2 -0
- package/dist/esm/shared/sortPageContext.js +14 -0
- package/dist/esm/shared/types.d.ts +127 -0
- package/dist/esm/shared/types.js +1 -0
- package/dist/esm/shared/utils.d.ts +23 -0
- package/dist/esm/shared/utils.js +27 -0
- package/dist/esm/types/index-dreprecated.d.ts +51 -0
- package/dist/esm/types/index-dreprecated.js +2 -0
- package/dist/esm/types/index.d.ts +47 -0
- package/dist/esm/types/index.js +1 -0
- package/dist/esm/utils/PromiseType.d.ts +1 -0
- package/dist/esm/utils/PromiseType.js +1 -0
- package/dist/esm/utils/arrayIncludes.d.ts +1 -0
- package/dist/esm/utils/arrayIncludes.js +3 -0
- package/dist/esm/utils/assert.d.ts +29 -0
- package/dist/esm/utils/assert.js +188 -0
- package/dist/esm/utils/assertDefaultExport.d.ts +8 -0
- package/dist/esm/utils/assertDefaultExport.js +47 -0
- package/dist/esm/utils/assertIsBrowser.d.ts +2 -0
- package/dist/esm/utils/assertIsBrowser.js +6 -0
- package/dist/esm/utils/assertIsNotBrowser.d.ts +3 -0
- package/dist/esm/utils/assertIsNotBrowser.js +7 -0
- package/dist/esm/utils/assertIsNotProductionRuntime.d.ts +10 -0
- package/dist/esm/utils/assertIsNotProductionRuntime.js +41 -0
- package/dist/esm/utils/assertNodeVersion.d.ts +2 -0
- package/dist/esm/utils/assertNodeVersion.js +11 -0
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.d.ts +3 -0
- package/dist/esm/utils/assertPathIsFilesystemAbsolute.js +14 -0
- package/dist/esm/utils/assertRoutingType.d.ts +6 -0
- package/dist/esm/utils/assertRoutingType.js +24 -0
- package/dist/esm/utils/assertSingleInstance.d.ts +6 -0
- package/dist/esm/utils/assertSingleInstance.js +94 -0
- package/dist/esm/utils/autoRetry.d.ts +2 -0
- package/dist/esm/utils/autoRetry.js +20 -0
- package/dist/esm/utils/capitalizeFirstLetter.d.ts +2 -0
- package/dist/esm/utils/capitalizeFirstLetter.js +7 -0
- package/dist/esm/utils/cast.d.ts +4 -0
- package/dist/esm/utils/cast.js +4 -0
- package/dist/esm/utils/checkType.d.ts +2 -0
- package/dist/esm/utils/checkType.js +2 -0
- package/dist/esm/utils/compareString.d.ts +2 -0
- package/dist/esm/utils/compareString.js +8 -0
- package/dist/esm/utils/createErrorWithCleanStackTrace.d.ts +2 -0
- package/dist/esm/utils/createErrorWithCleanStackTrace.js +43 -0
- package/dist/esm/utils/debug.d.ts +15 -0
- package/dist/esm/utils/debug.js +106 -0
- package/dist/esm/utils/debugGlob.d.ts +8 -0
- package/dist/esm/utils/debugGlob.js +3 -0
- package/dist/esm/utils/deepEqual.d.ts +1 -0
- package/dist/esm/utils/deepEqual.js +7 -0
- package/dist/esm/utils/dynamicImport.d.ts +2 -0
- package/dist/esm/utils/dynamicImport.js +4 -0
- package/dist/esm/utils/escapeRegex.d.ts +1 -0
- package/dist/esm/utils/escapeRegex.js +4 -0
- package/dist/esm/utils/filesystemPathHandling.d.ts +4 -0
- package/dist/esm/utils/filesystemPathHandling.js +16 -0
- package/dist/esm/utils/findUserPackageJsonPath.d.ts +2 -0
- package/dist/esm/utils/findUserPackageJsonPath.js +18 -0
- package/dist/esm/utils/freezePartial.d.ts +2 -0
- package/dist/esm/utils/freezePartial.js +30 -0
- package/dist/esm/utils/getCurrentUrl.d.ts +4 -0
- package/dist/esm/utils/getCurrentUrl.js +16 -0
- package/dist/esm/utils/getDependencyPackageJson.d.ts +6 -0
- package/dist/esm/utils/getDependencyPackageJson.js +85 -0
- package/dist/esm/utils/getFileExtension.d.ts +2 -0
- package/dist/esm/utils/getFileExtension.js +14 -0
- package/dist/esm/utils/getFilePathAbsolute.d.ts +5 -0
- package/dist/esm/utils/getFilePathAbsolute.js +64 -0
- package/dist/esm/utils/getGlobalObject.d.ts +4 -0
- package/dist/esm/utils/getGlobalObject.js +7 -0
- package/dist/esm/utils/getMostSimilar.d.ts +2 -0
- package/dist/esm/utils/getMostSimilar.js +66 -0
- package/dist/esm/utils/getOutDirs.d.ts +16 -0
- package/dist/esm/utils/getOutDirs.js +115 -0
- package/dist/esm/utils/getPropAccessNotation.d.ts +2 -0
- package/dist/esm/utils/getPropAccessNotation.js +7 -0
- package/dist/esm/utils/getRandomId.d.ts +2 -0
- package/dist/esm/utils/getRandomId.js +12 -0
- package/dist/esm/utils/getTerminWidth.d.ts +1 -0
- package/dist/esm/utils/getTerminWidth.js +4 -0
- package/dist/esm/utils/getValuePrintable.d.ts +1 -0
- package/dist/esm/utils/getValuePrintable.js +7 -0
- package/dist/esm/utils/hasProp.d.ts +14 -0
- package/dist/esm/utils/hasProp.js +45 -0
- package/dist/esm/utils/hasPropertyGetter.d.ts +1 -0
- package/dist/esm/utils/hasPropertyGetter.js +4 -0
- package/dist/esm/utils/humanizeTime.d.ts +2 -0
- package/dist/esm/utils/humanizeTime.js +22 -0
- package/dist/esm/utils/isBrowser.d.ts +1 -0
- package/dist/esm/utils/isBrowser.js +5 -0
- package/dist/esm/utils/isCallable.d.ts +1 -0
- package/dist/esm/utils/isCallable.js +3 -0
- package/dist/esm/utils/isDev.d.ts +7 -0
- package/dist/esm/utils/isDev.js +29 -0
- package/dist/esm/utils/isEquivalentError.d.ts +2 -0
- package/dist/esm/utils/isEquivalentError.js +15 -0
- package/dist/esm/utils/isHtml.d.ts +2 -0
- package/dist/esm/utils/isHtml.js +7 -0
- package/dist/esm/utils/isNodeJS.d.ts +1 -0
- package/dist/esm/utils/isNodeJS.js +13 -0
- package/dist/esm/utils/isNotNullish.d.ts +1 -0
- package/dist/esm/utils/isNotNullish.js +1 -0
- package/dist/esm/utils/isNpmPackage.d.ts +17 -0
- package/dist/esm/utils/isNpmPackage.js +94 -0
- package/dist/esm/utils/isObject.d.ts +1 -0
- package/dist/esm/utils/isObject.js +3 -0
- package/dist/esm/utils/isObjectWithKeys.d.ts +4 -0
- package/dist/esm/utils/isObjectWithKeys.js +13 -0
- package/dist/esm/utils/isPlainObject.d.ts +3 -0
- package/dist/esm/utils/isPlainObject.js +15 -0
- package/dist/esm/utils/isPromise.d.ts +1 -0
- package/dist/esm/utils/isPromise.js +4 -0
- package/dist/esm/utils/isReact.d.ts +1 -0
- package/dist/esm/utils/isReact.js +20 -0
- package/dist/esm/utils/isScriptFile.d.ts +8 -0
- package/dist/esm/utils/isScriptFile.js +50 -0
- package/dist/esm/utils/isStemPackageName.d.ts +1 -0
- package/dist/esm/utils/isStemPackageName.js +10 -0
- package/dist/esm/utils/isStringRecord.d.ts +1 -0
- package/dist/esm/utils/isStringRecord.js +3 -0
- package/dist/esm/utils/isVitest.d.ts +1 -0
- package/dist/esm/utils/isVitest.js +3 -0
- package/dist/esm/utils/joinEnglish.d.ts +2 -0
- package/dist/esm/utils/joinEnglish.js +11 -0
- package/dist/esm/utils/mergeCumulativeValues.d.ts +2 -0
- package/dist/esm/utils/mergeCumulativeValues.js +18 -0
- package/dist/esm/utils/nodeEnv.d.ts +4 -0
- package/dist/esm/utils/nodeEnv.js +13 -0
- package/dist/esm/utils/objectAssign.d.ts +2 -0
- package/dist/esm/utils/objectAssign.js +7 -0
- package/dist/esm/utils/objectEntries.d.ts +4 -0
- package/dist/esm/utils/objectEntries.js +5 -0
- package/dist/esm/utils/objectKeys.d.ts +2 -0
- package/dist/esm/utils/objectKeys.js +6 -0
- package/dist/esm/utils/pLimit.d.ts +14 -0
- package/dist/esm/utils/pLimit.js +131 -0
- package/dist/esm/utils/parseUrl-extras.d.ts +17 -0
- package/dist/esm/utils/parseUrl-extras.js +93 -0
- package/dist/esm/utils/parseUrl.d.ts +22 -0
- package/dist/esm/utils/parseUrl.js +216 -0
- package/dist/esm/utils/path-shim.d.ts +2 -0
- package/dist/esm/utils/path-shim.js +12 -0
- package/dist/esm/utils/projectInfo.d.ts +11 -0
- package/dist/esm/utils/projectInfo.js +11 -0
- package/dist/esm/utils/removeEmptyLines.d.ts +1 -0
- package/dist/esm/utils/removeEmptyLines.js +6 -0
- package/dist/esm/utils/removeFileExtention.d.ts +1 -0
- package/dist/esm/utils/removeFileExtention.js +3 -0
- package/dist/esm/utils/resolve.d.ts +2 -0
- package/dist/esm/utils/resolve.js +57 -0
- package/dist/esm/utils/serverSideRouteTo.d.ts +2 -0
- package/dist/esm/utils/serverSideRouteTo.js +4 -0
- package/dist/esm/utils/sleep.d.ts +1 -0
- package/dist/esm/utils/sleep.js +3 -0
- package/dist/esm/utils/slice.d.ts +3 -0
- package/dist/esm/utils/slice.js +33 -0
- package/dist/esm/utils/sorter.d.ts +8 -0
- package/dist/esm/utils/sorter.js +57 -0
- package/dist/esm/utils/stringifyStringArray.d.ts +2 -0
- package/dist/esm/utils/stringifyStringArray.js +4 -0
- package/dist/esm/utils/stripAnsi.d.ts +2 -0
- package/dist/esm/utils/stripAnsi.js +19 -0
- package/dist/esm/utils/styleFileRE.d.ts +1 -0
- package/dist/esm/utils/styleFileRE.js +2 -0
- package/dist/esm/utils/throttle.d.ts +2 -0
- package/dist/esm/utils/throttle.js +13 -0
- package/dist/esm/utils/trackLogs.d.ts +1 -0
- package/dist/esm/utils/trackLogs.js +26 -0
- package/dist/esm/utils/trimWithAnsi.d.ts +4 -0
- package/dist/esm/utils/trimWithAnsi.js +38 -0
- package/dist/esm/utils/truncateString.d.ts +1 -0
- package/dist/esm/utils/truncateString.js +15 -0
- package/dist/esm/utils/unique.d.ts +2 -0
- package/dist/esm/utils/unique.js +4 -0
- package/dist/esm/utils/urlToFile.d.ts +4 -0
- package/dist/esm/utils/urlToFile.js +33 -0
- package/dist/esm/utils/virtual-files.d.ts +6 -0
- package/dist/esm/utils/virtual-files.js +30 -0
- package/dist/esm/utils/viteIsSSR.d.ts +11 -0
- package/dist/esm/utils/viteIsSSR.js +20 -0
- package/dist/esm/utils/warnIfErrorIsNotObject.d.ts +2 -0
- package/dist/esm/utils/warnIfErrorIsNotObject.js +18 -0
- package/node/cli/bin-entry.js +3 -0
- package/package.json +198 -1
- package/plugin.js +2 -0
- package/prerender.js +2 -0
- package/readme.md +3 -1
- package/routing.js +2 -0
- package/server.js +2 -0
|
@@ -0,0 +1,1120 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isVikeConfigFile = exports.vikeConfigDependencies = exports.reloadVikeConfig = exports.getVikeConfig = void 0;
|
|
7
|
+
const utils_js_1 = require("../../../utils.js");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const configDefinitionsBuiltIn_js_1 = require("./getVikeConfig/configDefinitionsBuiltIn.js");
|
|
10
|
+
const fast_glob_1 = __importDefault(require("fast-glob"));
|
|
11
|
+
const filesystemRouting_js_1 = require("./getVikeConfig/filesystemRouting.js");
|
|
12
|
+
const transpileAndExecuteFile_js_1 = require("./transpileAndExecuteFile.js");
|
|
13
|
+
const replaceImportStatements_js_1 = require("./replaceImportStatements.js");
|
|
14
|
+
const isConfigInvalid_js_1 = require("../../../../runtime/renderPage/isConfigInvalid.js");
|
|
15
|
+
const globalContext_js_1 = require("../../../../runtime/globalContext.js");
|
|
16
|
+
const loggerNotProd_js_1 = require("../../../shared/loggerNotProd.js");
|
|
17
|
+
const removeSuperfluousViteLog_js_1 = require("../../../shared/loggerVite/removeSuperfluousViteLog.js");
|
|
18
|
+
const getFilePathToShowToUser_js_1 = require("./getFilePathToShowToUser.js");
|
|
19
|
+
const picocolors_1 = __importDefault(require("@brillout/picocolors"));
|
|
20
|
+
const utils_js_2 = require("../../../../../shared/page-configs/utils.js");
|
|
21
|
+
(0, utils_js_1.assertIsNotProductionRuntime)();
|
|
22
|
+
let devServerIsCorrupt = false;
|
|
23
|
+
let wasConfigInvalid = null;
|
|
24
|
+
let vikeConfigPromise = null;
|
|
25
|
+
const vikeConfigDependencies = new Set();
|
|
26
|
+
exports.vikeConfigDependencies = vikeConfigDependencies;
|
|
27
|
+
const codeFilesEnv = new Map();
|
|
28
|
+
function reloadVikeConfig(userRootDir, extensions) {
|
|
29
|
+
vikeConfigDependencies.clear();
|
|
30
|
+
codeFilesEnv.clear();
|
|
31
|
+
vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, true, extensions, true);
|
|
32
|
+
handleReloadSideEffects();
|
|
33
|
+
}
|
|
34
|
+
exports.reloadVikeConfig = reloadVikeConfig;
|
|
35
|
+
async function handleReloadSideEffects() {
|
|
36
|
+
wasConfigInvalid = isConfigInvalid_js_1.isConfigInvalid;
|
|
37
|
+
const vikeConfigPromisePrevious = vikeConfigPromise;
|
|
38
|
+
try {
|
|
39
|
+
await vikeConfigPromise;
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
// handleReloadSideEffects() is only called in dev.
|
|
43
|
+
// In dev, if loadVikeConfig_withErrorHandling() throws an error, then it's a vike bug.
|
|
44
|
+
console.error(err);
|
|
45
|
+
(0, utils_js_1.assert)(false);
|
|
46
|
+
}
|
|
47
|
+
if (vikeConfigPromise !== vikeConfigPromisePrevious) {
|
|
48
|
+
// Let the next handleReloadSideEffects() call handle side effects
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (!isConfigInvalid_js_1.isConfigInvalid) {
|
|
52
|
+
if (wasConfigInvalid) {
|
|
53
|
+
wasConfigInvalid = false;
|
|
54
|
+
(0, loggerNotProd_js_1.logConfigErrorRecover)();
|
|
55
|
+
}
|
|
56
|
+
if (devServerIsCorrupt) {
|
|
57
|
+
devServerIsCorrupt = false;
|
|
58
|
+
const viteDevServer = (0, globalContext_js_1.getViteDevServer)();
|
|
59
|
+
(0, utils_js_1.assert)(viteDevServer);
|
|
60
|
+
(0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_enable)();
|
|
61
|
+
await viteDevServer.restart(true);
|
|
62
|
+
(0, removeSuperfluousViteLog_js_1.removeSuperfluousViteLog_disable)();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
async function getVikeConfig(userRootDir, isDev, extensions, tolerateInvalidConfig = false) {
|
|
67
|
+
if (!vikeConfigPromise) {
|
|
68
|
+
vikeConfigPromise = loadVikeConfig_withErrorHandling(userRootDir, isDev, extensions, tolerateInvalidConfig);
|
|
69
|
+
}
|
|
70
|
+
return await vikeConfigPromise;
|
|
71
|
+
}
|
|
72
|
+
exports.getVikeConfig = getVikeConfig;
|
|
73
|
+
async function loadInterfaceFiles(userRootDir, isDev, extensions) {
|
|
74
|
+
const plusFiles = await findPlusFiles(userRootDir, isDev, extensions);
|
|
75
|
+
const configFiles = [];
|
|
76
|
+
const valueFiles = [];
|
|
77
|
+
plusFiles.forEach((f) => {
|
|
78
|
+
if (getConfigName(f.filePathRelativeToUserRootDir) === 'config') {
|
|
79
|
+
configFiles.push(f);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
valueFiles.push(f);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
let interfaceFilesByLocationId = {};
|
|
86
|
+
// Config files
|
|
87
|
+
await Promise.all(configFiles.map(async ({ filePathAbsolute, filePathRelativeToUserRootDir }) => {
|
|
88
|
+
const configFilePath = {
|
|
89
|
+
filePathAbsolute: filePathAbsolute,
|
|
90
|
+
filePathRelativeToUserRootDir: filePathRelativeToUserRootDir
|
|
91
|
+
};
|
|
92
|
+
const { configFile, extendsConfigs } = await loadConfigFile(configFilePath, userRootDir, []);
|
|
93
|
+
const interfaceFile = getInterfaceFileFromConfigFile(configFile, false);
|
|
94
|
+
const locationId = (0, filesystemRouting_js_1.getLocationId)(filePathRelativeToUserRootDir);
|
|
95
|
+
interfaceFilesByLocationId[locationId] = interfaceFilesByLocationId[locationId] ?? [];
|
|
96
|
+
interfaceFilesByLocationId[locationId].push(interfaceFile);
|
|
97
|
+
extendsConfigs.forEach((extendsConfig) => {
|
|
98
|
+
const interfaceFile = getInterfaceFileFromConfigFile(extendsConfig, true);
|
|
99
|
+
interfaceFilesByLocationId[locationId].push(interfaceFile);
|
|
100
|
+
});
|
|
101
|
+
}));
|
|
102
|
+
// Value files
|
|
103
|
+
await Promise.all(valueFiles.map(async ({ filePathAbsolute, filePathRelativeToUserRootDir }) => {
|
|
104
|
+
const configNameDefault = getConfigName(filePathRelativeToUserRootDir);
|
|
105
|
+
(0, utils_js_1.assert)(configNameDefault);
|
|
106
|
+
const interfaceFile = {
|
|
107
|
+
filePath: {
|
|
108
|
+
filePathRelativeToUserRootDir,
|
|
109
|
+
filePathAbsolute
|
|
110
|
+
},
|
|
111
|
+
configMap: {
|
|
112
|
+
[configNameDefault]: {}
|
|
113
|
+
},
|
|
114
|
+
isConfigFile: false,
|
|
115
|
+
isValueFile: true,
|
|
116
|
+
configNameDefault
|
|
117
|
+
};
|
|
118
|
+
{
|
|
119
|
+
// We don't have access to custom config definitions yet
|
|
120
|
+
// - We load +someCustomConifg.js later
|
|
121
|
+
// - But we do need to eagerly load +meta.js (to get all the custom config definitions)
|
|
122
|
+
const configDef = getConfigDefinitionOptional(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn, configNameDefault);
|
|
123
|
+
if (configDef?.env === 'config-only') {
|
|
124
|
+
await loadValueFile(interfaceFile, configNameDefault, userRootDir);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
{
|
|
128
|
+
const locationId = (0, filesystemRouting_js_1.getLocationId)(filePathRelativeToUserRootDir);
|
|
129
|
+
interfaceFilesByLocationId[locationId] = interfaceFilesByLocationId[locationId] ?? [];
|
|
130
|
+
interfaceFilesByLocationId[locationId].push(interfaceFile);
|
|
131
|
+
}
|
|
132
|
+
}));
|
|
133
|
+
return interfaceFilesByLocationId;
|
|
134
|
+
}
|
|
135
|
+
function getConfigDefinition(configDefinitionsRelevant, configName, definedByFile) {
|
|
136
|
+
const configDef = configDefinitionsRelevant[configName];
|
|
137
|
+
assertConfigExists(configName, Object.keys(configDefinitionsRelevant), definedByFile);
|
|
138
|
+
(0, utils_js_1.assert)(configDef);
|
|
139
|
+
return configDef;
|
|
140
|
+
}
|
|
141
|
+
function getConfigDefinitionOptional(configDefinitions, configName) {
|
|
142
|
+
return configDefinitions[configName] ?? null;
|
|
143
|
+
}
|
|
144
|
+
async function loadValueFile(interfaceValueFile, configNameDefault, userRootDir) {
|
|
145
|
+
const { fileExports } = await (0, transpileAndExecuteFile_js_1.transpileAndExecuteFile)(interfaceValueFile.filePath, true, userRootDir);
|
|
146
|
+
(0, utils_js_1.assertDefaultExportUnknown)(fileExports, (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(interfaceValueFile.filePath));
|
|
147
|
+
Object.entries(fileExports).forEach(([configName, configValue]) => {
|
|
148
|
+
if (configName === 'default') {
|
|
149
|
+
configName = configNameDefault;
|
|
150
|
+
}
|
|
151
|
+
interfaceValueFile.configMap[configName] = { configValue };
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
function getInterfaceFileFromConfigFile(configFile, isConfigExtend) {
|
|
155
|
+
const { fileExports, filePath, extendsFilePaths } = configFile;
|
|
156
|
+
const interfaceFile = {
|
|
157
|
+
filePath,
|
|
158
|
+
configMap: {},
|
|
159
|
+
isConfigFile: true,
|
|
160
|
+
isValueFile: false,
|
|
161
|
+
isConfigExtend,
|
|
162
|
+
extendsFilePaths
|
|
163
|
+
};
|
|
164
|
+
const interfaceFilePathToShowToUser = (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(filePath);
|
|
165
|
+
(0, utils_js_1.assertDefaultExportObject)(fileExports, interfaceFilePathToShowToUser);
|
|
166
|
+
Object.entries(fileExports.default).forEach(([configName, configValue]) => {
|
|
167
|
+
interfaceFile.configMap[configName] = { configValue };
|
|
168
|
+
});
|
|
169
|
+
return interfaceFile;
|
|
170
|
+
}
|
|
171
|
+
async function loadVikeConfig_withErrorHandling(userRootDir, isDev, extensions, tolerateInvalidConfig) {
|
|
172
|
+
let hasError = false;
|
|
173
|
+
let ret;
|
|
174
|
+
let err;
|
|
175
|
+
try {
|
|
176
|
+
ret = await loadVikeConfig(userRootDir, isDev, extensions);
|
|
177
|
+
}
|
|
178
|
+
catch (err_) {
|
|
179
|
+
hasError = true;
|
|
180
|
+
err = err_;
|
|
181
|
+
}
|
|
182
|
+
if (!hasError) {
|
|
183
|
+
(0, utils_js_1.assert)(ret);
|
|
184
|
+
(0, utils_js_1.assert)(err === undefined);
|
|
185
|
+
(0, isConfigInvalid_js_1.isConfigInvalid_set)(false);
|
|
186
|
+
return ret;
|
|
187
|
+
}
|
|
188
|
+
else {
|
|
189
|
+
(0, utils_js_1.assert)(ret === undefined);
|
|
190
|
+
(0, utils_js_1.assert)(err);
|
|
191
|
+
(0, isConfigInvalid_js_1.isConfigInvalid_set)(true);
|
|
192
|
+
if (!isDev) {
|
|
193
|
+
(0, utils_js_1.assert)((0, globalContext_js_1.getViteDevServer)() === null);
|
|
194
|
+
throw err;
|
|
195
|
+
}
|
|
196
|
+
else {
|
|
197
|
+
(0, loggerNotProd_js_1.logConfigError)(err);
|
|
198
|
+
if (!tolerateInvalidConfig) {
|
|
199
|
+
devServerIsCorrupt = true;
|
|
200
|
+
}
|
|
201
|
+
const dummyData = {
|
|
202
|
+
pageConfigs: [],
|
|
203
|
+
pageConfigGlobal: {
|
|
204
|
+
onPrerenderStart: null,
|
|
205
|
+
onBeforeRoute: null
|
|
206
|
+
},
|
|
207
|
+
globalVikeConfig: {}
|
|
208
|
+
};
|
|
209
|
+
return dummyData;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
async function loadVikeConfig(userRootDir, isDev, extensions) {
|
|
214
|
+
const interfaceFilesByLocationId = await loadInterfaceFiles(userRootDir, isDev, extensions);
|
|
215
|
+
const { globalVikeConfig, pageConfigGlobal } = getGlobalConfigs(interfaceFilesByLocationId, userRootDir);
|
|
216
|
+
const pageConfigs = await Promise.all(Object.entries(interfaceFilesByLocationId)
|
|
217
|
+
.filter(([_pageId, interfaceFiles]) => isDefiningPage(interfaceFiles))
|
|
218
|
+
.map(async ([locationId]) => {
|
|
219
|
+
const interfaceFilesRelevant = getInterfaceFilesRelevant(interfaceFilesByLocationId, locationId);
|
|
220
|
+
const configDefinitionsRelevant = getConfigDefinitions(interfaceFilesRelevant);
|
|
221
|
+
// Load value files of custom config-only configs
|
|
222
|
+
await Promise.all(getInterfaceFileList(interfaceFilesRelevant).map(async (interfaceFile) => {
|
|
223
|
+
if (!interfaceFile.isValueFile)
|
|
224
|
+
return;
|
|
225
|
+
const { configNameDefault } = interfaceFile;
|
|
226
|
+
if (isGlobalConfig(configNameDefault))
|
|
227
|
+
return;
|
|
228
|
+
const configDef = getConfigDefinition(configDefinitionsRelevant, configNameDefault, (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(interfaceFile.filePath));
|
|
229
|
+
if (configDef.env !== 'config-only')
|
|
230
|
+
return;
|
|
231
|
+
const isAlreadyLoaded = interfacefileIsAlreaydLoaded(interfaceFile);
|
|
232
|
+
if (isAlreadyLoaded)
|
|
233
|
+
return;
|
|
234
|
+
// Value files for built-in confg-only configs should have already been loaded at loadInterfaceFiles()
|
|
235
|
+
(0, utils_js_1.assert)(!(configNameDefault in configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn));
|
|
236
|
+
await loadValueFile(interfaceFile, configNameDefault, userRootDir);
|
|
237
|
+
}));
|
|
238
|
+
const configValueSources = {};
|
|
239
|
+
(0, utils_js_1.objectEntries)(configDefinitionsRelevant)
|
|
240
|
+
.filter(([configName]) => !isGlobalConfig(configName))
|
|
241
|
+
.forEach(([configName, configDef]) => {
|
|
242
|
+
const sources = resolveConfigValueSources(configName, configDef, interfaceFilesRelevant, userRootDir);
|
|
243
|
+
if (!sources)
|
|
244
|
+
return;
|
|
245
|
+
configValueSources[configName] = sources;
|
|
246
|
+
});
|
|
247
|
+
const { routeFilesystem, isErrorPage } = determineRouteFilesystem(locationId, configValueSources);
|
|
248
|
+
const pageConfig = {
|
|
249
|
+
pageId: locationId,
|
|
250
|
+
isErrorPage,
|
|
251
|
+
routeFilesystem,
|
|
252
|
+
configValueSources,
|
|
253
|
+
configValues: getConfigValues(configValueSources, configDefinitionsRelevant)
|
|
254
|
+
};
|
|
255
|
+
applyEffects(pageConfig, configDefinitionsRelevant);
|
|
256
|
+
pageConfig.configValues = getConfigValues(configValueSources, configDefinitionsRelevant);
|
|
257
|
+
applyComputed(pageConfig, configDefinitionsRelevant);
|
|
258
|
+
pageConfig.configValues = getConfigValues(configValueSources, configDefinitionsRelevant);
|
|
259
|
+
return pageConfig;
|
|
260
|
+
}));
|
|
261
|
+
// Show error message upon unknown config
|
|
262
|
+
Object.entries(interfaceFilesByLocationId).forEach(([locationId, interfaceFiles]) => {
|
|
263
|
+
const interfaceFilesRelevant = getInterfaceFilesRelevant(interfaceFilesByLocationId, locationId);
|
|
264
|
+
const configDefinitionsRelevant = getConfigDefinitions(interfaceFilesRelevant);
|
|
265
|
+
interfaceFiles.forEach((interfaceFile) => {
|
|
266
|
+
Object.keys(interfaceFile.configMap).forEach((configName) => {
|
|
267
|
+
assertConfigExists(configName, Object.keys(configDefinitionsRelevant), (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(interfaceFile.filePath));
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
});
|
|
271
|
+
return { pageConfigs, pageConfigGlobal, globalVikeConfig };
|
|
272
|
+
}
|
|
273
|
+
function interfacefileIsAlreaydLoaded(interfaceFile) {
|
|
274
|
+
const configMapValues = Object.values(interfaceFile.configMap);
|
|
275
|
+
const isAlreadyLoaded = configMapValues.some((conf) => 'configValue' in conf);
|
|
276
|
+
if (isAlreadyLoaded) {
|
|
277
|
+
(0, utils_js_1.assert)(configMapValues.every((conf) => 'configValue' in conf));
|
|
278
|
+
}
|
|
279
|
+
return isAlreadyLoaded;
|
|
280
|
+
}
|
|
281
|
+
function getInterfaceFilesRelevant(interfaceFilesByLocationId, locationIdPage) {
|
|
282
|
+
const interfaceFilesRelevant = Object.fromEntries(Object.entries(interfaceFilesByLocationId)
|
|
283
|
+
.filter(([locationId]) => {
|
|
284
|
+
return (0, filesystemRouting_js_1.isInherited)(locationId, locationIdPage);
|
|
285
|
+
})
|
|
286
|
+
.sort(([locationId1], [locationId2]) => (0, filesystemRouting_js_1.sortAfterInheritanceOrder)(locationId1, locationId2, locationIdPage)));
|
|
287
|
+
return interfaceFilesRelevant;
|
|
288
|
+
}
|
|
289
|
+
function getInterfaceFileList(interfaceFilesByLocationId) {
|
|
290
|
+
const interfaceFiles = [];
|
|
291
|
+
Object.values(interfaceFilesByLocationId).forEach((interfaceFiles_) => {
|
|
292
|
+
interfaceFiles.push(...interfaceFiles_);
|
|
293
|
+
});
|
|
294
|
+
return interfaceFiles;
|
|
295
|
+
}
|
|
296
|
+
function getGlobalConfigs(interfaceFilesByLocationId, userRootDir) {
|
|
297
|
+
const locationIds = Object.keys(interfaceFilesByLocationId);
|
|
298
|
+
const interfaceFilesGlobal = Object.fromEntries(Object.entries(interfaceFilesByLocationId).filter(([locationId]) => {
|
|
299
|
+
return (0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds);
|
|
300
|
+
}));
|
|
301
|
+
// Validate that global configs live in global interface files
|
|
302
|
+
{
|
|
303
|
+
const interfaceFilesGlobalPaths = [];
|
|
304
|
+
Object.entries(interfaceFilesGlobal).forEach(([locationId, interfaceFiles]) => {
|
|
305
|
+
(0, utils_js_1.assert)((0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds));
|
|
306
|
+
interfaceFiles.forEach(({ filePath: { filePathRelativeToUserRootDir } }) => {
|
|
307
|
+
if (filePathRelativeToUserRootDir) {
|
|
308
|
+
interfaceFilesGlobalPaths.push(filePathRelativeToUserRootDir);
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
const globalPaths = Array.from(new Set(interfaceFilesGlobalPaths.map((p) => path_1.default.posix.dirname(p))));
|
|
313
|
+
Object.entries(interfaceFilesByLocationId).forEach(([locationId, interfaceFiles]) => {
|
|
314
|
+
interfaceFiles.forEach((interfaceFile) => {
|
|
315
|
+
Object.keys(interfaceFile.configMap).forEach((configName) => {
|
|
316
|
+
if (!(0, filesystemRouting_js_1.isGlobalLocation)(locationId, locationIds) && isGlobalConfig(configName)) {
|
|
317
|
+
(0, utils_js_1.assertUsage)(false, [
|
|
318
|
+
`${(0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(interfaceFile.filePath)} defines the config ${picocolors_1.default.cyan(configName)} which is global:`,
|
|
319
|
+
globalPaths.length
|
|
320
|
+
? `define ${picocolors_1.default.cyan(configName)} in ${(0, utils_js_1.joinEnglish)(globalPaths, 'or')} instead`
|
|
321
|
+
: `create a global config (e.g. /pages/+config.js) and define ${picocolors_1.default.cyan(configName)} there instead`
|
|
322
|
+
].join(' '));
|
|
323
|
+
}
|
|
324
|
+
});
|
|
325
|
+
});
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
const globalVikeConfig = {};
|
|
329
|
+
const pageConfigGlobal = {
|
|
330
|
+
onBeforeRoute: null,
|
|
331
|
+
onPrerenderStart: null
|
|
332
|
+
};
|
|
333
|
+
(0, utils_js_1.objectEntries)(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInGlobal).forEach(([configName, configDef]) => {
|
|
334
|
+
const sources = resolveConfigValueSources(configName, configDef, interfaceFilesGlobal, userRootDir);
|
|
335
|
+
const configValueSource = sources?.[0];
|
|
336
|
+
if (!configValueSource)
|
|
337
|
+
return;
|
|
338
|
+
if ((0, utils_js_1.arrayIncludes)((0, utils_js_1.objectKeys)(pageConfigGlobal), configName)) {
|
|
339
|
+
(0, utils_js_1.assert)(!('value' in configValueSource));
|
|
340
|
+
pageConfigGlobal[configName] = configValueSource;
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
(0, utils_js_1.assert)('value' in configValueSource);
|
|
344
|
+
if (configName === 'prerender' && typeof configValueSource.value === 'boolean')
|
|
345
|
+
return;
|
|
346
|
+
(0, utils_js_1.assert)(!configValueSource.isComputed);
|
|
347
|
+
(0, utils_js_1.assertWarning)(false, `Being able to define config ${picocolors_1.default.cyan(configName)} in ${configValueSource.definedAtInfo.filePath} is experimental and will likely be removed. Define the config ${picocolors_1.default.cyan(configName)} in vike's Vite plugin options instead.`, { onlyOnce: true });
|
|
348
|
+
globalVikeConfig[configName] = configValueSource.value;
|
|
349
|
+
}
|
|
350
|
+
});
|
|
351
|
+
return { pageConfigGlobal, globalVikeConfig };
|
|
352
|
+
}
|
|
353
|
+
function resolveConfigValueSources(configName, configDef, interfaceFilesRelevant, userRootDir) {
|
|
354
|
+
let sources = null;
|
|
355
|
+
// interfaceFilesRelevant is sorted by sortAfterInheritanceOrder()
|
|
356
|
+
for (const interfaceFiles of Object.values(interfaceFilesRelevant)) {
|
|
357
|
+
const interfaceFilesDefiningConfig = interfaceFiles.filter((interfaceFile) => interfaceFile.configMap[configName]);
|
|
358
|
+
if (interfaceFilesDefiningConfig.length === 0)
|
|
359
|
+
continue;
|
|
360
|
+
sources = sources ?? [];
|
|
361
|
+
const visited = new WeakSet();
|
|
362
|
+
const add = (interfaceFile) => {
|
|
363
|
+
(0, utils_js_1.assert)(!visited.has(interfaceFile));
|
|
364
|
+
visited.add(interfaceFile);
|
|
365
|
+
const configValueSource = getConfigValueSource(configName, interfaceFile, configDef, userRootDir);
|
|
366
|
+
sources.push(configValueSource);
|
|
367
|
+
};
|
|
368
|
+
// Main resolution logic
|
|
369
|
+
{
|
|
370
|
+
const interfaceValueFiles = interfaceFilesDefiningConfig
|
|
371
|
+
.filter((interfaceFile) => interfaceFile.isValueFile &&
|
|
372
|
+
// We consider side-effect exports (e.g. `export { frontmatter }` of .mdx files) later (i.e. with less priority)
|
|
373
|
+
interfaceFile.configNameDefault === configName)
|
|
374
|
+
.sort(makeOrderDeterministic);
|
|
375
|
+
const interfaceConfigFiles = interfaceFilesDefiningConfig
|
|
376
|
+
.filter((interfaceFile) => interfaceFile.isConfigFile &&
|
|
377
|
+
// We consider value from extended configs (e.g. vike-react) later (i.e. with less priority)
|
|
378
|
+
!interfaceFile.isConfigExtend)
|
|
379
|
+
.sort(makeOrderDeterministic);
|
|
380
|
+
const interfaceValueFile = interfaceValueFiles[0];
|
|
381
|
+
const interfaceConfigFile = interfaceConfigFiles[0];
|
|
382
|
+
// Make this value:
|
|
383
|
+
// /pages/some-page/+someConfig.js > `export default`
|
|
384
|
+
// override that value:
|
|
385
|
+
// /pages/some-page/+config > `export default { someConfig }`
|
|
386
|
+
const interfaceFileWinner = interfaceValueFile ?? interfaceConfigFile;
|
|
387
|
+
if (interfaceFileWinner) {
|
|
388
|
+
const interfaceFilesOverriden = [...interfaceValueFiles, ...interfaceConfigFiles].filter((f) => f !== interfaceFileWinner);
|
|
389
|
+
// A user-land conflict of interfaceFiles with the same locationId means that the user has superfluously defined the config twice; the user should remove such redundancy making things unnecessarily ambiguous
|
|
390
|
+
warnOverridenConfigValues(interfaceFileWinner, interfaceFilesOverriden, configName, configDef, userRootDir);
|
|
391
|
+
[interfaceFileWinner, ...interfaceFilesOverriden].forEach((interfaceFile) => {
|
|
392
|
+
add(interfaceFile);
|
|
393
|
+
});
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Side-effect configs such as `export { frontmatter }` in .mdx files
|
|
397
|
+
interfaceFilesDefiningConfig
|
|
398
|
+
.filter((interfaceFile) => interfaceFile.isValueFile &&
|
|
399
|
+
// Is side-effect export
|
|
400
|
+
interfaceFile.configNameDefault !== configName)
|
|
401
|
+
.forEach((interfaceValueFileSideEffect) => {
|
|
402
|
+
add(interfaceValueFileSideEffect);
|
|
403
|
+
});
|
|
404
|
+
// extends
|
|
405
|
+
interfaceFilesDefiningConfig
|
|
406
|
+
.filter((interfaceFile) => interfaceFile.isConfigFile && interfaceFile.isConfigExtend)
|
|
407
|
+
// extended config files are already sorted by inheritance order
|
|
408
|
+
.forEach((interfaceFile) => {
|
|
409
|
+
add(interfaceFile);
|
|
410
|
+
});
|
|
411
|
+
interfaceFilesDefiningConfig.forEach((interfaceFile) => {
|
|
412
|
+
(0, utils_js_1.assert)(visited.has(interfaceFile));
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
(0, utils_js_1.assert)(sources === null || sources.length > 0);
|
|
416
|
+
return sources;
|
|
417
|
+
}
|
|
418
|
+
function makeOrderDeterministic(interfaceFile1, interfaceFile2) {
|
|
419
|
+
return (0, utils_js_1.lowerFirst)((interfaceFile) => {
|
|
420
|
+
const { filePathRelativeToUserRootDir } = interfaceFile.filePath;
|
|
421
|
+
(0, utils_js_1.assert)(isInterfaceFileUserLand(interfaceFile));
|
|
422
|
+
(0, utils_js_1.assert)(filePathRelativeToUserRootDir);
|
|
423
|
+
return filePathRelativeToUserRootDir.length;
|
|
424
|
+
})(interfaceFile1, interfaceFile2);
|
|
425
|
+
}
|
|
426
|
+
function warnOverridenConfigValues(interfaceFileWinner, interfaceFilesOverriden, configName, configDef, userRootDir) {
|
|
427
|
+
interfaceFilesOverriden.forEach((interfaceFileLoser) => {
|
|
428
|
+
const configValueSourceWinner = getConfigValueSource(configName, interfaceFileWinner, configDef, userRootDir);
|
|
429
|
+
const configValueSourceLoser = getConfigValueSource(configName, interfaceFileLoser, configDef, userRootDir);
|
|
430
|
+
(0, utils_js_1.assertWarning)(false, `${(0, utils_js_2.getConfigDefinedAtString)(configName, configValueSourceLoser, true)} overriden by another ${(0, utils_js_2.getConfigDefinedAtString)(configName, configValueSourceWinner, false)}, remove one of the two`, { onlyOnce: false });
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
function isInterfaceFileUserLand(interfaceFile) {
|
|
434
|
+
return (interfaceFile.isConfigFile && !interfaceFile.isConfigExtend) || interfaceFile.isValueFile;
|
|
435
|
+
}
|
|
436
|
+
function getConfigValueSource(configName, interfaceFile, configDef, userRootDir) {
|
|
437
|
+
// TODO: rethink file paths of ConfigElement
|
|
438
|
+
const configFilePath = interfaceFile.filePath.filePathRelativeToUserRootDir ?? interfaceFile.filePath.filePathAbsolute;
|
|
439
|
+
const conf = interfaceFile.configMap[configName];
|
|
440
|
+
(0, utils_js_1.assert)(conf);
|
|
441
|
+
const configEnv = configDef.env;
|
|
442
|
+
const definedAtInfoConfigFile = {
|
|
443
|
+
filePath: configFilePath,
|
|
444
|
+
fileExportPath: ['default', configName]
|
|
445
|
+
};
|
|
446
|
+
if (configDef._valueIsFilePath) {
|
|
447
|
+
let filePath;
|
|
448
|
+
if (interfaceFile.isConfigFile) {
|
|
449
|
+
const { configValue } = conf;
|
|
450
|
+
const import_ = getImport(configValue, interfaceFile.filePath, userRootDir);
|
|
451
|
+
const configDefinedAt = (0, utils_js_2.getConfigDefinedAtString)(configName, { definedAtInfo: definedAtInfoConfigFile }, true);
|
|
452
|
+
(0, utils_js_1.assertUsage)(import_, `${configDefinedAt} should be an import`);
|
|
453
|
+
filePath = import_.importFilePath;
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
(0, utils_js_1.assert)(interfaceFile.isValueFile);
|
|
457
|
+
filePath =
|
|
458
|
+
interfaceFile.filePath.filePathRelativeToUserRootDir ??
|
|
459
|
+
// Experimental: is this needed? Would it work?
|
|
460
|
+
interfaceFile.filePath.filePathAbsolute;
|
|
461
|
+
}
|
|
462
|
+
const configValueSource = {
|
|
463
|
+
value: filePath,
|
|
464
|
+
valueIsFilePath: true,
|
|
465
|
+
configEnv,
|
|
466
|
+
valueIsImportedAtRuntime: true,
|
|
467
|
+
isComputed: false,
|
|
468
|
+
definedAtInfo: {
|
|
469
|
+
filePath,
|
|
470
|
+
fileExportPath: []
|
|
471
|
+
}
|
|
472
|
+
};
|
|
473
|
+
return configValueSource;
|
|
474
|
+
}
|
|
475
|
+
if (interfaceFile.isConfigFile) {
|
|
476
|
+
(0, utils_js_1.assert)('configValue' in conf);
|
|
477
|
+
const { configValue } = conf;
|
|
478
|
+
const import_ = getImport(configValue, interfaceFile.filePath, userRootDir);
|
|
479
|
+
if (import_) {
|
|
480
|
+
const { importFilePath, importFileExportName } = import_;
|
|
481
|
+
assertCodeFileEnv(importFilePath, configEnv, configName);
|
|
482
|
+
const configValueSource = {
|
|
483
|
+
configEnv,
|
|
484
|
+
valueIsImportedAtRuntime: true,
|
|
485
|
+
isComputed: false,
|
|
486
|
+
definedAtInfo: {
|
|
487
|
+
filePath: importFilePath,
|
|
488
|
+
fileExportPath: [importFileExportName]
|
|
489
|
+
}
|
|
490
|
+
};
|
|
491
|
+
return configValueSource;
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
const configValueSource = {
|
|
495
|
+
value: configValue,
|
|
496
|
+
configEnv,
|
|
497
|
+
valueIsImportedAtRuntime: false,
|
|
498
|
+
isComputed: false,
|
|
499
|
+
definedAtInfo: definedAtInfoConfigFile
|
|
500
|
+
};
|
|
501
|
+
return configValueSource;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
else if (interfaceFile.isValueFile) {
|
|
505
|
+
// TODO: rethink file paths of ConfigElement
|
|
506
|
+
const importFilePath = interfaceFile.filePath.filePathRelativeToUserRootDir ?? interfaceFile.filePath.filePathAbsolute;
|
|
507
|
+
const importFileExportName = configName === interfaceFile.configNameDefault ? 'default' : configName;
|
|
508
|
+
const valueAlreadyLoaded = 'configValue' in conf;
|
|
509
|
+
const configValueSource = {
|
|
510
|
+
configEnv,
|
|
511
|
+
valueIsImportedAtRuntime: !valueAlreadyLoaded,
|
|
512
|
+
isComputed: false,
|
|
513
|
+
definedAtInfo: {
|
|
514
|
+
filePath: importFilePath,
|
|
515
|
+
fileExportPath: [importFileExportName]
|
|
516
|
+
}
|
|
517
|
+
};
|
|
518
|
+
if (valueAlreadyLoaded) {
|
|
519
|
+
configValueSource.value = conf.configValue;
|
|
520
|
+
}
|
|
521
|
+
else {
|
|
522
|
+
(0, utils_js_1.assert)(configEnv !== 'config-only');
|
|
523
|
+
}
|
|
524
|
+
return configValueSource;
|
|
525
|
+
}
|
|
526
|
+
(0, utils_js_1.assert)(false);
|
|
527
|
+
}
|
|
528
|
+
function assertCodeFileEnv(importFilePath, configEnv, configName) {
|
|
529
|
+
if (!codeFilesEnv.has(importFilePath)) {
|
|
530
|
+
codeFilesEnv.set(importFilePath, []);
|
|
531
|
+
}
|
|
532
|
+
const codeFileEnv = codeFilesEnv.get(importFilePath);
|
|
533
|
+
codeFileEnv.push({ configEnv, configName });
|
|
534
|
+
const configDifferentEnv = codeFileEnv.filter((c) => c.configEnv !== configEnv)[0];
|
|
535
|
+
if (configDifferentEnv) {
|
|
536
|
+
(0, utils_js_1.assertUsage)(false, [
|
|
537
|
+
`${importFilePath} defines the value of configs living in different environments:`,
|
|
538
|
+
...[configDifferentEnv, { configName, configEnv }].map((c) => ` - config ${picocolors_1.default.cyan(c.configName)} which value lives in environment ${picocolors_1.default.cyan(c.configEnv)}`),
|
|
539
|
+
'Defining config values in the same file is allowed only if they live in the same environment, see https://vike.dev/header-file/import-from-same-file'
|
|
540
|
+
].join('\n'));
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
function isDefiningPage(interfaceFiles) {
|
|
544
|
+
for (const interfaceFile of interfaceFiles) {
|
|
545
|
+
const configNames = Object.keys(interfaceFile.configMap);
|
|
546
|
+
if (configNames.some((configName) => isDefiningPageConfig(configName))) {
|
|
547
|
+
return true;
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
return false;
|
|
551
|
+
}
|
|
552
|
+
function isDefiningPageConfig(configName) {
|
|
553
|
+
return ['Page', 'route'].includes(configName);
|
|
554
|
+
}
|
|
555
|
+
function getImport(configValue, configFilePath, userRootDir) {
|
|
556
|
+
if (typeof configValue !== 'string')
|
|
557
|
+
return null;
|
|
558
|
+
const importData = (0, replaceImportStatements_js_1.parseImportData)(configValue);
|
|
559
|
+
if (!importData)
|
|
560
|
+
return null;
|
|
561
|
+
let { importFilePath, importFileExportName } = importData;
|
|
562
|
+
if (importFilePath.startsWith('.')) {
|
|
563
|
+
// We need to resolve relative paths into absolute paths. Because the import paths are included in virtual files:
|
|
564
|
+
// ```
|
|
565
|
+
// [vite] Internal server error: Failed to resolve import "./onPageTransitionHooks" from "virtual:vike:pageConfigValuesAll:client:/pages/index". Does the file exist?
|
|
566
|
+
// ```
|
|
567
|
+
importFilePath = resolveRelativeCodeFilePath(importData, configFilePath, userRootDir);
|
|
568
|
+
}
|
|
569
|
+
else {
|
|
570
|
+
// importFilePath can be:
|
|
571
|
+
// - an npm package import
|
|
572
|
+
// - a path alias
|
|
573
|
+
}
|
|
574
|
+
return {
|
|
575
|
+
importFilePath,
|
|
576
|
+
importFileExportName
|
|
577
|
+
};
|
|
578
|
+
}
|
|
579
|
+
function resolveRelativeCodeFilePath(importData, configFilePath, userRootDir) {
|
|
580
|
+
let importFilePath = resolveImport(importData, configFilePath);
|
|
581
|
+
// Make it a Vite path
|
|
582
|
+
(0, utils_js_1.assertPosixPath)(userRootDir);
|
|
583
|
+
(0, utils_js_1.assertPosixPath)(importFilePath);
|
|
584
|
+
if (importFilePath.startsWith(userRootDir)) {
|
|
585
|
+
importFilePath = getVitePathFromAbsolutePath(importFilePath, userRootDir);
|
|
586
|
+
}
|
|
587
|
+
else {
|
|
588
|
+
(0, utils_js_1.assertUsage)(false, `${(0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(configFilePath)} imports from a relative path ${picocolors_1.default.cyan(importData.importFilePath)} outside of ${userRootDir} which is forbidden: import from a relative path inside ${userRootDir}, or import from a dependency's package.json#exports entry instead`);
|
|
589
|
+
// None of the following works. Seems to be a Vite bug?
|
|
590
|
+
// /*
|
|
591
|
+
// assert(importFilePath.startsWith('/'))
|
|
592
|
+
// importFilePath = `/@fs${importFilePath}`
|
|
593
|
+
// /*/
|
|
594
|
+
// importFilePath = path.posix.relative(userRootDir, importFilePath)
|
|
595
|
+
// assert(importFilePath.startsWith('../'))
|
|
596
|
+
// importFilePath = '/' + importFilePath
|
|
597
|
+
// //*/
|
|
598
|
+
}
|
|
599
|
+
(0, utils_js_1.assertPosixPath)(importFilePath);
|
|
600
|
+
(0, utils_js_1.assert)(importFilePath.startsWith('/'));
|
|
601
|
+
return importFilePath;
|
|
602
|
+
}
|
|
603
|
+
function getVitePathFromAbsolutePath(filePathAbsolute, root) {
|
|
604
|
+
(0, utils_js_1.assertPosixPath)(filePathAbsolute);
|
|
605
|
+
(0, utils_js_1.assertPosixPath)(root);
|
|
606
|
+
(0, utils_js_1.assert)(filePathAbsolute.startsWith(root));
|
|
607
|
+
let vitePath = path_1.default.posix.relative(root, filePathAbsolute);
|
|
608
|
+
(0, utils_js_1.assert)(!vitePath.startsWith('/') && !vitePath.startsWith('.'));
|
|
609
|
+
vitePath = '/' + vitePath;
|
|
610
|
+
return vitePath;
|
|
611
|
+
}
|
|
612
|
+
function getConfigDefinitions(interfaceFilesRelevant) {
|
|
613
|
+
const configDefinitions = { ...configDefinitionsBuiltIn_js_1.configDefinitionsBuiltIn };
|
|
614
|
+
Object.entries(interfaceFilesRelevant).forEach(([_locationId, interfaceFiles]) => {
|
|
615
|
+
interfaceFiles.forEach((interfaceFile) => {
|
|
616
|
+
const configMeta = interfaceFile.configMap['meta'];
|
|
617
|
+
if (!configMeta)
|
|
618
|
+
return;
|
|
619
|
+
const meta = configMeta.configValue;
|
|
620
|
+
assertMetaValue(meta,
|
|
621
|
+
// Maybe we should use the getConfigDefinedAtString() helper?
|
|
622
|
+
`Config ${picocolors_1.default.cyan('meta')} defined at ${(0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(interfaceFile.filePath)}`);
|
|
623
|
+
(0, utils_js_1.objectEntries)(meta).forEach(([configName, configDefinition]) => {
|
|
624
|
+
// User can override an existing config definition
|
|
625
|
+
configDefinitions[configName] = {
|
|
626
|
+
...configDefinitions[configName],
|
|
627
|
+
...configDefinition
|
|
628
|
+
};
|
|
629
|
+
});
|
|
630
|
+
});
|
|
631
|
+
});
|
|
632
|
+
return configDefinitions;
|
|
633
|
+
}
|
|
634
|
+
function assertMetaValue(metaVal, configMetaDefinedAt) {
|
|
635
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(metaVal), `${configMetaDefinedAt} has an invalid type ${picocolors_1.default.cyan(typeof metaVal)}: it should be an object instead.`);
|
|
636
|
+
(0, utils_js_1.objectEntries)(metaVal).forEach(([configName, def]) => {
|
|
637
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.isObject)(def), `${configMetaDefinedAt} sets meta.${configName} to a value with an invalid type ${picocolors_1.default.cyan(typeof def)}: it should be an object instead.`);
|
|
638
|
+
// env
|
|
639
|
+
{
|
|
640
|
+
const envValues = [
|
|
641
|
+
'client-only',
|
|
642
|
+
'server-only',
|
|
643
|
+
'server-and-client',
|
|
644
|
+
'config-only'
|
|
645
|
+
];
|
|
646
|
+
const hint = [
|
|
647
|
+
`Set the value of ${picocolors_1.default.cyan('env')} to `,
|
|
648
|
+
(0, utils_js_1.joinEnglish)(envValues.map((s) => picocolors_1.default.cyan(`'${s}'`)), 'or'),
|
|
649
|
+
'.'
|
|
650
|
+
].join('');
|
|
651
|
+
(0, utils_js_1.assertUsage)('env' in def, `${configMetaDefinedAt} doesn't set meta.${configName}.env but it's required. ${hint}`);
|
|
652
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(def, 'env', 'string'), `${configMetaDefinedAt} sets meta.${configName}.env to an invalid type ${picocolors_1.default.cyan(typeof def.env)}. ${hint}`);
|
|
653
|
+
(0, utils_js_1.assertUsage)(envValues.includes(def.env), `${configMetaDefinedAt} sets meta.${configName}.env to an invalid value ${picocolors_1.default.cyan(`'${def.env}'`)}. ${hint}`);
|
|
654
|
+
}
|
|
655
|
+
// effect
|
|
656
|
+
if ('effect' in def) {
|
|
657
|
+
(0, utils_js_1.assertUsage)((0, utils_js_1.hasProp)(def, 'effect', 'function'), `${configMetaDefinedAt} sets meta.${configName}.effect to an invalid type ${picocolors_1.default.cyan(typeof def.effect)}: it should be a function instead`);
|
|
658
|
+
(0, utils_js_1.assertUsage)(def.env === 'config-only', `${configMetaDefinedAt} sets meta.${configName}.effect but it's only supported if meta.${configName}.env is ${picocolors_1.default.cyan('config-only')} (but it's ${picocolors_1.default.cyan(def.env)} instead)`);
|
|
659
|
+
}
|
|
660
|
+
});
|
|
661
|
+
}
|
|
662
|
+
function applyEffects(pageConfig, configDefinitionsRelevant) {
|
|
663
|
+
(0, utils_js_1.objectEntries)(configDefinitionsRelevant).forEach(([configName, configDef]) => {
|
|
664
|
+
if (!configDef.effect)
|
|
665
|
+
return;
|
|
666
|
+
// The value needs to be loaded at config time, that's why we only support effect for configs that are config-only for now.
|
|
667
|
+
// (We could support effect for non config-only by always loading its value at config time, regardless of the config's `env` value.)
|
|
668
|
+
(0, utils_js_1.assertWarning)(configDef.env === 'config-only', [
|
|
669
|
+
`Adding an effect to ${picocolors_1.default.cyan(configName)} may not work as expected because ${picocolors_1.default.cyan(configName)} has an ${picocolors_1.default.cyan('env')} that is different than ${picocolors_1.default.cyan('config-only')} (its env is ${picocolors_1.default.cyan(configDef.env)}).`,
|
|
670
|
+
'Reach out to a maintainer if you want to use this in production.'
|
|
671
|
+
].join(' '), { onlyOnce: true });
|
|
672
|
+
const configValue = pageConfig.configValueSources[configName]?.[0];
|
|
673
|
+
if (!configValue)
|
|
674
|
+
return;
|
|
675
|
+
const configModFromEffect = configDef.effect({
|
|
676
|
+
configValue: configValue.value,
|
|
677
|
+
configDefinedAt: (0, utils_js_2.getConfigDefinedAtString)(configName, configValue, true)
|
|
678
|
+
});
|
|
679
|
+
if (!configModFromEffect)
|
|
680
|
+
return;
|
|
681
|
+
(0, utils_js_1.assert)((0, utils_js_1.hasProp)(configValue, 'value')); // We need to assume that the config value is loaded at build-time
|
|
682
|
+
applyEffect(configModFromEffect, configValue, pageConfig.configValueSources);
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
function applyEffect(configModFromEffect, configValueEffectSource, configValueSources) {
|
|
686
|
+
const notSupported = `config.meta[configName].effect currently only supports modifying the the ${picocolors_1.default.cyan('env')} of a config. Reach out to a maintainer if you need more capabilities.`;
|
|
687
|
+
(0, utils_js_1.objectEntries)(configModFromEffect).forEach(([configName, configValue]) => {
|
|
688
|
+
if (configName === 'meta') {
|
|
689
|
+
assertMetaValue(configValue, (0, utils_js_2.getConfigDefinedAtString)(configName, configValueEffectSource, true, 'effect'));
|
|
690
|
+
(0, utils_js_1.objectEntries)(configValue).forEach(([configTargetName, configTargetDef]) => {
|
|
691
|
+
{
|
|
692
|
+
const keys = Object.keys(configTargetDef);
|
|
693
|
+
(0, utils_js_1.assertUsage)(keys.includes('env'), notSupported);
|
|
694
|
+
(0, utils_js_1.assertUsage)(keys.length === 1, notSupported);
|
|
695
|
+
}
|
|
696
|
+
const envOverriden = configTargetDef.env;
|
|
697
|
+
const sources = configValueSources[configTargetName];
|
|
698
|
+
sources?.forEach((configValueSource) => {
|
|
699
|
+
configValueSource.configEnv = envOverriden;
|
|
700
|
+
});
|
|
701
|
+
});
|
|
702
|
+
}
|
|
703
|
+
else {
|
|
704
|
+
(0, utils_js_1.assertUsage)(false, notSupported);
|
|
705
|
+
// If we do end implementing being able to set the value of a config:
|
|
706
|
+
// - For setting definedAtInfo: we could take the definedAtInfo of the effect config while appending '(effect)' to definedAtInfo.fileExportPath
|
|
707
|
+
}
|
|
708
|
+
});
|
|
709
|
+
}
|
|
710
|
+
function applyComputed(pageConfig, configDefinitionsRelevant) {
|
|
711
|
+
(0, utils_js_1.objectEntries)(configDefinitionsRelevant).forEach(([configName, configDef]) => {
|
|
712
|
+
var _a;
|
|
713
|
+
const computed = configDef._computed;
|
|
714
|
+
if (!computed)
|
|
715
|
+
return;
|
|
716
|
+
const value = computed(pageConfig);
|
|
717
|
+
if (value === undefined)
|
|
718
|
+
return;
|
|
719
|
+
const configValueSource = {
|
|
720
|
+
value,
|
|
721
|
+
configEnv: configDef.env,
|
|
722
|
+
definedAtInfo: null,
|
|
723
|
+
isComputed: true,
|
|
724
|
+
valueIsImportedAtRuntime: false
|
|
725
|
+
};
|
|
726
|
+
(_a = pageConfig.configValueSources)[configName] ?? (_a[configName] = []);
|
|
727
|
+
// Computed values are inserted last: they have the least priority (i.e. computed can be overriden)
|
|
728
|
+
pageConfig.configValueSources[configName].push(configValueSource);
|
|
729
|
+
});
|
|
730
|
+
}
|
|
731
|
+
async function findPlusFiles(userRootDir, isDev, extensions) {
|
|
732
|
+
const timeBase = new Date().getTime();
|
|
733
|
+
(0, utils_js_1.assertPosixPath)(userRootDir);
|
|
734
|
+
const result = await (0, fast_glob_1.default)(`**/+*.${utils_js_1.scriptFileExtensions}`, {
|
|
735
|
+
ignore: [
|
|
736
|
+
'**/node_modules/**',
|
|
737
|
+
// Allow:
|
|
738
|
+
// ```
|
|
739
|
+
// +Page.js
|
|
740
|
+
// +Page.telefunc.js
|
|
741
|
+
// ```
|
|
742
|
+
'**/*.telefunc.*'
|
|
743
|
+
],
|
|
744
|
+
cwd: userRootDir,
|
|
745
|
+
dot: false
|
|
746
|
+
});
|
|
747
|
+
const time = new Date().getTime() - timeBase;
|
|
748
|
+
if (isDev) {
|
|
749
|
+
// We only warn in dev, because while building it's expected to take a long time as fast-glob is competing for resources with other tasks
|
|
750
|
+
(0, utils_js_1.assertWarning)(time < 2 * 1000, `Crawling your user files took an unexpected long time (${time}ms). Create a new issue on vike's GitHub.`, {
|
|
751
|
+
onlyOnce: 'slow-page-files-search'
|
|
752
|
+
});
|
|
753
|
+
}
|
|
754
|
+
const plusFiles = result.map((p) => {
|
|
755
|
+
p = (0, utils_js_1.toPosixPath)(p);
|
|
756
|
+
const filePathRelativeToUserRootDir = path_1.default.posix.join('/', p);
|
|
757
|
+
const filePathAbsolute = path_1.default.posix.join(userRootDir, p);
|
|
758
|
+
return { filePathRelativeToUserRootDir, filePathAbsolute };
|
|
759
|
+
});
|
|
760
|
+
extensions.forEach((extension) => {
|
|
761
|
+
extension.pageConfigsDistFiles?.forEach((pageConfigDistFile) => {
|
|
762
|
+
// TODO/v1-release: remove
|
|
763
|
+
if (!pageConfigDistFile.importPath.includes('+'))
|
|
764
|
+
return;
|
|
765
|
+
(0, utils_js_1.assert)(pageConfigDistFile.importPath.includes('+'));
|
|
766
|
+
(0, utils_js_1.assert)(path_1.default.posix.basename(pageConfigDistFile.importPath).startsWith('+'));
|
|
767
|
+
const { importPath, filePath } = pageConfigDistFile;
|
|
768
|
+
plusFiles.push({
|
|
769
|
+
filePathRelativeToUserRootDir: importPath,
|
|
770
|
+
filePathAbsolute: filePath
|
|
771
|
+
});
|
|
772
|
+
});
|
|
773
|
+
});
|
|
774
|
+
return plusFiles;
|
|
775
|
+
}
|
|
776
|
+
function getConfigName(filePath) {
|
|
777
|
+
(0, utils_js_1.assertPosixPath)(filePath);
|
|
778
|
+
if ((0, transpileAndExecuteFile_js_1.isTmpFile)(filePath))
|
|
779
|
+
return null;
|
|
780
|
+
const fileName = path_1.default.posix.basename(filePath);
|
|
781
|
+
assertNoUnexpectedPlusSign(filePath, fileName);
|
|
782
|
+
const basename = fileName.split('.')[0];
|
|
783
|
+
if (!basename.startsWith('+')) {
|
|
784
|
+
return null;
|
|
785
|
+
}
|
|
786
|
+
else {
|
|
787
|
+
const configName = basename.slice(1);
|
|
788
|
+
return configName;
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
function assertNoUnexpectedPlusSign(filePath, fileName) {
|
|
792
|
+
const dirs = path_1.default.posix.dirname(filePath).split('/');
|
|
793
|
+
dirs.forEach((dir, i) => {
|
|
794
|
+
const dirPath = dirs.slice(0, i + 1).join('/');
|
|
795
|
+
(0, utils_js_1.assertUsage)(!dir.includes('+'), `Character '+' is a reserved character: remove '+' from the directory name ${dirPath}/`);
|
|
796
|
+
});
|
|
797
|
+
(0, utils_js_1.assertUsage)(!fileName.slice(1).includes('+'), `Character '+' is only allowed at the beginning of filenames: make sure ${filePath} doesn't contain any '+' in its filename other than its first letter`);
|
|
798
|
+
}
|
|
799
|
+
async function loadConfigFile(configFilePath, userRootDir, visited) {
|
|
800
|
+
const { filePathAbsolute, filePathRelativeToUserRootDir } = configFilePath;
|
|
801
|
+
assertNoInfiniteLoop(visited, filePathAbsolute);
|
|
802
|
+
const { fileExports } = await (0, transpileAndExecuteFile_js_1.transpileAndExecuteFile)(configFilePath, false, userRootDir);
|
|
803
|
+
const { extendsConfigs, extendsFilePaths } = await loadExtendsConfigs(fileExports, configFilePath, userRootDir, [
|
|
804
|
+
...visited,
|
|
805
|
+
filePathAbsolute
|
|
806
|
+
]);
|
|
807
|
+
const configFile = {
|
|
808
|
+
fileExports,
|
|
809
|
+
filePath: {
|
|
810
|
+
filePathRelativeToUserRootDir,
|
|
811
|
+
filePathAbsolute
|
|
812
|
+
},
|
|
813
|
+
extendsFilePaths
|
|
814
|
+
};
|
|
815
|
+
return { configFile, extendsConfigs };
|
|
816
|
+
}
|
|
817
|
+
function assertNoInfiniteLoop(visited, filePathAbsolute) {
|
|
818
|
+
const idx = visited.indexOf(filePathAbsolute);
|
|
819
|
+
if (idx === -1)
|
|
820
|
+
return;
|
|
821
|
+
const loop = visited.slice(idx);
|
|
822
|
+
(0, utils_js_1.assert)(loop[0] === filePathAbsolute);
|
|
823
|
+
(0, utils_js_1.assertUsage)(idx === -1, `Infinite extends loop ${[...loop, filePathAbsolute].join('>')}`);
|
|
824
|
+
}
|
|
825
|
+
async function loadExtendsConfigs(configFileExports, configFilePath, userRootDir, visited) {
|
|
826
|
+
const extendsImportData = getExtendsImportData(configFileExports, configFilePath);
|
|
827
|
+
const extendsConfigFiles = [];
|
|
828
|
+
extendsImportData.map((importData) => {
|
|
829
|
+
const { importFilePath: importPath } = importData;
|
|
830
|
+
// TODO
|
|
831
|
+
// - validate extends configs
|
|
832
|
+
const filePathAbsolute = resolveImport(importData, configFilePath);
|
|
833
|
+
assertExtendsImportPath(importPath, filePathAbsolute, configFilePath);
|
|
834
|
+
extendsConfigFiles.push({
|
|
835
|
+
filePathAbsolute,
|
|
836
|
+
// - filePathRelativeToUserRootDir has no functionality beyond nicer error messages for user
|
|
837
|
+
// - Using importPath would be visually nicer but it's ambigous => we rather pick filePathAbsolute for added clarity
|
|
838
|
+
filePathRelativeToUserRootDir: determineFilePathRelativeToUserDir(filePathAbsolute, userRootDir)
|
|
839
|
+
});
|
|
840
|
+
});
|
|
841
|
+
const extendsConfigs = [];
|
|
842
|
+
await Promise.all(extendsConfigFiles.map(async (configFilePath) => {
|
|
843
|
+
const result = await loadConfigFile(configFilePath, userRootDir, visited);
|
|
844
|
+
extendsConfigs.push(result.configFile);
|
|
845
|
+
extendsConfigs.push(...result.extendsConfigs);
|
|
846
|
+
}));
|
|
847
|
+
const extendsFilePaths = extendsConfigFiles.map((f) => f.filePathAbsolute);
|
|
848
|
+
return { extendsConfigs, extendsFilePaths };
|
|
849
|
+
}
|
|
850
|
+
function determineFilePathRelativeToUserDir(filePathAbsolute, userRootDir) {
|
|
851
|
+
(0, utils_js_1.assertPosixPath)(filePathAbsolute);
|
|
852
|
+
(0, utils_js_1.assertPosixPath)(userRootDir);
|
|
853
|
+
if (!filePathAbsolute.startsWith(userRootDir)) {
|
|
854
|
+
return null;
|
|
855
|
+
}
|
|
856
|
+
let filePathRelativeToUserRootDir = filePathAbsolute.slice(userRootDir.length);
|
|
857
|
+
if (!filePathRelativeToUserRootDir.startsWith('/'))
|
|
858
|
+
filePathRelativeToUserRootDir = '/' + filePathRelativeToUserRootDir;
|
|
859
|
+
return filePathRelativeToUserRootDir;
|
|
860
|
+
}
|
|
861
|
+
function assertExtendsImportPath(importPath, filePath, configFilePath) {
|
|
862
|
+
if ((0, utils_js_1.isNpmPackageImport)(importPath)) {
|
|
863
|
+
const fileDir = path_1.default.posix.dirname(filePath) + '/';
|
|
864
|
+
const fileName = path_1.default.posix.basename(filePath);
|
|
865
|
+
const fileNameBaseCorrect = '+config';
|
|
866
|
+
const [fileNameBase, ...fileNameRest] = fileName.split('.');
|
|
867
|
+
const fileNameCorrect = [fileNameBaseCorrect, ...fileNameRest].join('.');
|
|
868
|
+
(0, utils_js_1.assertWarning)(fileNameBase === fileNameBaseCorrect, `Rename ${fileName} to ${fileNameCorrect} in ${fileDir}`, {
|
|
869
|
+
onlyOnce: true
|
|
870
|
+
});
|
|
871
|
+
}
|
|
872
|
+
else {
|
|
873
|
+
(0, utils_js_1.assertWarning)(false, `${(0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(configFilePath)} uses ${picocolors_1.default.cyan('extends')} to inherit from ${picocolors_1.default.cyan(importPath)} which is a user-land file: this is experimental and may be remove at any time. Reach out to a maintainer if you need this feature.`, { onlyOnce: true });
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
function getExtendsImportData(configFileExports, configFilePath) {
|
|
877
|
+
const filePathToShowToUser = (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(configFilePath);
|
|
878
|
+
(0, utils_js_1.assertDefaultExportObject)(configFileExports, filePathToShowToUser);
|
|
879
|
+
const defaultExports = configFileExports.default;
|
|
880
|
+
const wrongUsage = `${filePathToShowToUser} sets the config 'extends' to an invalid value, see https://vike.dev/extends`;
|
|
881
|
+
let extendList;
|
|
882
|
+
if (!('extends' in defaultExports)) {
|
|
883
|
+
return [];
|
|
884
|
+
}
|
|
885
|
+
else if ((0, utils_js_1.hasProp)(defaultExports, 'extends', 'string')) {
|
|
886
|
+
extendList = [defaultExports.extends];
|
|
887
|
+
}
|
|
888
|
+
else if ((0, utils_js_1.hasProp)(defaultExports, 'extends', 'string[]')) {
|
|
889
|
+
extendList = defaultExports.extends;
|
|
890
|
+
}
|
|
891
|
+
else {
|
|
892
|
+
(0, utils_js_1.assertUsage)(false, wrongUsage);
|
|
893
|
+
}
|
|
894
|
+
const extendsImportData = extendList.map((importDataSerialized) => {
|
|
895
|
+
const importData = (0, replaceImportStatements_js_1.parseImportData)(importDataSerialized);
|
|
896
|
+
(0, utils_js_1.assertUsage)(importData, wrongUsage);
|
|
897
|
+
return importData;
|
|
898
|
+
});
|
|
899
|
+
return extendsImportData;
|
|
900
|
+
}
|
|
901
|
+
// TODO: re-use this
|
|
902
|
+
function handleUserFileError(err, isDev) {
|
|
903
|
+
// Properly handle error during transpilation so that we can use assertUsage() during transpilation
|
|
904
|
+
if (isDev) {
|
|
905
|
+
throw err;
|
|
906
|
+
}
|
|
907
|
+
else {
|
|
908
|
+
// Avoid ugly error format:
|
|
909
|
+
// ```
|
|
910
|
+
// [vike:importUserCode] Could not load virtual:vike:importUserCode:server: [vike@0.4.70][Wrong Usage] /pages/+config.ts sets the config 'onRenderHtml' to the value './+config/onRenderHtml-i-dont-exist.js' but no file was found at /home/rom/code/vike/examples/v1/pages/+config/onRenderHtml-i-dont-exist.js
|
|
911
|
+
// Error: [vike@0.4.70][Wrong Usage] /pages/+config.ts sets the config 'onRenderHtml' to the value './+config/onRenderHtml-i-dont-exist.js' but no file was found at /home/rom/code/vike/examples/v1/pages/+config/onRenderHtml-i-dont-exist.js
|
|
912
|
+
// at ...
|
|
913
|
+
// at ...
|
|
914
|
+
// at ...
|
|
915
|
+
// at ...
|
|
916
|
+
// at ...
|
|
917
|
+
// at ...
|
|
918
|
+
// code: 'PLUGIN_ERROR',
|
|
919
|
+
// plugin: 'vike:importUserCode',
|
|
920
|
+
// hook: 'load',
|
|
921
|
+
// watchFiles: [
|
|
922
|
+
// '/home/rom/code/vike/vike/dist/esm/node/importBuild.js',
|
|
923
|
+
// '\x00virtual:vike:importUserCode:server'
|
|
924
|
+
// ]
|
|
925
|
+
// }
|
|
926
|
+
// ELIFECYCLE Command failed with exit code 1.
|
|
927
|
+
// ```
|
|
928
|
+
console.log('');
|
|
929
|
+
console.error(err);
|
|
930
|
+
process.exit(1);
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
function isGlobalConfig(configName) {
|
|
934
|
+
if (configName === 'prerender')
|
|
935
|
+
return false;
|
|
936
|
+
const configNamesGlobal = getConfigNamesGlobal();
|
|
937
|
+
return (0, utils_js_1.arrayIncludes)(configNamesGlobal, configName);
|
|
938
|
+
}
|
|
939
|
+
function getConfigNamesGlobal() {
|
|
940
|
+
return Object.keys(configDefinitionsBuiltIn_js_1.configDefinitionsBuiltInGlobal);
|
|
941
|
+
}
|
|
942
|
+
function assertConfigExists(configName, configNamesRelevant, definedByFile) {
|
|
943
|
+
const configNames = [...configNamesRelevant, ...getConfigNamesGlobal()];
|
|
944
|
+
if (configNames.includes(configName))
|
|
945
|
+
return;
|
|
946
|
+
handleUnknownConfig(configName, configNames, definedByFile);
|
|
947
|
+
(0, utils_js_1.assert)(false);
|
|
948
|
+
}
|
|
949
|
+
function handleUnknownConfig(configName, configNames, definedByFile) {
|
|
950
|
+
let errMsg = `${definedByFile} defines an unknown config ${picocolors_1.default.cyan(configName)}`;
|
|
951
|
+
let configNameSimilar = null;
|
|
952
|
+
if (configName === 'page') {
|
|
953
|
+
configNameSimilar = 'Page';
|
|
954
|
+
}
|
|
955
|
+
else {
|
|
956
|
+
configNameSimilar = (0, utils_js_1.getMostSimilar)(configName, configNames);
|
|
957
|
+
}
|
|
958
|
+
if (configNameSimilar || configName === 'page') {
|
|
959
|
+
(0, utils_js_1.assert)(configNameSimilar);
|
|
960
|
+
(0, utils_js_1.assert)(configNameSimilar !== configName);
|
|
961
|
+
errMsg += `, did you mean to define ${picocolors_1.default.cyan(configNameSimilar)} instead?`;
|
|
962
|
+
if (configName === 'page') {
|
|
963
|
+
errMsg += ` (The name of the config ${picocolors_1.default.cyan('Page')} starts with a capital letter ${picocolors_1.default.cyan('P')} because it usually defines a UI component: a ubiquitous JavaScript convention is to start the name of UI components with a capital letter.)`;
|
|
964
|
+
}
|
|
965
|
+
}
|
|
966
|
+
else {
|
|
967
|
+
errMsg += `, you need to define the config ${picocolors_1.default.cyan(configName)} by using ${picocolors_1.default.cyan('config.meta')} https://vike.dev/meta`;
|
|
968
|
+
}
|
|
969
|
+
(0, utils_js_1.assertUsage)(false, errMsg);
|
|
970
|
+
}
|
|
971
|
+
function determineRouteFilesystem(locationId, configValueSources) {
|
|
972
|
+
const configName = 'filesystemRoutingRoot';
|
|
973
|
+
const configFilesystemRoutingRoot = configValueSources[configName]?.[0];
|
|
974
|
+
let filesystemRouteString = (0, filesystemRouting_js_1.getFilesystemRouteString)(locationId);
|
|
975
|
+
if (determineIsErrorPage(filesystemRouteString)) {
|
|
976
|
+
return { isErrorPage: true, routeFilesystem: null };
|
|
977
|
+
}
|
|
978
|
+
let filesystemRouteDefinedBy = (0, filesystemRouting_js_1.getFilesystemRouteDefinedBy)(locationId); // for log404()
|
|
979
|
+
if (configFilesystemRoutingRoot) {
|
|
980
|
+
const routingRoot = getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName);
|
|
981
|
+
if (routingRoot) {
|
|
982
|
+
const { filesystemRoutingRootEffect, filesystemRoutingRootDefinedAt } = routingRoot;
|
|
983
|
+
const debugInfo = { locationId, routeFilesystem: filesystemRouteString, configFilesystemRoutingRoot };
|
|
984
|
+
(0, utils_js_1.assert)(filesystemRouteString.startsWith(filesystemRoutingRootEffect.before), debugInfo);
|
|
985
|
+
filesystemRouteString = (0, filesystemRouting_js_1.applyFilesystemRoutingRootEffect)(filesystemRouteString, filesystemRoutingRootEffect);
|
|
986
|
+
filesystemRouteDefinedBy = `${filesystemRouteDefinedBy} (with ${filesystemRoutingRootDefinedAt})`;
|
|
987
|
+
}
|
|
988
|
+
}
|
|
989
|
+
(0, utils_js_1.assert)(filesystemRouteString.startsWith('/'));
|
|
990
|
+
const routeFilesystem = {
|
|
991
|
+
routeString: filesystemRouteString,
|
|
992
|
+
definedBy: filesystemRouteDefinedBy
|
|
993
|
+
};
|
|
994
|
+
return { routeFilesystem, isErrorPage: false };
|
|
995
|
+
}
|
|
996
|
+
function getFilesystemRoutingRootEffect(configFilesystemRoutingRoot, configName) {
|
|
997
|
+
(0, utils_js_1.assert)(configFilesystemRoutingRoot.configEnv === 'config-only');
|
|
998
|
+
// Eagerly loaded since it's config-only
|
|
999
|
+
(0, utils_js_1.assert)('value' in configFilesystemRoutingRoot);
|
|
1000
|
+
const { value } = configFilesystemRoutingRoot;
|
|
1001
|
+
const configDefinedAt = (0, utils_js_2.getConfigDefinedAtString)(configName, configFilesystemRoutingRoot, false);
|
|
1002
|
+
(0, utils_js_1.assertUsage)(typeof value === 'string', `${configDefinedAt} should be a string`);
|
|
1003
|
+
(0, utils_js_1.assertUsage)(value.startsWith('/'), `${configDefinedAt} is ${picocolors_1.default.cyan(value)} but it should start with a leading slash ${picocolors_1.default.cyan('/')}`);
|
|
1004
|
+
(0, utils_js_1.assert)(!configFilesystemRoutingRoot.isComputed);
|
|
1005
|
+
const before = (0, filesystemRouting_js_1.getFilesystemRouteString)((0, filesystemRouting_js_1.getLocationId)(configFilesystemRoutingRoot.definedAtInfo.filePath));
|
|
1006
|
+
const after = value;
|
|
1007
|
+
const filesystemRoutingRootEffect = { before, after };
|
|
1008
|
+
return { filesystemRoutingRootEffect, filesystemRoutingRootDefinedAt: configDefinedAt };
|
|
1009
|
+
}
|
|
1010
|
+
function determineIsErrorPage(routeFilesystem) {
|
|
1011
|
+
(0, utils_js_1.assertPosixPath)(routeFilesystem);
|
|
1012
|
+
return routeFilesystem.split('/').includes('_error');
|
|
1013
|
+
}
|
|
1014
|
+
function resolveImport(importData, importerFilePath) {
|
|
1015
|
+
const { filePathAbsolute } = importerFilePath;
|
|
1016
|
+
(0, utils_js_1.assertPosixPath)(filePathAbsolute);
|
|
1017
|
+
const plusConfigFilDirPathAbsolute = path_1.default.posix.dirname(filePathAbsolute);
|
|
1018
|
+
const importedFile = (0, utils_js_1.resolve)(importData.importFilePath, plusConfigFilDirPathAbsolute);
|
|
1019
|
+
assertImport(importedFile, importData, importerFilePath);
|
|
1020
|
+
return importedFile;
|
|
1021
|
+
}
|
|
1022
|
+
function assertImport(importedFile, importData, importerFilePath) {
|
|
1023
|
+
const { importFilePath: importPath, importWasGenerated, importDataString } = importData;
|
|
1024
|
+
const filePathToShowToUser = (0, getFilePathToShowToUser_js_1.getFilePathToShowToUser)(importerFilePath);
|
|
1025
|
+
if (!importedFile) {
|
|
1026
|
+
const importPathString = picocolors_1.default.cyan(`'${importPath}'`);
|
|
1027
|
+
const errIntro = importWasGenerated
|
|
1028
|
+
? `The import path ${importPathString} in ${filePathToShowToUser}`
|
|
1029
|
+
: `The import ${picocolors_1.default.cyan(importDataString)} defined in ${filePathToShowToUser}`;
|
|
1030
|
+
const errIntro2 = `${errIntro} couldn't be resolved: does ${importPathString}`;
|
|
1031
|
+
if (importPath.startsWith('.')) {
|
|
1032
|
+
(0, utils_js_1.assertUsage)(false, `${errIntro2} point to an existing file?`);
|
|
1033
|
+
}
|
|
1034
|
+
else {
|
|
1035
|
+
(0, utils_js_1.assertUsage)(false, `${errIntro2} exist?`);
|
|
1036
|
+
}
|
|
1037
|
+
}
|
|
1038
|
+
}
|
|
1039
|
+
function isVikeConfigFile(filePath) {
|
|
1040
|
+
return !!getConfigName(filePath);
|
|
1041
|
+
}
|
|
1042
|
+
exports.isVikeConfigFile = isVikeConfigFile;
|
|
1043
|
+
function getConfigValues(configValueSources, configDefinitionsRelevant) {
|
|
1044
|
+
const configValues = {};
|
|
1045
|
+
Object.entries(configValueSources).forEach(([configName, sources]) => {
|
|
1046
|
+
const configDef = configDefinitionsRelevant[configName];
|
|
1047
|
+
(0, utils_js_1.assert)(configDef);
|
|
1048
|
+
if (!configDef.cumulative) {
|
|
1049
|
+
const configValueSource = sources[0];
|
|
1050
|
+
if ('value' in configValueSource) {
|
|
1051
|
+
const { value, definedAtInfo } = configValueSource;
|
|
1052
|
+
configValues[configName] = {
|
|
1053
|
+
value,
|
|
1054
|
+
definedAtInfo
|
|
1055
|
+
};
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
else {
|
|
1059
|
+
const value = mergeCumulative(configName, sources);
|
|
1060
|
+
configValues[configName] = {
|
|
1061
|
+
value,
|
|
1062
|
+
definedAtInfo: null
|
|
1063
|
+
};
|
|
1064
|
+
}
|
|
1065
|
+
});
|
|
1066
|
+
return configValues;
|
|
1067
|
+
}
|
|
1068
|
+
function mergeCumulative(configName, configValueSources) {
|
|
1069
|
+
const valuesArr = [];
|
|
1070
|
+
const valuesSet = [];
|
|
1071
|
+
let configValueSourcePrevious = null;
|
|
1072
|
+
configValueSources.forEach((configValueSource) => {
|
|
1073
|
+
(0, utils_js_1.assert)(!configValueSource.isComputed);
|
|
1074
|
+
const configDefinedAt = (0, utils_js_2.getConfigDefinedAtString)(configName, configValueSource, true);
|
|
1075
|
+
const configNameColored = picocolors_1.default.cyan(configName);
|
|
1076
|
+
// We could, in principle, also support cumulative values to be defined in +${configName}.js but it ins't completely trivial to implement
|
|
1077
|
+
(0, utils_js_1.assertUsage)('value' in configValueSource, `${configDefinedAt} is only allowed to be defined in a +config.h.js file. (Because the values of ${configNameColored} are cumulative.)`);
|
|
1078
|
+
/* This is more confusing than adding value. For example, this explanation shouldn't be shown for the passToClient config.
|
|
1079
|
+
const explanation = `(Because the values of ${configNameColored} are cumulative and therefore merged together.)` as const
|
|
1080
|
+
*/
|
|
1081
|
+
const assertNoMixing = (isSet) => {
|
|
1082
|
+
const vals1 = isSet ? valuesSet : valuesArr;
|
|
1083
|
+
const t1 = isSet ? 'a Set' : 'an array';
|
|
1084
|
+
const vals2 = !isSet ? valuesSet : valuesArr;
|
|
1085
|
+
const t2 = !isSet ? 'a Set' : 'an array';
|
|
1086
|
+
(0, utils_js_1.assert)(vals1.length > 0);
|
|
1087
|
+
if (vals2.length === 0)
|
|
1088
|
+
return;
|
|
1089
|
+
(0, utils_js_1.assert)(configValueSourcePrevious);
|
|
1090
|
+
const configPreviousDefinedAt = (0, utils_js_2.getConfigDefinedAtString)(configName, configValueSourcePrevious, false);
|
|
1091
|
+
(0, utils_js_1.assertUsage)(false, `${configDefinedAt} sets ${t1} but another ${configPreviousDefinedAt} sets ${t2} which is forbidden: the values must be all arrays or all sets (you cannot mix).`);
|
|
1092
|
+
};
|
|
1093
|
+
const { value } = configValueSource;
|
|
1094
|
+
if (Array.isArray(value)) {
|
|
1095
|
+
valuesArr.push(value);
|
|
1096
|
+
assertNoMixing(false);
|
|
1097
|
+
}
|
|
1098
|
+
else if (value instanceof Set) {
|
|
1099
|
+
valuesSet.push(value);
|
|
1100
|
+
assertNoMixing(true);
|
|
1101
|
+
}
|
|
1102
|
+
else {
|
|
1103
|
+
(0, utils_js_1.assertUsage)(false, `${configDefinedAt} must be an array or a Set`);
|
|
1104
|
+
}
|
|
1105
|
+
configValueSourcePrevious = configValueSource;
|
|
1106
|
+
});
|
|
1107
|
+
if (valuesArr.length > 0) {
|
|
1108
|
+
(0, utils_js_1.assert)(valuesSet.length === 0);
|
|
1109
|
+
const result = (0, utils_js_1.mergeCumulativeValues)(valuesArr);
|
|
1110
|
+
(0, utils_js_1.assert)(result !== null);
|
|
1111
|
+
return result;
|
|
1112
|
+
}
|
|
1113
|
+
if (valuesSet.length > 0) {
|
|
1114
|
+
(0, utils_js_1.assert)(valuesArr.length === 0);
|
|
1115
|
+
const result = (0, utils_js_1.mergeCumulativeValues)(valuesSet);
|
|
1116
|
+
(0, utils_js_1.assert)(result !== null);
|
|
1117
|
+
return result;
|
|
1118
|
+
}
|
|
1119
|
+
(0, utils_js_1.assert)(false);
|
|
1120
|
+
}
|