From 24159559421551181156e16cb7c02030ccd3d52e Mon Sep 17 00:00:00 2001 From: Swapnil Date: Thu, 17 Oct 2024 21:35:37 +0530 Subject: [PATCH] Adding a provider and view for remaining webview features --- assets/logo.png | Bin 229246 -> 0 bytes extensions/vscode/api_history/history.json | 57 -- extensions/vscode/api_history/history.msgpack | 1 - extensions/vscode/src/SidebarProvider.ts | 780 ++++++++++++------ .../apiManagement/apiManagementProvider.ts | 34 + .../src/apiManagement/apiManagementView.ts | 96 +++ .../vscode/src/chatRepo/chatRepoProvider.ts | 38 + .../vscode/src/chatRepo/chatRepoView.ts | 74 ++ .../docManagement/docManagementProvider.ts | 52 ++ .../src/docManagement/docManagementView.ts | 87 ++ extensions/vscode/src/extension.ts | 161 +++- .../index.html | 0 12 files changed, 1047 insertions(+), 333 deletions(-) delete mode 100644 assets/logo.png delete mode 100644 extensions/vscode/api_history/history.json delete mode 100644 extensions/vscode/api_history/history.msgpack create mode 100644 extensions/vscode/src/apiManagement/apiManagementProvider.ts create mode 100644 extensions/vscode/src/apiManagement/apiManagementView.ts create mode 100644 extensions/vscode/src/chatRepo/chatRepoProvider.ts create mode 100644 extensions/vscode/src/chatRepo/chatRepoView.ts create mode 100644 extensions/vscode/src/docManagement/docManagementProvider.ts create mode 100644 extensions/vscode/src/docManagement/docManagementView.ts rename extensions/vscode/webview/{documentation => docManagement}/index.html (100%) diff --git a/assets/logo.png b/assets/logo.png deleted file mode 100644 index c6943f62d1d99d841fd259e418f593dbea99c093..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 229246 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

