@mesrai/cli 0.4.21
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/README.md +670 -0
- package/dist/agents/agent.interface.d.ts +41 -0
- package/dist/agents/agent.interface.d.ts.map +1 -0
- package/dist/agents/agent.interface.js +2 -0
- package/dist/agents/agent.interface.js.map +1 -0
- package/dist/agents/claude-code.agent.d.ts +14 -0
- package/dist/agents/claude-code.agent.d.ts.map +1 -0
- package/dist/agents/claude-code.agent.js +90 -0
- package/dist/agents/claude-code.agent.js.map +1 -0
- package/dist/agents/codex.agent.d.ts +14 -0
- package/dist/agents/codex.agent.d.ts.map +1 -0
- package/dist/agents/codex.agent.js +77 -0
- package/dist/agents/codex.agent.js.map +1 -0
- package/dist/agents/cursor.agent.d.ts +29 -0
- package/dist/agents/cursor.agent.d.ts.map +1 -0
- package/dist/agents/cursor.agent.js +85 -0
- package/dist/agents/cursor.agent.js.map +1 -0
- package/dist/cli.d.ts +4 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +60 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth/index.d.ts +3 -0
- package/dist/commands/auth/index.d.ts.map +1 -0
- package/dist/commands/auth/index.js +37 -0
- package/dist/commands/auth/index.js.map +1 -0
- package/dist/commands/auth/login.d.ts +11 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +158 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +2 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +26 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/status.d.ts +2 -0
- package/dist/commands/auth/status.d.ts.map +1 -0
- package/dist/commands/auth/status.js +82 -0
- package/dist/commands/auth/status.js.map +1 -0
- package/dist/commands/auth/team-key.d.ts +5 -0
- package/dist/commands/auth/team-key.d.ts.map +1 -0
- package/dist/commands/auth/team-key.js +112 -0
- package/dist/commands/auth/team-key.js.map +1 -0
- package/dist/commands/auth/token.d.ts +2 -0
- package/dist/commands/auth/token.d.ts.map +1 -0
- package/dist/commands/auth/token.js +33 -0
- package/dist/commands/auth/token.js.map +1 -0
- package/dist/commands/config.d.ts +5 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +26 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/diff.d.ts +3 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +23 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/hook/index.d.ts +3 -0
- package/dist/commands/hook/index.d.ts.map +1 -0
- package/dist/commands/hook/index.js +24 -0
- package/dist/commands/hook/index.js.map +1 -0
- package/dist/commands/hook/install.d.ts +11 -0
- package/dist/commands/hook/install.d.ts.map +1 -0
- package/dist/commands/hook/install.js +149 -0
- package/dist/commands/hook/install.js.map +1 -0
- package/dist/commands/hook/status.d.ts +2 -0
- package/dist/commands/hook/status.d.ts.map +1 -0
- package/dist/commands/hook/status.js +36 -0
- package/dist/commands/hook/status.js.map +1 -0
- package/dist/commands/hook/uninstall.d.ts +5 -0
- package/dist/commands/hook/uninstall.d.ts.map +1 -0
- package/dist/commands/hook/uninstall.js +66 -0
- package/dist/commands/hook/uninstall.js.map +1 -0
- package/dist/commands/memory/capture.d.ts +8 -0
- package/dist/commands/memory/capture.d.ts.map +1 -0
- package/dist/commands/memory/capture.js +124 -0
- package/dist/commands/memory/capture.js.map +1 -0
- package/dist/commands/memory/disable.d.ts +5 -0
- package/dist/commands/memory/disable.d.ts.map +1 -0
- package/dist/commands/memory/disable.js +67 -0
- package/dist/commands/memory/disable.js.map +1 -0
- package/dist/commands/memory/enable.d.ts +7 -0
- package/dist/commands/memory/enable.d.ts.map +1 -0
- package/dist/commands/memory/enable.js +74 -0
- package/dist/commands/memory/enable.js.map +1 -0
- package/dist/commands/memory/hooks.d.ts +31 -0
- package/dist/commands/memory/hooks.d.ts.map +1 -0
- package/dist/commands/memory/hooks.js +283 -0
- package/dist/commands/memory/hooks.js.map +1 -0
- package/dist/commands/memory/index.d.ts +3 -0
- package/dist/commands/memory/index.d.ts.map +1 -0
- package/dist/commands/memory/index.js +36 -0
- package/dist/commands/memory/index.js.map +1 -0
- package/dist/commands/memory/session-hooks/claude-code.d.ts +2 -0
- package/dist/commands/memory/session-hooks/claude-code.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/claude-code.js +24 -0
- package/dist/commands/memory/session-hooks/claude-code.js.map +1 -0
- package/dist/commands/memory/session-hooks/codex.d.ts +2 -0
- package/dist/commands/memory/session-hooks/codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/codex.js +16 -0
- package/dist/commands/memory/session-hooks/codex.js.map +1 -0
- package/dist/commands/memory/session-hooks/cursor.d.ts +2 -0
- package/dist/commands/memory/session-hooks/cursor.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/cursor.js +20 -0
- package/dist/commands/memory/session-hooks/cursor.js.map +1 -0
- package/dist/commands/memory/session-hooks/index.d.ts +3 -0
- package/dist/commands/memory/session-hooks/index.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/index.js +21 -0
- package/dist/commands/memory/session-hooks/index.js.map +1 -0
- package/dist/commands/memory/session-hooks/shared.d.ts +7 -0
- package/dist/commands/memory/session-hooks/shared.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks/shared.js +52 -0
- package/dist/commands/memory/session-hooks/shared.js.map +1 -0
- package/dist/commands/memory/session-hooks-install-codex.d.ts +19 -0
- package/dist/commands/memory/session-hooks-install-codex.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-codex.js +91 -0
- package/dist/commands/memory/session-hooks-install-codex.js.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts +9 -0
- package/dist/commands/memory/session-hooks-install-cursor.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install-cursor.js +119 -0
- package/dist/commands/memory/session-hooks-install-cursor.js.map +1 -0
- package/dist/commands/memory/session-hooks-install.d.ts +9 -0
- package/dist/commands/memory/session-hooks-install.d.ts.map +1 -0
- package/dist/commands/memory/session-hooks-install.js +173 -0
- package/dist/commands/memory/session-hooks-install.js.map +1 -0
- package/dist/commands/pr.d.ts +2 -0
- package/dist/commands/pr.d.ts.map +1 -0
- package/dist/commands/pr.js +2 -0
- package/dist/commands/pr.js.map +1 -0
- package/dist/commands/review.d.ts +2 -0
- package/dist/commands/review.d.ts.map +1 -0
- package/dist/commands/review.js +2 -0
- package/dist/commands/review.js.map +1 -0
- package/dist/commands/rules.d.ts +31 -0
- package/dist/commands/rules.d.ts.map +1 -0
- package/dist/commands/rules.js +159 -0
- package/dist/commands/rules.js.map +1 -0
- package/dist/commands/schema.d.ts +3 -0
- package/dist/commands/schema.d.ts.map +1 -0
- package/dist/commands/schema.js +62 -0
- package/dist/commands/schema.js.map +1 -0
- package/dist/commands/skills.d.ts +3 -0
- package/dist/commands/skills.d.ts.map +1 -0
- package/dist/commands/skills.js +85 -0
- package/dist/commands/skills.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +99 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/subscribe.d.ts +4 -0
- package/dist/commands/subscribe.d.ts.map +1 -0
- package/dist/commands/subscribe.js +25 -0
- package/dist/commands/subscribe.js.map +1 -0
- package/dist/commands/update.d.ts +10 -0
- package/dist/commands/update.d.ts.map +1 -0
- package/dist/commands/update.js +112 -0
- package/dist/commands/update.js.map +1 -0
- package/dist/constants.d.ts +3 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +6 -0
- package/dist/constants.js.map +1 -0
- package/dist/features/centralized-config/actions.d.ts +20 -0
- package/dist/features/centralized-config/actions.d.ts.map +1 -0
- package/dist/features/centralized-config/actions.js +114 -0
- package/dist/features/centralized-config/actions.js.map +1 -0
- package/dist/features/centralized-config/command.d.ts +4 -0
- package/dist/features/centralized-config/command.d.ts.map +1 -0
- package/dist/features/centralized-config/command.js +43 -0
- package/dist/features/centralized-config/command.js.map +1 -0
- package/dist/features/pr/command.d.ts +4 -0
- package/dist/features/pr/command.d.ts.map +1 -0
- package/dist/features/pr/command.js +222 -0
- package/dist/features/pr/command.js.map +1 -0
- package/dist/features/repo-config/actions.d.ts +33 -0
- package/dist/features/repo-config/actions.d.ts.map +1 -0
- package/dist/features/repo-config/actions.js +271 -0
- package/dist/features/repo-config/actions.js.map +1 -0
- package/dist/features/repo-config/command.d.ts +15 -0
- package/dist/features/repo-config/command.d.ts.map +1 -0
- package/dist/features/repo-config/command.js +135 -0
- package/dist/features/repo-config/command.js.map +1 -0
- package/dist/features/review/command.d.ts +4 -0
- package/dist/features/review/command.d.ts.map +1 -0
- package/dist/features/review/command.js +404 -0
- package/dist/features/review/command.js.map +1 -0
- package/dist/features/review/diff.d.ts +23 -0
- package/dist/features/review/diff.d.ts.map +1 -0
- package/dist/features/review/diff.js +47 -0
- package/dist/features/review/diff.js.map +1 -0
- package/dist/features/review/errors.d.ts +3 -0
- package/dist/features/review/errors.d.ts.map +1 -0
- package/dist/features/review/errors.js +26 -0
- package/dist/features/review/errors.js.map +1 -0
- package/dist/features/review/hunk-context.d.ts +25 -0
- package/dist/features/review/hunk-context.d.ts.map +1 -0
- package/dist/features/review/hunk-context.js +158 -0
- package/dist/features/review/hunk-context.js.map +1 -0
- package/dist/features/review/hunk-viewer.d.ts +25 -0
- package/dist/features/review/hunk-viewer.d.ts.map +1 -0
- package/dist/features/review/hunk-viewer.js +59 -0
- package/dist/features/review/hunk-viewer.js.map +1 -0
- package/dist/features/review/no-changes.d.ts +6 -0
- package/dist/features/review/no-changes.d.ts.map +1 -0
- package/dist/features/review/no-changes.js +31 -0
- package/dist/features/review/no-changes.js.map +1 -0
- package/dist/features/review/options.d.ts +7 -0
- package/dist/features/review/options.d.ts.map +1 -0
- package/dist/features/review/options.js +18 -0
- package/dist/features/review/options.js.map +1 -0
- package/dist/features/review/result.d.ts +40 -0
- package/dist/features/review/result.d.ts.map +1 -0
- package/dist/features/review/result.js +95 -0
- package/dist/features/review/result.js.map +1 -0
- package/dist/formatters/json.d.ts +7 -0
- package/dist/formatters/json.d.ts.map +1 -0
- package/dist/formatters/json.js +7 -0
- package/dist/formatters/json.js.map +1 -0
- package/dist/formatters/markdown.d.ts +7 -0
- package/dist/formatters/markdown.d.ts.map +1 -0
- package/dist/formatters/markdown.js +93 -0
- package/dist/formatters/markdown.js.map +1 -0
- package/dist/formatters/prompt.d.ts +12 -0
- package/dist/formatters/prompt.d.ts.map +1 -0
- package/dist/formatters/prompt.js +90 -0
- package/dist/formatters/prompt.js.map +1 -0
- package/dist/formatters/repo-config.d.ts +7 -0
- package/dist/formatters/repo-config.d.ts.map +1 -0
- package/dist/formatters/repo-config.js +99 -0
- package/dist/formatters/repo-config.js.map +1 -0
- package/dist/formatters/terminal.d.ts +7 -0
- package/dist/formatters/terminal.d.ts.map +1 -0
- package/dist/formatters/terminal.js +130 -0
- package/dist/formatters/terminal.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/services/api/api-core.d.ts +27 -0
- package/dist/services/api/api-core.d.ts.map +1 -0
- package/dist/services/api/api-core.js +451 -0
- package/dist/services/api/api-core.js.map +1 -0
- package/dist/services/api/api.interface.d.ts +101 -0
- package/dist/services/api/api.interface.d.ts.map +1 -0
- package/dist/services/api/api.interface.js +2 -0
- package/dist/services/api/api.interface.js.map +1 -0
- package/dist/services/api/api.real.d.ts +19 -0
- package/dist/services/api/api.real.d.ts.map +1 -0
- package/dist/services/api/api.real.js +20 -0
- package/dist/services/api/api.real.js.map +1 -0
- package/dist/services/api/auth.api.d.ts +17 -0
- package/dist/services/api/auth.api.d.ts.map +1 -0
- package/dist/services/api/auth.api.js +73 -0
- package/dist/services/api/auth.api.js.map +1 -0
- package/dist/services/api/cli-auth.api.d.ts +29 -0
- package/dist/services/api/cli-auth.api.d.ts.map +1 -0
- package/dist/services/api/cli-auth.api.js +23 -0
- package/dist/services/api/cli-auth.api.js.map +1 -0
- package/dist/services/api/config.api.d.ts +34 -0
- package/dist/services/api/config.api.d.ts.map +1 -0
- package/dist/services/api/config.api.js +108 -0
- package/dist/services/api/config.api.js.map +1 -0
- package/dist/services/api/index.d.ts +4 -0
- package/dist/services/api/index.d.ts.map +1 -0
- package/dist/services/api/index.js +3 -0
- package/dist/services/api/index.js.map +1 -0
- package/dist/services/api/memory.api.d.ts +10 -0
- package/dist/services/api/memory.api.d.ts.map +1 -0
- package/dist/services/api/memory.api.js +19 -0
- package/dist/services/api/memory.api.js.map +1 -0
- package/dist/services/api/review.api.d.ts +27 -0
- package/dist/services/api/review.api.d.ts.map +1 -0
- package/dist/services/api/review.api.js +140 -0
- package/dist/services/api/review.api.js.map +1 -0
- package/dist/services/api/rules.api.d.ts +13 -0
- package/dist/services/api/rules.api.d.ts.map +1 -0
- package/dist/services/api/rules.api.js +41 -0
- package/dist/services/api/rules.api.js.map +1 -0
- package/dist/services/api/sessions.api.d.ts +6 -0
- package/dist/services/api/sessions.api.d.ts.map +1 -0
- package/dist/services/api/sessions.api.js +129 -0
- package/dist/services/api/sessions.api.js.map +1 -0
- package/dist/services/api/trial.api.d.ts +10 -0
- package/dist/services/api/trial.api.d.ts.map +1 -0
- package/dist/services/api/trial.api.js +11 -0
- package/dist/services/api/trial.api.js.map +1 -0
- package/dist/services/auth.service.d.ts +29 -0
- package/dist/services/auth.service.d.ts.map +1 -0
- package/dist/services/auth.service.js +190 -0
- package/dist/services/auth.service.js.map +1 -0
- package/dist/services/browser-login.service.d.ts +23 -0
- package/dist/services/browser-login.service.d.ts.map +1 -0
- package/dist/services/browser-login.service.js +187 -0
- package/dist/services/browser-login.service.js.map +1 -0
- package/dist/services/centralized-config.service.d.ts +24 -0
- package/dist/services/centralized-config.service.d.ts.map +1 -0
- package/dist/services/centralized-config.service.js +112 -0
- package/dist/services/centralized-config.service.js.map +1 -0
- package/dist/services/context.service.d.ts +25 -0
- package/dist/services/context.service.d.ts.map +1 -0
- package/dist/services/context.service.js +134 -0
- package/dist/services/context.service.js.map +1 -0
- package/dist/services/device-login.service.d.ts +23 -0
- package/dist/services/device-login.service.d.ts.map +1 -0
- package/dist/services/device-login.service.js +70 -0
- package/dist/services/device-login.service.js.map +1 -0
- package/dist/services/fix.service.d.ts +31 -0
- package/dist/services/fix.service.d.ts.map +1 -0
- package/dist/services/fix.service.js +121 -0
- package/dist/services/fix.service.js.map +1 -0
- package/dist/services/git-hooks.service.d.ts +20 -0
- package/dist/services/git-hooks.service.d.ts.map +1 -0
- package/dist/services/git-hooks.service.js +126 -0
- package/dist/services/git-hooks.service.js.map +1 -0
- package/dist/services/git.service.d.ts +44 -0
- package/dist/services/git.service.d.ts.map +1 -0
- package/dist/services/git.service.js +321 -0
- package/dist/services/git.service.js.map +1 -0
- package/dist/services/hook-logger.service.d.ts +18 -0
- package/dist/services/hook-logger.service.d.ts.map +1 -0
- package/dist/services/hook-logger.service.js +48 -0
- package/dist/services/hook-logger.service.js.map +1 -0
- package/dist/services/lifecycle-events.d.ts +49 -0
- package/dist/services/lifecycle-events.d.ts.map +1 -0
- package/dist/services/lifecycle-events.js +86 -0
- package/dist/services/lifecycle-events.js.map +1 -0
- package/dist/services/lifecycle-git-context.d.ts +15 -0
- package/dist/services/lifecycle-git-context.d.ts.map +1 -0
- package/dist/services/lifecycle-git-context.js +23 -0
- package/dist/services/lifecycle-git-context.js.map +1 -0
- package/dist/services/lifecycle-local-turn-state.d.ts +14 -0
- package/dist/services/lifecycle-local-turn-state.d.ts.map +1 -0
- package/dist/services/lifecycle-local-turn-state.js +18 -0
- package/dist/services/lifecycle-local-turn-state.js.map +1 -0
- package/dist/services/lifecycle-transcript.d.ts +25 -0
- package/dist/services/lifecycle-transcript.d.ts.map +1 -0
- package/dist/services/lifecycle-transcript.js +29 -0
- package/dist/services/lifecycle-transcript.js.map +1 -0
- package/dist/services/lifecycle-turn-data.d.ts +11 -0
- package/dist/services/lifecycle-turn-data.d.ts.map +1 -0
- package/dist/services/lifecycle-turn-data.js +23 -0
- package/dist/services/lifecycle-turn-data.js.map +1 -0
- package/dist/services/lifecycle.service.d.ts +14 -0
- package/dist/services/lifecycle.service.d.ts.map +1 -0
- package/dist/services/lifecycle.service.js +276 -0
- package/dist/services/lifecycle.service.js.map +1 -0
- package/dist/services/repo-config.service.d.ts +22 -0
- package/dist/services/repo-config.service.d.ts.map +1 -0
- package/dist/services/repo-config.service.js +81 -0
- package/dist/services/repo-config.service.js.map +1 -0
- package/dist/services/repo-settings-wizard.service.d.ts +19 -0
- package/dist/services/repo-settings-wizard.service.d.ts.map +1 -0
- package/dist/services/repo-settings-wizard.service.js +260 -0
- package/dist/services/repo-settings-wizard.service.js.map +1 -0
- package/dist/services/repo-settings.service.d.ts +30 -0
- package/dist/services/repo-settings.service.d.ts.map +1 -0
- package/dist/services/repo-settings.service.js +99 -0
- package/dist/services/repo-settings.service.js.map +1 -0
- package/dist/services/review-auth-fallback.d.ts +7 -0
- package/dist/services/review-auth-fallback.d.ts.map +1 -0
- package/dist/services/review-auth-fallback.js +25 -0
- package/dist/services/review-auth-fallback.js.map +1 -0
- package/dist/services/review-config-builder.d.ts +19 -0
- package/dist/services/review-config-builder.d.ts.map +1 -0
- package/dist/services/review-config-builder.js +29 -0
- package/dist/services/review-config-builder.js.map +1 -0
- package/dist/services/review-file-filter.d.ts +3 -0
- package/dist/services/review-file-filter.d.ts.map +1 -0
- package/dist/services/review-file-filter.js +35 -0
- package/dist/services/review-file-filter.js.map +1 -0
- package/dist/services/review-normalizer.d.ts +6 -0
- package/dist/services/review-normalizer.d.ts.map +1 -0
- package/dist/services/review-normalizer.js +62 -0
- package/dist/services/review-normalizer.js.map +1 -0
- package/dist/services/review-verbose.d.ts +28 -0
- package/dist/services/review-verbose.d.ts.map +1 -0
- package/dist/services/review-verbose.js +52 -0
- package/dist/services/review-verbose.js.map +1 -0
- package/dist/services/review.service.d.ts +38 -0
- package/dist/services/review.service.d.ts.map +1 -0
- package/dist/services/review.service.js +152 -0
- package/dist/services/review.service.js.map +1 -0
- package/dist/services/rules.service.d.ts +16 -0
- package/dist/services/rules.service.d.ts.map +1 -0
- package/dist/services/rules.service.js +98 -0
- package/dist/services/rules.service.js.map +1 -0
- package/dist/services/session-local.service.d.ts +25 -0
- package/dist/services/session-local.service.d.ts.map +1 -0
- package/dist/services/session-local.service.js +79 -0
- package/dist/services/session-local.service.js.map +1 -0
- package/dist/services/transcript-parser.service.d.ts +10 -0
- package/dist/services/transcript-parser.service.d.ts.map +1 -0
- package/dist/services/transcript-parser.service.js +127 -0
- package/dist/services/transcript-parser.service.js.map +1 -0
- package/dist/services/transcript.service.d.ts +33 -0
- package/dist/services/transcript.service.d.ts.map +1 -0
- package/dist/services/transcript.service.js +264 -0
- package/dist/services/transcript.service.js.map +1 -0
- package/dist/types/auth.d.ts +18 -0
- package/dist/types/auth.d.ts.map +1 -0
- package/dist/types/auth.js +2 -0
- package/dist/types/auth.js.map +1 -0
- package/dist/types/cli.d.ts +41 -0
- package/dist/types/cli.d.ts.map +1 -0
- package/dist/types/cli.js +2 -0
- package/dist/types/cli.js.map +1 -0
- package/dist/types/command-output.d.ts +29 -0
- package/dist/types/command-output.d.ts.map +1 -0
- package/dist/types/command-output.js +2 -0
- package/dist/types/command-output.js.map +1 -0
- package/dist/types/config.d.ts +68 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/errors.d.ts +8 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +15 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/memory.d.ts +39 -0
- package/dist/types/memory.d.ts.map +1 -0
- package/dist/types/memory.js +2 -0
- package/dist/types/memory.js.map +1 -0
- package/dist/types/repo-config.d.ts +24 -0
- package/dist/types/repo-config.d.ts.map +1 -0
- package/dist/types/repo-config.js +2 -0
- package/dist/types/repo-config.js.map +1 -0
- package/dist/types/review.d.ts +112 -0
- package/dist/types/review.d.ts.map +1 -0
- package/dist/types/review.js +2 -0
- package/dist/types/review.js.map +1 -0
- package/dist/types/rules.d.ts +42 -0
- package/dist/types/rules.d.ts.map +1 -0
- package/dist/types/rules.js +7 -0
- package/dist/types/rules.js.map +1 -0
- package/dist/types/session-events.d.ts +48 -0
- package/dist/types/session-events.d.ts.map +1 -0
- package/dist/types/session-events.js +2 -0
- package/dist/types/session-events.js.map +1 -0
- package/dist/types/session.d.ts +150 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/session.js +9 -0
- package/dist/types/session.js.map +1 -0
- package/dist/types/trial.d.ts +10 -0
- package/dist/types/trial.d.ts.map +1 -0
- package/dist/types/trial.js +2 -0
- package/dist/types/trial.js.map +1 -0
- package/dist/ui/interactive-formatters.d.ts +6 -0
- package/dist/ui/interactive-formatters.d.ts.map +1 -0
- package/dist/ui/interactive-formatters.js +61 -0
- package/dist/ui/interactive-formatters.js.map +1 -0
- package/dist/ui/interactive-helpers.d.ts +20 -0
- package/dist/ui/interactive-helpers.d.ts.map +1 -0
- package/dist/ui/interactive-helpers.js +82 -0
- package/dist/ui/interactive-helpers.js.map +1 -0
- package/dist/ui/interactive-renderers.d.ts +6 -0
- package/dist/ui/interactive-renderers.d.ts.map +1 -0
- package/dist/ui/interactive-renderers.js +82 -0
- package/dist/ui/interactive-renderers.js.map +1 -0
- package/dist/ui/interactive.d.ts +25 -0
- package/dist/ui/interactive.d.ts.map +1 -0
- package/dist/ui/interactive.js +228 -0
- package/dist/ui/interactive.js.map +1 -0
- package/dist/utils/auth-mode.d.ts +7 -0
- package/dist/utils/auth-mode.d.ts.map +1 -0
- package/dist/utils/auth-mode.js +42 -0
- package/dist/utils/auth-mode.js.map +1 -0
- package/dist/utils/banner.d.ts +2 -0
- package/dist/utils/banner.d.ts.map +1 -0
- package/dist/utils/banner.js +180 -0
- package/dist/utils/banner.js.map +1 -0
- package/dist/utils/cli-exit.d.ts +13 -0
- package/dist/utils/cli-exit.d.ts.map +1 -0
- package/dist/utils/cli-exit.js +29 -0
- package/dist/utils/cli-exit.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +11 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/command-context.d.ts +12 -0
- package/dist/utils/command-context.d.ts.map +1 -0
- package/dist/utils/command-context.js +15 -0
- package/dist/utils/command-context.js.map +1 -0
- package/dist/utils/command-errors.d.ts +12 -0
- package/dist/utils/command-errors.d.ts.map +1 -0
- package/dist/utils/command-errors.js +112 -0
- package/dist/utils/command-errors.js.map +1 -0
- package/dist/utils/command-output.d.ts +5 -0
- package/dist/utils/command-output.d.ts.map +1 -0
- package/dist/utils/command-output.js +46 -0
- package/dist/utils/command-output.js.map +1 -0
- package/dist/utils/command-schema.d.ts +29 -0
- package/dist/utils/command-schema.d.ts.map +1 -0
- package/dist/utils/command-schema.js +74 -0
- package/dist/utils/command-schema.js.map +1 -0
- package/dist/utils/commander-errors.d.ts +8 -0
- package/dist/utils/commander-errors.d.ts.map +1 -0
- package/dist/utils/commander-errors.js +79 -0
- package/dist/utils/commander-errors.js.map +1 -0
- package/dist/utils/commander-setup.d.ts +3 -0
- package/dist/utils/commander-setup.d.ts.map +1 -0
- package/dist/utils/commander-setup.js +10 -0
- package/dist/utils/commander-setup.js.map +1 -0
- package/dist/utils/config.d.ts +13 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +71 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/credentials.d.ts +6 -0
- package/dist/utils/credentials.d.ts.map +1 -0
- package/dist/utils/credentials.js +64 -0
- package/dist/utils/credentials.js.map +1 -0
- package/dist/utils/device.d.ts +7 -0
- package/dist/utils/device.d.ts.map +1 -0
- package/dist/utils/device.js +133 -0
- package/dist/utils/device.js.map +1 -0
- package/dist/utils/field-mask.d.ts +2 -0
- package/dist/utils/field-mask.d.ts.map +1 -0
- package/dist/utils/field-mask.js +93 -0
- package/dist/utils/field-mask.js.map +1 -0
- package/dist/utils/git-diff.d.ts +5 -0
- package/dist/utils/git-diff.d.ts.map +1 -0
- package/dist/utils/git-diff.js +14 -0
- package/dist/utils/git-diff.js.map +1 -0
- package/dist/utils/git-file-reader.d.ts +22 -0
- package/dist/utils/git-file-reader.d.ts.map +1 -0
- package/dist/utils/git-file-reader.js +45 -0
- package/dist/utils/git-file-reader.js.map +1 -0
- package/dist/utils/git-file-selection.d.ts +14 -0
- package/dist/utils/git-file-selection.d.ts.map +1 -0
- package/dist/utils/git-file-selection.js +20 -0
- package/dist/utils/git-file-selection.js.map +1 -0
- package/dist/utils/git-file-targets.d.ts +4 -0
- package/dist/utils/git-file-targets.d.ts.map +1 -0
- package/dist/utils/git-file-targets.js +11 -0
- package/dist/utils/git-file-targets.js.map +1 -0
- package/dist/utils/git-remote.d.ts +7 -0
- package/dist/utils/git-remote.d.ts.map +1 -0
- package/dist/utils/git-remote.js +94 -0
- package/dist/utils/git-remote.js.map +1 -0
- package/dist/utils/git-status.d.ts +7 -0
- package/dist/utils/git-status.d.ts.map +1 -0
- package/dist/utils/git-status.js +36 -0
- package/dist/utils/git-status.js.map +1 -0
- package/dist/utils/hunk.d.ts +15 -0
- package/dist/utils/hunk.d.ts.map +1 -0
- package/dist/utils/hunk.js +44 -0
- package/dist/utils/hunk.js.map +1 -0
- package/dist/utils/input-validation.d.ts +11 -0
- package/dist/utils/input-validation.d.ts.map +1 -0
- package/dist/utils/input-validation.js +73 -0
- package/dist/utils/input-validation.js.map +1 -0
- package/dist/utils/install-instructions.d.ts +6 -0
- package/dist/utils/install-instructions.d.ts.map +1 -0
- package/dist/utils/install-instructions.js +18 -0
- package/dist/utils/install-instructions.js.map +1 -0
- package/dist/utils/logger.d.ts +13 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +48 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/rate-limit.d.ts +5 -0
- package/dist/utils/rate-limit.d.ts.map +1 -0
- package/dist/utils/rate-limit.js +56 -0
- package/dist/utils/rate-limit.js.map +1 -0
- package/dist/utils/recent-activity.d.ts +9 -0
- package/dist/utils/recent-activity.d.ts.map +1 -0
- package/dist/utils/recent-activity.js +139 -0
- package/dist/utils/recent-activity.js.map +1 -0
- package/dist/utils/repo-settings-dashboard.d.ts +6 -0
- package/dist/utils/repo-settings-dashboard.d.ts.map +1 -0
- package/dist/utils/repo-settings-dashboard.js +36 -0
- package/dist/utils/repo-settings-dashboard.js.map +1 -0
- package/dist/utils/repo-settings-patterns.d.ts +7 -0
- package/dist/utils/repo-settings-patterns.d.ts.map +1 -0
- package/dist/utils/repo-settings-patterns.js +66 -0
- package/dist/utils/repo-settings-patterns.js.map +1 -0
- package/dist/utils/repo-settings-schema.d.ts +6 -0
- package/dist/utils/repo-settings-schema.d.ts.map +1 -0
- package/dist/utils/repo-settings-schema.js +70 -0
- package/dist/utils/repo-settings-schema.js.map +1 -0
- package/dist/utils/review-output.d.ts +4 -0
- package/dist/utils/review-output.d.ts.map +1 -0
- package/dist/utils/review-output.js +18 -0
- package/dist/utils/review-output.js.map +1 -0
- package/dist/utils/skills-sync-manifest.d.ts +5 -0
- package/dist/utils/skills-sync-manifest.d.ts.map +1 -0
- package/dist/utils/skills-sync-manifest.js +39 -0
- package/dist/utils/skills-sync-manifest.js.map +1 -0
- package/dist/utils/skills-sync-paths.d.ts +5 -0
- package/dist/utils/skills-sync-paths.d.ts.map +1 -0
- package/dist/utils/skills-sync-paths.js +60 -0
- package/dist/utils/skills-sync-paths.js.map +1 -0
- package/dist/utils/skills-sync-targets.d.ts +3 -0
- package/dist/utils/skills-sync-targets.d.ts.map +1 -0
- package/dist/utils/skills-sync-targets.js +218 -0
- package/dist/utils/skills-sync-targets.js.map +1 -0
- package/dist/utils/skills-sync.d.ts +39 -0
- package/dist/utils/skills-sync.d.ts.map +1 -0
- package/dist/utils/skills-sync.js +200 -0
- package/dist/utils/skills-sync.js.map +1 -0
- package/dist/utils/skills.d.ts +13 -0
- package/dist/utils/skills.d.ts.map +1 -0
- package/dist/utils/skills.js +117 -0
- package/dist/utils/skills.js.map +1 -0
- package/dist/utils/stream-input.d.ts +13 -0
- package/dist/utils/stream-input.d.ts.map +1 -0
- package/dist/utils/stream-input.js +36 -0
- package/dist/utils/stream-input.js.map +1 -0
- package/dist/utils/team-key-auth.d.ts +5 -0
- package/dist/utils/team-key-auth.d.ts.map +1 -0
- package/dist/utils/team-key-auth.js +14 -0
- package/dist/utils/team-key-auth.js.map +1 -0
- package/dist/utils/update-check.d.ts +2 -0
- package/dist/utils/update-check.d.ts.map +1 -0
- package/dist/utils/update-check.js +30 -0
- package/dist/utils/update-check.js.map +1 -0
- package/package.json +90 -0
- package/skills/README.md +64 -0
- package/skills/hunk-review/SKILL.md +154 -0
- package/skills/mesrai-business-rules-validation/SKILL.md +65 -0
- package/skills/mesrai-centralized-config/SKILL.md +102 -0
- package/skills/mesrai-mesrai-rules/SKILL.md +103 -0
- package/skills/mesrai-mesrai-rules/instructions/create-mesrai-rule.md +56 -0
- package/skills/mesrai-mesrai-rules/instructions/update-mesrai-rule.md +63 -0
- package/skills/mesrai-mesrai-rules/instructions/view-mesrai-rules.md +65 -0
- package/skills/mesrai-mesrai-rules/rules/create-mesrai-rule.md +48 -0
- package/skills/mesrai-mesrai-rules/rules/update-mesrai-rule.md +55 -0
- package/skills/mesrai-mesrai-rules/rules/view-mesrai-rules.md +56 -0
- package/skills/mesrai-pr-suggestions-resolver/SKILL.md +61 -0
- package/skills/mesrai-review/SKILL.md +53 -0
- package/skills/mesrai-review-dev/SKILL.md +55 -0
- package/skills/mesrai-review-dev/scripts/run-local-cli.sh +49 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { api } from './api/index.js';
|
|
2
|
+
import { gitService } from './git.service.js';
|
|
3
|
+
import { CommandError } from '../utils/command-errors.js';
|
|
4
|
+
import { resolveTeamKeyAccess } from '../utils/team-key-auth.js';
|
|
5
|
+
class RepoConfigService {
|
|
6
|
+
async addRepository(target) {
|
|
7
|
+
const config = await this.loadTeamKeyConfig();
|
|
8
|
+
const repositoryRef = await this.resolveRepositoryReference(target);
|
|
9
|
+
const availableRepositories = await api.config.getAvailableRepositories(config.teamKey);
|
|
10
|
+
const matchedRepository = this.findRepositoryMatch(repositoryRef, availableRepositories);
|
|
11
|
+
if (!matchedRepository) {
|
|
12
|
+
throw new CommandError('INVALID_INPUT', `Repository '${repositoryRef}' was not found in the repositories available to this team. Check the git remote and Mesrai provider connection.`);
|
|
13
|
+
}
|
|
14
|
+
const repositoryFullName = this.toRepositoryFullName(matchedRepository);
|
|
15
|
+
if (matchedRepository.selected) {
|
|
16
|
+
return {
|
|
17
|
+
status: 'already-added',
|
|
18
|
+
repositoryFullName,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
const response = await api.config.addRepositories(config.teamKey, [matchedRepository.id]);
|
|
22
|
+
if (response.message === 'Repositories already added' ||
|
|
23
|
+
response.alreadyAddedRepositoryIds?.includes(matchedRepository.id)) {
|
|
24
|
+
return {
|
|
25
|
+
status: 'already-added',
|
|
26
|
+
repositoryFullName,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
status: 'added',
|
|
31
|
+
repositoryFullName,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async listRepositories() {
|
|
35
|
+
const config = await this.loadTeamKeyConfig();
|
|
36
|
+
const repositories = await api.config.getSelectedRepositories(config.teamKey);
|
|
37
|
+
return repositories.map((repository) => ({
|
|
38
|
+
id: repository.id,
|
|
39
|
+
fullName: this.toRepositoryFullName(repository),
|
|
40
|
+
}));
|
|
41
|
+
}
|
|
42
|
+
async loadTeamKeyConfig() {
|
|
43
|
+
return resolveTeamKeyAccess('Repository configuration requires team-key auth. Run: mesrai auth team-key --key <your-key>.');
|
|
44
|
+
}
|
|
45
|
+
async resolveRepositoryReference(target) {
|
|
46
|
+
if (target !== '.') {
|
|
47
|
+
const normalized = target.trim().replace(/^\/+|\/+$/g, '');
|
|
48
|
+
if (!normalized || !normalized.includes('/')) {
|
|
49
|
+
throw new CommandError('INVALID_INPUT', "Pass '.' for the current repository or use 'owner/repo'.");
|
|
50
|
+
}
|
|
51
|
+
return normalized.toLowerCase();
|
|
52
|
+
}
|
|
53
|
+
const isRepo = await gitService.isGitRepository();
|
|
54
|
+
if (!isRepo) {
|
|
55
|
+
throw new CommandError('NOT_IN_GIT_REPO', 'Current directory is not a git repository. Run this command inside a repository or pass owner/repo explicitly.');
|
|
56
|
+
}
|
|
57
|
+
const remoteUrl = await gitService.getRemoteUrl();
|
|
58
|
+
if (!remoteUrl) {
|
|
59
|
+
throw new CommandError('INVALID_INPUT', "No git remote found for this repository. Configure 'origin' or pass owner/repo explicitly.");
|
|
60
|
+
}
|
|
61
|
+
const orgRepo = await gitService.extractOrgRepo();
|
|
62
|
+
if (!orgRepo) {
|
|
63
|
+
throw new CommandError('INVALID_INPUT', `Could not resolve repository from git remote '${remoteUrl}'. Pass owner/repo explicitly.`);
|
|
64
|
+
}
|
|
65
|
+
return `${orgRepo.org}/${orgRepo.repo}`.toLowerCase();
|
|
66
|
+
}
|
|
67
|
+
findRepositoryMatch(repositoryRef, repositories) {
|
|
68
|
+
const normalizedTarget = repositoryRef.toLowerCase();
|
|
69
|
+
return repositories.find((repository) => {
|
|
70
|
+
const fullName = this.toRepositoryFullName(repository).toLowerCase();
|
|
71
|
+
return fullName === normalizedTarget;
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
toRepositoryFullName(repository) {
|
|
75
|
+
return (repository.full_name ||
|
|
76
|
+
`${repository.organizationName}/${repository.name}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export { RepoConfigService };
|
|
80
|
+
export const repoConfigService = new RepoConfigService();
|
|
81
|
+
//# sourceMappingURL=repo-config.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-config.service.js","sourceRoot":"","sources":["../../src/services/repo-config.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { RepositorySettings } from '../types/repo-config.js';
|
|
2
|
+
type CollectSettingsOptions = {
|
|
3
|
+
yes?: boolean;
|
|
4
|
+
writeLine?: (line: string) => void;
|
|
5
|
+
};
|
|
6
|
+
type SettingsSection = 'all' | 'general' | 'patterns';
|
|
7
|
+
declare class RepositorySettingsWizardService {
|
|
8
|
+
collectSettings(current: RepositorySettings, options?: CollectSettingsOptions, section?: SettingsSection): Promise<RepositorySettings>;
|
|
9
|
+
collectGeneralSettings(current: RepositorySettings, options?: CollectSettingsOptions): Promise<RepositorySettings>;
|
|
10
|
+
collectPatternSettings(current: RepositorySettings, options?: CollectSettingsOptions): Promise<RepositorySettings>;
|
|
11
|
+
private collectIgnoredFilePatterns;
|
|
12
|
+
private collectPatternList;
|
|
13
|
+
private shouldUseSelectedPatterns;
|
|
14
|
+
private confirmPatternDraft;
|
|
15
|
+
private selectPatternMode;
|
|
16
|
+
}
|
|
17
|
+
export { RepositorySettingsWizardService };
|
|
18
|
+
export declare const repositorySettingsWizardService: RepositorySettingsWizardService;
|
|
19
|
+
//# sourceMappingURL=repo-settings-wizard.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-wizard.service.d.ts","sourceRoot":"","sources":["../../src/services/repo-settings-wizard.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE,KAAK,sBAAsB,GAAG;IAC1B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CACtC,CAAC;AAEF,KAAK,eAAe,GAAG,KAAK,GAAG,SAAS,GAAG,UAAU,CAAC;AAoDtD,cAAM,+BAA+B;IAC3B,eAAe,CACjB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,EACpC,OAAO,GAAE,eAAuB,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAiBxB,sBAAsB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,kBAAkB,CAAC;IAyDxB,sBAAsB,CACxB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,GAAE,sBAA2B,GACrC,OAAO,CAAC,kBAAkB,CAAC;YAsDhB,0BAA0B;YAqD1B,kBAAkB;YAsDlB,yBAAyB;YAazB,mBAAmB;YAgBnB,iBAAiB;CAiClC;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAC3C,eAAO,MAAM,+BAA+B,iCACH,CAAC"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { checkbox, input, select } from '@inquirer/prompts';
|
|
2
|
+
import { formatRepositorySetupSection } from '../formatters/repo-config.js';
|
|
3
|
+
import { parseRepositoryPatternList } from '../utils/repo-settings-schema.js';
|
|
4
|
+
const RECOMMENDED_IGNORED_FILE_PATTERNS = [
|
|
5
|
+
'yarn.lock',
|
|
6
|
+
'package-lock.json',
|
|
7
|
+
'package.json',
|
|
8
|
+
'.env',
|
|
9
|
+
'**/*.json',
|
|
10
|
+
];
|
|
11
|
+
const COMMON_IGNORED_FILE_PATTERNS = [
|
|
12
|
+
...RECOMMENDED_IGNORED_FILE_PATTERNS,
|
|
13
|
+
'dist/**',
|
|
14
|
+
'coverage/**',
|
|
15
|
+
'**/generated/**',
|
|
16
|
+
];
|
|
17
|
+
const COMMON_BASE_BRANCH_PATTERNS = [
|
|
18
|
+
'main',
|
|
19
|
+
'develop',
|
|
20
|
+
'release/*',
|
|
21
|
+
'hotfix/*',
|
|
22
|
+
];
|
|
23
|
+
const COMMON_IGNORED_TITLE_PATTERNS = [
|
|
24
|
+
'wip*',
|
|
25
|
+
'draft*',
|
|
26
|
+
'chore(release)*',
|
|
27
|
+
'release:*',
|
|
28
|
+
];
|
|
29
|
+
function summarizePatterns(patterns) {
|
|
30
|
+
return patterns.length > 0 ? patterns.join(', ') : '(none)';
|
|
31
|
+
}
|
|
32
|
+
function summarizePatternOption(patterns, maxItems = 3) {
|
|
33
|
+
if (patterns.length === 0) {
|
|
34
|
+
return '(none)';
|
|
35
|
+
}
|
|
36
|
+
const visible = patterns.slice(0, maxItems);
|
|
37
|
+
const remaining = patterns.length - visible.length;
|
|
38
|
+
if (remaining <= 0) {
|
|
39
|
+
return visible.join(', ');
|
|
40
|
+
}
|
|
41
|
+
return `${visible.join(', ')} +${remaining} more`;
|
|
42
|
+
}
|
|
43
|
+
class RepositorySettingsWizardService {
|
|
44
|
+
async collectSettings(current, options = {}, section = 'all') {
|
|
45
|
+
if (options.yes) {
|
|
46
|
+
return current;
|
|
47
|
+
}
|
|
48
|
+
if (section === 'general') {
|
|
49
|
+
return this.collectGeneralSettings(current, options);
|
|
50
|
+
}
|
|
51
|
+
if (section === 'patterns') {
|
|
52
|
+
return this.collectPatternSettings(current, options);
|
|
53
|
+
}
|
|
54
|
+
const withGeneral = await this.collectGeneralSettings(current, options);
|
|
55
|
+
return this.collectPatternSettings(withGeneral, options);
|
|
56
|
+
}
|
|
57
|
+
async collectGeneralSettings(current, options = {}) {
|
|
58
|
+
const writeLine = options.writeLine ?? (() => { });
|
|
59
|
+
for (const line of formatRepositorySetupSection('General', 'Choose the review behaviors you want for this repository.')) {
|
|
60
|
+
writeLine(line);
|
|
61
|
+
}
|
|
62
|
+
writeLine('Mesrai automatically reviews pull requests when they are opened or updated.');
|
|
63
|
+
writeLine('When disabled, you can still trigger a review manually with @mesrai start-review.');
|
|
64
|
+
const reviewEnabled = await select({
|
|
65
|
+
message: 'Automated code review',
|
|
66
|
+
default: current.reviewEnabled,
|
|
67
|
+
choices: [
|
|
68
|
+
{ name: 'Enabled', value: true },
|
|
69
|
+
{ name: 'Disabled', value: false },
|
|
70
|
+
],
|
|
71
|
+
});
|
|
72
|
+
writeLine('Automatically approves the pull request when the review finishes without issues.');
|
|
73
|
+
const autoApproveEnabled = await select({
|
|
74
|
+
message: 'Pull request approval',
|
|
75
|
+
default: current.autoApproveEnabled,
|
|
76
|
+
choices: [
|
|
77
|
+
{ name: 'Enabled', value: true },
|
|
78
|
+
{ name: 'Disabled', value: false },
|
|
79
|
+
],
|
|
80
|
+
});
|
|
81
|
+
writeLine('Only suggestions at or above this severity will be posted.');
|
|
82
|
+
const requestChangesMinSeverity = await select({
|
|
83
|
+
message: 'Minimum severity level',
|
|
84
|
+
default: current.requestChangesMinSeverity,
|
|
85
|
+
choices: [
|
|
86
|
+
{ name: 'Low', value: 'low' },
|
|
87
|
+
{ name: 'Medium', value: 'medium' },
|
|
88
|
+
{ name: 'High', value: 'high' },
|
|
89
|
+
{ name: 'Critical', value: 'critical' },
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
return {
|
|
93
|
+
...current,
|
|
94
|
+
reviewEnabled,
|
|
95
|
+
autoApproveEnabled,
|
|
96
|
+
requestChangesMinSeverity: requestChangesMinSeverity,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
async collectPatternSettings(current, options = {}) {
|
|
100
|
+
const writeLine = options.writeLine ?? (() => { });
|
|
101
|
+
for (const line of formatRepositorySetupSection('Patterns', 'Files and titles can use glob patterns. Branches accept branch names or expressions like release/*.')) {
|
|
102
|
+
writeLine(line);
|
|
103
|
+
}
|
|
104
|
+
writeLine('Files matching these glob patterns will be skipped during review.');
|
|
105
|
+
writeLine(`Current ignored files: ${summarizePatterns(current.ignoredFilePatterns)}`);
|
|
106
|
+
writeLine('Examples: yarn.lock, package-lock.json, .env, **/*.json');
|
|
107
|
+
const ignoredFilePatterns = await this.collectIgnoredFilePatterns(current.ignoredFilePatterns);
|
|
108
|
+
writeLine('Additional base branches that Mesrai should review against.');
|
|
109
|
+
writeLine(`Current base branches: ${summarizePatterns(current.baseBranchPatterns)}`);
|
|
110
|
+
writeLine('Examples: main, develop, release/*');
|
|
111
|
+
const baseBranchPatterns = await this.collectPatternList({
|
|
112
|
+
fieldLabel: 'Base branches',
|
|
113
|
+
customMessage: 'Base branches (comma-separated or one per line)',
|
|
114
|
+
current: current.baseBranchPatterns,
|
|
115
|
+
commonPatterns: COMMON_BASE_BRANCH_PATTERNS,
|
|
116
|
+
});
|
|
117
|
+
writeLine('Mesrai skips the review when the pull request title matches one of these patterns.');
|
|
118
|
+
writeLine(`Current ignored title patterns: ${summarizePatterns(current.ignoredTitlePatterns)}`);
|
|
119
|
+
writeLine('Case-insensitive. Examples: wip*, draft*, chore(release)*');
|
|
120
|
+
const ignoredTitlePatterns = await this.collectPatternList({
|
|
121
|
+
fieldLabel: 'Ignored title patterns',
|
|
122
|
+
customMessage: 'Ignored title patterns (comma-separated or one per line)',
|
|
123
|
+
current: current.ignoredTitlePatterns,
|
|
124
|
+
commonPatterns: COMMON_IGNORED_TITLE_PATTERNS,
|
|
125
|
+
});
|
|
126
|
+
return {
|
|
127
|
+
...current,
|
|
128
|
+
ignoredFilePatterns,
|
|
129
|
+
baseBranchPatterns,
|
|
130
|
+
ignoredTitlePatterns,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
async collectIgnoredFilePatterns(current) {
|
|
134
|
+
while (true) {
|
|
135
|
+
const mode = await this.selectPatternMode('Ignored files', current, COMMON_IGNORED_FILE_PATTERNS.length, true);
|
|
136
|
+
switch (mode) {
|
|
137
|
+
case 'recommended':
|
|
138
|
+
return [...RECOMMENDED_IGNORED_FILE_PATTERNS];
|
|
139
|
+
case 'common': {
|
|
140
|
+
const selected = await checkbox({
|
|
141
|
+
message: 'Choose the file patterns to ignore',
|
|
142
|
+
choices: COMMON_IGNORED_FILE_PATTERNS.map((pattern) => ({
|
|
143
|
+
name: pattern,
|
|
144
|
+
value: pattern,
|
|
145
|
+
checked: current.includes(pattern),
|
|
146
|
+
})),
|
|
147
|
+
});
|
|
148
|
+
if (await this.shouldUseSelectedPatterns()) {
|
|
149
|
+
return selected;
|
|
150
|
+
}
|
|
151
|
+
continue;
|
|
152
|
+
}
|
|
153
|
+
case 'custom':
|
|
154
|
+
{
|
|
155
|
+
const customPatterns = parseRepositoryPatternList(await input({
|
|
156
|
+
message: 'Ignored file patterns (comma-separated or one per line)',
|
|
157
|
+
default: current.join('\n'),
|
|
158
|
+
}));
|
|
159
|
+
if (await this.confirmPatternDraft(customPatterns)) {
|
|
160
|
+
return customPatterns;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
continue;
|
|
164
|
+
case 'clear':
|
|
165
|
+
return [];
|
|
166
|
+
case 'keep-current':
|
|
167
|
+
default:
|
|
168
|
+
return current;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
async collectPatternList(options) {
|
|
173
|
+
while (true) {
|
|
174
|
+
const mode = await this.selectPatternMode(options.fieldLabel, options.current, options.commonPatterns.length);
|
|
175
|
+
switch (mode) {
|
|
176
|
+
case 'common': {
|
|
177
|
+
const selected = await checkbox({
|
|
178
|
+
message: `Choose ${options.fieldLabel.toLowerCase()}`,
|
|
179
|
+
choices: options.commonPatterns.map((pattern) => ({
|
|
180
|
+
name: pattern,
|
|
181
|
+
value: pattern,
|
|
182
|
+
checked: options.current.includes(pattern),
|
|
183
|
+
})),
|
|
184
|
+
});
|
|
185
|
+
if (await this.shouldUseSelectedPatterns()) {
|
|
186
|
+
return selected;
|
|
187
|
+
}
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
case 'custom':
|
|
191
|
+
{
|
|
192
|
+
const customPatterns = parseRepositoryPatternList(await input({
|
|
193
|
+
message: options.customMessage,
|
|
194
|
+
default: options.current.join('\n'),
|
|
195
|
+
}));
|
|
196
|
+
if (await this.confirmPatternDraft(customPatterns)) {
|
|
197
|
+
return customPatterns;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
continue;
|
|
201
|
+
case 'clear':
|
|
202
|
+
return [];
|
|
203
|
+
case 'keep-current':
|
|
204
|
+
default:
|
|
205
|
+
return options.current;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
async shouldUseSelectedPatterns() {
|
|
210
|
+
const nextAction = await select({
|
|
211
|
+
message: 'What do you want to do with this selection?',
|
|
212
|
+
default: 'apply',
|
|
213
|
+
choices: [
|
|
214
|
+
{ name: 'Use selected patterns', value: 'apply' },
|
|
215
|
+
{ name: 'Back to pattern options', value: 'back' },
|
|
216
|
+
],
|
|
217
|
+
});
|
|
218
|
+
return nextAction === 'apply';
|
|
219
|
+
}
|
|
220
|
+
async confirmPatternDraft(patterns) {
|
|
221
|
+
const nextAction = await select({
|
|
222
|
+
message: 'What do you want to do with these patterns?',
|
|
223
|
+
default: 'apply',
|
|
224
|
+
choices: [
|
|
225
|
+
{
|
|
226
|
+
name: `Use these patterns (${summarizePatterns(patterns)})`,
|
|
227
|
+
value: 'apply',
|
|
228
|
+
},
|
|
229
|
+
{ name: 'Back to pattern options', value: 'back' },
|
|
230
|
+
],
|
|
231
|
+
});
|
|
232
|
+
return nextAction === 'apply';
|
|
233
|
+
}
|
|
234
|
+
async selectPatternMode(fieldLabel, current, commonPatternCount, includeRecommended = false) {
|
|
235
|
+
const choices = [
|
|
236
|
+
{
|
|
237
|
+
name: `Keep current value (${summarizePatterns(current)})`,
|
|
238
|
+
value: 'keep-current',
|
|
239
|
+
},
|
|
240
|
+
];
|
|
241
|
+
if (includeRecommended) {
|
|
242
|
+
choices.push({
|
|
243
|
+
name: `Use recommended defaults (${summarizePatternOption(RECOMMENDED_IGNORED_FILE_PATTERNS)})`,
|
|
244
|
+
value: 'recommended',
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
choices.push({
|
|
248
|
+
name: `Choose common patterns (${commonPatternCount} available)`,
|
|
249
|
+
value: 'common',
|
|
250
|
+
}, { name: 'Enter custom patterns', value: 'custom' }, { name: 'Clear patterns ((none))', value: 'clear' });
|
|
251
|
+
return await select({
|
|
252
|
+
message: fieldLabel,
|
|
253
|
+
default: 'keep-current',
|
|
254
|
+
choices,
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
export { RepositorySettingsWizardService };
|
|
259
|
+
export const repositorySettingsWizardService = new RepositorySettingsWizardService();
|
|
260
|
+
//# sourceMappingURL=repo-settings-wizard.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings-wizard.service.js","sourceRoot":"","sources":["../../src/services/repo-settings-wizard.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAS9E,MAAM,iCAAiC,GAAG;IACtC,WAAW;IACX,mBAAmB;IACnB,cAAc;IACd,MAAM;IACN,WAAW;CACL,CAAC;AAEX,MAAM,4BAA4B,GAAG;IACjC,GAAG,iCAAiC;IACpC,SAAS;IACT,aAAa;IACb,iBAAiB;CACX,CAAC;AAEX,MAAM,2BAA2B,GAAG;IAChC,MAAM;IACN,SAAS;IACT,WAAW;IACX,UAAU;CACJ,CAAC;AAEX,MAAM,6BAA6B,GAAG;IAClC,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,WAAW;CACL,CAAC;AAEX,SAAS,iBAAiB,CAAC,QAAkB;IACzC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAChE,CAAC;AAED,SAAS,sBAAsB,CAC3B,QAA2B,EAC3B,QAAQ,GAAG,CAAC;IAEZ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,OAAO,CAAC;AACtD,CAAC;AAED,MAAM,+BAA+B;IACjC,KAAK,CAAC,eAAe,CACjB,OAA2B,EAC3B,UAAkC,EAAE,EACpC,UAA2B,KAAK;QAEhC,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,OAAO,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,OAA2B,EAC3B,UAAkC,EAAE;QAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,IAAI,IAAI,4BAA4B,CAC3C,SAAS,EACT,2DAA2D,CAC9D,EAAE,CAAC;YACA,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,SAAS,CACL,6EAA6E,CAChF,CAAC;QACF,SAAS,CACL,mFAAmF,CACtF,CAAC;QACF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAU;YACxC,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,OAAO,CAAC,aAAa;YAC9B,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;aACrC;SACJ,CAAC,CAAC;QAEH,SAAS,CACL,kFAAkF,CACrF,CAAC;QACF,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAU;YAC7C,OAAO,EAAE,uBAAuB;YAChC,OAAO,EAAE,OAAO,CAAC,kBAAkB;YACnC,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;gBAChC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;aACrC;SACJ,CAAC,CAAC;QAEH,SAAS,CAAC,4DAA4D,CAAC,CAAC;QACxE,MAAM,yBAAyB,GAAG,MAAM,MAAM,CAAC;YAC3C,OAAO,EAAE,wBAAwB;YACjC,OAAO,EAAE,OAAO,CAAC,yBAAyB;YAC1C,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE;gBAC7B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACnC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;aAC1C;SACJ,CAAC,CAAC;QAEH,OAAO;YACH,GAAG,OAAO;YACV,aAAa;YACb,kBAAkB;YAClB,yBAAyB,EACrB,yBAA4E;SACnF,CAAC;IACN,CAAC;IAED,KAAK,CAAC,sBAAsB,CACxB,OAA2B,EAC3B,UAAkC,EAAE;QAEpC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAElD,KAAK,MAAM,IAAI,IAAI,4BAA4B,CAC3C,UAAU,EACV,qGAAqG,CACxG,EAAE,CAAC;YACA,SAAS,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QAED,SAAS,CAAC,mEAAmE,CAAC,CAAC;QAC/E,SAAS,CACL,0BAA0B,iBAAiB,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAC7E,CAAC;QACF,SAAS,CAAC,yDAAyD,CAAC,CAAC;QACrE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,0BAA0B,CAC7D,OAAO,CAAC,mBAAmB,CAC9B,CAAC;QAEF,SAAS,CAAC,6DAA6D,CAAC,CAAC;QACzE,SAAS,CACL,0BAA0B,iBAAiB,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAC5E,CAAC;QACF,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAChD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACrD,UAAU,EAAE,eAAe;YAC3B,aAAa,EAAE,iDAAiD;YAChE,OAAO,EAAE,OAAO,CAAC,kBAAkB;YACnC,cAAc,EAAE,2BAA2B;SAC9C,CAAC,CAAC;QAEH,SAAS,CACL,oFAAoF,CACvF,CAAC;QACF,SAAS,CACL,mCAAmC,iBAAiB,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CACvF,CAAC;QACF,SAAS,CAAC,2DAA2D,CAAC,CAAC;QACvE,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC;YACvD,UAAU,EAAE,wBAAwB;YACpC,aAAa,EACT,0DAA0D;YAC9D,OAAO,EAAE,OAAO,CAAC,oBAAoB;YACrC,cAAc,EAAE,6BAA6B;SAChD,CAAC,CAAC;QAEH,OAAO;YACH,GAAG,OAAO;YACV,mBAAmB;YACnB,kBAAkB;YAClB,oBAAoB;SACvB,CAAC;IACN,CAAC;IAEO,KAAK,CAAC,0BAA0B,CAAC,OAAiB;QACtD,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACrC,eAAe,EACf,OAAO,EACP,4BAA4B,CAAC,MAAM,EACnC,IAAI,CACP,CAAC;YAEF,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,aAAa;oBACd,OAAO,CAAC,GAAG,iCAAiC,CAAC,CAAC;gBAClD,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAS;wBACpC,OAAO,EAAE,oCAAoC;wBAC7C,OAAO,EAAE,4BAA4B,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;4BACpD,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;yBACrC,CAAC,CAAC;qBACN,CAAC,CAAC;oBAEH,IAAI,MAAM,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;wBACzC,OAAO,QAAQ,CAAC;oBACpB,CAAC;oBAED,SAAS;gBACb,CAAC;gBACD,KAAK,QAAQ;oBACT,CAAC;wBACG,MAAM,cAAc,GAAG,0BAA0B,CAC7C,MAAM,KAAK,CAAC;4BACR,OAAO,EACH,yDAAyD;4BAC7D,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;yBAC9B,CAAC,CACL,CAAC;wBAEF,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;4BACjD,OAAO,cAAc,CAAC;wBAC1B,CAAC;oBACL,CAAC;oBAED,SAAS;gBACb,KAAK,OAAO;oBACR,OAAO,EAAE,CAAC;gBACd,KAAK,cAAc,CAAC;gBACpB;oBACI,OAAO,OAAO,CAAC;YACvB,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,OAKhC;QACG,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACrC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,cAAc,CAAC,MAAM,CAChC,CAAC;YAEF,QAAQ,IAAI,EAAE,CAAC;gBACX,KAAK,QAAQ,CAAC,CAAC,CAAC;oBACZ,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAS;wBACpC,OAAO,EAAE,UAAU,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;wBACrD,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;4BAC9C,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,OAAO;4BACd,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;yBAC7C,CAAC,CAAC;qBACN,CAAC,CAAC;oBAEH,IAAI,MAAM,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;wBACzC,OAAO,QAAQ,CAAC;oBACpB,CAAC;oBAED,SAAS;gBACb,CAAC;gBACD,KAAK,QAAQ;oBACT,CAAC;wBACG,MAAM,cAAc,GAAG,0BAA0B,CAC7C,MAAM,KAAK,CAAC;4BACR,OAAO,EAAE,OAAO,CAAC,aAAa;4BAC9B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;yBACtC,CAAC,CACL,CAAC;wBAEF,IAAI,MAAM,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,EAAE,CAAC;4BACjD,OAAO,cAAc,CAAC;wBAC1B,CAAC;oBACL,CAAC;oBAED,SAAS;gBACb,KAAK,OAAO;oBACR,OAAO,EAAE,CAAC;gBACd,KAAK,cAAc,CAAC;gBACpB;oBACI,OAAO,OAAO,CAAC,OAAO,CAAC;YAC/B,CAAC;QACL,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACnC,MAAM,UAAU,GAAG,MAAM,MAAM,CAAS;YACpC,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACL,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,OAAO,EAAE;gBACjD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE;aACrD;SACJ,CAAC,CAAC;QAEH,OAAO,UAAU,KAAK,OAAO,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,QAAkB;QAChD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAS;YACpC,OAAO,EAAE,6CAA6C;YACtD,OAAO,EAAE,OAAO;YAChB,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,uBAAuB,iBAAiB,CAAC,QAAQ,CAAC,GAAG;oBAC3D,KAAK,EAAE,OAAO;iBACjB;gBACD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,MAAM,EAAE;aACrD;SACJ,CAAC,CAAC;QAEH,OAAO,UAAU,KAAK,OAAO,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC3B,UAAkB,EAClB,OAAiB,EACjB,kBAA0B,EAC1B,kBAAkB,GAAG,KAAK;QAE1B,MAAM,OAAO,GAAG;YACZ;gBACI,IAAI,EAAE,uBAAuB,iBAAiB,CAAC,OAAO,CAAC,GAAG;gBAC1D,KAAK,EAAE,cAAc;aACxB;SACJ,CAAC;QACF,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC;gBACT,IAAI,EAAE,6BAA6B,sBAAsB,CAAC,iCAAiC,CAAC,GAAG;gBAC/F,KAAK,EAAE,aAAa;aACvB,CAAC,CAAC;QACP,CAAC;QACD,OAAO,CAAC,IAAI,CACR;YACI,IAAI,EAAE,2BAA2B,kBAAkB,aAAa;YAChE,KAAK,EAAE,QAAQ;SAClB,EACD,EAAE,IAAI,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,EAClD,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,CACtD,CAAC;QAEF,OAAO,MAAM,MAAM,CAAS;YACxB,OAAO,EAAE,UAAU;YACnB,OAAO,EAAE,cAAc;YACvB,OAAO;SACV,CAAC,CAAC;IACP,CAAC;CACJ;AAED,OAAO,EAAE,+BAA+B,EAAE,CAAC;AAC3C,MAAM,CAAC,MAAM,+BAA+B,GACxC,IAAI,+BAA+B,EAAE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CentralizedPrMetadata } from '../types/config.js';
|
|
2
|
+
import type { RepositorySettings } from '../types/repo-config.js';
|
|
3
|
+
export type RepositorySettingsResult = {
|
|
4
|
+
repositoryId: string;
|
|
5
|
+
repositoryFullName: string;
|
|
6
|
+
settings: RepositorySettings;
|
|
7
|
+
};
|
|
8
|
+
export type RepositorySettingsCentralizedPrResult = {
|
|
9
|
+
repositoryId: string;
|
|
10
|
+
repositoryFullName: string;
|
|
11
|
+
centralized: CentralizedPrMetadata & {
|
|
12
|
+
mode: 'centralized-pr';
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export type RepositorySettingsMutationResult = RepositorySettingsResult | RepositorySettingsCentralizedPrResult;
|
|
16
|
+
declare class RepositorySettingsService {
|
|
17
|
+
getRepositorySettings(target: string): Promise<RepositorySettingsResult>;
|
|
18
|
+
updateRepositorySettings(target: string, settings: RepositorySettings): Promise<RepositorySettingsMutationResult>;
|
|
19
|
+
private resolveConfiguredRepository;
|
|
20
|
+
private requireTeamKey;
|
|
21
|
+
private getRepositorySettingsWithTeamKey;
|
|
22
|
+
private updateRepositorySettingsWithTeamKey;
|
|
23
|
+
private resolveRepositoryReference;
|
|
24
|
+
private findRepositoryMatch;
|
|
25
|
+
private toRepositoryFullName;
|
|
26
|
+
private isCentralizedPrMetadata;
|
|
27
|
+
}
|
|
28
|
+
export { RepositorySettingsService };
|
|
29
|
+
export declare const repositorySettingsService: RepositorySettingsService;
|
|
30
|
+
//# sourceMappingURL=repo-settings.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings.service.d.ts","sourceRoot":"","sources":["../../src/services/repo-settings.service.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,MAAM,MAAM,wBAAwB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,kBAAkB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,qCAAqC,GAAG;IAChD,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,qBAAqB,GAAG;QAAE,IAAI,EAAE,gBAAgB,CAAA;KAAE,CAAC;CACnE,CAAC;AAEF,MAAM,MAAM,gCAAgC,GACtC,wBAAwB,GACxB,qCAAqC,CAAC;AAE5C,cAAM,yBAAyB;IACrB,qBAAqB,CACvB,MAAM,EAAE,MAAM,GACf,OAAO,CAAC,wBAAwB,CAAC;IAK9B,wBAAwB,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,kBAAkB,GAC7B,OAAO,CAAC,gCAAgC,CAAC;YAS9B,2BAA2B;YA0B3B,cAAc;YAad,gCAAgC;YAoBhC,mCAAmC;YA+BnC,0BAA0B;IAuCxC,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,uBAAuB;CAYlC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,eAAO,MAAM,yBAAyB,2BAAkC,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { api } from './api/index.js';
|
|
2
|
+
import { authService } from './auth.service.js';
|
|
3
|
+
import { gitService } from './git.service.js';
|
|
4
|
+
import { CommandError } from '../utils/command-errors.js';
|
|
5
|
+
class RepositorySettingsService {
|
|
6
|
+
async getRepositorySettings(target) {
|
|
7
|
+
const teamKey = await this.requireTeamKey();
|
|
8
|
+
return this.getRepositorySettingsWithTeamKey(target, teamKey);
|
|
9
|
+
}
|
|
10
|
+
async updateRepositorySettings(target, settings) {
|
|
11
|
+
const teamKey = await this.requireTeamKey();
|
|
12
|
+
return this.updateRepositorySettingsWithTeamKey(target, teamKey, settings);
|
|
13
|
+
}
|
|
14
|
+
async resolveConfiguredRepository(target, accessToken) {
|
|
15
|
+
const repositoryRef = await this.resolveRepositoryReference(target);
|
|
16
|
+
const repositories = await api.config.getSelectedRepositories(accessToken);
|
|
17
|
+
const matchedRepository = this.findRepositoryMatch(repositoryRef, repositories);
|
|
18
|
+
if (!matchedRepository) {
|
|
19
|
+
throw new CommandError('INVALID_INPUT', `Repository '${repositoryRef}' is not configured in Mesrai yet. Run 'mesrai config add -r ${target}' first.`);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
matchedRepository,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async requireTeamKey() {
|
|
26
|
+
const accessToken = await authService.getValidToken();
|
|
27
|
+
if (accessToken.startsWith('mesrai_')) {
|
|
28
|
+
return accessToken;
|
|
29
|
+
}
|
|
30
|
+
throw new CommandError('AUTH_REQUIRED', 'Repository settings require team-key auth. Run: mesrai auth team-key --key <your-key>.');
|
|
31
|
+
}
|
|
32
|
+
async getRepositorySettingsWithTeamKey(target, teamKey) {
|
|
33
|
+
const { matchedRepository } = await this.resolveConfiguredRepository(target, teamKey);
|
|
34
|
+
const settings = await api.config.getRepositorySettings(teamKey, matchedRepository.id);
|
|
35
|
+
return {
|
|
36
|
+
repositoryId: matchedRepository.id,
|
|
37
|
+
repositoryFullName: this.toRepositoryFullName(matchedRepository),
|
|
38
|
+
settings,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
async updateRepositorySettingsWithTeamKey(target, teamKey, settings) {
|
|
42
|
+
const { matchedRepository } = await this.resolveConfiguredRepository(target, teamKey);
|
|
43
|
+
const updatedSettings = await api.config.updateRepositorySettings(teamKey, matchedRepository.id, settings);
|
|
44
|
+
if (this.isCentralizedPrMetadata(updatedSettings)) {
|
|
45
|
+
return {
|
|
46
|
+
repositoryId: matchedRepository.id,
|
|
47
|
+
repositoryFullName: this.toRepositoryFullName(matchedRepository),
|
|
48
|
+
centralized: updatedSettings,
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
repositoryId: matchedRepository.id,
|
|
53
|
+
repositoryFullName: this.toRepositoryFullName(matchedRepository),
|
|
54
|
+
settings: updatedSettings,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
async resolveRepositoryReference(target) {
|
|
58
|
+
if (target !== '.') {
|
|
59
|
+
const normalized = target.trim().replace(/^\/+|\/+$/g, '');
|
|
60
|
+
if (!normalized || !normalized.includes('/')) {
|
|
61
|
+
throw new CommandError('INVALID_INPUT', "Pass '.' for the current repository or use 'owner/repo'.");
|
|
62
|
+
}
|
|
63
|
+
return normalized.toLowerCase();
|
|
64
|
+
}
|
|
65
|
+
const isRepo = await gitService.isGitRepository();
|
|
66
|
+
if (!isRepo) {
|
|
67
|
+
throw new CommandError('NOT_IN_GIT_REPO', 'Current directory is not a git repository. Run this command inside a repository or pass owner/repo explicitly.');
|
|
68
|
+
}
|
|
69
|
+
const remoteUrl = await gitService.getRemoteUrl();
|
|
70
|
+
if (!remoteUrl) {
|
|
71
|
+
throw new CommandError('INVALID_INPUT', "No git remote found for this repository. Configure 'origin' or pass owner/repo explicitly.");
|
|
72
|
+
}
|
|
73
|
+
const orgRepo = await gitService.extractOrgRepo();
|
|
74
|
+
if (!orgRepo) {
|
|
75
|
+
throw new CommandError('INVALID_INPUT', `Could not resolve repository from git remote '${remoteUrl}'. Pass owner/repo explicitly.`);
|
|
76
|
+
}
|
|
77
|
+
return `${orgRepo.org}/${orgRepo.repo}`.toLowerCase();
|
|
78
|
+
}
|
|
79
|
+
findRepositoryMatch(repositoryRef, repositories) {
|
|
80
|
+
const normalizedTarget = repositoryRef.toLowerCase();
|
|
81
|
+
return repositories.find((repository) => {
|
|
82
|
+
const fullName = this.toRepositoryFullName(repository).toLowerCase();
|
|
83
|
+
return fullName === normalizedTarget;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
toRepositoryFullName(repository) {
|
|
87
|
+
return (repository.full_name ||
|
|
88
|
+
`${repository.organizationName}/${repository.name}`);
|
|
89
|
+
}
|
|
90
|
+
isCentralizedPrMetadata(value) {
|
|
91
|
+
return (typeof value === 'object' &&
|
|
92
|
+
value !== null &&
|
|
93
|
+
'mode' in value &&
|
|
94
|
+
value.mode === 'centralized-pr');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
export { RepositorySettingsService };
|
|
98
|
+
export const repositorySettingsService = new RepositorySettingsService();
|
|
99
|
+
//# sourceMappingURL=repo-settings.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repo-settings.service.js","sourceRoot":"","sources":["../../src/services/repo-settings.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CliConfig } from '../utils/config.js';
|
|
2
|
+
export declare function withTeamKeyFallback<T>({ token, loadConfig, operation, }: {
|
|
3
|
+
token: string;
|
|
4
|
+
loadConfig: () => Promise<CliConfig | null>;
|
|
5
|
+
operation: (token: string) => Promise<T>;
|
|
6
|
+
}): Promise<T>;
|
|
7
|
+
//# sourceMappingURL=review-auth-fallback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-auth-fallback.d.ts","sourceRoot":"","sources":["../../src/services/review-auth-fallback.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,UAAU,EACV,SAAS,GACZ,EAAE;IACC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC5C,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC5C,GAAG,OAAO,CAAC,CAAC,CAAC,CAwBb"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ApiError } from '../types/errors.js';
|
|
2
|
+
export async function withTeamKeyFallback({ token, loadConfig, operation, }) {
|
|
3
|
+
try {
|
|
4
|
+
return await operation(token);
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
const canFallbackToTeamKey = error instanceof ApiError &&
|
|
8
|
+
error.statusCode === 401 &&
|
|
9
|
+
!token.startsWith('mesrai_');
|
|
10
|
+
if (!canFallbackToTeamKey) {
|
|
11
|
+
throw error;
|
|
12
|
+
}
|
|
13
|
+
const config = await loadConfig();
|
|
14
|
+
if (!config?.teamKey) {
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
try {
|
|
18
|
+
return await operation(config.teamKey);
|
|
19
|
+
}
|
|
20
|
+
catch (fallbackError) {
|
|
21
|
+
throw fallbackError;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=review-auth-fallback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-auth-fallback.js","sourceRoot":"","sources":["../../src/services/review-auth-fallback.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG9C,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAI,EACzC,KAAK,EACL,UAAU,EACV,SAAS,GAKZ;IACG,IAAI,CAAC;QACD,OAAO,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,MAAM,oBAAoB,GACtB,KAAK,YAAY,QAAQ;YACzB,KAAK,CAAC,UAAU,KAAK,GAAG;YACxB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAEjC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACnB,MAAM,KAAK,CAAC;QAChB,CAAC;QAED,IAAI,CAAC;YACD,OAAO,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,aAAa,EAAE,CAAC;YACrB,MAAM,aAAa,CAAC;QACxB,CAAC;IACL,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { FileContent, ReviewConfig } from '../types/review.js';
|
|
2
|
+
export declare function buildReviewConfig({ rulesOnly, fast, options, getFullFileContents, filterFiles, }: {
|
|
3
|
+
rulesOnly?: boolean;
|
|
4
|
+
fast?: boolean;
|
|
5
|
+
options?: {
|
|
6
|
+
files?: string[];
|
|
7
|
+
staged?: boolean;
|
|
8
|
+
commit?: string;
|
|
9
|
+
branch?: string;
|
|
10
|
+
quiet?: boolean;
|
|
11
|
+
};
|
|
12
|
+
getFullFileContents: (files?: string[], options?: {
|
|
13
|
+
staged?: boolean;
|
|
14
|
+
commit?: string;
|
|
15
|
+
branch?: string;
|
|
16
|
+
}) => Promise<FileContent[]>;
|
|
17
|
+
filterFiles: (files: FileContent[], quiet?: boolean) => FileContent[];
|
|
18
|
+
}): Promise<ReviewConfig>;
|
|
19
|
+
//# sourceMappingURL=review-config-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-config-builder.d.ts","sourceRoot":"","sources":["../../src/services/review-config-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEpE,wBAAsB,iBAAiB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,GACd,EAAE;IACC,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,mBAAmB,EAAE,CACjB,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACnB,KACA,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC;CACzE,GAAG,OAAO,CAAC,YAAY,CAAC,CA+BxB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export async function buildReviewConfig({ rulesOnly, fast, options, getFullFileContents, filterFiles, }) {
|
|
2
|
+
const reviewConfig = {
|
|
3
|
+
rulesOnly,
|
|
4
|
+
fast,
|
|
5
|
+
};
|
|
6
|
+
// Skip inlining file contents when:
|
|
7
|
+
// - fast mode: the server runs with a capped step budget; the full
|
|
8
|
+
// file bodies are extra payload with diminishing returns.
|
|
9
|
+
// - branch / commit mode: the diff is computed against committed
|
|
10
|
+
// history, so the backend can clone the same commit into its
|
|
11
|
+
// sandbox and read files from there (via readFile/grep). Sending
|
|
12
|
+
// 20+ MB of inlined content per request on large refactors blew
|
|
13
|
+
// past the backend's body parser limit for no benefit.
|
|
14
|
+
//
|
|
15
|
+
// Working-tree reviews (default and --staged) still inline files, since
|
|
16
|
+
// local WIP changes don't exist on any remote the backend could clone.
|
|
17
|
+
const skipInlining = fast || !!options?.branch || !!options?.commit;
|
|
18
|
+
if (skipInlining) {
|
|
19
|
+
return reviewConfig;
|
|
20
|
+
}
|
|
21
|
+
const allFiles = await getFullFileContents(options?.files, {
|
|
22
|
+
staged: options?.staged,
|
|
23
|
+
commit: options?.commit,
|
|
24
|
+
branch: options?.branch,
|
|
25
|
+
});
|
|
26
|
+
reviewConfig.files = filterFiles(allFiles, options?.quiet ?? false);
|
|
27
|
+
return reviewConfig;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=review-config-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-config-builder.js","sourceRoot":"","sources":["../../src/services/review-config-builder.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACpC,SAAS,EACT,IAAI,EACJ,OAAO,EACP,mBAAmB,EACnB,WAAW,GAoBd;IACG,MAAM,YAAY,GAAiB;QAC/B,SAAS;QACT,IAAI;KACP,CAAC;IAEF,oCAAoC;IACpC,qEAAqE;IACrE,8DAA8D;IAC9D,mEAAmE;IACnE,iEAAiE;IACjE,qEAAqE;IACrE,oEAAoE;IACpE,2DAA2D;IAC3D,EAAE;IACF,wEAAwE;IACxE,uEAAuE;IACvE,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC;IACpE,IAAI,YAAY,EAAE,CAAC;QACf,OAAO,YAAY,CAAC;IACxB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,KAAK,EAAE;QACvD,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;KAC1B,CAAC,CAAC;IAEH,YAAY,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,CAAC,CAAC;IAEpE,OAAO,YAAY,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review-file-filter.d.ts","sourceRoot":"","sources":["../../src/services/review-file-filter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAMtD,wBAAgB,iBAAiB,CAC7B,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,UAAQ,GACd,WAAW,EAAE,CA8Cf"}
|