flora is a fast and secure runtime that lets you write discord bots for your servers, with a rich TypeScript SDK, without worrying about running infrastructure. [mirror]
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

fix(frontend): reduce shiki bundle

WIP

+214 -93
+1
AGENTS.md
··· 9 9 - Be extremely concise in conversations; sacrifice grammar for the sake of concision. 10 10 - At the end of each plan, give me a list of unresolved questions to answer, if any. Make the questions extremely concise. 11 11 - Prefer runtime workflows via `./x` commands. 12 + - After changes: run `vp install` (repo root) and `vp build` (target app). 12 13 13 14 ## OpenAPI Writing + Naming 14 15
+4
apps/frontend/package.json
··· 28 28 "@codingame/monaco-vscode-theme-defaults-default-extension": "28.0.1", 29 29 "@codingame/monaco-vscode-theme-service-override": "28.0.1", 30 30 "@codingame/monaco-vscode-typescript-basics-default-extension": "28.0.1", 31 + "@codingame/monaco-vscode-typescript-language-features-default-extension": "28.0.1", 31 32 "@codingame/monaco-vscode-workbench-service-override": "28.0.1", 32 33 "@fontsource-variable/geist": "5.2.8", 33 34 "@pierre/diffs": "1.0.11", 34 35 "@radix-ui/react-scroll-area": "^1.2.10", 35 36 "@radix-ui/react-tabs": "^1.1.13", 37 + "@shikijs/core": "catalog:", 38 + "@shikijs/engine-javascript": "catalog:", 39 + "@shikijs/langs": "catalog:", 36 40 "@tailwindcss/vite": "^4.1.18", 37 41 "@tanstack/react-query": "^5.90.12", 38 42 "@tanstack/react-query-devtools": "^5.91.1",
+39 -5
apps/frontend/src/components/editor/workbench.tsx
··· 2 2 import '@codingame/monaco-vscode-json-default-extension' 3 3 import '@codingame/monaco-vscode-theme-defaults-default-extension' 4 4 import '@codingame/monaco-vscode-typescript-basics-default-extension' 5 + import '@codingame/monaco-vscode-typescript-language-features-default-extension' 5 6 import 'vscode/localExtensionHost' 6 7 7 8 import type { IWorkbenchConstructionOptions } from '@codingame/monaco-vscode-api' ··· 39 40 import { getParentFolder, normalizePath } from './editor-utils' 40 41 41 42 const WORKSPACE_ROOT = '/workspace' 42 - const SUPPORT_FILES: Record<string, string> = { 43 - 'node_modules/@uwu/flora-sdk/global-types.d.ts': floraSdkGlobalTypes, 44 - 'node_modules/@uwu/flora-sdk/index.d.ts': `declare module '@uwu/flora-sdk' { 43 + const DEFAULT_TSCONFIG = JSON.stringify( 44 + { 45 + compilerOptions: { 46 + target: 'ES2020', 47 + module: 'ESNext', 48 + lib: ['ES2021', 'DOM'], 49 + jsx: 'react-jsx', 50 + moduleResolution: 'Bundler', 51 + types: ['@uwu/flora-sdk'], 52 + allowJs: true, 53 + skipLibCheck: true 54 + }, 55 + include: ['**/*'] 56 + }, 57 + null, 58 + 2 59 + ) 60 + const FLORA_SDK_PACKAGE_JSON = JSON.stringify( 61 + { 62 + name: '@uwu/flora-sdk', 63 + version: '0.0.0', 64 + types: 'index.d.ts' 65 + }, 66 + null, 67 + 2 68 + ) 69 + const FLORA_SDK_INDEX_TYPES = `/// <reference path="./global-types.d.ts" /> 70 + 71 + declare module '@uwu/flora-sdk' { 45 72 export const on: typeof globalThis.on 46 73 export const cron: typeof globalThis.cron 47 74 export const secrets: typeof globalThis.secrets ··· 54 81 export const StringSelectMenuBuilder: typeof globalThis.StringSelectMenuBuilder 55 82 } 56 83 ` 84 + const SUPPORT_FILES: Record<string, string> = { 85 + 'tsconfig.json': DEFAULT_TSCONFIG, 86 + 'node_modules/@uwu/flora-sdk/package.json': FLORA_SDK_PACKAGE_JSON, 87 + 'node_modules/@uwu/flora-sdk/global-types.d.ts': floraSdkGlobalTypes, 88 + 'node_modules/@uwu/flora-sdk/index.d.ts': FLORA_SDK_INDEX_TYPES 57 89 } 58 90 const SUPPORT_PATHS = new Set(Object.keys(SUPPORT_FILES)) 59 91 ··· 202 234 'workbench.colorTheme': 'Default Dark+', 203 235 'editor.fontSize': 14, 204 236 'editor.minimap.enabled': false, 205 - 'files.autoSave': 'off' 237 + 'files.autoSave': 'off', 238 + 'typescript.tsserver.web.enableProjectWideIntellisense': true, 239 + 'workbench.iconTheme': 'vs-minimal' 206 240 } 207 241 208 242 await Promise.all([ ··· 248 282 ...getFilesServiceOverride(), 249 283 ...getStorageServiceOverride(), 250 284 ...getExtensionServiceOverride({ 251 - enableWorkerExtensionHost: false 285 + enableWorkerExtensionHost: true 252 286 }), 253 287 ...getExplorerServiceOverride(), 254 288 ...getWorkbenchServiceOverride()
+31 -2
apps/frontend/src/components/features/DeploymentHistory.tsx
··· 34 34 'tsconfig.json' 35 35 ]) 36 36 37 + type DiffLanguage = 'text' | 'json' | 'typescript' | 'tsx' | 'javascript' | 'jsx' 38 + 39 + const DIFF_LANG_OVERRIDES: Record<string, DiffLanguage> = { 40 + 'package.json': 'json', 41 + 'package-lock.json': 'json', 42 + 'pnpm-lock.yaml': 'text', 43 + 'yarn.lock': 'text', 44 + 'bun.lockb': 'text', 45 + 'tsconfig.json': 'json' 46 + } 47 + 48 + function getDiffLanguage(path: string): DiffLanguage { 49 + const lowerPath = path.toLowerCase() 50 + const fileName = lowerPath.split('/').at(-1) ?? lowerPath 51 + const override = DIFF_LANG_OVERRIDES[fileName] 52 + if (override) return override 53 + if (lowerPath.endsWith('.tsx')) return 'tsx' 54 + if (lowerPath.endsWith('.ts') || lowerPath.endsWith('.cts') || lowerPath.endsWith('.mts')) { 55 + return 'typescript' 56 + } 57 + if (lowerPath.endsWith('.jsx')) return 'jsx' 58 + if (lowerPath.endsWith('.js') || lowerPath.endsWith('.mjs') || lowerPath.endsWith('.cjs')) { 59 + return 'javascript' 60 + } 61 + if (lowerPath.endsWith('.json')) return 'json' 62 + return 'text' 63 + } 64 + 37 65 function formatTimeAgo(value?: string | null) { 38 66 if (!value) return 'never' 39 67 return formatDistanceToNow(new Date(value), { addSuffix: true }) ··· 139 167 .filter(isDiffableFile) 140 168 .map((path) => ({ 141 169 path, 170 + lang: getDiffLanguage(path), 142 171 oldContents: base.get(path) ?? '', 143 172 newContents: current.get(path) ?? '' 144 173 })) ··· 297 326 } 298 327 > 299 328 <LazyMultiFileDiff 300 - oldFile={{ name: file.path, contents: file.oldContents }} 301 - newFile={{ name: file.path, contents: file.newContents }} 329 + oldFile={{ name: file.path, contents: file.oldContents, lang: file.lang }} 330 + newFile={{ name: file.path, contents: file.newContents, lang: file.lang }} 302 331 options={{ 303 332 diffStyle: 'split', 304 333 overflow: 'wrap',
+52
apps/frontend/src/lib/shiki-lite.ts
··· 1 + import { createBundledHighlighter } from '@shikijs/core' 2 + import { 3 + createJavaScriptRegexEngine, 4 + defaultJavaScriptRegexConstructor 5 + } from '@shikijs/engine-javascript' 6 + 7 + const bundledLanguages = { 8 + typescript: () => import('@shikijs/langs/typescript'), 9 + tsx: () => import('@shikijs/langs/tsx'), 10 + javascript: () => import('@shikijs/langs/javascript'), 11 + jsx: () => import('@shikijs/langs/jsx'), 12 + json: () => import('@shikijs/langs/json') 13 + } as const 14 + 15 + const bundledLanguagesInfo = [ 16 + { id: 'typescript', name: 'TypeScript', import: bundledLanguages.typescript }, 17 + { id: 'tsx', name: 'TSX', import: bundledLanguages.tsx }, 18 + { id: 'javascript', name: 'JavaScript', import: bundledLanguages.javascript }, 19 + { id: 'jsx', name: 'JSX', import: bundledLanguages.jsx }, 20 + { id: 'json', name: 'JSON', import: bundledLanguages.json } 21 + ] as const 22 + 23 + const bundledLanguagesAlias = { 24 + ts: 'typescript', 25 + tsx: 'tsx', 26 + js: 'javascript', 27 + jsx: 'jsx' 28 + } as const 29 + 30 + const bundledLanguagesBase = bundledLanguages 31 + const bundledThemes = {} as const 32 + const bundledThemesInfo: Array<unknown> = [] 33 + 34 + const createHighlighter = createBundledHighlighter({ 35 + langs: bundledLanguages, 36 + themes: bundledThemes, 37 + engine: () => createJavaScriptRegexEngine() 38 + }) 39 + 40 + export { 41 + bundledLanguages, 42 + bundledLanguagesInfo, 43 + bundledLanguagesAlias, 44 + bundledLanguagesBase, 45 + bundledThemes, 46 + bundledThemesInfo, 47 + createHighlighter, 48 + createJavaScriptRegexEngine, 49 + defaultJavaScriptRegexConstructor 50 + } 51 + 52 + export * from '@shikijs/core'
+6
apps/frontend/vite.config.ts
··· 16 16 resolve: { 17 17 alias: { 18 18 '@': path.resolve(__dirname, './src'), 19 + shiki: path.resolve(__dirname, './src/lib/shiki-lite'), 19 20 'modern-monaco/core': path.resolve(__dirname, 'node_modules/modern-monaco/dist/core.mjs'), 20 21 'monaco-themes/themes/themelist.json': path.resolve( 21 22 __dirname, ··· 27 28 ...(mode === 'development' && { 28 29 server: { 29 30 allowedHosts: true, 31 + headers: { 32 + 'Cross-Origin-Embedder-Policy': 'credentialless', 33 + 'Cross-Origin-Opener-Policy': 'same-origin', 34 + 'Cross-Origin-Resource-Policy': 'cross-origin' 35 + }, 30 36 proxy: { 31 37 '/api': { 32 38 target: API_HOST,
+78 -86
pnpm-lock.yaml
··· 12 12 '@rolldown/plugin-babel': 13 13 specifier: 0.2.1 14 14 version: 0.2.1 15 + '@shikijs/core': 16 + specifier: 4.0.2 17 + version: 4.0.2 18 + '@shikijs/engine-javascript': 19 + specifier: 4.0.2 20 + version: 4.0.2 21 + '@shikijs/langs': 22 + specifier: 4.0.2 23 + version: 4.0.2 15 24 '@types/babel__core': 16 25 specifier: 7.20.5 17 26 version: 7.20.5 ··· 116 125 specifier: 28.0.1 117 126 version: 28.0.1 118 127 '@codingame/monaco-vscode-typescript-basics-default-extension': 128 + specifier: 28.0.1 129 + version: 28.0.1 130 + '@codingame/monaco-vscode-typescript-language-features-default-extension': 119 131 specifier: 28.0.1 120 132 version: 28.0.1 121 133 '@codingame/monaco-vscode-workbench-service-override': ··· 133 145 '@radix-ui/react-tabs': 134 146 specifier: ^1.1.13 135 147 version: 1.1.13(@types/react-dom@19.2.3(@types/react@19.2.14))(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4) 148 + '@shikijs/core': 149 + specifier: 'catalog:' 150 + version: 4.0.2 151 + '@shikijs/engine-javascript': 152 + specifier: 'catalog:' 153 + version: 4.0.2 154 + '@shikijs/langs': 155 + specifier: 'catalog:' 156 + version: 4.0.2 136 157 '@tailwindcss/vite': 137 158 specifier: ^4.1.18 138 159 version: 4.2.1(@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)) ··· 244 265 version: '@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)' 245 266 vite-plus: 246 267 specifier: 'catalog:' 247 - version: 0.1.11(@types/node@24.12.0)(@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) 268 + version: 0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.16(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2) 248 269 249 270 apps/uwu.network: 250 271 dependencies: ··· 696 717 697 718 '@codingame/monaco-vscode-typescript-basics-default-extension@28.0.1': 698 719 resolution: {integrity: sha512-Act/5f2Oj/X4m9eSNON5vC7zDy9cuVJme+IhPmkpRvB5l8gSQssQHbR5CIt1Ed9J1yfQd0P1tV6RBD688YWQ7g==} 720 + 721 + '@codingame/monaco-vscode-typescript-language-features-default-extension@28.0.1': 722 + resolution: {integrity: sha512-EdkbzCozPbwW2EtcVsWnAG8ovHpAHcbdINabUMlGdPYPPXYqua4ONc0tP2pgBrf2mM4It6YDvkzwaEVULkazAg==} 699 723 700 724 '@codingame/monaco-vscode-view-banner-service-override@28.0.1': 701 725 resolution: {integrity: sha512-Tj2+BbLueL2QK9EJwLw/oZ8TyqqH8vRQ1wWBDH1cdk3MrqrL62UUbdWKFKXLqzOTLYJpRc1HwuEBEQaaQ35rqQ==} ··· 2474 2498 '@shikijs/core@3.23.0': 2475 2499 resolution: {integrity: sha512-NSWQz0riNb67xthdm5br6lAkvpDJRTgB36fxlo37ZzM2yq0PQFFzbd8psqC2XMPgCzo1fW6cVi18+ArJ44wqgA==} 2476 2500 2501 + '@shikijs/core@4.0.2': 2502 + resolution: {integrity: sha512-hxT0YF4ExEqB8G/qFdtJvpmHXBYJ2lWW7qTHDarVkIudPFE6iCIrqdgWxGn5s+ppkGXI0aEGlibI0PAyzP3zlw==} 2503 + engines: {node: '>=20'} 2504 + 2477 2505 '@shikijs/engine-javascript@3.23.0': 2478 2506 resolution: {integrity: sha512-aHt9eiGFobmWR5uqJUViySI1bHMqrAgamWE1TYSUoftkAeCCAiGawPMwM+VCadylQtF4V3VNOZ5LmfItH5f3yA==} 2507 + 2508 + '@shikijs/engine-javascript@4.0.2': 2509 + resolution: {integrity: sha512-7PW0Nm49DcoUIQEXlJhNNBHyoGMjalRETTCcjMqEaMoJRLljy1Bi/EGV3/qLBgLKQejdspiiYuHGQW6dX94Nag==} 2510 + engines: {node: '>=20'} 2479 2511 2480 2512 '@shikijs/engine-oniguruma@3.23.0': 2481 2513 resolution: {integrity: sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==} ··· 2483 2515 '@shikijs/langs@3.23.0': 2484 2516 resolution: {integrity: sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==} 2485 2517 2518 + '@shikijs/langs@4.0.2': 2519 + resolution: {integrity: sha512-KaXby5dvoeuZzN0rYQiPMjFoUrz4hgwIE+D6Du9owcHcl6/g16/yT5BQxSW5cGt2MZBz6Hl0YuRqf12omRfUUg==} 2520 + engines: {node: '>=20'} 2521 + 2522 + '@shikijs/primitive@4.0.2': 2523 + resolution: {integrity: sha512-M6UMPrSa3fN5ayeJwFVl9qWofl273wtK1VG8ySDZ1mQBfhCpdd8nEx7nPZ/tk7k+TYcpqBZzj/AnwxT9lO+HJw==} 2524 + engines: {node: '>=20'} 2525 + 2486 2526 '@shikijs/themes@3.23.0': 2487 2527 resolution: {integrity: sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==} 2488 2528 ··· 2491 2531 2492 2532 '@shikijs/types@3.23.0': 2493 2533 resolution: {integrity: sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==} 2534 + 2535 + '@shikijs/types@4.0.2': 2536 + resolution: {integrity: sha512-qzbeRooUTPnLE+sHD/Z8DStmaDgnbbc/pMrU203950aRqjX/6AFHeDYT+j00y2lPdz0ywJKx7o/7qnqTivtlXg==} 2537 + engines: {node: '>=20'} 2494 2538 2495 2539 '@shikijs/vscode-textmate@10.0.2': 2496 2540 resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} ··· 5638 5682 dependencies: 5639 5683 '@codingame/monaco-vscode-api': 28.0.1 5640 5684 5685 + '@codingame/monaco-vscode-typescript-language-features-default-extension@28.0.1': 5686 + dependencies: 5687 + '@codingame/monaco-vscode-api': 28.0.1 5688 + 5641 5689 '@codingame/monaco-vscode-view-banner-service-override@28.0.1': 5642 5690 dependencies: 5643 5691 '@codingame/monaco-vscode-api': 28.0.1 ··· 6832 6880 '@types/hast': 3.0.4 6833 6881 hast-util-to-html: 9.0.5 6834 6882 6883 + '@shikijs/core@4.0.2': 6884 + dependencies: 6885 + '@shikijs/primitive': 4.0.2 6886 + '@shikijs/types': 4.0.2 6887 + '@shikijs/vscode-textmate': 10.0.2 6888 + '@types/hast': 3.0.4 6889 + hast-util-to-html: 9.0.5 6890 + 6835 6891 '@shikijs/engine-javascript@3.23.0': 6836 6892 dependencies: 6837 6893 '@shikijs/types': 3.23.0 6838 6894 '@shikijs/vscode-textmate': 10.0.2 6839 6895 oniguruma-to-es: 4.3.4 6840 6896 6897 + '@shikijs/engine-javascript@4.0.2': 6898 + dependencies: 6899 + '@shikijs/types': 4.0.2 6900 + '@shikijs/vscode-textmate': 10.0.2 6901 + oniguruma-to-es: 4.3.4 6902 + 6841 6903 '@shikijs/engine-oniguruma@3.23.0': 6842 6904 dependencies: 6843 6905 '@shikijs/types': 3.23.0 ··· 6847 6909 dependencies: 6848 6910 '@shikijs/types': 3.23.0 6849 6911 6912 + '@shikijs/langs@4.0.2': 6913 + dependencies: 6914 + '@shikijs/types': 4.0.2 6915 + 6916 + '@shikijs/primitive@4.0.2': 6917 + dependencies: 6918 + '@shikijs/types': 4.0.2 6919 + '@shikijs/vscode-textmate': 10.0.2 6920 + '@types/hast': 3.0.4 6921 + 6850 6922 '@shikijs/themes@3.23.0': 6851 6923 dependencies: 6852 6924 '@shikijs/types': 3.23.0 ··· 6857 6929 '@shikijs/types': 3.23.0 6858 6930 6859 6931 '@shikijs/types@3.23.0': 6932 + dependencies: 6933 + '@shikijs/vscode-textmate': 10.0.2 6934 + '@types/hast': 3.0.4 6935 + 6936 + '@shikijs/types@4.0.2': 6860 6937 dependencies: 6861 6938 '@shikijs/vscode-textmate': 10.0.2 6862 6939 '@types/hast': 3.0.4 ··· 7268 7345 '@voidzero-dev/vite-plus-linux-x64-gnu@0.1.11': 7269 7346 optional: true 7270 7347 7271 - '@voidzero-dev/vite-plus-test@0.1.11(@types/node@24.12.0)(@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)': 7272 - dependencies: 7273 - '@standard-schema/spec': 1.1.0 7274 - '@types/chai': 5.2.3 7275 - '@voidzero-dev/vite-plus-core': 0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) 7276 - es-module-lexer: 1.7.0 7277 - obug: 2.1.1 7278 - pixelmatch: 7.1.0 7279 - pngjs: 7.0.0 7280 - sirv: 3.0.2 7281 - std-env: 4.0.0 7282 - tinybench: 2.9.0 7283 - tinyexec: 1.0.2 7284 - tinyglobby: 0.2.15 7285 - vite: '@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)' 7286 - ws: 8.19.0 7287 - optionalDependencies: 7288 - '@types/node': 24.12.0 7289 - transitivePeerDependencies: 7290 - - '@arethetypeswrong/core' 7291 - - '@tsdown/css' 7292 - - '@tsdown/exe' 7293 - - '@vitejs/devtools' 7294 - - bufferutil 7295 - - esbuild 7296 - - jiti 7297 - - less 7298 - - publint 7299 - - sass 7300 - - sass-embedded 7301 - - stylus 7302 - - sugarss 7303 - - terser 7304 - - tsx 7305 - - typescript 7306 - - unplugin-unused 7307 - - utf-8-validate 7308 - - yaml 7309 - 7310 7348 '@voidzero-dev/vite-plus-test@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.16(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2)': 7311 7349 dependencies: 7312 7350 '@standard-schema/spec': 1.1.0 ··· 9631 9669 dependencies: 9632 9670 '@types/unist': 3.0.3 9633 9671 vfile-message: 4.0.3 9634 - 9635 - vite-plus@0.1.11(@types/node@24.12.0)(@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2): 9636 - dependencies: 9637 - '@oxc-project/types': 0.115.0 9638 - '@voidzero-dev/vite-plus-core': 0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) 9639 - '@voidzero-dev/vite-plus-test': 0.1.11(@types/node@24.12.0)(@voidzero-dev/vite-plus-core@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2))(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2) 9640 - cac: 6.7.14 9641 - cross-spawn: 7.0.6 9642 - oxfmt: 0.40.0 9643 - oxlint: 1.55.0(oxlint-tsgolint@0.16.0) 9644 - oxlint-tsgolint: 0.16.0 9645 - picocolors: 1.1.1 9646 - optionalDependencies: 9647 - '@voidzero-dev/vite-plus-darwin-arm64': 0.1.11 9648 - '@voidzero-dev/vite-plus-darwin-x64': 0.1.11 9649 - '@voidzero-dev/vite-plus-linux-arm64-gnu': 0.1.11 9650 - '@voidzero-dev/vite-plus-linux-x64-gnu': 0.1.11 9651 - '@voidzero-dev/vite-plus-win32-arm64-msvc': 0.1.11 9652 - '@voidzero-dev/vite-plus-win32-x64-msvc': 0.1.11 9653 - transitivePeerDependencies: 9654 - - '@arethetypeswrong/core' 9655 - - '@edge-runtime/vm' 9656 - - '@opentelemetry/api' 9657 - - '@tsdown/css' 9658 - - '@tsdown/exe' 9659 - - '@types/node' 9660 - - '@vitejs/devtools' 9661 - - '@vitest/ui' 9662 - - bufferutil 9663 - - esbuild 9664 - - happy-dom 9665 - - jiti 9666 - - jsdom 9667 - - less 9668 - - publint 9669 - - sass 9670 - - sass-embedded 9671 - - stylus 9672 - - sugarss 9673 - - terser 9674 - - tsx 9675 - - typescript 9676 - - unplugin-unused 9677 - - utf-8-validate 9678 - - vite 9679 - - yaml 9680 9672 9681 9673 vite-plus@0.1.11(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(typescript@5.9.3)(vite@8.0.0-beta.16(@types/node@24.12.0)(esbuild@0.27.3)(jiti@2.6.1)(sass@1.97.3)(tsx@4.21.0)(yaml@2.8.2))(yaml@2.8.2): 9682 9674 dependencies:
+3
pnpm-workspace.yaml
··· 6 6 catalog: 7 7 '@babel/core': 7.29.0 8 8 '@rolldown/plugin-babel': 0.2.1 9 + '@shikijs/core': 4.0.2 10 + '@shikijs/engine-javascript': 4.0.2 11 + '@shikijs/langs': 4.0.2 9 12 '@types/babel__core': 7.20.5 10 13 '@types/node': ^24 11 14 '@typescript/native-preview': ^7.0.0-dev.20260105.1