t2GA6a 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 diff --git a/extensions/vscode/api_history/history.json b/extensions/vscode/api_history/history.json deleted file mode 100644 index 46685e3f..00000000 --- a/extensions/vscode/api_history/history.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "method": "GET", - "name": "https://jsonplaceholder.typicode.com/posts", - "lastUsed": "2024-10-16T16:18:51.817Z" - }, - { - "method": "GET", - "name": "http://localhost:8000/github-webhook", - "lastUsed": "2024-10-16T12:08:14.848Z" - }, - { - "method": "PATCH", - "name": "http://localhost:8000/github-webhook", - "lastUsed": "2024-10-16T12:03:42.401Z" - }, - { - "method": "POST", - "name": "http://localhost:8000/github-webhook", - "lastUsed": "2024-10-16T12:01:18.314Z" - }, - { - "name": "GET https://jsonplaceholder.typicode.com/posts", - "method": "GET", - "url": "https://jsonplaceholder.typicode.com/posts", - "headers": {}, - "body": "" - }, - { - "name": "GET https://jsonplaceholder.typicode.com/posts", - "method": "GET", - "url": "https://jsonplaceholder.typicode.com/posts", - "headers": {}, - "body": "" - }, - { - "name": "GET https://jsonplaceholder.typicode.com/posts", - "method": "GET", - "url": "https://jsonplaceholder.typicode.com/posts", - "headers": {}, - "body": "" - }, - { - "name": "GET https://jsonplaceholder.typicode.com/posts", - "method": "GET", - "url": "https://jsonplaceholder.typicode.com/posts", - "headers": {}, - "body": "" - }, - { - "name": "GET https://jsonplaceholder.typicode.com/posts", - "method": "GET", - "url": "https://jsonplaceholder.typicode.com/posts", - "headers": {}, - "body": "" - } -] \ No newline at end of file diff --git a/extensions/vscode/api_history/history.msgpack b/extensions/vscode/api_history/history.msgpack deleted file mode 100644 index 51f044fb..00000000 --- a/extensions/vscode/api_history/history.msgpack +++ /dev/null @@ -1 +0,0 @@ -™ƒŚmethodŁGET¤nameŮ*https://jsonplaceholder.typicode.com/posts¨lastUsed¸2024-10-16T16:18:51.817ZƒŚmethodŁGET¤nameŮ$http://localhost:8000/github-webhook¨lastUsed¸2024-10-16T12:08:14.848ZƒŚmethodĽPATCH¤nameŮ$http://localhost:8000/github-webhook¨lastUsed¸2024-10-16T12:03:42.401ZƒŚmethod¤POST¤nameŮ$http://localhost:8000/github-webhook¨lastUsed¸2024-10-16T12:01:18.314Z…¤nameŮ.GET https://jsonplaceholder.typicode.com/postsŚmethodŁGETŁurlŮ*https://jsonplaceholder.typicode.com/posts§headers€¤body …¤nameŮ.GET https://jsonplaceholder.typicode.com/postsŚmethodŁGETŁurlŮ*https://jsonplaceholder.typicode.com/posts§headers€¤body …¤nameŮ.GET https://jsonplaceholder.typicode.com/postsŚmethodŁGETŁurlŮ*https://jsonplaceholder.typicode.com/posts§headers€¤body …¤nameŮ.GET https://jsonplaceholder.typicode.com/postsŚmethodŁGETŁurlŮ*https://jsonplaceholder.typicode.com/posts§headers€¤body …¤nameŮ.GET https://jsonplaceholder.typicode.com/postsŚmethodŁGETŁurlŮ*https://jsonplaceholder.typicode.com/posts§headers€¤body  \ No newline at end of file diff --git a/extensions/vscode/src/SidebarProvider.ts b/extensions/vscode/src/SidebarProvider.ts index b44db1cd..21050728 100644 --- a/extensions/vscode/src/SidebarProvider.ts +++ b/extensions/vscode/src/SidebarProvider.ts @@ -1,281 +1,591 @@ +// import * as vscode from 'vscode'; +// import { ApiRequestProvider } from './apiRequest/apiRequestProvider'; +// import { log } from './extension'; +// import { ApiEndpoint } from './types'; +// import { TestManagementProvider } from './testManagement/testManagementProvider'; + +// export class SidebarProvider implements vscode.WebviewViewProvider { +// _view?: vscode.WebviewView; +// _doc?: vscode.TextDocument; +// private apiRequestProvider: ApiRequestProvider; +// private apiHistory: ApiEndpoint[] = []; +// private showHistory: boolean = false; +// private context: vscode.ExtensionContext; +// private testManagementProvider: TestManagementProvider; + + +// constructor(private readonly _extensionUri: vscode.Uri, context: vscode.ExtensionContext) { +// this.apiRequestProvider = new ApiRequestProvider(context); +// this.context = context; +// this.loadApiHistory(); +// this.testManagementProvider = new TestManagementProvider(context); + + + +// // Register command to update API history +// context.subscriptions.push( +// vscode.commands.registerCommand('vscode-api-client.updateApiHistory', (endpoint: ApiEndpoint) => { +// this.updateApiHistory(endpoint); +// }) +// ); +// } +// private loadApiHistory() { +// try { +// const history = this.context.globalState.get('apiHistory', []); +// this.apiHistory = history; +// } catch (error) { +// console.error('Error loading API history:', error); +// this.apiHistory = []; +// } +// } + +// private saveApiHistory() { +// try { +// this.context.globalState.update('apiHistory', this.apiHistory); +// } catch (error) { +// console.error('Error saving API history:', error); +// vscode.window.showErrorMessage('Failed to save API history. Please try again.'); +// } +// } + +// public refresh() { +// if (this._view) { +// console.log('Refreshing webview content'); +// this._view.webview.html = this._getHtmlForWebview(this._view.webview); +// } +// } + +// public resolveWebviewView(webviewView: vscode.WebviewView) { +// this._view = webviewView; +// webviewView.webview.options = { +// enableScripts: true, +// localResourceRoots: [this._extensionUri], +// }; + +// webviewView.webview.html = this._getHtmlForWebview(webviewView.webview); + +// webviewView.webview.onDidReceiveMessage(async (data) => { +// log("Received message on sidebar"); +// switch (data.type) { +// case "onInfo": { +// if (!data.value) { +// return; +// } +// vscode.window.showInformationMessage(data.value); +// break; +// } +// case "onError": { +// if (!data.value) { +// return; +// } +// vscode.window.showErrorMessage(data.value); +// break; +// } +// case "openApiManagement": { +// if (!data.value) { +// return; +// } +// this.openWebview(data.value); +// break; +// } +// case "backButton": { +// this.showHistory = false; +// this.refresh(); +// break; +// } +// case "newRequest": { +// this.openApiRequestView(); +// break; +// } +// case "deleteEndpoint": { +// this.deleteEndpoint(data.name, data.method); +// break; +// } +// } +// }); +// } + +// public revive(panel: vscode.WebviewView) { +// this._view = panel; +// } + +// private _getHtmlForWebview(webview: vscode.Webview) { +// log("HTML Web View Loaded"); + +// const scriptUri = webview.asWebviewUri( +// vscode.Uri.joinPath(this._extensionUri, "out", "sidebar.js") +// ); + +// const styleSidebarUri = webview.asWebviewUri( +// vscode.Uri.joinPath(this._extensionUri, "media", "sidebar.css") +// ); + + +// const nonce = getNonce(); + +// const csp = ` +// default-src 'none'; +// script-src ${webview.cspSource} 'nonce-${nonce}'; +// style-src ${webview.cspSource} 'unsafe-inline'; +// img-src ${webview.cspSource} https:; +// font-src ${webview.cspSource}; +// `; + +// return ` +// +// +// +// +// +// +// +// +// ${this.showHistory +// ? `${this.getHistoryHtml()}` +// : `

