diff --git a/packages/runtime-tests/integration/pty/fixtures/tsconfig.json b/packages/runtime-tests/integration/pty/fixtures/tsconfig.json new file mode 100644 index 0000000..835737f --- /dev/null +++ b/packages/runtime-tests/integration/pty/fixtures/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "jsxImportSource": "vue", + "module": "nodenext", + "moduleResolution": "nodenext", + "target": "esnext", + "strict": true, + "skipLibCheck": true + } +} diff --git a/packages/runtime-tests/integration/pty/helpers/.gitkeep b/packages/runtime-tests/integration/pty/helpers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/packages/runtime-tests/package.json b/packages/runtime-tests/package.json index 55d95f9..b7029d7 100644 --- a/packages/runtime-tests/package.json +++ b/packages/runtime-tests/package.json @@ -13,7 +13,9 @@ "@vue-tui/runtime": "workspace:*", "@vue-tui/testing": "workspace:*", "chalk": "catalog:", + "node-pty": "catalog:", "strip-ansi": "catalog:", + "tsx": "catalog:", "typescript": "^6.0.3", "vite-plus": "^0.1.22", "vue": "^3.5.34" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1da3dfe..cebe136 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,9 @@ catalogs: is-in-ci: specifier: ^1.0.0 version: 1.0.0 + node-pty: + specifier: ^1.0.0 + version: 1.1.0 patch-console: specifier: ^2.0.0 version: 2.0.0 @@ -30,6 +33,9 @@ catalogs: terminal-size: specifier: ^4.0.1 version: 4.0.1 + tsx: + specifier: ^4.22.0 + version: 4.22.3 vite-plus: specifier: ^0.1.22 version: 0.1.22 @@ -44,7 +50,7 @@ importers: devDependencies: vite-plus: specifier: 'catalog:' - version: 0.1.22(@types/node@25.9.1)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)) + version: 0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)) examples/basic-jsx: dependencies: @@ -63,10 +69,10 @@ importers: version: 24.12.4 '@vitejs/plugin-vue-jsx': specifier: ^5 - version: 5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) + version: 5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) vite: specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' examples/basic-template: dependencies: @@ -85,10 +91,10 @@ importers: version: 24.12.4 '@vitejs/plugin-vue': specifier: ^6 - version: 6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) + version: 6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) vite: specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' examples/coding-agent: dependencies: @@ -110,10 +116,10 @@ importers: version: 24.12.4 '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) + version: 5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) vite: specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' examples/flappy-bird: dependencies: @@ -132,23 +138,23 @@ importers: version: 24.12.4 '@vitejs/plugin-vue': specifier: ^6 - version: 6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) + version: 6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3)) vite: specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' packages/cli: dependencies: vite: specifier: npm:@voidzero-dev/vite-plus-core@latest - version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + version: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' devDependencies: '@types/node': specifier: 'catalog:' version: 24.12.4 vite-plus: specifier: 'catalog:' - version: 0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(typescript@6.0.3) + version: 0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) packages/runtime: dependencies: @@ -194,13 +200,13 @@ importers: version: 25.8.0 '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(vite@8.0.13(@types/node@25.8.0))(vue@3.5.34(typescript@6.0.3)) + version: 5.1.5(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3))(vue@3.5.34(typescript@6.0.3)) typescript: specifier: ^6.0.3 version: 6.0.3 vite-plus: specifier: ^0.1.20 - version: 0.1.22(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)) + version: 0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)) vue: specifier: ^3.4.0 version: 3.5.34(typescript@6.0.3) @@ -212,7 +218,7 @@ importers: version: 25.9.1 '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(vite@8.0.13(@types/node@25.9.1))(vue@3.5.34(typescript@6.0.3)) + version: 5.1.5(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3))(vue@3.5.34(typescript@6.0.3)) '@vue-tui/runtime': specifier: workspace:* version: link:../runtime @@ -222,15 +228,21 @@ importers: chalk: specifier: 'catalog:' version: 5.6.2 + node-pty: + specifier: 'catalog:' + version: 1.1.0 strip-ansi: specifier: 'catalog:' version: 7.2.0 + tsx: + specifier: 'catalog:' + version: 4.22.3 typescript: specifier: ^6.0.3 version: 6.0.3 vite-plus: specifier: ^0.1.22 - version: 0.1.22(@types/node@25.9.1)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)) + version: 0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)) vue: specifier: ^3.5.34 version: 3.5.34(typescript@6.0.3) @@ -246,13 +258,13 @@ importers: version: 25.8.0 '@vitejs/plugin-vue-jsx': specifier: 'catalog:' - version: 5.1.5(vite@8.0.13(@types/node@25.8.0))(vue@3.5.34(typescript@6.0.3)) + version: 5.1.5(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3))(vue@3.5.34(typescript@6.0.3)) typescript: specifier: ^6.0.3 version: 6.0.3 vite-plus: specifier: ^0.1.20 - version: 0.1.21(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)) + version: 0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)) vue: specifier: ^3.4.0 version: 3.5.34(typescript@6.0.3) @@ -389,6 +401,162 @@ packages: '@emnapi/wasi-threads@1.2.1': resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==} + '@esbuild/aix-ppc64@0.28.0': + resolution: {integrity: sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.28.0': + resolution: {integrity: sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.28.0': + resolution: {integrity: sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==} + engines: {node: '>=18'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.28.0': + resolution: {integrity: sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==} + engines: {node: '>=18'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.28.0': + resolution: {integrity: sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.28.0': + resolution: {integrity: sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.28.0': + resolution: {integrity: sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==} + engines: {node: '>=18'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.28.0': + resolution: {integrity: sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==} + engines: {node: '>=18'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.28.0': + resolution: {integrity: sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==} + engines: {node: '>=18'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.28.0': + resolution: {integrity: sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==} + engines: {node: '>=18'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.28.0': + resolution: {integrity: sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==} + engines: {node: '>=18'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.28.0': + resolution: {integrity: sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==} + engines: {node: '>=18'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.28.0': + resolution: {integrity: sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==} + engines: {node: '>=18'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.28.0': + resolution: {integrity: sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==} + engines: {node: '>=18'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.28.0': + resolution: {integrity: sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==} + engines: {node: '>=18'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.28.0': + resolution: {integrity: sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==} + engines: {node: '>=18'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.28.0': + resolution: {integrity: sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==} + engines: {node: '>=18'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-arm64@0.28.0': + resolution: {integrity: sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==} + engines: {node: '>=18'} + cpu: [arm64] + os: [netbsd] + + '@esbuild/netbsd-x64@0.28.0': + resolution: {integrity: sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==} + engines: {node: '>=18'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-arm64@0.28.0': + resolution: {integrity: sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openbsd] + + '@esbuild/openbsd-x64@0.28.0': + resolution: {integrity: sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==} + engines: {node: '>=18'} + cpu: [x64] + os: [openbsd] + + '@esbuild/openharmony-arm64@0.28.0': + resolution: {integrity: sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==} + engines: {node: '>=18'} + cpu: [arm64] + os: [openharmony] + + '@esbuild/sunos-x64@0.28.0': + resolution: {integrity: sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==} + engines: {node: '>=18'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.28.0': + resolution: {integrity: sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==} + engines: {node: '>=18'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.28.0': + resolution: {integrity: sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==} + engines: {node: '>=18'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.28.0': + resolution: {integrity: sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==} + engines: {node: '>=18'} + cpu: [x64] + os: [win32] + '@jridgewell/gen-mapping@0.3.13': resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} @@ -1298,6 +1466,11 @@ packages: resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} + esbuild@0.28.0: + resolution: {integrity: sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==} + engines: {node: '>=18'} + hasBin: true + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1506,6 +1679,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} engines: {node: '>=10.5.0'} @@ -1520,6 +1696,9 @@ packages: encoding: optional: true + node-pty@1.1.0: + resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==} + node-releases@2.0.46: resolution: {integrity: sha512-GYVXHE2KnrzAfsAjl4uP++evGFCrAU1jta4ubEjIG7YWt/64Gqv66a30yKwWczVjA6j3bM4nBwH7Pk1JmDHaxQ==} engines: {node: '>=18'} @@ -1662,6 +1841,11 @@ packages: tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + tsx@4.22.3: + resolution: {integrity: sha512-mdoNxBC/cSQObGGVQ5Bpn5i+yv7j68gk3Nfm3wFjcJg3Z0Mix9jzAFfP12prmm5eVGmDKtp0yyArrs0Q+8gZHg==} + engines: {node: '>=18.0.0'} + hasBin: true + typescript@6.0.3: resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==} engines: {node: '>=14.17'} @@ -1977,6 +2161,84 @@ snapshots: tslib: 2.8.1 optional: true + '@esbuild/aix-ppc64@0.28.0': + optional: true + + '@esbuild/android-arm64@0.28.0': + optional: true + + '@esbuild/android-arm@0.28.0': + optional: true + + '@esbuild/android-x64@0.28.0': + optional: true + + '@esbuild/darwin-arm64@0.28.0': + optional: true + + '@esbuild/darwin-x64@0.28.0': + optional: true + + '@esbuild/freebsd-arm64@0.28.0': + optional: true + + '@esbuild/freebsd-x64@0.28.0': + optional: true + + '@esbuild/linux-arm64@0.28.0': + optional: true + + '@esbuild/linux-arm@0.28.0': + optional: true + + '@esbuild/linux-ia32@0.28.0': + optional: true + + '@esbuild/linux-loong64@0.28.0': + optional: true + + '@esbuild/linux-mips64el@0.28.0': + optional: true + + '@esbuild/linux-ppc64@0.28.0': + optional: true + + '@esbuild/linux-riscv64@0.28.0': + optional: true + + '@esbuild/linux-s390x@0.28.0': + optional: true + + '@esbuild/linux-x64@0.28.0': + optional: true + + '@esbuild/netbsd-arm64@0.28.0': + optional: true + + '@esbuild/netbsd-x64@0.28.0': + optional: true + + '@esbuild/openbsd-arm64@0.28.0': + optional: true + + '@esbuild/openbsd-x64@0.28.0': + optional: true + + '@esbuild/openharmony-arm64@0.28.0': + optional: true + + '@esbuild/sunos-x64@0.28.0': + optional: true + + '@esbuild/win32-arm64@0.28.0': + optional: true + + '@esbuild/win32-ia32@0.28.0': + optional: true + + '@esbuild/win32-x64@0.28.0': + optional: true + '@jridgewell/gen-mapping@0.3.13': dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -2231,49 +2493,49 @@ snapshots: dependencies: undici-types: 7.24.6 - '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.5(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' vue: 3.5.34(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.13(@types/node@25.8.0))(vue@3.5.34(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3))(vue@3.5.34(typescript@6.0.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.0.13(@types/node@25.8.0) + vite: 8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3) vue: 3.5.34(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.13(@types/node@25.9.1))(vue@3.5.34(typescript@6.0.3))': + '@vitejs/plugin-vue-jsx@5.1.5(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3))(vue@3.5.34(typescript@6.0.3))': dependencies: '@babel/core': 7.29.0 '@babel/plugin-syntax-typescript': 7.28.6(@babel/core@7.29.0) '@babel/plugin-transform-typescript': 7.28.6(@babel/core@7.29.0) '@rolldown/pluginutils': 1.0.1 '@vue/babel-plugin-jsx': 2.0.1(@babel/core@7.29.0) - vite: 8.0.13(@types/node@25.9.1) + vite: 8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3) vue: 3.5.34(typescript@6.0.3) transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3))': + '@vitejs/plugin-vue@6.0.7(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(vue@3.5.34(typescript@6.0.3))': dependencies: '@rolldown/pluginutils': 1.0.1 - vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' vue: 3.5.34(typescript@6.0.3) - '@voidzero-dev/vite-plus-core@0.1.21(@types/node@25.8.0)(typescript@6.0.3)': + '@voidzero-dev/vite-plus-core@0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)': dependencies: '@oxc-project/runtime': 0.129.0 '@oxc-project/types': 0.129.0 @@ -2281,10 +2543,12 @@ snapshots: postcss: 8.5.14 optionalDependencies: '@types/node': 25.8.0 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 typescript: 6.0.3 - '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)': + '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)': dependencies: '@oxc-project/runtime': 0.129.0 '@oxc-project/types': 0.129.0 @@ -2292,10 +2556,12 @@ snapshots: postcss: 8.5.14 optionalDependencies: '@types/node': 24.12.4 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 typescript: 6.0.3 - '@voidzero-dev/vite-plus-core@0.1.22(@types/node@25.8.0)(typescript@6.0.3)': + '@voidzero-dev/vite-plus-core@0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)': dependencies: '@oxc-project/runtime': 0.129.0 '@oxc-project/types': 0.129.0 @@ -2303,10 +2569,12 @@ snapshots: postcss: 8.5.14 optionalDependencies: '@types/node': 25.8.0 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 typescript: 6.0.3 - '@voidzero-dev/vite-plus-core@0.1.22(@types/node@25.9.1)(typescript@6.0.3)': + '@voidzero-dev/vite-plus-core@0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)': dependencies: '@oxc-project/runtime': 0.129.0 '@oxc-project/types': 0.129.0 @@ -2314,7 +2582,9 @@ snapshots: postcss: 8.5.14 optionalDependencies: '@types/node': 25.9.1 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 typescript: 6.0.3 '@voidzero-dev/vite-plus-darwin-arm64@0.1.21': @@ -2353,11 +2623,11 @@ snapshots: '@voidzero-dev/vite-plus-linux-x64-musl@0.1.22': optional: true - '@voidzero-dev/vite-plus-test@0.1.21(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0))': + '@voidzero-dev/vite-plus-test@0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3))': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.21(@types/node@25.8.0)(typescript@6.0.3) + '@voidzero-dev/vite-plus-core': 0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.2.0 @@ -2367,7 +2637,7 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.1.2 tinyglobby: 0.2.16 - vite: 8.0.13(@types/node@25.8.0) + vite: 8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3) ws: 8.20.1 optionalDependencies: '@types/node': 25.8.0 @@ -2393,11 +2663,11 @@ snapshots: - utf-8-validate - yaml - '@voidzero-dev/vite-plus-test@0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(typescript@6.0.3)': + '@voidzero-dev/vite-plus-test@0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@24.12.4)(typescript@6.0.3) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.2.0 @@ -2407,7 +2677,7 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.2.2 tinyglobby: 0.2.16 - vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3)' + vite: '@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)' ws: 8.21.0 optionalDependencies: '@types/node': 24.12.4 @@ -2433,11 +2703,11 @@ snapshots: - utf-8-validate - yaml - '@voidzero-dev/vite-plus-test@0.1.22(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0))': + '@voidzero-dev/vite-plus-test@0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3))': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.8.0)(typescript@6.0.3) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.2.0 @@ -2447,7 +2717,7 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.2.2 tinyglobby: 0.2.16 - vite: 8.0.13(@types/node@25.8.0) + vite: 8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3) ws: 8.21.0 optionalDependencies: '@types/node': 25.8.0 @@ -2473,11 +2743,11 @@ snapshots: - utf-8-validate - yaml - '@voidzero-dev/vite-plus-test@0.1.22(@types/node@25.9.1)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1))': + '@voidzero-dev/vite-plus-test@0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3))': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.9.1)(typescript@6.0.3) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) es-module-lexer: 1.7.0 obug: 2.1.1 pixelmatch: 7.2.0 @@ -2487,7 +2757,7 @@ snapshots: tinybench: 2.9.0 tinyexec: 1.2.2 tinyglobby: 0.2.16 - vite: 8.0.13(@types/node@25.9.1) + vite: 8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3) ws: 8.21.0 optionalDependencies: '@types/node': 25.9.1 @@ -2700,6 +2970,35 @@ snapshots: has-tostringtag: 1.0.2 hasown: 2.0.3 + esbuild@0.28.0: + optionalDependencies: + '@esbuild/aix-ppc64': 0.28.0 + '@esbuild/android-arm': 0.28.0 + '@esbuild/android-arm64': 0.28.0 + '@esbuild/android-x64': 0.28.0 + '@esbuild/darwin-arm64': 0.28.0 + '@esbuild/darwin-x64': 0.28.0 + '@esbuild/freebsd-arm64': 0.28.0 + '@esbuild/freebsd-x64': 0.28.0 + '@esbuild/linux-arm': 0.28.0 + '@esbuild/linux-arm64': 0.28.0 + '@esbuild/linux-ia32': 0.28.0 + '@esbuild/linux-loong64': 0.28.0 + '@esbuild/linux-mips64el': 0.28.0 + '@esbuild/linux-ppc64': 0.28.0 + '@esbuild/linux-riscv64': 0.28.0 + '@esbuild/linux-s390x': 0.28.0 + '@esbuild/linux-x64': 0.28.0 + '@esbuild/netbsd-arm64': 0.28.0 + '@esbuild/netbsd-x64': 0.28.0 + '@esbuild/openbsd-arm64': 0.28.0 + '@esbuild/openbsd-x64': 0.28.0 + '@esbuild/openharmony-arm64': 0.28.0 + '@esbuild/sunos-x64': 0.28.0 + '@esbuild/win32-arm64': 0.28.0 + '@esbuild/win32-ia32': 0.28.0 + '@esbuild/win32-x64': 0.28.0 + escalade@3.2.0: {} estree-walker@2.0.2: {} @@ -2861,12 +3160,18 @@ snapshots: nanoid@3.3.12: {} + node-addon-api@7.1.1: {} + node-domexception@1.0.0: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 + node-pty@1.1.0: + dependencies: + node-addon-api: 7.1.1 + node-releases@2.0.46: {} obug@2.1.1: {} @@ -3046,6 +3351,12 @@ snapshots: tslib@2.8.1: optional: true + tsx@4.22.3: + dependencies: + esbuild: 0.28.0 + optionalDependencies: + fsevents: 2.3.3 + typescript@6.0.3: {} undici-types@5.26.5: {} @@ -3060,11 +3371,11 @@ snapshots: escalade: 3.2.0 picocolors: 1.1.1 - vite-plus@0.1.21(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)): + vite-plus@0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)): dependencies: '@oxc-project/types': 0.129.0 - '@voidzero-dev/vite-plus-core': 0.1.21(@types/node@25.8.0)(typescript@6.0.3) - '@voidzero-dev/vite-plus-test': 0.1.21(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)) + '@voidzero-dev/vite-plus-core': 0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) + '@voidzero-dev/vite-plus-test': 0.1.21(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)) oxfmt: 0.48.0 oxlint: 1.63.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: 0.22.1 @@ -3108,12 +3419,12 @@ snapshots: - vite - yaml - vite-plus@0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(typescript@6.0.3): + vite-plus@0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3): dependencies: '@oxc-project/types': 0.129.0 '@oxlint/plugins': 1.61.0 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@24.12.4)(typescript@6.0.3) - '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(typescript@6.0.3))(typescript@6.0.3) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) + '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@0.1.22(@types/node@24.12.4)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3))(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) oxfmt: 0.48.0 oxlint: 1.63.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: 0.22.1 @@ -3157,12 +3468,12 @@ snapshots: - vite - yaml - vite-plus@0.1.22(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)): + vite-plus@0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)): dependencies: '@oxc-project/types': 0.129.0 '@oxlint/plugins': 1.61.0 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.8.0)(typescript@6.0.3) - '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@25.8.0)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) + '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3)) oxfmt: 0.48.0 oxlint: 1.63.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: 0.22.1 @@ -3206,12 +3517,12 @@ snapshots: - vite - yaml - vite-plus@0.1.22(@types/node@25.9.1)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)): + vite-plus@0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)): dependencies: '@oxc-project/types': 0.129.0 '@oxlint/plugins': 1.61.0 - '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.9.1)(typescript@6.0.3) - '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@25.9.1)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)) + '@voidzero-dev/vite-plus-core': 0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3) + '@voidzero-dev/vite-plus-test': 0.1.22(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)(typescript@6.0.3)(vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3)) oxfmt: 0.48.0 oxlint: 1.63.0(oxlint-tsgolint@0.22.1) oxlint-tsgolint: 0.22.1 @@ -3255,7 +3566,7 @@ snapshots: - vite - yaml - vite@8.0.13(@types/node@25.8.0): + vite@8.0.13(@types/node@25.8.0)(esbuild@0.28.0)(tsx@4.22.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -3264,9 +3575,11 @@ snapshots: tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.8.0 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 - vite@8.0.13(@types/node@25.9.1): + vite@8.0.13(@types/node@25.9.1)(esbuild@0.28.0)(tsx@4.22.3): dependencies: lightningcss: 1.32.0 picomatch: 4.0.4 @@ -3275,7 +3588,9 @@ snapshots: tinyglobby: 0.2.16 optionalDependencies: '@types/node': 25.9.1 + esbuild: 0.28.0 fsevents: 2.3.3 + tsx: 4.22.3 vue@3.5.34(typescript@6.0.3): dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 51a19cb..7f5d353 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -18,7 +18,9 @@ catalog: is-in-ci: ^1.0.0 patch-console: ^2.0.0 strip-ansi: ^7.2.0 + node-pty: ^1.0.0 terminal-size: ^4.0.1 + tsx: ^4.22.0 overrides: vite: "catalog:" vitest: "catalog:" @@ -29,3 +31,6 @@ peerDependencyRules: allowedVersions: vite: "*" vitest: "*" +allowBuilds: + esbuild: true + node-pty: true