@machina.ai/cell-cli 1.8.2-rc1 → 1.11.0-rc1
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/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/package.json +8 -7
- package/dist/src/commands/extensions/disable.js +8 -5
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/enable.js +8 -6
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/examples/context/GEMINI.md +9 -3
- package/dist/src/commands/extensions/examples/mcp-server/example.d.ts +6 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
- package/dist/src/commands/extensions/install.d.ts +2 -0
- package/dist/src/commands/extensions/install.js +25 -5
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +9 -9
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.js +5 -4
- package/dist/src/commands/extensions/link.js.map +1 -1
- package/dist/src/commands/extensions/list.js +7 -5
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/new.js +14 -20
- package/dist/src/commands/extensions/new.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.js +4 -3
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/update.js +18 -22
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/mcp/add.js +7 -4
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/mcp/add.test.d.ts +6 -0
- package/dist/src/commands/mcp/add.test.js +244 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -0
- package/dist/src/commands/mcp/list.js +11 -9
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.d.ts +6 -0
- package/dist/src/commands/mcp/list.test.js +118 -0
- package/dist/src/commands/mcp/list.test.js.map +1 -0
- package/dist/src/commands/mcp/remove.js +3 -2
- package/dist/src/commands/mcp/remove.js.map +1 -1
- package/dist/src/commands/mcp/remove.test.d.ts +6 -0
- package/dist/src/commands/mcp/remove.test.js +175 -0
- package/dist/src/commands/mcp/remove.test.js.map +1 -0
- package/dist/src/commands/mcp.test.d.ts +6 -0
- package/dist/src/commands/mcp.test.js +62 -0
- package/dist/src/commands/mcp.test.js.map +1 -0
- package/dist/src/config/auth.js +3 -1
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +4 -16
- package/dist/src/config/config.integration.test.d.ts +6 -0
- package/dist/src/config/config.integration.test.js +321 -0
- package/dist/src/config/config.integration.test.js.map +1 -0
- package/dist/src/config/config.js +80 -105
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.d.ts +6 -0
- package/dist/src/config/config.test.js +1949 -0
- package/dist/src/config/config.test.js.map +1 -0
- package/dist/src/config/extension.d.ts +19 -27
- package/dist/src/config/extension.js +159 -139
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extension.test.d.ts +6 -0
- package/dist/src/config/extension.test.js +1088 -0
- package/dist/src/config/extension.test.js.map +1 -0
- package/dist/src/config/extensions/extensionEnablement.d.ts +3 -3
- package/dist/src/config/extensions/extensionEnablement.js +5 -5
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.test.js +26 -22
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
- package/dist/src/config/extensions/github.d.ts +23 -7
- package/dist/src/config/extensions/github.js +139 -88
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +74 -22
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.d.ts +7 -0
- package/dist/src/config/extensions/github_fetch.js +34 -0
- package/dist/src/config/extensions/github_fetch.js.map +1 -0
- package/dist/src/config/extensions/update.d.ts +5 -4
- package/dist/src/config/extensions/update.js +23 -16
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +57 -57
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/extensions/variableSchema.d.ts +2 -0
- package/dist/src/config/extensions/variableSchema.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +2 -1
- package/dist/src/config/keyBindings.js +5 -3
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/policy.d.ts +3 -2
- package/dist/src/config/policy.js +33 -24
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/policy.test.js +60 -36
- package/dist/src/config/policy.test.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +0 -1
- package/dist/src/config/sandboxConfig.js +1 -3
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +10 -1
- package/dist/src/config/settings.js +24 -9
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.d.ts +6 -0
- package/dist/src/config/settings.test.js +1941 -0
- package/dist/src/config/settings.test.js.map +1 -0
- package/dist/src/config/settingsSchema.d.ts +124 -3
- package/dist/src/config/settingsSchema.js +125 -4
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +0 -1
- package/dist/src/config/trustedFolders.js +2 -3
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/gemini.js +46 -33
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +62 -19
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +105 -4
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.d.ts +6 -0
- package/dist/src/nonInteractiveCli.test.js +741 -0
- package/dist/src/nonInteractiveCli.test.js.map +1 -0
- package/dist/src/nonInteractiveCliCommands.js +2 -3
- package/dist/src/nonInteractiveCliCommands.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +3 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +37 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/CommandService.js +2 -1
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.d.ts +1 -1
- package/dist/src/services/FileCommandLoader.js +4 -4
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/services/FileCommandLoader.test.d.ts +6 -0
- package/dist/src/services/FileCommandLoader.test.js +971 -0
- package/dist/src/services/FileCommandLoader.test.js.map +1 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js +40 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +1 -0
- package/dist/src/services/prompt-processors/atFileProcessor.js +3 -2
- package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.js +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js +482 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -0
- package/dist/src/test-utils/render.d.ts +12 -4
- package/dist/src/test-utils/render.js +56 -2
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.js +1 -17
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/App.test.d.ts +6 -0
- package/dist/src/ui/App.test.js +110 -0
- package/dist/src/ui/App.test.js.map +1 -0
- package/dist/src/ui/AppContainer.js +69 -39
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +35 -9
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
- package/dist/src/ui/auth/AuthDialog.js +5 -3
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.js +2 -2
- package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +1 -1
- package/dist/src/ui/auth/useAuth.js +5 -3
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +1 -1
- package/dist/src/ui/commands/aboutCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/aboutCommand.test.js +130 -0
- package/dist/src/ui/commands/aboutCommand.test.js.map +1 -0
- package/dist/src/ui/commands/authCommand.js +1 -1
- package/dist/src/ui/commands/authCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/authCommand.test.js +30 -0
- package/dist/src/ui/commands/authCommand.test.js.map +1 -0
- package/dist/src/ui/commands/bugCommand.js +1 -1
- package/dist/src/ui/commands/bugCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/bugCommand.test.js +105 -0
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.js +8 -25
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/chatCommand.test.js +555 -0
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -0
- package/dist/src/ui/commands/clearCommand.js +1 -1
- package/dist/src/ui/commands/clearCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/clearCommand.test.js +76 -0
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -0
- package/dist/src/ui/commands/compressCommand.js +1 -1
- package/dist/src/ui/commands/compressCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/compressCommand.test.js +98 -0
- package/dist/src/ui/commands/compressCommand.test.js.map +1 -0
- package/dist/src/ui/commands/copyCommand.js +2 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/copyCommand.test.js +242 -0
- package/dist/src/ui/commands/copyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/corgiCommand.js +1 -1
- package/dist/src/ui/commands/corgiCommand.js.map +1 -1
- package/dist/src/ui/commands/corgiCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/corgiCommand.test.js +28 -0
- package/dist/src/ui/commands/corgiCommand.test.js.map +1 -0
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/directoryCommand.test.js +144 -0
- package/dist/src/ui/commands/directoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.js +1 -1
- package/dist/src/ui/commands/docsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/docsCommand.test.js +72 -0
- package/dist/src/ui/commands/docsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/editorCommand.js +1 -1
- package/dist/src/ui/commands/editorCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/editorCommand.test.js +27 -0
- package/dist/src/ui/commands/editorCommand.test.js.map +1 -0
- package/dist/src/ui/commands/extensionsCommand.js +30 -32
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/extensionsCommand.test.js +244 -0
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.js +1 -1
- package/dist/src/ui/commands/helpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/helpCommand.test.js +42 -0
- package/dist/src/ui/commands/helpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.js +6 -6
- package/dist/src/ui/commands/ideCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/ideCommand.test.js +205 -0
- package/dist/src/ui/commands/ideCommand.test.js.map +1 -0
- package/dist/src/ui/commands/initCommand.js +1 -1
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/initCommand.test.js +80 -0
- package/dist/src/ui/commands/initCommand.test.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +98 -88
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/mcpCommand.test.js +148 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/memoryCommand.js +27 -9
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/memoryCommand.test.js +266 -0
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/privacyCommand.js +1 -1
- package/dist/src/ui/commands/privacyCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/privacyCommand.test.js +32 -0
- package/dist/src/ui/commands/privacyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/profileCommand.d.ts +7 -0
- package/dist/src/ui/commands/profileCommand.js +23 -0
- package/dist/src/ui/commands/profileCommand.js.map +1 -0
- package/dist/src/ui/commands/quitCommand.js +1 -1
- package/dist/src/ui/commands/quitCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/quitCommand.test.js +50 -0
- package/dist/src/ui/commands/quitCommand.test.js.map +1 -0
- package/dist/src/ui/commands/restoreCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/restoreCommand.test.js +190 -0
- package/dist/src/ui/commands/restoreCommand.test.js.map +1 -0
- package/dist/src/ui/commands/settingsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/settingsCommand.test.js +30 -0
- package/dist/src/ui/commands/settingsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js +4 -3
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.js +3 -3
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/statsCommand.test.js +53 -0
- package/dist/src/ui/commands/statsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js +66 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js.map +1 -0
- package/dist/src/ui/commands/themeCommand.js +1 -1
- package/dist/src/ui/commands/themeCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/themeCommand.test.js +32 -0
- package/dist/src/ui/commands/themeCommand.test.js.map +1 -0
- package/dist/src/ui/commands/toolsCommand.js +1 -1
- package/dist/src/ui/commands/toolsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/toolsCommand.test.js +100 -0
- package/dist/src/ui/commands/toolsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +2 -0
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/vimCommand.js +1 -1
- package/dist/src/ui/components/AnsiOutput.d.ts +1 -0
- package/dist/src/ui/components/AnsiOutput.js +5 -5
- package/dist/src/ui/components/AnsiOutput.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +6 -6
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AsciiArt.d.ts +3 -3
- package/dist/src/ui/components/AsciiArt.js +3 -3
- package/dist/src/ui/components/CliSpinner.d.ts +10 -0
- package/dist/src/ui/components/CliSpinner.js +20 -0
- package/dist/src/ui/components/CliSpinner.js.map +1 -0
- package/dist/src/ui/components/Composer.js +8 -9
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +16 -1
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +4 -14
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +66 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/DebugProfiler.d.ts +18 -0
- package/dist/src/ui/components/DebugProfiler.js +158 -12
- package/dist/src/ui/components/DebugProfiler.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.test.d.ts +6 -0
- package/dist/src/ui/components/DebugProfiler.test.js +140 -0
- package/dist/src/ui/components/DebugProfiler.test.js.map +1 -0
- package/dist/src/ui/components/DialogManager.js +1 -5
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +9 -5
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +14 -14
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +7 -6
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.d.ts +6 -0
- package/dist/src/ui/components/Footer.test.js +231 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -0
- package/dist/src/ui/components/GeminiRespondingSpinner.js +2 -2
- package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
- package/dist/src/ui/components/Help.js +1 -1
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +11 -1
- package/dist/src/ui/components/InputPrompt.js +103 -29
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.d.ts +6 -0
- package/dist/src/ui/components/InputPrompt.test.js +1737 -0
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -0
- package/dist/src/ui/components/MainContent.js +1 -1
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js +285 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/Notifications.js +12 -4
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js +22 -18
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +10 -2
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.js +3 -3
- package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +4 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/RawMarkdownIndicator.d.ts +7 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js +8 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +74 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/SettingsDialog.js +12 -11
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +190 -77
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/StatsDisplay.test.js +351 -0
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.d.ts +4 -2
- package/dist/src/ui/components/ThemeDialog.js +3 -3
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +13 -0
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js +227 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/messages/CompressionMessage.js +3 -3
- package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js +35 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiMessageContent.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.d.ts +7 -0
- package/dist/src/ui/components/messages/Todo.js +69 -0
- package/dist/src/ui/components/messages/Todo.js.map +1 -0
- package/dist/src/ui/components/messages/Todo.test.d.ts +6 -0
- package/dist/src/ui/components/messages/Todo.test.js +102 -0
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +2 -2
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +9 -4
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +2 -2
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +30 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -0
- package/dist/src/ui/components/messages/UserShellMessage.js +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +33 -24
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +1 -1
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.d.ts +6 -0
- package/dist/src/ui/components/shared/text-buffer.test.js +1578 -0
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +6 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js +951 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -0
- package/dist/src/ui/components/views/ChatList.d.ts +12 -0
- package/dist/src/ui/components/views/ChatList.js +17 -0
- package/dist/src/ui/components/views/ChatList.js.map +1 -0
- package/dist/src/ui/components/views/ChatList.test.d.ts +6 -0
- package/dist/src/ui/components/views/ChatList.test.js +42 -0
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionsList.js +3 -4
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +2 -9
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.d.ts +0 -1
- package/dist/src/ui/components/views/McpStatus.js +4 -4
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +0 -5
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.test.js +4 -4
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
- package/dist/src/ui/contexts/KeypressContext.js +219 -53
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +536 -10
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/SessionContext.test.js +177 -0
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -0
- package/dist/src/ui/contexts/UIActionsContext.d.ts +5 -4
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +6 -4
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +2 -2
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +5 -7
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +19 -32
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +11 -7
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +6 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +779 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -0
- package/dist/src/ui/hooks/useAtCompletion.js +2 -2
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js +385 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +5 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js +375 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +6 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js +110 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -0
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +2 -1
- package/dist/src/ui/hooks/useExtensionUpdates.js +71 -19
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +28 -13
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFlickerDetector.d.ts +14 -0
- package/dist/src/ui/hooks/useFlickerDetector.js +37 -0
- package/dist/src/ui/hooks/useFlickerDetector.js.map +1 -0
- package/dist/src/ui/hooks/useFlickerDetector.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFlickerDetector.test.js +102 -0
- package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -0
- package/dist/src/ui/hooks/useFocus.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFocus.test.js +115 -0
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -0
- package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
- package/dist/src/ui/hooks/useFolderTrust.js +12 -3
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js +164 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +95 -56
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.d.ts +6 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js +1971 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -0
- package/dist/src/ui/hooks/useHistoryManager.js +3 -3
- package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.js +2 -1
- package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
- package/dist/src/ui/hooks/useKeypress.test.js +234 -0
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +5 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.d.ts +1 -0
- package/dist/src/ui/hooks/useMessageQueue.js +14 -0
- package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +121 -0
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js +157 -5
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +6 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js +155 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.js +2 -2
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.js +50 -23
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +24 -0
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.test.js +16 -10
- package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.js +4 -3
- package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +2 -1
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useTerminalSize.js +2 -3
- package/dist/src/ui/hooks/useTerminalSize.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -1
- package/dist/src/ui/hooks/useThemeCommand.js +6 -0
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +3 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.js +2 -1
- package/dist/src/ui/hooks/vim.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.d.ts +6 -0
- package/dist/src/ui/hooks/vim.test.js +1389 -0
- package/dist/src/ui/hooks/vim.test.js.map +1 -0
- package/dist/src/ui/keyMatchers.test.js +9 -3
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.d.ts +1 -3
- package/dist/src/ui/layouts/DefaultAppLayout.js +5 -2
- package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
- package/dist/src/ui/layouts/ScreenReaderAppLayout.js +4 -1
- package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -1
- package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
- package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
- package/dist/src/ui/state/extensions.d.ts +22 -3
- package/dist/src/ui/state/extensions.js +26 -4
- package/dist/src/ui/state/extensions.js.map +1 -1
- package/dist/src/ui/themes/color-utils.js +2 -1
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +8 -7
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.test.d.ts +6 -0
- package/dist/src/ui/themes/theme.test.js +85 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -0
- package/dist/src/ui/types.d.ts +11 -3
- package/dist/src/ui/types.js +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +4 -2
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
- package/dist/src/ui/utils/MarkdownDisplay.js +8 -1
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +20 -3
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +61 -6
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/computeStats.js +5 -2
- package/dist/src/ui/utils/computeStats.js.map +1 -1
- package/dist/src/ui/utils/computeStats.test.d.ts +6 -0
- package/dist/src/ui/utils/computeStats.test.js +262 -0
- package/dist/src/ui/utils/computeStats.test.js.map +1 -0
- package/dist/src/ui/utils/terminalSetup.js +3 -2
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.d.ts +7 -0
- package/dist/src/ui/utils/ui-sizing.js +23 -0
- package/dist/src/ui/utils/ui-sizing.js.map +1 -0
- package/dist/src/ui/utils/updateCheck.d.ts +2 -1
- package/dist/src/ui/utils/updateCheck.js +6 -2
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +25 -10
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/cleanup.test.d.ts +6 -0
- package/dist/src/utils/cleanup.test.js +49 -0
- package/dist/src/utils/cleanup.test.js.map +1 -0
- package/dist/src/utils/commentJson.js +95 -13
- package/dist/src/utils/commentJson.js.map +1 -1
- package/dist/src/utils/commentJson.test.js +161 -0
- package/dist/src/utils/commentJson.test.js.map +1 -1
- package/dist/src/utils/errors.d.ts +9 -3
- package/dist/src/utils/errors.js +87 -16
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +40 -46
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/events.d.ts +2 -1
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/gitUtils.js +3 -2
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +4 -1
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.d.ts +6 -0
- package/dist/src/utils/handleAutoUpdate.test.js +225 -0
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -0
- package/dist/src/utils/installationInfo.d.ts +1 -0
- package/dist/src/utils/installationInfo.js +4 -2
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +8 -4
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/readStdin.js +2 -1
- package/dist/src/utils/readStdin.js.map +1 -1
- package/dist/src/utils/sandbox-macos-permissive-open.sb +2 -0
- package/dist/src/utils/sandbox.js +20 -20
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/sessionCleanup.d.ts +22 -0
- package/dist/src/utils/sessionCleanup.integration.test.d.ts +6 -0
- package/dist/src/utils/sessionCleanup.integration.test.js +182 -0
- package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -0
- package/dist/src/utils/sessionCleanup.js +214 -0
- package/dist/src/utils/sessionCleanup.js.map +1 -0
- package/dist/src/utils/sessionCleanup.test.d.ts +6 -0
- package/dist/src/utils/sessionCleanup.test.js +1232 -0
- package/dist/src/utils/sessionCleanup.test.js.map +1 -0
- package/dist/src/utils/sessionUtils.d.ts +37 -0
- package/dist/src/utils/sessionUtils.js +71 -0
- package/dist/src/utils/sessionUtils.js.map +1 -0
- package/dist/src/utils/startupWarnings.test.d.ts +6 -0
- package/dist/src/utils/startupWarnings.test.js +61 -0
- package/dist/src/utils/startupWarnings.test.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.js +8 -9
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/acp.js +1 -2
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +176 -176
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -3
- package/dist/src/zed-integration/zedIntegration.js +12 -33
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -6
- package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
- package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -44
- package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
- package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -54
- package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { simpleGit } from 'simple-git';
|
|
7
7
|
import { getErrorMessage } from '../../utils/errors.js';
|
|
8
|
+
import { debugLogger, } from '@google/gemini-cli-core';
|
|
8
9
|
import { ExtensionUpdateState } from '../../ui/state/extensions.js';
|
|
9
10
|
import * as os from 'node:os';
|
|
10
11
|
import * as https from 'node:https';
|
|
@@ -13,9 +14,8 @@ import * as path from 'node:path';
|
|
|
13
14
|
import { EXTENSIONS_CONFIG_FILENAME, loadExtension } from '../extension.js';
|
|
14
15
|
import * as tar from 'tar';
|
|
15
16
|
import extract from 'extract-zip';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}
|
|
17
|
+
import { fetchJson, getGitHubToken } from './github_fetch.js';
|
|
18
|
+
import {} from './extensionEnablement.js';
|
|
19
19
|
/**
|
|
20
20
|
* Clones a Git repository to a specified local path.
|
|
21
21
|
* @param installMetadata The metadata for the extension to install.
|
|
@@ -59,119 +59,159 @@ export async function cloneFromGit(installMetadata, destination) {
|
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
|
-
export function
|
|
62
|
+
export function tryParseGithubUrl(source) {
|
|
63
|
+
// First step in normalizing a github ssh URI to the https form.
|
|
64
|
+
if (source.startsWith('git@github.com:')) {
|
|
65
|
+
source = source.replace('git@github.com:', '');
|
|
66
|
+
}
|
|
63
67
|
// Default to a github repo path, so `source` can be just an org/repo
|
|
64
68
|
const parsedUrl = URL.parse(source, 'https://github.com');
|
|
69
|
+
if (!parsedUrl) {
|
|
70
|
+
throw new Error(`Invalid repo URL: ${source}`);
|
|
71
|
+
}
|
|
72
|
+
if (parsedUrl?.host !== 'github.com') {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
65
75
|
// The pathname should be "/owner/repo".
|
|
66
|
-
const parts = parsedUrl?.pathname
|
|
67
|
-
|
|
76
|
+
const parts = parsedUrl?.pathname
|
|
77
|
+
.split('/')
|
|
78
|
+
// Remove the empty segments, fixes trailing and leading slashes
|
|
79
|
+
.filter((part) => part !== '');
|
|
80
|
+
if (parts?.length !== 2) {
|
|
68
81
|
throw new Error(`Invalid GitHub repository source: ${source}. Expected "owner/repo" or a github repo uri.`);
|
|
69
82
|
}
|
|
70
83
|
const owner = parts[0];
|
|
71
84
|
const repo = parts[1].replace('.git', '');
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
85
|
+
return {
|
|
86
|
+
owner,
|
|
87
|
+
repo,
|
|
88
|
+
};
|
|
76
89
|
}
|
|
77
|
-
async function fetchReleaseFromGithub(owner, repo, ref) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
90
|
+
export async function fetchReleaseFromGithub(owner, repo, ref, allowPreRelease) {
|
|
91
|
+
if (ref) {
|
|
92
|
+
return await fetchJson(`https://api.github.com/repos/${owner}/${repo}/releases/tags/${ref}`);
|
|
93
|
+
}
|
|
94
|
+
if (!allowPreRelease) {
|
|
95
|
+
// Grab the release that is tagged as the "latest", github does not allow
|
|
96
|
+
// this to be a pre-release so we can blindly grab it.
|
|
97
|
+
try {
|
|
98
|
+
return await fetchJson(`https://api.github.com/repos/${owner}/${repo}/releases/latest`);
|
|
99
|
+
}
|
|
100
|
+
catch (_) {
|
|
101
|
+
// This can fail if there is no release marked latest. In that case
|
|
102
|
+
// we want to just try the pre-release logic below.
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// If pre-releases are allowed, we just grab the most recent release.
|
|
106
|
+
const releases = await fetchJson(`https://api.github.com/repos/${owner}/${repo}/releases?per_page=1`);
|
|
107
|
+
if (releases.length === 0) {
|
|
108
|
+
return null;
|
|
109
|
+
}
|
|
110
|
+
return releases[0];
|
|
81
111
|
}
|
|
82
|
-
export async function checkForExtensionUpdate(extension,
|
|
83
|
-
setExtensionUpdateState(ExtensionUpdateState.CHECKING_FOR_UPDATES);
|
|
112
|
+
export async function checkForExtensionUpdate(extension, extensionEnablementManager, cwd = process.cwd()) {
|
|
84
113
|
const installMetadata = extension.installMetadata;
|
|
85
114
|
if (installMetadata?.type === 'local') {
|
|
86
115
|
const newExtension = loadExtension({
|
|
87
116
|
extensionDir: installMetadata.source,
|
|
88
117
|
workspaceDir: cwd,
|
|
118
|
+
extensionEnablementManager,
|
|
89
119
|
});
|
|
90
120
|
if (!newExtension) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return;
|
|
121
|
+
debugLogger.error(`Failed to check for update for local extension "${extension.name}". Could not load extension from source path: ${installMetadata.source}`);
|
|
122
|
+
return ExtensionUpdateState.ERROR;
|
|
94
123
|
}
|
|
95
|
-
if (newExtension.
|
|
96
|
-
|
|
97
|
-
return;
|
|
124
|
+
if (newExtension.version !== extension.version) {
|
|
125
|
+
return ExtensionUpdateState.UPDATE_AVAILABLE;
|
|
98
126
|
}
|
|
99
|
-
|
|
100
|
-
return;
|
|
127
|
+
return ExtensionUpdateState.UP_TO_DATE;
|
|
101
128
|
}
|
|
102
129
|
if (!installMetadata ||
|
|
103
130
|
(installMetadata.type !== 'git' &&
|
|
104
131
|
installMetadata.type !== 'github-release')) {
|
|
105
|
-
|
|
106
|
-
return;
|
|
132
|
+
return ExtensionUpdateState.NOT_UPDATABLE;
|
|
107
133
|
}
|
|
108
134
|
try {
|
|
109
135
|
if (installMetadata.type === 'git') {
|
|
110
136
|
const git = simpleGit(extension.path);
|
|
111
137
|
const remotes = await git.getRemotes(true);
|
|
112
138
|
if (remotes.length === 0) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return;
|
|
139
|
+
debugLogger.error('No git remotes found.');
|
|
140
|
+
return ExtensionUpdateState.ERROR;
|
|
116
141
|
}
|
|
117
142
|
const remoteUrl = remotes[0].refs.fetch;
|
|
118
143
|
if (!remoteUrl) {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return;
|
|
144
|
+
debugLogger.error(`No fetch URL found for git remote ${remotes[0].name}.`);
|
|
145
|
+
return ExtensionUpdateState.ERROR;
|
|
122
146
|
}
|
|
123
147
|
// Determine the ref to check on the remote.
|
|
124
148
|
const refToCheck = installMetadata.ref || 'HEAD';
|
|
125
149
|
const lsRemoteOutput = await git.listRemote([remoteUrl, refToCheck]);
|
|
126
150
|
if (typeof lsRemoteOutput !== 'string' || lsRemoteOutput.trim() === '') {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
return;
|
|
151
|
+
debugLogger.error(`Git ref ${refToCheck} not found.`);
|
|
152
|
+
return ExtensionUpdateState.ERROR;
|
|
130
153
|
}
|
|
131
154
|
const remoteHash = lsRemoteOutput.split('\t')[0];
|
|
132
155
|
const localHash = await git.revparse(['HEAD']);
|
|
133
156
|
if (!remoteHash) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
return;
|
|
157
|
+
debugLogger.error(`Unable to parse hash from git ls-remote output "${lsRemoteOutput}"`);
|
|
158
|
+
return ExtensionUpdateState.ERROR;
|
|
137
159
|
}
|
|
138
160
|
if (remoteHash === localHash) {
|
|
139
|
-
|
|
140
|
-
return;
|
|
161
|
+
return ExtensionUpdateState.UP_TO_DATE;
|
|
141
162
|
}
|
|
142
|
-
|
|
143
|
-
return;
|
|
163
|
+
return ExtensionUpdateState.UPDATE_AVAILABLE;
|
|
144
164
|
}
|
|
145
165
|
else {
|
|
146
166
|
const { source, releaseTag } = installMetadata;
|
|
147
167
|
if (!source) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
168
|
+
debugLogger.error(`No "source" provided for extension.`);
|
|
169
|
+
return ExtensionUpdateState.ERROR;
|
|
170
|
+
}
|
|
171
|
+
const repoInfo = tryParseGithubUrl(source);
|
|
172
|
+
if (!repoInfo) {
|
|
173
|
+
debugLogger.error(`Source is not a valid GitHub repository for release checks: ${source}`);
|
|
174
|
+
return ExtensionUpdateState.ERROR;
|
|
175
|
+
}
|
|
176
|
+
const { owner, repo } = repoInfo;
|
|
177
|
+
const releaseData = await fetchReleaseFromGithub(owner, repo, installMetadata.ref, installMetadata.allowPreRelease);
|
|
178
|
+
if (!releaseData) {
|
|
179
|
+
return ExtensionUpdateState.ERROR;
|
|
151
180
|
}
|
|
152
|
-
const { owner, repo } = parseGitHubRepoForReleases(source);
|
|
153
|
-
const releaseData = await fetchReleaseFromGithub(owner, repo, installMetadata.ref);
|
|
154
181
|
if (releaseData.tag_name !== releaseTag) {
|
|
155
|
-
|
|
156
|
-
return;
|
|
182
|
+
return ExtensionUpdateState.UPDATE_AVAILABLE;
|
|
157
183
|
}
|
|
158
|
-
|
|
159
|
-
return;
|
|
184
|
+
return ExtensionUpdateState.UP_TO_DATE;
|
|
160
185
|
}
|
|
161
186
|
}
|
|
162
187
|
catch (error) {
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return;
|
|
188
|
+
debugLogger.error(`Failed to check for updates for extension "${installMetadata.source}": ${getErrorMessage(error)}`);
|
|
189
|
+
return ExtensionUpdateState.ERROR;
|
|
166
190
|
}
|
|
167
191
|
}
|
|
168
|
-
export async function downloadFromGitHubRelease(installMetadata, destination) {
|
|
169
|
-
const {
|
|
170
|
-
const { owner, repo } =
|
|
192
|
+
export async function downloadFromGitHubRelease(installMetadata, destination, githubRepoInfo) {
|
|
193
|
+
const { ref, allowPreRelease: preRelease } = installMetadata;
|
|
194
|
+
const { owner, repo } = githubRepoInfo;
|
|
195
|
+
let releaseData = null;
|
|
171
196
|
try {
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
197
|
+
try {
|
|
198
|
+
releaseData = await fetchReleaseFromGithub(owner, repo, ref, preRelease);
|
|
199
|
+
if (!releaseData) {
|
|
200
|
+
return {
|
|
201
|
+
failureReason: 'no release data',
|
|
202
|
+
success: false,
|
|
203
|
+
type: 'github-release',
|
|
204
|
+
errorMessage: `No release data found for ${owner}/${repo} at tag ${ref}`,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
return {
|
|
210
|
+
failureReason: 'failed to fetch release data',
|
|
211
|
+
success: false,
|
|
212
|
+
type: 'github-release',
|
|
213
|
+
errorMessage: `Failed to fetch release data for ${owner}/${repo} at tag ${ref}: ${getErrorMessage(error)}`,
|
|
214
|
+
};
|
|
175
215
|
}
|
|
176
216
|
const asset = findReleaseAsset(releaseData.assets);
|
|
177
217
|
let archiveUrl;
|
|
@@ -191,7 +231,13 @@ export async function downloadFromGitHubRelease(installMetadata, destination) {
|
|
|
191
231
|
}
|
|
192
232
|
}
|
|
193
233
|
if (!archiveUrl) {
|
|
194
|
-
|
|
234
|
+
return {
|
|
235
|
+
failureReason: 'no release asset found',
|
|
236
|
+
success: false,
|
|
237
|
+
type: 'github-release',
|
|
238
|
+
tagName: releaseData.tag_name,
|
|
239
|
+
errorMessage: `No assets found for release with tag ${releaseData.tag_name}`,
|
|
240
|
+
};
|
|
195
241
|
}
|
|
196
242
|
let downloadedAssetPath = path.join(destination, path.basename(new URL(archiveUrl).pathname));
|
|
197
243
|
if (isTar && !downloadedAssetPath.endsWith('.tar.gz')) {
|
|
@@ -200,8 +246,30 @@ export async function downloadFromGitHubRelease(installMetadata, destination) {
|
|
|
200
246
|
else if (isZip && !downloadedAssetPath.endsWith('.zip')) {
|
|
201
247
|
downloadedAssetPath += '.zip';
|
|
202
248
|
}
|
|
203
|
-
|
|
204
|
-
|
|
249
|
+
try {
|
|
250
|
+
await downloadFile(archiveUrl, downloadedAssetPath);
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
return {
|
|
254
|
+
failureReason: 'failed to download asset',
|
|
255
|
+
success: false,
|
|
256
|
+
type: 'github-release',
|
|
257
|
+
tagName: releaseData.tag_name,
|
|
258
|
+
errorMessage: `Failed to download asset from ${archiveUrl}: ${getErrorMessage(error)}`,
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
try {
|
|
262
|
+
await extractFile(downloadedAssetPath, destination);
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
return {
|
|
266
|
+
failureReason: 'failed to extract asset',
|
|
267
|
+
success: false,
|
|
268
|
+
type: 'github-release',
|
|
269
|
+
tagName: releaseData.tag_name,
|
|
270
|
+
errorMessage: `Failed to extract asset from ${downloadedAssetPath}: ${getErrorMessage(error)}`,
|
|
271
|
+
};
|
|
272
|
+
}
|
|
205
273
|
// For regular github releases, the repository is put inside of a top level
|
|
206
274
|
// directory. In this case we should see exactly two file in the destination
|
|
207
275
|
// dir, the archive and the directory. If we see that, validate that the
|
|
@@ -226,10 +294,17 @@ export async function downloadFromGitHubRelease(installMetadata, destination) {
|
|
|
226
294
|
return {
|
|
227
295
|
tagName: releaseData.tag_name,
|
|
228
296
|
type: 'github-release',
|
|
297
|
+
success: true,
|
|
229
298
|
};
|
|
230
299
|
}
|
|
231
300
|
catch (error) {
|
|
232
|
-
|
|
301
|
+
return {
|
|
302
|
+
failureReason: 'unknown',
|
|
303
|
+
success: false,
|
|
304
|
+
type: 'github-release',
|
|
305
|
+
tagName: releaseData?.tag_name,
|
|
306
|
+
errorMessage: `Failed to download release from ${installMetadata.source}: ${getErrorMessage(error)}`,
|
|
307
|
+
};
|
|
233
308
|
}
|
|
234
309
|
}
|
|
235
310
|
export function findReleaseAsset(assets) {
|
|
@@ -256,30 +331,6 @@ export function findReleaseAsset(assets) {
|
|
|
256
331
|
}
|
|
257
332
|
return undefined;
|
|
258
333
|
}
|
|
259
|
-
async function fetchJson(url) {
|
|
260
|
-
const headers = {
|
|
261
|
-
'User-Agent': 'gemini-cli',
|
|
262
|
-
};
|
|
263
|
-
const token = getGitHubToken();
|
|
264
|
-
if (token) {
|
|
265
|
-
headers.Authorization = `token ${token}`;
|
|
266
|
-
}
|
|
267
|
-
return new Promise((resolve, reject) => {
|
|
268
|
-
https
|
|
269
|
-
.get(url, { headers }, (res) => {
|
|
270
|
-
if (res.statusCode !== 200) {
|
|
271
|
-
return reject(new Error(`Request failed with status code ${res.statusCode}`));
|
|
272
|
-
}
|
|
273
|
-
const chunks = [];
|
|
274
|
-
res.on('data', (chunk) => chunks.push(chunk));
|
|
275
|
-
res.on('end', () => {
|
|
276
|
-
const data = Buffer.concat(chunks).toString();
|
|
277
|
-
resolve(JSON.parse(data));
|
|
278
|
-
});
|
|
279
|
-
})
|
|
280
|
-
.on('error', reject);
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
334
|
async function downloadFile(url, dest) {
|
|
284
335
|
const headers = {
|
|
285
336
|
'User-agent': 'gemini-cli',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/config/extensions/github.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"github.js","sourceRoot":"","sources":["../../../../src/config/extensions/github.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
7
|
-
import { checkForExtensionUpdate, cloneFromGit, extractFile, findReleaseAsset,
|
|
7
|
+
import { checkForExtensionUpdate, cloneFromGit, extractFile, findReleaseAsset, fetchReleaseFromGithub, tryParseGithubUrl, } from './github.js';
|
|
8
8
|
import { simpleGit } from 'simple-git';
|
|
9
9
|
import { ExtensionUpdateState } from '../../ui/state/extensions.js';
|
|
10
10
|
import * as os from 'node:os';
|
|
@@ -13,6 +13,7 @@ import * as fsSync from 'node:fs';
|
|
|
13
13
|
import * as path from 'node:path';
|
|
14
14
|
import * as tar from 'tar';
|
|
15
15
|
import * as archiver from 'archiver';
|
|
16
|
+
import { ExtensionEnablementManager } from './extensionEnablement.js';
|
|
16
17
|
const mockPlatform = vi.hoisted(() => vi.fn());
|
|
17
18
|
const mockArch = vi.hoisted(() => vi.fn());
|
|
18
19
|
vi.mock('node:os', async (importOriginal) => {
|
|
@@ -24,6 +25,14 @@ vi.mock('node:os', async (importOriginal) => {
|
|
|
24
25
|
};
|
|
25
26
|
});
|
|
26
27
|
vi.mock('simple-git');
|
|
28
|
+
const fetchJsonMock = vi.hoisted(() => vi.fn());
|
|
29
|
+
vi.mock('./github_fetch.js', async (importOriginal) => {
|
|
30
|
+
const actual = await importOriginal();
|
|
31
|
+
return {
|
|
32
|
+
...actual,
|
|
33
|
+
fetchJson: fetchJsonMock,
|
|
34
|
+
};
|
|
35
|
+
});
|
|
27
36
|
describe('git extension helpers', () => {
|
|
28
37
|
afterEach(() => {
|
|
29
38
|
vi.restoreAllMocks();
|
|
@@ -100,6 +109,7 @@ describe('git extension helpers', () => {
|
|
|
100
109
|
it('should return NOT_UPDATABLE for non-git extensions', async () => {
|
|
101
110
|
const extension = {
|
|
102
111
|
name: 'test',
|
|
112
|
+
id: 'test-id',
|
|
103
113
|
path: '/ext',
|
|
104
114
|
version: '1.0.0',
|
|
105
115
|
isActive: true,
|
|
@@ -107,14 +117,15 @@ describe('git extension helpers', () => {
|
|
|
107
117
|
type: 'link',
|
|
108
118
|
source: '',
|
|
109
119
|
},
|
|
120
|
+
contextFiles: [],
|
|
110
121
|
};
|
|
111
|
-
|
|
112
|
-
await checkForExtensionUpdate(extension, (newState) => (result = newState));
|
|
122
|
+
const result = await checkForExtensionUpdate(extension, new ExtensionEnablementManager());
|
|
113
123
|
expect(result).toBe(ExtensionUpdateState.NOT_UPDATABLE);
|
|
114
124
|
});
|
|
115
125
|
it('should return ERROR if no remotes found', async () => {
|
|
116
126
|
const extension = {
|
|
117
127
|
name: 'test',
|
|
128
|
+
id: 'test-id',
|
|
118
129
|
path: '/ext',
|
|
119
130
|
version: '1.0.0',
|
|
120
131
|
isActive: true,
|
|
@@ -122,15 +133,16 @@ describe('git extension helpers', () => {
|
|
|
122
133
|
type: 'git',
|
|
123
134
|
source: '',
|
|
124
135
|
},
|
|
136
|
+
contextFiles: [],
|
|
125
137
|
};
|
|
126
138
|
mockGit.getRemotes.mockResolvedValue([]);
|
|
127
|
-
|
|
128
|
-
await checkForExtensionUpdate(extension, (newState) => (result = newState));
|
|
139
|
+
const result = await checkForExtensionUpdate(extension, new ExtensionEnablementManager());
|
|
129
140
|
expect(result).toBe(ExtensionUpdateState.ERROR);
|
|
130
141
|
});
|
|
131
142
|
it('should return UPDATE_AVAILABLE when remote hash is different', async () => {
|
|
132
143
|
const extension = {
|
|
133
144
|
name: 'test',
|
|
145
|
+
id: 'test-id',
|
|
134
146
|
path: '/ext',
|
|
135
147
|
version: '1.0.0',
|
|
136
148
|
isActive: true,
|
|
@@ -138,19 +150,20 @@ describe('git extension helpers', () => {
|
|
|
138
150
|
type: 'git',
|
|
139
151
|
source: 'my/ext',
|
|
140
152
|
},
|
|
153
|
+
contextFiles: [],
|
|
141
154
|
};
|
|
142
155
|
mockGit.getRemotes.mockResolvedValue([
|
|
143
156
|
{ name: 'origin', refs: { fetch: 'http://my-repo.com' } },
|
|
144
157
|
]);
|
|
145
158
|
mockGit.listRemote.mockResolvedValue('remote-hash\tHEAD');
|
|
146
159
|
mockGit.revparse.mockResolvedValue('local-hash');
|
|
147
|
-
|
|
148
|
-
await checkForExtensionUpdate(extension, (newState) => (result = newState));
|
|
160
|
+
const result = await checkForExtensionUpdate(extension, new ExtensionEnablementManager());
|
|
149
161
|
expect(result).toBe(ExtensionUpdateState.UPDATE_AVAILABLE);
|
|
150
162
|
});
|
|
151
163
|
it('should return UP_TO_DATE when remote and local hashes are the same', async () => {
|
|
152
164
|
const extension = {
|
|
153
165
|
name: 'test',
|
|
166
|
+
id: 'test-id',
|
|
154
167
|
path: '/ext',
|
|
155
168
|
version: '1.0.0',
|
|
156
169
|
isActive: true,
|
|
@@ -158,19 +171,20 @@ describe('git extension helpers', () => {
|
|
|
158
171
|
type: 'git',
|
|
159
172
|
source: 'my/ext',
|
|
160
173
|
},
|
|
174
|
+
contextFiles: [],
|
|
161
175
|
};
|
|
162
176
|
mockGit.getRemotes.mockResolvedValue([
|
|
163
177
|
{ name: 'origin', refs: { fetch: 'http://my-repo.com' } },
|
|
164
178
|
]);
|
|
165
179
|
mockGit.listRemote.mockResolvedValue('same-hash\tHEAD');
|
|
166
180
|
mockGit.revparse.mockResolvedValue('same-hash');
|
|
167
|
-
|
|
168
|
-
await checkForExtensionUpdate(extension, (newState) => (result = newState));
|
|
181
|
+
const result = await checkForExtensionUpdate(extension, new ExtensionEnablementManager());
|
|
169
182
|
expect(result).toBe(ExtensionUpdateState.UP_TO_DATE);
|
|
170
183
|
});
|
|
171
184
|
it('should return ERROR on git error', async () => {
|
|
172
185
|
const extension = {
|
|
173
186
|
name: 'test',
|
|
187
|
+
id: 'test-id',
|
|
174
188
|
path: '/ext',
|
|
175
189
|
version: '1.0.0',
|
|
176
190
|
isActive: true,
|
|
@@ -178,13 +192,43 @@ describe('git extension helpers', () => {
|
|
|
178
192
|
type: 'git',
|
|
179
193
|
source: 'my/ext',
|
|
180
194
|
},
|
|
195
|
+
contextFiles: [],
|
|
181
196
|
};
|
|
182
197
|
mockGit.getRemotes.mockRejectedValue(new Error('git error'));
|
|
183
|
-
|
|
184
|
-
await checkForExtensionUpdate(extension, (newState) => (result = newState));
|
|
198
|
+
const result = await checkForExtensionUpdate(extension, new ExtensionEnablementManager());
|
|
185
199
|
expect(result).toBe(ExtensionUpdateState.ERROR);
|
|
186
200
|
});
|
|
187
201
|
});
|
|
202
|
+
describe('fetchReleaseFromGithub', () => {
|
|
203
|
+
it('should fetch the latest release if allowPreRelease is true', async () => {
|
|
204
|
+
const releases = [{ tag_name: 'v1.0.0-alpha' }, { tag_name: 'v0.9.0' }];
|
|
205
|
+
fetchJsonMock.mockResolvedValueOnce(releases);
|
|
206
|
+
const result = await fetchReleaseFromGithub('owner', 'repo', undefined, true);
|
|
207
|
+
expect(fetchJsonMock).toHaveBeenCalledWith('https://api.github.com/repos/owner/repo/releases?per_page=1');
|
|
208
|
+
expect(result).toEqual(releases[0]);
|
|
209
|
+
});
|
|
210
|
+
it('should fetch the latest release if allowPreRelease is false', async () => {
|
|
211
|
+
const release = { tag_name: 'v0.9.0' };
|
|
212
|
+
fetchJsonMock.mockResolvedValueOnce(release);
|
|
213
|
+
const result = await fetchReleaseFromGithub('owner', 'repo', undefined, false);
|
|
214
|
+
expect(fetchJsonMock).toHaveBeenCalledWith('https://api.github.com/repos/owner/repo/releases/latest');
|
|
215
|
+
expect(result).toEqual(release);
|
|
216
|
+
});
|
|
217
|
+
it('should fetch a release by tag if ref is provided', async () => {
|
|
218
|
+
const release = { tag_name: 'v0.9.0' };
|
|
219
|
+
fetchJsonMock.mockResolvedValueOnce(release);
|
|
220
|
+
const result = await fetchReleaseFromGithub('owner', 'repo', 'v0.9.0');
|
|
221
|
+
expect(fetchJsonMock).toHaveBeenCalledWith('https://api.github.com/repos/owner/repo/releases/tags/v0.9.0');
|
|
222
|
+
expect(result).toEqual(release);
|
|
223
|
+
});
|
|
224
|
+
it('should fetch latest stable release if allowPreRelease is undefined', async () => {
|
|
225
|
+
const release = { tag_name: 'v0.9.0' };
|
|
226
|
+
fetchJsonMock.mockResolvedValueOnce(release);
|
|
227
|
+
const result = await fetchReleaseFromGithub('owner', 'repo');
|
|
228
|
+
expect(fetchJsonMock).toHaveBeenCalledWith('https://api.github.com/repos/owner/repo/releases/latest');
|
|
229
|
+
expect(result).toEqual(release);
|
|
230
|
+
});
|
|
231
|
+
});
|
|
188
232
|
describe('findReleaseAsset', () => {
|
|
189
233
|
const assets = [
|
|
190
234
|
{ name: 'darwin.arm64.extension.tar.gz', browser_download_url: 'url1' },
|
|
@@ -234,43 +278,51 @@ describe('git extension helpers', () => {
|
|
|
234
278
|
describe('parseGitHubRepoForReleases', () => {
|
|
235
279
|
it('should parse owner and repo from a full GitHub URL', () => {
|
|
236
280
|
const source = 'https://github.com/owner/repo.git';
|
|
237
|
-
const { owner, repo } =
|
|
281
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
238
282
|
expect(owner).toBe('owner');
|
|
239
283
|
expect(repo).toBe('repo');
|
|
240
284
|
});
|
|
241
|
-
it('should parse owner and repo from a full GitHub
|
|
285
|
+
it('should parse owner and repo from a full GitHub URL without .git', () => {
|
|
242
286
|
const source = 'https://github.com/owner/repo';
|
|
243
|
-
const { owner, repo } =
|
|
287
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
244
288
|
expect(owner).toBe('owner');
|
|
245
289
|
expect(repo).toBe('repo');
|
|
246
290
|
});
|
|
247
|
-
it('should
|
|
291
|
+
it('should parse owner and repo from a full GitHub URL with a trailing slash', () => {
|
|
292
|
+
const source = 'https://github.com/owner/repo/';
|
|
293
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
294
|
+
expect(owner).toBe('owner');
|
|
295
|
+
expect(repo).toBe('repo');
|
|
296
|
+
});
|
|
297
|
+
it('should parse owner and repo from a GitHub SSH URL', () => {
|
|
248
298
|
const source = 'git@github.com:owner/repo.git';
|
|
249
|
-
|
|
299
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
300
|
+
expect(owner).toBe('owner');
|
|
301
|
+
expect(repo).toBe('repo');
|
|
250
302
|
});
|
|
251
|
-
it('should
|
|
303
|
+
it('should return null on a non-GitHub URL', () => {
|
|
252
304
|
const source = 'https://example.com/owner/repo.git';
|
|
253
|
-
expect((
|
|
305
|
+
expect(tryParseGithubUrl(source)).toBe(null);
|
|
254
306
|
});
|
|
255
307
|
it('should parse owner and repo from a shorthand string', () => {
|
|
256
308
|
const source = 'owner/repo';
|
|
257
|
-
const { owner, repo } =
|
|
309
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
258
310
|
expect(owner).toBe('owner');
|
|
259
311
|
expect(repo).toBe('repo');
|
|
260
312
|
});
|
|
261
313
|
it('should handle .git suffix in repo name', () => {
|
|
262
314
|
const source = 'owner/repo.git';
|
|
263
|
-
const { owner, repo } =
|
|
315
|
+
const { owner, repo } = tryParseGithubUrl(source);
|
|
264
316
|
expect(owner).toBe('owner');
|
|
265
317
|
expect(repo).toBe('repo');
|
|
266
318
|
});
|
|
267
319
|
it('should throw error for invalid source format', () => {
|
|
268
320
|
const source = 'invalid-format';
|
|
269
|
-
expect(() =>
|
|
321
|
+
expect(() => tryParseGithubUrl(source)).toThrow('Invalid GitHub repository source: invalid-format. Expected "owner/repo" or a github repo uri.');
|
|
270
322
|
});
|
|
271
323
|
it('should throw error for source with too many parts', () => {
|
|
272
324
|
const source = 'https://github.com/owner/repo/extra';
|
|
273
|
-
expect(() =>
|
|
325
|
+
expect(() => tryParseGithubUrl(source)).toThrow('Invalid GitHub repository source: https://github.com/owner/repo/extra. Expected "owner/repo" or a github repo uri.');
|
|
274
326
|
});
|
|
275
327
|
});
|
|
276
328
|
describe('extractFile', () => {
|