@next-vibe/checker 1.0.11 → 1.0.12
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 +10 -19
- package/.dist/bin/vibe-runtime.js.map +3 -3
- package/check.config.ts +4 -4
- 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 +77 -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 +819 -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 +449 -0
- package/src/app/api/[locale]/system/check/test-project/check.config.ts +989 -0
- package/src/app/api/[locale]/system/check/test-project/package.json +20 -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 +38 -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,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File Logger for MCP Mode
|
|
3
|
+
* Since MCP uses stdio for JSON-RPC communication, we can't use console.log
|
|
4
|
+
* This logger writes to a file instead for debugging purposes
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { LoggerMetadata } from "./endpoint";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* File logger configuration
|
|
11
|
+
*/
|
|
12
|
+
const DEBUG_DIR = ".vibe-debug";
|
|
13
|
+
const DEBUG_FILE = "mcp-auth.log";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Get debug file path
|
|
17
|
+
* Creates debug directory if it doesn't exist
|
|
18
|
+
*/
|
|
19
|
+
function getDebugFilePath(): string {
|
|
20
|
+
const { existsSync, mkdirSync, join } = require("node:fs");
|
|
21
|
+
// Use VIBE_PROJECT_ROOT if available, otherwise use cwd
|
|
22
|
+
const projectRoot = process.env.VIBE_PROJECT_ROOT || process.cwd();
|
|
23
|
+
const debugDir = join(projectRoot, DEBUG_DIR);
|
|
24
|
+
|
|
25
|
+
// Create debug directory if it doesn't exist
|
|
26
|
+
if (!existsSync(debugDir)) {
|
|
27
|
+
try {
|
|
28
|
+
mkdirSync(debugDir, { recursive: true });
|
|
29
|
+
} catch {
|
|
30
|
+
// Ignore errors - logging is best effort
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return join(debugDir, DEBUG_FILE);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Write debug message to file
|
|
39
|
+
* This is used when MCP silent mode is enabled and console logging is disabled
|
|
40
|
+
*/
|
|
41
|
+
export function fileLog(
|
|
42
|
+
message: string,
|
|
43
|
+
data?: Record<string, LoggerMetadata>,
|
|
44
|
+
): void {
|
|
45
|
+
// Only log if DEBUG_FILE_LOGGING is enabled
|
|
46
|
+
if (process.env.DEBUG_FILE_LOGGING !== "true") {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const { appendFileSync } = require("node:fs");
|
|
50
|
+
|
|
51
|
+
try {
|
|
52
|
+
const timestamp = new Date().toISOString();
|
|
53
|
+
const logEntry = data
|
|
54
|
+
? `[${timestamp}] ${message}\n${JSON.stringify(data, null, 2)}\n\n`
|
|
55
|
+
: `[${timestamp}] ${message}\n\n`;
|
|
56
|
+
|
|
57
|
+
const debugPath = getDebugFilePath();
|
|
58
|
+
appendFileSync(debugPath, logEntry, "utf-8");
|
|
59
|
+
} catch {
|
|
60
|
+
// Ignore errors - logging is best effort
|
|
61
|
+
// We can't log the error because we're in silent mode
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Clear debug log file
|
|
67
|
+
* Useful at the start of a new session
|
|
68
|
+
*/
|
|
69
|
+
export function clearDebugLog(): void {
|
|
70
|
+
if (process.env.DEBUG_FILE_LOGGING !== "true") {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
try {
|
|
75
|
+
const debugPath = getDebugFilePath();
|
|
76
|
+
const fs = require("node:fs");
|
|
77
|
+
fs.writeFileSync(debugPath, "", "utf-8");
|
|
78
|
+
} catch {
|
|
79
|
+
// Ignore errors - logging is best effort
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Get debug log file path for user display
|
|
85
|
+
*/
|
|
86
|
+
export function getDebugLogPath(): string {
|
|
87
|
+
return getDebugFilePath();
|
|
88
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log Message Formatters
|
|
3
|
+
* Provides consistent, beautiful formatting for different types of log messages
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import { bold, dim, maybeColorize, semantic } from "./colors";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Format a startup message
|
|
10
|
+
*/
|
|
11
|
+
export function formatStartup(message: string, icon = "🚀"): string {
|
|
12
|
+
return `${icon} ${bold(message)}`;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Format a success message
|
|
17
|
+
*/
|
|
18
|
+
export function formatSuccess(message: string, icon = "✅"): string {
|
|
19
|
+
return `${icon} ${message}`;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Format an error message
|
|
24
|
+
*/
|
|
25
|
+
export function formatError(message: string, icon = "❌"): string {
|
|
26
|
+
return `${icon} ${maybeColorize(message, semantic.error)}`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Format a warning message
|
|
31
|
+
*/
|
|
32
|
+
export function formatWarning(message: string, icon = "⚠️"): string {
|
|
33
|
+
return `${icon} ${maybeColorize(message, semantic.warning)}`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Format an info message
|
|
38
|
+
*/
|
|
39
|
+
export function formatInfo(message: string, icon = "ℹ️"): string {
|
|
40
|
+
return `${icon} ${maybeColorize(message, semantic.info)}`;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Format a database message (cyan color for all DB operations)
|
|
45
|
+
*/
|
|
46
|
+
export function formatDatabase(message: string, icon = "🗄️"): string {
|
|
47
|
+
return `${icon} ${maybeColorize(message, semantic.database)}`;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Format a task message (magenta color for all task operations)
|
|
52
|
+
*/
|
|
53
|
+
export function formatTask(message: string, icon = "⚡"): string {
|
|
54
|
+
return `${icon} ${maybeColorize(message, semantic.task)}`;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Format a generator message
|
|
59
|
+
*/
|
|
60
|
+
export function formatGenerator(message: string, icon = "⚙️"): string {
|
|
61
|
+
return `${icon} ${maybeColorize(message, semantic.generator)}`;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Format a progress message
|
|
66
|
+
*/
|
|
67
|
+
export function formatProgress(message: string, icon = "⏳"): string {
|
|
68
|
+
return `${icon} ${maybeColorize(dim(message), semantic.muted)}`;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Format a skip message
|
|
73
|
+
*/
|
|
74
|
+
export function formatSkip(message: string, icon = "⏭️"): string {
|
|
75
|
+
return `${icon} ${maybeColorize(dim(message), semantic.muted)}`;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Format a config/settings message
|
|
80
|
+
*/
|
|
81
|
+
export function formatConfig(
|
|
82
|
+
key: string,
|
|
83
|
+
value: string | number | boolean,
|
|
84
|
+
): string {
|
|
85
|
+
const formattedKey = key ? `${key}` : "";
|
|
86
|
+
const formattedValue = maybeColorize(bold(String(value)), semantic.success);
|
|
87
|
+
return key ? `${formattedKey}: ${formattedValue}` : formattedValue;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Format a duration (grey color)
|
|
92
|
+
*/
|
|
93
|
+
export function formatDuration(ms: number): string {
|
|
94
|
+
if (ms < 1000) {
|
|
95
|
+
return maybeColorize(`${ms}ms`, semantic.muted);
|
|
96
|
+
}
|
|
97
|
+
const seconds = (ms / 1000).toFixed(2);
|
|
98
|
+
return maybeColorize(`${seconds}s`, semantic.muted);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Format a count
|
|
103
|
+
*/
|
|
104
|
+
export function formatCount(
|
|
105
|
+
count: number,
|
|
106
|
+
singular: string,
|
|
107
|
+
plural?: string,
|
|
108
|
+
): string {
|
|
109
|
+
const label = count === 1 ? singular : plural || `${singular}s`;
|
|
110
|
+
return `${maybeColorize(bold(String(count)), semantic.highlight)} ${maybeColorize(label, semantic.muted)}`;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Format a URL
|
|
115
|
+
*/
|
|
116
|
+
export function formatUrl(url: string): string {
|
|
117
|
+
return maybeColorize(url, semantic.accent);
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Format a file path
|
|
122
|
+
*/
|
|
123
|
+
export function formatPath(path: string): string {
|
|
124
|
+
return maybeColorize(path, semantic.muted);
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Format a separator line
|
|
129
|
+
*/
|
|
130
|
+
export function formatSeparator(char = "─", length = 50): string {
|
|
131
|
+
return maybeColorize(char.repeat(length), semantic.muted);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Format a section header
|
|
136
|
+
*/
|
|
137
|
+
export function formatSection(title: string): string {
|
|
138
|
+
return `\n${maybeColorize(bold(title), semantic.highlight)}\n${formatSeparator()}`;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Format a key-value pair
|
|
143
|
+
*/
|
|
144
|
+
export function formatKeyValue(
|
|
145
|
+
key: string,
|
|
146
|
+
value: string | number | boolean,
|
|
147
|
+
): string {
|
|
148
|
+
return `${maybeColorize(key, semantic.muted)}: ${maybeColorize(bold(String(value)), semantic.highlight)}`;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Format a list item
|
|
153
|
+
*/
|
|
154
|
+
export function formatListItem(item: string, icon = "•"): string {
|
|
155
|
+
return ` ${maybeColorize(icon, semantic.muted)} ${item}`;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Format a command suggestion
|
|
160
|
+
*/
|
|
161
|
+
export function formatCommand(command: string): string {
|
|
162
|
+
return maybeColorize(command, semantic.accent);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Format a hint/help text (grey color, no dim)
|
|
167
|
+
*/
|
|
168
|
+
export function formatHint(text: string): string {
|
|
169
|
+
return maybeColorize(text, semantic.muted);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Format an action with a command (e.g., "Started PostgreSQL using: 'command'")
|
|
174
|
+
*/
|
|
175
|
+
export function formatActionCommand(action: string, command: string): string {
|
|
176
|
+
return `${action} ${maybeColorize(`'${command}'`, semantic.muted)}`;
|
|
177
|
+
}
|
package/src/app/api/[locale]/system/unified-interface/shared/server-only/auth/base-auth-handler.ts
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
|
|
3
|
+
import type { ResponseType } from "next-vibe/shared/types/response.schema";
|
|
4
|
+
|
|
5
|
+
import type { JwtPayloadType } from "@/app/api/[locale]/user/auth/types";
|
|
6
|
+
import type { CountryLanguage } from "@/i18n/core/config";
|
|
7
|
+
|
|
8
|
+
import type { EndpointLogger } from "../../logger/endpoint";
|
|
9
|
+
import type { Platform } from "../../types/platform";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Authentication context passed to platform handlers
|
|
13
|
+
*/
|
|
14
|
+
export interface AuthContext {
|
|
15
|
+
platform: Platform;
|
|
16
|
+
token?: string;
|
|
17
|
+
jwtPayload?: JwtPayloadType;
|
|
18
|
+
locale: CountryLanguage;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Session data structure for CLI/MCP platforms
|
|
23
|
+
*/
|
|
24
|
+
export interface SessionData {
|
|
25
|
+
token: string;
|
|
26
|
+
userId: string;
|
|
27
|
+
leadId: string;
|
|
28
|
+
expiresAt: string;
|
|
29
|
+
createdAt: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Base Authentication Handler
|
|
34
|
+
* Platform-specific storage handlers ONLY
|
|
35
|
+
*
|
|
36
|
+
* ARCHITECTURE:
|
|
37
|
+
* - Platform handlers: ONLY handle storage (cookies, session files, AsyncStorage)
|
|
38
|
+
* - AuthRepository: Contains ALL authentication business logic
|
|
39
|
+
*
|
|
40
|
+
* Platform implementations:
|
|
41
|
+
* - Web: Uses Next.js cookies for session storage
|
|
42
|
+
* - CLI/MCP: Uses .vibe.session file for JWT storage
|
|
43
|
+
* - Native: Uses AsyncStorage for session storage
|
|
44
|
+
*
|
|
45
|
+
* All business logic (user/lead management, token verification, authentication flows)
|
|
46
|
+
* is in @/app/api/[locale]/user/auth/repository.ts
|
|
47
|
+
*/
|
|
48
|
+
export abstract class BaseAuthHandler {
|
|
49
|
+
/**
|
|
50
|
+
* Get authentication token from platform-specific storage
|
|
51
|
+
* Web: Reads from cookies and Authorization header
|
|
52
|
+
* CLI/MCP: Reads from .vibe.session file and Authorization header
|
|
53
|
+
* Native: Reads from AsyncStorage
|
|
54
|
+
*/
|
|
55
|
+
abstract getStoredAuthToken(
|
|
56
|
+
context: AuthContext,
|
|
57
|
+
logger: EndpointLogger,
|
|
58
|
+
): Promise<string | undefined>;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Store authentication token in platform-specific storage
|
|
62
|
+
* Web: Sets HTTP-only cookies
|
|
63
|
+
* CLI/MCP: Writes to .vibe.session file
|
|
64
|
+
* Native: Writes to AsyncStorage
|
|
65
|
+
* @param rememberMe - If true, session cookie lasts 30 days; if false, session-only (browser session)
|
|
66
|
+
*/
|
|
67
|
+
abstract storeAuthToken(
|
|
68
|
+
token: string,
|
|
69
|
+
userId: string,
|
|
70
|
+
leadId: string,
|
|
71
|
+
logger: EndpointLogger,
|
|
72
|
+
rememberMe?: boolean,
|
|
73
|
+
): Promise<ResponseType<void>>;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Clear authentication token from platform-specific storage
|
|
77
|
+
* Web: Clears cookies
|
|
78
|
+
* CLI/MCP: Deletes .vibe.session file
|
|
79
|
+
* Native: Clears AsyncStorage
|
|
80
|
+
*/
|
|
81
|
+
abstract clearAuthToken(logger: EndpointLogger): Promise<ResponseType<void>>;
|
|
82
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import "server-only";
|
|
2
|
+
|
|
3
|
+
import { cliAuthHandler } from "../../../cli/auth/cli-handler";
|
|
4
|
+
import { Platform } from "../../types/platform";
|
|
5
|
+
import type { BaseAuthHandler } from "./base-auth-handler";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Platform Authentication Handler Factory
|
|
9
|
+
* Returns the appropriate auth handler based on platform
|
|
10
|
+
*
|
|
11
|
+
* Platform mapping:
|
|
12
|
+
* - TRPC, NEXT_PAGE, NEXT_API -> WebAuthHandler (cookies)
|
|
13
|
+
* - CLI, CLI_PACKAGE, AI, MCP -> CliAuthHandler (.vibe.session file)
|
|
14
|
+
*/
|
|
15
|
+
export function getPlatformAuthHandler(platform: Platform): BaseAuthHandler {
|
|
16
|
+
switch (platform) {
|
|
17
|
+
case Platform.CLI:
|
|
18
|
+
case Platform.CLI_PACKAGE:
|
|
19
|
+
case Platform.MCP:
|
|
20
|
+
return cliAuthHandler;
|
|
21
|
+
case Platform.TRPC:
|
|
22
|
+
case Platform.NEXT_PAGE:
|
|
23
|
+
case Platform.NEXT_API:
|
|
24
|
+
case Platform.AI:
|
|
25
|
+
throw new Error("WebAuthHandler not implemented");
|
|
26
|
+
|
|
27
|
+
default: {
|
|
28
|
+
const _exhaustiveCheck: never = platform;
|
|
29
|
+
// eslint-disable-next-line oxlint-plugin-restricted/restricted-syntax, i18next/no-literal-string -- Auth factory exhaustiveness check requires throwing for unsupported platforms
|
|
30
|
+
throw new Error(`Unsupported platform: ${String(_exhaustiveCheck)}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action System for Definition-Driven UI
|
|
3
|
+
*
|
|
4
|
+
* This system allows defining actions directly on fields and widgets,
|
|
5
|
+
* providing a declarative way to handle user interactions across all interface contexts.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import type { Route } from "next";
|
|
9
|
+
|
|
10
|
+
import type { TranslationKey } from "@/i18n/core/static-types";
|
|
11
|
+
|
|
12
|
+
import type { ActionType, ComponentVariant, InterfaceContext } from "./enums";
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Action execution timing
|
|
16
|
+
*/
|
|
17
|
+
export enum ActionTiming {
|
|
18
|
+
IMMEDIATE = "immediate",
|
|
19
|
+
DEBOUNCED = "debounced",
|
|
20
|
+
THROTTLED = "throttled",
|
|
21
|
+
DELAYED = "delayed",
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Action execution priority
|
|
26
|
+
*/
|
|
27
|
+
export enum ActionPriority {
|
|
28
|
+
LOW = 0,
|
|
29
|
+
NORMAL = 1,
|
|
30
|
+
HIGH = 2,
|
|
31
|
+
CRITICAL = 3,
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Action condition for conditional execution
|
|
36
|
+
*/
|
|
37
|
+
export interface ActionCondition {
|
|
38
|
+
field: string;
|
|
39
|
+
operator:
|
|
40
|
+
| "equals"
|
|
41
|
+
| "not_equals"
|
|
42
|
+
| "contains"
|
|
43
|
+
| "not_contains"
|
|
44
|
+
| "exists"
|
|
45
|
+
| "not_exists"
|
|
46
|
+
| "greater_than"
|
|
47
|
+
| "less_than";
|
|
48
|
+
value?: string | number | boolean;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Base action configuration
|
|
53
|
+
*/
|
|
54
|
+
export interface BaseActionConfig {
|
|
55
|
+
type: ActionType;
|
|
56
|
+
timing?: ActionTiming;
|
|
57
|
+
priority?: ActionPriority;
|
|
58
|
+
delay?: number;
|
|
59
|
+
dependencies?: string[];
|
|
60
|
+
conditions?: ActionCondition[];
|
|
61
|
+
contexts?: InterfaceContext[]; // Which contexts this action applies to
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Toast/Notification action configuration
|
|
66
|
+
*/
|
|
67
|
+
export interface ToastActionConfig extends BaseActionConfig {
|
|
68
|
+
type: ActionType.TOAST | ActionType.NOTIFICATION | ActionType.ALERT;
|
|
69
|
+
message: TranslationKey;
|
|
70
|
+
variant?: ComponentVariant;
|
|
71
|
+
duration?: number;
|
|
72
|
+
title?: TranslationKey;
|
|
73
|
+
description?: TranslationKey;
|
|
74
|
+
action?: {
|
|
75
|
+
label: TranslationKey;
|
|
76
|
+
onClick: () => void;
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Navigation action configuration
|
|
82
|
+
*/
|
|
83
|
+
export interface NavigationActionConfig extends BaseActionConfig {
|
|
84
|
+
type:
|
|
85
|
+
| ActionType.ROUTER_PUSH
|
|
86
|
+
| ActionType.ROUTER_REPLACE
|
|
87
|
+
| ActionType.ROUTER_BACK
|
|
88
|
+
| ActionType.REDIRECT;
|
|
89
|
+
path?: string;
|
|
90
|
+
route?: Route;
|
|
91
|
+
params?: Record<string, string>;
|
|
92
|
+
query?: Record<string, string>;
|
|
93
|
+
replace?: boolean;
|
|
94
|
+
external?: boolean;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Data/Cache action configuration
|
|
99
|
+
*/
|
|
100
|
+
export interface RefetchActionConfig extends BaseActionConfig {
|
|
101
|
+
type:
|
|
102
|
+
| ActionType.REFETCH
|
|
103
|
+
| ActionType.INVALIDATE_CACHE
|
|
104
|
+
| ActionType.UPDATE_CACHE
|
|
105
|
+
| ActionType.CLEAR_CACHE;
|
|
106
|
+
queryKeys?: string[][];
|
|
107
|
+
exact?: boolean;
|
|
108
|
+
predicate?: (query: Record<string, string | number | boolean>) => boolean;
|
|
109
|
+
data?: Record<string, string | number | boolean>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* Form action configuration
|
|
114
|
+
*/
|
|
115
|
+
export interface FormActionConfig extends BaseActionConfig {
|
|
116
|
+
type:
|
|
117
|
+
| ActionType.RESET_FORM
|
|
118
|
+
| ActionType.CLEAR_FORM
|
|
119
|
+
| ActionType.SET_FORM_VALUES
|
|
120
|
+
| ActionType.FOCUS_FIELD;
|
|
121
|
+
formId?: string;
|
|
122
|
+
values?:
|
|
123
|
+
| Record<string, string | number | boolean>
|
|
124
|
+
| ((context: ActionContext) => Record<string, string | number | boolean>);
|
|
125
|
+
fieldName?: string;
|
|
126
|
+
resetToDefaults?: boolean;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* State action configuration
|
|
131
|
+
*/
|
|
132
|
+
export interface StateActionConfig extends BaseActionConfig {
|
|
133
|
+
type:
|
|
134
|
+
| ActionType.SET_STATE
|
|
135
|
+
| ActionType.TOGGLE_STATE
|
|
136
|
+
| ActionType.UPDATE_STATE;
|
|
137
|
+
key: string;
|
|
138
|
+
value?: string | number | boolean;
|
|
139
|
+
updater?: (current: string | number | boolean) => string | number | boolean;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Custom action configuration
|
|
144
|
+
*/
|
|
145
|
+
export interface CustomActionConfig extends BaseActionConfig {
|
|
146
|
+
type: ActionType.CUSTOM;
|
|
147
|
+
handler: string | ((context: ActionContext) => Promise<ActionResult>);
|
|
148
|
+
payload?: Record<string, string | number | boolean>;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
/**
|
|
152
|
+
* Union type for all action configurations
|
|
153
|
+
*/
|
|
154
|
+
export type ActionConfig =
|
|
155
|
+
| ToastActionConfig
|
|
156
|
+
| NavigationActionConfig
|
|
157
|
+
| RefetchActionConfig
|
|
158
|
+
| FormActionConfig
|
|
159
|
+
| StateActionConfig
|
|
160
|
+
| CustomActionConfig;
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Lifecycle actions for endpoints and widgets
|
|
164
|
+
*/
|
|
165
|
+
export interface LifecycleActions {
|
|
166
|
+
onSuccess?: ActionConfig[];
|
|
167
|
+
onError?: ActionConfig[];
|
|
168
|
+
onLoading?: ActionConfig[];
|
|
169
|
+
onComplete?: ActionConfig[];
|
|
170
|
+
onMount?: ActionConfig[];
|
|
171
|
+
onUnmount?: ActionConfig[];
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Interactive actions for buttons and clickable elements
|
|
176
|
+
*/
|
|
177
|
+
export interface InteractiveActions {
|
|
178
|
+
onClick?: ActionConfig[];
|
|
179
|
+
onDoubleClick?: ActionConfig[];
|
|
180
|
+
onHover?: ActionConfig[];
|
|
181
|
+
onFocus?: ActionConfig[];
|
|
182
|
+
onBlur?: ActionConfig[];
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Form field actions
|
|
187
|
+
*/
|
|
188
|
+
export interface FieldActions {
|
|
189
|
+
onChange?: ActionConfig[];
|
|
190
|
+
onValidation?: ActionConfig[];
|
|
191
|
+
onError?: ActionConfig[];
|
|
192
|
+
onClear?: ActionConfig[];
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Action execution context
|
|
197
|
+
*/
|
|
198
|
+
export interface ActionContext {
|
|
199
|
+
context: InterfaceContext;
|
|
200
|
+
data?: Record<string, string | number | boolean>;
|
|
201
|
+
error?: Error;
|
|
202
|
+
endpoint?: Record<string, string | number | boolean>;
|
|
203
|
+
timestamp: string;
|
|
204
|
+
user: {
|
|
205
|
+
id: string;
|
|
206
|
+
roles: string[];
|
|
207
|
+
};
|
|
208
|
+
metadata?: Record<string, string | number | boolean>;
|
|
209
|
+
formValues?: Record<string, string | number | boolean>;
|
|
210
|
+
fieldValue?: string | number | boolean;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Action execution result
|
|
215
|
+
*/
|
|
216
|
+
export interface ActionResult {
|
|
217
|
+
success: boolean;
|
|
218
|
+
data?: Record<string, string | number | boolean>;
|
|
219
|
+
error?: string;
|
|
220
|
+
metadata?: Record<string, string | number | boolean>;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Action executor interface
|
|
225
|
+
*/
|
|
226
|
+
export interface ActionExecutor {
|
|
227
|
+
context: InterfaceContext;
|
|
228
|
+
canExecute(action: ActionConfig, context: ActionContext): boolean;
|
|
229
|
+
execute(action: ActionConfig, context: ActionContext): Promise<ActionResult>;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Action chain configuration for complex workflows
|
|
234
|
+
*/
|
|
235
|
+
export interface ActionChain {
|
|
236
|
+
actions: ActionConfig[];
|
|
237
|
+
parallel?: boolean;
|
|
238
|
+
stopOnError?: boolean;
|
|
239
|
+
timeout?: number;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* Action preset for common patterns
|
|
244
|
+
*/
|
|
245
|
+
export interface ActionPreset {
|
|
246
|
+
name: string;
|
|
247
|
+
description: TranslationKey;
|
|
248
|
+
actions: ActionConfig[];
|
|
249
|
+
contexts?: InterfaceContext[];
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/**
|
|
253
|
+
* Button action configuration for UI elements
|
|
254
|
+
*/
|
|
255
|
+
export interface ButtonAction {
|
|
256
|
+
label: TranslationKey;
|
|
257
|
+
icon?: string;
|
|
258
|
+
variant?: ComponentVariant;
|
|
259
|
+
size?: "sm" | "md" | "lg";
|
|
260
|
+
actions: ActionConfig[];
|
|
261
|
+
conditions?: ActionCondition[];
|
|
262
|
+
disabled?: boolean;
|
|
263
|
+
loading?: boolean;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
/**
|
|
267
|
+
* Context menu action configuration
|
|
268
|
+
*/
|
|
269
|
+
export interface ContextMenuAction {
|
|
270
|
+
label: TranslationKey;
|
|
271
|
+
icon?: string;
|
|
272
|
+
actions: ActionConfig[];
|
|
273
|
+
separator?: boolean;
|
|
274
|
+
disabled?: boolean;
|
|
275
|
+
dangerous?: boolean;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Bulk action configuration for data tables
|
|
280
|
+
*/
|
|
281
|
+
export interface BulkAction {
|
|
282
|
+
label: TranslationKey;
|
|
283
|
+
icon?: string;
|
|
284
|
+
variant?: ComponentVariant;
|
|
285
|
+
actions: ActionConfig[];
|
|
286
|
+
confirmationMessage?: TranslationKey;
|
|
287
|
+
requiresSelection?: boolean;
|
|
288
|
+
maxSelection?: number;
|
|
289
|
+
}
|