diff --git a/package-lock.json b/package-lock.json
index 16df50db..2b9a985b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -158,11 +158,11 @@
"source-map-support": "^0.3.2",
"style-loader": "^3.3.2",
"ts-loader": "^9.4.2",
- "ts-node": "^10.9.1",
"tsec": "0.2.7",
"tslib": "^2.6.3",
"tsup": "^8.3.5",
- "typescript": "^5.7.0-dev.20240903",
+ "tsx": "^4.19.2",
+ "typescript": "^5.6.3",
"util": "^0.12.4",
"webpack": "^5.94.0",
"webpack-cli": "^5.1.4",
@@ -974,28 +974,6 @@
"integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
"dev": true
},
- "node_modules/@cspotcode/source-map-support": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
- "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
- "dev": true,
- "dependencies": {
- "@jridgewell/trace-mapping": "0.3.9"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
- "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "^3.0.3",
- "@jridgewell/sourcemap-codec": "^1.4.10"
- }
- },
"node_modules/@csstools/selector-specificity": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz",
@@ -2762,30 +2740,6 @@
"url": "https://github.com/sponsors/isaacs"
}
},
- "node_modules/@tsconfig/node10": {
- "version": "1.0.9",
- "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
- "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==",
- "dev": true
- },
- "node_modules/@tsconfig/node12": {
- "version": "1.0.11",
- "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
- "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
- "dev": true
- },
- "node_modules/@tsconfig/node14": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
- "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
- "dev": true
- },
- "node_modules/@tsconfig/node16": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz",
- "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==",
- "dev": true
- },
"node_modules/@types/cacheable-request": {
"version": "6.0.3",
"resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz",
@@ -4349,15 +4303,6 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
- "node_modules/acorn-walk": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
- "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
- "dev": true,
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/agent-base": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz",
@@ -4589,12 +4534,6 @@
"node": ">=14"
}
},
- "node_modules/arg": {
- "version": "4.1.3",
- "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
- "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
- "dev": true
- },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -6274,12 +6213,6 @@
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"dev": true
},
- "node_modules/create-require": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
- "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
- "dev": true
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
@@ -8902,6 +8835,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/get-tsconfig": {
+ "version": "4.8.1",
+ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.8.1.tgz",
+ "integrity": "sha512-k9PN+cFBmaLWtVz29SkUoqU5O0slLuHJXt/2P+tMVFT+phsSGXGkp9t3rQIqdz0e+06EHNGs3oM6ZX1s2zHxRg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve-pkg-maps": "^1.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1"
+ }
+ },
"node_modules/get-value": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
@@ -13768,12 +13714,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
- "node_modules/make-error": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
- "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
- "dev": true
- },
"node_modules/make-iterator": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
@@ -17729,6 +17669,16 @@
"node": ">= 0.6"
}
},
+ "node_modules/resolve-pkg-maps": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz",
+ "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1"
+ }
+ },
"node_modules/resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
@@ -20230,58 +20180,6 @@
"code-block-writer": "^12.0.0"
}
},
- "node_modules/ts-node": {
- "version": "10.9.1",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz",
- "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==",
- "dev": true,
- "dependencies": {
- "@cspotcode/source-map-support": "^0.8.0",
- "@tsconfig/node10": "^1.0.7",
- "@tsconfig/node12": "^1.0.7",
- "@tsconfig/node14": "^1.0.0",
- "@tsconfig/node16": "^1.0.2",
- "acorn": "^8.4.1",
- "acorn-walk": "^8.1.1",
- "arg": "^4.1.0",
- "create-require": "^1.1.0",
- "diff": "^4.0.1",
- "make-error": "^1.1.1",
- "v8-compile-cache-lib": "^3.0.1",
- "yn": "3.1.1"
- },
- "bin": {
- "ts-node": "dist/bin.js",
- "ts-node-cwd": "dist/bin-cwd.js",
- "ts-node-esm": "dist/bin-esm.js",
- "ts-node-script": "dist/bin-script.js",
- "ts-node-transpile-only": "dist/bin-transpile.js",
- "ts-script": "dist/bin-script-deprecated.js"
- },
- "peerDependencies": {
- "@swc/core": ">=1.2.50",
- "@swc/wasm": ">=1.2.50",
- "@types/node": "*",
- "typescript": ">=2.7"
- },
- "peerDependenciesMeta": {
- "@swc/core": {
- "optional": true
- },
- "@swc/wasm": {
- "optional": true
- }
- }
- },
- "node_modules/ts-node/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
"node_modules/tsec": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/tsec/-/tsec-0.2.7.tgz",
@@ -20516,6 +20414,489 @@
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
"dev": true
},
+ "node_modules/tsx": {
+ "version": "4.19.2",
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.19.2.tgz",
+ "integrity": "sha512-pOUl6Vo2LUq/bSa8S5q7b91cgNSjctn9ugq/+Mvow99qW6x/UZYwzxy/3NmqoT66eHYfCVvFvACC58UBPFf28g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "~0.23.0",
+ "get-tsconfig": "^4.7.5"
+ },
+ "bin": {
+ "tsx": "dist/cli.mjs"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/aix-ppc64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.1.tgz",
+ "integrity": "sha512-6VhYk1diRqrhBAqpJEdjASR/+WVRtfjpqKuNw11cLiaWpAT/Uu+nokB+UJnevzy/P9C/ty6AOe0dwueMrGh/iQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/android-arm": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.1.tgz",
+ "integrity": "sha512-uz6/tEy2IFm9RYOyvKl88zdzZfwEfKZmnX9Cj1BHjeSGNuGLuMD1kR8y5bteYmwqKm1tj8m4cb/aKEorr6fHWQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/android-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.1.tgz",
+ "integrity": "sha512-xw50ipykXcLstLeWH7WRdQuysJqejuAGPd30vd1i5zSyKK3WE+ijzHmLKxdiCMtH1pHz78rOg0BKSYOSB/2Khw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/android-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.1.tgz",
+ "integrity": "sha512-nlN9B69St9BwUoB+jkyU090bru8L0NA3yFvAd7k8dNsVH8bi9a8cUAUSEcEEgTp2z3dbEDGJGfP6VUnkQnlReg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/darwin-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.1.tgz",
+ "integrity": "sha512-YsS2e3Wtgnw7Wq53XXBLcV6JhRsEq8hkfg91ESVadIrzr9wO6jJDMZnCQbHm1Guc5t/CdDiFSSfWP58FNuvT3Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/darwin-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.1.tgz",
+ "integrity": "sha512-aClqdgTDVPSEGgoCS8QDG37Gu8yc9lTHNAQlsztQ6ENetKEO//b8y31MMu2ZaPbn4kVsIABzVLXYLhCGekGDqw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.1.tgz",
+ "integrity": "sha512-h1k6yS8/pN/NHlMl5+v4XPfikhJulk4G+tKGFIOwURBSFzE8bixw1ebjluLOjfwtLqY0kewfjLSrO6tN2MgIhA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/freebsd-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.1.tgz",
+ "integrity": "sha512-lK1eJeyk1ZX8UklqFd/3A60UuZ/6UVfGT2LuGo3Wp4/z7eRTRYY+0xOu2kpClP+vMTi9wKOfXi2vjUpO1Ro76g==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-arm": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.1.tgz",
+ "integrity": "sha512-CXXkzgn+dXAPs3WBwE+Kvnrf4WECwBdfjfeYHpMeVxWE0EceB6vhWGShs6wi0IYEqMSIzdOF1XjQ/Mkm5d7ZdQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.1.tgz",
+ "integrity": "sha512-/93bf2yxencYDnItMYV/v116zff6UyTjo4EtEQjUBeGiVpMmffDNUyD9UN2zV+V3LRV3/on4xdZ26NKzn6754g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-ia32": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.1.tgz",
+ "integrity": "sha512-VTN4EuOHwXEkXzX5nTvVY4s7E/Krz7COC8xkftbbKRYAl96vPiUssGkeMELQMOnLOJ8k3BY1+ZY52tttZnHcXQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-loong64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.1.tgz",
+ "integrity": "sha512-Vx09LzEoBa5zDnieH8LSMRToj7ir/Jeq0Gu6qJ/1GcBq9GkfoEAoXvLiW1U9J1qE/Y/Oyaq33w5p2ZWrNNHNEw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-mips64el": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.1.tgz",
+ "integrity": "sha512-nrFzzMQ7W4WRLNUOU5dlWAqa6yVeI0P78WKGUo7lg2HShq/yx+UYkeNSE0SSfSure0SqgnsxPvmAUu/vu0E+3Q==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-ppc64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.1.tgz",
+ "integrity": "sha512-dKN8fgVqd0vUIjxuJI6P/9SSSe/mB9rvA98CSH2sJnlZ/OCZWO1DJvxj8jvKTfYUdGfcq2dDxoKaC6bHuTlgcw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-riscv64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.1.tgz",
+ "integrity": "sha512-5AV4Pzp80fhHL83JM6LoA6pTQVWgB1HovMBsLQ9OZWLDqVY8MVobBXNSmAJi//Csh6tcY7e7Lny2Hg1tElMjIA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-s390x": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.1.tgz",
+ "integrity": "sha512-9ygs73tuFCe6f6m/Tb+9LtYxWR4c9yg7zjt2cYkjDbDpV/xVn+68cQxMXCjUpYwEkze2RcU/rMnfIXNRFmSoDw==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/linux-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.1.tgz",
+ "integrity": "sha512-EV6+ovTsEXCPAp58g2dD68LxoP/wK5pRvgy0J/HxPGB009omFPv3Yet0HiaqvrIrgPTBuC6wCH1LTOY91EO5hQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/netbsd-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.1.tgz",
+ "integrity": "sha512-aevEkCNu7KlPRpYLjwmdcuNz6bDFiE7Z8XC4CPqExjTvrHugh28QzUXVOZtiYghciKUacNktqxdpymplil1beA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.1.tgz",
+ "integrity": "sha512-3x37szhLexNA4bXhLrCC/LImN/YtWis6WXr1VESlfVtVeoFJBRINPJ3f0a/6LV8zpikqoUg4hyXw0sFBt5Cr+Q==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/openbsd-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.1.tgz",
+ "integrity": "sha512-aY2gMmKmPhxfU+0EdnN+XNtGbjfQgwZj43k8G3fyrDM/UdZww6xrWxmDkuz2eCZchqVeABjV5BpildOrUbBTqA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/sunos-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.1.tgz",
+ "integrity": "sha512-RBRT2gqEl0IKQABT4XTj78tpk9v7ehp+mazn2HbUeZl1YMdaGAQqhapjGTCe7uw7y0frDi4gS0uHzhvpFuI1sA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/win32-arm64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.1.tgz",
+ "integrity": "sha512-4O+gPR5rEBe2FpKOVyiJ7wNDPA8nGzDuJ6gN4okSA1gEOYZ67N8JPk58tkWtdtPeLz7lBnY6I5L3jdsr3S+A6A==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/win32-ia32": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.1.tgz",
+ "integrity": "sha512-BcaL0Vn6QwCwre3Y717nVHZbAa4UBEigzFm6VdsVdT/MbZ38xoj1X9HPkZhbmaBGUD1W8vxAfffbDe8bA6AKnQ==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/@esbuild/win32-x64": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.1.tgz",
+ "integrity": "sha512-BHpFFeslkWrXWyUPnbKm+xYYVYruCinGcftSBaa8zoF9hZO4BcSCFUvHVTtzpIY6YzUnYtuEhZ+C9iEXjxnasg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tsx/node_modules/esbuild": {
+ "version": "0.23.1",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz",
+ "integrity": "sha512-VVNz/9Sa0bs5SELtn3f7qhJCDPCF5oMEl5cO9/SSinpE9hbPVvxbd572HH5AKiP7WD8INO53GgfDDhRjkylHEg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.23.1",
+ "@esbuild/android-arm": "0.23.1",
+ "@esbuild/android-arm64": "0.23.1",
+ "@esbuild/android-x64": "0.23.1",
+ "@esbuild/darwin-arm64": "0.23.1",
+ "@esbuild/darwin-x64": "0.23.1",
+ "@esbuild/freebsd-arm64": "0.23.1",
+ "@esbuild/freebsd-x64": "0.23.1",
+ "@esbuild/linux-arm": "0.23.1",
+ "@esbuild/linux-arm64": "0.23.1",
+ "@esbuild/linux-ia32": "0.23.1",
+ "@esbuild/linux-loong64": "0.23.1",
+ "@esbuild/linux-mips64el": "0.23.1",
+ "@esbuild/linux-ppc64": "0.23.1",
+ "@esbuild/linux-riscv64": "0.23.1",
+ "@esbuild/linux-s390x": "0.23.1",
+ "@esbuild/linux-x64": "0.23.1",
+ "@esbuild/netbsd-x64": "0.23.1",
+ "@esbuild/openbsd-arm64": "0.23.1",
+ "@esbuild/openbsd-x64": "0.23.1",
+ "@esbuild/sunos-x64": "0.23.1",
+ "@esbuild/win32-arm64": "0.23.1",
+ "@esbuild/win32-ia32": "0.23.1",
+ "@esbuild/win32-x64": "0.23.1"
+ }
+ },
+ "node_modules/tsx/node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
"node_modules/tunnel": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz",
@@ -20672,10 +21053,11 @@
"dev": true
},
"node_modules/typescript": {
- "version": "5.7.0-dev.20240903",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.0-dev.20240903.tgz",
- "integrity": "sha512-XTUc5uVwBbLlT0v3FqTx9sDN1MLQnT5mwSC3JefCrcKT6Zv+rPcQE7HLKM9IsrNiM1tiaQvamJTgVH0S+UMH2A==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
+ "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
"dev": true,
+ "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -20967,12 +21349,6 @@
"uuid": "dist/bin/uuid"
}
},
- "node_modules/v8-compile-cache-lib": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
- "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
- "dev": true
- },
"node_modules/v8-inspect-profiler": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/v8-inspect-profiler/-/v8-inspect-profiler-0.1.1.tgz",
@@ -21870,15 +22246,6 @@
"node": ">= 4.0.0"
}
},
- "node_modules/yn": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
- "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index bf0142cb..c8759228 100644
--- a/package.json
+++ b/package.json
@@ -220,11 +220,11 @@
"source-map-support": "^0.3.2",
"style-loader": "^3.3.2",
"ts-loader": "^9.4.2",
- "ts-node": "^10.9.1",
"tsec": "0.2.7",
"tslib": "^2.6.3",
"tsup": "^8.3.5",
- "typescript": "^5.7.0-dev.20240903",
+ "tsx": "^4.19.2",
+ "typescript": "^5.6.3",
"util": "^0.12.4",
"webpack": "^5.94.0",
"webpack-cli": "^5.1.4",
diff --git a/src/vs/workbench/contrib/void/browser/void/src/extension/DiffProvider.ts b/src/vs/workbench/contrib/void/browser/misc/DiffProvider.ts
similarity index 98%
rename from src/vs/workbench/contrib/void/browser/void/src/extension/DiffProvider.ts
rename to src/vs/workbench/contrib/void/browser/misc/DiffProvider.ts
index 853a544f..032b0892 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/extension/DiffProvider.ts
+++ b/src/vs/workbench/contrib/void/browser/misc/DiffProvider.ts
@@ -1,11 +1,11 @@
import * as vscode from 'vscode';
-import { findDiffs } from './findDiffs';
+import { findDiffs } from './src/extension/findDiffs';
import { throttle } from 'lodash';
import { DiffArea, BaseDiff, Diff } from '../common/shared_types';
-import { readFileContentOfUri } from './extensionLib/readFileContentOfUri';
+import { readFileContentOfUri } from './src/extension/extensionLib/readFileContentOfUri';
import { AbortRef, sendLLMMessage } from '../common/sendLLMMessage';
import { writeFileWithDiffInstructions } from '../common/systemPrompts';
-import { VoidConfig } from '../webviews/common/contextForConfig';
+import { VoidConfig } from './src/webviews/common/contextForConfig';
const THROTTLE_TIME = 100
diff --git a/src/vs/workbench/contrib/void/browser/void/build/build.js b/src/vs/workbench/contrib/void/browser/misc/build.js
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/build/build.js
rename to src/vs/workbench/contrib/void/browser/misc/build.js
diff --git a/src/vs/workbench/contrib/void/browser/void/src/extension/extension.ts b/src/vs/workbench/contrib/void/browser/misc/extension.ts
similarity index 98%
rename from src/vs/workbench/contrib/void/browser/void/src/extension/extension.ts
rename to src/vs/workbench/contrib/void/browser/misc/extension.ts
index ef975b67..fb8b46f9 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/extension/extension.ts
+++ b/src/vs/workbench/contrib/void/browser/misc/extension.ts
@@ -4,9 +4,9 @@ import { v4 as uuidv4 } from 'uuid'
import { AbortRef } from '../common/sendLLMMessage';
import { MessageToSidebar, MessageFromSidebar, DiffArea, ChatThreads } from '../common/shared_types';
import { getVoidConfigFromPartial } from '../webviews/common/contextForConfig';
-import { DiffProvider } from './DiffProvider';
+import { DiffProvider } from '../../DiffProvider';
import { readFileContentOfUri } from './extensionLib/readFileContentOfUri';
-import { SidebarWebviewProvider } from './providers/SidebarWebviewProvider';
+import { SidebarWebviewProvider } from '../sidebar/SidebarWebviewProvider';
import { CtrlKWebviewProvider } from './providers/CtrlKWebviewProvider';
const roundRangeToLines = (selection: vscode.Selection) => {
diff --git a/src/vs/workbench/contrib/void/browser/void/package.json b/src/vs/workbench/contrib/void/browser/misc/oldpackage.json
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/package.json
rename to src/vs/workbench/contrib/void/browser/misc/oldpackage.json
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/styles.css b/src/vs/workbench/contrib/void/browser/misc/styles.css
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/styles.css
rename to src/vs/workbench/contrib/void/browser/misc/styles.css
diff --git a/src/vs/workbench/contrib/void/browser/void/tailwind.config.js b/src/vs/workbench/contrib/void/browser/misc/tailwind.config.js
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/tailwind.config.js
rename to src/vs/workbench/contrib/void/browser/misc/tailwind.config.js
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscode/extensions.json b/src/vs/workbench/contrib/void/browser/sidebar/.vscode/extensions.json
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/.vscode/extensions.json
rename to src/vs/workbench/contrib/void/browser/sidebar/.vscode/extensions.json
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscode/launch.json b/src/vs/workbench/contrib/void/browser/sidebar/.vscode/launch.json
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/.vscode/launch.json
rename to src/vs/workbench/contrib/void/browser/sidebar/.vscode/launch.json
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscode/settings.json b/src/vs/workbench/contrib/void/browser/sidebar/.vscode/settings.json
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/.vscode/settings.json
rename to src/vs/workbench/contrib/void/browser/sidebar/.vscode/settings.json
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscode/tasks.json b/src/vs/workbench/contrib/void/browser/sidebar/.vscode/tasks.json
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/.vscode/tasks.json
rename to src/vs/workbench/contrib/void/browser/sidebar/.vscode/tasks.json
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/Sidebar.tsx b/src/vs/workbench/contrib/void/browser/sidebar/Sidebar.tsx
similarity index 72%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/Sidebar.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/Sidebar.tsx
index 70bf1c3b..b04548de 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/Sidebar.tsx
+++ b/src/vs/workbench/contrib/void/browser/sidebar/Sidebar.tsx
@@ -1,11 +1,7 @@
-import React, { useState, useEffect, useRef, useCallback, FormEvent } from "react"
-import { CodeSelection, ChatMessage, MessageToSidebar } from "../../common/shared_types"
-import { awaitVSCodeResponse, getVSCodeAPI, onMessageFromVSCode, useOnVSCodeMessage } from "../common/getVscodeApi"
-
-import { SidebarThreadSelector } from "./SidebarThreadSelector";
-import { SidebarChat } from "./SidebarChat";
-import { SidebarSettings } from "./SidebarSettings";
-import { identifyUser } from "../common/posthog";
+import React, { useState, useRef } from '../void-imports/react.js'
+import { SidebarThreadSelector } from './SidebarThreadSelector.js';
+import { SidebarChat } from './SidebarChat.js';
+import { SidebarSettings } from './SidebarSettings.js';
const Sidebar = () => {
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarChat.tsx b/src/vs/workbench/contrib/void/browser/sidebar/SidebarChat.tsx
similarity index 97%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarChat.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/SidebarChat.tsx
index 81591fa4..746b51e6 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarChat.tsx
+++ b/src/vs/workbench/contrib/void/browser/sidebar/SidebarChat.tsx
@@ -6,11 +6,11 @@ import MarkdownRender from "./markdown/MarkdownRender";
import BlockCode from "./markdown/BlockCode";
import { File, ChatMessage, CodeSelection } from "../../common/shared_types";
import * as vscode from 'vscode'
-import { awaitVSCodeResponse, getVSCodeAPI, onMessageFromVSCode, useOnVSCodeMessage } from "../common/getVscodeApi";
-import { useThreads } from "../common/contextForThreads";
+import { awaitVSCodeResponse, getVSCodeAPI, onMessageFromVSCode, useOnVSCodeMessage } from "../util/getVscodeApi";
+import { useThreads } from "../util/contextForThreads";
import { sendLLMMessage } from "../../common/sendLLMMessage";
-import { useVoidConfig } from "../common/contextForConfig";
-import { captureEvent } from "../common/posthog";
+import { useVoidConfig } from "../util/contextForConfig";
+import { captureEvent } from "../util/posthog";
import { generateDiffInstructions } from "../../common/systemPrompts";
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarSettings.tsx b/src/vs/workbench/contrib/void/browser/sidebar/SidebarSettings.tsx
similarity index 99%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarSettings.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/SidebarSettings.tsx
index f144fd11..48ff3eab 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarSettings.tsx
+++ b/src/vs/workbench/contrib/void/browser/sidebar/SidebarSettings.tsx
@@ -1,5 +1,5 @@
import React, { useState } from "react";
-import { configFields, useVoidConfig, VoidConfigField } from "../common/contextForConfig";
+import { configFields, useVoidConfig, VoidConfigField } from "../util/contextForConfig";
const SettingOfFieldAndParam = ({ field, param }: { field: VoidConfigField, param: string }) => {
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarThreadSelector.tsx b/src/vs/workbench/contrib/void/browser/sidebar/SidebarThreadSelector.tsx
similarity index 96%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarThreadSelector.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/SidebarThreadSelector.tsx
index 3d785d1b..aa09456c 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/SidebarThreadSelector.tsx
+++ b/src/vs/workbench/contrib/void/browser/sidebar/SidebarThreadSelector.tsx
@@ -1,5 +1,5 @@
import React from "react";
-import { ThreadsProvider, useThreads } from "../common/contextForThreads";
+import { ThreadsProvider, useThreads } from "../util/contextForThreads";
const truncate = (s: string) => {
@@ -76,4 +76,4 @@ export const SidebarThreadSelector = ({ onClose }: { onClose: () => void }) => {
)
-}
\ No newline at end of file
+}
diff --git a/src/vs/workbench/contrib/void/browser/void/src/extension/providers/SidebarWebviewProvider.ts b/src/vs/workbench/contrib/void/browser/sidebar/SidebarWebviewProvider.ts
similarity index 92%
rename from src/vs/workbench/contrib/void/browser/void/src/extension/providers/SidebarWebviewProvider.ts
rename to src/vs/workbench/contrib/void/browser/sidebar/SidebarWebviewProvider.ts
index 0ca1d895..08191944 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/extension/providers/SidebarWebviewProvider.ts
+++ b/src/vs/workbench/contrib/void/browser/sidebar/SidebarWebviewProvider.ts
@@ -1,7 +1,7 @@
// renders the code from `src/sidebar`
import * as vscode from 'vscode';
-import { updateWebviewHTML as _updateWebviewHTML } from '../extensionLib/updateWebviewHTML';
+import { updateWebviewHTML as _updateWebviewHTML } from './src/extension/extensionLib/updateWebviewHTML';
export class SidebarWebviewProvider implements vscode.WebviewViewProvider {
public static readonly viewId = 'void.viewnumberone';
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForConfig.tsx b/src/vs/workbench/contrib/void/browser/sidebar/contextForConfig.tsx
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForConfig.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/contextForConfig.tsx
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForProps.tsx b/src/vs/workbench/contrib/void/browser/sidebar/contextForProps.tsx
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForProps.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/contextForProps.tsx
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForThreads.tsx b/src/vs/workbench/contrib/void/browser/sidebar/contextForThreads.tsx
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/common/contextForThreads.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/contextForThreads.tsx
diff --git a/src/vs/workbench/contrib/void/browser/sidebar/index.tsx b/src/vs/workbench/contrib/void/browser/sidebar/index.tsx
new file mode 100644
index 00000000..966a0a77
--- /dev/null
+++ b/src/vs/workbench/contrib/void/browser/sidebar/index.tsx
@@ -0,0 +1,7 @@
+// import React from "react"
+// import Sidebar from "./Sidebar"
+// import { mount } from "../util/mount"
+
+// this is the entry point that mounts the sidebar
+mount()
+
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/markdown/BlockCode.tsx b/src/vs/workbench/contrib/void/browser/sidebar/markdown/BlockCode.tsx
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/markdown/BlockCode.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/markdown/BlockCode.tsx
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/markdown/MarkdownRender.tsx b/src/vs/workbench/contrib/void/browser/sidebar/markdown/MarkdownRender.tsx
similarity index 98%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/markdown/MarkdownRender.tsx
rename to src/vs/workbench/contrib/void/browser/sidebar/markdown/MarkdownRender.tsx
index cbdb82d1..91480087 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/sidebar/markdown/MarkdownRender.tsx
+++ b/src/vs/workbench/contrib/void/browser/sidebar/markdown/MarkdownRender.tsx
@@ -1,7 +1,7 @@
import React, { JSX, useCallback, useEffect, useState } from "react"
import { marked, MarkedToken, Token, TokensList } from "marked"
import BlockCode from "./BlockCode"
-import { getVSCodeAPI } from "../../common/getVscodeApi"
+import { getVSCodeAPI } from "../../util/getVscodeApi"
enum CopyButtonState {
diff --git a/src/vs/workbench/contrib/void/browser/void/src/webviews/common/posthog.ts b/src/vs/workbench/contrib/void/browser/util/posthog.ts
similarity index 92%
rename from src/vs/workbench/contrib/void/browser/void/src/webviews/common/posthog.ts
rename to src/vs/workbench/contrib/void/browser/util/posthog.ts
index 72e95ccc..cccf2010 100644
--- a/src/vs/workbench/contrib/void/browser/void/src/webviews/common/posthog.ts
+++ b/src/vs/workbench/contrib/void/browser/util/posthog.ts
@@ -1,5 +1,4 @@
-import posthog from 'posthog-js'
-
+import posthog from '../void-imports/posthog-js.js'
export const identifyUser = (id: string) => {
posthog.identify(id)
diff --git a/src/vs/workbench/contrib/void/browser/void/src/common/sendLLMMessage.ts b/src/vs/workbench/contrib/void/browser/util/sendLLMMessage.ts
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/common/sendLLMMessage.ts
rename to src/vs/workbench/contrib/void/browser/util/sendLLMMessage.ts
diff --git a/src/vs/workbench/contrib/void/browser/void/src/common/shared_types.ts b/src/vs/workbench/contrib/void/browser/util/shared_types.ts
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/common/shared_types.ts
rename to src/vs/workbench/contrib/void/browser/util/shared_types.ts
diff --git a/src/vs/workbench/contrib/void/browser/void/src/common/systemPrompts.ts b/src/vs/workbench/contrib/void/browser/util/systemPrompts.ts
similarity index 100%
rename from src/vs/workbench/contrib/void/browser/void/src/common/systemPrompts.ts
rename to src/vs/workbench/contrib/void/browser/util/systemPrompts.ts
diff --git a/src/vs/workbench/contrib/void/browser/void/.eslintrc b/src/vs/workbench/contrib/void/browser/void/.eslintrc
deleted file mode 100644
index f47a9afd..00000000
--- a/src/vs/workbench/contrib/void/browser/void/.eslintrc
+++ /dev/null
@@ -1,56 +0,0 @@
-{
- "root": true,
- "parser": "@typescript-eslint/parser",
- "parserOptions": {
- "ecmaVersion": 6,
- "sourceType": "module",
- "ecmaFeatures": {
- "jsx": true
- }
- },
- "plugins": [
- "@typescript-eslint",
- "react",
- "react-hooks"
- ],
- "extends": [
- "eslint:recommended",
- "plugin:react/recommended",
- "plugin:react-hooks/recommended"
- ],
- "rules": {
- "@typescript-eslint/naming-convention": [
- "warn",
- {
- "selector": "import",
- "format": [
- "camelCase",
- "PascalCase"
- ]
- }
- ],
- "curly": "off",
- "eqeqeq": "warn",
- "no-empty": "off",
- "no-throw-literal": "warn",
- "semi": "off",
- "no-unused-vars": "off",
- "react-hooks/exhaustive-deps": "warn"
- },
- "ignorePatterns": [
- "out",
- "dist",
- "**/*.d.ts"
- ],
- "settings": {
- "react": {
- "version": "detect"
- }
- },
- "env": {
- "browser": true, // enable browser globals linting (window, document, console, etc)
- "es6": true, // enable ES6 linting
- "node": true, // enable Node linting (things like Buffer which is used in file reading, etc)
- "mocha": true // enable Mocha linting
- }
-}
\ No newline at end of file
diff --git a/src/vs/workbench/contrib/void/browser/void/.gitignore b/src/vs/workbench/contrib/void/browser/void/.gitignore
deleted file mode 100644
index 0b60dfa1..00000000
--- a/src/vs/workbench/contrib/void/browser/void/.gitignore
+++ /dev/null
@@ -1,5 +0,0 @@
-out
-dist
-node_modules
-.vscode-test/
-*.vsix
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscode-test.mjs b/src/vs/workbench/contrib/void/browser/void/.vscode-test.mjs
deleted file mode 100644
index b62ba25f..00000000
--- a/src/vs/workbench/contrib/void/browser/void/.vscode-test.mjs
+++ /dev/null
@@ -1,5 +0,0 @@
-import { defineConfig } from '@vscode/test-cli';
-
-export default defineConfig({
- files: 'out/test/**/*.test.js',
-});
diff --git a/src/vs/workbench/contrib/void/browser/void/.vscodeignore b/src/vs/workbench/contrib/void/browser/void/.vscodeignore
deleted file mode 100644
index 72aa0fe2..00000000
--- a/src/vs/workbench/contrib/void/browser/void/.vscodeignore
+++ /dev/null
@@ -1,11 +0,0 @@
-.vscode/**
-.vscode-test/**
-src/**
-.gitignore
-.yarnrc
-vsc-extension-quickstart.md
-**/tsconfig.json
-**/.eslintrc.json
-**/*.map
-**/*.ts
-**/.vscode-test.*
diff --git a/src/vs/workbench/contrib/void/browser/void/README.md b/src/vs/workbench/contrib/void/browser/void/README.md
deleted file mode 100644
index d455ba30..00000000
--- a/src/vs/workbench/contrib/void/browser/void/README.md
+++ /dev/null
@@ -1,11 +0,0 @@
-Please see the `CONTRIBUTING.md` for information on how to contribute :)!
-
-
-Here's an overview on how the extension works:
-
-- The extension mounts in `extension.ts`.
-
-- The Sidebar's HTML (everything in `sidebar/`) is built in React, and it's rendered by mounting a `
-