@next-vibe/checker 1.0.11 → 1.0.13
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/bin/vibe-runtime.js +26 -22
- package/.dist/bin/vibe-runtime.js.map +5 -5
- package/.dist/oxlint-plugins/i18n.js +4 -0
- package/.dist/oxlint-plugins/i18n.js.map +1 -0
- package/.dist/oxlint-plugins/jsx-capitalization.js +4 -0
- package/.dist/oxlint-plugins/jsx-capitalization.js.map +1 -0
- package/.dist/oxlint-plugins/restricted-syntax.js +4 -0
- package/.dist/oxlint-plugins/restricted-syntax.js.map +1 -0
- package/check.config.ts +4 -12
- package/package.json +2 -9
- package/src/app/api/[locale]/LICENSE +674 -0
- package/src/app/api/[locale]/i18n/de/index.ts +13 -0
- package/src/app/api/[locale]/i18n/en/index.ts +12 -0
- package/src/app/api/[locale]/i18n/pl/index.ts +11 -0
- package/src/app/api/[locale]/shared/i18n/de/index.ts +85 -0
- package/src/app/api/[locale]/shared/i18n/en/index.ts +83 -0
- package/src/app/api/[locale]/shared/i18n/pl/index.ts +85 -0
- package/src/app/api/[locale]/shared/stats-filtering.ts +202 -0
- package/src/app/api/[locale]/shared/types/common.schema.ts +55 -0
- package/src/app/api/[locale]/shared/types/response.schema.ts +372 -0
- package/src/app/api/[locale]/shared/types/stats-filtering.schema.ts +375 -0
- package/src/app/api/[locale]/shared/types/utils.ts +190 -0
- package/src/app/api/[locale]/shared/utils/base64.ts +49 -0
- package/src/app/api/[locale]/shared/utils/env-util.ts +40 -0
- package/src/app/api/[locale]/shared/utils/i18n/de/index.ts +21 -0
- package/src/app/api/[locale]/shared/utils/i18n/en/index.ts +19 -0
- package/src/app/api/[locale]/shared/utils/i18n/pl/index.ts +21 -0
- package/src/app/api/[locale]/shared/utils/index.ts +11 -0
- package/src/app/api/[locale]/shared/utils/object-path.ts +41 -0
- package/src/app/api/[locale]/shared/utils/object.test.ts +82 -0
- package/src/app/api/[locale]/shared/utils/object.ts +75 -0
- package/src/app/api/[locale]/shared/utils/parse-error.ts +134 -0
- package/src/app/api/[locale]/shared/utils/parse-json.ts +70 -0
- package/src/app/api/[locale]/shared/utils/time.ts +53 -0
- package/src/app/api/[locale]/shared/utils/validation.ts +127 -0
- package/src/app/api/[locale]/shared/utils/zod-required-fields.ts +116 -0
- package/src/app/api/[locale]/system/builder/definition.ts +1942 -0
- package/src/app/api/[locale]/system/builder/enum.ts +78 -0
- package/src/app/api/[locale]/system/builder/i18n/de/index.ts +677 -0
- package/src/app/api/[locale]/system/builder/i18n/en/index.ts +665 -0
- package/src/app/api/[locale]/system/builder/i18n/pl/index.ts +668 -0
- package/src/app/api/[locale]/system/builder/repository/build-executor.test.ts +182 -0
- package/src/app/api/[locale]/system/builder/repository/build-executor.ts +583 -0
- package/src/app/api/[locale]/system/builder/repository/bun-compiler.ts +261 -0
- package/src/app/api/[locale]/system/builder/repository/bundle-analyzer.ts +197 -0
- package/src/app/api/[locale]/system/builder/repository/config-loader.ts +159 -0
- package/src/app/api/[locale]/system/builder/repository/config-validator.ts +97 -0
- package/src/app/api/[locale]/system/builder/repository/constants.ts +125 -0
- package/src/app/api/[locale]/system/builder/repository/error-suggester.ts +75 -0
- package/src/app/api/[locale]/system/builder/repository/file-copier.ts +98 -0
- package/src/app/api/[locale]/system/builder/repository/folder-cleaner.ts +80 -0
- package/src/app/api/[locale]/system/builder/repository/index.ts +2 -0
- package/src/app/api/[locale]/system/builder/repository/npm-package-generator.ts +146 -0
- package/src/app/api/[locale]/system/builder/repository/output-formatter.ts +104 -0
- package/src/app/api/[locale]/system/builder/repository/profile-service.ts +79 -0
- package/src/app/api/[locale]/system/builder/repository/report-generator.ts +125 -0
- package/src/app/api/[locale]/system/builder/repository/vite-compiler.ts +291 -0
- package/src/app/api/[locale]/system/builder/route.ts +21 -0
- package/src/app/api/[locale]/system/builder/test-files/file1.ts +2 -0
- package/src/app/api/[locale]/system/builder/test-files/file2.tsx +10 -0
- package/src/app/api/[locale]/system/builder/test-files/file3.tsx +16 -0
- package/src/app/api/[locale]/system/builder/test-files/folderToCopy/fileInFolder.ts +2 -0
- package/src/app/api/[locale]/system/builder/test-files/test-config.ts +38 -0
- package/src/app/api/[locale]/system/builder/test-files/test-delete-config.ts +8 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/package.json +24 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/src/constants.ts +6 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/src/greet.ts +18 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/src/index.ts +7 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/src/utils/calculate.ts +27 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.json +19 -0
- package/src/app/api/[locale]/system/builder/test-files/test-project/tsconfig.tsbuildinfo +1 -0
- package/src/app/api/[locale]/system/builder/test-files/test3.css +1 -0
- package/src/app/api/[locale]/system/check/config/repository.ts +886 -0
- package/src/app/api/[locale]/system/check/config/shared.ts +396 -0
- package/src/app/api/[locale]/system/check/config/types.ts +616 -0
- package/src/app/api/[locale]/system/check/config/utils.ts +171 -0
- package/src/app/api/[locale]/system/check/i18n/de/index.ts +15 -0
- package/src/app/api/[locale]/system/check/i18n/en/index.ts +14 -0
- package/src/app/api/[locale]/system/check/i18n/pl/index.ts +15 -0
- package/src/app/api/[locale]/system/check/lint/definition.ts +414 -0
- package/src/app/api/[locale]/system/check/lint/enum.ts +37 -0
- package/src/app/api/[locale]/system/check/lint/i18n/de/index.ts +164 -0
- package/src/app/api/[locale]/system/check/lint/i18n/en/index.ts +162 -0
- package/src/app/api/[locale]/system/check/lint/i18n/pl/index.ts +164 -0
- package/src/app/api/[locale]/system/check/lint/repository.ts +753 -0
- package/src/app/api/[locale]/system/check/lint/route.ts +21 -0
- package/src/app/api/[locale]/system/check/oxlint/README.md +190 -0
- package/src/app/api/[locale]/system/check/oxlint/definition.ts +414 -0
- package/src/app/api/[locale]/system/check/oxlint/enum.ts +37 -0
- package/src/app/api/[locale]/system/check/oxlint/i18n/de/index.ts +171 -0
- package/src/app/api/[locale]/system/check/oxlint/i18n/en/index.ts +168 -0
- package/src/app/api/[locale]/system/check/oxlint/i18n/pl/index.ts +172 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/i18n/src/index.ts +372 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/README.md +246 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/jsx-capitalization/src/index.ts +583 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/src/index.ts +500 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/restricted-syntax/test.tsx +74 -0
- package/src/app/api/[locale]/system/check/oxlint/plugins/shared/config-loader.ts +305 -0
- package/src/app/api/[locale]/system/check/oxlint/repository.ts +959 -0
- package/src/app/api/[locale]/system/check/oxlint/route.ts +21 -0
- package/src/app/api/[locale]/system/check/oxlint/types.ts +193 -0
- package/src/app/api/[locale]/system/check/test-project/bun.lock +532 -0
- package/src/app/api/[locale]/system/check/test-project/check.config.ts +981 -0
- package/src/app/api/[locale]/system/check/test-project/package.json +12 -0
- package/src/app/api/[locale]/system/check/test-project/src/constants.ts +6 -0
- package/src/app/api/[locale]/system/check/test-project/src/greet.ts +18 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/a11y-issues.tsx +107 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/eslint-issues.tsx +37 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/general-issues.ts +137 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/i18n-issues.tsx +129 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/jsx-capitalization-issues.tsx +131 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/nextjs-issues.tsx +95 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/promise-issues.ts +76 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/react-issues.tsx +95 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/restricted-syntax-issues.tsx +61 -0
- package/src/app/api/[locale]/system/check/test-project/src/test-issues/typescript-issues.ts +80 -0
- package/src/app/api/[locale]/system/check/test-project/src/utils/calculate.ts +27 -0
- package/src/app/api/[locale]/system/check/test-project/tsconfig.json +34 -0
- package/src/app/api/[locale]/system/check/test-project/tsconfig.tsbuildinfo +1 -0
- package/src/app/api/[locale]/system/check/typecheck/definition.ts +369 -0
- package/src/app/api/[locale]/system/check/typecheck/enum.ts +37 -0
- package/src/app/api/[locale]/system/check/typecheck/i18n/de/index.ts +159 -0
- package/src/app/api/[locale]/system/check/typecheck/i18n/en/index.ts +150 -0
- package/src/app/api/[locale]/system/check/typecheck/i18n/pl/index.ts +155 -0
- package/src/app/api/[locale]/system/check/typecheck/repository.ts +919 -0
- package/src/app/api/[locale]/system/check/typecheck/route.ts +22 -0
- package/src/app/api/[locale]/system/check/typecheck/utils.ts +168 -0
- package/src/app/api/[locale]/system/check/vibe-check/definition.ts +568 -0
- package/src/app/api/[locale]/system/check/vibe-check/enum.ts +69 -0
- package/src/app/api/[locale]/system/check/vibe-check/i18n/de/index.ts +192 -0
- package/src/app/api/[locale]/system/check/vibe-check/i18n/en/index.ts +189 -0
- package/src/app/api/[locale]/system/check/vibe-check/i18n/pl/index.ts +192 -0
- package/src/app/api/[locale]/system/check/vibe-check/repository.ts +545 -0
- package/src/app/api/[locale]/system/check/vibe-check/route.test.ts +1142 -0
- package/src/app/api/[locale]/system/check/vibe-check/route.ts +21 -0
- package/src/app/api/[locale]/system/generated/endpoint.ts +313 -0
- package/src/app/api/[locale]/system/generated/endpoints.ts +156 -0
- package/src/app/api/[locale]/system/generated/route-handlers.ts +224 -0
- package/src/app/api/[locale]/system/generators/endpoint/definition.ts +193 -0
- package/src/app/api/[locale]/system/generators/endpoint/i18n/de/index.ts +48 -0
- package/src/app/api/[locale]/system/generators/endpoint/i18n/en/index.ts +48 -0
- package/src/app/api/[locale]/system/generators/endpoint/i18n/pl/index.ts +50 -0
- package/src/app/api/[locale]/system/generators/endpoint/repository.ts +291 -0
- package/src/app/api/[locale]/system/generators/endpoint/route.ts +21 -0
- package/src/app/api/[locale]/system/generators/endpoints/definition.ts +246 -0
- package/src/app/api/[locale]/system/generators/endpoints/i18n/de/index.ts +54 -0
- package/src/app/api/[locale]/system/generators/endpoints/i18n/en/index.ts +52 -0
- package/src/app/api/[locale]/system/generators/endpoints/i18n/pl/index.ts +54 -0
- package/src/app/api/[locale]/system/generators/endpoints/options-repository.ts +463 -0
- package/src/app/api/[locale]/system/generators/endpoints/repository.ts +383 -0
- package/src/app/api/[locale]/system/generators/endpoints/route.ts +18 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/definition.ts +194 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/i18n/de/index.ts +71 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/i18n/en/index.ts +69 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/i18n/pl/index.ts +71 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/repository.ts +294 -0
- package/src/app/api/[locale]/system/generators/endpoints-index/route.ts +18 -0
- package/src/app/api/[locale]/system/generators/generate-all/definition.ts +355 -0
- package/src/app/api/[locale]/system/generators/generate-all/i18n/de/index.ts +96 -0
- package/src/app/api/[locale]/system/generators/generate-all/i18n/en/index.ts +94 -0
- package/src/app/api/[locale]/system/generators/generate-all/i18n/pl/index.ts +96 -0
- package/src/app/api/[locale]/system/generators/generate-all/repository.ts +257 -0
- package/src/app/api/[locale]/system/generators/generate-all/route.ts +20 -0
- package/src/app/api/[locale]/system/generators/i18n/de/index.ts +15 -0
- package/src/app/api/[locale]/system/generators/i18n/en/index.ts +14 -0
- package/src/app/api/[locale]/system/generators/i18n/pl/index.ts +15 -0
- package/src/app/api/[locale]/system/generators/route-handlers/definition.ts +198 -0
- package/src/app/api/[locale]/system/generators/route-handlers/i18n/de/index.ts +48 -0
- package/src/app/api/[locale]/system/generators/route-handlers/i18n/en/index.ts +48 -0
- package/src/app/api/[locale]/system/generators/route-handlers/i18n/pl/index.ts +50 -0
- package/src/app/api/[locale]/system/generators/route-handlers/repository.ts +277 -0
- package/src/app/api/[locale]/system/generators/route-handlers/route.ts +17 -0
- package/src/app/api/[locale]/system/generators/shared/utils.ts +233 -0
- package/src/app/api/[locale]/system/help/definition.ts +445 -0
- package/src/app/api/[locale]/system/help/i18n/de/index.ts +267 -0
- package/src/app/api/[locale]/system/help/i18n/en/index.ts +262 -0
- package/src/app/api/[locale]/system/help/i18n/pl/index.ts +265 -0
- package/src/app/api/[locale]/system/help/interactive/definition.ts +125 -0
- package/src/app/api/[locale]/system/help/interactive/i18n/de/index.ts +22 -0
- package/src/app/api/[locale]/system/help/interactive/i18n/en/index.ts +19 -0
- package/src/app/api/[locale]/system/help/interactive/i18n/pl/index.ts +22 -0
- package/src/app/api/[locale]/system/help/interactive/repository.ts +1025 -0
- package/src/app/api/[locale]/system/help/interactive/route.ts +53 -0
- package/src/app/api/[locale]/system/help/list/definition.ts +372 -0
- package/src/app/api/[locale]/system/help/list/repository.ts +110 -0
- package/src/app/api/[locale]/system/help/list/route.ts +21 -0
- package/src/app/api/[locale]/system/help/repository.ts +212 -0
- package/src/app/api/[locale]/system/help/route.ts +16 -0
- package/src/app/api/[locale]/system/i18n/de/index.ts +68 -0
- package/src/app/api/[locale]/system/i18n/en/index.ts +65 -0
- package/src/app/api/[locale]/system/i18n/pl/index.ts +66 -0
- package/src/app/api/[locale]/system/release-tool/definition.ts +3104 -0
- package/src/app/api/[locale]/system/release-tool/i18n/de/index.ts +813 -0
- package/src/app/api/[locale]/system/release-tool/i18n/en/index.ts +797 -0
- package/src/app/api/[locale]/system/release-tool/i18n/pl/index.ts +810 -0
- package/src/app/api/[locale]/system/release-tool/repository/asset-zipper.ts +128 -0
- package/src/app/api/[locale]/system/release-tool/repository/changelog-generator.ts +212 -0
- package/src/app/api/[locale]/system/release-tool/repository/ci-detector.ts +566 -0
- package/src/app/api/[locale]/system/release-tool/repository/config.ts +113 -0
- package/src/app/api/[locale]/system/release-tool/repository/constants.ts +407 -0
- package/src/app/api/[locale]/system/release-tool/repository/dependency-manager.ts +527 -0
- package/src/app/api/[locale]/system/release-tool/repository/git-service.ts +403 -0
- package/src/app/api/[locale]/system/release-tool/repository/hook-runner.ts +100 -0
- package/src/app/api/[locale]/system/release-tool/repository/index.ts +1 -0
- package/src/app/api/[locale]/system/release-tool/repository/notification-service.ts +638 -0
- package/src/app/api/[locale]/system/release-tool/repository/package-service.ts +169 -0
- package/src/app/api/[locale]/system/release-tool/repository/publisher.ts +253 -0
- package/src/app/api/[locale]/system/release-tool/repository/quality-runner.ts +428 -0
- package/src/app/api/[locale]/system/release-tool/repository/release-creator.ts +293 -0
- package/src/app/api/[locale]/system/release-tool/repository/release-executor.ts +1198 -0
- package/src/app/api/[locale]/system/release-tool/repository/snyk-service.ts +136 -0
- package/src/app/api/[locale]/system/release-tool/repository/utils.ts +642 -0
- package/src/app/api/[locale]/system/release-tool/repository/validation.ts +288 -0
- package/src/app/api/[locale]/system/release-tool/repository/version-service.ts +297 -0
- package/src/app/api/[locale]/system/release-tool/route.ts +21 -0
- package/src/app/api/[locale]/system/unified-interface/README.md +328 -0
- package/src/app/api/[locale]/system/unified-interface/cli/README.md +349 -0
- package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-handler.ts +95 -0
- package/src/app/api/[locale]/system/unified-interface/cli/auth/cli-user.ts +146 -0
- package/src/app/api/[locale]/system/unified-interface/cli/auth/session-file.ts +266 -0
- package/src/app/api/[locale]/system/unified-interface/cli/env.ts +26 -0
- package/src/app/api/[locale]/system/unified-interface/cli/i18n/de/index.ts +157 -0
- package/src/app/api/[locale]/system/unified-interface/cli/i18n/en/index.ts +155 -0
- package/src/app/api/[locale]/system/unified-interface/cli/i18n/pl/index.ts +158 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/debug.ts +595 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/entry-point.ts +129 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/environment.ts +155 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/execution-errors.ts +452 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/parsing.ts +297 -0
- package/src/app/api/[locale]/system/unified-interface/cli/runtime/route-executor.ts +859 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/de/index.ts +12 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/en/index.ts +11 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/i18n/pl/index.ts +12 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/definition.ts +262 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/de/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/en/index.ts +52 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/i18n/pl/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/repository.ts +421 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/install/route.ts +25 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/definition.ts +181 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/de/index.ts +61 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/en/index.ts +59 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/i18n/pl/index.ts +61 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/repository.ts +195 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/status/route.ts +22 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/definition.ts +188 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/de/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/en/index.ts +52 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/i18n/pl/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/repository.ts +209 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/uninstall/route.ts +24 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/definition.ts +200 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/de/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/en/index.ts +52 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/i18n/pl/index.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/repository.ts +113 -0
- package/src/app/api/[locale]/system/unified-interface/cli/setup/update/route.ts +22 -0
- package/src/app/api/[locale]/system/unified-interface/cli/vibe-runtime.ts +304 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/base-renderer.ts +270 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/registry.ts +309 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/core/types.ts +126 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/de/index.ts +67 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/en/index.ts +65 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/i18n/pl/index.ts +67 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/accordion.ts +74 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/avatar.ts +39 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/badge.ts +54 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-output.ts +298 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-files.ts +89 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-list.ts +298 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/code-quality-summary.ts +96 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/container.ts +186 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-card.ts +65 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-cards.ts +570 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-list.ts +80 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/data-table.ts +385 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/editable-text.ts +99 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/empty-state.ts +55 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/errors.ts +67 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/grouped-list.ts +729 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-card.ts +87 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link-list.ts +112 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/link.ts +59 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/loading.ts +50 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/markdown.ts +131 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/metric.ts +291 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/section.ts +120 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/stats-grid.ts +149 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/tabs.ts +61 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/text.ts +78 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/implementations/title.ts +42 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/response-renderer.ts +418 -0
- package/src/app/api/[locale]/system/unified-interface/cli/widgets/renderers/schema-handler.ts +534 -0
- package/src/app/api/[locale]/system/unified-interface/i18n/de/index.ts +42 -0
- package/src/app/api/[locale]/system/unified-interface/i18n/en/index.ts +40 -0
- package/src/app/api/[locale]/system/unified-interface/i18n/pl/index.ts +43 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/README.md +114 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/converter.ts +146 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/i18n/de/index.ts +182 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/i18n/en/index.ts +179 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/i18n/pl/index.ts +181 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/registry.ts +343 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/serve/definition.ts +147 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/serve/repository.ts +38 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/serve/route.ts +14 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/server/protocol-handler.ts +309 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/server/server.ts +154 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/server/stdio-transport.ts +193 -0
- package/src/app/api/[locale]/system/unified-interface/mcp/types.ts +246 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create-form.ts +1510 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/create.ts +581 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/endpoint-to-metadata.ts +52 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definition/loader.ts +152 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/definitions/registry.ts +265 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/permissions/registry.ts +680 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/executor.ts +220 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler.ts +325 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/multi.ts +184 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/request-validator.ts +201 -0
- package/src/app/api/[locale]/system/unified-interface/shared/endpoints/route/single.ts +58 -0
- package/src/app/api/[locale]/system/unified-interface/shared/env/define-env-client.ts +49 -0
- package/src/app/api/[locale]/system/unified-interface/shared/env/define-env.ts +47 -0
- package/src/app/api/[locale]/system/unified-interface/shared/env/validation-logger.ts +58 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field/enum.ts +110 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field/specialized.ts +339 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field/utils.test.ts +408 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field/utils.ts +1349 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field-config/endpoint-field-types.ts +107 -0
- package/src/app/api/[locale]/system/unified-interface/shared/field-config/field-config-types.ts +268 -0
- package/src/app/api/[locale]/system/unified-interface/shared/logger/colors.ts +114 -0
- package/src/app/api/[locale]/system/unified-interface/shared/logger/endpoint.ts +169 -0
- package/src/app/api/[locale]/system/unified-interface/shared/logger/file-logger.ts +88 -0
- package/src/app/api/[locale]/system/unified-interface/shared/logger/formatters.ts +177 -0
- package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts +82 -0
- package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/factory.ts +33 -0
- package/src/app/api/[locale]/system/unified-interface/shared/server-only/server-only.ts +4 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/actions.ts +289 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/endpoint.ts +1167 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/enums.ts +382 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/platform.ts +34 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/types.ts +80 -0
- package/src/app/api/[locale]/system/unified-interface/shared/types/ui-config.ts +76 -0
- package/src/app/api/[locale]/system/unified-interface/shared/utils/error-types.ts +27 -0
- package/src/app/api/[locale]/system/unified-interface/shared/utils/path.ts +63 -0
- package/src/app/api/[locale]/system/unified-interface/shared/utils/scanner.ts +241 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/actions.ts +256 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/configs.ts +1158 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/helpers.ts +80 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/accordion.ts +82 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/avatar.ts +75 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/badge.ts +89 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-output.ts +302 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/code-quality-list.ts +202 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/container.ts +129 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-card.ts +81 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-cards.ts +258 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-list.ts +123 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/data-table.ts +387 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/editable-text.ts +89 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/empty-state.ts +78 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/errors.ts +93 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/grouped-list.ts +448 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/index.ts +38 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-card.ts +130 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link-list.ts +127 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/link.ts +68 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/loading.ts +81 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/markdown.ts +176 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/metric-card.ts +241 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/section.ts +90 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/stats-grid.ts +71 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/tabs.ts +80 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/text.ts +105 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/logic/title.ts +72 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/types.ts +240 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/field-helpers.ts +137 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/formatting.ts +437 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/url.ts +40 -0
- package/src/app/api/[locale]/system/unified-interface/shared/widgets/utils/widget-helpers.ts +465 -0
- package/src/app/api/[locale]/user/auth/enum.ts +16 -0
- package/src/app/api/[locale]/user/auth/i18n/de/index.ts +227 -0
- package/src/app/api/[locale]/user/auth/i18n/en/index.ts +205 -0
- package/src/app/api/[locale]/user/auth/i18n/pl/index.ts +219 -0
- package/src/app/api/[locale]/user/auth/types.ts +110 -0
- package/src/app/api/[locale]/user/enum.ts +64 -0
- package/src/app/api/[locale]/user/private/i18n/de/index.ts +3 -0
- package/src/app/api/[locale]/user/private/i18n/en/index.ts +1 -0
- package/src/app/api/[locale]/user/private/i18n/pl/index.ts +3 -0
- package/src/app/api/[locale]/user/types.ts +118 -0
- package/src/app/api/[locale]/user/user-roles/enum.ts +112 -0
- package/src/app/api/[locale]/user/user-roles/i18n/de/index.ts +85 -0
- package/src/app/api/[locale]/user/user-roles/i18n/en/index.ts +83 -0
- package/src/app/api/[locale]/user/user-roles/i18n/pl/index.ts +86 -0
- package/src/app/api/[locale]/user/user-roles/types.ts +34 -0
- package/src/app/api/i18n/de/index.ts +6 -0
- package/src/app/api/i18n/en/index.ts +5 -0
- package/src/app/api/i18n/pl/index.ts +5 -0
- package/src/app/i18n/de/index.ts +6 -0
- package/src/app/i18n/en/index.ts +5 -0
- package/src/app/i18n/pl/index.ts +5 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import type { ResponseType } from "next-vibe/shared/types/response.schema";
|
|
2
|
+
|
|
3
|
+
import type { EndpointLogger } from "../../shared/logger/endpoint";
|
|
4
|
+
import {
|
|
5
|
+
type AuthContext,
|
|
6
|
+
BaseAuthHandler,
|
|
7
|
+
type SessionData,
|
|
8
|
+
} from "../../shared/server-only/auth/base-auth-handler";
|
|
9
|
+
import {
|
|
10
|
+
deleteSessionFile,
|
|
11
|
+
readSessionFile,
|
|
12
|
+
writeSessionFile,
|
|
13
|
+
} from "./session-file";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* CLI/MCP Authentication Handler
|
|
17
|
+
* Handles platform-specific storage for CLI/MCP (session files)
|
|
18
|
+
* All authentication business logic is in AuthRepository
|
|
19
|
+
*/
|
|
20
|
+
export class CliAuthHandler extends BaseAuthHandler {
|
|
21
|
+
/**
|
|
22
|
+
* Get authentication token from CLI/MCP storage
|
|
23
|
+
* Checks: Authorization header → .vibe.session file
|
|
24
|
+
*/
|
|
25
|
+
async getStoredAuthToken(
|
|
26
|
+
context: AuthContext,
|
|
27
|
+
logger: EndpointLogger,
|
|
28
|
+
): Promise<string | undefined> {
|
|
29
|
+
// Check Authorization header first
|
|
30
|
+
if (context.request) {
|
|
31
|
+
const authHeader = context.request.headers.get("authorization");
|
|
32
|
+
if (authHeader?.startsWith("Bearer ")) {
|
|
33
|
+
const token = authHeader.slice(7); // Remove "Bearer " prefix
|
|
34
|
+
logger.debug("Found auth token in Authorization header");
|
|
35
|
+
return token;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Fall back to session file
|
|
40
|
+
const sessionResult = await readSessionFile(logger);
|
|
41
|
+
if (sessionResult.success) {
|
|
42
|
+
logger.debug("Found auth token in session file");
|
|
43
|
+
return sessionResult.data.token;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Store authentication token in .vibe.session file
|
|
51
|
+
* @param rememberMe - If true, session lasts 30 days; if false, 7 days
|
|
52
|
+
*/
|
|
53
|
+
async storeAuthToken(
|
|
54
|
+
token: string,
|
|
55
|
+
userId: string,
|
|
56
|
+
leadId: string,
|
|
57
|
+
logger: EndpointLogger,
|
|
58
|
+
rememberMe = true, // Default to true (30 days)
|
|
59
|
+
): Promise<ResponseType<void>> {
|
|
60
|
+
// Set session duration based on rememberMe flag
|
|
61
|
+
// Remember me: 30 days, Regular session: 7 days
|
|
62
|
+
const sessionDurationDays = rememberMe ? 30 : 7;
|
|
63
|
+
const sessionDurationSeconds = sessionDurationDays * 24 * 60 * 60;
|
|
64
|
+
|
|
65
|
+
const expiresAt = new Date(Date.now() + sessionDurationSeconds * 1000);
|
|
66
|
+
|
|
67
|
+
const sessionData: SessionData = {
|
|
68
|
+
token,
|
|
69
|
+
userId,
|
|
70
|
+
leadId,
|
|
71
|
+
expiresAt: expiresAt.toISOString(),
|
|
72
|
+
createdAt: new Date().toISOString(),
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
logger.debug("Storing CLI session", {
|
|
76
|
+
userId,
|
|
77
|
+
leadId,
|
|
78
|
+
rememberMe,
|
|
79
|
+
sessionType: rememberMe ? "persistent (30 days)" : "regular (7 days)",
|
|
80
|
+
});
|
|
81
|
+
return await writeSessionFile(sessionData, logger);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Clear authentication token by deleting .vibe.session file
|
|
86
|
+
*/
|
|
87
|
+
async clearAuthToken(logger: EndpointLogger): Promise<ResponseType<void>> {
|
|
88
|
+
return await deleteSessionFile(logger);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Singleton instance
|
|
94
|
+
*/
|
|
95
|
+
export const cliAuthHandler = new CliAuthHandler();
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI User Factory
|
|
3
|
+
* Consolidated CLI user creation logic
|
|
4
|
+
* Eliminates 5+ duplicate implementations across the codebase
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { ResponseType } from "next-vibe/shared/types/response.schema";
|
|
8
|
+
import { ErrorResponseTypes } from "next-vibe/shared/types/response.schema";
|
|
9
|
+
|
|
10
|
+
import type { InferJwtPayloadTypeFromRoles } from "@/app/api/[locale]/system/unified-interface/shared/endpoints/route/handler";
|
|
11
|
+
import type { EndpointLogger } from "@/app/api/[locale]/system/unified-interface/shared/logger/endpoint";
|
|
12
|
+
import {
|
|
13
|
+
UserPermissionRole,
|
|
14
|
+
type UserRoleValue,
|
|
15
|
+
} from "@/app/api/[locale]/user/user-roles/enum";
|
|
16
|
+
import type { CountryLanguage } from "@/i18n/core/config";
|
|
17
|
+
|
|
18
|
+
import { cliEnv } from "../env";
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Default CLI user configuration
|
|
22
|
+
*/
|
|
23
|
+
const DEFAULT_CLI_USER_ID = "00000000-0000-0000-0000-000000000001";
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Get CLI user email from environment
|
|
27
|
+
* Returns null if VIBE_CLI_USER_EMAIL is not set
|
|
28
|
+
*/
|
|
29
|
+
export function getCliUserEmail(): string | null {
|
|
30
|
+
return cliEnv.VIBE_CLI_USER_EMAIL ?? null;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Create a default CLI user payload for auth bypass scenarios
|
|
35
|
+
* Used for commands that don't require authenticated user (e.g., seed, dev)
|
|
36
|
+
*/
|
|
37
|
+
export function createDefaultCliUser(): InferJwtPayloadTypeFromRoles<
|
|
38
|
+
readonly UserRoleValue[]
|
|
39
|
+
> {
|
|
40
|
+
return {
|
|
41
|
+
isPublic: false,
|
|
42
|
+
id: DEFAULT_CLI_USER_ID,
|
|
43
|
+
leadId: DEFAULT_CLI_USER_ID,
|
|
44
|
+
} as InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]>;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Create a public CLI user payload
|
|
49
|
+
* Used when VIBE_CLI_USER_EMAIL is not configured
|
|
50
|
+
*/
|
|
51
|
+
export function createPublicCliUser(): InferJwtPayloadTypeFromRoles<
|
|
52
|
+
readonly UserRoleValue[]
|
|
53
|
+
> {
|
|
54
|
+
return {
|
|
55
|
+
isPublic: true,
|
|
56
|
+
leadId: DEFAULT_CLI_USER_ID,
|
|
57
|
+
} as InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]>;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a mock user for testing/development
|
|
61
|
+
* Used in tasks, generators, and other system operations
|
|
62
|
+
*/
|
|
63
|
+
export function createMockUser(): {
|
|
64
|
+
id: string;
|
|
65
|
+
leadId: string;
|
|
66
|
+
isPublic: false;
|
|
67
|
+
roles: (typeof UserPermissionRole.ADMIN)[];
|
|
68
|
+
} {
|
|
69
|
+
return {
|
|
70
|
+
id: DEFAULT_CLI_USER_ID,
|
|
71
|
+
leadId: DEFAULT_CLI_USER_ID,
|
|
72
|
+
isPublic: false,
|
|
73
|
+
roles: [UserPermissionRole.ADMIN],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Get CLI user with proper authentication flow:
|
|
79
|
+
* 1. Check for session user (from .vibe.session file)
|
|
80
|
+
* 2. Check VIBE_CLI_USER_EMAIL from .env and authenticate from DB
|
|
81
|
+
* 3. If VIBE_CLI_USER_EMAIL is empty → return public user
|
|
82
|
+
* 4. If email is set but not found in DB → return error
|
|
83
|
+
*
|
|
84
|
+
* @param logger - Logger instance for debugging
|
|
85
|
+
* @param locale - Locale for database queries
|
|
86
|
+
* @returns ResponseType with CLI user payload or error
|
|
87
|
+
*/
|
|
88
|
+
export async function getCliUser(
|
|
89
|
+
logger: EndpointLogger,
|
|
90
|
+
locale: CountryLanguage,
|
|
91
|
+
): Promise<
|
|
92
|
+
ResponseType<InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]>>
|
|
93
|
+
> {
|
|
94
|
+
// Enhanced debugging: Log authentication flow entry point
|
|
95
|
+
const authFlowData = {
|
|
96
|
+
locale,
|
|
97
|
+
cwd: process.cwd(),
|
|
98
|
+
nodeEnv: process.env.NODE_ENV,
|
|
99
|
+
vibeProjectRoot: process.env.VIBE_PROJECT_ROOT,
|
|
100
|
+
};
|
|
101
|
+
logger.debug(
|
|
102
|
+
"[CLI AUTH] Starting CLI user authentication flow",
|
|
103
|
+
authFlowData,
|
|
104
|
+
);
|
|
105
|
+
|
|
106
|
+
// Step 1: Session verification removed - AuthRepository deleted
|
|
107
|
+
|
|
108
|
+
// Step 2: Check VIBE_CLI_USER_EMAIL environment variable
|
|
109
|
+
logger.debug(
|
|
110
|
+
"[CLI AUTH] Step 2: Checking VIBE_CLI_USER_EMAIL environment variable",
|
|
111
|
+
);
|
|
112
|
+
const cliUserEmail = getCliUserEmail();
|
|
113
|
+
|
|
114
|
+
logger.debug("[CLI AUTH] VIBE_CLI_USER_EMAIL result", {
|
|
115
|
+
hasEmail: !!cliUserEmail,
|
|
116
|
+
email: cliUserEmail ? `${cliUserEmail.slice(0, 3)}***` : null,
|
|
117
|
+
envVarExists: "VIBE_CLI_USER_EMAIL" in process.env,
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
// Step 3: If VIBE_CLI_USER_EMAIL is not set, return public user
|
|
121
|
+
if (!cliUserEmail) {
|
|
122
|
+
logger.debug(
|
|
123
|
+
"[CLI AUTH] Step 3: CLI user email not configured, creating public user",
|
|
124
|
+
{
|
|
125
|
+
envVar: "VIBE_CLI_USER_EMAIL",
|
|
126
|
+
},
|
|
127
|
+
);
|
|
128
|
+
|
|
129
|
+
// Minimal checker package: use default ID without lead creation
|
|
130
|
+
logger.debug("Using default CLI user (minimal checker package)");
|
|
131
|
+
return {
|
|
132
|
+
success: true,
|
|
133
|
+
data: {
|
|
134
|
+
isPublic: true,
|
|
135
|
+
leadId: DEFAULT_CLI_USER_ID,
|
|
136
|
+
} as InferJwtPayloadTypeFromRoles<readonly UserRoleValue[]>,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Step 4: Email authentication removed - AuthRepository deleted
|
|
141
|
+
return {
|
|
142
|
+
success: false,
|
|
143
|
+
message: "app.api.system.unifiedInterface.cli.auth.errors.authNotAvailable",
|
|
144
|
+
errorType: ErrorResponseTypes.UNAUTHORIZED,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
import { promises as fs } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
|
|
4
|
+
import type { ResponseType } from "next-vibe/shared/types/response.schema";
|
|
5
|
+
import {
|
|
6
|
+
ErrorResponseTypes,
|
|
7
|
+
fail,
|
|
8
|
+
success,
|
|
9
|
+
} from "next-vibe/shared/types/response.schema";
|
|
10
|
+
import { parseError } from "next-vibe/shared/utils";
|
|
11
|
+
|
|
12
|
+
import type { EndpointLogger } from "../../shared/logger/endpoint";
|
|
13
|
+
import type { SessionData } from "../../shared/server-only/auth/base-auth-handler";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Session file path
|
|
17
|
+
* Stored in project root directory
|
|
18
|
+
*/
|
|
19
|
+
const SESSION_FILE_NAME = ".vibe.session";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Get project root directory
|
|
23
|
+
* This is more reliable than process.cwd() which depends on where the process was started
|
|
24
|
+
*/
|
|
25
|
+
function getProjectRoot(): string {
|
|
26
|
+
// Try environment variable first (can be set by CLI or MCP config)
|
|
27
|
+
if (process.env.VIBE_PROJECT_ROOT) {
|
|
28
|
+
return process.env.VIBE_PROJECT_ROOT;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Fall back to process.cwd() - this will work when MCP server runs from project root
|
|
32
|
+
return process.cwd();
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Error message patterns for file not found errors
|
|
37
|
+
*/
|
|
38
|
+
const FILE_NOT_FOUND_ERROR_PATTERNS = {
|
|
39
|
+
ENOENT: "ENOENT",
|
|
40
|
+
NO_SUCH_FILE: "no such file",
|
|
41
|
+
} as const;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Get session file path
|
|
45
|
+
* Uses project root from environment variable or falls back to cwd
|
|
46
|
+
*/
|
|
47
|
+
function getSessionFilePath(): string {
|
|
48
|
+
const projectRoot = getProjectRoot();
|
|
49
|
+
const sessionPath = join(projectRoot, SESSION_FILE_NAME);
|
|
50
|
+
|
|
51
|
+
return sessionPath;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Read session data from .vibe.session file
|
|
56
|
+
*/
|
|
57
|
+
export async function readSessionFile(
|
|
58
|
+
logger: EndpointLogger,
|
|
59
|
+
): Promise<ResponseType<SessionData>> {
|
|
60
|
+
try {
|
|
61
|
+
const sessionPath = getSessionFilePath();
|
|
62
|
+
const projectRoot = getProjectRoot();
|
|
63
|
+
const cwd = process.cwd();
|
|
64
|
+
|
|
65
|
+
// Enhanced debugging: Log current working directory and full path
|
|
66
|
+
logger.debug("Reading session file", {
|
|
67
|
+
path: sessionPath,
|
|
68
|
+
projectRoot,
|
|
69
|
+
cwd,
|
|
70
|
+
sessionFileName: SESSION_FILE_NAME,
|
|
71
|
+
vibeProjectRoot: process.env.VIBE_PROJECT_ROOT,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Check if file exists before attempting to read
|
|
75
|
+
try {
|
|
76
|
+
await fs.access(sessionPath);
|
|
77
|
+
logger.debug("Session file exists at path", { path: sessionPath });
|
|
78
|
+
} catch (accessError) {
|
|
79
|
+
const errorMsg = parseError(accessError).message;
|
|
80
|
+
logger.debug("Session file does not exist at path", {
|
|
81
|
+
path: sessionPath,
|
|
82
|
+
accessError: errorMsg,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const fileContent = await fs.readFile(sessionPath, "utf-8");
|
|
87
|
+
const sessionData = JSON.parse(fileContent) as SessionData;
|
|
88
|
+
|
|
89
|
+
// Validate session data structure
|
|
90
|
+
if (
|
|
91
|
+
!sessionData.token ||
|
|
92
|
+
!sessionData.userId ||
|
|
93
|
+
!sessionData.leadId ||
|
|
94
|
+
!sessionData.expiresAt
|
|
95
|
+
) {
|
|
96
|
+
return fail({
|
|
97
|
+
message:
|
|
98
|
+
"app.api.system.unifiedInterface.cli.vibe.errors.invalidFormat",
|
|
99
|
+
errorType: ErrorResponseTypes.VALIDATION_ERROR,
|
|
100
|
+
messageParams: { path: sessionPath },
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Check if session is expired
|
|
105
|
+
const expiresAt = new Date(sessionData.expiresAt);
|
|
106
|
+
if (expiresAt < new Date()) {
|
|
107
|
+
logger.debug("Session expired", { expiresAt: sessionData.expiresAt });
|
|
108
|
+
return fail({
|
|
109
|
+
message:
|
|
110
|
+
"app.api.system.unifiedInterface.cli.vibe.errors.sessionExpired",
|
|
111
|
+
errorType: ErrorResponseTypes.UNAUTHORIZED,
|
|
112
|
+
messageParams: { expiresAt: sessionData.expiresAt },
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
logger.debug("Session file read successfully", {
|
|
117
|
+
userId: sessionData.userId,
|
|
118
|
+
expiresAt: sessionData.expiresAt,
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
return success(sessionData);
|
|
122
|
+
} catch (error) {
|
|
123
|
+
const parsedError = parseError(error);
|
|
124
|
+
|
|
125
|
+
// File not found is not an error - user is not authenticated
|
|
126
|
+
const isFileNotFoundError =
|
|
127
|
+
parsedError.message.includes(FILE_NOT_FOUND_ERROR_PATTERNS.ENOENT) ||
|
|
128
|
+
parsedError.message.includes(FILE_NOT_FOUND_ERROR_PATTERNS.NO_SUCH_FILE);
|
|
129
|
+
if (isFileNotFoundError) {
|
|
130
|
+
// Enhanced debugging: Log path details when file not found
|
|
131
|
+
const debugData = {
|
|
132
|
+
searchedPath: getSessionFilePath(),
|
|
133
|
+
projectRoot: getProjectRoot(),
|
|
134
|
+
cwd: process.cwd(),
|
|
135
|
+
vibeProjectRoot: process.env.VIBE_PROJECT_ROOT,
|
|
136
|
+
errorMessage: parsedError.message,
|
|
137
|
+
};
|
|
138
|
+
logger.debug(
|
|
139
|
+
"Session file not found - user not authenticated",
|
|
140
|
+
debugData,
|
|
141
|
+
);
|
|
142
|
+
return fail({
|
|
143
|
+
message: "app.api.system.unifiedInterface.cli.vibe.errors.notFound",
|
|
144
|
+
errorType: ErrorResponseTypes.NOT_FOUND,
|
|
145
|
+
});
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
logger.error("Error reading session file", {
|
|
149
|
+
...parsedError,
|
|
150
|
+
path: getSessionFilePath(),
|
|
151
|
+
projectRoot: getProjectRoot(),
|
|
152
|
+
cwd: process.cwd(),
|
|
153
|
+
vibeProjectRoot: process.env.VIBE_PROJECT_ROOT,
|
|
154
|
+
});
|
|
155
|
+
return fail({
|
|
156
|
+
message: "app.api.system.unifiedInterface.cli.vibe.errors.readFailed",
|
|
157
|
+
errorType: ErrorResponseTypes.INTERNAL_ERROR,
|
|
158
|
+
messageParams: { error: parsedError.message },
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/**
|
|
164
|
+
* Write session data to .vibe.session file
|
|
165
|
+
*/
|
|
166
|
+
export async function writeSessionFile(
|
|
167
|
+
sessionData: SessionData,
|
|
168
|
+
logger: EndpointLogger,
|
|
169
|
+
): Promise<ResponseType<void>> {
|
|
170
|
+
try {
|
|
171
|
+
const sessionPath = getSessionFilePath();
|
|
172
|
+
logger.debug("Writing session file", {
|
|
173
|
+
path: sessionPath,
|
|
174
|
+
userId: sessionData.userId,
|
|
175
|
+
});
|
|
176
|
+
|
|
177
|
+
// Validate session data
|
|
178
|
+
if (
|
|
179
|
+
!sessionData.token ||
|
|
180
|
+
!sessionData.userId ||
|
|
181
|
+
!sessionData.leadId ||
|
|
182
|
+
!sessionData.expiresAt
|
|
183
|
+
) {
|
|
184
|
+
return fail({
|
|
185
|
+
message: "app.api.system.unifiedInterface.cli.vibe.errors.invalidData",
|
|
186
|
+
errorType: ErrorResponseTypes.VALIDATION_ERROR,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
const fileContent = JSON.stringify(sessionData, null, 2);
|
|
191
|
+
await fs.writeFile(sessionPath, fileContent, "utf-8");
|
|
192
|
+
|
|
193
|
+
logger.debug("Session file written successfully", {
|
|
194
|
+
path: sessionPath,
|
|
195
|
+
userId: sessionData.userId,
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
return success();
|
|
199
|
+
} catch (error) {
|
|
200
|
+
const parsedError = parseError(error);
|
|
201
|
+
logger.error("Error writing session file", parsedError);
|
|
202
|
+
return fail({
|
|
203
|
+
message: "app.api.system.unifiedInterface.cli.vibe.errors.writeFailed",
|
|
204
|
+
errorType: ErrorResponseTypes.INTERNAL_ERROR,
|
|
205
|
+
messageParams: { error: parsedError.message },
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Delete session file
|
|
212
|
+
*/
|
|
213
|
+
export async function deleteSessionFile(
|
|
214
|
+
logger: EndpointLogger,
|
|
215
|
+
): Promise<ResponseType<void>> {
|
|
216
|
+
try {
|
|
217
|
+
const sessionPath = getSessionFilePath();
|
|
218
|
+
logger.debug("Deleting session file", { path: sessionPath });
|
|
219
|
+
|
|
220
|
+
await fs.unlink(sessionPath);
|
|
221
|
+
|
|
222
|
+
logger.debug("Session file deleted successfully", { path: sessionPath });
|
|
223
|
+
return success();
|
|
224
|
+
} catch (error) {
|
|
225
|
+
const parsedError = parseError(error);
|
|
226
|
+
|
|
227
|
+
// File not found is not an error - already logged out
|
|
228
|
+
const isFileNotFoundError =
|
|
229
|
+
parsedError.message.includes(FILE_NOT_FOUND_ERROR_PATTERNS.ENOENT) ||
|
|
230
|
+
parsedError.message.includes(FILE_NOT_FOUND_ERROR_PATTERNS.NO_SUCH_FILE);
|
|
231
|
+
if (isFileNotFoundError) {
|
|
232
|
+
logger.debug("Session file not found - already logged out");
|
|
233
|
+
return success();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
logger.error("Error deleting session file", parsedError);
|
|
237
|
+
return fail({
|
|
238
|
+
message: "app.api.system.unifiedInterface.cli.vibe.errors.deleteFailed",
|
|
239
|
+
errorType: ErrorResponseTypes.INTERNAL_ERROR,
|
|
240
|
+
messageParams: { error: parsedError.message },
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Check if session file exists
|
|
247
|
+
*/
|
|
248
|
+
export async function sessionFileExists(
|
|
249
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
250
|
+
logger: EndpointLogger,
|
|
251
|
+
): Promise<boolean> {
|
|
252
|
+
try {
|
|
253
|
+
const sessionPath = getSessionFilePath();
|
|
254
|
+
await fs.access(sessionPath);
|
|
255
|
+
return true;
|
|
256
|
+
} catch {
|
|
257
|
+
return false;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Get session file path for display purposes
|
|
263
|
+
*/
|
|
264
|
+
export function getSessionFilePathForDisplay(): string {
|
|
265
|
+
return getSessionFilePath();
|
|
266
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Environment Configuration
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import "server-only";
|
|
6
|
+
|
|
7
|
+
import { z } from "zod";
|
|
8
|
+
|
|
9
|
+
import { defineEnv } from "@/app/api/[locale]/system/unified-interface/shared/env/define-env";
|
|
10
|
+
import type { CountryLanguage } from "@/i18n/core/config";
|
|
11
|
+
import { defaultLocale } from "@/i18n/core/config";
|
|
12
|
+
|
|
13
|
+
export const { env: cliEnv } = defineEnv({
|
|
14
|
+
VIBE_CLI_USER_EMAIL: {
|
|
15
|
+
schema: z.string().email().optional(),
|
|
16
|
+
example: "admin@example.com",
|
|
17
|
+
comment: "CLI user email",
|
|
18
|
+
},
|
|
19
|
+
VIBE_CLI_LOCALE: {
|
|
20
|
+
schema: (z.string() as z.Schema<CountryLanguage>)
|
|
21
|
+
.optional()
|
|
22
|
+
.default(defaultLocale),
|
|
23
|
+
example: "en-GLOBAL",
|
|
24
|
+
comment: "CLI locale setting",
|
|
25
|
+
},
|
|
26
|
+
});
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { translations as setupTranslations } from "../../setup/i18n/de";
|
|
2
|
+
import type { translations as enTranslations } from "../en";
|
|
3
|
+
|
|
4
|
+
export const translations: typeof enTranslations = {
|
|
5
|
+
setup: setupTranslations,
|
|
6
|
+
auth: {
|
|
7
|
+
errors: {
|
|
8
|
+
userNotFound:
|
|
9
|
+
"CLI-Benutzer mit E-Mail {{email}} wurde nicht in der Datenbank gefunden. Bitte führen Sie zuerst 'vibe seed' aus.",
|
|
10
|
+
databaseError:
|
|
11
|
+
"Datenbankfehler beim Abrufen des CLI-Benutzers: {{error}}",
|
|
12
|
+
authNotAvailable: "Authentifizierung ist nicht verfügbar",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
vibe: {
|
|
16
|
+
startingUp: "Vibe CLI wird gestartet...",
|
|
17
|
+
executeCommand: "Befehl wird ausgeführt",
|
|
18
|
+
executing: "Wird ausgeführt",
|
|
19
|
+
listCommands: "Alle verfügbaren Befehle auflisten",
|
|
20
|
+
output: "Ausgabeformat",
|
|
21
|
+
utils: {
|
|
22
|
+
debug: {
|
|
23
|
+
executionSummary:
|
|
24
|
+
"Ausführung: {{executionSeconds}}s | Overhead: {{overheadSeconds}}s | Gesamt: {{totalSeconds}}s",
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
help: {
|
|
28
|
+
title: "Vibe CLI Hilfe",
|
|
29
|
+
description: "Vibe CLI - API-Ausführungstool der nächsten Generation",
|
|
30
|
+
usage: "Verwendung: vibe <befehl> [optionen]",
|
|
31
|
+
commands: "Verfügbare Befehle",
|
|
32
|
+
options: "Optionen",
|
|
33
|
+
examples: "Beispiele",
|
|
34
|
+
userType: "Benutzertyp angeben (admin, public, etc.)",
|
|
35
|
+
locale: "Sprache angeben (en-GLOBAL, de-DE, pl-PL)",
|
|
36
|
+
verbose: "Ausführliche Ausgabe aktivieren",
|
|
37
|
+
dryRun: "Testlauf ohne Ausführung durchführen",
|
|
38
|
+
interactive: "Interaktiven Modus aktivieren",
|
|
39
|
+
},
|
|
40
|
+
errors: {
|
|
41
|
+
routeNotFound: "Route nicht gefunden",
|
|
42
|
+
executionFailed: "Ausführung fehlgeschlagen",
|
|
43
|
+
unknownError: "Unbekannter Fehler aufgetreten",
|
|
44
|
+
publicPayloadNotSupported: "Öffentliche Nutzlast nicht unterstützt",
|
|
45
|
+
invalidTokenPayload: "Ungültige Token-Nutzlast",
|
|
46
|
+
invalidToken: "Ungültiges Token",
|
|
47
|
+
signingFailed: "Token-Signierung fehlgeschlagen",
|
|
48
|
+
userNotFound: "Benutzer nicht gefunden",
|
|
49
|
+
authenticationFailed: "Authentifizierung fehlgeschlagen",
|
|
50
|
+
invalidFormat: "Ungültiges Sitzungsformat",
|
|
51
|
+
sessionExpired: "Sitzung abgelaufen",
|
|
52
|
+
notFound: "Sitzung nicht gefunden",
|
|
53
|
+
readFailed: "Sitzung konnte nicht gelesen werden",
|
|
54
|
+
invalidData: "Ungültige Sitzungsdaten",
|
|
55
|
+
writeFailed: "Sitzung konnte nicht geschrieben werden",
|
|
56
|
+
deleteFailed: "Sitzung konnte nicht gelöscht werden",
|
|
57
|
+
storeFailed: "Sitzung konnte nicht gespeichert werden",
|
|
58
|
+
clearFailed: "Sitzung konnte nicht gelöscht werden",
|
|
59
|
+
setLeadIdCookieFailed: "Lead-ID-Cookie konnte nicht gesetzt werden",
|
|
60
|
+
},
|
|
61
|
+
endpoints: {
|
|
62
|
+
endpointHandler: {
|
|
63
|
+
error: {
|
|
64
|
+
form_validation_failed: "Formularvalidierung fehlgeschlagen",
|
|
65
|
+
unauthorized: "Nicht autorisierter Zugriff",
|
|
66
|
+
errors: {
|
|
67
|
+
unknown_validation_error: "Unbekannter Validierungsfehler",
|
|
68
|
+
invalid_request_data: "Ungültige Anfragedaten",
|
|
69
|
+
invalid_url_parameters: "Ungültige URL-Parameter",
|
|
70
|
+
},
|
|
71
|
+
general: {
|
|
72
|
+
internal_server_error: "Interner Serverfehler",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
renderers: {
|
|
77
|
+
cliUi: {
|
|
78
|
+
helpHandler: {
|
|
79
|
+
noDescription: "Keine Beschreibung verfügbar",
|
|
80
|
+
flagDataDesc: "Anfragedaten als JSON bereitstellen",
|
|
81
|
+
flagUserTypeDesc: "Benutzertyp angeben (admin, customer, public)",
|
|
82
|
+
flagLocaleDesc: "Locale angeben (en-GLOBAL, de-DE, pl-PL)",
|
|
83
|
+
flagOutputDesc: "Ausgabeformat (pretty, json)",
|
|
84
|
+
flagVerboseDesc: "Ausführliche Ausgabe aktivieren",
|
|
85
|
+
flagDryRunDesc: "Testlauf ohne Ausführung durchführen",
|
|
86
|
+
usageLabel: "Verwendung",
|
|
87
|
+
availableCommandsLabel: "Verfügbare Befehle",
|
|
88
|
+
globalOptionsLabel: "Globale Optionen",
|
|
89
|
+
examplesLabel: "Beispiele",
|
|
90
|
+
},
|
|
91
|
+
widgets: {
|
|
92
|
+
common: {
|
|
93
|
+
noDataAvailable: "Keine Daten verfügbar",
|
|
94
|
+
noIssuesFound: "Keine Probleme gefunden",
|
|
95
|
+
invalidDataFormat: "Ungültiges Datenformat",
|
|
96
|
+
info: "Info",
|
|
97
|
+
items: "Elemente",
|
|
98
|
+
andMoreItems: "und {count} weitere Elemente",
|
|
99
|
+
affectedFiles: "Betroffene Dateien",
|
|
100
|
+
summary: "Zusammenfassung",
|
|
101
|
+
files: "Dateien",
|
|
102
|
+
issues: "Probleme",
|
|
103
|
+
other: "Andere",
|
|
104
|
+
error: "Fehler",
|
|
105
|
+
errors: "Fehler",
|
|
106
|
+
warning: "Warnung",
|
|
107
|
+
warnings: "Warnungen",
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
},
|
|
113
|
+
interactive: {
|
|
114
|
+
welcome: "Willkommen im Vibe Interaktiven Modus",
|
|
115
|
+
goodbye: "Auf Wiedersehen!",
|
|
116
|
+
navigation: {
|
|
117
|
+
rootName: "Wurzel",
|
|
118
|
+
directoryIcon: "📁",
|
|
119
|
+
upIcon: "⬆️",
|
|
120
|
+
goUp: "Nach oben",
|
|
121
|
+
routeIcon: "🔗",
|
|
122
|
+
routes: "Routen",
|
|
123
|
+
settingsIcon: "⚙️",
|
|
124
|
+
settings: "Einstellungen",
|
|
125
|
+
exitIcon: "🚪",
|
|
126
|
+
exit: "Beenden",
|
|
127
|
+
navigate: "Navigieren",
|
|
128
|
+
route: "Route",
|
|
129
|
+
method: "Methode",
|
|
130
|
+
description: "Beschreibung",
|
|
131
|
+
noDefinition: "Keine Definition gefunden",
|
|
132
|
+
executionFailed: "Ausführung fehlgeschlagen",
|
|
133
|
+
executeAnother: "Weitere ausführen",
|
|
134
|
+
selectLocale: "Sprache wählen",
|
|
135
|
+
englishGlobal: "Englisch (Global)",
|
|
136
|
+
requestData: "Anfragedaten",
|
|
137
|
+
urlParameters: "URL-Parameter",
|
|
138
|
+
preview: "Vorschau",
|
|
139
|
+
executeWithParams: "Mit Parametern ausführen",
|
|
140
|
+
navigationError: "Navigationsfehler",
|
|
141
|
+
chooseSettingToModify: "Einstellung zum Ändern wählen",
|
|
142
|
+
outputFormatCurrent: "Ausgabeformat (aktuell",
|
|
143
|
+
verboseModeCurrent: "Ausführlicher Modus (aktuell",
|
|
144
|
+
localeCurrent: "Sprache (aktuell",
|
|
145
|
+
backToMainMenu: "Zurück zum Hauptmenü",
|
|
146
|
+
chooseOutputFormat: "Ausgabeformat wählen",
|
|
147
|
+
prettyFormatted: "Hübsch formatiert",
|
|
148
|
+
jsonRaw: "JSON (Roh)",
|
|
149
|
+
enableVerboseOutput: "Ausführliche Ausgabe aktivieren",
|
|
150
|
+
chooseLocale: "Sprache wählen",
|
|
151
|
+
german: "Deutsch",
|
|
152
|
+
polish: "Polnisch",
|
|
153
|
+
settingUpdated: "Einstellung erfolgreich aktualisiert",
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|