From ff802edf23c1d8233634927e4e28cab55194da04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Boubault?= <7613286+Applelo@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:18:02 +0100 Subject: [PATCH 1/5] fix readme and package json issues --- package.json | 2 +- packages/core/LICENSE | 21 ---------- packages/core/README.md | 84 +------------------------------------- packages/core/package.json | 2 +- packages/vue/README.md | 1 + packages/vue/package.json | 12 +++--- 6 files changed, 11 insertions(+), 111 deletions(-) delete mode 100644 packages/core/LICENSE mode change 100644 => 120000 packages/core/README.md create mode 120000 packages/vue/README.md diff --git a/package.json b/package.json index a0d69a2..c8aead8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@compotes/root", "type": "module", - "version": "0.10.0", + "version": "0.10.1", "private": "true", "packageManager": "pnpm@10.29.1", "description": "Components library focused on accessibility/customization", diff --git a/packages/core/LICENSE b/packages/core/LICENSE deleted file mode 100644 index e9d329b..0000000 --- a/packages/core/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2023-present Loïs Boubault (Applelo) - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/packages/core/README.md b/packages/core/README.md deleted file mode 100644 index 1fb99f3..0000000 --- a/packages/core/README.md +++ /dev/null @@ -1,83 +0,0 @@ -npm package -build status - -# Compotes - -> A components library focused on customization/accessibility - -To learn more, check the *[documentation](https://compotes.dev)*. - -## ✨ Features - -- 👨‍🎨 Minimal CSS to do your customization -- 🦾 Accessibility in mind -- 📠 Fully typed - -## 🍏 Compotes - -- Collapse/Accordion ([demo](https://compotes.dev/demo/drilldown.html)) -- Drag ([demo](https://compotes.dev/demo/drag.html)) -- Drilldown ([demo](https://compotes.dev/demo/collapse.html)) -- Dropdown ([demo](https://compotes.dev/demo/dropdown.html)) -- Marquee ([demo](https://compotes.dev/demo/marquee.html)) - -And more to come! - -## 🍯 Pots - -
-Vanilla JS/TS
- -```bash -npm i -D compotes - -# yarn -yarn add -D compotes - -# pnpm -pnpm add -D compotes -``` - -
- -
-Vue 3
- -```bash -npm i -D @compotes/vue - -# yarn -yarn add -D @compotes/vue - -# pnpm -pnpm add -D @compotes/vue -``` - -
- - - -## 🙋‍♂️ Why ? - -A lot of components library are already shipped with styles but as a Front End developer, I always wants to override a lot. Futhermore, there are not always accessible or they are shipped with jQuery. - -There are some good library like [React Aria](https://react-spectrum.adobe.com/react-aria/react-aria-components.html) but it's made to work on one framework and I work on different tech like Wordpress, Symfony or VueJS. - -> This library provide only the compotes and it's you to make a tart. - -## 👨‍💼 License - -MIT diff --git a/packages/core/README.md b/packages/core/README.md new file mode 120000 index 0000000..487bdea --- /dev/null +++ b/packages/core/README.md @@ -0,0 +1 @@ +/Users/Applelo/Projets/compote/README.md \ No newline at end of file diff --git a/packages/core/package.json b/packages/core/package.json index aa959c3..78eaede 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,7 +1,7 @@ { "name": "compotes", "type": "module", - "version": "0.10.0", + "version": "0.10.1", "description": "Components library focused on accessibility/customization", "author": "Applelo", "license": "MIT", diff --git a/packages/vue/README.md b/packages/vue/README.md new file mode 120000 index 0000000..487bdea --- /dev/null +++ b/packages/vue/README.md @@ -0,0 +1 @@ +/Users/Applelo/Projets/compote/README.md \ No newline at end of file diff --git a/packages/vue/package.json b/packages/vue/package.json index b52b6d4..6a3c0dc 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -1,16 +1,16 @@ { "name": "@compotes/vue", "type": "module", - "version": "0.10.0", + "version": "0.10.1", "description": "Components library focused on accessibility/customization", "author": "Applelo", "license": "MIT", - "homepage": "https://github.com/Applelo/blottie", + "homepage": "https://compotes.dev/", "repository": { "type": "git", - "url": "https://github.com/Applelo/blottie" + "url": "https://github.com/Applelo/compotes" }, - "bugs": "https://github.com/Applelo/blottie/issues", + "bugs": "https://github.com/Applelo/compotes/issues", "keywords": [ "components", "accessible", @@ -19,7 +19,9 @@ "component", "vanilla", "typescript", - "typings" + "typings", + "vue", + "composables" ], "exports": { ".": { From ffea4e3712713c69b50490ee1201bb579f878ecc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Boubault?= <7613286+Applelo@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:40:14 +0100 Subject: [PATCH 2/5] add same license for core and vue package --- packages/core/LICENSE | 1 + packages/vue/LICENSE | 1 + 2 files changed, 2 insertions(+) create mode 120000 packages/core/LICENSE create mode 120000 packages/vue/LICENSE diff --git a/packages/core/LICENSE b/packages/core/LICENSE new file mode 120000 index 0000000..0b0a4ec --- /dev/null +++ b/packages/core/LICENSE @@ -0,0 +1 @@ +/Users/Applelo/Projets/compote/LICENSE \ No newline at end of file diff --git a/packages/vue/LICENSE b/packages/vue/LICENSE new file mode 120000 index 0000000..0b0a4ec --- /dev/null +++ b/packages/vue/LICENSE @@ -0,0 +1 @@ +/Users/Applelo/Projets/compote/LICENSE \ No newline at end of file From 1112a5925bedc3c4331899469a42641e94a313eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Boubault?= <7613286+Applelo@users.noreply.github.com> Date: Mon, 16 Feb 2026 20:53:47 +0100 Subject: [PATCH 3/5] use sync script instead of symlink and fix typings --- package.json | 3 +- packages/core/LICENSE | 22 +++++++- packages/core/README.md | 101 ++++++++++++++++++++++++++++++++++++- packages/core/package.json | 2 +- packages/vue/LICENSE | 22 +++++++- packages/vue/README.md | 101 ++++++++++++++++++++++++++++++++++++- packages/vue/package.json | 2 +- scripts/prepublish-sync.js | 15 ++++++ 8 files changed, 261 insertions(+), 7 deletions(-) mode change 120000 => 100644 packages/core/LICENSE mode change 120000 => 100644 packages/core/README.md mode change 120000 => 100644 packages/vue/LICENSE mode change 120000 => 100644 packages/vue/README.md create mode 100644 scripts/prepublish-sync.js diff --git a/package.json b/package.json index c8aead8..601270b 100644 --- a/package.json +++ b/package.json @@ -37,11 +37,12 @@ "test:vitest": "pnpm run -r test:vitest --run", "test:coverage": "pnpm run -r test:coverage", "test:types": "pnpm run -r test:types", - "prepublishOnly": "pnpm build", "docs:dev": "vitepress dev docs", "docs:build": "vitepress build docs", "docs:serve": "vitepress serve docs", "docs:sync": "node scripts/doc-sync.js", + "prepublish:sync": "node scripts/prepublish-sync.js", + "prepublishOnly": "pnpm prepublish:sync && pnpm build", "publish:all": "pnpm -r publish" }, "devDependencies": { diff --git a/packages/core/LICENSE b/packages/core/LICENSE deleted file mode 120000 index 0b0a4ec..0000000 --- a/packages/core/LICENSE +++ /dev/null @@ -1 +0,0 @@ -/Users/Applelo/Projets/compote/LICENSE \ No newline at end of file diff --git a/packages/core/LICENSE b/packages/core/LICENSE new file mode 100644 index 0000000..e9d329b --- /dev/null +++ b/packages/core/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present Loïs Boubault (Applelo) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/core/README.md b/packages/core/README.md deleted file mode 120000 index 487bdea..0000000 --- a/packages/core/README.md +++ /dev/null @@ -1 +0,0 @@ -/Users/Applelo/Projets/compote/README.md \ No newline at end of file diff --git a/packages/core/README.md b/packages/core/README.md new file mode 100644 index 0000000..1b052d0 --- /dev/null +++ b/packages/core/README.md @@ -0,0 +1,100 @@ +npm package +build status +[![Coverage Status](https://coveralls.io/repos/github/Applelo/compotes/badge.svg?branch=main)](https://coveralls.io/github/Applelo/compotes?branch=main) + +# Compotes + +> A components library focused on customization/accessibility + +To learn more, check the *[documentation](https://compotes.dev)*. + +## ✨ Features + +- 👨‍🎨 Minimal CSS to do your customization +- 🦾 Accessibility in mind +- 📠 Fully typed +- 🧩 Framework agnostic +- 📦 Simple components ready to use +- 🪶 Lightweight + +## 🍏 Compotes + +- Collapse/Accordion ([demo](https://compotes.dev/demo/collapse.html)) +- Drag ([demo](https://compotes.dev/demo/drag.html)) +- Drilldown ([demo](https://compotes.dev/demo/drilldown.html)) +- Dropdown ([demo](https://compotes.dev/demo/dropdown.html)) +- Marquee ([demo](https://compotes.dev/demo/marquee.html)) + + +And more to come! + +## 🍯 Pots + +
+Vanilla JS/TS
+ +```bash +npm i -D compotes + +# yarn +yarn add -D compotes + +# pnpm +pnpm add -D compotes + +#bun +bun add -D compotes +``` + +
+ +
+Vue 3
+ +```bash +npm i -D @compotes/vue + +# yarn +yarn add -D @compotes/vue + +# pnpm +pnpm add -D @compotes/vue + +#bun +bun add -D @compotes/vue +``` + +
+ + + +## 🙋‍♂️ Why ? + +A lot of component libraries are already shipped with styles but as a Front End developer, I always want to override a lot. Furthermore, they are not always accessible or they are shipped with jQuery. + +There are some good libraries like [React Aria](https://react-spectrum.adobe.com/react-aria/react-aria-components.html) but it's made to work on one framework and I work on different tech like Wordpress, Symfony or VueJS. + +> This library provides only the compotes and it's up to you to make a tart. + +## AI Usage + +This project uses AI to improve and keep the documentation up to date. It also helps me writing the connection between core components to VueJS. + +## 👨‍💼 License + +MIT diff --git a/packages/core/package.json b/packages/core/package.json index 78eaede..bd61495 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -47,7 +47,7 @@ }, "main": "./dist/compotes.umd.js", "module": "./dist/compotes.js", - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "files": [ "dist" ], diff --git a/packages/vue/LICENSE b/packages/vue/LICENSE deleted file mode 120000 index 0b0a4ec..0000000 --- a/packages/vue/LICENSE +++ /dev/null @@ -1 +0,0 @@ -/Users/Applelo/Projets/compote/LICENSE \ No newline at end of file diff --git a/packages/vue/LICENSE b/packages/vue/LICENSE new file mode 100644 index 0000000..e9d329b --- /dev/null +++ b/packages/vue/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023-present Loïs Boubault (Applelo) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/packages/vue/README.md b/packages/vue/README.md deleted file mode 120000 index 487bdea..0000000 --- a/packages/vue/README.md +++ /dev/null @@ -1 +0,0 @@ -/Users/Applelo/Projets/compote/README.md \ No newline at end of file diff --git a/packages/vue/README.md b/packages/vue/README.md new file mode 100644 index 0000000..1b052d0 --- /dev/null +++ b/packages/vue/README.md @@ -0,0 +1,100 @@ +npm package +build status +[![Coverage Status](https://coveralls.io/repos/github/Applelo/compotes/badge.svg?branch=main)](https://coveralls.io/github/Applelo/compotes?branch=main) + +# Compotes + +> A components library focused on customization/accessibility + +To learn more, check the *[documentation](https://compotes.dev)*. + +## ✨ Features + +- 👨‍🎨 Minimal CSS to do your customization +- 🦾 Accessibility in mind +- 📠 Fully typed +- 🧩 Framework agnostic +- 📦 Simple components ready to use +- 🪶 Lightweight + +## 🍏 Compotes + +- Collapse/Accordion ([demo](https://compotes.dev/demo/collapse.html)) +- Drag ([demo](https://compotes.dev/demo/drag.html)) +- Drilldown ([demo](https://compotes.dev/demo/drilldown.html)) +- Dropdown ([demo](https://compotes.dev/demo/dropdown.html)) +- Marquee ([demo](https://compotes.dev/demo/marquee.html)) + + +And more to come! + +## 🍯 Pots + +
+Vanilla JS/TS
+ +```bash +npm i -D compotes + +# yarn +yarn add -D compotes + +# pnpm +pnpm add -D compotes + +#bun +bun add -D compotes +``` + +
+ +
+Vue 3
+ +```bash +npm i -D @compotes/vue + +# yarn +yarn add -D @compotes/vue + +# pnpm +pnpm add -D @compotes/vue + +#bun +bun add -D @compotes/vue +``` + +
+ + + +## 🙋‍♂️ Why ? + +A lot of component libraries are already shipped with styles but as a Front End developer, I always want to override a lot. Furthermore, they are not always accessible or they are shipped with jQuery. + +There are some good libraries like [React Aria](https://react-spectrum.adobe.com/react-aria/react-aria-components.html) but it's made to work on one framework and I work on different tech like Wordpress, Symfony or VueJS. + +> This library provides only the compotes and it's up to you to make a tart. + +## AI Usage + +This project uses AI to improve and keep the documentation up to date. It also helps me writing the connection between core components to VueJS. + +## 👨‍💼 License + +MIT diff --git a/packages/vue/package.json b/packages/vue/package.json index 6a3c0dc..c12efe1 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -37,7 +37,7 @@ }, "main": "./dist/compotes.umd.js", "module": "./dist/compotes.js", - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "files": [ "dist" ], diff --git a/scripts/prepublish-sync.js b/scripts/prepublish-sync.js new file mode 100644 index 0000000..8f411f1 --- /dev/null +++ b/scripts/prepublish-sync.js @@ -0,0 +1,15 @@ +import { copyFileSync } from 'node:fs' +import { resolve } from 'node:path' + +const root = resolve(import.meta.dirname, '..') +const packages = ['core', 'vue'] +const files = ['README.md', 'LICENSE'] + +for (const pkg of packages) { + for (const file of files) { + const src = resolve(root, file) + const dest = resolve(root, 'packages', pkg, file) + copyFileSync(src, dest) + console.log(`Copied ${file} → packages/${pkg}/${file}`) + } +} From 47fa36470ce8244f1d44438dffd70a407812fcac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Boubault?= <7613286+Applelo@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:05:23 +0100 Subject: [PATCH 4/5] fix typings and add attw check --- package.json | 4 +- packages/core/package.json | 5 +- packages/vue/package.json | 5 +- pnpm-lock.yaml | 352 ++++++++++++++++++++++++++++++++++--- pnpm-workspace.yaml | 1 + 5 files changed, 336 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 601270b..8534418 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "build": "pnpm run -r build", "lint": "eslint .", "lint:fix": "eslint . --fix", - "test": "pnpm run test:types && pnpm run test:vitest", + "test": "pnpm run test:types && pnpm run test:attw && pnpm run test:vitest", + "test:attw": "pnpm run -r test:attw", "test:vitest": "pnpm run -r test:vitest --run", "test:coverage": "pnpm run -r test:coverage", "test:types": "pnpm run -r test:types", @@ -46,6 +47,7 @@ "publish:all": "pnpm -r publish" }, "devDependencies": { + "@arethetypeswrong/cli": "catalog:", "@antfu/eslint-config": "catalog:", "@vitest/browser-playwright": "catalog:", "@vitest/coverage-istanbul": "catalog:", diff --git a/packages/core/package.json b/packages/core/package.json index bd61495..83de377 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -24,11 +24,11 @@ "exports": { ".": { "import": { - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "default": "./dist/compotes.js" }, "require": { - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "default": "./dist/compotes.umd.js" } }, @@ -59,6 +59,7 @@ "build": "tsdown", "test:vitest": "vitest", "test:coverage": "vitest --run --coverage", + "test:attw": "attw --pack . --entrypoints . --ignore-rules cjs-resolves-to-esm unexpected-module-syntax", "test:types": "tsc --noEmit && vue-tsc --noEmit", "prepublishOnly": "pnpm build" }, diff --git a/packages/vue/package.json b/packages/vue/package.json index c12efe1..b04ece9 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -26,11 +26,11 @@ "exports": { ".": { "import": { - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "default": "./dist/compotes.js" }, "require": { - "types": "./dist/index.d.ts", + "types": "./dist/compotes.d.ts", "default": "./dist/compotes.umd.js" } } @@ -47,6 +47,7 @@ "scripts": { "dev": "tsdown --watch", "build": "tsdown", + "test:attw": "attw --pack . --ignore-rules cjs-resolves-to-esm unexpected-module-syntax", "test:vitest": "vitest", "test:coverage": "vitest run --coverage", "lint": "eslint .", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a85e106..12f01fd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,9 @@ catalogs: '@antfu/eslint-config': specifier: 7.4.3 version: 7.4.3 + '@arethetypeswrong/cli': + specifier: ^0.18.2 + version: 0.18.2 '@types/node': specifier: ^25.2.1 version: 25.2.3 @@ -77,6 +80,9 @@ importers: '@antfu/eslint-config': specifier: 'catalog:' version: 7.4.3(@vue/compiler-sfc@3.5.28)(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.18) + '@arethetypeswrong/cli': + specifier: 'catalog:' + version: 0.18.2 '@vitest/browser-playwright': specifier: 'catalog:' version: 4.0.18(playwright@1.58.2)(vite@7.3.1(@types/node@25.2.3)(jiti@2.6.1)(lightningcss@1.31.1)(yaml@2.8.2))(vitest@4.0.18) @@ -97,7 +103,7 @@ importers: version: 4.57.1 tsdown: specifier: 'catalog:' - version: 0.20.3(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)) + version: 0.20.3(@arethetypeswrong/core@0.18.2)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)) typescript: specifier: 'catalog:' version: 5.9.3 @@ -270,6 +276,9 @@ packages: resolution: {integrity: sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg==} engines: {node: '>= 14.0.0'} + '@andrewbranch/untar.js@1.0.3': + resolution: {integrity: sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==} + '@antfu/eslint-config@7.4.3': resolution: {integrity: sha512-qHOG2408wBz21x191n0Mm9r2q/PqMYul+YE+DUBqZMtJYUn+bd+Dh3g8LIkyItMJR+Xs9f9TKXJehZLRYxJlHg==} hasBin: true @@ -337,6 +346,15 @@ packages: '@antfu/install-pkg@1.1.0': resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + '@arethetypeswrong/cli@0.18.2': + resolution: {integrity: sha512-PcFM20JNlevEDKBg4Re29Rtv2xvjvQZzg7ENnrWFSS0PHgdP2njibVFw+dRUhNkPgNfac9iUqO0ohAXqQL4hbw==} + engines: {node: '>=20'} + hasBin: true + + '@arethetypeswrong/core@0.18.2': + resolution: {integrity: sha512-GiwTmBFOU1/+UVNqqCGzFJYfBXEytUkiI+iRZ6Qx7KmUVtLm00sYySkfe203C9QtPG11yOz1ZaMek8dT/xnlgg==} + engines: {node: '>=20'} + '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -425,12 +443,19 @@ packages: resolution: {integrity: sha512-ubmJ6TShyaD69VE9DQrlXcdkvJbmwWPB8qYj0H2kaJi29O7vJT9ajSdBd2W8CG34pwL9pYA74fi7RHC1qbLoVQ==} engines: {node: ^20.19.0 || >=22.12.0} + '@braidai/lang@1.1.2': + resolution: {integrity: sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==} + '@clack/core@1.0.1': resolution: {integrity: sha512-WKeyK3NOBwDOzagPR5H08rFk9D/WuN705yEbuZvKqlkmoLM2woKtXb10OO2k1NoSU4SFG947i2/SCYh+2u5e4g==} '@clack/prompts@1.0.1': resolution: {integrity: sha512-/42G73JkuYdyWZ6m8d/CJtBrGl1Hegyc7Fy78m5Ob+jF85TOUmLR5XLce/U3LxYAw0kJ8CT5aI99RIvPHcGp/Q==} + '@colors/colors@1.5.0': + resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} + engines: {node: '>=0.1.90'} + '@docsearch/css@3.8.2': resolution: {integrity: sha512-y05ayQFyUmCXze79+56v/4HpycYF3uFqB78pLPrSV5ZKAlDuIAAJNhaRi8tTdRNXh05yxX/TyNnzD6LwSM89vQ==} @@ -876,6 +901,9 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@loaderkit/resolve@1.0.4': + resolution: {integrity: sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==} + '@napi-rs/wasm-runtime@1.1.1': resolution: {integrity: sha512-p64ah1M1ld8xjWv3qbvFwHiFVWrq1yFvV4f7w+mzaqiR4IlSgkqhcRdHwsGgomwzBH51sRY4NEowLxnaBjcW/A==} @@ -988,48 +1016,56 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.4': resolution: {integrity: sha512-AC1WsGdlV1MtGay/OQ4J9T7GRadVnpYRzTcygV1hKnypbYN20Yh4t6O1Sa2qRBMqv1etulUknqXjc3CTIsBu6A==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.3': resolution: {integrity: sha512-Z03/wrqau9Bicfgb3Dbs6SYTHliELk2PM2LpG2nFd+cGupTMF5kanLEcj2vuuJLLhptNyS61rtk7SOZ+lPsTUA==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-arm64-musl@1.0.0-rc.4': resolution: {integrity: sha512-lU+6rgXXViO61B4EudxtVMXSOfiZONR29Sys5VGSetUY7X8mg9FCKIIjcPPj8xNDeYzKl+H8F/qSKOBVFJChCQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [arm64] os: [linux] + libc: [musl] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.3': resolution: {integrity: sha512-iSXXZsQp08CSilff/DCTFZHSVEpEwdicV3W8idHyrByrcsRDVh9sGC3sev6d8BygSGj3vt8GvUKBPCoyMA4tgQ==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-gnu@1.0.0-rc.4': resolution: {integrity: sha512-DZaN1f0PGp/bSvKhtw50pPsnln4T13ycDq1FrDWRiHmWt1JeW+UtYg9touPFf8yt993p8tS2QjybpzKNTxYEwg==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [glibc] '@rolldown/binding-linux-x64-musl@1.0.0-rc.3': resolution: {integrity: sha512-qaj+MFudtdCv9xZo9znFvkgoajLdc+vwf0Kz5N44g+LU5XMe+IsACgn3UG7uTRlCCvhMAGXm1XlpEA5bZBrOcw==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-linux-x64-musl@1.0.0-rc.4': resolution: {integrity: sha512-RnGxwZLN7fhMMAItnD6dZ7lvy+TI7ba+2V54UF4dhaWa/p8I/ys1E73KO6HmPmgz92ZkfD8TXS1IMV8+uhbR9g==} engines: {node: ^20.19.0 || >=22.12.0} cpu: [x64] os: [linux] + libc: [musl] '@rolldown/binding-openharmony-arm64@1.0.0-rc.3': resolution: {integrity: sha512-U662UnMETyjT65gFmG9ma+XziENrs7BBnENi/27swZPYagubfHRirXHG2oMl+pEax2WvO7Kb9gHZmMakpYqBHQ==} @@ -1120,66 +1156,79 @@ packages: resolution: {integrity: sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==} cpu: [arm] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm-musleabihf@4.57.1': resolution: {integrity: sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==} cpu: [arm] os: [linux] + libc: [musl] '@rollup/rollup-linux-arm64-gnu@4.57.1': resolution: {integrity: sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==} cpu: [arm64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-arm64-musl@4.57.1': resolution: {integrity: sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==} cpu: [arm64] os: [linux] + libc: [musl] '@rollup/rollup-linux-loong64-gnu@4.57.1': resolution: {integrity: sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==} cpu: [loong64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-loong64-musl@4.57.1': resolution: {integrity: sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==} cpu: [loong64] os: [linux] + libc: [musl] '@rollup/rollup-linux-ppc64-gnu@4.57.1': resolution: {integrity: sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==} cpu: [ppc64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-ppc64-musl@4.57.1': resolution: {integrity: sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==} cpu: [ppc64] os: [linux] + libc: [musl] '@rollup/rollup-linux-riscv64-gnu@4.57.1': resolution: {integrity: sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==} cpu: [riscv64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-riscv64-musl@4.57.1': resolution: {integrity: sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==} cpu: [riscv64] os: [linux] + libc: [musl] '@rollup/rollup-linux-s390x-gnu@4.57.1': resolution: {integrity: sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==} cpu: [s390x] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-gnu@4.57.1': resolution: {integrity: sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==} cpu: [x64] os: [linux] + libc: [glibc] '@rollup/rollup-linux-x64-musl@4.57.1': resolution: {integrity: sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==} cpu: [x64] os: [linux] + libc: [musl] '@rollup/rollup-openbsd-x64@4.57.1': resolution: {integrity: sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==} @@ -1239,6 +1288,10 @@ packages: resolution: {integrity: sha512-TeheYy0ILzBEI/CO55CP6zJCSdSWeRtGnHy8U8dWSUH4I68iqTsy7HkMktR4xakThc9jotkPQUXT4ITdbV7cHA==} engines: {node: '>=18'} + '@sindresorhus/is@4.6.0': + resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==} + engines: {node: '>=10'} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} @@ -1617,6 +1670,10 @@ packages: alien-signals@3.1.2: resolution: {integrity: sha512-d9dYqZTS90WLiU0I5c6DHj/HcKkF8ZyGN3G5x8wSbslulz70KOxaqCT0hQCo9KOyhVqzqGojvNdJXoTumZOtcw==} + ansi-escapes@7.3.0: + resolution: {integrity: sha512-BvU8nYgGQBxcmMuEeUEmNTvrMVjJNSH7RgW24vXexN4Ven6qCvy4TntnvlnwnMLTVlcRQQdbRY8NKnaIoeWDNg==} + engines: {node: '>=18'} + ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} @@ -1637,6 +1694,9 @@ packages: resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} engines: {node: '>=14'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + archiver-utils@5.0.2: resolution: {integrity: sha512-wuLJMmIBQYCsGZgYLTy5FIB2pF6Lfb6cXMSF8Qywwk3t20zWnAi7zLcQFdKQmIB8wyZpY5ER38x08GbwtR2cLA==} engines: {node: '>= 14'} @@ -1796,6 +1856,10 @@ packages: change-case@5.4.4: resolution: {integrity: sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==} + char-regex@1.0.2: + resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} + engines: {node: '>=10'} + character-entities-html4@2.1.0: resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} @@ -1816,10 +1880,25 @@ packages: resolution: {integrity: sha512-77PSwercCZU2Fc4sX94eF8k8Pxte6JAwL4/ICZLFjJLqegs7kCuAsqqj/70NQF6TvDpgFjkubQB2FW2ZZddvQg==} engines: {node: '>=8'} + cjs-module-lexer@1.4.3: + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + clean-regexp@1.0.0: resolution: {integrity: sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==} engines: {node: '>=4'} + cli-highlight@2.1.11: + resolution: {integrity: sha512-9KDcoEVwyUXrjcJNvHD0NFc/hiwe/WPVYIleQh2O1N2Zro5gWJZ/K+3DGn8w8P/F6FxOgzyC5bxDyHIgCSPhGg==} + engines: {node: '>=8.0.0', npm: '>=5.0.0'} + hasBin: true + + cli-table3@0.6.5: + resolution: {integrity: sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==} + engines: {node: 10.* || >= 12.*} + + cliui@7.0.4: + resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} + cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -1834,6 +1913,10 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@10.0.1: + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} + commander@9.5.0: resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} engines: {node: ^12.20.0 || >=14} @@ -2002,6 +2085,9 @@ packages: emoji-regex@9.2.2: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + emojilib@2.4.0: + resolution: {integrity: sha512-5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==} + empathic@2.0.0: resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==} engines: {node: '>=14'} @@ -2028,6 +2114,10 @@ packages: resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} engines: {node: '>=0.12'} + environment@1.1.0: + resolution: {integrity: sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==} + engines: {node: '>=18'} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} @@ -2460,6 +2550,9 @@ packages: hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + highlight.js@10.7.3: + resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==} + hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} @@ -2684,24 +2777,28 @@ packages: engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [glibc] lightningcss-linux-arm64-musl@1.31.1: resolution: {integrity: sha512-mVZ7Pg2zIbe3XlNbZJdjs86YViQFoJSpc41CbVmKBPiGmC4YrfeOyz65ms2qpAobVd7WQsbW4PdsSJEMymyIMg==} engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] + libc: [musl] lightningcss-linux-x64-gnu@1.31.1: resolution: {integrity: sha512-xGlFWRMl+0KvUhgySdIaReQdB4FNudfUTARn7q0hh/V67PVGCs3ADFjw+6++kG1RNd0zdGRlEKa+T13/tQjPMA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [glibc] lightningcss-linux-x64-musl@1.31.1: resolution: {integrity: sha512-eowF8PrKHw9LpoZii5tdZwnBcYDxRw2rRCyvAXLi34iyeYfqCQNA9rmUM0ce62NlPhCvof1+9ivRaTY6pSKDaA==} engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] + libc: [musl] lightningcss-win32-arm64-msvc@1.31.1: resolution: {integrity: sha512-aJReEbSEQzx1uBlQizAOBSjcmr9dCdL3XuC/6HLXAxmtErsj2ICo5yYggg1qOODQMtnjNQv2UHb9NpOuFtYe4w==} @@ -2752,6 +2849,10 @@ packages: lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + lru-cache@11.2.6: + resolution: {integrity: sha512-ESL2CrkS/2wTPfuend7Zhkzo2u0daGJ/A2VucJOgQ/C48S/zB8MMeMHSGKYpXhIjbPxfuezITkaBH1wqv00DDQ==} + engines: {node: 20 || >=22} + lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} @@ -2775,6 +2876,17 @@ packages: markdown-table@3.0.4: resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + marked-terminal@7.3.0: + resolution: {integrity: sha512-t4rBvPsHc57uE/2nJOLmMbZCQ4tgAccAED3ngXQqW6g+TxA488JzJ+FK3lQkzBQOI1mRV/r/Kq+1ZlJ4D0owQw==} + engines: {node: '>=16.0.0'} + peerDependencies: + marked: '>=1 <16' + + marked@9.1.6: + resolution: {integrity: sha512-jcByLnIFkd5gSXZmjNvS1TlmRhCXZjIzHYlaGkPlLIekG55JDR2Z4va9tZwCiP+/RDERiNhMOFu01xd6O5ct1Q==} + engines: {node: '>= 16'} + hasBin: true + mdast-util-find-and-replace@3.0.2: resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} @@ -2948,6 +3060,9 @@ packages: muggle-string@0.4.1: resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nanoid@3.3.11: resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2964,6 +3079,10 @@ packages: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} + node-emoji@2.2.0: + resolution: {integrity: sha512-Z3lTE9pLaJF47NyMhd4ww1yFTAP8YhYI8SleJiHzM46Fgpm5cnNzSl9XfzFNqbaz+VlJrIj3fXQ4DeN1Rjm6cw==} + engines: {node: '>=18'} + node-releases@2.0.27: resolution: {integrity: sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==} @@ -2974,6 +3093,10 @@ packages: nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-deep-merge@2.0.0: resolution: {integrity: sha512-3DC3UMpeffLTHiuXSy/UG4NOIYTLlY9u3V82+djSCLYClWobZiS4ivYzpIUWrRY/nfsJ8cWsKyG3QfyLePmhvg==} @@ -3025,12 +3148,21 @@ packages: parse-statements@1.0.11: resolution: {integrity: sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==} + parse5-htmlparser2-tree-adapter@6.0.1: + resolution: {integrity: sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==} + parse5-htmlparser2-tree-adapter@7.1.0: resolution: {integrity: sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==} parse5-parser-stream@7.1.2: resolution: {integrity: sha512-JyeQc9iwFLn5TbvvqACIF/VXG6abODeB3Fwmv/TGdLk2LfbWkaySGY72at4+Ty7EkPZj854u4CrICqNk2qIbow==} + parse5@5.1.1: + resolution: {integrity: sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==} + + parse5@6.0.1: + resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} + parse5@7.3.0: resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} @@ -3319,6 +3451,10 @@ packages: sisteransi@1.0.5: resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + skin-tone@2.0.0: + resolution: {integrity: sha512-kUMbT1oBJCpgrnKoSr0o6wPtvRWT9W9UKvGLwfJYO2WuahZRHOpEyL1ckyMGgMWh0UdpmaoFqKKD29WTomNEGA==} + engines: {node: '>=8'} + smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} @@ -3411,6 +3547,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-hyperlinks@3.2.0: + resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} + engines: {node: '>=14.18'} + synckit@0.11.12: resolution: {integrity: sha512-Bh7QjT8/SuKUIfObSXNHNSK6WHo6J1tHCqJsuaFDP7gP0fkzSfTxI8y85JrppZ0h8l0maIgc2tfuZQ6/t3GtnQ==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3431,6 +3571,13 @@ packages: text-decoder@1.2.5: resolution: {integrity: sha512-ymKEOrjEhNE0+Gehpn2Dw59Vp2fNG0DQvCRAJpCjVqB1Pkj1AMBzDpow4H9kSa6XqO/wZrb5TLxEigx+nEaiBA==} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} @@ -3520,6 +3667,11 @@ packages: resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} engines: {node: '>=16'} + typescript@5.6.1-rc: + resolution: {integrity: sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==} + engines: {node: '>=14.17'} + hasBin: true + typescript@5.9.3: resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} engines: {node: '>=14.17'} @@ -3545,6 +3697,10 @@ packages: resolution: {integrity: sha512-Hn2tCQpoDt1wv23a68Ctc8Cr/BHpUSfaPYrkajTXOS9IKpxVRx/X5m1K2YkbK2ipgZgxXSgsUinl3x+2YdSSfg==} engines: {node: '>=20.18.1'} + unicode-emoji-modifier-base@1.0.0: + resolution: {integrity: sha512-yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==} + engines: {node: '>=4'} + unist-util-is@6.0.1: resolution: {integrity: sha512-LsiILbtBETkDz8I9p1dQ0uyRUWuaQzd/cuEeS1hoRSyW5E5XGmTzlwY1OrNzzakGowI9Dr/I8HVaw4hTtnxy8g==} @@ -3603,6 +3759,10 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + validate-npm-package-name@5.0.1: + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + vfile-message@4.0.3: resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} @@ -3884,10 +4044,18 @@ packages: engines: {node: '>= 14.6'} hasBin: true + yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} + yargs@16.2.0: + resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} + engines: {node: '>=10'} + yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -4020,6 +4188,8 @@ snapshots: dependencies: '@algolia/client-common': 5.48.1 + '@andrewbranch/untar.js@1.0.3': {} + '@antfu/eslint-config@7.4.3(@vue/compiler-sfc@3.5.28)(eslint@10.0.0(jiti@2.6.1))(typescript@5.9.3)(vitest@4.0.18)': dependencies: '@antfu/install-pkg': 1.1.0 @@ -4071,6 +4241,27 @@ snapshots: package-manager-detector: 1.6.0 tinyexec: 1.0.2 + '@arethetypeswrong/cli@0.18.2': + dependencies: + '@arethetypeswrong/core': 0.18.2 + chalk: 4.1.2 + cli-table3: 0.6.5 + commander: 10.0.1 + marked: 9.1.6 + marked-terminal: 7.3.0(marked@9.1.6) + semver: 7.7.4 + + '@arethetypeswrong/core@0.18.2': + dependencies: + '@andrewbranch/untar.js': 1.0.3 + '@loaderkit/resolve': 1.0.4 + cjs-module-lexer: 1.4.3 + fflate: 0.8.2 + lru-cache: 11.2.6 + semver: 7.7.4 + typescript: 5.6.1-rc + validate-npm-package-name: 5.0.1 + '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -4193,6 +4384,8 @@ snapshots: '@babel/helper-string-parser': 8.0.0-rc.1 '@babel/helper-validator-identifier': 8.0.0-rc.1 + '@braidai/lang@1.1.2': {} + '@clack/core@1.0.1': dependencies: picocolors: 1.1.1 @@ -4204,6 +4397,9 @@ snapshots: picocolors: 1.1.1 sisteransi: 1.0.5 + '@colors/colors@1.5.0': + optional: true + '@docsearch/css@3.8.2': {} '@docsearch/js@3.8.2(@algolia/client-search@5.48.1)(search-insights@2.17.3)': @@ -4524,6 +4720,10 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@loaderkit/resolve@1.0.4': + dependencies: + '@braidai/lang': 1.1.2 + '@napi-rs/wasm-runtime@1.1.1': dependencies: '@emnapi/core': 1.8.1 @@ -4786,6 +4986,8 @@ snapshots: '@sindresorhus/base62@1.0.0': {} + '@sindresorhus/is@4.6.0': {} + '@standard-schema/spec@1.1.0': {} '@stylistic/eslint-plugin@5.8.0(eslint@10.0.0(jiti@2.6.1))': @@ -5322,22 +5524,25 @@ snapshots: alien-signals@3.1.2: {} - ansi-regex@5.0.1: - optional: true + ansi-escapes@7.3.0: + dependencies: + environment: 1.1.0 - ansi-regex@6.2.2: - optional: true + ansi-regex@5.0.1: {} + + ansi-regex@6.2.2: {} ansi-styles@4.3.0: dependencies: color-convert: 2.0.1 - optional: true ansi-styles@6.2.3: optional: true ansis@4.2.0: {} + any-promise@1.3.0: {} + archiver-utils@5.0.2: dependencies: glob: 10.5.0 @@ -5491,13 +5696,13 @@ snapshots: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - optional: true - chalk@5.6.2: - optional: true + chalk@5.6.2: {} change-case@5.4.4: {} + char-regex@1.0.2: {} + character-entities-html4@2.1.0: {} character-entities-legacy@3.0.0: {} @@ -5531,10 +5736,33 @@ snapshots: ci-info@4.4.0: {} + cjs-module-lexer@1.4.3: {} + clean-regexp@1.0.0: dependencies: escape-string-regexp: 1.0.5 + cli-highlight@2.1.11: + dependencies: + chalk: 4.1.2 + highlight.js: 10.7.3 + mz: 2.7.0 + parse5: 5.1.1 + parse5-htmlparser2-tree-adapter: 6.0.1 + yargs: 16.2.0 + + cli-table3@0.6.5: + dependencies: + string-width: 4.2.3 + optionalDependencies: + '@colors/colors': 1.5.0 + + cliui@7.0.4: + dependencies: + string-width: 4.2.3 + strip-ansi: 6.0.1 + wrap-ansi: 7.0.0 + cliui@8.0.1: dependencies: string-width: 4.2.3 @@ -5545,13 +5773,13 @@ snapshots: color-convert@2.0.1: dependencies: color-name: 1.1.4 - optional: true - color-name@1.1.4: - optional: true + color-name@1.1.4: {} comma-separated-tokens@2.0.3: {} + commander@10.0.1: {} + commander@9.5.0: optional: true @@ -5713,12 +5941,13 @@ snapshots: emoji-regex-xs@1.0.0: {} - emoji-regex@8.0.0: - optional: true + emoji-regex@8.0.0: {} emoji-regex@9.2.2: optional: true + emojilib@2.4.0: {} + empathic@2.0.0: {} encoding-sniffer@0.2.1: @@ -5745,6 +5974,8 @@ snapshots: entities@7.0.1: {} + environment@1.1.0: {} + es-module-lexer@1.7.0: {} esbuild@0.21.5: @@ -6235,8 +6466,7 @@ snapshots: gensync@1.0.0-beta.2: {} - get-caller-file@2.0.5: - optional: true + get-caller-file@2.0.5: {} get-port@7.1.0: optional: true @@ -6314,6 +6544,8 @@ snapshots: dependencies: '@types/hast': 3.0.4 + highlight.js@10.7.3: {} + hookable@5.5.3: {} hookable@6.0.1: {} @@ -6387,8 +6619,7 @@ snapshots: is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: - optional: true + is-fullwidth-code-point@3.0.0: {} is-glob@4.0.3: dependencies: @@ -6585,6 +6816,8 @@ snapshots: lru-cache@10.4.3: optional: true + lru-cache@11.2.6: {} + lru-cache@5.1.1: dependencies: yallist: 3.1.1 @@ -6610,6 +6843,19 @@ snapshots: markdown-table@3.0.4: {} + marked-terminal@7.3.0(marked@9.1.6): + dependencies: + ansi-escapes: 7.3.0 + ansi-regex: 6.2.2 + chalk: 5.6.2 + cli-highlight: 2.1.11 + cli-table3: 0.6.5 + marked: 9.1.6 + node-emoji: 2.2.0 + supports-hyperlinks: 3.2.0 + + marked@9.1.6: {} + mdast-util-find-and-replace@3.0.2: dependencies: '@types/mdast': 4.0.4 @@ -6976,6 +7222,12 @@ snapshots: muggle-string@0.4.1: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nanoid@3.3.11: {} natural-compare@1.4.0: {} @@ -6985,6 +7237,13 @@ snapshots: netmask@2.0.2: optional: true + node-emoji@2.2.0: + dependencies: + '@sindresorhus/is': 4.6.0 + char-regex: 1.0.2 + emojilib: 2.4.0 + skin-tone: 2.0.0 + node-releases@2.0.27: {} normalize-path@3.0.0: @@ -6994,6 +7253,8 @@ snapshots: dependencies: boolbase: 1.0.0 + object-assign@4.1.1: {} + object-deep-merge@2.0.0: {} obug@2.1.1: {} @@ -7062,6 +7323,10 @@ snapshots: parse-statements@1.0.11: {} + parse5-htmlparser2-tree-adapter@6.0.1: + dependencies: + parse5: 6.0.1 + parse5-htmlparser2-tree-adapter@7.1.0: dependencies: domhandler: 5.0.3 @@ -7073,6 +7338,10 @@ snapshots: parse5: 7.3.0 optional: true + parse5@5.1.1: {} + + parse5@6.0.1: {} + parse5@7.3.0: dependencies: entities: 6.0.1 @@ -7245,8 +7514,7 @@ snapshots: dependencies: jsesc: 3.1.0 - require-directory@2.1.1: - optional: true + require-directory@2.1.1: {} reserved-identifiers@1.2.0: {} @@ -7425,6 +7693,10 @@ snapshots: sisteransi@1.0.5: {} + skin-tone@2.0.0: + dependencies: + unicode-emoji-modifier-base: 1.0.0 + smart-buffer@4.2.0: optional: true @@ -7486,7 +7758,6 @@ snapshots: emoji-regex: 8.0.0 is-fullwidth-code-point: 3.0.0 strip-ansi: 6.0.1 - optional: true string-width@5.1.2: dependencies: @@ -7513,7 +7784,6 @@ snapshots: strip-ansi@6.0.1: dependencies: ansi-regex: 5.0.1 - optional: true strip-ansi@7.1.2: dependencies: @@ -7533,6 +7803,11 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@3.2.0: + dependencies: + has-flag: 4.0.0 + supports-color: 7.2.0 + synckit@0.11.12: dependencies: '@pkgr/core': 0.2.9 @@ -7571,6 +7846,14 @@ snapshots: - react-native-b4a optional: true + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + tinybench@2.9.0: {} tinyexec@1.0.2: {} @@ -7610,7 +7893,7 @@ snapshots: picomatch: 4.0.3 typescript: 5.9.3 - tsdown@0.20.3(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)): + tsdown@0.20.3(@arethetypeswrong/core@0.18.2)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 6.7.14 @@ -7629,6 +7912,7 @@ snapshots: unconfig-core: 7.4.2 unrun: 0.2.27(synckit@0.11.12) optionalDependencies: + '@arethetypeswrong/core': 0.18.2 typescript: 5.9.3 unplugin-lightningcss: 0.4.5 transitivePeerDependencies: @@ -7651,6 +7935,8 @@ snapshots: type-fest@4.41.0: optional: true + typescript@5.6.1-rc: {} + typescript@5.9.3: {} ufo@1.6.3: {} @@ -7671,6 +7957,8 @@ snapshots: undici@7.21.0: optional: true + unicode-emoji-modifier-base@1.0.0: {} + unist-util-is@6.0.1: dependencies: '@types/unist': 3.0.3 @@ -7752,6 +8040,8 @@ snapshots: util-deprecate@1.0.2: {} + validate-npm-package-name@5.0.1: {} + vfile-message@4.0.3: dependencies: '@types/unist': 3.0.3 @@ -8020,7 +8310,6 @@ snapshots: ansi-styles: 4.3.0 string-width: 4.2.3 strip-ansi: 6.0.1 - optional: true wrap-ansi@8.1.0: dependencies: @@ -8036,8 +8325,7 @@ snapshots: xml-name-validator@4.0.0: {} - y18n@5.0.8: - optional: true + y18n@5.0.8: {} yallist@3.1.1: {} @@ -8048,9 +8336,21 @@ snapshots: yaml@2.8.2: {} + yargs-parser@20.2.9: {} + yargs-parser@21.1.1: optional: true + yargs@16.2.0: + dependencies: + cliui: 7.0.4 + escalade: 3.2.0 + get-caller-file: 2.0.5 + require-directory: 2.1.1 + string-width: 4.2.3 + y18n: 5.0.8 + yargs-parser: 20.2.9 + yargs@17.7.2: dependencies: cliui: 8.0.1 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index b4e3a1a..da4a0f8 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -30,6 +30,7 @@ catalog: vitepress: ^1.6.4 vitest: ^4.0.18 vue: ^3.5.28 + '@arethetypeswrong/cli': ^0.18.2 vue-tsc: ^3.2.4 onlyBuiltDependencies: - edgedriver From e5991c182550235a996aec379653b73727177e0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFs=20Boubault?= <7613286+Applelo@users.noreply.github.com> Date: Mon, 16 Feb 2026 21:29:48 +0100 Subject: [PATCH 5/5] add publint and fix package exports --- package.json | 5 +++- packages/core/package.json | 17 ++++++------ packages/core/tsdown.config.ts | 16 ++++++++--- packages/vue/package.json | 17 ++++++------ packages/vue/tsdown.config.ts | 11 ++++++++ pnpm-lock.yaml | 49 ++++++++++++++++++++++++++++++++-- pnpm-workspace.yaml | 4 ++- 7 files changed, 95 insertions(+), 24 deletions(-) diff --git a/package.json b/package.json index 8534418..424b1c7 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "lint:fix": "eslint . --fix", "test": "pnpm run test:types && pnpm run test:attw && pnpm run test:vitest", "test:attw": "pnpm run -r test:attw", + "test:publint": "pnpm run -r test:publint", "test:vitest": "pnpm run -r test:vitest --run", "test:coverage": "pnpm run -r test:coverage", "test:types": "pnpm run -r test:types", @@ -47,13 +48,15 @@ "publish:all": "pnpm -r publish" }, "devDependencies": { - "@arethetypeswrong/cli": "catalog:", "@antfu/eslint-config": "catalog:", + "@arethetypeswrong/cli": "catalog:", "@vitest/browser-playwright": "catalog:", "@vitest/coverage-istanbul": "catalog:", "@vitest/ui": "catalog:", "eslint": "catalog:", "playwright": "catalog:", + "publint": "catalog:", + "rolldown": "catalog:", "rollup": "catalog:", "tsdown": "catalog:", "typescript": "catalog:", diff --git a/packages/core/package.json b/packages/core/package.json index 83de377..29bd99b 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -8,7 +8,7 @@ "homepage": "https://compotes.dev", "repository": { "type": "git", - "url": "https://github.com/Applelo/compotes" + "url": "git+https://github.com/Applelo/compotes.git" }, "bugs": "https://github.com/Applelo/compotes/issues", "keywords": [ @@ -24,12 +24,12 @@ "exports": { ".": { "import": { - "types": "./dist/compotes.d.ts", - "default": "./dist/compotes.js" + "types": "./dist/compotes.d.mts", + "default": "./dist/compotes.mjs" }, "require": { - "types": "./dist/compotes.d.ts", - "default": "./dist/compotes.umd.js" + "types": "./dist/compotes.d.cts", + "default": "./dist/compotes.umd.cjs" } }, "./css": "./dist/style.css", @@ -45,9 +45,9 @@ "./css/marquee": "./dist/css/marquee.css", "./css/marquee.css": "./dist/css/marquee.css" }, - "main": "./dist/compotes.umd.js", - "module": "./dist/compotes.js", - "types": "./dist/compotes.d.ts", + "main": "./dist/compotes.umd.cjs", + "module": "./dist/compotes.mjs", + "types": "./dist/compotes.d.mts", "files": [ "dist" ], @@ -60,6 +60,7 @@ "test:vitest": "vitest", "test:coverage": "vitest --run --coverage", "test:attw": "attw --pack . --entrypoints . --ignore-rules cjs-resolves-to-esm unexpected-module-syntax", + "test:publint": "pnpm build && publint", "test:types": "tsc --noEmit && vue-tsc --noEmit", "prepublishOnly": "pnpm build" }, diff --git a/packages/core/tsdown.config.ts b/packages/core/tsdown.config.ts index 6b437bc..8b00137 100644 --- a/packages/core/tsdown.config.ts +++ b/packages/core/tsdown.config.ts @@ -1,3 +1,4 @@ +import type { Plugin } from 'rolldown' import { promises as fs } from 'node:fs' import { basename, resolve } from 'node:path' import { fileURLToPath } from 'node:url' @@ -8,12 +9,12 @@ import LightningCSS from 'unplugin-lightningcss/rolldown' const root = fileURLToPath(new URL('.', import.meta.url)) -function addCSSCompotes() { +function addCSSCompotes(): Plugin { return { name: 'add-css', async generateBundle() { const styles = await fg.glob(['src/css/*.css'], { cwd: root }) - const minifyStyle = async (path: string) => { + for (const path of styles) { const filename = basename(path) const css = await fs.readFile(resolve(root, path)) const { code } = transform({ @@ -27,7 +28,6 @@ function addCSSCompotes() { type: 'asset', }) } - await Promise.all(styles.map(path => minifyStyle(path))) }, } } @@ -44,15 +44,23 @@ export default defineConfig({ tabbable: 'tabbable', }, }, + fixedExtension: true, + outExtensions: ({ format }) => { + if (format === 'umd') + return { js: '.cjs', dts: '.d.cts' } + }, hash: false, alias: { '@src': resolve(root, 'src'), }, css: { splitting: false, - fileName: 'compotes.css', + fileName: 'style.css', }, dts: true, + onSuccess: async () => { + await fs.copyFile(resolve(root, 'dist/compotes.d.mts'), resolve(root, 'dist/compotes.d.cts')) + }, plugins: [LightningCSS({ options: { minify: true, diff --git a/packages/vue/package.json b/packages/vue/package.json index b04ece9..00d80f9 100644 --- a/packages/vue/package.json +++ b/packages/vue/package.json @@ -8,7 +8,7 @@ "homepage": "https://compotes.dev/", "repository": { "type": "git", - "url": "https://github.com/Applelo/compotes" + "url": "git+https://github.com/Applelo/compotes.git" }, "bugs": "https://github.com/Applelo/compotes/issues", "keywords": [ @@ -26,18 +26,18 @@ "exports": { ".": { "import": { - "types": "./dist/compotes.d.ts", - "default": "./dist/compotes.js" + "types": "./dist/compotes.d.mts", + "default": "./dist/compotes.mjs" }, "require": { - "types": "./dist/compotes.d.ts", - "default": "./dist/compotes.umd.js" + "types": "./dist/compotes.d.cts", + "default": "./dist/compotes.umd.cjs" } } }, - "main": "./dist/compotes.umd.js", - "module": "./dist/compotes.js", - "types": "./dist/compotes.d.ts", + "main": "./dist/compotes.umd.cjs", + "module": "./dist/compotes.mjs", + "types": "./dist/compotes.d.mts", "files": [ "dist" ], @@ -48,6 +48,7 @@ "dev": "tsdown --watch", "build": "tsdown", "test:attw": "attw --pack . --ignore-rules cjs-resolves-to-esm unexpected-module-syntax", + "test:publint": "pnpm build && publint", "test:vitest": "vitest", "test:coverage": "vitest run --coverage", "lint": "eslint .", diff --git a/packages/vue/tsdown.config.ts b/packages/vue/tsdown.config.ts index ccce762..eb06b3f 100644 --- a/packages/vue/tsdown.config.ts +++ b/packages/vue/tsdown.config.ts @@ -1,7 +1,10 @@ +import { copyFile } from 'node:fs/promises' import { fileURLToPath } from 'node:url' import { defineConfig } from 'tsdown' import Vue from 'unplugin-vue/rolldown' +const root = fileURLToPath(new URL('.', import.meta.url)) + export default defineConfig({ entry: { compotes: fileURLToPath(new URL('./src/index.ts', import.meta.url)), @@ -9,6 +12,11 @@ export default defineConfig({ format: ['esm', 'umd'], platform: 'neutral', globalName: 'compotes', + fixedExtension: true, + outExtensions: ({ format }) => { + if (format === 'umd') + return { js: '.cjs', dts: '.d.cts' } + }, hash: false, alias: { '@src': fileURLToPath(new URL('./src', import.meta.url)), @@ -27,6 +35,9 @@ export default defineConfig({ dts: { vue: true, }, + onSuccess: async () => { + await copyFile(`${root}dist/compotes.d.mts`, `${root}dist/compotes.d.cts`) + }, plugins: [ Vue({ isProduction: true, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 12f01fd..f484c9d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,6 +39,12 @@ catalogs: playwright: specifier: ^1.58.2 version: 1.58.2 + publint: + specifier: ^0.3.17 + version: 0.3.17 + rolldown: + specifier: 1.0.0-rc.4 + version: 1.0.0-rc.4 rollup: specifier: ^4.57.1 version: 4.57.1 @@ -98,12 +104,18 @@ importers: playwright: specifier: 'catalog:' version: 1.58.2 + publint: + specifier: 'catalog:' + version: 0.3.17 + rolldown: + specifier: 'catalog:' + version: 1.0.0-rc.4 rollup: specifier: 'catalog:' version: 4.57.1 tsdown: specifier: 'catalog:' - version: 0.20.3(@arethetypeswrong/core@0.18.2)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)) + version: 0.20.3(@arethetypeswrong/core@0.18.2)(publint@0.3.17)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)) typescript: specifier: 'catalog:' version: 5.9.3 @@ -943,6 +955,10 @@ packages: '@promptbook/utils@0.69.5': resolution: {integrity: sha512-xm5Ti/Hp3o4xHrsK9Yy3MS6KbDxYbq485hDsFvxqaNA7equHLPdo8H8faTitTeb14QCDfLW4iwCxdVYu5sn6YQ==} + '@publint/pack@0.1.4': + resolution: {integrity: sha512-HDVTWq3H0uTXiU0eeSQntcVUTPP3GamzeXI41+x7uU9J65JgWQh3qWZHblR1i0npXfFtF+mxBiU2nJH8znxWnQ==} + engines: {node: '>=18'} + '@puppeteer/browsers@2.12.1': resolution: {integrity: sha512-fXa6uXLxfslBlus3MEpW8S6S9fe5RwmAE5Gd8u3krqOwnkZJV3/lQJiY3LaFdTctLLqJtyMgEUGkbDnRNf6vbQ==} engines: {node: '>=18'} @@ -3050,6 +3066,10 @@ packages: resolution: {integrity: sha512-4W79zekKGyYU4JXVmB78DOscMFaJth2gGhgfTl2alWE4rNe3nf4N2pqenQ0rEtIewrnD79M687Ouba3YGTLOvg==} engines: {node: '>=18.0.0'} + mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + mrmime@2.0.1: resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} engines: {node: '>=10'} @@ -3268,6 +3288,11 @@ packages: proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + publint@0.3.17: + resolution: {integrity: sha512-Q3NLegA9XM6usW+dYQRG1g9uEHiYUzcCVBJDJ7yMcWRqVU9LYZUWdqbwMZfmTCFC5PZLQpLAmhvRcQRl3exqkw==} + engines: {node: '>=18'} + hasBin: true + pump@3.0.3: resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} @@ -3387,6 +3412,10 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + sade@1.8.1: + resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==} + engines: {node: '>=6'} + safaridriver@1.0.1: resolution: {integrity: sha512-jkg4434cYgtrIF2AeY/X0Wmd2W73cK5qIEFE3hDrrQenJH/2SDJIXGvPAigfvQTcE9+H31zkiNHbUqcihEiMRA==} engines: {node: '>=18.0.0'} @@ -4761,6 +4790,8 @@ snapshots: spacetrim: 0.11.59 optional: true + '@publint/pack@0.1.4': {} + '@puppeteer/browsers@2.12.1': dependencies: debug: 4.4.3 @@ -7216,6 +7247,8 @@ snapshots: modern-tar@0.7.3: optional: true + mri@1.2.0: {} + mrmime@2.0.1: {} ms@2.1.3: {} @@ -7447,6 +7480,13 @@ snapshots: proxy-from-env@1.1.0: optional: true + publint@0.3.17: + dependencies: + '@publint/pack': 0.1.4 + package-manager-detector: 1.6.0 + picocolors: 1.1.1 + sade: 1.8.1 + pump@3.0.3: dependencies: end-of-stream: 1.4.5 @@ -7626,6 +7666,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + sade@1.8.1: + dependencies: + mri: 1.2.0 + safaridriver@1.0.1: optional: true @@ -7893,7 +7937,7 @@ snapshots: picomatch: 4.0.3 typescript: 5.9.3 - tsdown@0.20.3(@arethetypeswrong/core@0.18.2)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)): + tsdown@0.20.3(@arethetypeswrong/core@0.18.2)(publint@0.3.17)(synckit@0.11.12)(typescript@5.9.3)(unplugin-lightningcss@0.4.5)(vue-tsc@3.2.4(typescript@5.9.3)): dependencies: ansis: 4.2.0 cac: 6.7.14 @@ -7913,6 +7957,7 @@ snapshots: unrun: 0.2.27(synckit@0.11.12) optionalDependencies: '@arethetypeswrong/core': 0.18.2 + publint: 0.3.17 typescript: 5.9.3 unplugin-lightningcss: 0.4.5 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index da4a0f8..8af3e3f 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -11,6 +11,7 @@ packages: catalog: '@antfu/eslint-config': 7.4.3 + '@arethetypeswrong/cli': ^0.18.2 '@types/node': ^25.2.1 '@vitejs/plugin-vue': ^6.0.4 '@vitest/browser-playwright': ^4.0.18 @@ -20,6 +21,8 @@ catalog: fast-glob: ^3.3.3 lightningcss: ^1.31.1 playwright: ^1.58.2 + publint: ^0.3.17 + rolldown: 1.0.0-rc.4 rollup: ^4.57.1 tabbable: ^6.4.0 tsdown: ^0.20.3 @@ -30,7 +33,6 @@ catalog: vitepress: ^1.6.4 vitest: ^4.0.18 vue: ^3.5.28 - '@arethetypeswrong/cli': ^0.18.2 vue-tsc: ^3.2.4 onlyBuiltDependencies: - edgedriver