the statusphere demo reworked into a vite/react app in a monorepo

react compiler

+150 -1
+2
packages/client/package.json
··· 28 28 "@typescript-eslint/parser": "^8.25.0", 29 29 "@vitejs/plugin-react": "^4.3.4", 30 30 "autoprefixer": "^10.4.20", 31 + "babel-plugin-react-compiler": "19.0.0-beta-e1e972c-20250221", 31 32 "eslint": "^9.21.0", 33 + "eslint-plugin-react-compiler": "19.0.0-beta-e1e972c-20250221", 32 34 "eslint-plugin-react-hooks": "^5.2.0", 33 35 "eslint-plugin-react-refresh": "^0.4.19", 34 36 "postcss": "^8.5.3",
+8 -1
packages/client/vite.config.ts
··· 5 5 6 6 // https://vitejs.dev/config/ 7 7 export default defineConfig({ 8 - plugins: [react(), tailwindcss()], 8 + plugins: [ 9 + react({ 10 + babel: { 11 + plugins: [['babel-plugin-react-compiler', { target: '19' }]], 12 + }, 13 + }), 14 + tailwindcss(), 15 + ], 9 16 server: { 10 17 port: 3000, 11 18 // allow ngrok
+140
pnpm-lock.yaml
··· 160 160 autoprefixer: 161 161 specifier: ^10.4.20 162 162 version: 10.4.20(postcss@8.5.3) 163 + babel-plugin-react-compiler: 164 + specifier: 19.0.0-beta-e1e972c-20250221 165 + version: 19.0.0-beta-e1e972c-20250221 163 166 eslint: 164 167 specifier: ^9.21.0 165 168 version: 9.21.0(jiti@2.4.2) 169 + eslint-plugin-react-compiler: 170 + specifier: 19.0.0-beta-e1e972c-20250221 171 + version: 19.0.0-beta-e1e972c-20250221(eslint@9.21.0(jiti@2.4.2)) 166 172 eslint-plugin-react-hooks: 167 173 specifier: ^5.2.0 168 174 version: 5.2.0(eslint@9.21.0(jiti@2.4.2)) ··· 333 339 resolution: {integrity: sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==} 334 340 engines: {node: '>=6.9.0'} 335 341 342 + '@babel/helper-annotate-as-pure@7.25.9': 343 + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} 344 + engines: {node: '>=6.9.0'} 345 + 336 346 '@babel/helper-compilation-targets@7.26.5': 337 347 resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} 338 348 engines: {node: '>=6.9.0'} 339 349 350 + '@babel/helper-create-class-features-plugin@7.26.9': 351 + resolution: {integrity: sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg==} 352 + engines: {node: '>=6.9.0'} 353 + peerDependencies: 354 + '@babel/core': ^7.0.0 355 + 356 + '@babel/helper-member-expression-to-functions@7.25.9': 357 + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} 358 + engines: {node: '>=6.9.0'} 359 + 340 360 '@babel/helper-module-imports@7.25.9': 341 361 resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} 342 362 engines: {node: '>=6.9.0'} ··· 347 367 peerDependencies: 348 368 '@babel/core': ^7.0.0 349 369 370 + '@babel/helper-optimise-call-expression@7.25.9': 371 + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} 372 + engines: {node: '>=6.9.0'} 373 + 350 374 '@babel/helper-plugin-utils@7.26.5': 351 375 resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} 376 + engines: {node: '>=6.9.0'} 377 + 378 + '@babel/helper-replace-supers@7.26.5': 379 + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} 380 + engines: {node: '>=6.9.0'} 381 + peerDependencies: 382 + '@babel/core': ^7.0.0 383 + 384 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 385 + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} 352 386 engines: {node: '>=6.9.0'} 353 387 354 388 '@babel/helper-string-parser@7.25.9': ··· 372 406 engines: {node: '>=6.0.0'} 373 407 hasBin: true 374 408 409 + '@babel/plugin-proposal-private-methods@7.18.6': 410 + resolution: {integrity: sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==} 411 + engines: {node: '>=6.9.0'} 412 + deprecated: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-private-methods instead. 413 + peerDependencies: 414 + '@babel/core': ^7.0.0-0 415 + 375 416 '@babel/plugin-transform-react-jsx-self@7.25.9': 376 417 resolution: {integrity: sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==} 377 418 engines: {node: '>=6.9.0'} ··· 1082 1123 await-lock@2.2.2: 1083 1124 resolution: {integrity: sha512-aDczADvlvTGajTDjcjpJMqRkOF6Qdz3YbPZm/PyW6tKPkx2hlYBzxMhEywM/tU72HrVZjgl5VCdRuMlA7pZ8Gw==} 1084 1125 1126 + babel-plugin-react-compiler@19.0.0-beta-e1e972c-20250221: 1127 + resolution: {integrity: sha512-m3Y8KdwBwKj9l6bf1XPO2xm0WWzv/cYJPurkwP5j8SADGor6l9CdQVksrcOGzU/4Rylfa+tXW6+xaR3vAKs7Hg==} 1128 + 1085 1129 balanced-match@1.0.2: 1086 1130 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 1087 1131 ··· 1372 1416 resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} 1373 1417 engines: {node: '>=10'} 1374 1418 1419 + eslint-plugin-react-compiler@19.0.0-beta-e1e972c-20250221: 1420 + resolution: {integrity: sha512-qdkOo4TJqFfK5td7EVNxDG2zAY44qK+ew7GKZ+nybOS/ONHFVRnluMfC+yjqyBexlfDZJul5ZFzsANJDQa3WSw==} 1421 + engines: {node: ^14.17.0 || ^16.0.0 || >= 18.0.0} 1422 + peerDependencies: 1423 + eslint: '>=7' 1424 + 1375 1425 eslint-plugin-react-hooks@5.2.0: 1376 1426 resolution: {integrity: sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==} 1377 1427 engines: {node: '>=10'} ··· 1606 1656 help-me@5.0.0: 1607 1657 resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} 1608 1658 1659 + hermes-estree@0.25.1: 1660 + resolution: {integrity: sha512-0wUoCcLp+5Ev5pDW2OriHC2MJCbwLwuRx+gAqMTOkGKJJiBCLjtrvy4PWUGn6MIVefecRpzoOZ/UV6iGdOr+Cw==} 1661 + 1662 + hermes-parser@0.25.1: 1663 + resolution: {integrity: sha512-6pEjquH3rqaI6cYAXYPcz9MS4rY6R4ngRgrgfDshRptUZIc3lw0MCIJIGDj9++mfySOuPTHB4nrSW99BCvOPIA==} 1664 + 1609 1665 http-errors@2.0.0: 1610 1666 resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==} 1611 1667 engines: {node: '>= 0.8'} ··· 2695 2751 resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} 2696 2752 engines: {node: '>=10'} 2697 2753 2754 + zod-validation-error@3.4.0: 2755 + resolution: {integrity: sha512-ZOPR9SVY6Pb2qqO5XHt+MkkTRxGXb4EVtnjc9JpXUOtUB1T9Ru7mZOT361AN3MsetVe7R0a1KZshJDZdgp9miQ==} 2756 + engines: {node: '>=18.0.0'} 2757 + peerDependencies: 2758 + zod: ^3.18.0 2759 + 2698 2760 zod@3.24.2: 2699 2761 resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==} 2700 2762 ··· 2955 3017 '@jridgewell/trace-mapping': 0.3.25 2956 3018 jsesc: 3.1.0 2957 3019 3020 + '@babel/helper-annotate-as-pure@7.25.9': 3021 + dependencies: 3022 + '@babel/types': 7.26.9 3023 + 2958 3024 '@babel/helper-compilation-targets@7.26.5': 2959 3025 dependencies: 2960 3026 '@babel/compat-data': 7.26.8 ··· 2963 3029 lru-cache: 5.1.1 2964 3030 semver: 6.3.1 2965 3031 3032 + '@babel/helper-create-class-features-plugin@7.26.9(@babel/core@7.26.9)': 3033 + dependencies: 3034 + '@babel/core': 7.26.9 3035 + '@babel/helper-annotate-as-pure': 7.25.9 3036 + '@babel/helper-member-expression-to-functions': 7.25.9 3037 + '@babel/helper-optimise-call-expression': 7.25.9 3038 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.9) 3039 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 3040 + '@babel/traverse': 7.26.9 3041 + semver: 6.3.1 3042 + transitivePeerDependencies: 3043 + - supports-color 3044 + 3045 + '@babel/helper-member-expression-to-functions@7.25.9': 3046 + dependencies: 3047 + '@babel/traverse': 7.26.9 3048 + '@babel/types': 7.26.9 3049 + transitivePeerDependencies: 3050 + - supports-color 3051 + 2966 3052 '@babel/helper-module-imports@7.25.9': 2967 3053 dependencies: 2968 3054 '@babel/traverse': 7.26.9 ··· 2979 3065 transitivePeerDependencies: 2980 3066 - supports-color 2981 3067 3068 + '@babel/helper-optimise-call-expression@7.25.9': 3069 + dependencies: 3070 + '@babel/types': 7.26.9 3071 + 2982 3072 '@babel/helper-plugin-utils@7.26.5': {} 2983 3073 3074 + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.9)': 3075 + dependencies: 3076 + '@babel/core': 7.26.9 3077 + '@babel/helper-member-expression-to-functions': 7.25.9 3078 + '@babel/helper-optimise-call-expression': 7.25.9 3079 + '@babel/traverse': 7.26.9 3080 + transitivePeerDependencies: 3081 + - supports-color 3082 + 3083 + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': 3084 + dependencies: 3085 + '@babel/traverse': 7.26.9 3086 + '@babel/types': 7.26.9 3087 + transitivePeerDependencies: 3088 + - supports-color 3089 + 2984 3090 '@babel/helper-string-parser@7.25.9': {} 2985 3091 2986 3092 '@babel/helper-validator-identifier@7.25.9': {} ··· 2995 3101 '@babel/parser@7.26.9': 2996 3102 dependencies: 2997 3103 '@babel/types': 7.26.9 3104 + 3105 + '@babel/plugin-proposal-private-methods@7.18.6(@babel/core@7.26.9)': 3106 + dependencies: 3107 + '@babel/core': 7.26.9 3108 + '@babel/helper-create-class-features-plugin': 7.26.9(@babel/core@7.26.9) 3109 + '@babel/helper-plugin-utils': 7.26.5 3110 + transitivePeerDependencies: 3111 + - supports-color 2998 3112 2999 3113 '@babel/plugin-transform-react-jsx-self@7.25.9(@babel/core@7.26.9)': 3000 3114 dependencies: ··· 3630 3744 3631 3745 await-lock@2.2.2: {} 3632 3746 3747 + babel-plugin-react-compiler@19.0.0-beta-e1e972c-20250221: 3748 + dependencies: 3749 + '@babel/types': 7.26.9 3750 + 3633 3751 balanced-match@1.0.2: {} 3634 3752 3635 3753 base64-js@1.5.1: {} ··· 3918 4036 3919 4037 escape-string-regexp@4.0.0: {} 3920 4038 4039 + eslint-plugin-react-compiler@19.0.0-beta-e1e972c-20250221(eslint@9.21.0(jiti@2.4.2)): 4040 + dependencies: 4041 + '@babel/core': 7.26.9 4042 + '@babel/parser': 7.26.9 4043 + '@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.9) 4044 + eslint: 9.21.0(jiti@2.4.2) 4045 + hermes-parser: 0.25.1 4046 + zod: 3.24.2 4047 + zod-validation-error: 3.4.0(zod@3.24.2) 4048 + transitivePeerDependencies: 4049 + - supports-color 4050 + 3921 4051 eslint-plugin-react-hooks@5.2.0(eslint@9.21.0(jiti@2.4.2)): 3922 4052 dependencies: 3923 4053 eslint: 9.21.0(jiti@2.4.2) ··· 4193 4323 function-bind: 1.1.2 4194 4324 4195 4325 help-me@5.0.0: {} 4326 + 4327 + hermes-estree@0.25.1: {} 4328 + 4329 + hermes-parser@0.25.1: 4330 + dependencies: 4331 + hermes-estree: 0.25.1 4196 4332 4197 4333 http-errors@2.0.0: 4198 4334 dependencies: ··· 5148 5284 yn@3.1.1: {} 5149 5285 5150 5286 yocto-queue@0.1.0: {} 5287 + 5288 + zod-validation-error@3.4.0(zod@3.24.2): 5289 + dependencies: 5290 + zod: 3.24.2 5151 5291 5152 5292 zod@3.24.2: {}