From 05e339aa026e469d01a14a2334c3cb1bda2ac432 Mon Sep 17 00:00:00 2001 From: Sacha STAFYNIAK Date: Sun, 19 Mar 2023 17:48:37 +0100 Subject: [PATCH] feat: add custom font transformer --- .eslintignore | 1 + .gitignore | 3 +- docs/.vitepress/config.ts | 45 ++ docs/.vitepress/theme/custom.css | 6 + docs/.vitepress/theme/index.ts | 6 + docs/index.md | 23 + docs/package.json | 15 + .../assets/fonts/DancingScript-Bold.ttf | Bin 0 -> 81164 bytes .../assets/fonts/DancingScript-Medium.ttf | Bin 0 -> 81248 bytes .../assets/fonts/DancingScript-Regular.ttf | Bin 0 -> 80900 bytes .../assets/fonts/DancingScript-SemiBold.ttf | Bin 0 -> 81236 bytes examples/nuxt/nuxt.config.ts | 2 +- examples/nuxt/tsconfig.json | 2 +- examples/vite/package.json | 6 +- examples/vite/vite.config.ts | 10 +- package.json | 7 +- pnpm-lock.yaml | 537 ++++++++++++++++++ pnpm-workspace.yaml | 1 + scripts/postbuild.ts | 6 +- src/astro.ts | 4 +- src/head.ts | 2 +- src/index.ts | 23 +- src/loaders/custom.ts | 438 +++++++------- src/loaders/fontsource.ts | 95 ++-- src/loaders/google-fonts.ts | 19 +- src/loaders/index.ts | 8 +- src/loaders/typekit.ts | 11 +- src/nuxt.ts | 2 +- src/types.ts | 144 ++++- test/index.test.ts | 7 + tsup.config.ts | 2 +- 31 files changed, 1060 insertions(+), 365 deletions(-) create mode 100644 docs/.vitepress/config.ts create mode 100644 docs/.vitepress/theme/custom.css create mode 100644 docs/.vitepress/theme/index.ts create mode 100644 docs/index.md create mode 100644 docs/package.json create mode 100644 docs/public/assets/fonts/DancingScript-Bold.ttf create mode 100644 docs/public/assets/fonts/DancingScript-Medium.ttf create mode 100644 docs/public/assets/fonts/DancingScript-Regular.ttf create mode 100644 docs/public/assets/fonts/DancingScript-SemiBold.ttf create mode 100644 test/index.test.ts diff --git a/.eslintignore b/.eslintignore index fc58645..ea1f53a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,3 +1,4 @@ node_modules dist *.snap +docs/.vitepress/cache diff --git a/.gitignore b/.gitignore index 0738cb5..6e4468c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules .DS_Store -dist \ No newline at end of file +dist +docs/.vitepress/cache \ No newline at end of file diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts new file mode 100644 index 0000000..6bec259 --- /dev/null +++ b/docs/.vitepress/config.ts @@ -0,0 +1,45 @@ +import { defineConfig } from 'vitepress' +import Unfonts from '../../src/vite' + +export default defineConfig({ + base: '/unplugin-fonts/', + // site-level options + title: 'VitePress', + description: 'Just playing around.', + + themeConfig: { + // theme-level options + }, + + vite: { + plugins: [ + Unfonts({ + google: { + families: ['Crimson Pro', 'Open Sans', 'Material+Icons'], + }, + + custom: { + display: 'swap', + families: { + 'Dancing Script': './public/assets/fonts/DancingScript*', + }, + }, + + fontsource: { + families: [ + { + name: 'ABeeZee', + weights: [400], + styles: ['italic'], + }, + { + name: 'Truculenta', + weights: [400, 700], + subset: 'latin-ext', + }, + ], + }, + }), + ], + }, +}) diff --git a/docs/.vitepress/theme/custom.css b/docs/.vitepress/theme/custom.css new file mode 100644 index 0000000..b86d644 --- /dev/null +++ b/docs/.vitepress/theme/custom.css @@ -0,0 +1,6 @@ + +:root { + /* --vp-font-family-base: "ABeeZee", sans-serif !important; */ + /* --vp-font-family-base: "Crimson Pro", sans-serif !important; */ + --vp-font-family-base: "Dancing Script", sans-serif !important; +} \ No newline at end of file diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts new file mode 100644 index 0000000..ba9c0f3 --- /dev/null +++ b/docs/.vitepress/theme/index.ts @@ -0,0 +1,6 @@ +// @ts-expect-error - not typed in vitepress 60 +import DefaultTheme from 'vitepress/theme-without-fonts' +import './custom.css' +import 'unfonts.css' + +export default DefaultTheme diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..63e443b --- /dev/null +++ b/docs/index.md @@ -0,0 +1,23 @@ +--- +layout: home + +hero: + name: VitePress + text: Just playing around. + tagline: My great project tagline + actions: + - theme: brand + text: Markdown Examples + link: /markdown-examples + - theme: alt + text: API Examples + link: /api-examples + +features: + - title: Feature A + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit + - title: Feature B + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit + - title: Feature C + details: Lorem ipsum dolor sit amet, consectetur adipiscing elit +--- \ No newline at end of file diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 0000000..930f0a4 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,15 @@ +{ + "name": "docs", + "private": true, + "scripts": { + "dev": "vitepress dev", + "start": "vitepress dev", + "build": "vitepress build", + "preview": "vitepress preview" + }, + "devDependencies": { + "unplugin-fonts": "workspace:*", + "vitepress": "^1.0.0-alpha.60" + } + +} diff --git a/docs/public/assets/fonts/DancingScript-Bold.ttf b/docs/public/assets/fonts/DancingScript-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..49d8f3f1205fca6f7b52f9ec183cfe7f828dc871 GIT binary patch literal 81164 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�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 B>SzD} literal 0 HcmV?d00001 diff --git a/examples/nuxt/nuxt.config.ts b/examples/nuxt/nuxt.config.ts index 30dcb7d..00389a2 100644 --- a/examples/nuxt/nuxt.config.ts +++ b/examples/nuxt/nuxt.config.ts @@ -15,5 +15,5 @@ export default defineNuxtConfig({ 'Dancing Script': './assets/fonts/DancingScript*', }, }, - } + }, }) diff --git a/examples/nuxt/tsconfig.json b/examples/nuxt/tsconfig.json index 28b66c5..a746f2a 100644 --- a/examples/nuxt/tsconfig.json +++ b/examples/nuxt/tsconfig.json @@ -1,4 +1,4 @@ { // https://nuxt.com/docs/guide/concepts/typescript "extends": "./.nuxt/tsconfig.json" -} \ No newline at end of file +} diff --git a/examples/vite/package.json b/examples/vite/package.json index 7943a85..d16b3b2 100644 --- a/examples/vite/package.json +++ b/examples/vite/package.json @@ -7,9 +7,9 @@ "preview": "vite preview" }, "devDependencies": { - "vite": "^4.2.0", - "unplugin-fonts": "workspace:*", "@fontsource/abeezee": "^4.5.10", - "@fontsource/truculenta": "^4.5.12" + "@fontsource/truculenta": "^4.5.12", + "unplugin-fonts": "workspace:*", + "vite": "^4.2.0" } } diff --git a/examples/vite/vite.config.ts b/examples/vite/vite.config.ts index d386c96..f639f74 100644 --- a/examples/vite/vite.config.ts +++ b/examples/vite/vite.config.ts @@ -11,7 +11,15 @@ export default defineConfig({ custom: { display: 'swap', families: { - 'Dancing Script': './assets/fonts/DancingScript*', + 'Dancing Script': { + src: './assets/fonts/DancingScript*', + transform(font) { + if (font.basename === 'DancingScript-Bold') + font.weight = 700 + + return font + }, + }, }, }, diff --git a/package.json b/package.json index d4a48ae..13b3da3 100644 --- a/package.json +++ b/package.json @@ -75,8 +75,11 @@ "build:fix": "esno scripts/postbuild.ts", "example:dev": "npm -C examples/vite run dev", "example:build": "npm -C examples/vite run build", + "docs:dev": "npm -C docs run dev", + "docs:build": "npm -C docs run build", "lint": "eslint .", - "lint:fix": "eslint --fix ." + "lint:fix": "eslint --fix .", + "test": "vitest" }, "peerDependencies": { "@nuxt/kit": "^3.0.0", @@ -97,6 +100,7 @@ "@types/node": "^18.15.3", "@typescript-eslint/eslint-plugin": "^5.55.0", "chalk": "^5.2.0", + "defu": "^6.1.2", "eslint": "^8.36.0", "eslint-plugin-eslint-comments": "^3.2.0", "esno": "^0.16.3", @@ -105,6 +109,7 @@ "tsup": "^6.6.3", "typescript": "^5.0.2", "vite": "^4.2.0", + "vitest": "^0.29.3", "webpack": "^5.76.2" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 092b502..406d8ea 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,6 +9,7 @@ importers: '@types/node': ^18.15.3 '@typescript-eslint/eslint-plugin': ^5.55.0 chalk: ^5.2.0 + defu: ^6.1.2 eslint: ^8.36.0 eslint-plugin-eslint-comments: ^3.2.0 esno: ^0.16.3 @@ -19,6 +20,7 @@ importers: typescript: ^5.0.2 unplugin: ^1.3.1 vite: ^4.2.0 + vitest: ^0.29.3 webpack: ^5.76.2 dependencies: fast-glob: 3.2.12 @@ -29,6 +31,7 @@ importers: '@types/node': 18.15.3 '@typescript-eslint/eslint-plugin': 5.55.0_j4766f7ecgqbon3u7zlxn5zszu chalk: 5.2.0 + defu: 6.1.2 eslint: 8.36.0 eslint-plugin-eslint-comments: 3.2.0_eslint@8.36.0 esno: 0.16.3 @@ -37,8 +40,17 @@ importers: tsup: 6.6.3_typescript@5.0.2 typescript: 5.0.2 vite: 4.2.0_@types+node@18.15.3 + vitest: 0.29.3 webpack: 5.76.2 + docs: + specifiers: + unplugin-fonts: workspace:* + vitepress: ^1.0.0-alpha.60 + devDependencies: + unplugin-fonts: link:.. + vitepress: 1.0.0-alpha.60 + examples/astro: specifiers: astro: ^2.1.3 @@ -69,6 +81,116 @@ importers: packages: + /@algolia/autocomplete-core/1.7.4: + resolution: {integrity: sha512-daoLpQ3ps/VTMRZDEBfU8ixXd+amZcNJ4QSP3IERGyzqnL5Ch8uSRFt/4G8pUvW9c3o6GA4vtVv4I4lmnkdXyg==} + dependencies: + '@algolia/autocomplete-shared': 1.7.4 + dev: true + + /@algolia/autocomplete-preset-algolia/1.7.4_algoliasearch@4.15.0: + resolution: {integrity: sha512-s37hrvLEIfcmKY8VU9LsAXgm2yfmkdHT3DnA3SgHaY93yjZ2qL57wzb5QweVkYuEBZkT2PIREvRoLXC2sxTbpQ==} + peerDependencies: + '@algolia/client-search': '>= 4.9.1 < 6' + algoliasearch: '>= 4.9.1 < 6' + dependencies: + '@algolia/autocomplete-shared': 1.7.4 + algoliasearch: 4.15.0 + dev: true + + /@algolia/autocomplete-shared/1.7.4: + resolution: {integrity: sha512-2VGCk7I9tA9Ge73Km99+Qg87w0wzW4tgUruvWAn/gfey1ZXgmxZtyIRBebk35R1O8TbK77wujVtCnpsGpRy1kg==} + dev: true + + /@algolia/cache-browser-local-storage/4.15.0: + resolution: {integrity: sha512-uxxFhTWh4JJDb2+FFSmNMfEQ8p9o2vjSpU7iW007QX3OvqljPPN68lk3bpZVaG8pwr5MU1DqpkZ71FcQdVTjgQ==} + dependencies: + '@algolia/cache-common': 4.15.0 + dev: true + + /@algolia/cache-common/4.15.0: + resolution: {integrity: sha512-Me3PbI4QurAM+3D+htIE0l1xt6+bl/18SG6Wc7bPQEZAtN7DTGz22HqhKNyLF2lR/cOfpaH7umXZlZEhIHf7gQ==} + dev: true + + /@algolia/cache-in-memory/4.15.0: + resolution: {integrity: sha512-B9mg1wd7CKMfpkbiTQ8KlcKkH6ut/goVaI6XmDCUczOOqeuZlV34tuEi7o3Xo1j66KWr/d9pMjjGYcoVPCVeOA==} + dependencies: + '@algolia/cache-common': 4.15.0 + dev: true + + /@algolia/client-account/4.15.0: + resolution: {integrity: sha512-8wqI33HRZy5ydfFt6F5vMhtkOiAUhVfSCYXx4U3Go5RALqWLgVUp6wzOo0mr1z08POCkHDpbQMQvyayb1CZ/kw==} + dependencies: + '@algolia/client-common': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /@algolia/client-analytics/4.15.0: + resolution: {integrity: sha512-jrPjEeNEIIQKeA1XCZXx3f3aybtwF7wjYlnfHbLARuZ9AuHzimOKjX0ZwqvMmvTsHivpcZ2rqY+j1E8HoH1ELA==} + dependencies: + '@algolia/client-common': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /@algolia/client-common/4.15.0: + resolution: {integrity: sha512-PlsJMObZuYw4JlG5EhYv1PHDOv7n5mD5PzqFyoNfSOYaEPRZepa3W579ya29yOu3FZ0VGMNJmB7Q5v/+/fwvIw==} + dependencies: + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /@algolia/client-personalization/4.15.0: + resolution: {integrity: sha512-Bf0bhRAiNL9LWurzyHRH8UBi4fDt3VbCNkInxVngKQT1uCZWXecwoPWGhcSSpdanBqFJA/1WBt+BWx7a50Bhlg==} + dependencies: + '@algolia/client-common': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /@algolia/client-search/4.15.0: + resolution: {integrity: sha512-dTwZD4u53WdmexnMcoO2Qd/+YCP3ESXKOtD2MryQ1a9dHwB2Y3Qob0kyS1PG82idwM3enbznvscI9Sf4o9PUWQ==} + dependencies: + '@algolia/client-common': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + + /@algolia/logger-common/4.15.0: + resolution: {integrity: sha512-D8OFwn/HpvQz66goIcjxOKsYBMuxiruxJ3cA/bnc0EiDvSA2P2z6bNQWgS5gbstuTZIJmbhr+53NyOxFkmMNAA==} + dev: true + + /@algolia/logger-console/4.15.0: + resolution: {integrity: sha512-pQOvVaRSEJQJRXKTnxEA6nN1hipSQadJJ4einw0nIlfMOGZh/kps1ybh8vRUlUGyfEuN/3dyFs0W3Ac7hIItlg==} + dependencies: + '@algolia/logger-common': 4.15.0 + dev: true + + /@algolia/requester-browser-xhr/4.15.0: + resolution: {integrity: sha512-va186EfALF+6msYZXaoBSxcnFCg3SoWJ+uv1yMyhQRJRe7cZSHWSVT3s40vmar90gxlBu80KMVwVlsvJhJv6ew==} + dependencies: + '@algolia/requester-common': 4.15.0 + dev: true + + /@algolia/requester-common/4.15.0: + resolution: {integrity: sha512-w0UUzxElbo4hrKg4QP/jiXDNbIJuAthxdlkos9nS8KAPK2XI3R9BlUjLz/ZVs4F9TDGI0mhjrNHhZ12KXcoyhg==} + dev: true + + /@algolia/requester-node-http/4.15.0: + resolution: {integrity: sha512-eeEOhFtgwKcgAlKAZpgBRZJ0ILSEBCXxZ9uwfVWPD24W1b6z08gVoTJ6J7lCeCnJmudg+tMElDnGzHkjup9CJA==} + dependencies: + '@algolia/requester-common': 4.15.0 + dev: true + + /@algolia/transporter/4.15.0: + resolution: {integrity: sha512-JoWR+ixG3EmA0UPntQFN/FV5TasYcYu93d5+oKzHFeZ6Z7rtW5Im9iy/Oh/ggk1AAN5fTdqKewtbBpdaYDbKsQ==} + dependencies: + '@algolia/cache-common': 4.15.0 + '@algolia/logger-common': 4.15.0 + '@algolia/requester-common': 4.15.0 + dev: true + /@ampproject/remapping/2.2.0: resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==} engines: {node: '>=6.0.0'} @@ -525,6 +647,44 @@ packages: mime: 3.0.0 dev: true + /@docsearch/css/3.3.3: + resolution: {integrity: sha512-6SCwI7P8ao+se1TUsdZ7B4XzL+gqeQZnBc+2EONZlcVa0dVrk0NjETxozFKgMv0eEGH8QzP1fkN+A1rH61l4eg==} + dev: true + + /@docsearch/js/3.3.3: + resolution: {integrity: sha512-2xAv2GFuHzzmG0SSZgf8wHX0qZX8n9Y1ZirKUk5Wrdc+vH9CL837x2hZIUdwcPZI9caBA+/CzxsS68O4waYjUQ==} + dependencies: + '@docsearch/react': 3.3.3 + preact: 10.13.1 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/react' + - react + - react-dom + dev: true + + /@docsearch/react/3.3.3: + resolution: {integrity: sha512-pLa0cxnl+G0FuIDuYlW+EBK6Rw2jwLw9B1RHIeS4N4s2VhsfJ/wzeCi3CWcs5yVfxLd5ZK50t//TMA5e79YT7Q==} + peerDependencies: + '@types/react': '>= 16.8.0 < 19.0.0' + react: '>= 16.8.0 < 19.0.0' + react-dom: '>= 16.8.0 < 19.0.0' + peerDependenciesMeta: + '@types/react': + optional: true + react: + optional: true + react-dom: + optional: true + dependencies: + '@algolia/autocomplete-core': 1.7.4 + '@algolia/autocomplete-preset-algolia': 1.7.4_algoliasearch@4.15.0 + '@docsearch/css': 3.3.3 + algoliasearch: 4.15.0 + transitivePeerDependencies: + - '@algolia/client-search' + dev: true + /@emmetio/abbreviation/2.2.3: resolution: {integrity: sha512-87pltuCPt99aL+y9xS6GPZ+Wmmyhll2WXH73gG/xpGcQ84DRnptBsI2r0BeIQ0EB/SQTOe2ANPqFqj3Rj5FOGA==} dependencies: @@ -1516,6 +1676,16 @@ packages: '@babel/types': 7.21.3 dev: true + /@types/chai-subset/1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.4 + dev: true + + /@types/chai/4.3.4: + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} + dev: true + /@types/debug/4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: @@ -1602,6 +1772,10 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: true + /@types/web-bluetooth/0.0.16: + resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==} + dev: true + /@types/yargs-parser/21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true @@ -1850,6 +2024,48 @@ packages: vue: 3.2.47 dev: true + /@vitejs/plugin-vue/4.1.0_vite@4.2.0+vue@3.2.47: + resolution: {integrity: sha512-++9JOAFdcXI3lyer9UKUV4rfoQ3T1RN8yDqoCLar86s0xQct5yblxAE+yWgRnU5/0FOlVCpTZpYSBV/bGWrSrQ==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + vite: ^4.0.0 + vue: ^3.2.25 + dependencies: + vite: 4.2.0 + vue: 3.2.47 + dev: true + + /@vitest/expect/0.29.3: + resolution: {integrity: sha512-z/0JqBqqrdtrT/wzxNrWC76EpkOHdl+SvuNGxWulLaoluygntYyG5wJul5u/rQs5875zfFz/F+JaDf90SkLUIg==} + dependencies: + '@vitest/spy': 0.29.3 + '@vitest/utils': 0.29.3 + chai: 4.3.7 + dev: true + + /@vitest/runner/0.29.3: + resolution: {integrity: sha512-XLi8ctbvOWhUWmuvBUSIBf8POEDH4zCh6bOuVxm/KGfARpgmVF1ku+vVNvyq85va+7qXxtl+MFmzyXQ2xzhAvw==} + dependencies: + '@vitest/utils': 0.29.3 + p-limit: 4.0.0 + pathe: 1.1.0 + dev: true + + /@vitest/spy/0.29.3: + resolution: {integrity: sha512-LLpCb1oOCOZcBm0/Oxbr1DQTuKLRBsSIHyLYof7z4QVE8/v8NcZKdORjMUq645fcfX55+nLXwU/1AQ+c2rND+w==} + dependencies: + tinyspy: 1.1.1 + dev: true + + /@vitest/utils/0.29.3: + resolution: {integrity: sha512-hg4Ff8AM1GtUnLpUJlNMxrf9f4lZr/xRJjh3uJ0QFP+vjaW82HAxKrmeBmLnhc8Os2eRf+f+VBu4ts7TafPPkA==} + dependencies: + cli-truncate: 3.1.0 + diff: 5.1.0 + loupe: 2.3.6 + pretty-format: 27.5.1 + dev: true + /@vscode/emmet-helper/2.8.6: resolution: {integrity: sha512-IIB8jbiKy37zN8bAIHx59YmnIelY78CGHtThnibD/d3tQOKRY83bYVi9blwmZVUZh6l9nfkYH3tvReaiNxY9EQ==} dependencies: @@ -1972,6 +2188,31 @@ packages: resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==} dev: true + /@vueuse/core/9.13.0_vue@3.2.47: + resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==} + dependencies: + '@types/web-bluetooth': 0.0.16 + '@vueuse/metadata': 9.13.0 + '@vueuse/shared': 9.13.0_vue@3.2.47 + vue-demi: 0.13.11_vue@3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + + /@vueuse/metadata/9.13.0: + resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==} + dev: true + + /@vueuse/shared/9.13.0_vue@3.2.47: + resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==} + dependencies: + vue-demi: 0.13.11_vue@3.2.47 + transitivePeerDependencies: + - '@vue/composition-api' + - vue + dev: true + /@webassemblyjs/ast/1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -2106,6 +2347,11 @@ packages: acorn: 8.8.2 dev: true + /acorn-walk/8.2.0: + resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -2137,6 +2383,25 @@ packages: uri-js: 4.4.1 dev: true + /algoliasearch/4.15.0: + resolution: {integrity: sha512-+vgKQF5944dYsz9zhKk07JbOYeNdKisoD5GeG0woBL3nLzbn2a+nGwki60DXg7CXvaFXBcTXyJG4C+VaBVd44g==} + dependencies: + '@algolia/cache-browser-local-storage': 4.15.0 + '@algolia/cache-common': 4.15.0 + '@algolia/cache-in-memory': 4.15.0 + '@algolia/client-account': 4.15.0 + '@algolia/client-analytics': 4.15.0 + '@algolia/client-common': 4.15.0 + '@algolia/client-personalization': 4.15.0 + '@algolia/client-search': 4.15.0 + '@algolia/logger-common': 4.15.0 + '@algolia/logger-console': 4.15.0 + '@algolia/requester-browser-xhr': 4.15.0 + '@algolia/requester-common': 4.15.0 + '@algolia/requester-node-http': 4.15.0 + '@algolia/transporter': 4.15.0 + dev: true + /ansi-align/3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: @@ -2167,6 +2432,10 @@ packages: engines: {node: '>=12'} dev: true + /ansi-sequence-parser/1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: true + /ansi-styles/3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} @@ -2181,6 +2450,11 @@ packages: color-convert: 2.0.1 dev: true + /ansi-styles/5.2.0: + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} + dev: true + /ansi-styles/6.2.1: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} @@ -2307,6 +2581,10 @@ packages: es-shim-unscopables: 1.0.0 dev: true + /assertion-error/1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + /astro/2.1.3: resolution: {integrity: sha512-5LFo/ixDXs84tgrSbzz0X5c7nzLfkag7w4tgOpBRL/DkveP83v+nSe3KjqwYLPL5vNY9UvryKHsfC0uu4TQz0g==} engines: {node: '>=16.12.0', npm: '>=6.14.0'} @@ -2448,6 +2726,10 @@ packages: readable-stream: 3.6.2 dev: true + /body-scroll-lock/4.0.0-beta.0: + resolution: {integrity: sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==} + dev: true + /boolbase/1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -2600,6 +2882,19 @@ packages: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} dev: true + /chai/4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk/2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -2650,6 +2945,10 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /check-error/1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + /chokidar/3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} @@ -2707,6 +3006,14 @@ packages: engines: {node: '>=6'} dev: true + /cli-truncate/3.1.0: + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + slice-ansi: 5.0.0 + string-width: 5.1.2 + dev: true + /cli-width/4.0.0: resolution: {integrity: sha512-ZksGS2xpa/bYkNzN3BAw1wEjsLV/ZKOf/CCrJ/QOBsxx6fOARIkwTutxp1XIOIohi6HKmOFjMoK/XaqDVUpEEw==} engines: {node: '>= 12'} @@ -3028,6 +3335,13 @@ packages: character-entities: 2.0.2 dev: true + /deep-eql/4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + /deep-is/0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -4128,6 +4442,10 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-func-name/2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + /get-intrinsic/1.2.0: resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: @@ -4776,6 +5094,11 @@ packages: engines: {node: '>=8'} dev: true + /is-fullwidth-code-point/4.0.0: + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} + dev: true + /is-glob/4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -5208,6 +5531,12 @@ packages: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} dev: true + /loupe/2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lru-cache/5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -6242,6 +6571,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit/4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate/4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -6363,6 +6699,10 @@ packages: resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==} dev: true + /pathval/1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + /perfect-debounce/0.1.3: resolution: {integrity: sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==} dev: true @@ -6760,6 +7100,10 @@ packages: source-map-js: 1.0.2 dev: true + /preact/10.13.1: + resolution: {integrity: sha512-KyoXVDU5OqTpG9LXlB3+y639JAGzl8JSBXLn1J9HTSB3gbKcuInga7bZnXLlxmK94ntTs1EFeZp0lrja2AuBYQ==} + dev: true + /preferred-pm/3.0.3: resolution: {integrity: sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ==} engines: {node: '>=10'} @@ -6796,6 +7140,15 @@ packages: engines: {node: ^14.13.1 || >=16.0.0} dev: true + /pretty-format/27.5.1: + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dependencies: + ansi-regex: 5.0.1 + ansi-styles: 5.2.0 + react-is: 17.0.2 + dev: true + /prismjs/1.29.0: resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} engines: {node: '>=6'} @@ -6862,6 +7215,10 @@ packages: flat: 5.0.2 dev: true + /react-is/17.0.2: + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + dev: true + /read-cache/1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} dependencies: @@ -7309,6 +7666,15 @@ packages: vscode-textmate: 6.0.0 dev: true + /shiki/0.14.1: + resolution: {integrity: sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==} + dependencies: + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 + dev: true + /side-channel/1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: @@ -7317,6 +7683,10 @@ packages: object-inspect: 1.12.3 dev: true + /siginfo/2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit/3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -7335,6 +7705,14 @@ packages: engines: {node: '>=12'} dev: true + /slice-ansi/5.0.0: + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + is-fullwidth-code-point: 4.0.0 + dev: true + /smob/0.0.6: resolution: {integrity: sha512-V21+XeNni+tTyiST1MHsa84AQhT1aFZipzPpOFAVB8DkHzwJyjjAmt9bgwnuZiZWnIbMo2duE29wybxv/7HWUw==} dev: true @@ -7408,6 +7786,10 @@ packages: deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' dev: true + /stackback/0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + dev: true + /standard-as-callback/2.1.0: resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} dev: true @@ -7727,6 +8109,20 @@ packages: resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: true + /tinybench/2.4.0: + resolution: {integrity: sha512-iyziEiyFxX4kyxSp+MtY1oCH/lvjH3PxFN8PGCDeqcZWAJ/i+9y+nL85w99PxVzrIvew/GSkSbDYtiGVa85Afg==} + dev: true + + /tinypool/0.3.1: + resolution: {integrity: sha512-zLA1ZXlstbU2rlpA4CIeVaqvWq41MTWqLY3FfsAXgC8+f7Pk7zroaJQxDgxn1xNudKW6Kmj4808rPFShUlIRmQ==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy/1.1.1: + resolution: {integrity: sha512-UVq5AXt/gQlti7oxoIg5oi/9r0WpF7DGEVwXgqWSMmyN16+e3tl5lIvTaOpJ3TAtu5xFzWccFRM4R5NaWHF+4g==} + engines: {node: '>=14.0.0'} + dev: true + /tmp/0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -7869,6 +8265,11 @@ packages: prelude-ls: 1.2.1 dev: true + /type-detect/4.0.8: + resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} + engines: {node: '>=4'} + dev: true + /type-fest/0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} @@ -8232,6 +8633,27 @@ packages: - terser dev: true + /vite-node/0.29.3_@types+node@18.15.3: + resolution: {integrity: sha512-QYzYSA4Yt2IiduEjYbccfZQfxKp+T1Do8/HEpSX/G5WIECTFKJADwLs9c94aQH4o0A+UtCKU61lj1m5KvbxxQA==} + engines: {node: '>=v14.16.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4 + mlly: 1.2.0 + pathe: 1.1.0 + picocolors: 1.0.0 + vite: 4.2.0_@types+node@18.15.3 + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite-plugin-checker/0.5.6_vite@4.1.4: resolution: {integrity: sha512-ftRyON0gORUHDxcDt2BErmsikKSkfvl1i2DoP6Jt2zDO9InfvM6tqO1RkXhSjkaXEhKPea6YOnhFaZxW3BzudQ==} engines: {node: '>=14.16'} @@ -8393,6 +8815,88 @@ packages: vite: 4.2.0 dev: true + /vitepress/1.0.0-alpha.60: + resolution: {integrity: sha512-GI5iLDkZRqGEPixbSloT+p6pbKcMh9ykRRxt8vf9AjV1gaPit6Stg/t9WNxTdIhKVCuQMexGs1605DNApSRK2A==} + hasBin: true + dependencies: + '@docsearch/css': 3.3.3 + '@docsearch/js': 3.3.3 + '@vitejs/plugin-vue': 4.1.0_vite@4.2.0+vue@3.2.47 + '@vue/devtools-api': 6.5.0 + '@vueuse/core': 9.13.0_vue@3.2.47 + body-scroll-lock: 4.0.0-beta.0 + shiki: 0.14.1 + vite: 4.2.0 + vue: 3.2.47 + transitivePeerDependencies: + - '@algolia/client-search' + - '@types/node' + - '@types/react' + - '@vue/composition-api' + - less + - react + - react-dom + - sass + - stylus + - sugarss + - terser + dev: true + + /vitest/0.29.3: + resolution: {integrity: sha512-muMsbXnZsrzDGiyqf/09BKQsGeUxxlyLeLK/sFFM4EXdURPQRv8y7dco32DXaRORYP0bvyN19C835dT23mL0ow==} + engines: {node: '>=v14.16.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + dependencies: + '@types/chai': 4.3.4 + '@types/chai-subset': 1.3.3 + '@types/node': 18.15.3 + '@vitest/expect': 0.29.3 + '@vitest/runner': 0.29.3 + '@vitest/spy': 0.29.3 + '@vitest/utils': 0.29.3 + acorn: 8.8.2 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.7 + debug: 4.3.4 + local-pkg: 0.4.3 + pathe: 1.1.0 + picocolors: 1.0.0 + source-map: 0.6.1 + std-env: 3.3.2 + strip-literal: 1.0.1 + tinybench: 2.4.0 + tinypool: 0.3.1 + tinyspy: 1.1.1 + vite: 4.2.0_@types+node@18.15.3 + vite-node: 0.29.3_@types+node@18.15.3 + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vscode-css-languageservice/6.2.4: resolution: {integrity: sha512-9UG0s3Ss8rbaaPZL1AkGzdjrGY8F+P+Ne9snsrvD9gxltDGhsn8C2dQpqQewHrMW37OvlqJoI8sUU2AWDb+qNw==} dependencies: @@ -8478,6 +8982,10 @@ packages: resolution: {integrity: sha512-gu73tuZfJgu+mvCSy4UZwd2JXykjK9zAZsfmDeut5dx/1a7FeTk0XwJsSuqQn+cuMCGVbIBfl+s53X4T19DnzQ==} dev: true + /vscode-textmate/8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} + dev: true + /vscode-uri/2.1.2: resolution: {integrity: sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==} dev: true @@ -8492,6 +9000,21 @@ packages: ufo: 1.1.1 dev: true + /vue-demi/0.13.11_vue@3.2.47: + resolution: {integrity: sha512-IR8HoEEGM65YY3ZJYAjMlKygDQn25D5ajNFNoKh9RSDMQtlzCxtfQjdQgv9jjK+m3377SsJXY8ysq8kLCZL25A==} + engines: {node: '>=12'} + hasBin: true + requiresBuild: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + dependencies: + vue: 3.2.47 + dev: true + /vue-devtools-stub/0.1.0: resolution: {integrity: sha512-RutnB7X8c5hjq39NceArgXg28WZtZpGc3+J16ljMiYnFhKvd8hITxSWQSQ5bvldxMDU6gG5mkxl1MTQLXckVSQ==} dev: true @@ -8651,6 +9174,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running/2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /wide-align/1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: @@ -8752,6 +9284,11 @@ packages: engines: {node: '>=10'} dev: true + /yocto-queue/1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true + /zhead/2.0.4: resolution: {integrity: sha512-V4R94t3ifk9AURym6OskbKcnowzgp5Z88tkoL/NF67vyryNxC62u6mx5F1Ux4oh4+YN7FFmKYEyWy6m5kfPH6g==} dev: true diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index fe455ac..d1cce72 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,3 @@ packages: + - docs - examples/* diff --git a/scripts/postbuild.ts b/scripts/postbuild.ts index d495f2e..5481f07 100644 --- a/scripts/postbuild.ts +++ b/scripts/postbuild.ts @@ -1,6 +1,6 @@ -import { basename, dirname, resolve } from 'path' -import { promises as fs } from 'fs' -import { fileURLToPath } from 'url' +import { basename, dirname, resolve } from 'node:path' +import { promises as fs } from 'node:fs' +import { fileURLToPath } from 'node:url' import fg from 'fast-glob' import chalk from 'chalk' diff --git a/src/astro.ts b/src/astro.ts index ca3a05d..cbeb2e6 100644 --- a/src/astro.ts +++ b/src/astro.ts @@ -7,9 +7,8 @@ export default function (options: Options) { name: 'unplugin-fonts', hooks: { 'astro:config:setup': async (astro: any) => { - if (options?.custom) { + if (options?.custom) options.custom.stripPrefix = 'public/' - } astro.config.vite.plugins ||= [] astro.config.vite.plugins.push(unplugin.vite(options)) @@ -17,7 +16,6 @@ export default function (options: Options) { // const links = getHeadLinkTags(options, astro.config.root.toString()) // const linksString: string[] = [] - // for (const link of links) { // linksString.push(` `${key}="${value}"`).join(' ')} />`) // } diff --git a/src/head.ts b/src/head.ts index 5bace70..2d9385e 100644 --- a/src/head.ts +++ b/src/head.ts @@ -1,4 +1,4 @@ import type { HtmlTagDescriptor } from 'vite' // exposed via virtual module -export const links: HtmlTagDescriptor[] = [] \ No newline at end of file +export const links: HtmlTagDescriptor[] = [] diff --git a/src/index.ts b/src/index.ts index f7b6826..1e64477 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,10 +5,10 @@ import { fontsourceVirtualModule } from './loaders/fontsource' import { customVirtualModule } from './loaders/custom' const virtualStylesId = 'unfonts.css' -const resolvedVirtualStylesId = '\0' + virtualStylesId +const resolvedVirtualStylesId = `\0${virtualStylesId}` const virtualModuleId = 'unplugin-fonts/head' -const resolvedVirtualModuleId = '\0' + virtualModuleId +const resolvedVirtualModuleId = `\0${virtualModuleId}` export default createUnplugin((userOptions) => { const options = userOptions || {} @@ -18,30 +18,25 @@ export default createUnplugin((userOptions) => { name: 'unplugin-fonts', enforce: 'pre', resolveId(id) { - if (id === virtualStylesId) { + if (id === virtualStylesId) return resolvedVirtualStylesId - } - - if (id === virtualModuleId) { + + if (id === virtualModuleId) return resolvedVirtualModuleId - } }, load(id) { - if (id === resolvedVirtualModuleId) { + if (id === resolvedVirtualModuleId) return `export const links = ${JSON.stringify(getHeadLinkTags(options, root))}` - } - + if (id === resolvedVirtualStylesId) { const source: string[] = [] - if (options.fontsource) { + if (options.fontsource) source.push(fontsourceVirtualModule(options.fontsource)) - } - if (options.custom) { + if (options.custom) source.push(customVirtualModule(options.custom, root)) - } return source.join('\n') } diff --git a/src/loaders/custom.ts b/src/loaders/custom.ts index e8f55c7..27ca59e 100644 --- a/src/loaders/custom.ts +++ b/src/loaders/custom.ts @@ -1,292 +1,238 @@ import type { HtmlTagDescriptor } from 'vite' import { sync as glob } from 'fast-glob' -import { resolve, join, relative } from 'pathe' - -interface CustomFontFace { - src: string[] - name: string - weight: number | string - style: string - display: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' - local?: string | string[] +import { basename as _basename, extname, join, relative } from 'pathe' +import type { CustomFontFace, CustomFontFamily, CustomFonts } from '../types' + +type ResolvedCustomFonts = Required> & { families: CustomFontFamily[] } + +function resolveUserOption(options: CustomFonts): ResolvedCustomFonts { + let { + families = [], + preload = true, + prefetch = false, + injectTo = 'head-prepend', + display = 'auto', + stripPrefix = 'public/', + } = options + + // --- Cast as array of `CustomFontFamily`. + if (!Array.isArray(families)) { + families = Object.entries(families) + .map(([name, family]) => (Array.isArray(family) || typeof family === 'string') + ? { name, src: family } + : { name, ...family }, + ) + } + + return { + families, + preload, + prefetch, + injectTo, + display, + stripPrefix, + } +} + +export function customVirtualModule(userOptions: CustomFonts, root: string) { + const options = resolveUserOption(userOptions) + + const css: string[] = [] + + for (const family of options.families) { + const faces = resolveFontFiles(family, options, root) + + // --- Generate CSS `@font-face` rules. + for (const face of faces) + css.push(generateFontCSS(face)) + } + + return css.join('\n') } -export interface CustomFontFamily { - /** - * Name of the font family. - * @example 'Comic Sans MS' - */ - name: string - /** - * Regex(es) of font files to import. The names of the files will - * predicate the `font-style` and `font-weight` values of the `@font-rule`'s. - * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping - * - * @example - * A value of `./RobotoBoldItalic.*` will create this `@font-rule`: - * - * ```css - * font-face { - * font-family: 'Roboto'; - * src: url(./RobotoBoldItalic.ttf) format('truetype') - * url(./RobotoBoldItalic.woff) format('woff') - * url(./RobotoBoldItalic.woff2) format('woff2'); - * font-weight: bold; - * font-style: italic; - * font-display: auto; - * } - * ``` - */ - src: string | string[] - /** - * Local name of the font. Used to add `src: local()` to `@font-rule`. - * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face#description - */ - local?: string | string[] +export function customLoader(userOptions: CustomFonts, root: string) { + const options = resolveUserOption(userOptions) + + const tags: HtmlTagDescriptor[] = [] + + // --- Iterate over font families and their faces. + for (const family of options.families) { + const faces = resolveFontFiles(family, options, root) + + // --- We can not do a prefetch and a preload for the same files. + if (options.preload && options.prefetch) { + console.warn('unplugin-fonts: Prefetch and a Preload options can not be used together.') + console.warn('unplugin-fonts: The prefetch stand for a lower priority for the resource (maybe we will need it in a future page) whereas preload is for the current page, so we can not have both.') + } + if (options.preload || options.prefetch) { + // --- Generate `` tags. + for (const face of faces) + tags.push(...createFontLinks(options, face)) + } + } + + return tags } -export interface CustomFonts { - /** - * Font families. - */ - families: CustomFontFamily[] | Record> - /** - * Defines the default `font-display` value used for the generated - * `@font-rule` classes. - * @see https://developer.mozilla.org/fr/docs/Web/CSS/@font-face/font-display - * @default 'auto' - */ - display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' - /** - * Using `` will trigger a request for the WebFont - * early in the critical rendering path, without having to wait for the - * CSSOM to be created. - * @see https://web.dev/optimize-webfont-loading/#preload-your-webfont-resources - * @default true - */ - preload?: boolean - - /** - * Using `` is intended for prefetching resources - * that will be used in the next navigation/page load - * (e.g. when you go to the next page) - * - * Note: this can not be used with `preload` - * @default false - */ - prefetch?: boolean - /** - * @default: 'head-prepend' - */ - injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' - - /** - * Remove the prefix from the front path - * @default: 'public/' - */ - stripPrefix?: string +function resolveFontFiles(family: CustomFontFamily, options: ResolvedCustomFonts, root: string) { + const sources = Array.isArray(family.src) ? family.src : [family.src] + const facesMap: Record = {} + + for (const source of sources) { + const results = glob(join(root, source), { absolute: true, cwd: root, onlyFiles: true }) + + for (const file of results) { + const ext = extname(file) + const basename = _basename(file, ext) + + let format = '' + switch (ext) { + case '.woff': + format = 'woff' + break + case '.woff2': + format = 'woff2' + break + case '.ttf': + format = 'truetype' + break + case '.otf': + format = 'opentype' + break + case '.svg': + format = 'svg' + break + default: + format = ext.replace('.', '') + } + + facesMap[basename] ||= { + source, + name: family.name, + basename, + weight: extractWeight(basename), + style: extractStyle(basename), + local: family.local, + display: options.display, + files: [], + } + facesMap[basename].files.push({ + src: file, + path: join('/', relative(root, file.replace(options.stripPrefix, ''))), + format, + ext, + }) + } + } + + const faces: CustomFontFace[] = [] + for (const face of Object.values(facesMap)) { + if (!family.transform) { + faces.push(face) + continue + } + + const transformed = family.transform(face) + if (transformed) + faces.push(transformed) + } + + return faces } -const resolveWeight = (weightOrSrc?: string | number) => { - if (typeof weightOrSrc === 'number') - return weightOrSrc - if (!weightOrSrc) +function extractWeight(filename?: string) { + if (!filename) return 400 - weightOrSrc = weightOrSrc.toLowerCase() - if (weightOrSrc.includes('thin')) + + filename = filename.toLowerCase() + + if (filename.includes('thin')) return 100 - if (weightOrSrc.includes('extralight')) + if (filename.includes('extralight')) return 200 - if (weightOrSrc.includes('ultralight')) + if (filename.includes('ultralight')) return 200 - if (weightOrSrc.includes('light')) + if (filename.includes('light')) return 300 - if (weightOrSrc.includes('normal')) + if (filename.includes('normal')) return 400 - if (weightOrSrc.includes('medium')) + if (filename.includes('medium')) return 500 - if (weightOrSrc.includes('semibold')) + if (filename.includes('semibold')) return 600 - if (weightOrSrc.includes('demibold')) + if (filename.includes('demibold')) return 600 - if (weightOrSrc.includes('extrabold')) + if (filename.includes('extrabold')) return 800 - if (weightOrSrc.includes('ultrabold')) + if (filename.includes('ultrabold')) return 800 - if (weightOrSrc.includes('bold')) + if (filename.includes('bold')) return 700 - if (weightOrSrc.includes('black')) + if (filename.includes('black')) return 900 - if (weightOrSrc.includes('heavy')) + if (filename.includes('heavy')) return 900 return 400 } -const resolveStyle = (styleOrSrc?: string) => { - if (!styleOrSrc) +function extractStyle(filename?: string) { + if (!filename) return 'normal' - styleOrSrc = styleOrSrc.toLowerCase() - if (styleOrSrc.includes('normal')) + + filename = filename.toLowerCase() + if (filename.includes('normal')) return 'normal' - if (styleOrSrc.includes('italic')) + + if (filename.includes('italic')) return 'italic' - if (styleOrSrc.includes('oblique')) + + if (filename.includes('oblique')) return 'oblique' + return 'normal' } -const createFontFaceCSS = ({ name, src, local, weight, style, display }: CustomFontFace) => { +function generateFontCSS(face: CustomFontFace) { // --- Format sources. - const srcs = (Array.isArray(src) ? src : [src]) - .filter(Boolean) - .map((url) => { - let format = url.split('.').pop() - if (format === 'ttf') - format = 'truetype' - if (format === 'otf') - format = 'opentype' - return `url('${join('/', url)}') format('${format}')` + const srcs = face.files + .map((file) => { + return `url('${file.path}') format('${file.format}')` }) .join(',\n\t\t') // --- Format local. - const locals = (Array.isArray(local) ? local : [local]) + const locals = (Array.isArray(face.local) ? face.local : [face.local]) .filter(Boolean) .map(x => `local('${x}')`) .join(', ') // --- Return CSS rule as string. - return `@font-face { - font-family: '${name}'; - src: ${[srcs, locals].filter(Boolean).join(',')}; - font-weight: ${weight}; - font-style: ${style}; - font-display: ${display}; -}` -} - -const createFontFaceLink = ( - prefetch = false, - injectTo: 'head' | 'body' | 'head-prepend' | 'body-prepend' = 'head-prepend', -) => (href: string) => { - return { - tag: 'link', - injectTo, - attrs: { - rel: prefetch ? 'prefetch' : 'preload', - as: 'font', - type: `font/${href.split('.').pop()}`, - href, - crossorigin: true, - }, - } -} - -function resolveFontfaceFiles({ src, root }: { - src: string | string[] - root: string -}) { - const facesGrouped: Record = {}; - - (Array.isArray(src) ? src : [src]) - .flatMap(x => { - return glob(join(root, x), { absolute: true, cwd: root, onlyFiles: true }) - }) - .filter(Boolean) - .forEach((src) => { - const srcNoExt = src.match(/(.*)\.(\w|\d)+$/)?.[1].toLowerCase() - if (srcNoExt) - facesGrouped[srcNoExt] = (facesGrouped[srcNoExt] ?? []).concat(src) - }) - - return Object.entries(facesGrouped).map(([srcNoExt, src]) => ({ - srcNoExt, src - })) -} - -export function customVirtualModule(options: CustomFonts, root: string) { - const css: string[] = [] - - /* eslint-disable prefer-const */ - let { - families = [], - display = 'auto', - stripPrefix = 'public/', - } = options - /* eslint-enable prefer-const */ - - // --- Cast as array of `CustomFontFamily`. - if (!Array.isArray(families)) { - families = Object.entries(families) - .map(([name, family]) => (Array.isArray(family) || typeof family === 'string') - ? { name, src: family } - : { name, ...family }, - ) - } - - for (const { name, src, local } of families) { - const faces = resolveFontfaceFiles({ src, root }) - .map((item) => ({ - name, - src: item.src.map(x => join('/', relative(root, x.replace(stripPrefix, '')))), - weight: resolveWeight(item.srcNoExt), - style: resolveStyle(item.srcNoExt), - display, - local, - })) - // --- Generate CSS `@font-face` rules. - for (const face of faces) css.push(createFontFaceCSS(face)) - } - - return css.join('\n\n') + return [ + '@font-face {', + ` font-family: '${face.name}';`, + ` src: ${[srcs, locals].filter(Boolean).join(',')};`, + ` font-weight: ${face.weight};`, + ` font-style: ${face.style};`, + ` font-display: ${face.display};`, + '}', + ].join('\n') } -export function customLoader(options: CustomFonts, root: string) { - const tags: HtmlTagDescriptor[] = [] - // const css: string[] = [] - - // --- Extract and defaults plugin options. - /* eslint-disable prefer-const */ - let { - families = [], - preload = true, - prefetch = false, - injectTo = 'head-prepend', - stripPrefix = 'public/', - } = options - /* eslint-enable prefer-const */ - - // --- Cast as array of `CustomFontFamily`. - if (!Array.isArray(families)) { - families = Object.entries(families) - .map(([name, family]) => (Array.isArray(family) || typeof family === 'string') - ? { name, src: family } - : { name, ...family }, - ) - } - - // --- Iterate over font families and their faces. - for (const { src } of families) { - const faces = resolveFontfaceFiles({ src, root }) - - const hrefs = faces - .flatMap(face => face.src) - .map(src => join('/', relative(root, src.replace(stripPrefix, '')))) - - // --- Generate `` tags. - // --- We can not do a prefetch and a preload for the same files. - if (preload && prefetch) { - console.warn('unplugin-fonts: Prefetch and a Preload options can not be used together.') - console.warn('unplugin-fonts: The prefetch stand for a lower priority for the resource (maybe we will need it in a future page) whereas preload is for the current page, so we can not have both.') - } - if (preload || prefetch) - tags.push(...hrefs.map(createFontFaceLink(prefetch, injectTo))) - - // // --- Generate CSS `@font-face` rules. - // for (const face of faces) css.push(createFontFaceCSS(face)) +function createFontLinks(options: ResolvedCustomFonts, face: CustomFontFace) { + const links: HtmlTagDescriptor[] = [] + + for (const file of face.files) { + links.push({ + tag: 'link', + injectTo: options.injectTo, + attrs: { + rel: options.prefetch ? 'prefetch' : 'preload', + as: 'font', + type: `font/${file.ext.replace('.', '')}`, + href: file.path, + crossorigin: true, + }, + }) } - - // --- Return tags and CSS. - return tags + return links } - diff --git a/src/loaders/fontsource.ts b/src/loaders/fontsource.ts index 30c679a..bd643b1 100644 --- a/src/loaders/fontsource.ts +++ b/src/loaders/fontsource.ts @@ -1,16 +1,4 @@ - -export interface FontsourceFontFamily { - name: string - variables?: ('variable' | 'variable-italic' | 'variable-full' | 'variable-full-italic')[] - weights: (100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900)[] - styles?: ('italic' | 'normal')[] - subset?: string -} -export interface FontsourceFonts { - families: (string | FontsourceFontFamily)[] - // text?: string - // display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' -} +import type { FontsourceFonts } from '../types' export function fontsourceVirtualModule(options?: FontsourceFonts) { const source: string[] = [] @@ -19,52 +7,53 @@ export function fontsourceVirtualModule(options?: FontsourceFonts) { families = [], } = options || {} - for(const family of families) { - if(typeof family === 'string') { - source.push(`@import "@fontsource/${family.toLowerCase()}";`) - } else { - const { - name, - variables, - weights, - styles, - subset - } = family - - const subsetPrefix = subset ? `${subset}-` : '' - - if (variables) { - if (weights) { - console.warn('unplugin-fonts: Variable fonts do not support weights. Ignoring weights.') - } + for (const family of families) { + if (!family) + continue - for (const variable of variables) { - source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${variable}.css";`) - } - } else if (weights) { - for (const weight of weights) { - if (styles) { - for (const style of styles) { - if (style === 'normal') { - source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${style}.css";`) - } else { - source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${weight}-${style}.css";`) - } - } - } else { - source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${weight}.css";`) + if (typeof family === 'string') { + source.push(`@import "@fontsource/${family.toLowerCase()}";`) + continue + } + const { + name, + variables, + weights, + styles, + subset, + } = family + + const subsetPrefix = subset ? `${subset}-` : '' + + if (variables) { + if (weights) + console.warn('unplugin-fonts: Variable fonts does not support weights. Ignoring weights.') + + for (const variable of variables) + source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${variable}.css";`) + } + else if (weights) { + for (const weight of weights) { + if (styles) { + for (const style of styles) { + if (style === 'normal') + source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${style}.css";`) + else + source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${weight}-${style}.css";`) } } - } else { - if (subset) { - source.push(`@import "@fontsource/${name.toLowerCase()}/${subset}.css";`) - } else { - source.push(`@import "@fontsource/${name.toLowerCase()}";`) + else { + source.push(`@import "@fontsource/${name.toLowerCase()}/${subsetPrefix}${weight}.css";`) } } - + } + else { + if (subset) + source.push(`@import "@fontsource/${name.toLowerCase()}/${subset}.css";`) + else + source.push(`@import "@fontsource/${name.toLowerCase()}";`) } } return source.join('\n') -} \ No newline at end of file +} diff --git a/src/loaders/google-fonts.ts b/src/loaders/google-fonts.ts index e9bdd57..9a48763 100644 --- a/src/loaders/google-fonts.ts +++ b/src/loaders/google-fonts.ts @@ -1,20 +1,5 @@ import type { HtmlTagDescriptor } from 'vite' - -export interface GoogleFontFamily { - name: string - styles?: string - defer?: boolean -} -export interface GoogleFonts { - families: (string | GoogleFontFamily)[] - text?: string - display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' - preconnect?: boolean - /** - * @default: 'head-prepend' - */ - injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' -} +import type { GoogleFonts } from '../types' const GoogleFontsBase = 'https://fonts.googleapis.com/css2' const GStaticBase = 'https://fonts.gstatic.com/' @@ -43,7 +28,7 @@ export function googleLoader({ continue } - if (!(family as GoogleFontFamily)) + if (!family) continue const { diff --git a/src/loaders/index.ts b/src/loaders/index.ts index 7f5837f..c13fe5b 100644 --- a/src/loaders/index.ts +++ b/src/loaders/index.ts @@ -1,18 +1,20 @@ -import { HtmlTagDescriptor } from 'vite' +import type { HtmlTagDescriptor } from 'vite' import type { Options } from '../types' import { customLoader } from './custom' import { typekitLoader } from './typekit' import { googleLoader } from './google-fonts' -export function getHeadLinkTags (resolvedOptions: Options, root: string) { +export function getHeadLinkTags(resolvedOptions: Options, root: string) { const tags: HtmlTagDescriptor[] = [] if (resolvedOptions.typekit) tags.push(...typekitLoader(resolvedOptions.typekit)) + if (resolvedOptions.google) tags.push(...googleLoader(resolvedOptions.google)) + if (resolvedOptions.custom) tags.push(...customLoader(resolvedOptions.custom, root)) return tags -} \ No newline at end of file +} diff --git a/src/loaders/typekit.ts b/src/loaders/typekit.ts index eeec414..79f17a6 100644 --- a/src/loaders/typekit.ts +++ b/src/loaders/typekit.ts @@ -1,13 +1,5 @@ import type { HtmlTagDescriptor } from 'vite' - -export interface TypeKitFonts { - id: string - defer?: boolean - /** - * default: 'head-prepend' - */ - injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' -} +import type { TypeKitFonts } from '../types' const TypekitFontBase = 'https://use.typekit.net/' @@ -49,4 +41,3 @@ export function typekitLoader({ return tags } - diff --git a/src/nuxt.ts b/src/nuxt.ts index 0663c5c..bb44067 100644 --- a/src/nuxt.ts +++ b/src/nuxt.ts @@ -1,4 +1,4 @@ -import { addVitePlugin, addWebpackPlugin, defineNuxtModule, addTemplate } from '@nuxt/kit' +import { addVitePlugin, addWebpackPlugin, defineNuxtModule } from '@nuxt/kit' // Workaround for: // src/nuxt.ts(5,1): error TS2742: The inferred type of 'default' cannot be named without a reference to '.pnpm/@nuxt+schema@3.0.0_rollup@3.7.3/node_modules/@nuxt/schema'. This is likely not portable. A type annotation is necessary. import type {} from '@nuxt/schema' diff --git a/src/types.ts b/src/types.ts index f8ac812..9f5b69c 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,11 +1,145 @@ -import type { CustomFonts } from './loaders/custom' -import type { FontsourceFonts } from './loaders/fontsource' -import type { GoogleFonts } from './loaders/google-fonts' -import type { TypeKitFonts } from './loaders/typekit' - export interface Options { custom?: CustomFonts fontsource?: FontsourceFonts google?: GoogleFonts typekit?: TypeKitFonts } + +export interface CustomFontFace { + source: string + name: string + basename: string + weight: number + style: string + display: string + local?: string | string[] + files: { + src: string + ext: string + path: string + format: string + }[] +} + +export interface CustomFontFamily { + /** + * Name of the font family. + * @example 'Comic Sans MS' + */ + name: string + + /** + * Regex(es) of font files to import. The names of the files will + * predicate the `font-style` and `font-weight` values of the `@font-rule`'s. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight#common_weight_name_mapping + * + * @example + * A value of `./RobotoBoldItalic.*` will create this `@font-rule`: + * + * ```css + * font-face { + * font-family: 'Roboto'; + * src: url(./RobotoBoldItalic.ttf) format('truetype') + * url(./RobotoBoldItalic.woff) format('woff') + * url(./RobotoBoldItalic.woff2) format('woff2'); + * font-weight: bold; + * font-style: italic; + * font-display: auto; + * } + * ``` + */ + src: string | string[] + /** + * Local name of the font. Used to add `src: local()` to `@font-rule`. + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face#description + */ + local?: string | string[] + + /** + * Allows to transform the generated config for any font face. + * + * @param font + * @returns + */ + transform?: (font: CustomFontFace) => CustomFontFace | null +} + +export interface CustomFonts { + /** + * Font families. + */ + families: CustomFontFamily[] | Record> + + /** + * Defines the default `font-display` value used for the generated + * `@font-rule` classes. + * @see https://developer.mozilla.org/fr/docs/Web/CSS/@font-face/font-display + * @default 'auto' + */ + display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' + + /** + * Using `` will trigger a request for the WebFont + * early in the critical rendering path, without having to wait for the + * CSSOM to be created. + * @see https://web.dev/optimize-webfont-loading/#preload-your-webfont-resources + * @default true + */ + preload?: boolean + + /** + * Using `` is intended for prefetching resources + * that will be used in the next navigation/page load + * (e.g. when you go to the next page) + * + * Note: this can not be used with `preload` + * @default false + */ + prefetch?: boolean + /** + * @default: 'head-prepend' + */ + injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' + + /** + * Remove the prefix from the front path + * @default: 'public/' + */ + stripPrefix?: string +} + +export interface FontsourceFontFamily { + name: string + variables?: ('variable' | 'variable-italic' | 'variable-full' | 'variable-full-italic')[] + weights: (100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900)[] + styles?: ('italic' | 'normal')[] + subset?: string +} +export interface FontsourceFonts { + families: (string | FontsourceFontFamily)[] +} + +export interface GoogleFontFamily { + name: string + styles?: string + defer?: boolean +} +export interface GoogleFonts { + families: (string | GoogleFontFamily)[] + text?: string + display?: 'auto' | 'block' | 'swap' | 'fallback' | 'optional' + preconnect?: boolean + /** + * @default: 'head-prepend' + */ + injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' +} + +export interface TypeKitFonts { + id: string + defer?: boolean + /** + * default: 'head-prepend' + */ + injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend' +} diff --git a/test/index.test.ts b/test/index.test.ts new file mode 100644 index 0000000..e2079b8 --- /dev/null +++ b/test/index.test.ts @@ -0,0 +1,7 @@ +import { describe, expect, it } from 'vitest' + +describe('index', () => { + it('hi vitest', () => { + expect(1).toBe(1) + }) +}) diff --git a/tsup.config.ts b/tsup.config.ts index c6495b2..0a63ae4 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -6,7 +6,7 @@ export default { 'src/astro/component.astro', ], loader: { - '.astro': 'copy' + '.astro': 'copy', }, clean: true, format: ['cjs', 'esm'],