@bleedingdev/modern-js-sandpack-react 3.2.0-ultramodern.0 → 3.2.0-ultramodern.1
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.
|
@@ -32,22 +32,22 @@ const MWAFiles = {
|
|
|
32
32
|
".browserslistrc": "chrome >= 87\nedge >= 88\nfirefox >= 78\nsafari >= 14\n",
|
|
33
33
|
".gitignore": ".DS_Store\n\n.pnp\n.pnp.js\n.env.local\n.env.*.local\n.history\n*.log*\n\nnode_modules/\n.yarn-integrity\n.pnpm-store/\n*.tsbuildinfo\n.changeset/pre.json\n\ndist/\ncoverage/\nrelease/\noutput/\noutput_resource/\nlog/\n\n.vscode/**/*\n!.vscode/settings.json\n!.vscode/extensions.json\n.idea/\n\n**/*/typings/auto-generated\n\nmodern.config.local.*\n",
|
|
34
34
|
".npmrc": "strict-peer-dependencies=false\n",
|
|
35
|
-
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.
|
|
36
|
-
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://
|
|
35
|
+
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",\n "vcs": {\n "enabled": true,\n "defaultBranch": "main",\n "clientKind": "git",\n "useIgnoreFile": true\n },\n "formatter": {\n "enabled": true,\n "indentStyle": "space"\n },\n "javascript": {\n "formatter": {\n "quoteStyle": "single",\n "arrowParentheses": "asNeeded",\n "jsxQuoteStyle": "double",\n "lineWidth": 80\n }\n },\n "linter": {\n "enabled": true,\n "rules": {\n "recommended": true,\n "suspicious": {\n "noDuplicateFontNames": "off"\n }\n }\n },\n "assist": { "actions": { "source": { "organizeImports": "on" } } },\n "files": {\n "ignoreUnknown": true,\n "includes": [\n "**",\n "!**/.vscode/**/*",\n "!**/node_modules/**/*",\n "!**/dist/**/*"\n ]\n }\n}\n',
|
|
36
|
+
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n ],\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n otlpEndpoint: process.env.MODERN_TELEMETRY_OTLP_ENDPOINT,\n victoriaMetricsEndpoint: process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT,\n },\n ),\n);\n",
|
|
37
37
|
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "ultramodern:check": "node ./scripts/validate-ultramodern.mjs",\n "lint": "biome check",\n "prepare": "simple-git-hooks"\n },\n "engines": {\n "node": ">=20"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "biome check --files-ignore-unknown=true"\n ]\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "dependencies": {\n "@modern-js/runtime": "3.2.0",\n "react": "^19.2.3",\n "react-dom": "^19.2.0"\n },\n "devDependencies": {\n "@modern-js/app-tools": "3.2.0",\n "@modern-js/tsconfig": "3.2.0",\n "@biomejs/biome": "1.9.4",\n "@typescript/native-preview": "7.0.0-dev.20260516.1",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "lint-staged": "~15.4.0",\n "simple-git-hooks": "^2.11.1",\n "rimraf": "^6.0.1"\n }\n}\n',
|
|
38
38
|
"postcss.config.mjs": "",
|
|
39
39
|
"tailwind.config.ts": "",
|
|
40
40
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"baseUrl\": \"./\",\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \"./src\"\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
41
41
|
"scripts/validate-ultramodern.mjs": "import fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve(process.cwd(), 'modern.config.ts');\nconst templateManifestPath = path.resolve(\n process.cwd(),\n '.modernjs/mv-template-manifest.json',\n);\n\nif (!fs.existsSync(configPath)) {\n console.error('modern.config.ts not found');\n process.exit(1);\n}\n\nconst content = fs.readFileSync(configPath, 'utf8');\nconst requiredTokens = [\n 'presetUltramodern(',\n 'appTools()',\n 'enableModuleFederationSSR',\n 'enableBffRequestId',\n 'enableTelemetryExporters',\n];\nconst missing = requiredTokens.filter(token => !content.includes(token));\n\nif (missing.length > 0) {\n console.error(\n `Ultramodern contract check failed. Missing tokens: ${missing.join(', ')}`,\n );\n process.exit(1);\n}\n\nif (!fs.existsSync(templateManifestPath)) {\n console.error('.modernjs/mv-template-manifest.json not found');\n process.exit(1);\n}\n\nconst templateManifest = JSON.parse(\n fs.readFileSync(templateManifestPath, 'utf8'),\n);\nconst requiredDeniedPaths = [\n '.git/**',\n '.github/**',\n '.npmrc',\n '.yarnrc',\n '.env',\n '.env.*',\n 'node_modules/**',\n 'dist/**',\n];\nconst requiredPostMaterialization = [\n 'ultramodern-contract-check',\n 'dependency-install-with-lifecycle-deny',\n 'template-manifest-retained',\n];\nconst manifestErrors = [];\n\nif (templateManifest.schemaVersion !== 1) {\n manifestErrors.push('schemaVersion');\n}\n\nif (templateManifest.source?.type !== 'builtin') {\n manifestErrors.push('source.type');\n}\n\nif (\n !Array.isArray(templateManifest.integrity?.checksums) ||\n !templateManifest.integrity.checksums.some(\n checksum =>\n checksum.algorithm === 'sha256' &&\n checksum.scope === 'source-tree' &&\n /^[0-9a-f]{64}$/.test(checksum.value),\n )\n) {\n manifestErrors.push('integrity.checksums[source-tree]');\n}\n\nfor (const deniedPath of requiredDeniedPaths) {\n if (!templateManifest.materialization?.deniedPaths?.includes(deniedPath)) {\n manifestErrors.push(`materialization.deniedPaths:${deniedPath}`);\n }\n}\n\nif (templateManifest.lifecyclePolicy?.denyByDefault !== true) {\n manifestErrors.push('lifecyclePolicy.denyByDefault');\n}\n\nfor (const token of requiredPostMaterialization) {\n if (!templateManifest.validation?.postMaterializationValidation?.includes(token)) {\n manifestErrors.push(`validation.postMaterializationValidation:${token}`);\n }\n}\n\nif (manifestErrors.length > 0) {\n console.error(\n `Ultramodern template manifest check failed. Invalid fields: ${manifestErrors.join(\n ', ',\n )}`,\n );\n process.exit(1);\n}\n\nconsole.log('Ultramodern contract check passed.');\n",
|
|
42
|
+
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
42
43
|
"api/effect/index.ts": "",
|
|
43
44
|
"api/lambda/hello.ts": "",
|
|
44
|
-
"
|
|
45
|
+
"shared/effect/api.ts": "",
|
|
45
46
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n",
|
|
47
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\n\nexport default defineRuntimeConfig({\n});\n",
|
|
46
48
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;\n background: linear-gradient(to bottom, transparent, #fff) #eceeef;\n}\n\np {\n margin: 0;\n}\n\n* {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n\n.container-box {\n min-height: 100vh;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-top: 10px;\n}\n\nmain {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.title {\n display: flex;\n margin: 4rem 0 4rem;\n align-items: center;\n font-size: 4rem;\n font-weight: 600;\n}\n\n.logo {\n width: 6rem;\n margin: 7px 0 0 1rem;\n}\n\n.name {\n color: #4ecaff;\n}\n\n.description {\n text-align: center;\n line-height: 1.5;\n font-size: 1.3rem;\n color: #1b3a42;\n margin-bottom: 5rem;\n}\n\n.code {\n background: #fafafa;\n border-radius: 12px;\n padding: 0.6rem 0.9rem;\n font-size: 1.05rem;\n font-family:\n Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,\n Bitstream Vera Sans Mono, Courier New, monospace;\n}\n\n.container-box .grid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1100px;\n margin-top: 3rem;\n}\n\n.card {\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100px;\n color: inherit;\n text-decoration: none;\n transition: 0.15s ease;\n width: 45%;\n}\n\n.card:hover,\n.card:focus {\n transform: scale(1.05);\n}\n\n.card h2 {\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n margin: 0;\n padding: 0;\n}\n\n.card p {\n opacity: 0.6;\n font-size: 0.9rem;\n line-height: 1.5;\n margin-top: 1rem;\n}\n\n.arrow-right {\n width: 1.3rem;\n margin-left: 0.5rem;\n margin-top: 3px;\n}\n",
|
|
47
49
|
"src/routes/layout.tsx": "import { Outlet } from '@modern-js/runtime/';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
48
|
-
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n
|
|
49
|
-
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
50
|
-
"shared/effect/api.ts": ""
|
|
50
|
+
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n UltraModern.js 3.0\n <img\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n alt="UltraModern.js Logo"\n />\n <p className="name">presetUltramodern</p>\n </div>\n <p className="description">\n This starter ships the public <code className="code">presetUltramodern(...)</code> profile. Start in\n <code className="code">modern.config.ts</code>, keep\n <code className="code">pnpm run ultramodern:check</code> green, and\n tune the generated preset only where your app needs a softer lane.\n </p>\n <div className="grid">\n <a\n href="https://bleedingdev.github.io/ultramodern.js/guides/get-started/ultramodern.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n UltraModern.js Guide\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Guide"\n />\n </h2>\n <p>Review the MV-first, TanStack-ready, Effect-ready public preset.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Configure presetUltramodern\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Tutorials"\n />\n </h2>\n <p>Tune the generated defaults in <code className="code">modern.config.ts</code>.</p>\n </a>\n <a\n href="https://github.com/BleedingDev/ultramodern.js/blob/main-ultramodern/packages/toolkit/create/template/.github/workflows/ultramodern-gates.yml.handlebars"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Ultramodern Gates\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Config"\n />\n </h2>\n <p>The starter includes a PR workflow for <code className="code">ultramodern:check</code> and build.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/bff/effect.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n BFF + Effect\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Github"\n />\n </h2>\n <p>Keep Effect as the preferred BFF lane while Hono stays an explicit fallback.</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n'
|
|
51
51
|
};
|
|
52
52
|
exports.MWAFiles = __webpack_exports__.MWAFiles;
|
|
53
53
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -4,21 +4,21 @@ const MWAFiles = {
|
|
|
4
4
|
".browserslistrc": "chrome >= 87\nedge >= 88\nfirefox >= 78\nsafari >= 14\n",
|
|
5
5
|
".gitignore": ".DS_Store\n\n.pnp\n.pnp.js\n.env.local\n.env.*.local\n.history\n*.log*\n\nnode_modules/\n.yarn-integrity\n.pnpm-store/\n*.tsbuildinfo\n.changeset/pre.json\n\ndist/\ncoverage/\nrelease/\noutput/\noutput_resource/\nlog/\n\n.vscode/**/*\n!.vscode/settings.json\n!.vscode/extensions.json\n.idea/\n\n**/*/typings/auto-generated\n\nmodern.config.local.*\n",
|
|
6
6
|
".npmrc": "strict-peer-dependencies=false\n",
|
|
7
|
-
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.
|
|
8
|
-
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://
|
|
7
|
+
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",\n "vcs": {\n "enabled": true,\n "defaultBranch": "main",\n "clientKind": "git",\n "useIgnoreFile": true\n },\n "formatter": {\n "enabled": true,\n "indentStyle": "space"\n },\n "javascript": {\n "formatter": {\n "quoteStyle": "single",\n "arrowParentheses": "asNeeded",\n "jsxQuoteStyle": "double",\n "lineWidth": 80\n }\n },\n "linter": {\n "enabled": true,\n "rules": {\n "recommended": true,\n "suspicious": {\n "noDuplicateFontNames": "off"\n }\n }\n },\n "assist": { "actions": { "source": { "organizeImports": "on" } } },\n "files": {\n "ignoreUnknown": true,\n "includes": [\n "**",\n "!**/.vscode/**/*",\n "!**/node_modules/**/*",\n "!**/dist/**/*"\n ]\n }\n}\n',
|
|
8
|
+
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n ],\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n otlpEndpoint: process.env.MODERN_TELEMETRY_OTLP_ENDPOINT,\n victoriaMetricsEndpoint: process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT,\n },\n ),\n);\n",
|
|
9
9
|
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "ultramodern:check": "node ./scripts/validate-ultramodern.mjs",\n "lint": "biome check",\n "prepare": "simple-git-hooks"\n },\n "engines": {\n "node": ">=20"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "biome check --files-ignore-unknown=true"\n ]\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "dependencies": {\n "@modern-js/runtime": "3.2.0",\n "react": "^19.2.3",\n "react-dom": "^19.2.0"\n },\n "devDependencies": {\n "@modern-js/app-tools": "3.2.0",\n "@modern-js/tsconfig": "3.2.0",\n "@biomejs/biome": "1.9.4",\n "@typescript/native-preview": "7.0.0-dev.20260516.1",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "lint-staged": "~15.4.0",\n "simple-git-hooks": "^2.11.1",\n "rimraf": "^6.0.1"\n }\n}\n',
|
|
10
10
|
"postcss.config.mjs": "",
|
|
11
11
|
"tailwind.config.ts": "",
|
|
12
12
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"baseUrl\": \"./\",\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \"./src\"\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
13
13
|
"scripts/validate-ultramodern.mjs": "import fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve(process.cwd(), 'modern.config.ts');\nconst templateManifestPath = path.resolve(\n process.cwd(),\n '.modernjs/mv-template-manifest.json',\n);\n\nif (!fs.existsSync(configPath)) {\n console.error('modern.config.ts not found');\n process.exit(1);\n}\n\nconst content = fs.readFileSync(configPath, 'utf8');\nconst requiredTokens = [\n 'presetUltramodern(',\n 'appTools()',\n 'enableModuleFederationSSR',\n 'enableBffRequestId',\n 'enableTelemetryExporters',\n];\nconst missing = requiredTokens.filter(token => !content.includes(token));\n\nif (missing.length > 0) {\n console.error(\n `Ultramodern contract check failed. Missing tokens: ${missing.join(', ')}`,\n );\n process.exit(1);\n}\n\nif (!fs.existsSync(templateManifestPath)) {\n console.error('.modernjs/mv-template-manifest.json not found');\n process.exit(1);\n}\n\nconst templateManifest = JSON.parse(\n fs.readFileSync(templateManifestPath, 'utf8'),\n);\nconst requiredDeniedPaths = [\n '.git/**',\n '.github/**',\n '.npmrc',\n '.yarnrc',\n '.env',\n '.env.*',\n 'node_modules/**',\n 'dist/**',\n];\nconst requiredPostMaterialization = [\n 'ultramodern-contract-check',\n 'dependency-install-with-lifecycle-deny',\n 'template-manifest-retained',\n];\nconst manifestErrors = [];\n\nif (templateManifest.schemaVersion !== 1) {\n manifestErrors.push('schemaVersion');\n}\n\nif (templateManifest.source?.type !== 'builtin') {\n manifestErrors.push('source.type');\n}\n\nif (\n !Array.isArray(templateManifest.integrity?.checksums) ||\n !templateManifest.integrity.checksums.some(\n checksum =>\n checksum.algorithm === 'sha256' &&\n checksum.scope === 'source-tree' &&\n /^[0-9a-f]{64}$/.test(checksum.value),\n )\n) {\n manifestErrors.push('integrity.checksums[source-tree]');\n}\n\nfor (const deniedPath of requiredDeniedPaths) {\n if (!templateManifest.materialization?.deniedPaths?.includes(deniedPath)) {\n manifestErrors.push(`materialization.deniedPaths:${deniedPath}`);\n }\n}\n\nif (templateManifest.lifecyclePolicy?.denyByDefault !== true) {\n manifestErrors.push('lifecyclePolicy.denyByDefault');\n}\n\nfor (const token of requiredPostMaterialization) {\n if (!templateManifest.validation?.postMaterializationValidation?.includes(token)) {\n manifestErrors.push(`validation.postMaterializationValidation:${token}`);\n }\n}\n\nif (manifestErrors.length > 0) {\n console.error(\n `Ultramodern template manifest check failed. Invalid fields: ${manifestErrors.join(\n ', ',\n )}`,\n );\n process.exit(1);\n}\n\nconsole.log('Ultramodern contract check passed.');\n",
|
|
14
|
+
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
14
15
|
"api/effect/index.ts": "",
|
|
15
16
|
"api/lambda/hello.ts": "",
|
|
16
|
-
"
|
|
17
|
+
"shared/effect/api.ts": "",
|
|
17
18
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n",
|
|
19
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\n\nexport default defineRuntimeConfig({\n});\n",
|
|
18
20
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;\n background: linear-gradient(to bottom, transparent, #fff) #eceeef;\n}\n\np {\n margin: 0;\n}\n\n* {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n\n.container-box {\n min-height: 100vh;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-top: 10px;\n}\n\nmain {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.title {\n display: flex;\n margin: 4rem 0 4rem;\n align-items: center;\n font-size: 4rem;\n font-weight: 600;\n}\n\n.logo {\n width: 6rem;\n margin: 7px 0 0 1rem;\n}\n\n.name {\n color: #4ecaff;\n}\n\n.description {\n text-align: center;\n line-height: 1.5;\n font-size: 1.3rem;\n color: #1b3a42;\n margin-bottom: 5rem;\n}\n\n.code {\n background: #fafafa;\n border-radius: 12px;\n padding: 0.6rem 0.9rem;\n font-size: 1.05rem;\n font-family:\n Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,\n Bitstream Vera Sans Mono, Courier New, monospace;\n}\n\n.container-box .grid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1100px;\n margin-top: 3rem;\n}\n\n.card {\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100px;\n color: inherit;\n text-decoration: none;\n transition: 0.15s ease;\n width: 45%;\n}\n\n.card:hover,\n.card:focus {\n transform: scale(1.05);\n}\n\n.card h2 {\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n margin: 0;\n padding: 0;\n}\n\n.card p {\n opacity: 0.6;\n font-size: 0.9rem;\n line-height: 1.5;\n margin-top: 1rem;\n}\n\n.arrow-right {\n width: 1.3rem;\n margin-left: 0.5rem;\n margin-top: 3px;\n}\n",
|
|
19
21
|
"src/routes/layout.tsx": "import { Outlet } from '@modern-js/runtime/';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
20
|
-
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n
|
|
21
|
-
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
22
|
-
"shared/effect/api.ts": ""
|
|
22
|
+
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n UltraModern.js 3.0\n <img\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n alt="UltraModern.js Logo"\n />\n <p className="name">presetUltramodern</p>\n </div>\n <p className="description">\n This starter ships the public <code className="code">presetUltramodern(...)</code> profile. Start in\n <code className="code">modern.config.ts</code>, keep\n <code className="code">pnpm run ultramodern:check</code> green, and\n tune the generated preset only where your app needs a softer lane.\n </p>\n <div className="grid">\n <a\n href="https://bleedingdev.github.io/ultramodern.js/guides/get-started/ultramodern.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n UltraModern.js Guide\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Guide"\n />\n </h2>\n <p>Review the MV-first, TanStack-ready, Effect-ready public preset.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Configure presetUltramodern\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Tutorials"\n />\n </h2>\n <p>Tune the generated defaults in <code className="code">modern.config.ts</code>.</p>\n </a>\n <a\n href="https://github.com/BleedingDev/ultramodern.js/blob/main-ultramodern/packages/toolkit/create/template/.github/workflows/ultramodern-gates.yml.handlebars"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Ultramodern Gates\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Config"\n />\n </h2>\n <p>The starter includes a PR workflow for <code className="code">ultramodern:check</code> and build.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/bff/effect.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n BFF + Effect\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Github"\n />\n </h2>\n <p>Keep Effect as the preferred BFF lane while Hono stays an explicit fallback.</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n'
|
|
23
23
|
};
|
|
24
24
|
export { MWAFiles };
|
|
@@ -5,21 +5,21 @@ const MWAFiles = {
|
|
|
5
5
|
".browserslistrc": "chrome >= 87\nedge >= 88\nfirefox >= 78\nsafari >= 14\n",
|
|
6
6
|
".gitignore": ".DS_Store\n\n.pnp\n.pnp.js\n.env.local\n.env.*.local\n.history\n*.log*\n\nnode_modules/\n.yarn-integrity\n.pnpm-store/\n*.tsbuildinfo\n.changeset/pre.json\n\ndist/\ncoverage/\nrelease/\noutput/\noutput_resource/\nlog/\n\n.vscode/**/*\n!.vscode/settings.json\n!.vscode/extensions.json\n.idea/\n\n**/*/typings/auto-generated\n\nmodern.config.local.*\n",
|
|
7
7
|
".npmrc": "strict-peer-dependencies=false\n",
|
|
8
|
-
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.
|
|
9
|
-
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://
|
|
8
|
+
"biome.json": '{\n "root": false,\n "$schema": "https://biomejs.dev/schemas/2.4.15/schema.json",\n "vcs": {\n "enabled": true,\n "defaultBranch": "main",\n "clientKind": "git",\n "useIgnoreFile": true\n },\n "formatter": {\n "enabled": true,\n "indentStyle": "space"\n },\n "javascript": {\n "formatter": {\n "quoteStyle": "single",\n "arrowParentheses": "asNeeded",\n "jsxQuoteStyle": "double",\n "lineWidth": 80\n }\n },\n "linter": {\n "enabled": true,\n "rules": {\n "recommended": true,\n "suspicious": {\n "noDuplicateFontNames": "off"\n }\n }\n },\n "assist": { "actions": { "source": { "organizeImports": "on" } } },\n "files": {\n "ignoreUnknown": true,\n "includes": [\n "**",\n "!**/.vscode/**/*",\n "!**/node_modules/**/*",\n "!**/dist/**/*"\n ]\n }\n}\n',
|
|
9
|
+
"modern.config.ts": "import { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\n\nconst appId = process.env.MODERN_BASELINE_APP_ID || path.basename(process.cwd());\nconst enableModuleFederationSSR =\n process.env.MODERN_BASELINE_ENABLE_MF_SSR !== 'false';\nconst enableBffRequestId =\n process.env.MODERN_BASELINE_ENABLE_BFF_REQUEST_ID !== 'false';\nconst enableTelemetryExporters =\n process.env.MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS !== 'false';\nconst telemetryFailLoudStartup =\n process.env.MODERN_TELEMETRY_FAIL_LOUD_STARTUP !== 'false';\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n ],\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n otlpEndpoint: process.env.MODERN_TELEMETRY_OTLP_ENDPOINT,\n victoriaMetricsEndpoint: process.env.MODERN_TELEMETRY_VICTORIA_ENDPOINT,\n },\n ),\n);\n",
|
|
10
10
|
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "ultramodern:check": "node ./scripts/validate-ultramodern.mjs",\n "lint": "biome check",\n "prepare": "simple-git-hooks"\n },\n "engines": {\n "node": ">=20"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "biome check --files-ignore-unknown=true"\n ]\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "dependencies": {\n "@modern-js/runtime": "3.2.0",\n "react": "^19.2.3",\n "react-dom": "^19.2.0"\n },\n "devDependencies": {\n "@modern-js/app-tools": "3.2.0",\n "@modern-js/tsconfig": "3.2.0",\n "@biomejs/biome": "1.9.4",\n "@typescript/native-preview": "7.0.0-dev.20260516.1",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "lint-staged": "~15.4.0",\n "simple-git-hooks": "^2.11.1",\n "rimraf": "^6.0.1"\n }\n}\n',
|
|
11
11
|
"postcss.config.mjs": "",
|
|
12
12
|
"tailwind.config.ts": "",
|
|
13
13
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"baseUrl\": \"./\",\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \"./src\"\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
14
14
|
"scripts/validate-ultramodern.mjs": "import fs from 'node:fs';\nimport path from 'node:path';\n\nconst configPath = path.resolve(process.cwd(), 'modern.config.ts');\nconst templateManifestPath = path.resolve(\n process.cwd(),\n '.modernjs/mv-template-manifest.json',\n);\n\nif (!fs.existsSync(configPath)) {\n console.error('modern.config.ts not found');\n process.exit(1);\n}\n\nconst content = fs.readFileSync(configPath, 'utf8');\nconst requiredTokens = [\n 'presetUltramodern(',\n 'appTools()',\n 'enableModuleFederationSSR',\n 'enableBffRequestId',\n 'enableTelemetryExporters',\n];\nconst missing = requiredTokens.filter(token => !content.includes(token));\n\nif (missing.length > 0) {\n console.error(\n `Ultramodern contract check failed. Missing tokens: ${missing.join(', ')}`,\n );\n process.exit(1);\n}\n\nif (!fs.existsSync(templateManifestPath)) {\n console.error('.modernjs/mv-template-manifest.json not found');\n process.exit(1);\n}\n\nconst templateManifest = JSON.parse(\n fs.readFileSync(templateManifestPath, 'utf8'),\n);\nconst requiredDeniedPaths = [\n '.git/**',\n '.github/**',\n '.npmrc',\n '.yarnrc',\n '.env',\n '.env.*',\n 'node_modules/**',\n 'dist/**',\n];\nconst requiredPostMaterialization = [\n 'ultramodern-contract-check',\n 'dependency-install-with-lifecycle-deny',\n 'template-manifest-retained',\n];\nconst manifestErrors = [];\n\nif (templateManifest.schemaVersion !== 1) {\n manifestErrors.push('schemaVersion');\n}\n\nif (templateManifest.source?.type !== 'builtin') {\n manifestErrors.push('source.type');\n}\n\nif (\n !Array.isArray(templateManifest.integrity?.checksums) ||\n !templateManifest.integrity.checksums.some(\n checksum =>\n checksum.algorithm === 'sha256' &&\n checksum.scope === 'source-tree' &&\n /^[0-9a-f]{64}$/.test(checksum.value),\n )\n) {\n manifestErrors.push('integrity.checksums[source-tree]');\n}\n\nfor (const deniedPath of requiredDeniedPaths) {\n if (!templateManifest.materialization?.deniedPaths?.includes(deniedPath)) {\n manifestErrors.push(`materialization.deniedPaths:${deniedPath}`);\n }\n}\n\nif (templateManifest.lifecyclePolicy?.denyByDefault !== true) {\n manifestErrors.push('lifecyclePolicy.denyByDefault');\n}\n\nfor (const token of requiredPostMaterialization) {\n if (!templateManifest.validation?.postMaterializationValidation?.includes(token)) {\n manifestErrors.push(`validation.postMaterializationValidation:${token}`);\n }\n}\n\nif (manifestErrors.length > 0) {\n console.error(\n `Ultramodern template manifest check failed. Invalid fields: ${manifestErrors.join(\n ', ',\n )}`,\n );\n process.exit(1);\n}\n\nconsole.log('Ultramodern contract check passed.');\n",
|
|
15
|
+
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
15
16
|
"api/effect/index.ts": "",
|
|
16
17
|
"api/lambda/hello.ts": "",
|
|
17
|
-
"
|
|
18
|
+
"shared/effect/api.ts": "",
|
|
18
19
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n",
|
|
20
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\n\nexport default defineRuntimeConfig({\n});\n",
|
|
19
21
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family: PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif;\n background: linear-gradient(to bottom, transparent, #fff) #eceeef;\n}\n\np {\n margin: 0;\n}\n\n* {\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n box-sizing: border-box;\n}\n\n.container-box {\n min-height: 100vh;\n max-width: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding-top: 10px;\n}\n\nmain {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.title {\n display: flex;\n margin: 4rem 0 4rem;\n align-items: center;\n font-size: 4rem;\n font-weight: 600;\n}\n\n.logo {\n width: 6rem;\n margin: 7px 0 0 1rem;\n}\n\n.name {\n color: #4ecaff;\n}\n\n.description {\n text-align: center;\n line-height: 1.5;\n font-size: 1.3rem;\n color: #1b3a42;\n margin-bottom: 5rem;\n}\n\n.code {\n background: #fafafa;\n border-radius: 12px;\n padding: 0.6rem 0.9rem;\n font-size: 1.05rem;\n font-family:\n Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono,\n Bitstream Vera Sans Mono, Courier New, monospace;\n}\n\n.container-box .grid {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1100px;\n margin-top: 3rem;\n}\n\n.card {\n padding: 1.5rem;\n display: flex;\n flex-direction: column;\n justify-content: center;\n height: 100px;\n color: inherit;\n text-decoration: none;\n transition: 0.15s ease;\n width: 45%;\n}\n\n.card:hover,\n.card:focus {\n transform: scale(1.05);\n}\n\n.card h2 {\n display: flex;\n align-items: center;\n font-size: 1.5rem;\n margin: 0;\n padding: 0;\n}\n\n.card p {\n opacity: 0.6;\n font-size: 0.9rem;\n line-height: 1.5;\n margin-top: 1rem;\n}\n\n.arrow-right {\n width: 1.3rem;\n margin-left: 0.5rem;\n margin-top: 3px;\n}\n",
|
|
20
22
|
"src/routes/layout.tsx": "import { Outlet } from '@modern-js/runtime/';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
21
|
-
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n
|
|
22
|
-
".github/workflows/ultramodern-gates.yml": "name: Ultramodern Gates\n\non:\n push:\n pull_request:\n\njobs:\n ultramodern-gates:\n runs-on: ubuntu-latest\n steps:\n - name: Checkout\n uses: actions/checkout@v4\n\n - name: Setup pnpm\n uses: pnpm/action-setup@v4\n\n - name: Setup Node.js\n uses: actions/setup-node@v4\n with:\n node-version: 20\n cache: pnpm\n\n - name: Install Dependencies\n run: pnpm install\n\n - name: Validate Ultramodern Contract\n run: pnpm run ultramodern:check\n\n - name: Build\n run: pnpm run build\n",
|
|
23
|
-
"shared/effect/api.ts": ""
|
|
23
|
+
"src/routes/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport \'./index.css\';\n\nconst Index = () => {\n\n return (\n <div className="container-box">\n <Helmet>\n <link\n rel="icon"\n type="image/x-icon"\n href="https://lf3-static.bytednsdoc.com/obj/eden-cn/uhbfnupenuhf/favicon.ico"\n />\n </Helmet>\n <main>\n <div className="title">\n UltraModern.js 3.0\n <img\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n alt="UltraModern.js Logo"\n />\n <p className="name">presetUltramodern</p>\n </div>\n <p className="description">\n This starter ships the public <code className="code">presetUltramodern(...)</code> profile. Start in\n <code className="code">modern.config.ts</code>, keep\n <code className="code">pnpm run ultramodern:check</code> green, and\n tune the generated preset only where your app needs a softer lane.\n </p>\n <div className="grid">\n <a\n href="https://bleedingdev.github.io/ultramodern.js/guides/get-started/ultramodern.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n UltraModern.js Guide\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Guide"\n />\n </h2>\n <p>Review the MV-first, TanStack-ready, Effect-ready public preset.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Configure presetUltramodern\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Tutorials"\n />\n </h2>\n <p>Tune the generated defaults in <code className="code">modern.config.ts</code>.</p>\n </a>\n <a\n href="https://github.com/BleedingDev/ultramodern.js/blob/main-ultramodern/packages/toolkit/create/template/.github/workflows/ultramodern-gates.yml.handlebars"\n target="_blank"\n className="card"\n rel="noreferrer"\n >\n <h2>\n Ultramodern Gates\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Config"\n />\n </h2>\n <p>The starter includes a PR workflow for <code className="code">ultramodern:check</code> and build.</p>\n </a>\n <a\n href="https://bleedingdev.github.io/ultramodern.js/configure/app/bff/effect.html"\n target="_blank"\n rel="noopener noreferrer"\n className="card"\n >\n <h2>\n BFF + Effect\n <img\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n alt="Github"\n />\n </h2>\n <p>Keep Effect as the preferred BFF lane while Hono stays an explicit fallback.</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n'
|
|
24
24
|
};
|
|
25
25
|
export { MWAFiles };
|
|
@@ -11,13 +11,13 @@ export declare const MWAFiles: {
|
|
|
11
11
|
"tailwind.config.ts": string;
|
|
12
12
|
"tsconfig.json": string;
|
|
13
13
|
"scripts/validate-ultramodern.mjs": string;
|
|
14
|
+
".github/workflows/ultramodern-gates.yml": string;
|
|
14
15
|
"api/effect/index.ts": string;
|
|
15
16
|
"api/lambda/hello.ts": string;
|
|
16
|
-
"
|
|
17
|
+
"shared/effect/api.ts": string;
|
|
17
18
|
"src/modern-app-env.d.ts": string;
|
|
19
|
+
"src/modern.runtime.ts": string;
|
|
18
20
|
"src/routes/index.css": string;
|
|
19
21
|
"src/routes/layout.tsx": string;
|
|
20
22
|
"src/routes/page.tsx": string;
|
|
21
|
-
".github/workflows/ultramodern-gates.yml": string;
|
|
22
|
-
"shared/effect/api.ts": string;
|
|
23
23
|
};
|
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"modern",
|
|
18
18
|
"modern.js"
|
|
19
19
|
],
|
|
20
|
-
"version": "3.2.0-ultramodern.
|
|
20
|
+
"version": "3.2.0-ultramodern.1",
|
|
21
21
|
"types": "./dist/types/index.d.ts",
|
|
22
22
|
"main": "./dist/cjs/index.js",
|
|
23
23
|
"module": "./dist/esm/index.mjs",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"@types/recursive-readdir": "^2.2.4",
|
|
49
49
|
"@typescript/native-preview": "7.0.0-dev.20260516.1",
|
|
50
50
|
"recursive-readdir": "^2.2.3",
|
|
51
|
-
"@modern-js/create": "npm:@bleedingdev/modern-js-create@3.2.0-ultramodern.
|
|
51
|
+
"@modern-js/create": "npm:@bleedingdev/modern-js-create@3.2.0-ultramodern.1"
|
|
52
52
|
},
|
|
53
53
|
"sideEffects": false,
|
|
54
54
|
"publishConfig": {
|