diff --git a/package.json b/package.json index 5fcd837..bbca630 100644 --- a/package.json +++ b/package.json @@ -43,11 +43,9 @@ "react-stately": "^3.35.0", "remix-utils": "^8.0.0", "tailwind-merge": "^2.6.0", - "tailwindcss-react-aria-components": "^1.2.0", "undici": "^7.2.0", "usehooks-ts": "^3.1.0", - "vite-node": "^3.0.1", - "ws": "^8.18.0", + "ws": "^8.18.1", "yaml": "^2.7.0", "zod": "^3.24.1" }, @@ -55,6 +53,7 @@ "@babel/preset-typescript": "^7.26.0", "@biomejs/biome": "^1.9.4", "@react-router/dev": "^7.0.0", + "@types/websocket": "^1.0.10", "@types/ws": "^8.5.13", "autoprefixer": "^10.4.20", "babel-plugin-react-compiler": "19.0.0-beta-55955c9-20241229", @@ -64,8 +63,10 @@ "react-scan": "^0.1.0", "tailwindcss": "^3.4.17", "tailwindcss-animate": "^1.0.7", + "tailwindcss-react-aria-components": "^2.0.0", "typescript": "^5.7.2", "vite": "^6.0.6", + "vite-node": "^3.0.8", "vite-plugin-babel": "^1.3.0", "vite-tsconfig-paths": "^5.1.4" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e87c75e..5a52aed 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,7 +30,7 @@ importers: version: 5.1.1 '@kubernetes/client-node': specifier: ^0.22.3 - version: 0.22.3 + version: 0.22.3(bufferutil@4.0.9)(utf-8-validate@5.0.10) '@primer/octicons-react': specifier: ^19.14.0 version: 19.14.0(react@19.0.0) @@ -109,21 +109,15 @@ importers: tailwind-merge: specifier: ^2.6.0 version: 2.6.0 - tailwindcss-react-aria-components: - specifier: ^1.2.0 - version: 1.2.0(tailwindcss@3.4.17) undici: specifier: ^7.2.0 version: 7.2.0 usehooks-ts: specifier: ^3.1.0 version: 3.1.0(react@19.0.0) - vite-node: - specifier: ^3.0.1 - version: 3.0.1(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) ws: - specifier: ^8.18.0 - version: 8.18.0 + specifier: ^8.18.1 + version: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) yaml: specifier: ^2.7.0 version: 2.7.0 @@ -139,7 +133,10 @@ importers: version: 1.9.4 '@react-router/dev': specifier: ^7.0.0 - version: 7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) + version: 7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0) + '@types/websocket': + specifier: ^1.0.10 + version: 1.0.10 '@types/ws': specifier: ^8.5.13 version: 8.5.13 @@ -167,18 +164,24 @@ importers: tailwindcss-animate: specifier: ^1.0.7 version: 1.0.7(tailwindcss@3.4.17) + tailwindcss-react-aria-components: + specifier: ^2.0.0 + version: 2.0.0(tailwindcss@3.4.17) typescript: specifier: ^5.7.2 version: 5.7.2 vite: specifier: ^6.0.6 - version: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + version: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) + vite-node: + specifier: ^3.0.8 + version: 3.0.8(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) vite-plugin-babel: specifier: ^1.3.0 - version: 1.3.0(@babel/core@7.26.0)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0)) + version: 1.3.0(@babel/core@7.26.0)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0)) + version: 5.1.4(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)) packages: @@ -804,6 +807,9 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} + '@jridgewell/source-map@0.3.6': + resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} + '@jridgewell/sourcemap-codec@1.4.15': resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} @@ -1602,6 +1608,9 @@ packages: '@types/react@19.0.2': resolution: {integrity: sha512-USU8ZI/xyKJwFTpjSVIrSeHBVAGagkHQKPNbxeWwql/vDmnTIBgx+TJnhFnj1NXgz8XfprU0egV2dROLGpsBEg==} + '@types/websocket@1.0.10': + resolution: {integrity: sha512-svjGZvPB7EzuYS94cI7a+qhwgGU1y89wUgjT6E2wVUfmAGIvRfT7obBvRtnhXCSsoMdlG4gBFGE7MfkIXZLoww==} + '@types/ws@8.5.13': resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} @@ -1747,6 +1756,10 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + bufferutil@4.0.9: + resolution: {integrity: sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==} + engines: {node: '>=6.14.2'} + byline@5.0.0: resolution: {integrity: sha512-s6webAy+R4SR8XVuJWt2V2rGvhnrhxN+9S15GNuTK3wKPOXFF6RNc+8ug2XhH+2s4f+uudG4kUVYmYOQWL2g0Q==} engines: {node: '>=0.10.0'} @@ -1795,6 +1808,9 @@ packages: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} + commander@2.20.3: + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + commander@4.1.1: resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} engines: {node: '>= 6'} @@ -2289,6 +2305,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + node-gyp-build@4.8.4: + resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} + hasBin: true + node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} @@ -2360,8 +2380,8 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathe@2.0.1: - resolution: {integrity: sha512-6jpjMpOth5S9ITVu5clZ7NOgHNsv5vRQdheL9ztp2vZmM6fRbLvyua1tiBIL4lk8SAe3ARzeXEly6siXCjDHDw==} + pathe@2.0.3: + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} peek-stream@1.1.3: resolution: {integrity: sha512-FhJ+YbOSBb9/rIl2ZeE/QHEsWn7PqNYt8ARAY3kIgNGOk13g9FGyIY6JIl/xB/3TFRVoTv5as0l11weORrTekA==} @@ -2756,10 +2776,10 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders' - tailwindcss-react-aria-components@1.2.0: - resolution: {integrity: sha512-ynlQIfAdoWAz0Og0dCe/d4QVE+L8Yuo6rtK9apdhehZZMoLC1GdwtnvLZyUyx+wHwnTjRuNtFPdN0DpPsPXJJg==} + tailwindcss-react-aria-components@2.0.0: + resolution: {integrity: sha512-l8YdpXX//qx0Mz2bW3YKLjboTQxR3zLrFhlHniAIn+mTwVM1yvT0Jp7Pn3eFrqi+qtOMmcJzXaF2rsKezSr0SQ==} peerDependencies: - tailwindcss: '*' + tailwindcss: ^4.0.0 tailwindcss@3.4.17: resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} @@ -2770,6 +2790,11 @@ packages: resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} engines: {node: '>=18'} + terser@5.39.0: + resolution: {integrity: sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw==} + engines: {node: '>=10'} + hasBin: true + thenify-all@1.6.0: resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} engines: {node: '>=0.8'} @@ -2872,6 +2897,10 @@ packages: peerDependencies: react: ^16.8.0 || ^17 || ^18 + utf-8-validate@5.0.10: + resolution: {integrity: sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==} + engines: {node: '>=6.14.2'} + util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} @@ -2904,8 +2933,8 @@ packages: engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true - vite-node@3.0.1: - resolution: {integrity: sha512-PoH9mCNsSZQXl3gdymM5IE4WR0k0WbnFd89nAyyDvltF2jVGdFcI8vpB1PBdKTcjAR7kkYiHSlIO68X/UT8Q1A==} + vite-node@3.0.8: + resolution: {integrity: sha512-6PhR4H9VGlcwXZ+KWCdMqbtG649xCPZqfI9j2PsK1FcXgEzro5bGHcVKFCTqPLaNKZES8Evqv4LwvZARsq5qlg==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true @@ -2990,8 +3019,8 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - ws@8.18.0: - resolution: {integrity: sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==} + ws@8.18.1: + resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==} engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 @@ -3598,6 +3627,12 @@ snapshots: '@jridgewell/set-array@1.2.1': {} + '@jridgewell/source-map@0.3.6': + dependencies: + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + optional: true + '@jridgewell/sourcemap-codec@1.4.15': {} '@jridgewell/sourcemap-codec@1.5.0': {} @@ -3615,10 +3650,10 @@ snapshots: dependencies: jsep: 1.4.0 - '@kubernetes/client-node@0.22.3': + '@kubernetes/client-node@0.22.3(bufferutil@4.0.9)(utf-8-validate@5.0.10)': dependencies: byline: 5.0.0 - isomorphic-ws: 5.0.0(ws@8.18.0) + isomorphic-ws: 5.0.0(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)) js-yaml: 4.1.0 jsonpath-plus: 10.2.0 request: 2.88.2 @@ -3626,7 +3661,7 @@ snapshots: stream-buffers: 3.0.3 tar: 7.4.3 tslib: 2.8.1 - ws: 8.18.0 + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) optionalDependencies: openid-client: 6.1.7 transitivePeerDependencies: @@ -4311,7 +4346,7 @@ snapshots: react: 19.0.0 react-dom: 19.0.0(react@19.0.0) - '@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': + '@react-router/dev@7.1.1(@types/node@22.10.7)(jiti@1.21.7)(react-router@7.1.1(react-dom@19.0.0(react@19.0.0))(react@19.0.0))(terser@5.39.0)(tsx@4.19.2)(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0))(yaml@2.7.0)': dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 @@ -4342,8 +4377,8 @@ snapshots: semver: 7.6.3 set-cookie-parser: 2.7.1 valibot: 0.41.0(typescript@5.7.2) - vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) - vite-node: 3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) + vite-node: 3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -4842,7 +4877,6 @@ snapshots: '@types/node@22.10.7': dependencies: undici-types: 6.20.0 - optional: true '@types/react-dom@19.0.2(@types/react@19.0.2)': dependencies: @@ -4852,6 +4886,10 @@ snapshots: dependencies: csstype: 3.1.3 + '@types/websocket@1.0.10': + dependencies: + '@types/node': 22.10.7 + '@types/ws@8.5.13': dependencies: '@types/node': 22.10.1 @@ -5013,6 +5051,11 @@ snapshots: buffer-from@1.1.2: {} + bufferutil@4.0.9: + dependencies: + node-gyp-build: 4.8.4 + optional: true + byline@5.0.0: {} cac@6.7.14: {} @@ -5065,6 +5108,9 @@ snapshots: dependencies: delayed-stream: 1.0.0 + commander@2.20.3: + optional: true + commander@4.1.1: {} convert-source-map@2.0.0: {} @@ -5359,9 +5405,9 @@ snapshots: isexe@2.0.0: {} - isomorphic-ws@5.0.0(ws@8.18.0): + isomorphic-ws@5.0.0(ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10)): dependencies: - ws: 8.18.0 + ws: 8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10) isstream@0.1.2: {} @@ -5521,6 +5567,9 @@ snapshots: nanoid@3.3.8: {} + node-gyp-build@4.8.4: + optional: true + node-releases@2.0.18: {} normalize-package-data@5.0.0: @@ -5586,7 +5635,7 @@ snapshots: pathe@1.1.2: {} - pathe@2.0.1: {} + pathe@2.0.3: {} peek-stream@1.1.3: dependencies: @@ -6042,7 +6091,7 @@ snapshots: dependencies: tailwindcss: 3.4.17 - tailwindcss-react-aria-components@1.2.0(tailwindcss@3.4.17): + tailwindcss-react-aria-components@2.0.0(tailwindcss@3.4.17): dependencies: tailwindcss: 3.4.17 @@ -6082,6 +6131,14 @@ snapshots: mkdirp: 3.0.1 yallist: 5.0.0 + terser@5.39.0: + dependencies: + '@jridgewell/source-map': 0.3.6 + acorn: 8.14.0 + commander: 2.20.3 + source-map-support: 0.5.21 + optional: true + thenify-all@1.6.0: dependencies: thenify: 3.3.1 @@ -6168,6 +6225,11 @@ snapshots: lodash.debounce: 4.0.8 react: 19.0.0 + utf-8-validate@5.0.10: + dependencies: + node-gyp-build: 4.8.4 + optional: true + util-deprecate@1.0.2: {} uuid@3.4.0: {} @@ -6189,13 +6251,13 @@ snapshots: core-util-is: 1.0.2 extsprintf: 1.3.0 - vite-node@3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0): + vite-node@3.0.0-beta.2(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -6210,13 +6272,13 @@ snapshots: - tsx - yaml - vite-node@3.0.1(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0): + vite-node@3.0.8(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 - pathe: 2.0.1 - vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + pathe: 2.0.3 + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - '@types/node' - jiti @@ -6231,23 +6293,23 @@ snapshots: - tsx - yaml - vite-plugin-babel@1.3.0(@babel/core@7.26.0)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0)): + vite-plugin-babel@1.3.0(@babel/core@7.26.0)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: '@babel/core': 7.26.0 - vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) - vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.2)(vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0)): dependencies: debug: 4.4.0 globrex: 0.1.2 tsconfck: 3.1.4(typescript@5.7.2) optionalDependencies: - vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0) + vite: 6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0) transitivePeerDependencies: - supports-color - typescript - vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(tsx@4.19.2)(yaml@2.7.0): + vite@6.0.6(@types/node@22.10.7)(jiti@1.21.7)(terser@5.39.0)(tsx@4.19.2)(yaml@2.7.0): dependencies: esbuild: 0.24.2 postcss: 8.4.49 @@ -6256,6 +6318,7 @@ snapshots: '@types/node': 22.10.7 fsevents: 2.3.3 jiti: 1.21.7 + terser: 5.39.0 tsx: 4.19.2 yaml: 2.7.0 @@ -6286,7 +6349,10 @@ snapshots: wrappy@1.0.2: {} - ws@8.18.0: {} + ws@8.18.1(bufferutil@4.0.9)(utf-8-validate@5.0.10): + optionalDependencies: + bufferutil: 4.0.9 + utf-8-validate: 5.0.10 xtend@4.0.2: {} diff --git a/server/dev/hot-server.ts b/server/dev/hot-server.ts index fd72668..540f06e 100644 --- a/server/dev/hot-server.ts +++ b/server/dev/hot-server.ts @@ -12,6 +12,9 @@ export async function loadDevtools() { server: { middlewareMode: true, }, + optimizeDeps: { + disabled: true, + }, }); // We can't just do ssrLoadModule for virtual:react-router/server-build diff --git a/server/vite.config.ts b/server/vite.config.ts index f2ee354..f714393 100644 --- a/server/vite.config.ts +++ b/server/vite.config.ts @@ -1,11 +1,15 @@ +import { createRequire } from 'node:module'; import { defineConfig } from 'vite'; import tsconfigPaths from 'vite-tsconfig-paths'; +import { devDependencies } from '../package.json'; const prefix = process.env.__INTERNAL_PREFIX || '/admin'; if (prefix.endsWith('/')) { throw new Error('Prefix must not end with a slash'); } +const require = createRequire(import.meta.url); + export default defineConfig({ define: { __hp_prefix: JSON.stringify(prefix), @@ -13,16 +17,31 @@ export default defineConfig({ resolve: { preserveSymlinks: true, alias: { + buffer: 'node:buffer', + crypto: 'node:crypto', + events: 'node:events', + fs: 'node:fs', + net: 'node:net', + http: 'node:http', + https: 'node:https', + os: 'node:os', + path: 'node:path', stream: 'node:stream', - crypto: 'node:crypto' + tls: 'node:tls', + url: 'node:url', + zlib: 'node:zlib', + ws: require.resolve('ws'), }, }, plugins: [tsconfigPaths()], build: { minify: false, target: 'esnext', + lib: { + entry: 'server/entry.ts', + formats: ['es'], + }, rollupOptions: { - input: './server/entry.ts', treeshake: { moduleSideEffects: false, }, @@ -31,19 +50,22 @@ export default defineConfig({ dir: 'build/headplane', banner: '#!/usr/bin/env node\n', }, - // external: (id) => id.startsWith('node:') || id === 'ws', + + // We are selecting a list of dependencies we want to include + // We are only including our production dependencies external: (id) => { - // Resolve happens before side-effects are removed - // ie. vite import because of viteDevServer - if (/node_modules/.test(id)) { + if (id.startsWith('node:')) { return true; } - return id.startsWith('node:') - || id === 'ws' - || id === 'mime/lite' - || id === '@react-router/node'; - } + const match = id.match(/node_modules\/([^/]+)/); + if (match) { + const dep = match[1]; + if ((devDependencies as Record)[dep]) { + return true; + } + } + }, }, - } -}) + }, +});