@bleedingdev/modern-js-app-tools 3.2.0-ultramodern.0
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/LICENSE +21 -0
- package/README.md +26 -0
- package/bin/modern.js +36 -0
- package/dist/cjs/baseline.js +83 -0
- package/dist/cjs/builder/builder-rspack/index.js +40 -0
- package/dist/cjs/builder/generator/adapterCopy.js +79 -0
- package/dist/cjs/builder/generator/createBuilderProviderConfig.js +100 -0
- package/dist/cjs/builder/generator/createCopyPattern.js +67 -0
- package/dist/cjs/builder/generator/getBuilderEnvironments.js +90 -0
- package/dist/cjs/builder/generator/index.js +80 -0
- package/dist/cjs/builder/index.js +50 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterBasic.js +133 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterHtml.js +89 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterPrecompress.js +112 -0
- package/dist/cjs/builder/shared/builderPlugins/adapterSSR.js +151 -0
- package/dist/cjs/builder/shared/builderPlugins/builderHooks.js +51 -0
- package/dist/cjs/builder/shared/builderPlugins/index.js +86 -0
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.js +71 -0
- package/dist/cjs/builder/shared/bundlerPlugins/HtmlBottomTemplate.js +56 -0
- package/dist/cjs/builder/shared/bundlerPlugins/RouterPlugin.js +191 -0
- package/dist/cjs/builder/shared/bundlerPlugins/index.js +72 -0
- package/dist/cjs/builder/shared/createCopyInfo.js +59 -0
- package/dist/cjs/builder/shared/index.js +72 -0
- package/dist/cjs/builder/shared/loaders/serverModuleLoader.js +39 -0
- package/dist/cjs/builder/shared/types.js +18 -0
- package/dist/cjs/commands/build.js +107 -0
- package/dist/cjs/commands/deploy.js +44 -0
- package/dist/cjs/commands/dev.js +121 -0
- package/dist/cjs/commands/index.js +99 -0
- package/dist/cjs/commands/info.js +110 -0
- package/dist/cjs/commands/inspect.js +49 -0
- package/dist/cjs/commands/runtime.js +159 -0
- package/dist/cjs/commands/serve.js +92 -0
- package/dist/cjs/compat/hooks.js +104 -0
- package/dist/cjs/compat/index.js +62 -0
- package/dist/cjs/compat/utils.js +135 -0
- package/dist/cjs/config/default.js +125 -0
- package/dist/cjs/config/index.js +65 -0
- package/dist/cjs/config/initialize/index.js +41 -0
- package/dist/cjs/config/initialize/inits.js +101 -0
- package/dist/cjs/constants.js +40 -0
- package/dist/cjs/defineConfig.js +36 -0
- package/dist/cjs/esm/register-esm.js +48 -0
- package/dist/cjs/esm/register-esm.mjs +10 -0
- package/dist/cjs/esm/ts-paths-loader.js +73 -0
- package/dist/cjs/esm/ts-paths-loader.mjs +35 -0
- package/dist/cjs/exports/server.js +18 -0
- package/dist/cjs/index.js +358 -0
- package/dist/cjs/locale/en.js +79 -0
- package/dist/cjs/locale/index.js +46 -0
- package/dist/cjs/locale/zh.js +79 -0
- package/dist/cjs/plugins/analyze/constants.js +48 -0
- package/dist/cjs/plugins/analyze/getBundleEntry.js +97 -0
- package/dist/cjs/plugins/analyze/getFileSystemEntry.js +117 -0
- package/dist/cjs/plugins/analyze/getHtmlTemplate.js +144 -0
- package/dist/cjs/plugins/analyze/getServerRoutes.js +177 -0
- package/dist/cjs/plugins/analyze/index.js +237 -0
- package/dist/cjs/plugins/analyze/isDefaultExportFunction.js +86 -0
- package/dist/cjs/plugins/analyze/templates.js +56 -0
- package/dist/cjs/plugins/analyze/utils.js +126 -0
- package/dist/cjs/plugins/deploy/index.js +77 -0
- package/dist/cjs/plugins/deploy/platforms/gh-pages.js +87 -0
- package/dist/cjs/plugins/deploy/platforms/netlify.js +140 -0
- package/dist/cjs/plugins/deploy/platforms/node.js +100 -0
- package/dist/cjs/plugins/deploy/platforms/platform.js +18 -0
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
- package/dist/cjs/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
- package/dist/cjs/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
- package/dist/cjs/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
- package/dist/cjs/plugins/deploy/platforms/vercel.js +159 -0
- package/dist/cjs/plugins/deploy/types.js +18 -0
- package/dist/cjs/plugins/deploy/utils/generator.js +104 -0
- package/dist/cjs/plugins/deploy/utils/index.js +123 -0
- package/dist/cjs/plugins/initialize/index.js +93 -0
- package/dist/cjs/plugins/serverBuild.js +90 -0
- package/dist/cjs/plugins/serverRuntime.js +49 -0
- package/dist/cjs/presetUltramodern.js +41 -0
- package/dist/cjs/rsbuild.js +90 -0
- package/dist/cjs/run/index.js +98 -0
- package/dist/cjs/types/config/deploy.js +18 -0
- package/dist/cjs/types/config/dev.js +18 -0
- package/dist/cjs/types/config/experiments.js +18 -0
- package/dist/cjs/types/config/html.js +18 -0
- package/dist/cjs/types/config/index.js +58 -0
- package/dist/cjs/types/config/output.js +18 -0
- package/dist/cjs/types/config/performance.js +18 -0
- package/dist/cjs/types/config/resolve.js +18 -0
- package/dist/cjs/types/config/security.js +18 -0
- package/dist/cjs/types/config/source.js +18 -0
- package/dist/cjs/types/config/testing.js +18 -0
- package/dist/cjs/types/config/tools.js +18 -0
- package/dist/cjs/types/index.js +58 -0
- package/dist/cjs/types/plugin.js +18 -0
- package/dist/cjs/types/utils.js +18 -0
- package/dist/cjs/ultramodern/designSystem.js +119 -0
- package/dist/cjs/utils/config.js +45 -0
- package/dist/cjs/utils/createServer.js +52 -0
- package/dist/cjs/utils/env.js +46 -0
- package/dist/cjs/utils/generateWatchFiles.js +54 -0
- package/dist/cjs/utils/getConfigFile.js +49 -0
- package/dist/cjs/utils/getSelectedEntries.js +60 -0
- package/dist/cjs/utils/initAppContext.js +71 -0
- package/dist/cjs/utils/loadPlugins.js +85 -0
- package/dist/cjs/utils/printInstructions.js +43 -0
- package/dist/cjs/utils/register.js +128 -0
- package/dist/cjs/utils/restart.js +52 -0
- package/dist/cjs/utils/routes.js +65 -0
- package/dist/cjs/utils/types.js +18 -0
- package/dist/esm/baseline.mjs +46 -0
- package/dist/esm/builder/builder-rspack/index.mjs +6 -0
- package/dist/esm/builder/generator/adapterCopy.mjs +35 -0
- package/dist/esm/builder/generator/createBuilderProviderConfig.mjs +66 -0
- package/dist/esm/builder/generator/createCopyPattern.mjs +30 -0
- package/dist/esm/builder/generator/getBuilderEnvironments.mjs +56 -0
- package/dist/esm/builder/generator/index.mjs +46 -0
- package/dist/esm/builder/index.mjs +7 -0
- package/dist/esm/builder/shared/builderPlugins/adapterBasic.mjs +89 -0
- package/dist/esm/builder/shared/builderPlugins/adapterHtml.mjs +55 -0
- package/dist/esm/builder/shared/builderPlugins/adapterPrecompress.mjs +68 -0
- package/dist/esm/builder/shared/builderPlugins/adapterSSR.mjs +117 -0
- package/dist/esm/builder/shared/builderPlugins/builderHooks.mjs +17 -0
- package/dist/esm/builder/shared/builderPlugins/index.mjs +5 -0
- package/dist/esm/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +37 -0
- package/dist/esm/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +22 -0
- package/dist/esm/builder/shared/bundlerPlugins/RouterPlugin.mjs +157 -0
- package/dist/esm/builder/shared/bundlerPlugins/index.mjs +3 -0
- package/dist/esm/builder/shared/createCopyInfo.mjs +15 -0
- package/dist/esm/builder/shared/index.mjs +3 -0
- package/dist/esm/builder/shared/loaders/serverModuleLoader.mjs +5 -0
- package/dist/esm/builder/shared/types.mjs +0 -0
- package/dist/esm/commands/build.mjs +63 -0
- package/dist/esm/commands/deploy.mjs +10 -0
- package/dist/esm/commands/dev.mjs +77 -0
- package/dist/esm/commands/index.mjs +47 -0
- package/dist/esm/commands/info.mjs +76 -0
- package/dist/esm/commands/inspect.mjs +15 -0
- package/dist/esm/commands/runtime.mjs +116 -0
- package/dist/esm/commands/serve.mjs +48 -0
- package/dist/esm/compat/hooks.mjs +67 -0
- package/dist/esm/compat/index.mjs +28 -0
- package/dist/esm/compat/utils.mjs +95 -0
- package/dist/esm/config/default.mjs +91 -0
- package/dist/esm/config/index.mjs +2 -0
- package/dist/esm/config/initialize/index.mjs +7 -0
- package/dist/esm/config/initialize/inits.mjs +54 -0
- package/dist/esm/constants.mjs +3 -0
- package/dist/esm/defineConfig.mjs +2 -0
- package/dist/esm/esm/register-esm.mjs +11 -0
- package/dist/esm/esm/ts-paths-loader.mjs +36 -0
- package/dist/esm/exports/server.mjs +0 -0
- package/dist/esm/index.mjs +131 -0
- package/dist/esm/locale/en.mjs +45 -0
- package/dist/esm/locale/index.mjs +9 -0
- package/dist/esm/locale/zh.mjs +45 -0
- package/dist/esm/plugins/analyze/constants.mjs +8 -0
- package/dist/esm/plugins/analyze/getBundleEntry.mjs +53 -0
- package/dist/esm/plugins/analyze/getFileSystemEntry.mjs +66 -0
- package/dist/esm/plugins/analyze/getHtmlTemplate.mjs +97 -0
- package/dist/esm/plugins/analyze/getServerRoutes.mjs +130 -0
- package/dist/esm/plugins/analyze/index.mjs +203 -0
- package/dist/esm/plugins/analyze/isDefaultExportFunction.mjs +41 -0
- package/dist/esm/plugins/analyze/templates.mjs +22 -0
- package/dist/esm/plugins/analyze/utils.mjs +63 -0
- package/dist/esm/plugins/deploy/index.mjs +43 -0
- package/dist/esm/plugins/deploy/platforms/gh-pages.mjs +43 -0
- package/dist/esm/plugins/deploy/platforms/netlify.mjs +96 -0
- package/dist/esm/plugins/deploy/platforms/node.mjs +56 -0
- package/dist/esm/plugins/deploy/platforms/platform.mjs +0 -0
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
- package/dist/esm/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
- package/dist/esm/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
- package/dist/esm/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
- package/dist/esm/plugins/deploy/platforms/vercel.mjs +115 -0
- package/dist/esm/plugins/deploy/types.mjs +0 -0
- package/dist/esm/plugins/deploy/utils/generator.mjs +48 -0
- package/dist/esm/plugins/deploy/utils/index.mjs +67 -0
- package/dist/esm/plugins/initialize/index.mjs +59 -0
- package/dist/esm/plugins/serverBuild.mjs +45 -0
- package/dist/esm/plugins/serverRuntime.mjs +15 -0
- package/dist/esm/presetUltramodern.mjs +4 -0
- package/dist/esm/rsbuild.mjs +47 -0
- package/dist/esm/rslib-runtime.mjs +18 -0
- package/dist/esm/run/index.mjs +61 -0
- package/dist/esm/types/config/deploy.mjs +0 -0
- package/dist/esm/types/config/dev.mjs +0 -0
- package/dist/esm/types/config/experiments.mjs +0 -0
- package/dist/esm/types/config/html.mjs +0 -0
- package/dist/esm/types/config/index.mjs +1 -0
- package/dist/esm/types/config/output.mjs +0 -0
- package/dist/esm/types/config/performance.mjs +0 -0
- package/dist/esm/types/config/resolve.mjs +0 -0
- package/dist/esm/types/config/security.mjs +0 -0
- package/dist/esm/types/config/source.mjs +0 -0
- package/dist/esm/types/config/testing.mjs +0 -0
- package/dist/esm/types/config/tools.mjs +0 -0
- package/dist/esm/types/index.mjs +1 -0
- package/dist/esm/types/plugin.mjs +0 -0
- package/dist/esm/types/utils.mjs +0 -0
- package/dist/esm/ultramodern/designSystem.mjs +73 -0
- package/dist/esm/utils/config.mjs +11 -0
- package/dist/esm/utils/createServer.mjs +12 -0
- package/dist/esm/utils/env.mjs +12 -0
- package/dist/esm/utils/generateWatchFiles.mjs +10 -0
- package/dist/esm/utils/getConfigFile.mjs +5 -0
- package/dist/esm/utils/getSelectedEntries.mjs +26 -0
- package/dist/esm/utils/initAppContext.mjs +27 -0
- package/dist/esm/utils/loadPlugins.mjs +45 -0
- package/dist/esm/utils/printInstructions.mjs +9 -0
- package/dist/esm/utils/register.mjs +81 -0
- package/dist/esm/utils/restart.mjs +18 -0
- package/dist/esm/utils/routes.mjs +15 -0
- package/dist/esm/utils/types.mjs +0 -0
- package/dist/esm-node/baseline.mjs +47 -0
- package/dist/esm-node/builder/builder-rspack/index.mjs +7 -0
- package/dist/esm-node/builder/generator/adapterCopy.mjs +36 -0
- package/dist/esm-node/builder/generator/createBuilderProviderConfig.mjs +67 -0
- package/dist/esm-node/builder/generator/createCopyPattern.mjs +31 -0
- package/dist/esm-node/builder/generator/getBuilderEnvironments.mjs +57 -0
- package/dist/esm-node/builder/generator/index.mjs +47 -0
- package/dist/esm-node/builder/index.mjs +8 -0
- package/dist/esm-node/builder/shared/builderPlugins/adapterBasic.mjs +93 -0
- package/dist/esm-node/builder/shared/builderPlugins/adapterHtml.mjs +56 -0
- package/dist/esm-node/builder/shared/builderPlugins/adapterPrecompress.mjs +69 -0
- package/dist/esm-node/builder/shared/builderPlugins/adapterSSR.mjs +119 -0
- package/dist/esm-node/builder/shared/builderPlugins/builderHooks.mjs +18 -0
- package/dist/esm-node/builder/shared/builderPlugins/index.mjs +6 -0
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.mjs +38 -0
- package/dist/esm-node/builder/shared/bundlerPlugins/HtmlBottomTemplate.mjs +23 -0
- package/dist/esm-node/builder/shared/bundlerPlugins/RouterPlugin.mjs +158 -0
- package/dist/esm-node/builder/shared/bundlerPlugins/index.mjs +4 -0
- package/dist/esm-node/builder/shared/createCopyInfo.mjs +16 -0
- package/dist/esm-node/builder/shared/index.mjs +4 -0
- package/dist/esm-node/builder/shared/loaders/serverModuleLoader.mjs +6 -0
- package/dist/esm-node/builder/shared/types.mjs +1 -0
- package/dist/esm-node/commands/build.mjs +64 -0
- package/dist/esm-node/commands/deploy.mjs +11 -0
- package/dist/esm-node/commands/dev.mjs +78 -0
- package/dist/esm-node/commands/index.mjs +48 -0
- package/dist/esm-node/commands/info.mjs +77 -0
- package/dist/esm-node/commands/inspect.mjs +16 -0
- package/dist/esm-node/commands/runtime.mjs +117 -0
- package/dist/esm-node/commands/serve.mjs +49 -0
- package/dist/esm-node/compat/hooks.mjs +68 -0
- package/dist/esm-node/compat/index.mjs +29 -0
- package/dist/esm-node/compat/utils.mjs +96 -0
- package/dist/esm-node/config/default.mjs +92 -0
- package/dist/esm-node/config/index.mjs +3 -0
- package/dist/esm-node/config/initialize/index.mjs +8 -0
- package/dist/esm-node/config/initialize/inits.mjs +55 -0
- package/dist/esm-node/constants.mjs +4 -0
- package/dist/esm-node/defineConfig.mjs +3 -0
- package/dist/esm-node/esm/register-esm.mjs +12 -0
- package/dist/esm-node/esm/ts-paths-loader.mjs +37 -0
- package/dist/esm-node/exports/server.mjs +1 -0
- package/dist/esm-node/index.mjs +133 -0
- package/dist/esm-node/locale/en.mjs +46 -0
- package/dist/esm-node/locale/index.mjs +10 -0
- package/dist/esm-node/locale/zh.mjs +46 -0
- package/dist/esm-node/plugins/analyze/constants.mjs +9 -0
- package/dist/esm-node/plugins/analyze/getBundleEntry.mjs +54 -0
- package/dist/esm-node/plugins/analyze/getFileSystemEntry.mjs +67 -0
- package/dist/esm-node/plugins/analyze/getHtmlTemplate.mjs +98 -0
- package/dist/esm-node/plugins/analyze/getServerRoutes.mjs +131 -0
- package/dist/esm-node/plugins/analyze/index.mjs +204 -0
- package/dist/esm-node/plugins/analyze/isDefaultExportFunction.mjs +42 -0
- package/dist/esm-node/plugins/analyze/templates.mjs +23 -0
- package/dist/esm-node/plugins/analyze/utils.mjs +64 -0
- package/dist/esm-node/plugins/deploy/index.mjs +44 -0
- package/dist/esm-node/plugins/deploy/platforms/gh-pages.mjs +44 -0
- package/dist/esm-node/plugins/deploy/platforms/netlify.mjs +98 -0
- package/dist/esm-node/plugins/deploy/platforms/node.mjs +58 -0
- package/dist/esm-node/plugins/deploy/platforms/platform.mjs +1 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.cjs +57 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/netlify-entry.mjs +59 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.cjs +44 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/node-entry.mjs +46 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.cjs +57 -0
- package/dist/esm-node/plugins/deploy/platforms/templates/vercel-entry.mjs +58 -0
- package/dist/esm-node/plugins/deploy/platforms/vercel.mjs +117 -0
- package/dist/esm-node/plugins/deploy/types.mjs +1 -0
- package/dist/esm-node/plugins/deploy/utils/generator.mjs +49 -0
- package/dist/esm-node/plugins/deploy/utils/index.mjs +71 -0
- package/dist/esm-node/plugins/initialize/index.mjs +60 -0
- package/dist/esm-node/plugins/serverBuild.mjs +46 -0
- package/dist/esm-node/plugins/serverRuntime.mjs +16 -0
- package/dist/esm-node/presetUltramodern.mjs +5 -0
- package/dist/esm-node/rsbuild.mjs +48 -0
- package/dist/esm-node/rslib-runtime.mjs +19 -0
- package/dist/esm-node/run/index.mjs +62 -0
- package/dist/esm-node/types/config/deploy.mjs +1 -0
- package/dist/esm-node/types/config/dev.mjs +1 -0
- package/dist/esm-node/types/config/experiments.mjs +1 -0
- package/dist/esm-node/types/config/html.mjs +1 -0
- package/dist/esm-node/types/config/index.mjs +2 -0
- package/dist/esm-node/types/config/output.mjs +1 -0
- package/dist/esm-node/types/config/performance.mjs +1 -0
- package/dist/esm-node/types/config/resolve.mjs +1 -0
- package/dist/esm-node/types/config/security.mjs +1 -0
- package/dist/esm-node/types/config/source.mjs +1 -0
- package/dist/esm-node/types/config/testing.mjs +1 -0
- package/dist/esm-node/types/config/tools.mjs +1 -0
- package/dist/esm-node/types/index.mjs +2 -0
- package/dist/esm-node/types/plugin.mjs +1 -0
- package/dist/esm-node/types/utils.mjs +1 -0
- package/dist/esm-node/ultramodern/designSystem.mjs +74 -0
- package/dist/esm-node/utils/config.mjs +12 -0
- package/dist/esm-node/utils/createServer.mjs +13 -0
- package/dist/esm-node/utils/env.mjs +13 -0
- package/dist/esm-node/utils/generateWatchFiles.mjs +11 -0
- package/dist/esm-node/utils/getConfigFile.mjs +6 -0
- package/dist/esm-node/utils/getSelectedEntries.mjs +27 -0
- package/dist/esm-node/utils/initAppContext.mjs +28 -0
- package/dist/esm-node/utils/loadPlugins.mjs +46 -0
- package/dist/esm-node/utils/printInstructions.mjs +10 -0
- package/dist/esm-node/utils/register.mjs +83 -0
- package/dist/esm-node/utils/restart.mjs +19 -0
- package/dist/esm-node/utils/routes.mjs +16 -0
- package/dist/esm-node/utils/types.mjs +1 -0
- package/dist/types/baseline.d.ts +46 -0
- package/dist/types/builder/builder-rspack/index.d.ts +2 -0
- package/dist/types/builder/generator/adapterCopy.d.ts +3 -0
- package/dist/types/builder/generator/createBuilderProviderConfig.d.ts +3 -0
- package/dist/types/builder/generator/createCopyPattern.d.ts +16 -0
- package/dist/types/builder/generator/getBuilderEnvironments.d.ts +6 -0
- package/dist/types/builder/generator/index.d.ts +8 -0
- package/dist/types/builder/index.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/adapterBasic.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/adapterHtml.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/adapterPrecompress.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/adapterSSR.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/builderHooks.d.ts +3 -0
- package/dist/types/builder/shared/builderPlugins/index.d.ts +5 -0
- package/dist/types/builder/shared/bundlerPlugins/HtmlAsyncChunkPlugin.d.ts +7 -0
- package/dist/types/builder/shared/bundlerPlugins/HtmlBottomTemplate.d.ts +9 -0
- package/dist/types/builder/shared/bundlerPlugins/RouterPlugin.d.ts +32 -0
- package/dist/types/builder/shared/bundlerPlugins/index.d.ts +3 -0
- package/dist/types/builder/shared/createCopyInfo.d.ts +8 -0
- package/dist/types/builder/shared/index.d.ts +3 -0
- package/dist/types/builder/shared/loaders/serverModuleLoader.d.ts +3 -0
- package/dist/types/builder/shared/types.d.ts +6 -0
- package/dist/types/commands/build.d.ts +4 -0
- package/dist/types/commands/deploy.d.ts +3 -0
- package/dist/types/commands/dev.d.ts +9 -0
- package/dist/types/commands/index.d.ts +10 -0
- package/dist/types/commands/info.d.ts +18 -0
- package/dist/types/commands/inspect.d.ts +4 -0
- package/dist/types/commands/runtime.d.ts +11 -0
- package/dist/types/commands/serve.d.ts +8 -0
- package/dist/types/compat/hooks.d.ts +7 -0
- package/dist/types/compat/index.d.ts +2 -0
- package/dist/types/compat/utils.d.ts +13 -0
- package/dist/types/config/default.d.ts +3 -0
- package/dist/types/config/index.d.ts +2 -0
- package/dist/types/config/initialize/index.d.ts +3 -0
- package/dist/types/config/initialize/inits.d.ts +4 -0
- package/dist/types/constants.d.ts +2 -0
- package/dist/types/defineConfig.d.ts +11 -0
- package/dist/types/esm/register-esm.d.mts +11 -0
- package/dist/types/esm/ts-node-loader.d.mts +6 -0
- package/dist/types/esm/ts-paths-loader.d.mts +6 -0
- package/dist/types/exports/server.d.ts +1 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/locale/en.d.ts +44 -0
- package/dist/types/locale/index.d.ts +90 -0
- package/dist/types/locale/zh.d.ts +44 -0
- package/dist/types/plugins/analyze/constants.d.ts +3 -0
- package/dist/types/plugins/analyze/getBundleEntry.d.ts +4 -0
- package/dist/types/plugins/analyze/getFileSystemEntry.d.ts +7 -0
- package/dist/types/plugins/analyze/getHtmlTemplate.d.ts +27 -0
- package/dist/types/plugins/analyze/getServerRoutes.d.ts +8 -0
- package/dist/types/plugins/analyze/index.d.ts +3 -0
- package/dist/types/plugins/analyze/isDefaultExportFunction.d.ts +1 -0
- package/dist/types/plugins/analyze/templates.d.ts +5 -0
- package/dist/types/plugins/analyze/utils.d.ts +10 -0
- package/dist/types/plugins/deploy/index.d.ts +3 -0
- package/dist/types/plugins/deploy/platforms/gh-pages.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/netlify.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/node.d.ts +2 -0
- package/dist/types/plugins/deploy/platforms/platform.d.ts +17 -0
- package/dist/types/plugins/deploy/platforms/templates/netlify-entry.d.cts +2 -0
- package/dist/types/plugins/deploy/platforms/templates/netlify-entry.d.mts +2 -0
- package/dist/types/plugins/deploy/platforms/templates/node-entry.d.cts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/node-entry.d.mts +1 -0
- package/dist/types/plugins/deploy/platforms/templates/vercel-entry.d.cts +2 -0
- package/dist/types/plugins/deploy/platforms/templates/vercel-entry.d.mts +2 -0
- package/dist/types/plugins/deploy/platforms/vercel.d.ts +2 -0
- package/dist/types/plugins/deploy/types.d.ts +3 -0
- package/dist/types/plugins/deploy/utils/generator.d.ts +24 -0
- package/dist/types/plugins/deploy/utils/index.d.ts +16 -0
- package/dist/types/plugins/initialize/index.d.ts +3 -0
- package/dist/types/plugins/serverBuild.d.ts +3 -0
- package/dist/types/plugins/serverRuntime.d.ts +3 -0
- package/dist/types/presetUltramodern.d.ts +6 -0
- package/dist/types/rsbuild.d.ts +12 -0
- package/dist/types/run/index.d.ts +20 -0
- package/dist/types/types/config/deploy.d.ts +38 -0
- package/dist/types/types/config/dev.d.ts +55 -0
- package/dist/types/types/config/experiments.d.ts +3 -0
- package/dist/types/types/config/html.d.ts +3 -0
- package/dist/types/types/config/index.d.ts +48 -0
- package/dist/types/types/config/output.d.ts +61 -0
- package/dist/types/types/config/performance.d.ts +3 -0
- package/dist/types/types/config/resolve.d.ts +2 -0
- package/dist/types/types/config/security.d.ts +2 -0
- package/dist/types/types/config/source.d.ts +61 -0
- package/dist/types/types/config/testing.d.ts +8 -0
- package/dist/types/types/config/tools.d.ts +21 -0
- package/dist/types/types/index.d.ts +10 -0
- package/dist/types/types/plugin.d.ts +114 -0
- package/dist/types/types/utils.d.ts +1 -0
- package/dist/types/ultramodern/designSystem.d.ts +54 -0
- package/dist/types/utils/config.d.ts +2 -0
- package/dist/types/utils/createServer.d.ts +5 -0
- package/dist/types/utils/env.d.ts +2 -0
- package/dist/types/utils/generateWatchFiles.d.ts +2 -0
- package/dist/types/utils/getConfigFile.d.ts +1 -0
- package/dist/types/utils/getSelectedEntries.d.ts +5 -0
- package/dist/types/utils/initAppContext.d.ts +31 -0
- package/dist/types/utils/loadPlugins.d.ts +13 -0
- package/dist/types/utils/printInstructions.d.ts +3 -0
- package/dist/types/utils/register.d.ts +19 -0
- package/dist/types/utils/restart.d.ts +2 -0
- package/dist/types/utils/routes.d.ts +4 -0
- package/dist/types/utils/types.d.ts +49 -0
- package/lib/types.d.ts +252 -0
- package/package.json +138 -0
- package/rslib.config.mts +39 -0
- package/rstest.config.mts +20 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { compile } from "@modern-js/server-utils";
|
|
2
|
+
import { SERVER_DIR, SHARED_DIR, getMeta, resolveServerTsconfig } from "@modern-js/utils";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
import path from "path";
|
|
5
|
+
function checkHasCache(appDir) {
|
|
6
|
+
const tsFilepath = path.resolve(appDir, SERVER_DIR, 'cache.ts');
|
|
7
|
+
const jsfilepath = path.resolve(appDir, SERVER_DIR, 'cache.js');
|
|
8
|
+
return fs.existsSync(tsFilepath) || fs.existsSync(jsfilepath);
|
|
9
|
+
}
|
|
10
|
+
function checkHasConfig(appDir, metaName = 'modern-js') {
|
|
11
|
+
const meta = getMeta(metaName);
|
|
12
|
+
const tsFilepath = path.resolve(appDir, SERVER_DIR, `${meta}.server.ts`);
|
|
13
|
+
const jsfilepath = path.resolve(appDir, SERVER_DIR, `${meta}.server.js`);
|
|
14
|
+
return fs.existsSync(tsFilepath) || fs.existsSync(jsfilepath);
|
|
15
|
+
}
|
|
16
|
+
const serverBuild = ()=>({
|
|
17
|
+
name: '@modern-js/server-build',
|
|
18
|
+
setup (api) {
|
|
19
|
+
api.onAfterBuild(async ()=>{
|
|
20
|
+
const { appDirectory, distDirectory, metaName } = api.getAppContext();
|
|
21
|
+
if (!checkHasCache(appDirectory) && !checkHasConfig(appDirectory, metaName)) return;
|
|
22
|
+
const modernConfig = api.getNormalizedConfig();
|
|
23
|
+
const distDir = path.resolve(distDirectory);
|
|
24
|
+
const serverDir = path.resolve(appDirectory, SERVER_DIR);
|
|
25
|
+
const sharedDir = path.resolve(appDirectory, SHARED_DIR);
|
|
26
|
+
const tsconfigPath = resolveServerTsconfig(appDirectory, modernConfig?.server?.tsconfigPath);
|
|
27
|
+
const sourceDirs = [];
|
|
28
|
+
if (fs.existsSync(serverDir)) {
|
|
29
|
+
sourceDirs.push(serverDir);
|
|
30
|
+
if (fs.existsSync(sharedDir)) sourceDirs.push(sharedDir);
|
|
31
|
+
}
|
|
32
|
+
const { server } = modernConfig;
|
|
33
|
+
const { alias } = modernConfig.source;
|
|
34
|
+
if (sourceDirs.length > 0) await compile(appDirectory, {
|
|
35
|
+
server,
|
|
36
|
+
alias
|
|
37
|
+
}, {
|
|
38
|
+
sourceDirs,
|
|
39
|
+
distDir,
|
|
40
|
+
tsconfigPath
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
export default serverBuild;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const serverRuntime = ()=>({
|
|
2
|
+
name: '@modern-js/plugin-server-runtime',
|
|
3
|
+
setup (api) {
|
|
4
|
+
api.config(()=>({
|
|
5
|
+
output: {
|
|
6
|
+
externals: [
|
|
7
|
+
{
|
|
8
|
+
'@modern-js/server-runtime': '@modern-js/server-runtime'
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|
|
12
|
+
}));
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
export default serverRuntime;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { createAppBaselineConfig, withAppBaseline } from "./baseline.mjs";
|
|
2
|
+
const createPresetUltramodernConfig = (options = {})=>createAppBaselineConfig(options);
|
|
3
|
+
const presetUltramodern = (config, options = {})=>withAppBaseline(config, options);
|
|
4
|
+
export { createPresetUltramodernConfig, presetUltramodern };
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { parseRspackConfig } from "@modern-js/builder";
|
|
2
|
+
import { builderPluginAdapterBasic, builderPluginAdapterHooks } from "./builder/shared/builderPlugins/index.mjs";
|
|
3
|
+
import { DEFAULT_CONFIG_FILE } from "./constants.mjs";
|
|
4
|
+
import { getConfigFile } from "./utils/getConfigFile.mjs";
|
|
5
|
+
import { __webpack_require__ } from "./rslib-runtime.mjs";
|
|
6
|
+
import * as __rspack_external__modern_js_plugin_cli_caa09fa2 from "@modern-js/plugin/cli";
|
|
7
|
+
__webpack_require__.add({
|
|
8
|
+
"@modern-js/plugin/cli?f956" (module) {
|
|
9
|
+
module.exports = __rspack_external__modern_js_plugin_cli_caa09fa2;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
const MODERN_META_NAME = 'modern-js';
|
|
13
|
+
const { createConfigOptions: createConfigOptions } = __webpack_require__("@modern-js/plugin/cli?f956");
|
|
14
|
+
async function resolveModernRsbuildConfig(options) {
|
|
15
|
+
const { cwd = process.cwd(), metaName = MODERN_META_NAME } = options;
|
|
16
|
+
const configFile = options.configPath || getConfigFile(void 0, cwd);
|
|
17
|
+
if (!configFile) throw new Error(`Cannot find config file in ${cwd}. Please make sure you have a ${DEFAULT_CONFIG_FILE} file in your project.`);
|
|
18
|
+
const { config: modernConfig, getAppContext } = await createConfigOptions({
|
|
19
|
+
command: options.command,
|
|
20
|
+
cwd,
|
|
21
|
+
configFile,
|
|
22
|
+
metaName,
|
|
23
|
+
modifyModernConfig: options.modifyModernConfig
|
|
24
|
+
});
|
|
25
|
+
const nonStandardConfig = {
|
|
26
|
+
...modernConfig,
|
|
27
|
+
plugins: modernConfig.builderPlugins
|
|
28
|
+
};
|
|
29
|
+
const appContext = getAppContext();
|
|
30
|
+
const { rsbuildConfig, rsbuildPlugins } = await parseRspackConfig(nonStandardConfig, {
|
|
31
|
+
cwd
|
|
32
|
+
});
|
|
33
|
+
const adapterParams = {
|
|
34
|
+
appContext,
|
|
35
|
+
normalizedConfig: modernConfig
|
|
36
|
+
};
|
|
37
|
+
rsbuildConfig.plugins = [
|
|
38
|
+
...rsbuildPlugins,
|
|
39
|
+
...rsbuildConfig.plugins || [],
|
|
40
|
+
builderPluginAdapterBasic(adapterParams),
|
|
41
|
+
builderPluginAdapterHooks(adapterParams)
|
|
42
|
+
];
|
|
43
|
+
return {
|
|
44
|
+
rsbuildConfig
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
export { resolveModernRsbuildConfig };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
var __webpack_modules__ = {};
|
|
2
|
+
var __webpack_module_cache__ = {};
|
|
3
|
+
function __webpack_require__(moduleId) {
|
|
4
|
+
var cachedModule = __webpack_module_cache__[moduleId];
|
|
5
|
+
if (void 0 !== cachedModule) return cachedModule.exports;
|
|
6
|
+
var module = __webpack_module_cache__[moduleId] = {
|
|
7
|
+
exports: {}
|
|
8
|
+
};
|
|
9
|
+
__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
10
|
+
return module.exports;
|
|
11
|
+
}
|
|
12
|
+
__webpack_require__.m = __webpack_modules__;
|
|
13
|
+
(()=>{
|
|
14
|
+
__webpack_require__.add = function(modules) {
|
|
15
|
+
Object.assign(__webpack_require__.m, modules);
|
|
16
|
+
};
|
|
17
|
+
})();
|
|
18
|
+
export { __webpack_require__ };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { initAppDir } from "@modern-js/plugin/cli";
|
|
2
|
+
import { run } from "@modern-js/plugin/run";
|
|
3
|
+
import { chalk, minimist } from "@modern-js/utils";
|
|
4
|
+
import { handleSetupResult } from "../compat/hooks.mjs";
|
|
5
|
+
import { getConfigFile } from "../utils/getConfigFile.mjs";
|
|
6
|
+
import { loadInternalPlugins } from "../utils/loadPlugins.mjs";
|
|
7
|
+
async function createRunOptions({ cwd, initialLog, metaName = 'modern-js', version, internalPlugins, configFile }) {
|
|
8
|
+
const nodeVersion = process.versions.node;
|
|
9
|
+
const versionArr = nodeVersion.split('.').map(Number);
|
|
10
|
+
if (versionArr[0] <= 16) console.warn(`
|
|
11
|
+
${chalk.bgRed.white.bold(' ⚠️ CRITICAL NODE.JS VERSION ALERT ⚠️ ')}
|
|
12
|
+
|
|
13
|
+
${chalk.red.bold('Node.js 16 End-of-Life Notice:')}
|
|
14
|
+
${chalk.red('- Security updates and support have ended for Node.js 16')}
|
|
15
|
+
|
|
16
|
+
${chalk.yellow('▸ Detected Runtime:')} ${chalk.yellow.bold(`Node.js v${nodeVersion}`)}
|
|
17
|
+
${chalk.green('▸ Required Minimum:')} ${chalk.green.bold('Node.js LTS (v18.x or higher)')}
|
|
18
|
+
${chalk.green('▸ Recommended:')} ${chalk.green.bold('Node.js LTS (v22.x or higher)')}
|
|
19
|
+
|
|
20
|
+
${chalk.cyan('Immediate Action Required:')}
|
|
21
|
+
${chalk.gray('├──')} ${chalk.yellow('Recommended Upgrade')}
|
|
22
|
+
${chalk.bold('nvm install 22 --lts && nvm use 22')}
|
|
23
|
+
${chalk.gray('├──')} ${chalk.yellow('Manual Installation')}
|
|
24
|
+
${chalk.underline('https://nodejs.org/download/release/lts-hydrogen/')}
|
|
25
|
+
${chalk.gray('└──')} ${chalk.yellow('Environment Verification')}
|
|
26
|
+
${chalk.bold('node -v && npm -v')}
|
|
27
|
+
|
|
28
|
+
${chalk.hex('#AAAAAA').italic('[Security Advisory] Node.js 16 is no longer supported. Upgrade immediately for security and compatibility.')}
|
|
29
|
+
`);
|
|
30
|
+
const command = process.argv[2];
|
|
31
|
+
const cliParams = minimist(process.argv.slice(2));
|
|
32
|
+
const SUPPORT_CONFIG_PARAM_COMMANDS = [
|
|
33
|
+
'dev',
|
|
34
|
+
'build',
|
|
35
|
+
'deploy',
|
|
36
|
+
'start',
|
|
37
|
+
'serve',
|
|
38
|
+
'inspect',
|
|
39
|
+
'info',
|
|
40
|
+
'upgrade'
|
|
41
|
+
];
|
|
42
|
+
let customConfigFile;
|
|
43
|
+
if (SUPPORT_CONFIG_PARAM_COMMANDS.includes(command)) customConfigFile = cliParams.config || cliParams.c;
|
|
44
|
+
if ('new' === command) customConfigFile = cliParams['config-file'];
|
|
45
|
+
const appDirectory = await initAppDir(cwd);
|
|
46
|
+
const finalConfigFile = customConfigFile || getConfigFile(configFile);
|
|
47
|
+
const plugins = await loadInternalPlugins(appDirectory, internalPlugins);
|
|
48
|
+
return {
|
|
49
|
+
cwd,
|
|
50
|
+
initialLog: initialLog || `Modern.js Framework v${version}`,
|
|
51
|
+
configFile: finalConfigFile,
|
|
52
|
+
metaName,
|
|
53
|
+
internalPlugins: plugins,
|
|
54
|
+
handleSetupResult: handleSetupResult
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async function run_run(options) {
|
|
58
|
+
const runOptions = await createRunOptions(options);
|
|
59
|
+
await run(runOptions);
|
|
60
|
+
}
|
|
61
|
+
export { createRunOptions, run_run as run };
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./output.mjs";
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./config/index.mjs";
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
const DESIGN_SYSTEM_MODES = [
|
|
2
|
+
'off',
|
|
3
|
+
'tokens',
|
|
4
|
+
'components',
|
|
5
|
+
'strict'
|
|
6
|
+
];
|
|
7
|
+
const DESIGN_SYSTEM_OVERRIDE_LAYERS = [
|
|
8
|
+
'brand',
|
|
9
|
+
'vertical',
|
|
10
|
+
'application'
|
|
11
|
+
];
|
|
12
|
+
const VALID_MODES = new Set(DESIGN_SYSTEM_MODES);
|
|
13
|
+
const VALID_OVERRIDE_LAYERS = new Set(DESIGN_SYSTEM_OVERRIDE_LAYERS);
|
|
14
|
+
const createValidationResult = (issues)=>({
|
|
15
|
+
valid: 0 === issues.length,
|
|
16
|
+
issues
|
|
17
|
+
});
|
|
18
|
+
const addIssue = (issues, path, message)=>{
|
|
19
|
+
issues.push({
|
|
20
|
+
path,
|
|
21
|
+
message
|
|
22
|
+
});
|
|
23
|
+
};
|
|
24
|
+
const createDesignSystemTokenPackMap = (tokenPacks)=>new Map(tokenPacks.map((tokenPack)=>[
|
|
25
|
+
tokenPack.id,
|
|
26
|
+
tokenPack
|
|
27
|
+
]));
|
|
28
|
+
const validateDesignSystemConsumerCompatibility = (vertical, tokenPack, path = 'vertical')=>{
|
|
29
|
+
const issues = [];
|
|
30
|
+
const consumers = vertical.consumers ?? [];
|
|
31
|
+
for (const [consumerIndex, consumer] of consumers.entries()){
|
|
32
|
+
const consumerPath = `${path}.consumers[${consumerIndex}]`;
|
|
33
|
+
if (consumer.unsupportedModes?.includes(vertical.mode)) addIssue(issues, `${consumerPath}.unsupportedModes`, `consumer "${consumer.id}" does not support "${vertical.mode}" mode`);
|
|
34
|
+
if (!tokenPack) continue;
|
|
35
|
+
const expectedVersion = consumer.tokenPackVersions?.[tokenPack.id];
|
|
36
|
+
if (expectedVersion && expectedVersion !== tokenPack.version) addIssue(issues, `${consumerPath}.tokenPackVersions.${tokenPack.id}`, `consumer "${consumer.id}" requires "${tokenPack.id}" version "${expectedVersion}" but received "${tokenPack.version}"`);
|
|
37
|
+
for (const tokenName of consumer.requiredTokens ?? [])if (!(tokenName in tokenPack.tokens)) addIssue(issues, `${consumerPath}.requiredTokens`, `consumer "${consumer.id}" requires missing token "${tokenName}" from "${tokenPack.id}"`);
|
|
38
|
+
}
|
|
39
|
+
return createValidationResult(issues);
|
|
40
|
+
};
|
|
41
|
+
const validateDesignSystemContract = (contract)=>{
|
|
42
|
+
const issues = [];
|
|
43
|
+
const tokenPackMap = createDesignSystemTokenPackMap(contract.tokenPacks);
|
|
44
|
+
for (const [tokenPackIndex, tokenPack] of contract.tokenPacks.entries()){
|
|
45
|
+
const tokenPackPath = `tokenPacks[${tokenPackIndex}]`;
|
|
46
|
+
if (tokenPackMap.get(tokenPack.id) !== tokenPack) addIssue(issues, `${tokenPackPath}.id`, `duplicate token pack id "${tokenPack.id}"`);
|
|
47
|
+
if (0 === Object.keys(tokenPack.tokens).length) addIssue(issues, `${tokenPackPath}.tokens`, `token pack "${tokenPack.id}" must define at least one token`);
|
|
48
|
+
}
|
|
49
|
+
for (const [verticalName, vertical] of Object.entries(contract.verticals)){
|
|
50
|
+
const verticalPath = `verticals.${verticalName}`;
|
|
51
|
+
const tokenPack = vertical.tokenPack ? tokenPackMap.get(vertical.tokenPack) : void 0;
|
|
52
|
+
if (!VALID_MODES.has(vertical.mode)) addIssue(issues, `${verticalPath}.mode`, `unsupported design system mode "${vertical.mode}"`);
|
|
53
|
+
if ('off' !== vertical.mode && !vertical.tokenPack) addIssue(issues, `${verticalPath}.tokenPack`, `vertical "${verticalName}" must select a token pack when mode is "${vertical.mode}"`);
|
|
54
|
+
if (vertical.tokenPack && !tokenPack) addIssue(issues, `${verticalPath}.tokenPack`, `unknown token pack "${vertical.tokenPack}"`);
|
|
55
|
+
for (const [overrideIndex, override] of (vertical.overrides ?? []).entries())if (!VALID_OVERRIDE_LAYERS.has(override.layer)) addIssue(issues, `${verticalPath}.overrides[${overrideIndex}].layer`, `override layer "${override.layer}" is not approved`);
|
|
56
|
+
if (vertical.pin) {
|
|
57
|
+
const pinnedTokenPack = tokenPackMap.get(vertical.pin.tokenPack);
|
|
58
|
+
const rollbackTokenPack = tokenPackMap.get(vertical.pin.rollback.tokenPack);
|
|
59
|
+
if (pinnedTokenPack) {
|
|
60
|
+
if (pinnedTokenPack.version !== vertical.pin.version) addIssue(issues, `${verticalPath}.pin.version`, `pinned version "${vertical.pin.version}" does not match token pack "${vertical.pin.tokenPack}" version "${pinnedTokenPack.version}"`);
|
|
61
|
+
} else addIssue(issues, `${verticalPath}.pin.tokenPack`, `unknown pinned token pack "${vertical.pin.tokenPack}"`);
|
|
62
|
+
if (vertical.tokenPack && vertical.pin.tokenPack !== vertical.tokenPack) addIssue(issues, `${verticalPath}.pin.tokenPack`, `pinned token pack "${vertical.pin.tokenPack}" must match selected token pack "${vertical.tokenPack}"`);
|
|
63
|
+
if (rollbackTokenPack) {
|
|
64
|
+
if (rollbackTokenPack.version !== vertical.pin.rollback.version) addIssue(issues, `${verticalPath}.pin.rollback.version`, `rollback version "${vertical.pin.rollback.version}" does not match token pack "${vertical.pin.rollback.tokenPack}" version "${rollbackTokenPack.version}"`);
|
|
65
|
+
} else addIssue(issues, `${verticalPath}.pin.rollback.tokenPack`, `unknown rollback token pack "${vertical.pin.rollback.tokenPack}"`);
|
|
66
|
+
if (!vertical.pin.rollback.reason) addIssue(issues, `${verticalPath}.pin.rollback.reason`, 'rollback metadata must include a reason');
|
|
67
|
+
}
|
|
68
|
+
const compatibility = validateDesignSystemConsumerCompatibility(vertical, tokenPack, verticalPath);
|
|
69
|
+
issues.push(...compatibility.issues);
|
|
70
|
+
}
|
|
71
|
+
return createValidationResult(issues);
|
|
72
|
+
};
|
|
73
|
+
export { DESIGN_SYSTEM_MODES, DESIGN_SYSTEM_OVERRIDE_LAYERS, createDesignSystemTokenPackMap, validateDesignSystemConsumerCompatibility, validateDesignSystemContract };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { OUTPUT_CONFIG_FILE, ensureAbsolutePath, fs } from "@modern-js/utils";
|
|
2
|
+
import { stringify } from "flatted";
|
|
3
|
+
import * as __rspack_external_path from "path";
|
|
4
|
+
const emitResolvedConfig = async (appDirectory, resolvedConfig)=>{
|
|
5
|
+
const outputPath = ensureAbsolutePath(appDirectory, __rspack_external_path.join(resolvedConfig.output.distPath?.root || './dist', OUTPUT_CONFIG_FILE));
|
|
6
|
+
const output = stringify(resolvedConfig);
|
|
7
|
+
await fs.writeFile(outputPath, output, {
|
|
8
|
+
encoding: 'utf-8'
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
export { emitResolvedConfig };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
let server = null;
|
|
2
|
+
const getServer = ()=>server;
|
|
3
|
+
const setServer = (newServer)=>{
|
|
4
|
+
server = newServer;
|
|
5
|
+
};
|
|
6
|
+
const closeServer = async ()=>{
|
|
7
|
+
if (server) {
|
|
8
|
+
server.close();
|
|
9
|
+
server = null;
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export { closeServer, getServer, setServer };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { cutNameByHyphen } from "@modern-js/utils/universal";
|
|
2
|
+
function getAutoInjectEnv(appContext) {
|
|
3
|
+
const { metaName } = appContext;
|
|
4
|
+
const prefix = `${cutNameByHyphen(metaName)}_`.toUpperCase();
|
|
5
|
+
const envReg = new RegExp(`^${prefix}`);
|
|
6
|
+
return Object.keys(process.env).reduce((prev, key)=>{
|
|
7
|
+
const value = process.env[key];
|
|
8
|
+
if (envReg.test(key) && void 0 !== value) prev[`process.env.${key}`] = value;
|
|
9
|
+
return prev;
|
|
10
|
+
}, {});
|
|
11
|
+
}
|
|
12
|
+
export { getAutoInjectEnv };
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
async function generateWatchFiles(appContext, configDir) {
|
|
3
|
+
const { appDirectory, configFile } = appContext;
|
|
4
|
+
const configPath = path.join(appDirectory, configDir || '');
|
|
5
|
+
return [
|
|
6
|
+
`${configPath}/html`,
|
|
7
|
+
configFile || './config'
|
|
8
|
+
];
|
|
9
|
+
}
|
|
10
|
+
export { generateWatchFiles };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { CONFIG_FILE_EXTENSIONS, findExists } from "@modern-js/utils";
|
|
2
|
+
import path from "path";
|
|
3
|
+
import { DEFAULT_CONFIG_FILE } from "../constants.mjs";
|
|
4
|
+
const getConfigFile = (configFile, cwd = process.cwd())=>findExists(CONFIG_FILE_EXTENSIONS.map((extension)=>path.resolve(cwd, `${configFile || DEFAULT_CONFIG_FILE}${extension}`)));
|
|
5
|
+
export { getConfigFile };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { chalk, inquirer } from "@modern-js/utils";
|
|
2
|
+
import { i18n, localeKeys } from "../locale/index.mjs";
|
|
3
|
+
const getSelectedEntries = async (entry, entrypoints)=>{
|
|
4
|
+
const entryNames = entrypoints.map((e)=>e.entryName);
|
|
5
|
+
if (!entry) return entryNames;
|
|
6
|
+
if ('boolean' == typeof entry) {
|
|
7
|
+
const { selected } = await inquirer.prompt([
|
|
8
|
+
{
|
|
9
|
+
type: 'checkbox',
|
|
10
|
+
name: 'selected',
|
|
11
|
+
choices: entryNames,
|
|
12
|
+
message: i18n.t(localeKeys.command.dev.selectEntry),
|
|
13
|
+
validate (answer) {
|
|
14
|
+
if (answer.length < 1) return i18n.t(localeKeys.command.dev.requireEntry);
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
]);
|
|
19
|
+
return selected;
|
|
20
|
+
}
|
|
21
|
+
entry.forEach((name)=>{
|
|
22
|
+
if (!entryNames.includes(name)) throw new Error(`Can not found entry ${chalk.yellow(name)}, the entry should be one of ${chalk.yellow(entryNames.join(', '))}`);
|
|
23
|
+
});
|
|
24
|
+
return entry;
|
|
25
|
+
};
|
|
26
|
+
export { getSelectedEntries };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { address, fs } from "@modern-js/utils";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const initAppContext = ({ metaName, appDirectory, runtimeConfigFile, options, tempDir })=>{
|
|
4
|
+
const { apiDir = 'api', sharedDir = 'shared', bffRuntimeFramework = 'hono' } = options || {};
|
|
5
|
+
const pkgPath = path.resolve(appDirectory, './package.json');
|
|
6
|
+
const moduleType = fs.existsSync(pkgPath) ? fs.readJSONSync(pkgPath).type || 'commonjs' : 'commonjs';
|
|
7
|
+
return {
|
|
8
|
+
runtimeConfigFile,
|
|
9
|
+
ip: address.ip(),
|
|
10
|
+
port: 0,
|
|
11
|
+
moduleType,
|
|
12
|
+
apiDirectory: path.resolve(appDirectory, apiDir),
|
|
13
|
+
lambdaDirectory: path.resolve(appDirectory, apiDir, 'lambda'),
|
|
14
|
+
sharedDirectory: path.resolve(appDirectory, sharedDir),
|
|
15
|
+
serverPlugins: [],
|
|
16
|
+
internalDirectory: path.resolve(appDirectory, tempDir || `./node_modules/.${metaName}`),
|
|
17
|
+
htmlTemplates: {},
|
|
18
|
+
serverRoutes: [],
|
|
19
|
+
entrypoints: [],
|
|
20
|
+
checkedEntries: [],
|
|
21
|
+
apiOnly: false,
|
|
22
|
+
internalDirAlias: `@_${metaName.replace(/-/g, '_')}_internal`,
|
|
23
|
+
internalSrcAlias: `@_${metaName.replace(/-/g, '_')}_src`,
|
|
24
|
+
bffRuntimeFramework
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export { initAppContext };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { loadServerPlugins } from "@modern-js/server-core/node";
|
|
2
|
+
import { compatibleRequire, createDebugger, dynamicImport, getInternalPlugins, tryResolve } from "@modern-js/utils";
|
|
3
|
+
const debug = createDebugger('load-plugins');
|
|
4
|
+
async function getServerPlugins(api, metaName = 'modern-js') {
|
|
5
|
+
const hooks = api.getHooks();
|
|
6
|
+
const { plugins } = await hooks._internalServerPlugins.call({
|
|
7
|
+
plugins: []
|
|
8
|
+
});
|
|
9
|
+
const filtedPlugins = plugins.filter((plugin)=>plugin.name.includes(metaName));
|
|
10
|
+
api.updateAppContext({
|
|
11
|
+
serverPlugins: filtedPlugins
|
|
12
|
+
});
|
|
13
|
+
return filtedPlugins;
|
|
14
|
+
}
|
|
15
|
+
async function loadPlugins_loadServerPlugins(api, appDirectory, metaName) {
|
|
16
|
+
const plugins = await getServerPlugins(api, metaName);
|
|
17
|
+
const instances = await loadServerPlugins(plugins, appDirectory);
|
|
18
|
+
return instances;
|
|
19
|
+
}
|
|
20
|
+
const resolveCliPlugin = async (p, appDirectory)=>{
|
|
21
|
+
const pkg = 'string' == typeof p ? p : p[0];
|
|
22
|
+
const pluginOptions = 'string' == typeof p ? void 0 : p[1];
|
|
23
|
+
const path = tryResolve(pkg, appDirectory);
|
|
24
|
+
let module;
|
|
25
|
+
try {
|
|
26
|
+
module = await compatibleRequire(path);
|
|
27
|
+
} catch (e) {
|
|
28
|
+
({ default: module } = await dynamicImport(path));
|
|
29
|
+
}
|
|
30
|
+
if ('function' == typeof module) {
|
|
31
|
+
const result = module(pluginOptions);
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
return module;
|
|
35
|
+
};
|
|
36
|
+
const loadInternalPlugins = async (appDirectory, internalPlugins)=>{
|
|
37
|
+
const plugins = getInternalPlugins(appDirectory, internalPlugins);
|
|
38
|
+
const loadedPlugins = await Promise.all(plugins.map((plugin)=>{
|
|
39
|
+
const loadedPlugin = resolveCliPlugin(plugin, appDirectory);
|
|
40
|
+
debug("resolve plugin %s: %s", plugin, loadedPlugin);
|
|
41
|
+
return loadedPlugin;
|
|
42
|
+
}));
|
|
43
|
+
return loadedPlugins;
|
|
44
|
+
};
|
|
45
|
+
export { getServerPlugins, loadInternalPlugins, loadPlugins_loadServerPlugins as loadServerPlugins };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { logger, prettyInstructions } from "@modern-js/utils";
|
|
2
|
+
const printInstructions = async (hooks, appContext, config)=>{
|
|
3
|
+
const message = prettyInstructions(appContext, config);
|
|
4
|
+
const { instructions } = await hooks.onBeforePrintInstructions.call({
|
|
5
|
+
instructions: message
|
|
6
|
+
});
|
|
7
|
+
logger.log(instructions);
|
|
8
|
+
};
|
|
9
|
+
export { printInstructions };
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import node_path from "node:path";
|
|
2
|
+
import { fs, getAliasConfig, mergeAlias, resolveServerTsconfig } from "@modern-js/utils";
|
|
3
|
+
const normalizePathValue = ({ key, value, absoluteBaseUrl })=>{
|
|
4
|
+
let normalizedValue = value;
|
|
5
|
+
if (key.startsWith('@') && normalizedValue.startsWith('@')) try {
|
|
6
|
+
normalizedValue = require.resolve(normalizedValue, {
|
|
7
|
+
paths: [
|
|
8
|
+
process.cwd(),
|
|
9
|
+
...module.paths
|
|
10
|
+
]
|
|
11
|
+
});
|
|
12
|
+
} catch {}
|
|
13
|
+
return node_path.isAbsolute(normalizedValue) ? node_path.relative(absoluteBaseUrl, normalizedValue) : normalizedValue;
|
|
14
|
+
};
|
|
15
|
+
const normalizePathValues = ({ key, value, absoluteBaseUrl })=>{
|
|
16
|
+
const values = Array.isArray(value) ? value : [
|
|
17
|
+
value
|
|
18
|
+
];
|
|
19
|
+
return values.map((item)=>normalizePathValue({
|
|
20
|
+
key,
|
|
21
|
+
value: item,
|
|
22
|
+
absoluteBaseUrl
|
|
23
|
+
}));
|
|
24
|
+
};
|
|
25
|
+
const addResolvedAlias = (paths, key, values)=>{
|
|
26
|
+
if (!key || paths[key]) return;
|
|
27
|
+
paths[key] = values;
|
|
28
|
+
};
|
|
29
|
+
const createRuntimePaths = ({ alias, paths, absoluteBaseUrl })=>{
|
|
30
|
+
const mergedAlias = mergeAlias(alias);
|
|
31
|
+
const normalizedPaths = Object.keys(paths).reduce((result, key)=>{
|
|
32
|
+
addResolvedAlias(result, key.endsWith('$') ? key.slice(0, -1) : key, normalizePathValues({
|
|
33
|
+
key,
|
|
34
|
+
value: paths[key],
|
|
35
|
+
absoluteBaseUrl
|
|
36
|
+
}));
|
|
37
|
+
return result;
|
|
38
|
+
}, {});
|
|
39
|
+
Object.keys(mergedAlias).forEach((key)=>{
|
|
40
|
+
if (key.includes('*') || key.endsWith('$')) return;
|
|
41
|
+
addResolvedAlias(normalizedPaths, `${key}/*`, normalizePathValues({
|
|
42
|
+
key,
|
|
43
|
+
value: mergedAlias[key],
|
|
44
|
+
absoluteBaseUrl
|
|
45
|
+
}).map((value)=>`${value}/*`));
|
|
46
|
+
});
|
|
47
|
+
return normalizedPaths;
|
|
48
|
+
};
|
|
49
|
+
const resolveTsRuntimeRegisterMode = ()=>{
|
|
50
|
+
const hasNativeTypeScriptSupport = process.features?.typescript;
|
|
51
|
+
const nodeMajorVersion = Number(process.versions.node.split('.')[0]);
|
|
52
|
+
const supportsNativeTypeScript = void 0 === hasNativeTypeScriptSupport ? nodeMajorVersion >= 22 : false !== hasNativeTypeScriptSupport;
|
|
53
|
+
if (supportsNativeTypeScript) return 'node-loader';
|
|
54
|
+
return 'unsupported';
|
|
55
|
+
};
|
|
56
|
+
const setupTsRuntime = async (appDir, distDir, alias, options = {})=>{
|
|
57
|
+
const tsconfigPath = resolveServerTsconfig(appDir, options.tsconfigPath);
|
|
58
|
+
const isTsProject = await fs.pathExists(tsconfigPath);
|
|
59
|
+
if (!isTsProject) return;
|
|
60
|
+
const registerMode = resolveTsRuntimeRegisterMode();
|
|
61
|
+
const aliasConfig = getAliasConfig(alias, {
|
|
62
|
+
appDirectory: appDir,
|
|
63
|
+
tsconfigPath
|
|
64
|
+
});
|
|
65
|
+
const { paths = {}, absoluteBaseUrl = './' } = aliasConfig;
|
|
66
|
+
const runtimePaths = createRuntimePaths({
|
|
67
|
+
alias,
|
|
68
|
+
paths,
|
|
69
|
+
absoluteBaseUrl
|
|
70
|
+
});
|
|
71
|
+
if ('unsupported' === registerMode) return;
|
|
72
|
+
if ('node-loader' === registerMode) {
|
|
73
|
+
const { registerPathsLoader } = await import("../esm/register-esm.mjs");
|
|
74
|
+
await registerPathsLoader({
|
|
75
|
+
appDir,
|
|
76
|
+
baseUrl: absoluteBaseUrl || './',
|
|
77
|
+
paths: runtimePaths
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
export { resolveTsRuntimeRegisterMode, setupTsRuntime };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { cli } from "@modern-js/plugin/cli";
|
|
2
|
+
import { chalk, clearConsole, getFullArgv, logger } from "@modern-js/utils";
|
|
3
|
+
import { program } from "@modern-js/utils/commander";
|
|
4
|
+
async function restart(hooks, filename) {
|
|
5
|
+
clearConsole();
|
|
6
|
+
logger.info(`Restart because ${chalk.yellow(filename)} is changed...\n`);
|
|
7
|
+
let hasGetError = false;
|
|
8
|
+
await hooks.onBeforeRestart.call();
|
|
9
|
+
try {
|
|
10
|
+
await cli.init(cli.getPrevInitOptions());
|
|
11
|
+
} catch (err) {
|
|
12
|
+
console.error(err);
|
|
13
|
+
hasGetError = true;
|
|
14
|
+
} finally{
|
|
15
|
+
if (!hasGetError) program.parse(getFullArgv());
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export { restart };
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { MAIN_ENTRY_NAME, ROUTE_SPEC_FILE, fs } from "@modern-js/utils";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const generateRoutes = async (appContext)=>{
|
|
4
|
+
const { serverRoutes, distDirectory } = appContext;
|
|
5
|
+
const output = JSON.stringify({
|
|
6
|
+
routes: serverRoutes
|
|
7
|
+
}, null, 2);
|
|
8
|
+
await fs.outputFile(path.join(distDirectory, ROUTE_SPEC_FILE), output);
|
|
9
|
+
};
|
|
10
|
+
const getPathWithoutExt = (filename)=>{
|
|
11
|
+
const extname = path.extname(filename);
|
|
12
|
+
return filename.slice(0, -extname.length);
|
|
13
|
+
};
|
|
14
|
+
const isMainEntry = (entryName, mainEntryName)=>entryName === (mainEntryName || MAIN_ENTRY_NAME);
|
|
15
|
+
export { generateRoutes, getPathWithoutExt, isMainEntry };
|
|
File without changes
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import "node:module";
|
|
2
|
+
import { mergeConfig } from "@modern-js/plugin/cli";
|
|
3
|
+
const createAppBaselineConfig = (options = {})=>{
|
|
4
|
+
const { appId = 'app', enableBffRequestId = true, enableTelemetry = true, enableTelemetryExporters = true, otlpEndpoint = process.env.MODERN_TELEMETRY_OTLP_ENDPOINT || 'http://127.0.0.1:4318/v1/logs', victoriaMetricsEndpoint = process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT || 'http://127.0.0.1:8428/api/v1/import/prometheus', telemetryFailLoudStartup = true, enableModuleFederationSSR = true } = options;
|
|
5
|
+
const server = {};
|
|
6
|
+
if (enableTelemetry) {
|
|
7
|
+
server.telemetry = {
|
|
8
|
+
enabled: true,
|
|
9
|
+
failLoudStartup: telemetryFailLoudStartup
|
|
10
|
+
};
|
|
11
|
+
if (enableTelemetryExporters) server.telemetry.exporters = {
|
|
12
|
+
otlp: {
|
|
13
|
+
enabled: true,
|
|
14
|
+
endpoint: otlpEndpoint
|
|
15
|
+
},
|
|
16
|
+
victoriaMetrics: {
|
|
17
|
+
enabled: true,
|
|
18
|
+
endpoint: victoriaMetricsEndpoint
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
if (enableModuleFederationSSR) server.ssr = {
|
|
23
|
+
mode: 'stream',
|
|
24
|
+
moduleFederationAppSSR: true
|
|
25
|
+
};
|
|
26
|
+
const baselineConfig = {
|
|
27
|
+
output: {
|
|
28
|
+
precompress: true
|
|
29
|
+
},
|
|
30
|
+
performance: {
|
|
31
|
+
rsdoctor: {
|
|
32
|
+
enabled: 'production' === process.env.NODE_ENV,
|
|
33
|
+
disableClientServer: true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
server
|
|
37
|
+
};
|
|
38
|
+
if (enableBffRequestId) baselineConfig.bff = {
|
|
39
|
+
requestId: appId
|
|
40
|
+
};
|
|
41
|
+
return baselineConfig;
|
|
42
|
+
};
|
|
43
|
+
const withAppBaseline = (config, options = {})=>mergeConfig([
|
|
44
|
+
createAppBaselineConfig(options),
|
|
45
|
+
config
|
|
46
|
+
]);
|
|
47
|
+
export { createAppBaselineConfig, withAppBaseline };
|