From b6c60e482148b2083d9e0fe5b74813c4dc22de81 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Sun, 9 Aug 2026 01:47:22 +0530 Subject: [PATCH] chore: adopt Ultracite lint baseline --- PROJECT_STATUS.md | 9 +++ biome.json | 87 +++++++++++++++++++++- package.json | 1 + pnpm-lock.yaml | 184 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 278 insertions(+), 3 deletions(-) diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md index f70338f..ead71a8 100644 --- a/PROJECT_STATUS.md +++ b/PROJECT_STATUS.md @@ -16,9 +16,16 @@ maintenance-first support. - Vite + React 19 SPA, Hono Worker, Cloudflare D1 + Drizzle, Cloudflare R2, better-auth Google OAuth, and optional AI providers. D1 is authoritative; the retired Turso database was deleted on 2026-08-02. +- Ultracite 7.10.2 is an exact development-only Biome preset dependency. Local + exceptions preserve Reader's established SPA, Worker, Astro, and document + processing style without affecting runtime behavior. ## Timeline +- **2026-08-09:** Adopted the verified Ultracite-backed Biome baseline through + the existing non-writing check, with explicit compatibility exceptions and + no source rewrite, production dependency, storage/auth/AI, migration, or + deployment change. - **2026-07-31:** Kept the public sitemap limited to the four canonical HTML pages while retaining six machine resources through robots, llms, and the agent catalog. Explicit tests now enforce sitemap, catalog, and Markdown @@ -42,6 +49,8 @@ maintenance-first support. - Account-backed and device-local capture paths. - Owned editorial product changelog at `/changelog`. - HTML-only public sitemap with cataloged Markdown mirrors for agent discovery. +- Exact Ultracite-backed Biome presets with explicit local compatibility + exceptions; `pnpm check` remains non-writing. ## Work queue diff --git a/biome.json b/biome.json index 90f4ed3..95b05e3 100644 --- a/biome.json +++ b/biome.json @@ -1,10 +1,14 @@ { "$schema": "https://biomejs.dev/schemas/2.5.5/schema.json", + "extends": [ + "ultracite/biome/core", + "ultracite/biome/react", + "ultracite/biome/vitest" + ], "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, "files": { "ignoreUnknown": true, "includes": [ - "**", "!**/.next", "!**/.open-next", "!**/.wrangler", @@ -31,8 +35,11 @@ "lineEnding": "lf" }, "css": { + "formatter": { "enabled": false }, "parser": { "tailwindDirectives": true } }, + "html": { "formatter": { "enabled": false } }, + "json": { "formatter": { "enabled": false } }, "javascript": { "formatter": { "quoteStyle": "single", @@ -46,6 +53,7 @@ "rules": { "preset": "recommended", "a11y": { + "noNoninteractiveElementInteractions": "off", "useAltText": "off", "useValidAnchor": "off", "useButtonType": "off", @@ -60,19 +68,92 @@ "useSemanticElements": "off" }, "correctness": { + "noGlobalDirnameFilename": "off", "noInnerDeclarations": "off", + "noUnusedImports": "warn", + "noUnusedVariables": "warn", + "useImageSize": "off", + "useParseIntRadix": "off", "useExhaustiveDependencies": "warn" }, "suspicious": { + "noAlert": "off", "noArrayIndexKey": "warn", + "noBitwiseOperators": "off", + "noConfusingVoidType": "off", "noThenProperty": "warn", "noControlCharactersInRegex": "warn", - "useIterableCallbackReturn": "warn" + "noEmptyBlockStatements": "off", + "noEqualsToNull": "off", + "noExplicitAny": "off", + "noLeakedRender": "off", + "noNestedPromises": "off", + "noReactForwardRef": "off", + "noShadow": "off", + "noSkippedTests": "off", + "noUnnecessaryConditions": "off", + "useAwait": "off", + "useErrorMessage": "off", + "useIterableCallbackReturn": "warn", + "useStaticResponseMethods": "off" + }, + "complexity": { + "noExcessiveCognitiveComplexity": "off", + "noForEach": "off", + "noUselessUndefined": "off", + "noVoid": "off", + "useLiteralKeys": "off", + "useOptionalChain": "off", + "useSimplifiedLogicExpression": "off" + }, + "nursery": { "useSortedClasses": "off" }, + "performance": { + "noAwaitInLoops": "off", + "noDelete": "off", + "noJsxPropsBind": "off", + "noNamespaceImport": "off", + "useTopLevelRegex": "off" }, "security": { "noDangerouslySetInnerHtml": "warn" + }, + "style": { + "noExportedImports": "off", + "noIncrementDecrement": "off", + "noNegationElse": "off", + "noNestedTernary": "off", + "noNonNullAssertion": "off", + "noUnusedTemplateLiteral": "off", + "useAtIndex": "off", + "useBlockStatements": "off", + "useCollapsedIf": "off", + "useConsistentArrayType": "off", + "useConsistentArrowReturn": "off", + "useConsistentMethodSignatures": "off", + "useConsistentTypeDefinitions": "off", + "useDefaultSwitchClause": "off", + "useDestructuring": "off", + "useFilenamingConvention": "off", + "useNodejsImportProtocol": "off", + "useNumberNamespace": "off", + "useNumericSeparators": "off", + "useSelfClosingElements": "off", + "useShorthandAssign": "off", + "useTemplate": "off" } } }, - "assist": { "enabled": true, "actions": { "source": { "organizeImports": "off" } } } + "assist": { + "enabled": true, + "actions": { + "source": { + "organizeImports": "off", + "useSortedAttributes": "off", + "useSortedInterfaceMembers": "off", + "useSortedKeys": "off", + "useSortedPackageJson": "off", + "useSortedProperties": "off" + } + } + } } diff --git a/package.json b/package.json index ec3216b..0e4c87c 100644 --- a/package.json +++ b/package.json @@ -98,6 +98,7 @@ "tailwindcss": "^4.3.3", "tsx": "4.23.1", "typescript": "6.0.3", + "ultracite": "7.10.2", "vite": "8.1.5", "vitest": "4.1.10", "wrangler": "4.114.0" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0da8c74..1e6e95b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -156,6 +156,9 @@ importers: typescript: specifier: 6.0.3 version: 6.0.3 + ultracite: + specifier: 7.10.2 + version: 7.10.2 vite: specifier: 8.1.5 version: 8.1.5(@types/node@25.6.0)(esbuild@0.28.1)(jiti@2.7.0)(terser@5.16.9)(tsx@4.23.1)(yaml@2.9.0) @@ -502,6 +505,14 @@ packages: resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} engines: {node: '>=18'} + '@clack/core@1.4.3': + resolution: {integrity: sha512-/kr3UWNtdJfxZtPgDqUOmG2pvwlmcLGheex5yiZKdwbzZJxhV+HMNR9QNmyY5cGwTNV6LrR7Jtp+KjhUAP1qBQ==} + engines: {node: '>= 20.12.0'} + + '@clack/prompts@1.7.0': + resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} + engines: {node: '>= 20.12.0'} + '@cloudflare/kv-asset-handler@0.5.0': resolution: {integrity: sha512-jxQYkj8dSIzc0cD6cMMNdOc1UVjqSqu8BZdor5s8cGjW2I8BjODt/kWPVdY+u9zj3ms75Q5qaZgnxUad83+eAg==} engines: {node: '>=22.0.0'} @@ -3324,6 +3335,10 @@ packages: bail@2.0.2: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} + base-64@1.0.0: resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} @@ -3421,6 +3436,10 @@ packages: resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} engines: {node: '>=18'} + brace-expansion@5.0.9: + resolution: {integrity: sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==} + engines: {node: 20 || >=22} + browserslist@4.28.2: resolution: {integrity: sha512-48xSriZYYg+8qXna9kwqjIVzuQxi+KYWp2+5nCYnYKPTr0LvD89Jqk2Or5ogxz0NUMfIjhh2lIUX/LyX9B4oIg==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -3478,6 +3497,9 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} + citty@0.2.2: + resolution: {integrity: sha512-+6vJA3L98yv+IdfKGZHBNiGW5KHn22e/JwID0Strsz8h4S/csAu/OuICwxrg44k5MRiZHWIo8XXuJgQTriRP4w==} + class-variance-authority@0.7.1: resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} @@ -3528,6 +3550,10 @@ packages: resolution: {integrity: sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==} engines: {node: '>=20'} + commander@15.0.0: + resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==} + engines: {node: '>=22.12.0'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -3552,6 +3578,10 @@ packages: core-js@3.49.0: resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} @@ -3941,6 +3971,15 @@ packages: extend@3.0.2: resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-wrap-ansi@0.2.2: + resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + fd-package-json@2.0.0: resolution: {integrity: sha512-jKmm9YtsNXN789RS/0mSzOC1NUq9mkVd65vbSSVsKdjGvYXBuE4oWe2QOEoFeRmJg+lPuZxpmrfFclNhoRMneQ==} @@ -4006,6 +4045,10 @@ packages: github-slugger@2.0.0: resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + glob@13.0.6: + resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==} + engines: {node: 18 || 20 || >=22} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -4140,6 +4183,9 @@ packages: resolution: {integrity: sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==} engines: {node: '>=16'} + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -4164,6 +4210,9 @@ packages: json-schema@0.4.0: resolution: {integrity: sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==} + jsonc-parser@3.3.1: + resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} + kleur@3.0.3: resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} engines: {node: '>=6'} @@ -4558,6 +4607,14 @@ packages: engines: {node: '>=22.0.0'} hasBin: true + minimatch@10.2.6: + resolution: {integrity: sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==} + engines: {node: 18 || 20 || >=22} + + minipass@7.1.3: + resolution: {integrity: sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==} + engines: {node: '>=16 || 14 >=14.17'} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -4630,6 +4687,11 @@ packages: resolution: {integrity: sha512-GX0gsdbGVCgnRgbeGaubfjpBXyYRWOOCVeYh08bSQvDZqxz5ndXs1OTfAt/h36G1xvI94YIspsI0sVFqAV9+RQ==} engines: {node: '>=20.19.0'} + nypm@0.6.9: + resolution: {integrity: sha512-zxlE2yvSWZWmHcNdT3+5zV2lrCogeE9YOklHrR3dFjqutq5wO7GFDYLFDRXLsYnJzwvy/im9fYoxePvS0VTW0w==} + engines: {node: '>=18'} + hasBin: true + obug@2.1.1: resolution: {integrity: sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ==} @@ -4687,6 +4749,14 @@ packages: parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-scurry@2.0.2: + resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==} + engines: {node: 18 || 20 || >=22} + path-to-regexp@6.3.0: resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} @@ -4998,6 +5068,14 @@ packages: resolution: {integrity: sha512-FVtFjtBCMiJS6yb5CX7Sop45WFMpeGw6oRKuJnXYgf/f1ms/D7LE/ZUSNxnW7rZ/dbslQWYkoqFHGPaDBtaK4w==} engines: {node: '>=20.9.0'} + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + shell-quote@1.9.0: resolution: {integrity: sha512-Iov+JwFv/2HcTpcwNMKd8+IWNb8tboQJNQTkAY/LLVK7gGH9jy+LGkVqPxfekHl+yMmiqXszdGWXgkfml7hjqA==} engines: {node: '>= 0.4'} @@ -5234,6 +5312,18 @@ packages: uhyphen@0.2.0: resolution: {integrity: sha512-qz3o9CHXmJJPGBdqzab7qAYuW8kQGKNEuoHFYrBwV6hWIMcpAmxDLXojcHfFr9US1Pe6zUswEIJIbLI610fuqA==} + ultracite@7.10.2: + resolution: {integrity: sha512-WP1Hu/BKy/BDgntaiU33uq2Y8hKL2gEO5li2wfg7XFvmlyIkGDEy8qbWg7GHsxTEjEpWOAKpyFSF8aqc3JNEGQ==} + hasBin: true + peerDependencies: + oxfmt: '>=0.1.0' + oxlint: ^1.0.0 + peerDependenciesMeta: + oxfmt: + optional: true + oxlint: + optional: true + ultrahtml@1.6.0: resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} @@ -5632,6 +5722,11 @@ packages: resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} engines: {node: '>=4'} + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + why-is-node-running@2.3.0: resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} engines: {node: '>=8'} @@ -6020,6 +6115,18 @@ snapshots: dependencies: fontkitten: 1.0.3 + '@clack/core@1.4.3': + dependencies: + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + + '@clack/prompts@1.7.0': + dependencies: + '@clack/core': 1.4.3 + fast-string-width: 3.0.2 + fast-wrap-ansi: 0.2.2 + sisteransi: 1.0.5 + '@cloudflare/kv-asset-handler@0.5.0': {} '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260722.1)': @@ -8157,6 +8264,8 @@ snapshots: bail@2.0.2: {} + balanced-match@4.0.4: {} + base-64@1.0.0: {} baseline-browser-mapping@2.10.14: {} @@ -8220,6 +8329,10 @@ snapshots: widest-line: 5.0.0 wrap-ansi: 9.0.2 + brace-expansion@5.0.9: + dependencies: + balanced-match: 4.0.4 + browserslist@4.28.2: dependencies: baseline-browser-mapping: 2.10.14 @@ -8266,6 +8379,8 @@ snapshots: ci-info@4.4.0: {} + citty@0.2.2: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -8308,6 +8423,8 @@ snapshots: commander@14.0.3: {} + commander@15.0.0: {} + commander@2.20.3: optional: true @@ -8330,6 +8447,12 @@ snapshots: core-js@3.49.0: {} + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + crossws@0.3.5: dependencies: uncrypto: 0.1.3 @@ -8683,6 +8806,16 @@ snapshots: extend@3.0.2: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-wrap-ansi@0.2.2: + dependencies: + fast-string-width: 3.0.2 + fd-package-json@2.0.0: dependencies: walk-up-path: 4.0.0 @@ -8735,6 +8868,12 @@ snapshots: github-slugger@2.0.0: {} + glob@13.0.6: + dependencies: + minimatch: 10.2.6 + minipass: 7.1.3 + path-scurry: 2.0.2 + graceful-fs@4.2.11: {} h3@1.15.11: @@ -8948,6 +9087,8 @@ snapshots: dependencies: is-inside-container: 1.0.0 + isexe@2.0.0: {} + jiti@2.6.1: {} jiti@2.7.0: {} @@ -8965,6 +9106,8 @@ snapshots: json-schema@0.4.0: {} + jsonc-parser@3.3.1: {} + kleur@3.0.3: {} kleur@4.1.5: {} @@ -9547,6 +9690,12 @@ snapshots: - bufferutil - utf-8-validate + minimatch@10.2.6: + dependencies: + brace-expansion: 5.0.9 + + minipass@7.1.3: {} + mrmime@2.0.1: {} ms@2.1.3: {} @@ -9609,6 +9758,12 @@ snapshots: dependencies: boolbase: 2.0.0 + nypm@0.6.9: + dependencies: + citty: 0.2.2 + pathe: 2.0.3 + tinyexec: 1.2.4 + obug@2.1.1: {} obug@2.1.4: {} @@ -9718,6 +9873,13 @@ snapshots: dependencies: entities: 6.0.1 + path-key@3.1.1: {} + + path-scurry@2.0.2: + dependencies: + lru-cache: 11.5.1 + minipass: 7.1.3 + path-to-regexp@6.3.0: {} pathe@2.0.3: {} @@ -10211,6 +10373,12 @@ snapshots: '@img/sharp-win32-ia32': 0.35.2 '@img/sharp-win32-x64': 0.35.2 + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + shell-quote@1.9.0: {} shiki@3.23.0: @@ -10414,6 +10582,18 @@ snapshots: uhyphen@0.2.0: {} + ultracite@7.10.2: + dependencies: + '@clack/prompts': 1.7.0 + commander: 15.0.0 + cross-spawn: 7.0.6 + deepmerge: 4.3.1 + glob: 13.0.6 + jsonc-parser: 3.3.1 + nypm: 0.6.9 + yaml: 2.9.0 + zod: 4.4.3 + ultrahtml@1.6.0: {} unbash@4.0.3: {} @@ -10666,6 +10846,10 @@ snapshots: which-pm-runs@1.1.0: {} + which@2.0.2: + dependencies: + isexe: 2.0.0 + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0