UNPKG

next

Version:

The React Framework

559 lines (558 loc) • 25.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "configSchema", { enumerable: true, get: function() { return configSchema; } }); const _imageconfig = require("../shared/lib/image-config"); const _zod = require("next/dist/compiled/zod"); const _nexttest = require("../cli/next-test"); // A custom zod schema for the SizeLimit type const zSizeLimit = _zod.z.custom((val)=>{ if (typeof val === 'number' || typeof val === 'string') { return true; } return false; }); const zExportMap = _zod.z.record(_zod.z.string(), _zod.z.object({ page: _zod.z.string(), query: _zod.z.any(), // private optional properties _fallbackRouteParams: _zod.z.array(_zod.z.string()).optional(), _isAppDir: _zod.z.boolean().optional(), _isDynamicError: _zod.z.boolean().optional(), _isRoutePPREnabled: _zod.z.boolean().optional(), _isProspectiveRender: _zod.z.boolean().optional() })); const zRouteHas = _zod.z.union([ _zod.z.object({ type: _zod.z.enum([ 'header', 'query', 'cookie' ]), key: _zod.z.string(), value: _zod.z.string().optional() }), _zod.z.object({ type: _zod.z.literal('host'), key: _zod.z.undefined().optional(), value: _zod.z.string() }) ]); const zRewrite = _zod.z.object({ source: _zod.z.string(), destination: _zod.z.string(), basePath: _zod.z.literal(false).optional(), locale: _zod.z.literal(false).optional(), has: _zod.z.array(zRouteHas).optional(), missing: _zod.z.array(zRouteHas).optional(), internal: _zod.z.boolean().optional() }); const zRedirect = _zod.z.object({ source: _zod.z.string(), destination: _zod.z.string(), basePath: _zod.z.literal(false).optional(), locale: _zod.z.literal(false).optional(), has: _zod.z.array(zRouteHas).optional(), missing: _zod.z.array(zRouteHas).optional(), internal: _zod.z.boolean().optional() }).and(_zod.z.union([ _zod.z.object({ statusCode: _zod.z.never().optional(), permanent: _zod.z.boolean() }), _zod.z.object({ statusCode: _zod.z.number(), permanent: _zod.z.never().optional() }) ])); const zHeader = _zod.z.object({ source: _zod.z.string(), basePath: _zod.z.literal(false).optional(), locale: _zod.z.literal(false).optional(), headers: _zod.z.array(_zod.z.object({ key: _zod.z.string(), value: _zod.z.string() })), has: _zod.z.array(zRouteHas).optional(), missing: _zod.z.array(zRouteHas).optional(), internal: _zod.z.boolean().optional() }); const zTurboLoaderItem = _zod.z.union([ _zod.z.string(), _zod.z.object({ loader: _zod.z.string(), // Any JSON value can be used as turbo loader options, so use z.any() here options: _zod.z.record(_zod.z.string(), _zod.z.any()) }) ]); const zTurboRuleConfigItemOptions = _zod.z.object({ loaders: _zod.z.array(zTurboLoaderItem), as: _zod.z.string().optional() }); const zTurboRuleConfigItem = _zod.z.union([ _zod.z.literal(false), _zod.z.record(_zod.z.string(), _zod.z.lazy(()=>zTurboRuleConfigItem)), zTurboRuleConfigItemOptions ]); const zTurboRuleConfigItemOrShortcut = _zod.z.union([ _zod.z.array(zTurboLoaderItem), zTurboRuleConfigItem ]); const configSchema = _zod.z.lazy(()=>_zod.z.strictObject({ allowedDevOrigins: _zod.z.array(_zod.z.string()).optional(), amp: _zod.z.object({ canonicalBase: _zod.z.string().optional() }).optional(), assetPrefix: _zod.z.string().optional(), basePath: _zod.z.string().optional(), bundlePagesRouterDependencies: _zod.z.boolean().optional(), cacheHandler: _zod.z.string().min(1).optional(), cacheMaxMemorySize: _zod.z.number().optional(), cleanDistDir: _zod.z.boolean().optional(), compiler: _zod.z.strictObject({ emotion: _zod.z.union([ _zod.z.boolean(), _zod.z.object({ sourceMap: _zod.z.boolean().optional(), autoLabel: _zod.z.union([ _zod.z.literal('always'), _zod.z.literal('dev-only'), _zod.z.literal('never') ]).optional(), labelFormat: _zod.z.string().min(1).optional(), importMap: _zod.z.record(_zod.z.string(), _zod.z.record(_zod.z.string(), _zod.z.object({ canonicalImport: _zod.z.tuple([ _zod.z.string(), _zod.z.string() ]).optional(), styledBaseImport: _zod.z.tuple([ _zod.z.string(), _zod.z.string() ]).optional() }))).optional() }) ]).optional(), reactRemoveProperties: _zod.z.union([ _zod.z.boolean().optional(), _zod.z.object({ properties: _zod.z.array(_zod.z.string()).optional() }) ]).optional(), relay: _zod.z.object({ src: _zod.z.string(), artifactDirectory: _zod.z.string().optional(), language: _zod.z.enum([ 'javascript', 'typescript', 'flow' ]).optional(), eagerEsModules: _zod.z.boolean().optional() }).optional(), removeConsole: _zod.z.union([ _zod.z.boolean().optional(), _zod.z.object({ exclude: _zod.z.array(_zod.z.string()).min(1).optional() }) ]).optional(), styledComponents: _zod.z.union([ _zod.z.boolean().optional(), _zod.z.object({ displayName: _zod.z.boolean().optional(), topLevelImportPaths: _zod.z.array(_zod.z.string()).optional(), ssr: _zod.z.boolean().optional(), fileName: _zod.z.boolean().optional(), meaninglessFileNames: _zod.z.array(_zod.z.string()).optional(), minify: _zod.z.boolean().optional(), transpileTemplateLiterals: _zod.z.boolean().optional(), namespace: _zod.z.string().min(1).optional(), pure: _zod.z.boolean().optional(), cssProp: _zod.z.boolean().optional() }) ]), styledJsx: _zod.z.union([ _zod.z.boolean().optional(), _zod.z.object({ useLightningcss: _zod.z.boolean().optional() }) ]), define: _zod.z.record(_zod.z.string(), _zod.z.string()).optional() }).optional(), compress: _zod.z.boolean().optional(), configOrigin: _zod.z.string().optional(), crossOrigin: _zod.z.union([ _zod.z.literal('anonymous'), _zod.z.literal('use-credentials') ]).optional(), deploymentId: _zod.z.string().optional(), devIndicators: _zod.z.union([ _zod.z.object({ buildActivityPosition: _zod.z.union([ _zod.z.literal('bottom-left'), _zod.z.literal('bottom-right'), _zod.z.literal('top-left'), _zod.z.literal('top-right') ]).optional(), position: _zod.z.union([ _zod.z.literal('bottom-left'), _zod.z.literal('bottom-right'), _zod.z.literal('top-left'), _zod.z.literal('top-right') ]).optional() }), _zod.z.literal(false) ]).optional(), distDir: _zod.z.string().min(1).optional(), env: _zod.z.record(_zod.z.string(), _zod.z.union([ _zod.z.string(), _zod.z.undefined() ])).optional(), eslint: _zod.z.strictObject({ dirs: _zod.z.array(_zod.z.string().min(1)).optional(), ignoreDuringBuilds: _zod.z.boolean().optional() }).optional(), excludeDefaultMomentLocales: _zod.z.boolean().optional(), experimental: _zod.z.strictObject({ allowedDevOrigins: _zod.z.array(_zod.z.string()).optional(), nodeMiddleware: _zod.z.boolean().optional(), after: _zod.z.boolean().optional(), appDocumentPreloading: _zod.z.boolean().optional(), appNavFailHandling: _zod.z.boolean().optional(), preloadEntriesOnStart: _zod.z.boolean().optional(), allowedRevalidateHeaderKeys: _zod.z.array(_zod.z.string()).optional(), amp: _zod.z.object({ // AMP optimizer option is unknown, use z.any() here optimizer: _zod.z.any().optional(), skipValidation: _zod.z.boolean().optional(), validator: _zod.z.string().optional() }).optional(), staleTimes: _zod.z.object({ dynamic: _zod.z.number().optional(), static: _zod.z.number().optional() }).optional(), cacheLife: _zod.z.record(_zod.z.object({ stale: _zod.z.number().optional(), revalidate: _zod.z.number().optional(), expire: _zod.z.number().optional() })).optional(), cacheHandlers: _zod.z.record(_zod.z.string(), _zod.z.string().optional()).optional(), clientRouterFilter: _zod.z.boolean().optional(), clientRouterFilterRedirects: _zod.z.boolean().optional(), clientRouterFilterAllowedRate: _zod.z.number().optional(), cpus: _zod.z.number().optional(), memoryBasedWorkersCount: _zod.z.boolean().optional(), craCompat: _zod.z.boolean().optional(), caseSensitiveRoutes: _zod.z.boolean().optional(), clientSegmentCache: _zod.z.boolean().optional(), disableOptimizedLoading: _zod.z.boolean().optional(), disablePostcssPresetEnv: _zod.z.boolean().optional(), dynamicIO: _zod.z.boolean().optional(), inlineCss: _zod.z.boolean().optional(), esmExternals: _zod.z.union([ _zod.z.boolean(), _zod.z.literal('loose') ]).optional(), serverActions: _zod.z.object({ bodySizeLimit: zSizeLimit.optional(), allowedOrigins: _zod.z.array(_zod.z.string()).optional() }).optional(), // The original type was Record<string, any> extensionAlias: _zod.z.record(_zod.z.string(), _zod.z.any()).optional(), externalDir: _zod.z.boolean().optional(), externalMiddlewareRewritesResolve: _zod.z.boolean().optional(), fallbackNodePolyfills: _zod.z.literal(false).optional(), fetchCacheKeyPrefix: _zod.z.string().optional(), forceSwcTransforms: _zod.z.boolean().optional(), fullySpecified: _zod.z.boolean().optional(), gzipSize: _zod.z.boolean().optional(), imgOptConcurrency: _zod.z.number().int().optional().nullable(), imgOptTimeoutInSeconds: _zod.z.number().int().optional(), imgOptMaxInputPixels: _zod.z.number().int().optional(), imgOptSequentialRead: _zod.z.boolean().optional().nullable(), isrFlushToDisk: _zod.z.boolean().optional(), largePageDataBytes: _zod.z.number().optional(), linkNoTouchStart: _zod.z.boolean().optional(), manualClientBasePath: _zod.z.boolean().optional(), middlewarePrefetch: _zod.z.enum([ 'strict', 'flexible' ]).optional(), multiZoneDraftMode: _zod.z.boolean().optional(), cssChunking: _zod.z.union([ _zod.z.boolean(), _zod.z.literal('strict') ]).optional(), nextScriptWorkers: _zod.z.boolean().optional(), // The critter option is unknown, use z.any() here optimizeCss: _zod.z.union([ _zod.z.boolean(), _zod.z.any() ]).optional(), optimisticClientCache: _zod.z.boolean().optional(), parallelServerCompiles: _zod.z.boolean().optional(), parallelServerBuildTraces: _zod.z.boolean().optional(), ppr: _zod.z.union([ _zod.z.boolean(), _zod.z.literal('incremental') ]).readonly().optional(), taint: _zod.z.boolean().optional(), prerenderEarlyExit: _zod.z.boolean().optional(), proxyTimeout: _zod.z.number().gte(0).optional(), scrollRestoration: _zod.z.boolean().optional(), sri: _zod.z.object({ algorithm: _zod.z.enum([ 'sha256', 'sha384', 'sha512' ]).optional() }).optional(), strictNextHead: _zod.z.boolean().optional(), swcPlugins: _zod.z// The specific swc plugin's option is unknown, use z.any() here .array(_zod.z.tuple([ _zod.z.string(), _zod.z.record(_zod.z.string(), _zod.z.any()) ])).optional(), swcTraceProfiling: _zod.z.boolean().optional(), // NonNullable<webpack.Configuration['experiments']>['buildHttp'] urlImports: _zod.z.any().optional(), viewTransition: _zod.z.boolean().optional(), workerThreads: _zod.z.boolean().optional(), webVitalsAttribution: _zod.z.array(_zod.z.union([ _zod.z.literal('CLS'), _zod.z.literal('FCP'), _zod.z.literal('FID'), _zod.z.literal('INP'), _zod.z.literal('LCP'), _zod.z.literal('TTFB') ])).optional(), // This is partial set of mdx-rs transform options we support, aligned // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync. mdxRs: _zod.z.union([ _zod.z.boolean(), _zod.z.object({ development: _zod.z.boolean().optional(), jsxRuntime: _zod.z.string().optional(), jsxImportSource: _zod.z.string().optional(), providerImportSource: _zod.z.string().optional(), mdxType: _zod.z.enum([ 'gfm', 'commonmark' ]).optional() }) ]).optional(), typedRoutes: _zod.z.boolean().optional(), webpackBuildWorker: _zod.z.boolean().optional(), webpackMemoryOptimizations: _zod.z.boolean().optional(), turbo: _zod.z.object({ loaders: _zod.z.record(_zod.z.string(), _zod.z.array(zTurboLoaderItem)).optional(), rules: _zod.z.record(_zod.z.string(), zTurboRuleConfigItemOrShortcut).optional(), resolveAlias: _zod.z.record(_zod.z.string(), _zod.z.union([ _zod.z.string(), _zod.z.array(_zod.z.string()), _zod.z.record(_zod.z.string(), _zod.z.union([ _zod.z.string(), _zod.z.array(_zod.z.string()) ])) ])).optional(), resolveExtensions: _zod.z.array(_zod.z.string()).optional(), treeShaking: _zod.z.boolean().optional(), persistentCaching: _zod.z.union([ _zod.z.number(), _zod.z.literal(false) ]).optional(), memoryLimit: _zod.z.number().optional(), moduleIdStrategy: _zod.z.enum([ 'named', 'deterministic' ]).optional(), minify: _zod.z.boolean().optional(), sourceMaps: _zod.z.boolean().optional() }).optional(), optimizePackageImports: _zod.z.array(_zod.z.string()).optional(), optimizeServerReact: _zod.z.boolean().optional(), clientTraceMetadata: _zod.z.array(_zod.z.string()).optional(), serverMinification: _zod.z.boolean().optional(), serverSourceMaps: _zod.z.boolean().optional(), useWasmBinary: _zod.z.boolean().optional(), useLightningcss: _zod.z.boolean().optional(), useEarlyImport: _zod.z.boolean().optional(), testProxy: _zod.z.boolean().optional(), defaultTestRunner: _zod.z.enum(_nexttest.SUPPORTED_TEST_RUNNERS_LIST).optional(), allowDevelopmentBuild: _zod.z.literal(true).optional(), reactCompiler: _zod.z.union([ _zod.z.boolean(), _zod.z.object({ compilationMode: _zod.z.enum([ 'infer', 'annotation', 'all' ]).optional(), panicThreshold: _zod.z.enum([ 'ALL_ERRORS', 'CRITICAL_ERRORS', 'NONE' ]).optional() }).optional() ]), staticGenerationRetryCount: _zod.z.number().int().optional(), staticGenerationMaxConcurrency: _zod.z.number().int().optional(), staticGenerationMinPagesPerWorker: _zod.z.number().int().optional(), typedEnv: _zod.z.boolean().optional(), serverComponentsHmrCache: _zod.z.boolean().optional(), authInterrupts: _zod.z.boolean().optional(), useCache: _zod.z.boolean().optional(), slowModuleDetection: _zod.z.object({ buildTimeThresholdMs: _zod.z.number().int() }).optional() }).optional(), exportPathMap: _zod.z.function().args(zExportMap, _zod.z.object({ dev: _zod.z.boolean(), dir: _zod.z.string(), outDir: _zod.z.string().nullable(), distDir: _zod.z.string(), buildId: _zod.z.string() })).returns(_zod.z.union([ zExportMap, _zod.z.promise(zExportMap) ])).optional(), generateBuildId: _zod.z.function().args().returns(_zod.z.union([ _zod.z.string(), _zod.z.null(), _zod.z.promise(_zod.z.union([ _zod.z.string(), _zod.z.null() ])) ])).optional(), generateEtags: _zod.z.boolean().optional(), headers: _zod.z.function().args().returns(_zod.z.promise(_zod.z.array(zHeader))).optional(), htmlLimitedBots: _zod.z.instanceof(RegExp).optional(), httpAgentOptions: _zod.z.strictObject({ keepAlive: _zod.z.boolean().optional() }).optional(), i18n: _zod.z.strictObject({ defaultLocale: _zod.z.string().min(1), domains: _zod.z.array(_zod.z.strictObject({ defaultLocale: _zod.z.string().min(1), domain: _zod.z.string().min(1), http: _zod.z.literal(true).optional(), locales: _zod.z.array(_zod.z.string().min(1)).optional() })).optional(), localeDetection: _zod.z.literal(false).optional(), locales: _zod.z.array(_zod.z.string().min(1)) }).nullable().optional(), images: _zod.z.strictObject({ localPatterns: _zod.z.array(_zod.z.strictObject({ pathname: _zod.z.string().optional(), search: _zod.z.string().optional() })).max(25).optional(), remotePatterns: _zod.z.array(_zod.z.strictObject({ hostname: _zod.z.string(), pathname: _zod.z.string().optional(), port: _zod.z.string().max(5).optional(), protocol: _zod.z.enum([ 'http', 'https' ]).optional(), search: _zod.z.string().optional() })).max(50).optional(), unoptimized: _zod.z.boolean().optional(), contentSecurityPolicy: _zod.z.string().optional(), contentDispositionType: _zod.z.enum([ 'inline', 'attachment' ]).optional(), dangerouslyAllowSVG: _zod.z.boolean().optional(), deviceSizes: _zod.z.array(_zod.z.number().int().gte(1).lte(10000)).max(25).optional(), disableStaticImages: _zod.z.boolean().optional(), domains: _zod.z.array(_zod.z.string()).max(50).optional(), formats: _zod.z.array(_zod.z.enum([ 'image/avif', 'image/webp' ])).max(4).optional(), imageSizes: _zod.z.array(_zod.z.number().int().gte(1).lte(10000)).min(0).max(25).optional(), loader: _zod.z.enum(_imageconfig.VALID_LOADERS).optional(), loaderFile: _zod.z.string().optional(), minimumCacheTTL: _zod.z.number().int().gte(0).optional(), path: _zod.z.string().optional(), qualities: _zod.z.array(_zod.z.number().int().gte(1).lte(100)).min(1).max(20).optional() }).optional(), logging: _zod.z.union([ _zod.z.object({ fetches: _zod.z.object({ fullUrl: _zod.z.boolean().optional(), hmrRefreshes: _zod.z.boolean().optional() }).optional(), incomingRequests: _zod.z.union([ _zod.z.boolean(), _zod.z.object({ ignore: _zod.z.array(_zod.z.instanceof(RegExp)) }) ]).optional() }), _zod.z.literal(false) ]).optional(), modularizeImports: _zod.z.record(_zod.z.string(), _zod.z.object({ transform: _zod.z.union([ _zod.z.string(), _zod.z.record(_zod.z.string(), _zod.z.string()) ]), preventFullImport: _zod.z.boolean().optional(), skipDefaultConversion: _zod.z.boolean().optional() })).optional(), onDemandEntries: _zod.z.strictObject({ maxInactiveAge: _zod.z.number().optional(), pagesBufferLength: _zod.z.number().optional() }).optional(), output: _zod.z.enum([ 'standalone', 'export' ]).optional(), outputFileTracingRoot: _zod.z.string().optional(), outputFileTracingExcludes: _zod.z.record(_zod.z.string(), _zod.z.array(_zod.z.string())).optional(), outputFileTracingIncludes: _zod.z.record(_zod.z.string(), _zod.z.array(_zod.z.string())).optional(), pageExtensions: _zod.z.array(_zod.z.string()).min(1).optional(), poweredByHeader: _zod.z.boolean().optional(), productionBrowserSourceMaps: _zod.z.boolean().optional(), publicRuntimeConfig: _zod.z.record(_zod.z.string(), _zod.z.any()).optional(), reactProductionProfiling: _zod.z.boolean().optional(), reactStrictMode: _zod.z.boolean().nullable().optional(), reactMaxHeadersLength: _zod.z.number().nonnegative().int().optional(), redirects: _zod.z.function().args().returns(_zod.z.promise(_zod.z.array(zRedirect))).optional(), rewrites: _zod.z.function().args().returns(_zod.z.promise(_zod.z.union([ _zod.z.array(zRewrite), _zod.z.object({ beforeFiles: _zod.z.array(zRewrite), afterFiles: _zod.z.array(zRewrite), fallback: _zod.z.array(zRewrite) }) ]))).optional(), // sassOptions properties are unknown besides implementation, use z.any() here sassOptions: _zod.z.object({ implementation: _zod.z.string().optional() }).catchall(_zod.z.any()).optional(), serverExternalPackages: _zod.z.array(_zod.z.string()).optional(), serverRuntimeConfig: _zod.z.record(_zod.z.string(), _zod.z.any()).optional(), skipMiddlewareUrlNormalize: _zod.z.boolean().optional(), skipTrailingSlashRedirect: _zod.z.boolean().optional(), staticPageGenerationTimeout: _zod.z.number().optional(), expireTime: _zod.z.number().optional(), target: _zod.z.string().optional(), trailingSlash: _zod.z.boolean().optional(), transpilePackages: _zod.z.array(_zod.z.string()).optional(), typescript: _zod.z.strictObject({ ignoreBuildErrors: _zod.z.boolean().optional(), tsconfigPath: _zod.z.string().min(1).optional() }).optional(), useFileSystemPublicRoutes: _zod.z.boolean().optional(), // The webpack config type is unknown, use z.any() here webpack: _zod.z.any().nullable().optional(), watchOptions: _zod.z.strictObject({ pollIntervalMs: _zod.z.number().positive().finite().optional() }).optional() })); //# sourceMappingURL=config-schema.js.map