@bleedingdev/modern-js-sandpack-react 3.2.0-ultramodern.45 → 3.2.0-ultramodern.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/templates/common.js +2 -2
- package/dist/cjs/templates/mwa.js +3 -3
- package/dist/esm/templates/common.mjs +2 -2
- package/dist/esm/templates/mwa.mjs +3 -3
- package/dist/esm-node/templates/common.mjs +2 -2
- package/dist/esm-node/templates/mwa.mjs +3 -3
- package/dist/types/templates/common.d.ts +1 -1
- package/dist/types/templates/mwa.d.ts +4 -4
- package/package.json +2 -2
|
@@ -27,8 +27,8 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
27
27
|
commonFiles: ()=>commonFiles
|
|
28
28
|
});
|
|
29
29
|
const commonFiles = {
|
|
30
|
-
".codesandbox/
|
|
31
|
-
".codesandbox/
|
|
30
|
+
".codesandbox/environment.json": "{\n \"nodeVersion\": 18\n}\n",
|
|
31
|
+
".codesandbox/tasks.json": "{\n \"$schema\": \"https://codesandbox.io/schemas/tasks.json\",\n \"setupTasks\": [\n {\n \"name\": \"Installing Dependencies\",\n \"command\": \"pnpm install\"\n }\n ],\n \"tasks\": {\n \"start\": {\n \"name\": \"Application\",\n \"command\": \"pnpm run start\",\n \"runAtStart\": true,\n \"restartOn\": {\n \"files\": [\"pnpm-lock.yaml\"]\n }\n }\n }\n}\n"
|
|
32
32
|
};
|
|
33
33
|
exports.commonFiles = __webpack_exports__.commonFiles;
|
|
34
34
|
for(var __rspack_i in __webpack_exports__)if (-1 === [
|
|
@@ -36,11 +36,11 @@ const MWAFiles = {
|
|
|
36
36
|
"AGENTS.md": "# UltraModern Agent Contract\n\nThis project is generated for Codex-first UltraModern.js work.\n\n## Quality Gates\n\n- `pnpm lint` runs Oxlint with the Ultracite preset.\n- `pnpm format` runs oxfmt.\n- `pnpm typecheck` runs effect-tsgo as the TypeScript checker.\n- `pnpm i18n:check` rejects hardcoded user-visible JSX text.\n- `mise exec -- pnpm ultramodern:check` verifies the generated contract.\n\n## Internationalization\n\nRuntime i18n is enabled by default. Agents must put user-visible UI copy in `config/public/locales/<lang>/translation.json` and render it through `react-i18next` or `@modern-js/plugin-i18n/runtime`. Do not add hardcoded JSX text, `aria-label`, `title`, `alt`, or `placeholder` strings unless the value is a non-translatable technical token.\n\nRoutes are locale-prefixed by default through `localePathRedirect: true`. Keep localized pages under `src/routes/[lang]`, use links for language switching, and preserve canonical plus `hreflang` metadata. Production builds fail unless `MODERN_PUBLIC_SITE_URL` is set, so deployed canonical URLs always use the production origin.\n\n## Private Skills\n\nPrivate orchestration skills are not vendored into this template. If you are authorized for `TechsioCZ/skills`, run:\n\n```bash\npnpm skills:install\n```\n\nThe installer clones that private repository and copies only the allowlisted skills from `.agents/skills-lock.json`.\n",
|
|
37
37
|
"modern.config.ts": "// @effect-diagnostics nodeBuiltinImport:off processEnv:off\nimport { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\nimport { i18nPlugin } from '@modern-js/plugin-i18n';\nconst appId = process.env['MODERN_BASELINE_APP_ID'] || path.basename(process.cwd());\nconst enableModuleFederationSSR = process.env['MODERN_BASELINE_ENABLE_MF_SSR'] !== 'false';\nconst enableBffRequestId = process.env['MODERN_BASELINE_ENABLE_BFF_REQUEST_ID'] !== 'false';\nconst enableTelemetryExporters =\n process.env['MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS'] !== 'false';\nconst telemetryFailLoudStartup = process.env['MODERN_TELEMETRY_FAIL_LOUD_STARTUP'] !== 'false';\nconst otlpEndpoint = process.env['MODERN_TELEMETRY_OTLP_ENDPOINT'];\nconst configuredSiteUrl = process.env['MODERN_PUBLIC_SITE_URL'];\nconst hasConfiguredSiteUrl = typeof configuredSiteUrl === 'string' && configuredSiteUrl.length > 0;\nconst isProductionBuild =\n process.env['NODE_ENV'] === 'production' || process.argv.includes('build');\n\nif (isProductionBuild && !hasConfiguredSiteUrl) {\n throw new Error(\n 'MODERN_PUBLIC_SITE_URL must be set for production builds so canonical and hreflang URLs use the deployed origin.',\n );\n}\n\nconst siteUrl = hasConfiguredSiteUrl ? configuredSiteUrl : 'http://localhost:8080';\nconst victoriaMetricsEndpoint = process.env['MODERN_TELEMETRY_VICTORIA_ENDPOINT'];\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n i18nPlugin({\n localeDetection: {\n fallbackLanguage: 'en',\n languages: ['en', 'cs'],\n localePathRedirect: true,\n },\n }),\n ],\n source: {\n globalVars: {\n ULTRAMODERN_SITE_URL: siteUrl,\n },\n },\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n ...(typeof otlpEndpoint === 'string' ? { otlpEndpoint } : {}),\n ...(typeof victoriaMetricsEndpoint === 'string' ? { victoriaMetricsEndpoint } : {}),\n },\n ),\n);\n",
|
|
38
38
|
"oxfmt.config.ts": "import { defineConfig } from 'oxfmt';\nimport ultracite from 'ultracite/oxfmt';\n\nexport default defineConfig({\n extends: [ultracite],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n singleQuote: true,\n});\n",
|
|
39
|
+
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.13.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
39
40
|
"oxlint.config.ts": "import { defineConfig } from 'oxlint';\nimport core from 'ultracite/oxlint/core';\nimport react from 'ultracite/oxlint/react';\n\nexport default defineConfig({\n env: {\n browser: true,\n node: true,\n },\n extends: [core, react],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n});\n",
|
|
40
|
-
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.11.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
41
41
|
"pnpm-workspace.yaml": "minimumReleaseAge: 1440\nminimumReleaseAgeStrict: true\nminimumReleaseAgeIgnoreMissingTime: false\nminimumReleaseAgeExclude:\n - '@modern-js/*'\n - '@bleedingdev/*'\n - '@effect/tsgo'\n - '@effect/tsgo-*'\n - '@typescript/native-preview'\n - '@typescript/native-preview-*'\ntrustPolicy: no-downgrade\ntrustPolicyIgnoreAfter: 1440\nblockExoticSubdeps: true\nengineStrict: true\npmOnFail: error\nverifyDepsBeforeRun: error\nstrictDepBuilds: true\n\nallowBuilds:\n '@swc/core': true\n core-js: true\n esbuild: true\n msgpackr-extract: true\n sharp: true\n simple-git-hooks: true\n workerd: true\n",
|
|
42
|
-
"postcss.config.mjs": "",
|
|
43
42
|
"rstest.config.mts": "import { withModernConfig } from '@modern-js/adapter-rstest';\nimport { defineConfig } from '@rstest/core';\n\nexport default defineConfig({\n extends: withModernConfig(),\n testEnvironment: 'happy-dom',\n});\n",
|
|
43
|
+
"postcss.config.mjs": "",
|
|
44
44
|
"tailwind.config.ts": "",
|
|
45
45
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"target\": \"ESNext\",\n \"lib\": [\"ESNext\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"preserve\",\n \"moduleResolution\": \"Bundler\",\n \"moduleDetection\": \"force\",\n \"isolatedModules\": true,\n \"verbatimModuleSyntax\": true,\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"noUncheckedIndexedAccess\": true,\n \"exactOptionalPropertyTypes\": true,\n \"noImplicitOverride\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"noPropertyAccessFromIndexSignature\": true,\n \"noImplicitReturns\": true,\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \".\",\n \"plugins\": [\n {\n \"name\": \"@effect/language-service\",\n \"diagnostics\": true,\n \"includeSuggestionsInTsc\": true,\n \"ignoreEffectSuggestionsInTscExitCode\": false,\n \"ignoreEffectWarningsInTscExitCode\": false,\n \"ignoreEffectErrorsInTscExitCode\": false,\n \"skipDisabledOptimization\": true,\n \"diagnosticSeverity\": {\n \"anyUnknownInErrorContext\": \"error\",\n \"classSelfMismatch\": \"error\",\n \"duplicatePackage\": \"error\",\n \"effectFnImplicitAny\": \"error\",\n \"floatingEffect\": \"error\",\n \"genericEffectServices\": \"error\",\n \"missingEffectContext\": \"error\",\n \"missingEffectError\": \"error\",\n \"missingLayerContext\": \"error\",\n \"missingReturnYieldStar\": \"error\",\n \"missingStarInYieldEffectGen\": \"error\",\n \"nonObjectEffectServiceType\": \"error\",\n \"outdatedApi\": \"error\",\n \"overriddenSchemaConstructor\": \"error\",\n \"catchUnfailableEffect\": \"error\",\n \"effectFnIife\": \"error\",\n \"effectGenUsesAdapter\": \"error\",\n \"effectInFailure\": \"error\",\n \"effectInVoidSuccess\": \"error\",\n \"globalErrorInEffectCatch\": \"error\",\n \"globalErrorInEffectFailure\": \"error\",\n \"layerMergeAllWithDependencies\": \"error\",\n \"lazyPromiseInEffectSync\": \"error\",\n \"leakingRequirements\": \"error\",\n \"multipleEffectProvide\": \"error\",\n \"returnEffectInGen\": \"error\",\n \"runEffectInsideEffect\": \"error\",\n \"schemaSyncInEffect\": \"error\",\n \"scopeInLayerEffect\": \"error\",\n \"strictEffectProvide\": \"error\",\n \"tryCatchInEffectGen\": \"error\",\n \"unknownInEffectCatch\": \"error\",\n \"asyncFunction\": \"error\",\n \"cryptoRandomUUID\": \"error\",\n \"cryptoRandomUUIDInEffect\": \"error\",\n \"extendsNativeError\": \"error\",\n \"globalConsole\": \"error\",\n \"globalConsoleInEffect\": \"error\",\n \"globalDate\": \"error\",\n \"globalDateInEffect\": \"error\",\n \"globalFetch\": \"error\",\n \"globalFetchInEffect\": \"error\",\n \"globalRandom\": \"error\",\n \"globalRandomInEffect\": \"error\",\n \"globalTimers\": \"error\",\n \"globalTimersInEffect\": \"error\",\n \"instanceOfSchema\": \"error\",\n \"newPromise\": \"error\",\n \"nodeBuiltinImport\": \"error\",\n \"preferSchemaOverJson\": \"error\",\n \"processEnv\": \"error\",\n \"processEnvInEffect\": \"error\",\n \"unsafeEffectTypeAssertion\": \"error\",\n \"catchAllToMapError\": \"error\",\n \"deterministicKeys\": \"error\",\n \"effectDoNotation\": \"error\",\n \"effectFnOpportunity\": \"error\",\n \"effectMapFlatten\": \"error\",\n \"effectMapVoid\": \"error\",\n \"effectSucceedWithVoid\": \"error\",\n \"missedPipeableOpportunity\": \"error\",\n \"missingEffectServiceDependency\": \"error\",\n \"nestedEffectGenYield\": \"error\",\n \"redundantSchemaTagIdentifier\": \"error\",\n \"schemaStructWithTag\": \"error\",\n \"schemaUnionOfLiterals\": \"error\",\n \"serviceNotAsClass\": \"error\",\n \"strictBooleanExpressions\": \"error\",\n \"unnecessaryArrowBlock\": \"error\",\n \"unnecessaryEffectGen\": \"error\",\n \"unnecessaryFailYieldableError\": \"error\",\n \"unnecessaryPipe\": \"error\",\n \"unnecessaryPipeChain\": \"error\"\n }\n }\n ]\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
46
46
|
".agents/skills-lock.json": "{\n \"schemaVersion\": 2,\n \"installDir\": \".agents/skills\",\n \"sources\": [\n {\n \"id\": \"techsiocz-private\",\n \"visibility\": \"private\",\n \"repository\": \"https://github.com/TechsioCZ/skills\",\n \"install\": \"clone-if-authorized\",\n \"baseline\": [\n {\n \"name\": \"plan-graph\",\n \"reason\": \"Build and validate DAGs from .plan.md files\"\n },\n {\n \"name\": \"dag\",\n \"reason\": \"Inspect current plan frontiers and blocked lanes\"\n },\n {\n \"name\": \"subagent-graph\",\n \"reason\": \"Design dependency-aware multi-agent launch graphs\"\n },\n {\n \"name\": \"helm\",\n \"reason\": \"Steer already-running multi-agent work\"\n },\n {\n \"name\": \"debugger-mode\",\n \"reason\": \"Run hypothesis-driven debugging with runtime evidence\"\n }\n ]\n }\n ]\n}\n",
|
|
@@ -54,8 +54,8 @@ const MWAFiles = {
|
|
|
54
54
|
"api/effect/index.ts": "\n",
|
|
55
55
|
"api/lambda/hello.ts": "",
|
|
56
56
|
"shared/effect/api.ts": "\n",
|
|
57
|
-
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
58
57
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n\ndeclare const ULTRAMODERN_SITE_URL: string;\n",
|
|
58
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
59
59
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family:\n PingFang SC,\n Hiragino Sans GB,\n Microsoft YaHei,\n Arial,\n 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,\n Monaco,\n Lucida Console,\n Liberation Mono,\n DejaVu Sans Mono,\n Bitstream Vera Sans Mono,\n Courier New,\n 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",
|
|
60
60
|
"src/routes/layout.tsx": "import { Outlet } from '';\nimport './index.css';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
61
61
|
"src/routes/[lang]/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport { useModernI18n } from \'@modern-js/plugin-i18n/runtime\';\nimport { useLocation } from \'\';\nimport { useTranslation } from \'react-i18next\';\n\nconst fallbackLanguage = \'en\';\nconst supportedLanguages = [\'en\', \'cs\'] as const;\ntype SupportedLanguage = (typeof supportedLanguages)[number];\n\nconst isSupportedLanguage = (value: string): value is SupportedLanguage =>\n supportedLanguages.includes(value as SupportedLanguage);\n\nconst stripLanguagePrefix = (pathname: string) => {\n const segments = pathname.split(\'/\').filter(Boolean);\n if (segments.length > 0 && isSupportedLanguage(segments[0] ?? \'\')) {\n segments.shift();\n }\n return `/${segments.join(\'/\')}`;\n};\n\nconst localizedPath = (pathname: string, language: SupportedLanguage) => {\n const pathWithoutLanguage = stripLanguagePrefix(pathname);\n return pathWithoutLanguage === \'/\' ? `/${language}` : `/${language}${pathWithoutLanguage}`;\n};\n\nconst absoluteUrl = (pathname: string) => {\n const origin = ULTRAMODERN_SITE_URL.replace(/\\/+$/u, \'\');\n return `${origin}${pathname}`;\n};\n\nconst locationSuffix = (location: { hash?: unknown; search?: unknown; searchStr?: unknown }) => {\n const { hash, search, searchStr } = location;\n let locationSearch = \'\';\n if (typeof searchStr === \'string\') {\n locationSearch = searchStr;\n } else if (typeof search === \'string\') {\n locationSearch = search;\n }\n const locationHash = typeof hash === \'string\' ? hash : \'\';\n return `${locationSearch}${locationHash}`;\n};\n\nconst Index = () => {\n const { t } = useTranslation();\n const { language } = useModernI18n();\n const location = useLocation();\n const currentLanguage = isSupportedLanguage(language) ? language : fallbackLanguage;\n const canonicalPath = localizedPath(location.pathname, currentLanguage);\n const suffix = locationSuffix(location);\n const languageOptions = supportedLanguages.map((code) => ({\n code,\n href: `${localizedPath(location.pathname, code)}${suffix}`,\n label: t(`home.language.${code}`),\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 <link rel="canonical" href={absoluteUrl(canonicalPath)} />\n {supportedLanguages.map((code) => (\n <link\n href={absoluteUrl(localizedPath(location.pathname, code))}\n hrefLang={code}\n key={code}\n rel="alternate"\n />\n ))}\n <link\n href={absoluteUrl(localizedPath(location.pathname, fallbackLanguage))}\n hrefLang="x-default"\n rel="alternate"\n />\n </Helmet>\n <main>\n <nav className="language-switcher" aria-label={t(\'home.language.switcher\')}>\n {languageOptions.map((option) => (\n <a\n aria-current={currentLanguage === option.code ? \'page\' : undefined}\n href={option.href}\n key={option.code}\n >\n {option.label}\n </a>\n ))}\n </nav>\n <div className="title">\n {t(\'home.title\')}\n <img\n alt={t(\'home.logoAlt\')}\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n />\n <p className="name">{t(\'home.name\')}</p>\n </div>\n <p className="description">\n {t(\'home.description.intro\')} <code className="code">presetUltramodern(...)</code>{\' \'}\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterPreset\')}\n <code className="code">modern.config.ts</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterConfig\')}\n <code className="code">mise exec -- pnpm run ultramodern:check</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.end\')}\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 {t(\'home.cards.guide.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.guide.body\')}</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 {t(\'home.cards.config.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.config.body\')}</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 {t(\'home.cards.gates.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.gates.body\')}</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 {t(\'home.cards.bff.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.bff.body\')}</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const commonFiles = {
|
|
2
|
-
".codesandbox/
|
|
3
|
-
".codesandbox/
|
|
2
|
+
".codesandbox/environment.json": "{\n \"nodeVersion\": 18\n}\n",
|
|
3
|
+
".codesandbox/tasks.json": "{\n \"$schema\": \"https://codesandbox.io/schemas/tasks.json\",\n \"setupTasks\": [\n {\n \"name\": \"Installing Dependencies\",\n \"command\": \"pnpm install\"\n }\n ],\n \"tasks\": {\n \"start\": {\n \"name\": \"Application\",\n \"command\": \"pnpm run start\",\n \"runAtStart\": true,\n \"restartOn\": {\n \"files\": [\"pnpm-lock.yaml\"]\n }\n }\n }\n}\n"
|
|
4
4
|
};
|
|
5
5
|
export { commonFiles };
|
|
@@ -8,11 +8,11 @@ const MWAFiles = {
|
|
|
8
8
|
"AGENTS.md": "# UltraModern Agent Contract\n\nThis project is generated for Codex-first UltraModern.js work.\n\n## Quality Gates\n\n- `pnpm lint` runs Oxlint with the Ultracite preset.\n- `pnpm format` runs oxfmt.\n- `pnpm typecheck` runs effect-tsgo as the TypeScript checker.\n- `pnpm i18n:check` rejects hardcoded user-visible JSX text.\n- `mise exec -- pnpm ultramodern:check` verifies the generated contract.\n\n## Internationalization\n\nRuntime i18n is enabled by default. Agents must put user-visible UI copy in `config/public/locales/<lang>/translation.json` and render it through `react-i18next` or `@modern-js/plugin-i18n/runtime`. Do not add hardcoded JSX text, `aria-label`, `title`, `alt`, or `placeholder` strings unless the value is a non-translatable technical token.\n\nRoutes are locale-prefixed by default through `localePathRedirect: true`. Keep localized pages under `src/routes/[lang]`, use links for language switching, and preserve canonical plus `hreflang` metadata. Production builds fail unless `MODERN_PUBLIC_SITE_URL` is set, so deployed canonical URLs always use the production origin.\n\n## Private Skills\n\nPrivate orchestration skills are not vendored into this template. If you are authorized for `TechsioCZ/skills`, run:\n\n```bash\npnpm skills:install\n```\n\nThe installer clones that private repository and copies only the allowlisted skills from `.agents/skills-lock.json`.\n",
|
|
9
9
|
"modern.config.ts": "// @effect-diagnostics nodeBuiltinImport:off processEnv:off\nimport { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\nimport { i18nPlugin } from '@modern-js/plugin-i18n';\nconst appId = process.env['MODERN_BASELINE_APP_ID'] || path.basename(process.cwd());\nconst enableModuleFederationSSR = process.env['MODERN_BASELINE_ENABLE_MF_SSR'] !== 'false';\nconst enableBffRequestId = process.env['MODERN_BASELINE_ENABLE_BFF_REQUEST_ID'] !== 'false';\nconst enableTelemetryExporters =\n process.env['MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS'] !== 'false';\nconst telemetryFailLoudStartup = process.env['MODERN_TELEMETRY_FAIL_LOUD_STARTUP'] !== 'false';\nconst otlpEndpoint = process.env['MODERN_TELEMETRY_OTLP_ENDPOINT'];\nconst configuredSiteUrl = process.env['MODERN_PUBLIC_SITE_URL'];\nconst hasConfiguredSiteUrl = typeof configuredSiteUrl === 'string' && configuredSiteUrl.length > 0;\nconst isProductionBuild =\n process.env['NODE_ENV'] === 'production' || process.argv.includes('build');\n\nif (isProductionBuild && !hasConfiguredSiteUrl) {\n throw new Error(\n 'MODERN_PUBLIC_SITE_URL must be set for production builds so canonical and hreflang URLs use the deployed origin.',\n );\n}\n\nconst siteUrl = hasConfiguredSiteUrl ? configuredSiteUrl : 'http://localhost:8080';\nconst victoriaMetricsEndpoint = process.env['MODERN_TELEMETRY_VICTORIA_ENDPOINT'];\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n i18nPlugin({\n localeDetection: {\n fallbackLanguage: 'en',\n languages: ['en', 'cs'],\n localePathRedirect: true,\n },\n }),\n ],\n source: {\n globalVars: {\n ULTRAMODERN_SITE_URL: siteUrl,\n },\n },\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n ...(typeof otlpEndpoint === 'string' ? { otlpEndpoint } : {}),\n ...(typeof victoriaMetricsEndpoint === 'string' ? { victoriaMetricsEndpoint } : {}),\n },\n ),\n);\n",
|
|
10
10
|
"oxfmt.config.ts": "import { defineConfig } from 'oxfmt';\nimport ultracite from 'ultracite/oxfmt';\n\nexport default defineConfig({\n extends: [ultracite],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n singleQuote: true,\n});\n",
|
|
11
|
+
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.13.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
11
12
|
"oxlint.config.ts": "import { defineConfig } from 'oxlint';\nimport core from 'ultracite/oxlint/core';\nimport react from 'ultracite/oxlint/react';\n\nexport default defineConfig({\n env: {\n browser: true,\n node: true,\n },\n extends: [core, react],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n});\n",
|
|
12
|
-
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.11.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
13
13
|
"pnpm-workspace.yaml": "minimumReleaseAge: 1440\nminimumReleaseAgeStrict: true\nminimumReleaseAgeIgnoreMissingTime: false\nminimumReleaseAgeExclude:\n - '@modern-js/*'\n - '@bleedingdev/*'\n - '@effect/tsgo'\n - '@effect/tsgo-*'\n - '@typescript/native-preview'\n - '@typescript/native-preview-*'\ntrustPolicy: no-downgrade\ntrustPolicyIgnoreAfter: 1440\nblockExoticSubdeps: true\nengineStrict: true\npmOnFail: error\nverifyDepsBeforeRun: error\nstrictDepBuilds: true\n\nallowBuilds:\n '@swc/core': true\n core-js: true\n esbuild: true\n msgpackr-extract: true\n sharp: true\n simple-git-hooks: true\n workerd: true\n",
|
|
14
|
-
"postcss.config.mjs": "",
|
|
15
14
|
"rstest.config.mts": "import { withModernConfig } from '@modern-js/adapter-rstest';\nimport { defineConfig } from '@rstest/core';\n\nexport default defineConfig({\n extends: withModernConfig(),\n testEnvironment: 'happy-dom',\n});\n",
|
|
15
|
+
"postcss.config.mjs": "",
|
|
16
16
|
"tailwind.config.ts": "",
|
|
17
17
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"target\": \"ESNext\",\n \"lib\": [\"ESNext\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"preserve\",\n \"moduleResolution\": \"Bundler\",\n \"moduleDetection\": \"force\",\n \"isolatedModules\": true,\n \"verbatimModuleSyntax\": true,\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"noUncheckedIndexedAccess\": true,\n \"exactOptionalPropertyTypes\": true,\n \"noImplicitOverride\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"noPropertyAccessFromIndexSignature\": true,\n \"noImplicitReturns\": true,\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \".\",\n \"plugins\": [\n {\n \"name\": \"@effect/language-service\",\n \"diagnostics\": true,\n \"includeSuggestionsInTsc\": true,\n \"ignoreEffectSuggestionsInTscExitCode\": false,\n \"ignoreEffectWarningsInTscExitCode\": false,\n \"ignoreEffectErrorsInTscExitCode\": false,\n \"skipDisabledOptimization\": true,\n \"diagnosticSeverity\": {\n \"anyUnknownInErrorContext\": \"error\",\n \"classSelfMismatch\": \"error\",\n \"duplicatePackage\": \"error\",\n \"effectFnImplicitAny\": \"error\",\n \"floatingEffect\": \"error\",\n \"genericEffectServices\": \"error\",\n \"missingEffectContext\": \"error\",\n \"missingEffectError\": \"error\",\n \"missingLayerContext\": \"error\",\n \"missingReturnYieldStar\": \"error\",\n \"missingStarInYieldEffectGen\": \"error\",\n \"nonObjectEffectServiceType\": \"error\",\n \"outdatedApi\": \"error\",\n \"overriddenSchemaConstructor\": \"error\",\n \"catchUnfailableEffect\": \"error\",\n \"effectFnIife\": \"error\",\n \"effectGenUsesAdapter\": \"error\",\n \"effectInFailure\": \"error\",\n \"effectInVoidSuccess\": \"error\",\n \"globalErrorInEffectCatch\": \"error\",\n \"globalErrorInEffectFailure\": \"error\",\n \"layerMergeAllWithDependencies\": \"error\",\n \"lazyPromiseInEffectSync\": \"error\",\n \"leakingRequirements\": \"error\",\n \"multipleEffectProvide\": \"error\",\n \"returnEffectInGen\": \"error\",\n \"runEffectInsideEffect\": \"error\",\n \"schemaSyncInEffect\": \"error\",\n \"scopeInLayerEffect\": \"error\",\n \"strictEffectProvide\": \"error\",\n \"tryCatchInEffectGen\": \"error\",\n \"unknownInEffectCatch\": \"error\",\n \"asyncFunction\": \"error\",\n \"cryptoRandomUUID\": \"error\",\n \"cryptoRandomUUIDInEffect\": \"error\",\n \"extendsNativeError\": \"error\",\n \"globalConsole\": \"error\",\n \"globalConsoleInEffect\": \"error\",\n \"globalDate\": \"error\",\n \"globalDateInEffect\": \"error\",\n \"globalFetch\": \"error\",\n \"globalFetchInEffect\": \"error\",\n \"globalRandom\": \"error\",\n \"globalRandomInEffect\": \"error\",\n \"globalTimers\": \"error\",\n \"globalTimersInEffect\": \"error\",\n \"instanceOfSchema\": \"error\",\n \"newPromise\": \"error\",\n \"nodeBuiltinImport\": \"error\",\n \"preferSchemaOverJson\": \"error\",\n \"processEnv\": \"error\",\n \"processEnvInEffect\": \"error\",\n \"unsafeEffectTypeAssertion\": \"error\",\n \"catchAllToMapError\": \"error\",\n \"deterministicKeys\": \"error\",\n \"effectDoNotation\": \"error\",\n \"effectFnOpportunity\": \"error\",\n \"effectMapFlatten\": \"error\",\n \"effectMapVoid\": \"error\",\n \"effectSucceedWithVoid\": \"error\",\n \"missedPipeableOpportunity\": \"error\",\n \"missingEffectServiceDependency\": \"error\",\n \"nestedEffectGenYield\": \"error\",\n \"redundantSchemaTagIdentifier\": \"error\",\n \"schemaStructWithTag\": \"error\",\n \"schemaUnionOfLiterals\": \"error\",\n \"serviceNotAsClass\": \"error\",\n \"strictBooleanExpressions\": \"error\",\n \"unnecessaryArrowBlock\": \"error\",\n \"unnecessaryEffectGen\": \"error\",\n \"unnecessaryFailYieldableError\": \"error\",\n \"unnecessaryPipe\": \"error\",\n \"unnecessaryPipeChain\": \"error\"\n }\n }\n ]\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
18
18
|
".agents/skills-lock.json": "{\n \"schemaVersion\": 2,\n \"installDir\": \".agents/skills\",\n \"sources\": [\n {\n \"id\": \"techsiocz-private\",\n \"visibility\": \"private\",\n \"repository\": \"https://github.com/TechsioCZ/skills\",\n \"install\": \"clone-if-authorized\",\n \"baseline\": [\n {\n \"name\": \"plan-graph\",\n \"reason\": \"Build and validate DAGs from .plan.md files\"\n },\n {\n \"name\": \"dag\",\n \"reason\": \"Inspect current plan frontiers and blocked lanes\"\n },\n {\n \"name\": \"subagent-graph\",\n \"reason\": \"Design dependency-aware multi-agent launch graphs\"\n },\n {\n \"name\": \"helm\",\n \"reason\": \"Steer already-running multi-agent work\"\n },\n {\n \"name\": \"debugger-mode\",\n \"reason\": \"Run hypothesis-driven debugging with runtime evidence\"\n }\n ]\n }\n ]\n}\n",
|
|
@@ -26,8 +26,8 @@ const MWAFiles = {
|
|
|
26
26
|
"api/effect/index.ts": "\n",
|
|
27
27
|
"api/lambda/hello.ts": "",
|
|
28
28
|
"shared/effect/api.ts": "\n",
|
|
29
|
-
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
30
29
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n\ndeclare const ULTRAMODERN_SITE_URL: string;\n",
|
|
30
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
31
31
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family:\n PingFang SC,\n Hiragino Sans GB,\n Microsoft YaHei,\n Arial,\n 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,\n Monaco,\n Lucida Console,\n Liberation Mono,\n DejaVu Sans Mono,\n Bitstream Vera Sans Mono,\n Courier New,\n 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",
|
|
32
32
|
"src/routes/layout.tsx": "import { Outlet } from '';\nimport './index.css';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
33
33
|
"src/routes/[lang]/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport { useModernI18n } from \'@modern-js/plugin-i18n/runtime\';\nimport { useLocation } from \'\';\nimport { useTranslation } from \'react-i18next\';\n\nconst fallbackLanguage = \'en\';\nconst supportedLanguages = [\'en\', \'cs\'] as const;\ntype SupportedLanguage = (typeof supportedLanguages)[number];\n\nconst isSupportedLanguage = (value: string): value is SupportedLanguage =>\n supportedLanguages.includes(value as SupportedLanguage);\n\nconst stripLanguagePrefix = (pathname: string) => {\n const segments = pathname.split(\'/\').filter(Boolean);\n if (segments.length > 0 && isSupportedLanguage(segments[0] ?? \'\')) {\n segments.shift();\n }\n return `/${segments.join(\'/\')}`;\n};\n\nconst localizedPath = (pathname: string, language: SupportedLanguage) => {\n const pathWithoutLanguage = stripLanguagePrefix(pathname);\n return pathWithoutLanguage === \'/\' ? `/${language}` : `/${language}${pathWithoutLanguage}`;\n};\n\nconst absoluteUrl = (pathname: string) => {\n const origin = ULTRAMODERN_SITE_URL.replace(/\\/+$/u, \'\');\n return `${origin}${pathname}`;\n};\n\nconst locationSuffix = (location: { hash?: unknown; search?: unknown; searchStr?: unknown }) => {\n const { hash, search, searchStr } = location;\n let locationSearch = \'\';\n if (typeof searchStr === \'string\') {\n locationSearch = searchStr;\n } else if (typeof search === \'string\') {\n locationSearch = search;\n }\n const locationHash = typeof hash === \'string\' ? hash : \'\';\n return `${locationSearch}${locationHash}`;\n};\n\nconst Index = () => {\n const { t } = useTranslation();\n const { language } = useModernI18n();\n const location = useLocation();\n const currentLanguage = isSupportedLanguage(language) ? language : fallbackLanguage;\n const canonicalPath = localizedPath(location.pathname, currentLanguage);\n const suffix = locationSuffix(location);\n const languageOptions = supportedLanguages.map((code) => ({\n code,\n href: `${localizedPath(location.pathname, code)}${suffix}`,\n label: t(`home.language.${code}`),\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 <link rel="canonical" href={absoluteUrl(canonicalPath)} />\n {supportedLanguages.map((code) => (\n <link\n href={absoluteUrl(localizedPath(location.pathname, code))}\n hrefLang={code}\n key={code}\n rel="alternate"\n />\n ))}\n <link\n href={absoluteUrl(localizedPath(location.pathname, fallbackLanguage))}\n hrefLang="x-default"\n rel="alternate"\n />\n </Helmet>\n <main>\n <nav className="language-switcher" aria-label={t(\'home.language.switcher\')}>\n {languageOptions.map((option) => (\n <a\n aria-current={currentLanguage === option.code ? \'page\' : undefined}\n href={option.href}\n key={option.code}\n >\n {option.label}\n </a>\n ))}\n </nav>\n <div className="title">\n {t(\'home.title\')}\n <img\n alt={t(\'home.logoAlt\')}\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n />\n <p className="name">{t(\'home.name\')}</p>\n </div>\n <p className="description">\n {t(\'home.description.intro\')} <code className="code">presetUltramodern(...)</code>{\' \'}\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterPreset\')}\n <code className="code">modern.config.ts</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterConfig\')}\n <code className="code">mise exec -- pnpm run ultramodern:check</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.end\')}\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 {t(\'home.cards.guide.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.guide.body\')}</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 {t(\'home.cards.config.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.config.body\')}</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 {t(\'home.cards.gates.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.gates.body\')}</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 {t(\'home.cards.bff.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.bff.body\')}</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "node:module";
|
|
2
2
|
const commonFiles = {
|
|
3
|
-
".codesandbox/
|
|
4
|
-
".codesandbox/
|
|
3
|
+
".codesandbox/environment.json": "{\n \"nodeVersion\": 18\n}\n",
|
|
4
|
+
".codesandbox/tasks.json": "{\n \"$schema\": \"https://codesandbox.io/schemas/tasks.json\",\n \"setupTasks\": [\n {\n \"name\": \"Installing Dependencies\",\n \"command\": \"pnpm install\"\n }\n ],\n \"tasks\": {\n \"start\": {\n \"name\": \"Application\",\n \"command\": \"pnpm run start\",\n \"runAtStart\": true,\n \"restartOn\": {\n \"files\": [\"pnpm-lock.yaml\"]\n }\n }\n }\n}\n"
|
|
5
5
|
};
|
|
6
6
|
export { commonFiles };
|
|
@@ -9,11 +9,11 @@ const MWAFiles = {
|
|
|
9
9
|
"AGENTS.md": "# UltraModern Agent Contract\n\nThis project is generated for Codex-first UltraModern.js work.\n\n## Quality Gates\n\n- `pnpm lint` runs Oxlint with the Ultracite preset.\n- `pnpm format` runs oxfmt.\n- `pnpm typecheck` runs effect-tsgo as the TypeScript checker.\n- `pnpm i18n:check` rejects hardcoded user-visible JSX text.\n- `mise exec -- pnpm ultramodern:check` verifies the generated contract.\n\n## Internationalization\n\nRuntime i18n is enabled by default. Agents must put user-visible UI copy in `config/public/locales/<lang>/translation.json` and render it through `react-i18next` or `@modern-js/plugin-i18n/runtime`. Do not add hardcoded JSX text, `aria-label`, `title`, `alt`, or `placeholder` strings unless the value is a non-translatable technical token.\n\nRoutes are locale-prefixed by default through `localePathRedirect: true`. Keep localized pages under `src/routes/[lang]`, use links for language switching, and preserve canonical plus `hreflang` metadata. Production builds fail unless `MODERN_PUBLIC_SITE_URL` is set, so deployed canonical URLs always use the production origin.\n\n## Private Skills\n\nPrivate orchestration skills are not vendored into this template. If you are authorized for `TechsioCZ/skills`, run:\n\n```bash\npnpm skills:install\n```\n\nThe installer clones that private repository and copies only the allowlisted skills from `.agents/skills-lock.json`.\n",
|
|
10
10
|
"modern.config.ts": "// @effect-diagnostics nodeBuiltinImport:off processEnv:off\nimport { appTools, defineConfig, presetUltramodern } from '@modern-js/app-tools';\nimport path from 'node:path';\nimport { i18nPlugin } from '@modern-js/plugin-i18n';\nconst appId = process.env['MODERN_BASELINE_APP_ID'] || path.basename(process.cwd());\nconst enableModuleFederationSSR = process.env['MODERN_BASELINE_ENABLE_MF_SSR'] !== 'false';\nconst enableBffRequestId = process.env['MODERN_BASELINE_ENABLE_BFF_REQUEST_ID'] !== 'false';\nconst enableTelemetryExporters =\n process.env['MODERN_BASELINE_ENABLE_TELEMETRY_EXPORTERS'] !== 'false';\nconst telemetryFailLoudStartup = process.env['MODERN_TELEMETRY_FAIL_LOUD_STARTUP'] !== 'false';\nconst otlpEndpoint = process.env['MODERN_TELEMETRY_OTLP_ENDPOINT'];\nconst configuredSiteUrl = process.env['MODERN_PUBLIC_SITE_URL'];\nconst hasConfiguredSiteUrl = typeof configuredSiteUrl === 'string' && configuredSiteUrl.length > 0;\nconst isProductionBuild =\n process.env['NODE_ENV'] === 'production' || process.argv.includes('build');\n\nif (isProductionBuild && !hasConfiguredSiteUrl) {\n throw new Error(\n 'MODERN_PUBLIC_SITE_URL must be set for production builds so canonical and hreflang URLs use the deployed origin.',\n );\n}\n\nconst siteUrl = hasConfiguredSiteUrl ? configuredSiteUrl : 'http://localhost:8080';\nconst victoriaMetricsEndpoint = process.env['MODERN_TELEMETRY_VICTORIA_ENDPOINT'];\n\n// https://bleedingdev.github.io/ultramodern.js/configure/app/usage.html\nexport default defineConfig(\n presetUltramodern(\n {\n plugins: [\n appTools(),\n i18nPlugin({\n localeDetection: {\n fallbackLanguage: 'en',\n languages: ['en', 'cs'],\n localePathRedirect: true,\n },\n }),\n ],\n source: {\n globalVars: {\n ULTRAMODERN_SITE_URL: siteUrl,\n },\n },\n },\n {\n appId,\n enableBffRequestId,\n enableModuleFederationSSR,\n enableTelemetryExporters,\n telemetryFailLoudStartup,\n ...(typeof otlpEndpoint === 'string' ? { otlpEndpoint } : {}),\n ...(typeof victoriaMetricsEndpoint === 'string' ? { victoriaMetricsEndpoint } : {}),\n },\n ),\n);\n",
|
|
11
11
|
"oxfmt.config.ts": "import { defineConfig } from 'oxfmt';\nimport ultracite from 'ultracite/oxfmt';\n\nexport default defineConfig({\n extends: [ultracite],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n singleQuote: true,\n});\n",
|
|
12
|
+
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.13.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
12
13
|
"oxlint.config.ts": "import { defineConfig } from 'oxlint';\nimport core from 'ultracite/oxlint/core';\nimport react from 'ultracite/oxlint/react';\n\nexport default defineConfig({\n env: {\n browser: true,\n node: true,\n },\n extends: [core, react],\n ignorePatterns: ['dist', 'node_modules', '.modern', '.modernjs', '**/routeTree.gen.ts'],\n});\n",
|
|
13
|
-
"package.json": '{\n "name": "modern-app",\n "version": "0.1.0",\n "private": true,\n "type": "module",\n "packageManager": "pnpm@",\n "scripts": {\n "reset": "npx rimraf node_modules ./**/node_modules",\n "dev": "modern dev",\n "build": "modern build",\n "serve": "modern serve",\n "test": "rstest run",\n "typecheck": "node -e \\"const fs = require(\'node:fs\'); const { execFileSync, spawnSync } = require(\'node:child_process\'); const bin = execFileSync(\'effect-tsgo\', [\'get-exe-path\'], { encoding: \'utf8\' }).trim(); if (process.platform !== \'win32\') fs.chmodSync(bin, 0o755); const result = spawnSync(bin, [\'--noEmit\', \'-p\', \'tsconfig.json\'], { stdio: \'inherit\' }); process.exit(result.status ?? 1);\\"",\n "i18n:check": "node ./scripts/check-i18n-strings.mjs",\n "skills:install": "node ./scripts/bootstrap-agent-skills.mjs",\n "skills:check": "node ./scripts/bootstrap-agent-skills.mjs --check",\n "ultramodern:check": "pnpm format:check && pnpm lint && pnpm typecheck && pnpm i18n:check && pnpm test && pnpm skills:check && node ./scripts/validate-ultramodern.mjs",\n "format": "oxfmt .",\n "format:check": "oxfmt --check .",\n "lint": "oxlint .",\n "lint:fix": "oxlint . --fix",\n "prepare": "simple-git-hooks"\n },\n "dependencies": {\n "@modern-js/plugin-i18n": "",\n "@modern-js/runtime": "",\n "i18next": "26.2.0",\n "react": "^19.2.6",\n "react-dom": "^19.2.6",\n "react-i18next": "17.0.8"\n },\n "devDependencies": {\n "@effect/tsgo": "0.11.0",\n "@modern-js/adapter-rstest": "",\n "@modern-js/app-tools": "",\n "@modern-js/tsconfig": "",\n "@rstest/core": "0.10.2",\n "@types/node": "^20",\n "@types/react": "^19.1.8",\n "@types/react-dom": "^19.1.6",\n "@typescript/native-preview": "7.0.0-dev.20260527.2",\n "happy-dom": "^20.9.0",\n "lint-staged": "~17.0.5",\n "oxfmt": "0.51.0",\n "oxlint": "1.66.0",\n "rimraf": "^6.1.3",\n "simple-git-hooks": "^2.13.1",\n "ultracite": "7.7.0"\n },\n "simple-git-hooks": {\n "pre-commit": "npx lint-staged"\n },\n "lint-staged": {\n "*.{js,ts,cjs,mjs,d.cts,d.mts,jsx,tsx,json,jsonc}": [\n "oxfmt --write",\n "oxlint --fix"\n ]\n },\n "engines": {\n "node": ">=20",\n "pnpm": ">= <11.5.0"\n }\n}\n',
|
|
14
14
|
"pnpm-workspace.yaml": "minimumReleaseAge: 1440\nminimumReleaseAgeStrict: true\nminimumReleaseAgeIgnoreMissingTime: false\nminimumReleaseAgeExclude:\n - '@modern-js/*'\n - '@bleedingdev/*'\n - '@effect/tsgo'\n - '@effect/tsgo-*'\n - '@typescript/native-preview'\n - '@typescript/native-preview-*'\ntrustPolicy: no-downgrade\ntrustPolicyIgnoreAfter: 1440\nblockExoticSubdeps: true\nengineStrict: true\npmOnFail: error\nverifyDepsBeforeRun: error\nstrictDepBuilds: true\n\nallowBuilds:\n '@swc/core': true\n core-js: true\n esbuild: true\n msgpackr-extract: true\n sharp: true\n simple-git-hooks: true\n workerd: true\n",
|
|
15
|
-
"postcss.config.mjs": "",
|
|
16
15
|
"rstest.config.mts": "import { withModernConfig } from '@modern-js/adapter-rstest';\nimport { defineConfig } from '@rstest/core';\n\nexport default defineConfig({\n extends: withModernConfig(),\n testEnvironment: 'happy-dom',\n});\n",
|
|
16
|
+
"postcss.config.mjs": "",
|
|
17
17
|
"tailwind.config.ts": "",
|
|
18
18
|
"tsconfig.json": "{\n \"extends\": \"@modern-js/tsconfig/base\",\n \"compilerOptions\": {\n \"declaration\": false,\n \"jsx\": \"preserve\",\n \"target\": \"ESNext\",\n \"lib\": [\"ESNext\", \"DOM\", \"DOM.Iterable\"],\n \"module\": \"preserve\",\n \"moduleResolution\": \"Bundler\",\n \"moduleDetection\": \"force\",\n \"isolatedModules\": true,\n \"verbatimModuleSyntax\": true,\n \"noEmit\": true,\n \"allowJs\": true,\n \"resolveJsonModule\": true,\n \"esModuleInterop\": true,\n \"skipLibCheck\": true,\n \"strict\": true,\n \"noUncheckedIndexedAccess\": true,\n \"exactOptionalPropertyTypes\": true,\n \"noImplicitOverride\": true,\n \"noFallthroughCasesInSwitch\": true,\n \"noPropertyAccessFromIndexSignature\": true,\n \"noImplicitReturns\": true,\n \"paths\": {\n \"@/*\": [\"./src/*\"],\n \"@api/*\": [\"./api/*\"],\n \"@shared/*\": [\"./shared/*\"]\n },\n \"rootDir\": \".\",\n \"plugins\": [\n {\n \"name\": \"@effect/language-service\",\n \"diagnostics\": true,\n \"includeSuggestionsInTsc\": true,\n \"ignoreEffectSuggestionsInTscExitCode\": false,\n \"ignoreEffectWarningsInTscExitCode\": false,\n \"ignoreEffectErrorsInTscExitCode\": false,\n \"skipDisabledOptimization\": true,\n \"diagnosticSeverity\": {\n \"anyUnknownInErrorContext\": \"error\",\n \"classSelfMismatch\": \"error\",\n \"duplicatePackage\": \"error\",\n \"effectFnImplicitAny\": \"error\",\n \"floatingEffect\": \"error\",\n \"genericEffectServices\": \"error\",\n \"missingEffectContext\": \"error\",\n \"missingEffectError\": \"error\",\n \"missingLayerContext\": \"error\",\n \"missingReturnYieldStar\": \"error\",\n \"missingStarInYieldEffectGen\": \"error\",\n \"nonObjectEffectServiceType\": \"error\",\n \"outdatedApi\": \"error\",\n \"overriddenSchemaConstructor\": \"error\",\n \"catchUnfailableEffect\": \"error\",\n \"effectFnIife\": \"error\",\n \"effectGenUsesAdapter\": \"error\",\n \"effectInFailure\": \"error\",\n \"effectInVoidSuccess\": \"error\",\n \"globalErrorInEffectCatch\": \"error\",\n \"globalErrorInEffectFailure\": \"error\",\n \"layerMergeAllWithDependencies\": \"error\",\n \"lazyPromiseInEffectSync\": \"error\",\n \"leakingRequirements\": \"error\",\n \"multipleEffectProvide\": \"error\",\n \"returnEffectInGen\": \"error\",\n \"runEffectInsideEffect\": \"error\",\n \"schemaSyncInEffect\": \"error\",\n \"scopeInLayerEffect\": \"error\",\n \"strictEffectProvide\": \"error\",\n \"tryCatchInEffectGen\": \"error\",\n \"unknownInEffectCatch\": \"error\",\n \"asyncFunction\": \"error\",\n \"cryptoRandomUUID\": \"error\",\n \"cryptoRandomUUIDInEffect\": \"error\",\n \"extendsNativeError\": \"error\",\n \"globalConsole\": \"error\",\n \"globalConsoleInEffect\": \"error\",\n \"globalDate\": \"error\",\n \"globalDateInEffect\": \"error\",\n \"globalFetch\": \"error\",\n \"globalFetchInEffect\": \"error\",\n \"globalRandom\": \"error\",\n \"globalRandomInEffect\": \"error\",\n \"globalTimers\": \"error\",\n \"globalTimersInEffect\": \"error\",\n \"instanceOfSchema\": \"error\",\n \"newPromise\": \"error\",\n \"nodeBuiltinImport\": \"error\",\n \"preferSchemaOverJson\": \"error\",\n \"processEnv\": \"error\",\n \"processEnvInEffect\": \"error\",\n \"unsafeEffectTypeAssertion\": \"error\",\n \"catchAllToMapError\": \"error\",\n \"deterministicKeys\": \"error\",\n \"effectDoNotation\": \"error\",\n \"effectFnOpportunity\": \"error\",\n \"effectMapFlatten\": \"error\",\n \"effectMapVoid\": \"error\",\n \"effectSucceedWithVoid\": \"error\",\n \"missedPipeableOpportunity\": \"error\",\n \"missingEffectServiceDependency\": \"error\",\n \"nestedEffectGenYield\": \"error\",\n \"redundantSchemaTagIdentifier\": \"error\",\n \"schemaStructWithTag\": \"error\",\n \"schemaUnionOfLiterals\": \"error\",\n \"serviceNotAsClass\": \"error\",\n \"strictBooleanExpressions\": \"error\",\n \"unnecessaryArrowBlock\": \"error\",\n \"unnecessaryEffectGen\": \"error\",\n \"unnecessaryFailYieldableError\": \"error\",\n \"unnecessaryPipe\": \"error\",\n \"unnecessaryPipeChain\": \"error\"\n }\n }\n ]\n },\n \"include\": [\"src\", \"api\", \"shared\", \"config\", \"modern.config.ts\"],\n \"exclude\": [\"**/node_modules\"]\n}\n",
|
|
19
19
|
".agents/skills-lock.json": "{\n \"schemaVersion\": 2,\n \"installDir\": \".agents/skills\",\n \"sources\": [\n {\n \"id\": \"techsiocz-private\",\n \"visibility\": \"private\",\n \"repository\": \"https://github.com/TechsioCZ/skills\",\n \"install\": \"clone-if-authorized\",\n \"baseline\": [\n {\n \"name\": \"plan-graph\",\n \"reason\": \"Build and validate DAGs from .plan.md files\"\n },\n {\n \"name\": \"dag\",\n \"reason\": \"Inspect current plan frontiers and blocked lanes\"\n },\n {\n \"name\": \"subagent-graph\",\n \"reason\": \"Design dependency-aware multi-agent launch graphs\"\n },\n {\n \"name\": \"helm\",\n \"reason\": \"Steer already-running multi-agent work\"\n },\n {\n \"name\": \"debugger-mode\",\n \"reason\": \"Run hypothesis-driven debugging with runtime evidence\"\n }\n ]\n }\n ]\n}\n",
|
|
@@ -27,8 +27,8 @@ const MWAFiles = {
|
|
|
27
27
|
"api/effect/index.ts": "\n",
|
|
28
28
|
"api/lambda/hello.ts": "",
|
|
29
29
|
"shared/effect/api.ts": "\n",
|
|
30
|
-
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
31
30
|
"src/modern-app-env.d.ts": "/// <reference types='@modern-js/app-tools/types' />\n\ndeclare const ULTRAMODERN_SITE_URL: string;\n",
|
|
31
|
+
"src/modern.runtime.ts": "import { defineRuntimeConfig } from '@modern-js/runtime';\nimport { createInstance } from 'i18next';\n\nconst i18nInstance = createInstance();\n\nexport default defineRuntimeConfig({\n i18n: {\n i18nInstance,\n initOptions: {\n defaultNS: 'translation',\n fallbackLng: 'en',\n interpolation: {\n escapeValue: false,\n },\n ns: ['translation'],\n supportedLngs: ['en', 'cs'],\n },\n },\n});\n",
|
|
32
32
|
"src/routes/index.css": "html,\nbody {\n padding: 0;\n margin: 0;\n font-family:\n PingFang SC,\n Hiragino Sans GB,\n Microsoft YaHei,\n Arial,\n 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,\n Monaco,\n Lucida Console,\n Liberation Mono,\n DejaVu Sans Mono,\n Bitstream Vera Sans Mono,\n Courier New,\n 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",
|
|
33
33
|
"src/routes/layout.tsx": "import { Outlet } from '';\nimport './index.css';\n\nexport default function Layout() {\n return (\n <div>\n <Outlet />\n </div>\n );\n}\n",
|
|
34
34
|
"src/routes/[lang]/page.tsx": 'import { Helmet } from \'@modern-js/runtime/head\';\nimport { useModernI18n } from \'@modern-js/plugin-i18n/runtime\';\nimport { useLocation } from \'\';\nimport { useTranslation } from \'react-i18next\';\n\nconst fallbackLanguage = \'en\';\nconst supportedLanguages = [\'en\', \'cs\'] as const;\ntype SupportedLanguage = (typeof supportedLanguages)[number];\n\nconst isSupportedLanguage = (value: string): value is SupportedLanguage =>\n supportedLanguages.includes(value as SupportedLanguage);\n\nconst stripLanguagePrefix = (pathname: string) => {\n const segments = pathname.split(\'/\').filter(Boolean);\n if (segments.length > 0 && isSupportedLanguage(segments[0] ?? \'\')) {\n segments.shift();\n }\n return `/${segments.join(\'/\')}`;\n};\n\nconst localizedPath = (pathname: string, language: SupportedLanguage) => {\n const pathWithoutLanguage = stripLanguagePrefix(pathname);\n return pathWithoutLanguage === \'/\' ? `/${language}` : `/${language}${pathWithoutLanguage}`;\n};\n\nconst absoluteUrl = (pathname: string) => {\n const origin = ULTRAMODERN_SITE_URL.replace(/\\/+$/u, \'\');\n return `${origin}${pathname}`;\n};\n\nconst locationSuffix = (location: { hash?: unknown; search?: unknown; searchStr?: unknown }) => {\n const { hash, search, searchStr } = location;\n let locationSearch = \'\';\n if (typeof searchStr === \'string\') {\n locationSearch = searchStr;\n } else if (typeof search === \'string\') {\n locationSearch = search;\n }\n const locationHash = typeof hash === \'string\' ? hash : \'\';\n return `${locationSearch}${locationHash}`;\n};\n\nconst Index = () => {\n const { t } = useTranslation();\n const { language } = useModernI18n();\n const location = useLocation();\n const currentLanguage = isSupportedLanguage(language) ? language : fallbackLanguage;\n const canonicalPath = localizedPath(location.pathname, currentLanguage);\n const suffix = locationSuffix(location);\n const languageOptions = supportedLanguages.map((code) => ({\n code,\n href: `${localizedPath(location.pathname, code)}${suffix}`,\n label: t(`home.language.${code}`),\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 <link rel="canonical" href={absoluteUrl(canonicalPath)} />\n {supportedLanguages.map((code) => (\n <link\n href={absoluteUrl(localizedPath(location.pathname, code))}\n hrefLang={code}\n key={code}\n rel="alternate"\n />\n ))}\n <link\n href={absoluteUrl(localizedPath(location.pathname, fallbackLanguage))}\n hrefLang="x-default"\n rel="alternate"\n />\n </Helmet>\n <main>\n <nav className="language-switcher" aria-label={t(\'home.language.switcher\')}>\n {languageOptions.map((option) => (\n <a\n aria-current={currentLanguage === option.code ? \'page\' : undefined}\n href={option.href}\n key={option.code}\n >\n {option.label}\n </a>\n ))}\n </nav>\n <div className="title">\n {t(\'home.title\')}\n <img\n alt={t(\'home.logoAlt\')}\n className="logo"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/modern-js-logo.svg"\n />\n <p className="name">{t(\'home.name\')}</p>\n </div>\n <p className="description">\n {t(\'home.description.intro\')} <code className="code">presetUltramodern(...)</code>{\' \'}\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterPreset\')}\n <code className="code">modern.config.ts</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.afterConfig\')}\n <code className="code">mise exec -- pnpm run ultramodern:check</code>\n {/* i18n-ignore technical token */}\n {t(\'home.description.end\')}\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 {t(\'home.cards.guide.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.guide.body\')}</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 {t(\'home.cards.config.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.config.body\')}</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 {t(\'home.cards.gates.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.gates.body\')}</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 {t(\'home.cards.bff.title\')}\n <img\n alt=""\n className="arrow-right"\n src="https://lf3-static.bytednsdoc.com/obj/eden-cn/zq-uylkvT/ljhwZthlaukjlkulzlp/arrow-right.svg"\n />\n </h2>\n <p>{t(\'home.cards.bff.body\')}</p>\n </a>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Index;\n',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const MWAFiles: {
|
|
2
|
-
".codesandbox/tasks.json": string;
|
|
3
2
|
".codesandbox/environment.json": string;
|
|
3
|
+
".codesandbox/tasks.json": string;
|
|
4
4
|
".browserslistrc": string;
|
|
5
5
|
".gitignore": string;
|
|
6
6
|
".mise.toml": string;
|
|
@@ -8,11 +8,11 @@ export declare const MWAFiles: {
|
|
|
8
8
|
"AGENTS.md": string;
|
|
9
9
|
"modern.config.ts": string;
|
|
10
10
|
"oxfmt.config.ts": string;
|
|
11
|
-
"oxlint.config.ts": string;
|
|
12
11
|
"package.json": string;
|
|
12
|
+
"oxlint.config.ts": string;
|
|
13
13
|
"pnpm-workspace.yaml": string;
|
|
14
|
-
"postcss.config.mjs": string;
|
|
15
14
|
"rstest.config.mts": string;
|
|
15
|
+
"postcss.config.mjs": string;
|
|
16
16
|
"tailwind.config.ts": string;
|
|
17
17
|
"tsconfig.json": string;
|
|
18
18
|
".agents/skills-lock.json": string;
|
|
@@ -26,8 +26,8 @@ export declare const MWAFiles: {
|
|
|
26
26
|
"api/effect/index.ts": string;
|
|
27
27
|
"api/lambda/hello.ts": string;
|
|
28
28
|
"shared/effect/api.ts": string;
|
|
29
|
-
"src/modern.runtime.ts": string;
|
|
30
29
|
"src/modern-app-env.d.ts": string;
|
|
30
|
+
"src/modern.runtime.ts": string;
|
|
31
31
|
"src/routes/index.css": string;
|
|
32
32
|
"src/routes/layout.tsx": string;
|
|
33
33
|
"src/routes/[lang]/page.tsx": string;
|
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.47",
|
|
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.20260527.2",
|
|
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.47"
|
|
52
52
|
},
|
|
53
53
|
"sideEffects": false,
|
|
54
54
|
"publishConfig": {
|