diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 679b0ee53c..f8f79c1496 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -15,9 +15,28 @@ "panel": "dedicated", "reveal": "never" }, - "problemMatcher": [ - "$tsc-watch" - ], + "problemMatcher": { + "owner": "esbuild", + "source": "esbuild", + "fileLocation": ["relative", "${workspaceFolder}/vscode-extension"], + "pattern": [ + { + "regexp": "^✘ \\[ERROR\\] (.+)$", + "message": 1 + }, + { + "regexp": "^\\s+(.+):(\\d+):(\\d+):$", + "file": 1, + "line": 2, + "column": 3 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": "\\[watch\\] build started", + "endsPattern": "\\[watch\\] build (finished|failed)" + } + }, "options": { "cwd": "${workspaceFolder}/vscode-extension" } diff --git a/vscode-extension/client/src/panels/homepage/icons.ts b/vscode-extension/client/src/panels/homepage/icons.ts index b5f980507d..285a52e04c 100644 --- a/vscode-extension/client/src/panels/homepage/icons.ts +++ b/vscode-extension/client/src/panels/homepage/icons.ts @@ -1,115 +1,61 @@ -// SVG icons for the homepage panel - // ============================================================================= // Navigation Icons (used in sidebar) // ============================================================================= -export const navIcons = { - dashboard: ` - - `, - - packages: ` - - `, - - branches: ` - - `, - - apps: ` - - `, - - "approval-requests": ` - - `, - - contributions: ` - - - - - - - - - - `, - - traces: ` - - `, - - settings: ` - - - `, - - changelog: ` - - - `, +import dashboardSvg from "./icons/nav/dashboard.svg"; +import packagesSvg from "./icons/nav/packages.svg"; +import branchesSvg from "./icons/nav/branches.svg"; +import appsSvg from "./icons/nav/apps.svg"; +import approvalRequestsSvg from "./icons/nav/approval-requests.svg"; +import contributionsSvg from "./icons/nav/contributions.svg"; +import tracesSvg from "./icons/nav/traces.svg"; +import settingsSvg from "./icons/nav/settings.svg"; +import changelogSvg from "./icons/nav/changelog.svg"; +import logoutSvg from "./icons/nav/logout.svg"; - logout: ` - - `, -}; +export const navIcons = { + dashboard: dashboardSvg, + packages: packagesSvg, + branches: branchesSvg, + apps: appsSvg, + "approval-requests": approvalRequestsSvg, + contributions: contributionsSvg, + traces: tracesSvg, + settings: settingsSvg, + changelog: changelogSvg, + logout: logoutSvg, +} as const; // ============================================================================= // Item Type Icons (used in dashboard cards) // ============================================================================= -export const itemIcons = { - branch: ` - - `, - - app: ` - - - - - - - - - - `, - - module: ` - - `, - - function: ` - - `, +import branchItemSvg from "./icons/item/branch.svg"; +import appItemSvg from "./icons/item/app.svg"; +import moduleSvg from "./icons/item/module.svg"; +import functionSvg from "./icons/item/function.svg"; +import typeSvg from "./icons/item/type.svg"; +import valueSvg from "./icons/item/value.svg"; - type: ` - - `, - - value: ` - - `, -}; +export const itemIcons = { + branch: branchItemSvg, + app: appItemSvg, + module: moduleSvg, + function: functionSvg, + type: typeSvg, + value: valueSvg, +} as const; // ============================================================================= // UI Icons (buttons, controls, etc.) // ============================================================================= -export const uiIcons = { - toggle: ` - - `, +import toggleSvg from "./icons/ui/toggle.svg"; +import unpinSvg from "./icons/ui/unpin.svg"; +import userSvg from "./icons/ui/user.svg"; - unpin: ` - - `, - - user: ` - - - - `, -}; +export const uiIcons = { + toggle: toggleSvg, + unpin: unpinSvg, + user: userSvg, +} as const; diff --git a/vscode-extension/client/src/panels/homepage/icons/item/app.svg b/vscode-extension/client/src/panels/homepage/icons/item/app.svg new file mode 100644 index 0000000000..6f4f8f1353 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/app.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/item/branch.svg b/vscode-extension/client/src/panels/homepage/icons/item/branch.svg new file mode 100644 index 0000000000..f608583c3d --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/branch.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/item/function.svg b/vscode-extension/client/src/panels/homepage/icons/item/function.svg new file mode 100644 index 0000000000..5eee93fa15 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/function.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/item/module.svg b/vscode-extension/client/src/panels/homepage/icons/item/module.svg new file mode 100644 index 0000000000..d6a6ee6c79 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/module.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/item/type.svg b/vscode-extension/client/src/panels/homepage/icons/item/type.svg new file mode 100644 index 0000000000..322a98dbdd --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/type.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/item/value.svg b/vscode-extension/client/src/panels/homepage/icons/item/value.svg new file mode 100644 index 0000000000..72d8ec72f6 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/item/value.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/approval-requests.svg b/vscode-extension/client/src/panels/homepage/icons/nav/approval-requests.svg new file mode 100644 index 0000000000..9f733f49bc --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/approval-requests.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/apps.svg b/vscode-extension/client/src/panels/homepage/icons/nav/apps.svg new file mode 100644 index 0000000000..60ee5b0f10 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/apps.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/branches.svg b/vscode-extension/client/src/panels/homepage/icons/nav/branches.svg new file mode 100644 index 0000000000..dc012bd511 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/branches.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/changelog.svg b/vscode-extension/client/src/panels/homepage/icons/nav/changelog.svg new file mode 100644 index 0000000000..c973fb10cb --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/changelog.svg @@ -0,0 +1,4 @@ + + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/contributions.svg b/vscode-extension/client/src/panels/homepage/icons/nav/contributions.svg new file mode 100644 index 0000000000..e7ea5c5371 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/contributions.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/dashboard.svg b/vscode-extension/client/src/panels/homepage/icons/nav/dashboard.svg new file mode 100644 index 0000000000..c7b0d31b3c --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/dashboard.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/logout.svg b/vscode-extension/client/src/panels/homepage/icons/nav/logout.svg new file mode 100644 index 0000000000..726598c833 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/logout.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/packages.svg b/vscode-extension/client/src/panels/homepage/icons/nav/packages.svg new file mode 100644 index 0000000000..ca0282091e --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/packages.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/settings.svg b/vscode-extension/client/src/panels/homepage/icons/nav/settings.svg new file mode 100644 index 0000000000..7cb20104e9 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/settings.svg @@ -0,0 +1,4 @@ + + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/nav/traces.svg b/vscode-extension/client/src/panels/homepage/icons/nav/traces.svg new file mode 100644 index 0000000000..6ad569df2b --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/nav/traces.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/ui/toggle.svg b/vscode-extension/client/src/panels/homepage/icons/ui/toggle.svg new file mode 100644 index 0000000000..34d40086a8 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/ui/toggle.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/ui/unpin.svg b/vscode-extension/client/src/panels/homepage/icons/ui/unpin.svg new file mode 100644 index 0000000000..2bb0c22902 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/ui/unpin.svg @@ -0,0 +1,3 @@ + + + diff --git a/vscode-extension/client/src/panels/homepage/icons/ui/user.svg b/vscode-extension/client/src/panels/homepage/icons/ui/user.svg new file mode 100644 index 0000000000..ae9fe1e280 --- /dev/null +++ b/vscode-extension/client/src/panels/homepage/icons/ui/user.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/vscode-extension/client/src/svg.d.ts b/vscode-extension/client/src/svg.d.ts new file mode 100644 index 0000000000..6cf059255f --- /dev/null +++ b/vscode-extension/client/src/svg.d.ts @@ -0,0 +1,10 @@ +/** + * TypeScript declaration for SVG imports. + * + * Tells the compiler that .svg files export a string (the SVG content). + * The actual inlining is handled by esbuild's SVG plugin at build time. + */ +declare module "*.svg" { + const content: string; + export default content; +} diff --git a/vscode-extension/esbuild.js b/vscode-extension/esbuild.js new file mode 100644 index 0000000000..8cc5e29b2e --- /dev/null +++ b/vscode-extension/esbuild.js @@ -0,0 +1,106 @@ +const esbuild = require("esbuild"); +const fs = require("fs"); + +const production = process.argv.includes("--production"); +const watch = process.argv.includes("--watch"); + +/** + * Plugin to load .svg files as inline strings + */ +const svgPlugin = { + name: "svg-loader", + setup(build) { + build.onLoad({ filter: /\.svg$/ }, async (args) => { + try { + const content = await fs.promises.readFile(args.path, "utf8"); + const trimmed = content.trim(); + + // Validate SVG content + if (!trimmed.startsWith("")) { + return { + errors: [ + { + text: "File does not appear to be a valid SVG (missing closing tag)", + location: { file: args.path }, + }, + ], + }; + } + + // Normalize whitespace for cleaner output + const normalized = trimmed.replace(/\n\s*/g, " "); + return { + contents: `export default ${JSON.stringify(normalized)};`, + loader: "js", + }; + } catch (error) { + return { + errors: [ + { + text: `Failed to load SVG file: ${error.message}`, + location: { file: args.path }, + }, + ], + }; + } + }); + }, +}; + +/** + * Plugin to log build status + */ +const statusPlugin = { + name: "status", + setup(build) { + build.onStart(() => { + console.log("[watch] build started"); + }); + build.onEnd((result) => { + if (result.errors.length > 0) { + console.error(`[watch] build failed with ${result.errors.length} errors`); + } else { + console.log("[watch] build finished"); + } + }); + }, +}; + +async function main() { + const ctx = await esbuild.context({ + entryPoints: ["client/src/extension.ts"], + bundle: true, + format: "cjs", + minify: production, + sourcemap: !production, + sourcesContent: !production, + platform: "node", + outfile: "client/out/extension.js", + external: ["vscode"], + logLevel: "warning", + plugins: [svgPlugin, statusPlugin], + }); + + if (watch) { + await ctx.watch(); + console.log("[esbuild] Watching for changes..."); + } else { + await ctx.rebuild(); + await ctx.dispose(); + } +} + +main().catch((e) => { + console.error(e); + process.exit(1); +}); diff --git a/vscode-extension/package-lock.json b/vscode-extension/package-lock.json index 8a9e694104..8891f612f5 100644 --- a/vscode-extension/package-lock.json +++ b/vscode-extension/package-lock.json @@ -13,6 +13,7 @@ "@types/node": "^16.11.7", "@typescript-eslint/eslint-plugin": "^5.42.0", "@typescript-eslint/parser": "^5.42.0", + "esbuild": "^0.27.2", "eslint": "^8.26.0", "mocha": "^11.1.0", "typescript": "^4.9.4" @@ -30,6 +31,448 @@ "node": ">=0.10.0" } }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -835,6 +1278,48 @@ "dev": true, "license": "MIT" }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", diff --git a/vscode-extension/package.json b/vscode-extension/package.json index 0b0d0e77df..eebc5fee0d 100644 --- a/vscode-extension/package.json +++ b/vscode-extension/package.json @@ -407,9 +407,10 @@ } }, "scripts": { - "vscode:prepublish": "npm run compile", - "compile": "tsc -b", - "watch": "tsc -b -w", + "vscode:prepublish": "npm run compile:production", + "compile": "node esbuild.js", + "compile:production": "node esbuild.js --production", + "watch": "node esbuild.js --watch", "lint": "eslint ./client/src --ext .ts,.tsx", "postinstall": "cd client && npm install && cd ..", "package": "vsce package" @@ -419,6 +420,7 @@ "@types/node": "^16.11.7", "@typescript-eslint/eslint-plugin": "^5.42.0", "@typescript-eslint/parser": "^5.42.0", + "esbuild": "^0.27.2", "eslint": "^8.26.0", "mocha": "^11.1.0", "typescript": "^4.9.4"