+// +// +// +// +// +//
` +// } +// +// +// `; +// } + +// private getHistoryHtml() { +// return ` +// +// `; +// } + +// private async openWebview(webviewType: string) { +// if (webviewType === 'apiManagement') { +// if (this.apiRequestProvider) { +// console.log("Opening API Request View"); +// this.apiRequestProvider.openApiRequestView(); +// this.showHistory = true; +// this.refresh(); +// } else { +// console.error("apiRequestProvider is not initialized"); +// vscode.window.showErrorMessage("API Management is not available"); +// } +// } else if (webviewType === 'testManagement') { +// if (this.testManagementProvider) { +// console.log("Opening Test Management View"); +// await this.testManagementProvider.openTestManagementView(); +// } else { +// console.error("testManagementProvider is not initialized"); +// vscode.window.showErrorMessage("Test Management is not available"); +// } +// } else { +// const panel = vscode.window.createWebviewPanel( +// webviewType, +// this.getWebviewTitle(webviewType), +// vscode.ViewColumn.One, +// { +// enableScripts: true, +// localResourceRoots: [this._extensionUri], +// } +// ); + +// panel.webview.html = await this.getWebviewContent(webviewType); +// } +// } + +// private openApiRequestView() { +// if (this.apiRequestProvider) { +// console.log("Opening API Request View"); +// this.apiRequestProvider.openApiRequestView(); +// } else { +// console.error("apiRequestProvider is not initialized"); +// vscode.window.showErrorMessage("API Request is not available"); +// } +// } + +// private getWebviewTitle(webviewType: string): string { +// switch (webviewType) { +// case 'apiManagement': +// return 'API Management'; +// case 'apiRequest': +// return 'API Request'; +// case 'chatRepo': +// return 'Chat Repo'; +// case 'documentation': +// return 'Documentation'; +// case 'codeReview': +// return 'Code Review'; +// case 'testManagement': +// return 'Test Case'; +// default: +// return 'Webview'; +// } +// } + +// private async getWebviewContent(webviewType: string): Promise { +// const filePath = vscode.Uri.joinPath(this._extensionUri, webviewType, 'index.html'); +// const fileContent = await vscode.workspace.fs.readFile(filePath); +// return fileContent.toString(); +// } +// private updateApiHistory(endpoint: ApiEndpoint) { +// const existingIndex = this.apiHistory.findIndex( +// e => e.name === endpoint.name && e.method === endpoint.method +// ); + +// if (existingIndex !== -1) { +// this.apiHistory[existingIndex].lastUsed = endpoint.lastUsed; +// const [updatedEndpoint] = this.apiHistory.splice(existingIndex, 1); +// this.apiHistory.unshift(updatedEndpoint); +// } else { +// this.apiHistory.unshift(endpoint); +// this.apiHistory = this.apiHistory.slice(0, 10); +// } + +// this.saveApiHistory(); +// this.refresh(); +// } + +// private deleteEndpoint(name: string, method: string) { +// this.apiHistory = this.apiHistory.filter( +// endpoint => !(endpoint.name === name && endpoint.method === method) +// ); +// this.saveApiHistory(); +// this.refresh(); +// } +// } +// function getNonce() { +// let text = ''; +// const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; +// for (let i = 0; i < 32; i++) { +// text += possible.charAt(Math.floor(Math.random() * possible.length)); +// } +// return text; +// } import * as vscode from 'vscode'; import { ApiRequestProvider } from './apiRequest/apiRequestProvider'; import { log } from './extension'; import { ApiEndpoint } from './types'; import { TestManagementProvider } from './testManagement/testManagementProvider'; +import { ChatRepoProvider } from './chatRepo/chatRepoProvider'; // Import ChatRepoProvider +import { DocManagementProvider } from './docManagement/docManagementProvider'; // Import DocManagementProvider export class SidebarProvider implements vscode.WebviewViewProvider { - _view?: vscode.WebviewView; - _doc?: vscode.TextDocument; - private apiRequestProvider: ApiRequestProvider; - private apiHistory: ApiEndpoint[] = []; - private showHistory: boolean = false; - private context: vscode.ExtensionContext; - private testManagementProvider: TestManagementProvider; + _view?: vscode.WebviewView; + _doc?: vscode.TextDocument; + private apiRequestProvider: ApiRequestProvider; + private apiHistory: ApiEndpoint[] = []; + private showHistory: boolean = false; + private context: vscode.ExtensionContext; + private testManagementProvider: TestManagementProvider; + private chatRepoProvider: ChatRepoProvider; // Declare ChatRepoProvider + private docManagementProvider: DocManagementProvider; // Declare DocManagementProvider + constructor(private readonly _extensionUri: vscode.Uri, context: vscode.ExtensionContext) { + this.apiRequestProvider = new ApiRequestProvider(context); + this.context = context; + this.loadApiHistory(); + this.testManagementProvider = new TestManagementProvider(context); + this.chatRepoProvider = new ChatRepoProvider(context); // Initialize ChatRepoProvider + this.docManagementProvider = new DocManagementProvider(context); // Initialize DocManagementProvider - constructor(private readonly _extensionUri: vscode.Uri, context: vscode.ExtensionContext) { - this.apiRequestProvider = new ApiRequestProvider(context); - this.context = context; - this.loadApiHistory(); - this.testManagementProvider = new TestManagementProvider(context); + // Register command to update API history + context.subscriptions.push( + vscode.commands.registerCommand('vscode-api-client.updateApiHistory', (endpoint: ApiEndpoint) => { + this.updateApiHistory(endpoint); + }) + ); + } + private loadApiHistory() { + try { + const history = this.context.globalState.get('apiHistory', []); + this.apiHistory = history; + } catch (error) { + console.error('Error loading API history:', error); + this.apiHistory = []; + } + } + private saveApiHistory() { + try { + this.context.globalState.update('apiHistory', this.apiHistory); + } catch (error) { + console.error('Error saving API history:', error); + vscode.window.showErrorMessage('Failed to save API history. Please try again.'); + } + } - // Register command to update API history - context.subscriptions.push( - vscode.commands.registerCommand('vscode-api-client.updateApiHistory', (endpoint: ApiEndpoint) => { - this.updateApiHistory(endpoint); - }) - ); - } - private loadApiHistory() { - try { - const history = this.context.globalState.get('apiHistory', []); - this.apiHistory = history; - } catch (error) { - console.error('Error loading API history:', error); - this.apiHistory = []; + public refresh() { + if (this._view) { + console.log('Refreshing webview content'); + this._view.webview.html = this._getHtmlForWebview(this._view.webview); + } } - } - private saveApiHistory() { - try { - this.context.globalState.update('apiHistory', this.apiHistory); - } catch (error) { - console.error('Error saving API history:', error); - vscode.window.showErrorMessage('Failed to save API history. Please try again.'); + public resolveWebviewView(webviewView: vscode.WebviewView) { + this._view = webviewView; + webviewView.webview.options = { + enableScripts: true, + localResourceRoots: [this._extensionUri], + }; + + webviewView.webview.html = this._getHtmlForWebview(webviewView.webview); + + webviewView.webview.onDidReceiveMessage(async (data) => { + log("Received message on sidebar"); + switch (data.type) { + case "onInfo": { + if (!data.value) { + return; + } + vscode.window.showInformationMessage(data.value); + break; + } + case "onError": { + if (!data.value) { + return; + } + vscode.window.showErrorMessage(data.value); + break; + } + case "openApiManagement": { + if (!data.value) { + return; + } + this.openWebview(data.value); + break; + } + case "backButton": { + this.showHistory = false; + this.refresh(); + break; + } + case "newRequest": { + this.openApiRequestView(); + break; + } + case "deleteEndpoint": { + this.deleteEndpoint(data.name, data.method); + break; + } + case "openChatRepo": { // Handle opening the chat repo view + this.chatRepoProvider.openChatRepoView(); + break; + } + case "openDocManagement": { // Handle opening the doc management view + this.docManagementProvider.openDocManagementView(); + break; + } + } + }); } - } - public refresh() { - if (this._view) { - console.log('Refreshing webview content'); - this._view.webview.html = this._getHtmlForWebview(this._view.webview); + public revive(panel: vscode.WebviewView) { + this._view = panel; } - } - public resolveWebviewView(webviewView: vscode.WebviewView) { - this._view = webviewView; - webviewView.webview.options = { - enableScripts: true, - localResourceRoots: [this._extensionUri], - }; - - webviewView.webview.html = this._getHtmlForWebview(webviewView.webview); - - webviewView.webview.onDidReceiveMessage(async (data) => { - log("Received message on sidebar"); - switch (data.type) { - case "onInfo": { - if (!data.value) { - return; - } - vscode.window.showInformationMessage(data.value); - break; - } - case "onError": { - if (!data.value) { - return; - } - vscode.window.showErrorMessage(data.value); - break; - } - case "openApiManagement": { - if (!data.value) { - return; - } - this.openWebview(data.value); - break; - } - case "backButton": { - this.showHistory = false; - this.refresh(); - break; - } - case "newRequest": { - this.openApiRequestView(); - break; - } - case "deleteEndpoint": { - this.deleteEndpoint(data.name, data.method); - break; - } - } - }); - } + private _getHtmlForWebview(webview: vscode.Webview) { + log("HTML Web View Loaded"); - public revive(panel: vscode.WebviewView) { - this._view = panel; - } + const scriptUri = webview.asWebviewUri( + vscode.Uri.joinPath(this._extensionUri, "out", "sidebar.js") + ); - private _getHtmlForWebview(webview: vscode.Webview) { - log("HTML Web View Loaded"); - - const scriptUri = webview.asWebviewUri( - vscode.Uri.joinPath(this._extensionUri, "out", "sidebar.js") - ); - - const styleSidebarUri = webview.asWebviewUri( - vscode.Uri.joinPath(this._extensionUri, "media", "sidebar.css") - ); - - - const nonce = getNonce(); - - const csp = ` - default-src 'none'; - script-src ${webview.cspSource} 'nonce-${nonce}'; - style-src ${webview.cspSource} 'unsafe-inline'; - img-src ${webview.cspSource} https:; - font-src ${webview.cspSource}; - `; - - return ` - - - - - - - - - ${this.showHistory - ? `${this.getHistoryHtml()}` - : `
- - - - - -
` - } - - - `; - } + const styleSidebarUri = webview.asWebviewUri( + vscode.Uri.joinPath(this._extensionUri, "media", "sidebar.css") + ); + + const nonce = getNonce(); - private getHistoryHtml() { - return ` + const csp = ` + default-src 'none'; + script-src ${webview.cspSource} 'nonce-${nonce}'; + style-src ${webview.cspSource} 'unsafe-inline'; + img-src ${webview.cspSource} https:; + font-src ${webview.cspSource}; + `; + + return ` + + + + + + + + + ${this.showHistory + ? `${this.getHistoryHtml()}` + : `
+ + + + + + +
` + } + + + `; + } + + private getHistoryHtml() { + return ` - `; +
+

API History

+ +
+ +
    + ${this.apiHistory.map(endpoint => ` +
  • + ${endpoint.method} + ${endpoint.name} + ${new Date(endpoint.lastUsed).toLocaleString()} + +
  • + `).join('')} +
+ `; } private async openWebview(webviewType: string) { - if (webviewType === 'apiManagement') { - if (this.apiRequestProvider) { - console.log("Opening API Request View"); - this.apiRequestProvider.openApiRequestView(); - this.showHistory = true; - this.refresh(); - } else { - console.error("apiRequestProvider is not initialized"); - vscode.window.showErrorMessage("API Management is not available"); - } - } else if (webviewType === 'testManagement') { - if (this.testManagementProvider) { - console.log("Opening Test Management View"); - await this.testManagementProvider.openTestManagementView(); + if (webviewType === 'apiManagement') { + if (this.apiRequestProvider) { + console.log("Opening API Request View"); + this.apiRequestProvider.openApiRequestView(); + this.showHistory = true; + this.refresh(); + } else { + console.error("apiRequestProvider is not initialized"); + vscode.window.showErrorMessage("API Management is not available"); + } + } else if (webviewType === 'testManagement') { + if (this.testManagementProvider) { + console.log("Opening Test Management View"); + await this.testManagementProvider.openTestManagementView(); + } else { + console.error("testManagementProvider is not initialized"); + vscode.window.showErrorMessage("Test Management is not available"); + } + } else if (webviewType === 'chatRepo') { // Handle opening chat repo view + if (this.chatRepoProvider) { + console.log("Opening Chat Repo View"); + await this.chatRepoProvider.openChatRepoView(); + } else { + console.error("chatRepoProvider is not initialized"); + vscode.window.showErrorMessage("Chat Repo is not available"); + } + } else if (webviewType === 'documentation') { // Handle opening doc management view + if (this.docManagementProvider) { + console.log("Opening Documentation Management View"); + await this.docManagementProvider.openDocManagementView(); + } else { + console.error("docManagementProvider is not initialized"); + vscode.window.showErrorMessage("Documentation Management is not available"); + } } else { - console.error("testManagementProvider is not initialized"); - vscode.window.showErrorMessage("Test Management is not available"); - } - } else { - const panel = vscode.window.createWebviewPanel( - webviewType, - this.getWebviewTitle(webviewType), - vscode.ViewColumn.One, - { - enableScripts: true, - localResourceRoots: [this._extensionUri], - } - ); + const panel = vscode.window.createWebviewPanel( + webviewType, + this.getWebviewTitle(webviewType), + vscode.ViewColumn.One, + { + enableScripts: true, + localResourceRoots: [this._extensionUri], + } + ); - panel.webview.html = await this.getWebviewContent(webviewType); - } + panel.webview.html = await this.getWebviewContent(webviewType); + } } private openApiRequestView() { - if (this.apiRequestProvider) { - console.log("Opening API Request View"); - this.apiRequestProvider.openApiRequestView(); - } else { - console.error("apiRequestProvider is not initialized"); - vscode.window.showErrorMessage("API Request is not available"); - } + if (this.apiRequestProvider) { + console.log("Opening API Request View"); + this.apiRequestProvider.openApiRequestView(); + } else { + console.error("apiRequestProvider is not initialized"); + vscode.window.showErrorMessage("API Request is not available"); + } } private getWebviewTitle(webviewType: string): string { - switch (webviewType) { - case 'apiManagement': - return 'API Management'; - case 'apiRequest': - return 'API Request'; - case 'chatRepo': - return 'Chat Repo'; - case 'documentation': - return 'Documentation'; - case 'codeReview': - return 'Code Review'; - case 'testManagement': - return 'Test Case'; - default: - return 'Webview'; - } + switch (webviewType) { + case 'apiManagement': + return 'API Management'; + case 'apiRequest': + return 'API Request'; + case 'chatRepo': + return 'Chat Repo'; + case 'documentation': + return 'Documentation'; + case 'codeReview': + return 'Code Review'; + case 'testManagement': + return 'Test Case'; + default: + return 'Webview'; + } } private async getWebviewContent(webviewType: string): Promise { - const filePath = vscode.Uri.joinPath(this._extensionUri, webviewType, 'index.html'); - const fileContent = await vscode.workspace.fs.readFile(filePath); - return fileContent.toString(); + const filePath = vscode.Uri.joinPath(this._extensionUri, webviewType, 'index.html'); + const fileContent = await vscode.workspace.fs.readFile(filePath); + return fileContent.toString(); } + private updateApiHistory(endpoint: ApiEndpoint) { - const existingIndex = this.apiHistory.findIndex( - e => e.name === endpoint.name && e.method === endpoint.method - ); - - if (existingIndex !== -1) { - this.apiHistory[existingIndex].lastUsed = endpoint.lastUsed; - const [updatedEndpoint] = this.apiHistory.splice(existingIndex, 1); - this.apiHistory.unshift(updatedEndpoint); - } else { - this.apiHistory.unshift(endpoint); - this.apiHistory = this.apiHistory.slice(0, 10); - } + const existingIndex = this.apiHistory.findIndex( + e => e.name === endpoint.name && e.method === endpoint.method + ); + + if (existingIndex !== -1) { + this.apiHistory[existingIndex].lastUsed = endpoint.lastUsed; + const [updatedEndpoint] = this.apiHistory.splice(existingIndex, 1); + this.apiHistory.unshift(updatedEndpoint); + } else { + this.apiHistory.unshift(endpoint); + this.apiHistory = this.apiHistory.slice(0, 10); + } - this.saveApiHistory(); - this.refresh(); + this.saveApiHistory(); + this.refresh(); } private deleteEndpoint(name: string, method: string) { - this.apiHistory = this.apiHistory.filter( - endpoint => !(endpoint.name === name && endpoint.method === method) - ); - this.saveApiHistory(); - this.refresh(); + this.apiHistory = this.apiHistory.filter( + endpoint => !(endpoint.name === name && endpoint.method === method) + ); + this.saveApiHistory(); + this.refresh(); } } + function getNonce() { - let text = ''; - const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - for (let i = 0; i < 32; i++) { - text += possible.charAt(Math.floor(Math.random() * possible.length)); - } - return text; + let text = ''; + const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; + for (let i = 0; i < 32; i++) { + text += possible.charAt(Math.floor(Math.random() * possible.length)); + } + return text; } \ No newline at end of file diff --git a/extensions/vscode/src/apiManagement/apiManagementProvider.ts b/extensions/vscode/src/apiManagement/apiManagementProvider.ts new file mode 100644 index 00000000..3ba07190 --- /dev/null +++ b/extensions/vscode/src/apiManagement/apiManagementProvider.ts @@ -0,0 +1,34 @@ +import * as vscode from 'vscode'; +import { ApiManagementView } from './apiManagementView'; +import { ApiEndpoint } from '../types'; + +export class ApiManagementProvider { + private context: vscode.ExtensionContext; + private view: ApiManagementView | undefined; + + constructor(context: vscode.ExtensionContext) { + this.context = context; + } + + public openApiManagementView() { + if (!this.view) { + this.view = new ApiManagementView(this.context, this.handleApiManagementAction.bind(this)); + } + this.view.show(); + } + + private async handleApiManagementAction(action: string, endpoint?: ApiEndpoint) { + switch (action) { + case 'addApi': + if (endpoint) { + // Handle the addition of the API (for now, just log it) + console.log(`API Added: ${endpoint.method} - ${endpoint.name}`); + vscode.window.showInformationMessage(`Added API: ${endpoint.method} - ${endpoint.name}`); + } + break; + // You can add more actions here in the future + default: + console.error(`Unknown action: ${action}`); + } + } +} \ No newline at end of file diff --git a/extensions/vscode/src/apiManagement/apiManagementView.ts b/extensions/vscode/src/apiManagement/apiManagementView.ts new file mode 100644 index 00000000..2b9bb794 --- /dev/null +++ b/extensions/vscode/src/apiManagement/apiManagementView.ts @@ -0,0 +1,96 @@ +import * as vscode from 'vscode'; +import { ApiEndpoint } from '../types'; + +type ApiManagementCallback = ( + action: string, + endpoint?: ApiEndpoint // Made optional for addApi action +) => Promise; + +export class ApiManagementView { + private panel: vscode.WebviewPanel | undefined; + private context: vscode.ExtensionContext; + private apiManagementCallback: ApiManagementCallback; + + constructor(context: vscode.ExtensionContext, apiManagementCallback: ApiManagementCallback) { + this.context = context; + this.apiManagementCallback = apiManagementCallback; + } + + public show() { + if (this.panel) { + this.panel.reveal(); + } else { + this.panel = vscode.window.createWebviewPanel( + 'apiManagement', + 'API Management', + vscode.ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); + + // Load the webview content asynchronously + this.getWebviewContent().then(html => { + this.panel!.webview.html = html; // Use non-null assertion since we just created the panel + }).catch(error => { + console.error("Failed to load webview content:", error); + this.panel!.webview.html = "

Error loading content

"; // Fallback content + }); + + this.panel.webview.onDidReceiveMessage( + message => { + switch (message.command) { + case 'addApi': + this.promptForApiDetails(); + return; + case 'performAction': + this.apiManagementCallback( + message.action, + message.endpoint + ).catch(err => console.error("Error in API management callback:", err)); + return; + } + }, + undefined, + this.context.subscriptions + ); + + this.panel.onDidDispose(() => { + this.panel = undefined; + }); + } + } + + public postMessage(message: any) { + this.panel?.webview.postMessage(message); + } + + private async getWebviewContent(): Promise { + const htmlPath = vscode.Uri.joinPath(this.context.extensionUri, 'webview', 'apiManagement', 'index.html'); + console.log("Loading HTML from:", htmlPath.toString()); + + try { + // Read the HTML file + const htmlContentBuffer = await vscode.workspace.fs.readFile(htmlPath); + + // Convert the buffer to a string using TextDecoder for proper encoding + return new TextDecoder('utf-8').decode(htmlContentBuffer); + } catch (error) { + console.error("Error loading HTML:", error); + throw error; // Re-throw the error to handle it in show() + } + } + + private async promptForApiDetails() { + const method = await vscode.window.showInputBox({ prompt: "Enter API Method (GET, POST, etc.)" }); + const url = await vscode.window.showInputBox({ prompt: "Enter API URL" }); + + if (method && url) { + const endpoint: ApiEndpoint = { method, name: url, lastUsed: new Date().toISOString() }; + this.apiManagementCallback('addApi', endpoint).catch(err => console.error("Error adding API:", err)); + } else { + vscode.window.showErrorMessage("API Method and URL are required."); + } + } +} \ No newline at end of file diff --git a/extensions/vscode/src/chatRepo/chatRepoProvider.ts b/extensions/vscode/src/chatRepo/chatRepoProvider.ts new file mode 100644 index 00000000..08595060 --- /dev/null +++ b/extensions/vscode/src/chatRepo/chatRepoProvider.ts @@ -0,0 +1,38 @@ +import * as vscode from 'vscode'; +import { ChatRepoView } from './chatRepoView'; + +export class ChatRepoProvider { + private context: vscode.ExtensionContext; + private view: ChatRepoView | undefined; + + constructor(context: vscode.ExtensionContext) { + this.context = context; + } + + public openChatRepoView() { + if (!this.view) { + this.view = new ChatRepoView(this.context, this.handleChatMessage.bind(this)); + } + this.view.show(); + } + + private async handleChatMessage(message: string) { + // Here you can implement logic to interact with GitHub API or any other backend service + console.log(`User message: ${message}`); + + // Simulate a response (you can replace this with actual API calls) + const response = await this.getResponseFromRepo(message); + + // Post response back to the webview + this.view?.postMessage({ command: 'receiveChatResponse', response }); + } + + private async getResponseFromRepo(message: string): Promise { + // Simulate a delay for an API call + await new Promise(resolve => setTimeout(resolve, 1000)); + + // Here you would typically make a call to GitHub's API or any other service. + // For demonstration, we return a static response. + return `Response from repo for your message: "${message}"`; + } +} \ No newline at end of file diff --git a/extensions/vscode/src/chatRepo/chatRepoView.ts b/extensions/vscode/src/chatRepo/chatRepoView.ts new file mode 100644 index 00000000..276c2995 --- /dev/null +++ b/extensions/vscode/src/chatRepo/chatRepoView.ts @@ -0,0 +1,74 @@ +import * as vscode from 'vscode'; + +type ChatRepoCallback = (message: string) => Promise; + +export class ChatRepoView { + private panel: vscode.WebviewPanel | undefined; + private context: vscode.ExtensionContext; + private chatRepoCallback: ChatRepoCallback; + + constructor(context: vscode.ExtensionContext, chatRepoCallback: ChatRepoCallback) { + this.context = context; + this.chatRepoCallback = chatRepoCallback; + } + + public show() { + if (this.panel) { + this.panel.reveal(); + } else { + this.panel = vscode.window.createWebviewPanel( + 'chatRepo', + 'Chat with Repo', + vscode.ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); + + // Load the webview content asynchronously + this.getWebviewContent().then(html => { + this.panel!.webview.html = html; // Use non-null assertion since we just created the panel + }).catch(error => { + console.error("Failed to load webview content:", error); + this.panel!.webview.html = "

Error loading content

"; // Fallback content + }); + + this.panel.webview.onDidReceiveMessage( + message => { + switch (message.command) { + case 'sendChatMessage': + this.chatRepoCallback(message.message).catch(err => console.error("Error in chat repo callback:", err)); + return; + } + }, + undefined, + this.context.subscriptions + ); + + this.panel.onDidDispose(() => { + this.panel = undefined; + }); + } + } + + public postMessage(message: any) { + this.panel?.webview.postMessage(message); + } + + private async getWebviewContent(): Promise { + const htmlPath = vscode.Uri.joinPath(this.context.extensionUri, 'webview', 'chatRepo', 'index.html'); + console.log("Loading HTML from:", htmlPath.toString()); + + try { + // Read the HTML file + const htmlContentBuffer = await vscode.workspace.fs.readFile(htmlPath); + + // Convert the buffer to a string using TextDecoder for proper encoding + return new TextDecoder('utf-8').decode(htmlContentBuffer); + } catch (error) { + console.error("Error loading HTML:", error); + throw error; // Re-throw the error to handle it in show() + } + } +} \ No newline at end of file diff --git a/extensions/vscode/src/docManagement/docManagementProvider.ts b/extensions/vscode/src/docManagement/docManagementProvider.ts new file mode 100644 index 00000000..d8676158 --- /dev/null +++ b/extensions/vscode/src/docManagement/docManagementProvider.ts @@ -0,0 +1,52 @@ +import * as vscode from 'vscode'; +import { DocManagementView } from './docManagementView'; + +export class DocManagementProvider { + private context: vscode.ExtensionContext; + private view: DocManagementView | undefined; + + constructor(context: vscode.ExtensionContext) { + this.context = context; + } + + public openDocManagementView() { + if (!this.view) { + this.view = new DocManagementView(this.context, this.handleDocAction.bind(this)); + } + this.view.show(); + } + + private async handleDocAction(command: string, docName?: string, content?: string) { + try { + switch (command) { + case 'loadDoc': + if (docName) { + const docContent = await this.loadDocument(docName); // Load document content + this.view?.postMessage({ command: 'displayDoc', content: docContent }); + } + break; + case 'saveDoc': + if (docName && content) { + await this.saveDocument(docName, content); // Save document content + vscode.window.showInformationMessage(`Document "${docName}" saved successfully.`); + } + break; + default: + vscode.window.showErrorMessage(`Unknown command: ${command}`); + } + } catch (error) { + vscode.window.showErrorMessage(`Error handling document action: ${error.message}`); + } + } + + private async loadDocument(docName: string): Promise { + // Simulate loading a document (replace with actual logic) + return `Content of ${docName}`; // Placeholder content + } + + private async saveDocument(docName: string, content: string): Promise { + // Simulate saving a document (replace with actual logic) + console.log(`Saving Document "${docName}": ${content}`); + // Here you would typically save to a file or database. + } +} \ No newline at end of file diff --git a/extensions/vscode/src/docManagement/docManagementView.ts b/extensions/vscode/src/docManagement/docManagementView.ts new file mode 100644 index 00000000..f55f7f38 --- /dev/null +++ b/extensions/vscode/src/docManagement/docManagementView.ts @@ -0,0 +1,87 @@ +import * as vscode from 'vscode'; + +type DocManagementCallback = (command: string, docName?: string, content?: string) => Promise; + +interface DocMessage { + command: 'loadDoc' | 'saveDoc'; + docName?: string; + content?: string; +} + +export class DocManagementView { + private panel: vscode.WebviewPanel | undefined; + private context: vscode.ExtensionContext; + private docManagementCallback: DocManagementCallback; + + constructor(context: vscode.ExtensionContext, docManagementCallback: DocManagementCallback) { + this.context = context; + this.docManagementCallback = docManagementCallback; + } + + public show() { + if (this.panel) { + this.panel.reveal(); + } else { + this.panel = vscode.window.createWebviewPanel( + 'docManagement', + 'Documentation Management', + vscode.ViewColumn.One, + { + enableScripts: true, + retainContextWhenHidden: true, + } + ); + + // Load the webview content asynchronously + this.getWebviewContent().then(html => { + this.panel!.webview.html = html; // Use non-null assertion since we just created the panel + }).catch(error => { + console.error("Failed to load webview content:", error); + this.panel!.webview.html = "

Error loading content

"; // Fallback content + }); + + this.panel.webview.onDidReceiveMessage( + (message: DocMessage) => { + switch (message.command) { + case 'loadDoc': + this.docManagementCallback(message.command, message.docName).catch(err => + vscode.window.showErrorMessage(`Error loading document: ${err.message}`) + ); + return; + case 'saveDoc': + this.docManagementCallback(message.command, message.docName, message.content).catch(err => + vscode.window.showErrorMessage(`Error saving document: ${err.message}`) + ); + return; + } + }, + undefined, + this.context.subscriptions + ); + + this.panel.onDidDispose(() => { + this.panel = undefined; // Cleanup if needed + }); + } + } + + public postMessage(message: any) { + this.panel?.webview.postMessage(message); + } + + private async getWebviewContent(): Promise { + const htmlPath = vscode.Uri.joinPath(this.context.extensionUri, 'webview', 'docManagement', 'index.html'); + console.log("Loading HTML from:", htmlPath.toString()); + + try { + // Read the HTML file + const htmlContentBuffer = await vscode.workspace.fs.readFile(htmlPath); + + // Convert the buffer to a string using TextDecoder for proper encoding + return new TextDecoder('utf-8').decode(htmlContentBuffer); + } catch (error) { + console.error("Error loading HTML:", error); + throw error; // Re-throw the error to handle it in show() + } + } +} \ No newline at end of file diff --git a/extensions/vscode/src/extension.ts b/extensions/vscode/src/extension.ts index 519ca1bc..2bbec57d 100644 --- a/extensions/vscode/src/extension.ts +++ b/extensions/vscode/src/extension.ts @@ -1,53 +1,134 @@ // The module 'vscode' contains the VS Code extensibility API // Import the module and reference it with the alias vscode in your code below +// import * as vscode from 'vscode'; +// import { SidebarProvider } from './SidebarProvider'; +// import { ApiRequestProvider } from './apiRequest/apiRequestProvider'; +// import { ApiManagementProvider } from './apiManagement/apiManagementProvider'; +// import { ChatRepoProvider } from './chatRepo/chatRepoProvider'; +// import { DocManagementProvider } from './docManagement/docManagementProvider'; +// import { TestManagementProvider } from './testManagement/testManagementProvider'; + +// let outputChannel: vscode.OutputChannel; + +// export function activate(context: vscode.ExtensionContext) { +// outputChannel = vscode.window.createOutputChannel("Kaizen CloudCode"); + +// outputChannel.appendLine("Kaizen CloudCode extension is activating!!!"); +// console.log("Kaizen CloudCode extension is activating"); + + +// const sidebarProvider = new SidebarProvider(context.extensionUri, context); +// const apiRequestProvider = new ApiRequestProvider(context); +// const testManagementProvider = new TestManagementProvider(context); +// const apiManagementProvider = new ApiManagementProvider(context); + +// context.subscriptions.push( +// vscode.window.registerWebviewViewProvider( +// "kaizen-cloudcode-sidebar", +// sidebarProvider +// ) +// ); + +// context.subscriptions.push( +// vscode.commands.registerCommand('kaizen-cloudcode.openTestManagement', () => { +// testManagementProvider.openTestManagementView(); +// }) +// ); + +// // You might want to add a command to open the API Request view directly +// let disposable = vscode.commands.registerCommand('kaizen-cloudcode.openApiRequest', () => { +// apiRequestProvider.openApiRequestView(); +// }); +// context.subscriptions.push(disposable); + +// context.subscriptions.push( +// vscode.commands.registerCommand('kaizen-cloudcode.openSidebar', () => { +// vscode.commands.executeCommand('workbench.view.extension.kaizen-cloudcode-view'); +// }) +// ); +// } + +// export function log(message: string) { +// if (outputChannel) { +// outputChannel.appendLine(message); +// } +// console.log(message); +// } +// export function deactivate() { } +// The module 'vscode' contains the VS Code extensibility API +// Import the module and reference it with the alias vscode in your code below"" import * as vscode from 'vscode'; -import { ApiRequestProvider } from './apiRequest/apiRequestProvider'; import { SidebarProvider } from './SidebarProvider'; +import { ApiRequestProvider } from './apiRequest/apiRequestProvider'; +import { ApiManagementProvider } from './apiManagement/apiManagementProvider'; +import { ChatRepoProvider } from './chatRepo/chatRepoProvider'; +import { DocManagementProvider } from './docManagement/docManagementProvider'; import { TestManagementProvider } from './testManagement/testManagementProvider'; let outputChannel: vscode.OutputChannel; export function activate(context: vscode.ExtensionContext) { - outputChannel = vscode.window.createOutputChannel("Kaizen CloudCode"); - - outputChannel.appendLine("Kaizen CloudCode extension is activating!!!"); - console.log("Kaizen CloudCode extension is activating"); - - - const sidebarProvider = new SidebarProvider(context.extensionUri, context); - const apiRequestProvider = new ApiRequestProvider(context); - const testManagementProvider = new TestManagementProvider(context); - - context.subscriptions.push( - vscode.window.registerWebviewViewProvider( - "kaizen-cloudcode-sidebar", - sidebarProvider - ) - ); - - context.subscriptions.push( - vscode.commands.registerCommand('kaizen-cloudcode.openTestManagement', () => { - testManagementProvider.openTestManagementView(); - }) - ); - - // You might want to add a command to open the API Request view directly - let disposable = vscode.commands.registerCommand('kaizen-cloudcode.openApiRequest', () => { - apiRequestProvider.openApiRequestView(); - }); - context.subscriptions.push(disposable); - - context.subscriptions.push( - vscode.commands.registerCommand('kaizen-cloudcode.openSidebar', () => { - vscode.commands.executeCommand('workbench.view.extension.kaizen-cloudcode-view'); - }) - ); + outputChannel = vscode.window.createOutputChannel("Kaizen CloudCode"); + + outputChannel.appendLine("Kaizen CloudCode extension is activating!!!"); + console.log("Kaizen CloudCode extension is activating"); + + const sidebarProvider = new SidebarProvider(context.extensionUri, context); + const apiRequestProvider = new ApiRequestProvider(context); + const apiManagementProvider = new ApiManagementProvider(context); + const chatRepoProvider = new ChatRepoProvider(context); + const docManagementProvider = new DocManagementProvider(context); + const testManagementProvider = new TestManagementProvider(context); + + context.subscriptions.push( + vscode.window.registerWebviewViewProvider( + "kaizen-cloudcode-sidebar", + sidebarProvider + ) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openTestManagement', () => { + testManagementProvider.openTestManagementView(); + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openApiRequest', () => { + apiRequestProvider.openApiRequestView(); + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openApiManagement', () => { + apiManagementProvider.openApiManagementView(); + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openChatRepo', () => { + chatRepoProvider.openChatRepoView(); + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openDocManagement', () => { + docManagementProvider.openDocManagementView(); + }) + ); + + context.subscriptions.push( + vscode.commands.registerCommand('kaizen-cloudcode.openSidebar', () => { + vscode.commands.executeCommand('workbench.view.extension.kaizen-cloudcode-view'); + }) + ); } export function log(message: string) { - if (outputChannel) { - outputChannel.appendLine(message); - } - console.log(message); + if (outputChannel) { + outputChannel.appendLine(message); + } + console.log(message); } -export function deactivate() { } \ No newline at end of file + +export function deactivate() {} \ No newline at end of file diff --git a/extensions/vscode/webview/documentation/index.html b/extensions/vscode/webview/docManagement/index.html similarity index 100% rename from extensions/vscode/webview/documentation/index.html rename to extensions/vscode/webview/docManagement/index.html