diff --git a/README.md b/README.md index 4ae41314474..9ff5153c784 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ const { faker } = require('@faker-js/faker'); export function createRandomUser() { return { userId: faker.string.uuid(), - username: faker.internet.userName(), + username: faker.internet.username(), // before version 9.1.0, use userName() email: faker.internet.email(), avatar: faker.image.avatar(), password: faker.internet.password(), diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index 593b413e899..4e46315fed5 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -3,8 +3,9 @@ import type { DefaultTheme } from 'vitepress/theme'; import { apiPages } from './api-pages'; import { algoliaIndex, - currentVersion, + version, versionBannerInfix, + versionLabel, versionLinks, } from './versions'; @@ -149,6 +150,26 @@ const config: UserConfig = { href: 'https://fosstodon.org/@faker_js', }, ], + [ + 'script', + { + id: 'browser-console-faker', + }, + ` +const logStyle = 'background: rgba(16, 183, 127, 0.14); color: rgba(255, 255, 245, 0.86); padding: 0.5rem; display: inline-block;'; +console.log(\`%cIf you would like to test Faker in the browser console, you can do so using 'await enableFaker()'. +If you would like to test Faker in a playground, visit https://new.fakerjs.dev.\`, logStyle); +async function enableFaker() { + const imported = await import('https://cdn.jsdelivr.net/npm/@faker-js/faker@${version}/+esm'); + Object.assign(globalThis, imported); + console.log(\`%cYou can now start using Faker v${version}: +e.g. 'faker.food.description()' or 'fakerZH_CN.person.firstName()' +For other languages please refer to https://fakerjs.dev/guide/localization.html#available-locales +For a full list of all methods please refer to https://fakerjs.dev/api/\`, logStyle); + return imported; +} +`, + ], ], themeConfig: { @@ -197,7 +218,10 @@ const config: UserConfig = { }, { text: 'Try it', - items: [{ text: 'StackBlitz ', link: 'https://fakerjs.dev/new' }], + items: [ + { text: 'StackBlitz ', link: 'https://fakerjs.dev/new' }, + { text: 'Browser Console ', link: '/guide/usage.html#browser' }, + ], }, { text: 'About', @@ -222,7 +246,7 @@ const config: UserConfig = { ], }, { - text: currentVersion, + text: versionLabel, items: [ { text: 'Release Notes', diff --git a/docs/.vitepress/versions.ts b/docs/.vitepress/versions.ts index 93414dc8143..dd903d22f35 100644 --- a/docs/.vitepress/versions.ts +++ b/docs/.vitepress/versions.ts @@ -1,6 +1,6 @@ import { execSync } from 'node:child_process'; import * as semver from 'semver'; -import { version } from '../../package.json'; +import { version as version_ } from '../../package.json'; function readBranchName(): string { return ( @@ -39,6 +39,11 @@ const { const otherVersions = readOtherLatestReleaseTagNames(); const isReleaseBranch = /^v\d+$/.test(branchName); +/** + * The text of the version banner describing the current version. + * + * This is `null` in production and thus should not be displayed. + */ export const versionBannerInfix: string | null = (() => { if (deployContext === 'production') { return null; @@ -55,7 +60,19 @@ export const versionBannerInfix: string | null = (() => { return '"a development version"'; })(); -export const currentVersion = isReleaseBranch ? `v${version}` : branchName; +/** + * The current version of Faker from package.json. + */ +export const version = version_; + +/** + * The version label to display in the top-right corner of the site. + */ +export const versionLabel = isReleaseBranch ? `v${version}` : branchName; + +/** + * The links to other versions of the documentation. + */ export const versionLinks = [ { version: 'next', @@ -69,6 +86,9 @@ export const versionLinks = [ // Don't link to the current branch's version. .filter(({ link }) => link !== `https://${branchName}.fakerjs.dev/`); +/** + * The name of the Algolia index to use for search. + */ export const algoliaIndex = isReleaseBranch ? `fakerjs-v${semver.major(version)}` : 'fakerjs-next'; diff --git a/docs/api/ApiIndex.vue b/docs/api/ApiIndex.vue index 7b1be7bf174..94085371ad1 100644 --- a/docs/api/ApiIndex.vue +++ b/docs/api/ApiIndex.vue @@ -69,8 +69,13 @@ const filtered = computed(() => {
  • + {{ h.text }} diff --git a/docs/guide/frameworks.md b/docs/guide/frameworks.md index 3b0cd6f39c1..1733b4e1f70 100644 --- a/docs/guide/frameworks.md +++ b/docs/guide/frameworks.md @@ -71,7 +71,7 @@ import { faker } from '@faker-js/faker/locale/en'; describe('Testing the application', () => { it('should create an account with username and password', () => { - let username = faker.internet.userName(); + let username = faker.internet.username(); // before version 9.1.0, use userName() let password = faker.internet.password(); let email = faker.internet.exampleEmail(); @@ -111,7 +111,7 @@ test.describe('Testing the application', () => { test('should create an account with username and password', async ({ page, }) => { - const username = faker.internet.userName(); + const username = faker.internet.username(); // before version 9.1.0, use userName() const password = faker.internet.password(); const email = faker.internet.exampleEmail(); diff --git a/docs/guide/usage.md b/docs/guide/usage.md index b6be99ef90f..522056779cf 100644 --- a/docs/guide/usage.md +++ b/docs/guide/usage.md @@ -32,6 +32,11 @@ For more information on selecting and customizing a locale, please refer to our If you want to try it yourself, you can open your browser console via `Ctrl + Shift + J` / `F12`. +On our website, you can load faker into the browser console + +- by using `await enableFaker()` +- or using the following code: + ```js const { faker } = await import('https://esm.sh/@faker-js/faker'); diff --git a/eslint.config.ts b/eslint.config.ts index 05fe235fcf4..4b522eece5d 100644 --- a/eslint.config.ts +++ b/eslint.config.ts @@ -153,7 +153,6 @@ const config: ReturnType = tseslint.config( // TODO @Shinigami92 2023-09-23: The following rules currently conflict with our code. // Each rule should be checked whether it should be enabled/configured and the problems fixed, or stay disabled permanently. - 'unicorn/better-regex': 'off', 'unicorn/consistent-function-scoping': 'off', 'unicorn/no-object-as-default-parameter': 'off', 'unicorn/prefer-export-from': 'off', diff --git a/package.json b/package.json index 7c52cf1a49e..ec539cbec12 100644 --- a/package.json +++ b/package.json @@ -116,13 +116,13 @@ "@vitest/eslint-plugin": "1.1.7", "@vitest/ui": "2.1.2", "@vueuse/core": "11.1.0", - "commit-and-tag-version": "12.4.4", + "commit-and-tag-version": "12.5.0", "cypress": "13.15.0", "eslint": "9.12.0", "eslint-config-prettier": "9.1.0", "eslint-plugin-jsdoc": "50.3.1", "eslint-plugin-prettier": "5.2.1", - "eslint-plugin-unicorn": "55.0.0", + "eslint-plugin-unicorn": "56.0.0", "jiti": "1.21.6", "npm-run-all2": "6.2.3", "prettier": "3.3.3", @@ -134,13 +134,13 @@ "ts-morph": "24.0.0", "tsup": "8.3.0", "tsx": "4.19.1", - "typescript": "5.6.2", + "typescript": "5.6.3", "typescript-eslint": "8.8.1", "validator": "13.12.0", "vite": "5.4.8", "vitepress": "1.4.0", "vitest": "2.1.2", - "vue": "3.5.11", + "vue": "3.5.12", "vue-tsc": "2.1.6" }, "packageManager": "pnpm@9.12.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1acea91e4a2..588f215beeb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -19,7 +19,7 @@ importers: version: 9.12.0 '@stylistic/eslint-plugin': specifier: 2.9.0 - version: 2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + version: 2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) '@types/eslint__js': specifier: 8.42.3 version: 8.42.3 @@ -40,16 +40,16 @@ importers: version: 2.1.2(vitest@2.1.2) '@vitest/eslint-plugin': specifier: 1.1.7 - version: 1.1.7(@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.2) + version: 1.1.7(@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)(vitest@2.1.2) '@vitest/ui': specifier: 2.1.2 version: 2.1.2(vitest@2.1.2) '@vueuse/core': specifier: 11.1.0 - version: 11.1.0(vue@3.5.11(typescript@5.6.2)) + version: 11.1.0(vue@3.5.12(typescript@5.6.3)) commit-and-tag-version: - specifier: 12.4.4 - version: 12.4.4 + specifier: 12.5.0 + version: 12.5.0 cypress: specifier: 13.15.0 version: 13.15.0 @@ -66,8 +66,8 @@ importers: specifier: 5.2.1 version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@9.1.0(eslint@9.12.0(jiti@1.21.6)))(eslint@9.12.0(jiti@1.21.6))(prettier@3.3.3) eslint-plugin-unicorn: - specifier: 55.0.0 - version: 55.0.0(eslint@9.12.0(jiti@1.21.6)) + specifier: 56.0.0 + version: 56.0.0(eslint@9.12.0(jiti@1.21.6)) jiti: specifier: 1.21.6 version: 1.21.6 @@ -79,7 +79,7 @@ importers: version: 3.3.3 prettier-plugin-organize-imports: specifier: 4.1.0 - version: 4.1.0(prettier@3.3.3)(typescript@5.6.2)(vue-tsc@2.1.6(typescript@5.6.2)) + version: 4.1.0(prettier@3.3.3)(typescript@5.6.3)(vue-tsc@2.1.6(typescript@5.6.3)) prettier-plugin-packagejson: specifier: 2.5.3 version: 2.5.3(prettier@3.3.3) @@ -97,16 +97,16 @@ importers: version: 24.0.0 tsup: specifier: 8.3.0 - version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.2)(yaml@2.5.1) + version: 8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.6.0) tsx: specifier: 4.19.1 version: 4.19.1 typescript: - specifier: 5.6.2 - version: 5.6.2 + specifier: 5.6.3 + version: 5.6.3 typescript-eslint: specifier: 8.8.1 - version: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + version: 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) validator: specifier: 13.12.0 version: 13.12.0 @@ -115,16 +115,16 @@ importers: version: 5.4.8(@types/node@20.16.11) vitepress: specifier: 1.4.0 - version: 1.4.0(@algolia/client-search@5.5.3)(@types/node@20.16.11)(postcss@8.4.47)(search-insights@2.17.2)(typescript@5.6.2) + version: 1.4.0(@algolia/client-search@4.24.0)(@types/node@20.16.11)(postcss@8.4.47)(search-insights@2.17.2)(typescript@5.6.3) vitest: specifier: 2.1.2 version: 2.1.2(@types/node@20.16.11)(@vitest/ui@2.1.2)(jsdom@25.0.1) vue: - specifier: 3.5.11 - version: 3.5.11(typescript@5.6.2) + specifier: 3.5.12 + version: 3.5.12(typescript@5.6.3) vue-tsc: specifier: 2.1.6 - version: 2.1.6(typescript@5.6.2) + version: 2.1.6(typescript@5.6.3) packages: @@ -172,20 +172,12 @@ packages: '@algolia/client-common@4.24.0': resolution: {integrity: sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA==} - '@algolia/client-common@5.5.3': - resolution: {integrity: sha512-3rdSdreBL2LGYu4DWmUGlMhaGy1vy36Xp42LdbTFsW/y3bhW5viptMHI5A3PKT0hPEMZUn+te1iM/EWvLUuVGQ==} - engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@4.24.0': resolution: {integrity: sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w==} '@algolia/client-search@4.24.0': resolution: {integrity: sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA==} - '@algolia/client-search@5.5.3': - resolution: {integrity: sha512-qrokD+uoNxchbiF9aP8niQd/9SZ6BgYg4WaesFaubHhr9DFvwGm4IePEMha8vQcc3fSsY6uL+gOtKB3J6RF0NQ==} - engines: {node: '>= 14.0.0'} - '@algolia/logger-common@4.24.0': resolution: {integrity: sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA==} @@ -198,24 +190,12 @@ packages: '@algolia/requester-browser-xhr@4.24.0': resolution: {integrity: sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA==} - '@algolia/requester-browser-xhr@5.5.3': - resolution: {integrity: sha512-LsfUPokiXEpvlYF7SwNjyyjkUX7IoW7oIhH6WkDUD4PCfEZkFbVplGQA0UrCiWOAbpb25P7mmP6+ldwjwqW6Kg==} - engines: {node: '>= 14.0.0'} - '@algolia/requester-common@4.24.0': resolution: {integrity: sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA==} - '@algolia/requester-fetch@5.5.3': - resolution: {integrity: sha512-RKaliEFHtVeD/fMxwrApkcI6ZxR+mU6pZna29r3NwVMpCXTJWWtlMpQmbr1RHzUsaAlpfv9pfGJN4nYPE8XWEg==} - engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@4.24.0': resolution: {integrity: sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw==} - '@algolia/requester-node-http@5.5.3': - resolution: {integrity: sha512-2wU+HlTVrVce7BMW2b3Gd62btk8B0jBbuKYYzu3OFeBD/aZa88eHABtjcjQCdw3x+wvkIPEc56UsZx9eHYLebg==} - engines: {node: '>= 14.0.0'} - '@algolia/transporter@4.24.0': resolution: {integrity: sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA==} @@ -223,29 +203,29 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} + '@babel/code-frame@7.25.7': + resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} engines: {node: '>=6.9.0'} - '@babel/helper-string-parser@7.24.8': - resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} + '@babel/helper-string-parser@7.25.7': + resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} engines: {node: '>=6.9.0'} - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} + '@babel/helper-validator-identifier@7.25.7': + resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/highlight@7.25.7': + resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.25.6': - resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} + '@babel/parser@7.25.8': + resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} engines: {node: '>=6.0.0'} hasBin: true - '@babel/types@7.25.6': - resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} + '@babel/types@7.25.8': + resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@0.2.3': @@ -721,8 +701,8 @@ packages: '@octokit/types@12.6.0': resolution: {integrity: sha512-1rhSOfRa6H9w4YwK0yrf5faDaDTb+yLyBUKOCV4xtCDB5VmIPqd/v9yr9o6SAzOAlRxMiRiCic6JVM1/kunVkw==} - '@octokit/types@13.5.0': - resolution: {integrity: sha512-HdqWTf5Z3qwDVlzCrP8UJquMwunpDiMPt5er+QjGzL4hqr/vBVY/MauQgS1xWxCDT1oMx1EULyqxncdCY/NVSQ==} + '@octokit/types@13.6.1': + resolution: {integrity: sha512-PHZE9Z+kWXb23Ndik8MKPirBPziOc0D2/3KH1P+6jK5nGWe96kadZuE4jev2/Jq7FvIfTlT2Ltg8Fv2x1v0a5g==} '@pkgjs/parseargs@0.11.0': resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} @@ -735,83 +715,83 @@ packages: '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} - '@rollup/rollup-android-arm-eabi@4.22.4': - resolution: {integrity: sha512-Fxamp4aEZnfPOcGA8KSNEohV8hX7zVHOemC8jVBoBUHu5zpJK/Eu3uJwt6BMgy9fkvzxDaurgj96F/NiLukF2w==} + '@rollup/rollup-android-arm-eabi@4.24.0': + resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.22.4': - resolution: {integrity: sha512-VXoK5UMrgECLYaMuGuVTOx5kcuap1Jm8g/M83RnCHBKOqvPPmROFJGQaZhGccnsFtfXQ3XYa4/jMCJvZnbJBdA==} + '@rollup/rollup-android-arm64@4.24.0': + resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.22.4': - resolution: {integrity: sha512-xMM9ORBqu81jyMKCDP+SZDhnX2QEVQzTcC6G18KlTQEzWK8r/oNZtKuZaCcHhnsa6fEeOBionoyl5JsAbE/36Q==} + '@rollup/rollup-darwin-arm64@4.24.0': + resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.22.4': - resolution: {integrity: sha512-aJJyYKQwbHuhTUrjWjxEvGnNNBCnmpHDvrb8JFDbeSH3m2XdHcxDd3jthAzvmoI8w/kSjd2y0udT+4okADsZIw==} + '@rollup/rollup-darwin-x64@4.24.0': + resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': - resolution: {integrity: sha512-j63YtCIRAzbO+gC2L9dWXRh5BFetsv0j0va0Wi9epXDgU/XUi5dJKo4USTttVyK7fGw2nPWK0PbAvyliz50SCQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.22.4': - resolution: {integrity: sha512-dJnWUgwWBX1YBRsuKKMOlXCzh2Wu1mlHzv20TpqEsfdZLb3WoJW2kIEsGwLkroYf24IrPAvOT/ZQ2OYMV6vlrg==} + '@rollup/rollup-linux-arm-musleabihf@4.24.0': + resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.22.4': - resolution: {integrity: sha512-AdPRoNi3NKVLolCN/Sp4F4N1d98c4SBnHMKoLuiG6RXgoZ4sllseuGioszumnPGmPM2O7qaAX/IJdeDU8f26Aw==} + '@rollup/rollup-linux-arm64-gnu@4.24.0': + resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.22.4': - resolution: {integrity: sha512-Gl0AxBtDg8uoAn5CCqQDMqAx22Wx22pjDOjBdmG0VIWX3qUBHzYmOKh8KXHL4UpogfJ14G4wk16EQogF+v8hmA==} + '@rollup/rollup-linux-arm64-musl@4.24.0': + resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': - resolution: {integrity: sha512-3aVCK9xfWW1oGQpTsYJJPF6bfpWfhbRnhdlyhak2ZiyFLDaayz0EP5j9V1RVLAAxlmWKTDfS9wyRyY3hvhPoOg==} + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.22.4': - resolution: {integrity: sha512-ePYIir6VYnhgv2C5Xe9u+ico4t8sZWXschR6fMgoPUK31yQu7hTEJb7bCqivHECwIClJfKgE7zYsh1qTP3WHUA==} + '@rollup/rollup-linux-riscv64-gnu@4.24.0': + resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.22.4': - resolution: {integrity: sha512-GqFJ9wLlbB9daxhVlrTe61vJtEY99/xB3C8e4ULVsVfflcpmR6c8UZXjtkMA6FhNONhj2eA5Tk9uAVw5orEs4Q==} + '@rollup/rollup-linux-s390x-gnu@4.24.0': + resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.22.4': - resolution: {integrity: sha512-87v0ol2sH9GE3cLQLNEy0K/R0pz1nvg76o8M5nhMR0+Q+BBGLnb35P0fVz4CQxHYXaAOhE8HhlkaZfsdUOlHwg==} + '@rollup/rollup-linux-x64-gnu@4.24.0': + resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.22.4': - resolution: {integrity: sha512-UV6FZMUgePDZrFjrNGIWzDo/vABebuXBhJEqrHxrGiU6HikPy0Z3LfdtciIttEUQfuDdCn8fqh7wiFJjCNwO+g==} + '@rollup/rollup-linux-x64-musl@4.24.0': + resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.22.4': - resolution: {integrity: sha512-BjI+NVVEGAXjGWYHz/vv0pBqfGoUH0IGZ0cICTn7kB9PyjrATSkX+8WkguNjWoj2qSr1im/+tTGRaY+4/PdcQw==} + '@rollup/rollup-win32-arm64-msvc@4.24.0': + resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.22.4': - resolution: {integrity: sha512-SiWG/1TuUdPvYmzmYnmd3IEifzR61Tragkbx9D3+R8mzQqDBz8v+BvZNDlkiTtI9T15KYZhP0ehn3Dld4n9J5g==} + '@rollup/rollup-win32-ia32-msvc@4.24.0': + resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.22.4': - resolution: {integrity: sha512-j8pPKp53/lq9lMXN57S8cFz0MynJk8OWNuUnXct/9KCpKU7DgU3bYMJhwWmcqC0UU29p8Lr0/7KEVcaM6bf47Q==} + '@rollup/rollup-win32-x64-msvc@4.24.0': + resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} cpu: [x64] os: [win32] @@ -848,9 +828,6 @@ packages: '@types/eslint__js@8.42.3': resolution: {integrity: sha512-alfG737uhmPdnvkrLdZLcEKJ/B8s9Y4hrZ+YAdzUeoArBlSUERA2E87ROfOaS4jd/C45fzOoZzidLc1IPwLqOw==} - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} - '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -1029,26 +1006,26 @@ packages: '@vitest/utils@2.1.2': resolution: {integrity: sha512-zMO2KdYy6mx56btx9JvAqAZ6EyS3g49krMPPrgOp1yxGZiA93HumGk+bZ5jIZtOg5/VBYl5eBmGRQHqq4FG6uQ==} - '@volar/language-core@2.4.5': - resolution: {integrity: sha512-F4tA0DCO5Q1F5mScHmca0umsi2ufKULAnMOVBfMsZdT4myhVl4WdKRwCaKcfOkIEuyrAVvtq1ESBdZ+rSyLVww==} + '@volar/language-core@2.4.6': + resolution: {integrity: sha512-FxUfxaB8sCqvY46YjyAAV6c3mMIq/NWQMVvJ+uS4yxr1KzOvyg61gAuOnNvgCvO4TZ7HcLExBEsWcDu4+K4E8A==} - '@volar/source-map@2.4.5': - resolution: {integrity: sha512-varwD7RaKE2J/Z+Zu6j3mNNJbNT394qIxXwdvz/4ao/vxOfyClZpSDtLKkwWmecinkOVos5+PWkWraelfMLfpw==} + '@volar/source-map@2.4.6': + resolution: {integrity: sha512-Nsh7UW2ruK+uURIPzjJgF0YRGP5CX9nQHypA2OMqdM2FKy7rh+uv3XgPnWPw30JADbKvZ5HuBzG4gSbVDYVtiw==} - '@volar/typescript@2.4.5': - resolution: {integrity: sha512-mcT1mHvLljAEtHviVcBuOyAwwMKz1ibXTi5uYtP/pf4XxoAzpdkQ+Br2IC0NPCvLCbjPZmbf3I0udndkfB1CDg==} + '@volar/typescript@2.4.6': + resolution: {integrity: sha512-NMIrA7y5OOqddL9VtngPWYmdQU03htNKFtAYidbYfWA0TOhyGVd9tfcP4TsLWQ+RBWDZCbBqsr8xzU0ZOxYTCQ==} - '@vue/compiler-core@3.5.11': - resolution: {integrity: sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg==} + '@vue/compiler-core@3.5.12': + resolution: {integrity: sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==} - '@vue/compiler-dom@3.5.11': - resolution: {integrity: sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew==} + '@vue/compiler-dom@3.5.12': + resolution: {integrity: sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==} - '@vue/compiler-sfc@3.5.11': - resolution: {integrity: sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw==} + '@vue/compiler-sfc@3.5.12': + resolution: {integrity: sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==} - '@vue/compiler-ssr@3.5.11': - resolution: {integrity: sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA==} + '@vue/compiler-ssr@3.5.12': + resolution: {integrity: sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==} '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} @@ -1070,22 +1047,22 @@ packages: typescript: optional: true - '@vue/reactivity@3.5.11': - resolution: {integrity: sha512-Nqo5VZEn8MJWlCce8XoyVqHZbd5P2NH+yuAaFzuNSR96I+y1cnuUiq7xfSG+kyvLSiWmaHTKP1r3OZY4mMD50w==} + '@vue/reactivity@3.5.12': + resolution: {integrity: sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==} - '@vue/runtime-core@3.5.11': - resolution: {integrity: sha512-7PsxFGqwfDhfhh0OcDWBG1DaIQIVOLgkwA5q6MtkPiDFjp5gohVnJEahSktwSFLq7R5PtxDKy6WKURVN1UDbzA==} + '@vue/runtime-core@3.5.12': + resolution: {integrity: sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==} - '@vue/runtime-dom@3.5.11': - resolution: {integrity: sha512-GNghjecT6IrGf0UhuYmpgaOlN7kxzQBhxWEn08c/SQDxv1yy4IXI1bn81JgEpQ4IXjRxWtPyI8x0/7TF5rPfYQ==} + '@vue/runtime-dom@3.5.12': + resolution: {integrity: sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==} - '@vue/server-renderer@3.5.11': - resolution: {integrity: sha512-cVOwYBxR7Wb1B1FoxYvtjJD8X/9E5nlH4VSkJy2uMA1MzYNdzAAB//l8nrmN9py/4aP+3NjWukf9PZ3TeWULaA==} + '@vue/server-renderer@3.5.12': + resolution: {integrity: sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==} peerDependencies: - vue: 3.5.11 + vue: 3.5.12 - '@vue/shared@3.5.11': - resolution: {integrity: sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ==} + '@vue/shared@3.5.12': + resolution: {integrity: sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==} '@vueuse/core@11.1.0': resolution: {integrity: sha512-P6dk79QYA6sKQnghrUz/1tHi0n9mrb/iO1WTMk/ElLmTyNqgDeSZ3wcDf6fRBGzRJbeG1dxzEOvLENMjr+E3fg==} @@ -1267,8 +1244,8 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} - birpc@0.2.17: - resolution: {integrity: sha512-+hkTxhot+dWsLpp3gia5AkVHIsKlZybNT5gIYiDlNzJrmYPcTM9k5/w2uaj3IPpd7LlEYpmCj4Jj1nC41VhDFg==} + birpc@0.2.19: + resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==} blob-util@2.0.2: resolution: {integrity: sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ==} @@ -1286,8 +1263,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.3: - resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} + browserslist@4.24.0: + resolution: {integrity: sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1334,8 +1311,8 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - caniuse-lite@1.0.30001663: - resolution: {integrity: sha512-o9C3X27GLKbLeTYZ6HBOLU1tsAcBZsLis28wrVzddShCS16RujjHp9GDHKZqrB3meE0YjhawvMFsGb/igqiPzA==} + caniuse-lite@1.0.30001668: + resolution: {integrity: sha512-nWLrdxqCdblixUO+27JtGJJE/txpJlyUy5YN1u53wLZkP0emYCo5zgS6QYft7VUYR42LGgi/S5hdLZTrnyIddw==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -1446,8 +1423,8 @@ packages: resolution: {integrity: sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==} engines: {node: '>= 12.0.0'} - commit-and-tag-version@12.4.4: - resolution: {integrity: sha512-sK+69usdfluwRO6DtXs8wpRvyM9OAuV6y8kTgMj+ncRG3KrXeKjNcxFsWnnwH/KZU9k8ErKu5uQ1ptX6/pPk7A==} + commit-and-tag-version@12.5.0: + resolution: {integrity: sha512-Ll7rkKntH20iEFOPUT4e503Jf3J0J8jSN+aSeHuvNdtv4xmv9kSLSBg2CWsMVihwF3J2WvMHBEUSCKuDNesiTA==} engines: {node: '>=18'} hasBin: true @@ -1696,8 +1673,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.27: - resolution: {integrity: sha512-o37j1vZqCoEgBuWWXLHQgTN/KDKe7zwpiY5CPeq2RvUqOyJw9xnrULzZAEVQ5p4h+zjMk7hgtOoPdnLxr7m/jw==} + electron-to-chromium@1.5.36: + resolution: {integrity: sha512-HYTX8tKge/VNp6FGO+f/uVDmUkq+cEfcxYhKf15Akc4M5yxt5YmorwlAitKWjWhWQnKcDRBAQKXkhqqXMqcrjw==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1778,8 +1755,8 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-unicorn@55.0.0: - resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + eslint-plugin-unicorn@56.0.0: + resolution: {integrity: sha512-aXpddVz/PQMmd69uxO98PA4iidiVNvA0xOtbpUoz1WhBd4RxOQQYqN618v68drY0hmy5uU2jy1bheKEVWBjlPw==} engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' @@ -1937,8 +1914,8 @@ packages: forever-agent@0.6.1: resolution: {integrity: sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} fs-extra@9.1.0: @@ -1957,9 +1934,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} @@ -2030,8 +2004,8 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.9.0: - resolution: {integrity: sha512-SmSKyLLKFbSr6rptvP8izbyxJL4ILwqO9Jg23UA0sDlGlu58V59D1//I3vlc0KJphVdUR7vMjHIplYnzBxorQA==} + globals@15.11.0: + resolution: {integrity: sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==} engines: {node: '>=18'} globby@13.2.2: @@ -2428,8 +2402,8 @@ packages: resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==} engines: {node: '>=10'} - loupe@3.1.1: - resolution: {integrity: sha512-edNu/8D5MKVfGVFRhFf8aAxiTM6Wumfz5XsaatSxlD3w4R1d/WEKUTydCdPGbl9K7QG/Ca3GnDV2sIKIpXRQcw==} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -2438,8 +2412,8 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - magic-string@0.30.11: - resolution: {integrity: sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==} + magic-string@0.30.12: + resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -2591,8 +2565,8 @@ packages: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} engines: {node: '>=8'} - nwsapi@2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + nwsapi@2.2.13: + resolution: {integrity: sha512-cTGB9ptp9dY9A5VbMSe7fQBcl/tt22Vcqdq8+eN93rblOuE0aCFu4aZ2vMwct/2t+lFnosm8RkQW1I0Omb1UtQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -2659,8 +2633,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} @@ -2681,8 +2655,8 @@ packages: parse-srcset@1.0.2: resolution: {integrity: sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.2.0: + resolution: {integrity: sha512-ZkDsAOcxsUMZ4Lz5fVciOehNcJ+Gb8gTzcA4yl3wnc273BAybYWrQ+Ks/OjCjSEpjvQkDSeZbybK9qj2VHHdGA==} path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} @@ -2784,8 +2758,8 @@ packages: resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} engines: {node: ^10 || ^12 || >=14} - preact@10.24.0: - resolution: {integrity: sha512-aK8Cf+jkfyuZ0ZZRG9FbYqwmEiGQ4y/PUO4SuTWoyWL244nZZh7bd5h2APd4rSNDYTBNghg1L+5iJN3Skxtbsw==} + preact@10.24.2: + resolution: {integrity: sha512-1cSoF0aCC8uaARATfrlz4VCBqE8LwZwRfLgkxJOQwAlQt6ayTmi0D9OF7nXid1POI5SZidFuG9CnlXbDfLqY/Q==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2894,8 +2868,8 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - regex@4.3.2: - resolution: {integrity: sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==} + regex@4.3.3: + resolution: {integrity: sha512-r/AadFO7owAq1QJVeZ/nq9jNS1vyZt+6t1p/E59B56Rn2GCya+gr1KSyOzNL/er+r+B7phv5jG2xU2Nz1YkmJg==} regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} @@ -2945,8 +2919,8 @@ packages: resolution: {integrity: sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==} hasBin: true - rollup@4.22.4: - resolution: {integrity: sha512-vD8HJ5raRcWOyymsR6Z3o6+RzfEPCnVLMFJ6vRslO1jt4LO6dUo5Qnpg7y4RkZFM2DMe3WUirkI5c16onjrc6A==} + rollup@4.24.0: + resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -3165,10 +3139,6 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - synckit@0.9.1: - resolution: {integrity: sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==} - engines: {node: ^14.18.0 || >=16.0.0} - synckit@0.9.2: resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==} engines: {node: ^14.18.0 || >=16.0.0} @@ -3209,10 +3179,6 @@ packages: tinyexec@0.3.0: resolution: {integrity: sha512-tVGE0mVJPGb0chKhqmsoosjsS+qUnJVGJpZgsHYQcGoPlG3B51R3PouqTgEGH2Dc9jjFyOqOpix6ZHNMXp1FZg==} - tinyglobby@0.2.6: - resolution: {integrity: sha512-NbBoFBpqfcgd1tCiO8Lkfdk+xrA7mlLR9zgvZcZWQQwU63XAfUePyd6wZBaU93Hqw347lHnwFzttAkemHzzz4g==} - engines: {node: '>=12.0.0'} - tinyglobby@0.2.9: resolution: {integrity: sha512-8or1+BGEdk1Zkkw2ii16qSS7uVrQJPre5A9o/XkWPATkk23FZh/15BKFxPnlTy6vkljZxLqYCzzBMj30ZrSvjw==} engines: {node: '>=12.0.0'} @@ -3229,11 +3195,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.47: - resolution: {integrity: sha512-6SWyFMnlst1fEt7GQVAAu16EGgFK0cLouH/2Mk6Ftlwhv3Ol40L0dlpGMcnnNiiOMyD2EV/aF3S+U2nKvvLvrA==} + tldts-core@6.1.51: + resolution: {integrity: sha512-bu9oCYYWC1iRjx+3UnAjqCsfrWNZV1ghNQf49b3w5xE8J/tNShHTzp5syWJfwGH+pxUgTTLUnzHnfuydW7wmbg==} - tldts@6.1.47: - resolution: {integrity: sha512-R/K2tZ5MiY+mVrnSkNJkwqYT2vUv1lcT6wJvd2emGaMJ7PHUGRY4e3tUsdFCXgqxi2QgbHjL3yJgXCo40v9Hxw==} + tldts@6.1.51: + resolution: {integrity: sha512-33lfQoL0JsDogIbZ8fgRyvv77GnRtwkNE/MOKocwUgPO1WrSfsq7+vQRKxRQZai5zd+zg97Iv9fpFQSzHyWdLA==} hasBin: true tmp@0.2.3: @@ -3359,8 +3325,8 @@ packages: typescript: optional: true - typescript@5.6.2: - resolution: {integrity: sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw==} + typescript@5.6.3: + resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} engines: {node: '>=14.17'} hasBin: true @@ -3406,8 +3372,8 @@ packages: resolution: {integrity: sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==} engines: {node: '>=8'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -3535,8 +3501,8 @@ packages: peerDependencies: typescript: '>=5.0.0' - vue@3.5.11: - resolution: {integrity: sha512-/8Wurrd9J3lb72FTQS7gRMNQD4nztTtKPmuDuPuhqXmmpD6+skVjAeahNpVzsuky6Sy9gy7wn8UadqPtt9SQIg==} + vue@3.5.12: + resolution: {integrity: sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==} peerDependencies: typescript: '*' peerDependenciesMeta: @@ -3631,8 +3597,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.5.1: - resolution: {integrity: sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==} + yaml@2.6.0: + resolution: {integrity: sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==} engines: {node: '>= 14'} hasBin: true @@ -3676,32 +3642,32 @@ snapshots: tunnel: 0.0.6 undici: 5.28.4 - '@algolia/autocomplete-core@1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-core@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)(search-insights@2.17.2)': + '@algolia/autocomplete-plugin-algolia-insights@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0) + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) search-insights: 2.17.2 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)': + '@algolia/autocomplete-preset-algolia@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': dependencies: - '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0) - '@algolia/client-search': 5.5.3 + '@algolia/autocomplete-shared': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) + '@algolia/client-search': 4.24.0 algoliasearch: 4.24.0 - '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)': + '@algolia/autocomplete-shared@1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)': dependencies: - '@algolia/client-search': 5.5.3 + '@algolia/client-search': 4.24.0 algoliasearch: 4.24.0 '@algolia/cache-browser-local-storage@4.24.0': @@ -3732,8 +3698,6 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-common@5.5.3': {} - '@algolia/client-personalization@4.24.0': dependencies: '@algolia/client-common': 4.24.0 @@ -3746,13 +3710,6 @@ snapshots: '@algolia/requester-common': 4.24.0 '@algolia/transporter': 4.24.0 - '@algolia/client-search@5.5.3': - dependencies: - '@algolia/client-common': 5.5.3 - '@algolia/requester-browser-xhr': 5.5.3 - '@algolia/requester-fetch': 5.5.3 - '@algolia/requester-node-http': 5.5.3 - '@algolia/logger-common@4.24.0': {} '@algolia/logger-console@4.24.0': @@ -3777,24 +3734,12 @@ snapshots: dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-browser-xhr@5.5.3': - dependencies: - '@algolia/client-common': 5.5.3 - '@algolia/requester-common@4.24.0': {} - '@algolia/requester-fetch@5.5.3': - dependencies: - '@algolia/client-common': 5.5.3 - '@algolia/requester-node-http@4.24.0': dependencies: '@algolia/requester-common': 4.24.0 - '@algolia/requester-node-http@5.5.3': - dependencies: - '@algolia/client-common': 5.5.3 - '@algolia/transporter@4.24.0': dependencies: '@algolia/cache-common': 4.24.0 @@ -3806,30 +3751,30 @@ snapshots: '@jridgewell/gen-mapping': 0.3.5 '@jridgewell/trace-mapping': 0.3.25 - '@babel/code-frame@7.24.7': + '@babel/code-frame@7.25.7': dependencies: - '@babel/highlight': 7.24.7 + '@babel/highlight': 7.25.7 picocolors: 1.1.0 - '@babel/helper-string-parser@7.24.8': {} + '@babel/helper-string-parser@7.25.7': {} - '@babel/helper-validator-identifier@7.24.7': {} + '@babel/helper-validator-identifier@7.25.7': {} - '@babel/highlight@7.24.7': + '@babel/highlight@7.25.7': dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 chalk: 2.4.2 js-tokens: 4.0.0 picocolors: 1.1.0 - '@babel/parser@7.25.6': + '@babel/parser@7.25.8': dependencies: - '@babel/types': 7.25.6 + '@babel/types': 7.25.8 - '@babel/types@7.25.6': + '@babel/types@7.25.8': dependencies: - '@babel/helper-string-parser': 7.24.8 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-string-parser': 7.25.7 + '@babel/helper-validator-identifier': 7.25.7 to-fast-properties: 2.0.0 '@bcoe/v8-coverage@0.2.3': {} @@ -3845,7 +3790,7 @@ snapshots: combined-stream: 1.0.8 extend: 3.0.2 forever-agent: 0.6.1 - form-data: 4.0.0 + form-data: 4.0.1 http-signature: 1.4.0 is-typedarray: 1.0.0 isstream: 0.1.2 @@ -3867,10 +3812,10 @@ snapshots: '@docsearch/css@3.6.2': {} - '@docsearch/js@3.6.2(@algolia/client-search@5.5.3)(search-insights@2.17.2)': + '@docsearch/js@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)': dependencies: - '@docsearch/react': 3.6.2(@algolia/client-search@5.5.3)(search-insights@2.17.2) - preact: 10.24.0 + '@docsearch/react': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2) + preact: 10.24.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -3878,10 +3823,10 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.6.2(@algolia/client-search@5.5.3)(search-insights@2.17.2)': + '@docsearch/react@3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2)': dependencies: - '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0)(search-insights@2.17.2) - '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@5.5.3)(algoliasearch@4.24.0) + '@algolia/autocomplete-core': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0)(search-insights@2.17.2) + '@algolia/autocomplete-preset-algolia': 1.9.3(@algolia/client-search@4.24.0)(algoliasearch@4.24.0) '@docsearch/css': 3.6.2 algoliasearch: 4.24.0 optionalDependencies: @@ -4142,19 +4087,19 @@ snapshots: '@octokit/graphql': 7.1.0 '@octokit/request': 8.4.0 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 before-after-hook: 2.2.3 universal-user-agent: 6.0.1 '@octokit/endpoint@9.0.5': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/graphql@7.1.0': dependencies: '@octokit/request': 8.4.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/openapi-types@20.0.0': {} @@ -4173,7 +4118,7 @@ snapshots: '@octokit/request-error@5.1.0': dependencies: - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 deprecation: 2.3.1 once: 1.4.0 @@ -4181,14 +4126,14 @@ snapshots: dependencies: '@octokit/endpoint': 9.0.5 '@octokit/request-error': 5.1.0 - '@octokit/types': 13.5.0 + '@octokit/types': 13.6.1 universal-user-agent: 6.0.1 '@octokit/types@12.6.0': dependencies: '@octokit/openapi-types': 20.0.0 - '@octokit/types@13.5.0': + '@octokit/types@13.6.1': dependencies: '@octokit/openapi-types': 22.2.0 @@ -4199,52 +4144,52 @@ snapshots: '@polka/url@1.0.0-next.28': {} - '@rollup/rollup-android-arm-eabi@4.22.4': + '@rollup/rollup-android-arm-eabi@4.24.0': optional: true - '@rollup/rollup-android-arm64@4.22.4': + '@rollup/rollup-android-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-arm64@4.22.4': + '@rollup/rollup-darwin-arm64@4.24.0': optional: true - '@rollup/rollup-darwin-x64@4.22.4': + '@rollup/rollup-darwin-x64@4.24.0': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.22.4': + '@rollup/rollup-linux-arm-gnueabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.22.4': + '@rollup/rollup-linux-arm-musleabihf@4.24.0': optional: true - '@rollup/rollup-linux-arm64-gnu@4.22.4': + '@rollup/rollup-linux-arm64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-arm64-musl@4.22.4': + '@rollup/rollup-linux-arm64-musl@4.24.0': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.22.4': + '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.22.4': + '@rollup/rollup-linux-riscv64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-s390x-gnu@4.22.4': + '@rollup/rollup-linux-s390x-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-gnu@4.22.4': + '@rollup/rollup-linux-x64-gnu@4.24.0': optional: true - '@rollup/rollup-linux-x64-musl@4.22.4': + '@rollup/rollup-linux-x64-musl@4.24.0': optional: true - '@rollup/rollup-win32-arm64-msvc@4.22.4': + '@rollup/rollup-win32-arm64-msvc@4.24.0': optional: true - '@rollup/rollup-win32-ia32-msvc@4.22.4': + '@rollup/rollup-win32-ia32-msvc@4.24.0': optional: true - '@rollup/rollup-win32-x64-msvc@4.22.4': + '@rollup/rollup-win32-x64-msvc@4.24.0': optional: true '@shikijs/core@1.22.0': @@ -4278,9 +4223,9 @@ snapshots: '@shikijs/vscode-textmate@9.3.0': {} - '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@stylistic/eslint-plugin@2.9.0(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) eslint: 9.12.0(jiti@1.21.6) eslint-visitor-keys: 4.1.0 espree: 10.2.0 @@ -4305,8 +4250,6 @@ snapshots: dependencies: '@types/eslint': 9.6.1 - '@types/estree@1.0.5': {} - '@types/estree@1.0.6': {} '@types/hast@3.0.4': @@ -4357,34 +4300,34 @@ snapshots: '@types/node': 20.16.11 optional: true - '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/eslint-plugin@8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/regexpp': 4.11.1 - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/scope-manager': 8.8.1 - '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/type-utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 eslint: 9.12.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) '@typescript-eslint/visitor-keys': 8.8.1 debug: 4.3.7(supports-color@8.1.1) eslint: 9.12.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color @@ -4393,21 +4336,21 @@ snapshots: '@typescript-eslint/types': 8.8.1 '@typescript-eslint/visitor-keys': 8.8.1 - '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/type-utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) debug: 4.3.7(supports-color@8.1.1) - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color '@typescript-eslint/types@8.8.1': {} - '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.2)': + '@typescript-eslint/typescript-estree@8.8.1(typescript@5.6.3)': dependencies: '@typescript-eslint/types': 8.8.1 '@typescript-eslint/visitor-keys': 8.8.1 @@ -4416,18 +4359,18 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.6.2) + ts-api-utils: 1.3.0(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)': + '@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.8.1 '@typescript-eslint/types': 8.8.1 - '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.2) + '@typescript-eslint/typescript-estree': 8.8.1(typescript@5.6.3) eslint: 9.12.0(jiti@1.21.6) transitivePeerDependencies: - supports-color @@ -4440,10 +4383,10 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@20.16.11))(vue@3.5.11(typescript@5.6.2))': + '@vitejs/plugin-vue@5.1.4(vite@5.4.8(@types/node@20.16.11))(vue@3.5.12(typescript@5.6.3))': dependencies: vite: 5.4.8(@types/node@20.16.11) - vue: 3.5.11(typescript@5.6.2) + vue: 3.5.12(typescript@5.6.3) '@vitest/coverage-v8@2.1.2(vitest@2.1.2)': dependencies: @@ -4454,7 +4397,7 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.11 + magic-string: 0.30.12 magicast: 0.3.5 std-env: 3.7.0 test-exclude: 7.0.1 @@ -4463,12 +4406,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2)(vitest@2.1.2)': + '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3)(vitest@2.1.2)': dependencies: - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) eslint: 9.12.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 vitest: 2.1.2(@types/node@20.16.11)(@vitest/ui@2.1.2)(jsdom@25.0.1) '@vitest/expect@2.1.2': @@ -4482,7 +4425,7 @@ snapshots: dependencies: '@vitest/spy': 2.1.2 estree-walker: 3.0.3 - magic-string: 0.30.11 + magic-string: 0.30.12 optionalDependencies: vite: 5.4.8(@types/node@20.16.11) @@ -4498,7 +4441,7 @@ snapshots: '@vitest/snapshot@2.1.2': dependencies: '@vitest/pretty-format': 2.1.2 - magic-string: 0.30.11 + magic-string: 0.30.12 pathe: 1.1.2 '@vitest/spy@2.1.2': @@ -4519,50 +4462,50 @@ snapshots: '@vitest/utils@2.1.2': dependencies: '@vitest/pretty-format': 2.1.2 - loupe: 3.1.1 + loupe: 3.1.2 tinyrainbow: 1.2.0 - '@volar/language-core@2.4.5': + '@volar/language-core@2.4.6': dependencies: - '@volar/source-map': 2.4.5 + '@volar/source-map': 2.4.6 - '@volar/source-map@2.4.5': {} + '@volar/source-map@2.4.6': {} - '@volar/typescript@2.4.5': + '@volar/typescript@2.4.6': dependencies: - '@volar/language-core': 2.4.5 + '@volar/language-core': 2.4.6 path-browserify: 1.0.1 vscode-uri: 3.0.8 - '@vue/compiler-core@3.5.11': + '@vue/compiler-core@3.5.12': dependencies: - '@babel/parser': 7.25.6 - '@vue/shared': 3.5.11 + '@babel/parser': 7.25.8 + '@vue/shared': 3.5.12 entities: 4.5.0 estree-walker: 2.0.2 source-map-js: 1.2.1 - '@vue/compiler-dom@3.5.11': + '@vue/compiler-dom@3.5.12': dependencies: - '@vue/compiler-core': 3.5.11 - '@vue/shared': 3.5.11 + '@vue/compiler-core': 3.5.12 + '@vue/shared': 3.5.12 - '@vue/compiler-sfc@3.5.11': + '@vue/compiler-sfc@3.5.12': dependencies: - '@babel/parser': 7.25.6 - '@vue/compiler-core': 3.5.11 - '@vue/compiler-dom': 3.5.11 - '@vue/compiler-ssr': 3.5.11 - '@vue/shared': 3.5.11 + '@babel/parser': 7.25.8 + '@vue/compiler-core': 3.5.12 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 estree-walker: 2.0.2 - magic-string: 0.30.11 + magic-string: 0.30.12 postcss: 8.4.47 source-map-js: 1.2.1 - '@vue/compiler-ssr@3.5.11': + '@vue/compiler-ssr@3.5.12': dependencies: - '@vue/compiler-dom': 3.5.11 - '@vue/shared': 3.5.11 + '@vue/compiler-dom': 3.5.12 + '@vue/shared': 3.5.12 '@vue/compiler-vue2@2.7.16': dependencies: @@ -4576,7 +4519,7 @@ snapshots: '@vue/devtools-kit@7.4.6': dependencies: '@vue/devtools-shared': 7.4.6 - birpc: 0.2.17 + birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 perfect-debounce: 1.0.0 @@ -4587,58 +4530,58 @@ snapshots: dependencies: rfdc: 1.4.1 - '@vue/language-core@2.1.6(typescript@5.6.2)': + '@vue/language-core@2.1.6(typescript@5.6.3)': dependencies: - '@volar/language-core': 2.4.5 - '@vue/compiler-dom': 3.5.11 + '@volar/language-core': 2.4.6 + '@vue/compiler-dom': 3.5.12 '@vue/compiler-vue2': 2.7.16 - '@vue/shared': 3.5.11 + '@vue/shared': 3.5.12 computeds: 0.0.1 minimatch: 9.0.5 muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 - '@vue/reactivity@3.5.11': + '@vue/reactivity@3.5.12': dependencies: - '@vue/shared': 3.5.11 + '@vue/shared': 3.5.12 - '@vue/runtime-core@3.5.11': + '@vue/runtime-core@3.5.12': dependencies: - '@vue/reactivity': 3.5.11 - '@vue/shared': 3.5.11 + '@vue/reactivity': 3.5.12 + '@vue/shared': 3.5.12 - '@vue/runtime-dom@3.5.11': + '@vue/runtime-dom@3.5.12': dependencies: - '@vue/reactivity': 3.5.11 - '@vue/runtime-core': 3.5.11 - '@vue/shared': 3.5.11 + '@vue/reactivity': 3.5.12 + '@vue/runtime-core': 3.5.12 + '@vue/shared': 3.5.12 csstype: 3.1.3 - '@vue/server-renderer@3.5.11(vue@3.5.11(typescript@5.6.2))': + '@vue/server-renderer@3.5.12(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vue/compiler-ssr': 3.5.11 - '@vue/shared': 3.5.11 - vue: 3.5.11(typescript@5.6.2) + '@vue/compiler-ssr': 3.5.12 + '@vue/shared': 3.5.12 + vue: 3.5.12(typescript@5.6.3) - '@vue/shared@3.5.11': {} + '@vue/shared@3.5.12': {} - '@vueuse/core@11.1.0(vue@3.5.11(typescript@5.6.2))': + '@vueuse/core@11.1.0(vue@3.5.12(typescript@5.6.3))': dependencies: '@types/web-bluetooth': 0.0.20 '@vueuse/metadata': 11.1.0 - '@vueuse/shared': 11.1.0(vue@3.5.11(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.2)) + '@vueuse/shared': 11.1.0(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue - '@vueuse/integrations@11.1.0(focus-trap@7.6.0)(vue@3.5.11(typescript@5.6.2))': + '@vueuse/integrations@11.1.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3))': dependencies: - '@vueuse/core': 11.1.0(vue@3.5.11(typescript@5.6.2)) - '@vueuse/shared': 11.1.0(vue@3.5.11(typescript@5.6.2)) - vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.2)) + '@vueuse/core': 11.1.0(vue@3.5.12(typescript@5.6.3)) + '@vueuse/shared': 11.1.0(vue@3.5.12(typescript@5.6.3)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) optionalDependencies: focus-trap: 7.6.0 transitivePeerDependencies: @@ -4647,9 +4590,9 @@ snapshots: '@vueuse/metadata@11.1.0': {} - '@vueuse/shared@11.1.0(vue@3.5.11(typescript@5.6.2))': + '@vueuse/shared@11.1.0(vue@3.5.12(typescript@5.6.3))': dependencies: - vue-demi: 0.14.10(vue@3.5.11(typescript@5.6.2)) + vue-demi: 0.14.10(vue@3.5.12(typescript@5.6.3)) transitivePeerDependencies: - '@vue/composition-api' - vue @@ -4772,7 +4715,7 @@ snapshots: binary-extensions@2.3.0: {} - birpc@0.2.17: {} + birpc@0.2.19: {} blob-util@2.0.2: {} @@ -4791,12 +4734,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.3: + browserslist@4.24.0: dependencies: - caniuse-lite: 1.0.30001663 - electron-to-chromium: 1.5.27 + caniuse-lite: 1.0.30001668 + electron-to-chromium: 1.5.36 node-releases: 2.0.18 - update-browserslist-db: 1.1.0(browserslist@4.23.3) + update-browserslist-db: 1.1.1(browserslist@4.24.0) buffer-crc32@0.2.13: {} @@ -4836,7 +4779,7 @@ snapshots: camelcase@5.3.1: {} - caniuse-lite@1.0.30001663: {} + caniuse-lite@1.0.30001668: {} caseless@0.12.0: {} @@ -4847,7 +4790,7 @@ snapshots: assertion-error: 2.0.1 check-error: 2.1.1 deep-eql: 5.0.2 - loupe: 3.1.1 + loupe: 3.1.2 pathval: 2.0.0 chalk@2.4.2: @@ -4946,7 +4889,7 @@ snapshots: comment-parser@1.4.1: {} - commit-and-tag-version@12.4.4: + commit-and-tag-version@12.5.0: dependencies: chalk: 2.4.2 conventional-changelog: 4.0.0 @@ -4962,7 +4905,7 @@ snapshots: jsdom: 25.0.1 semver: 7.6.3 w3c-xmlserializer: 5.0.0 - yaml: 2.5.1 + yaml: 2.6.0 yargs: 17.7.2 transitivePeerDependencies: - bufferutil @@ -5084,7 +5027,7 @@ snapshots: core-js-compat@3.38.1: dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 core-util-is@1.0.2: {} @@ -5253,7 +5196,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.27: {} + electron-to-chromium@1.5.36: {} emoji-regex@8.0.0: {} @@ -5367,21 +5310,21 @@ snapshots: eslint: 9.12.0(jiti@1.21.6) prettier: 3.3.3 prettier-linter-helpers: 1.0.0 - synckit: 0.9.1 + synckit: 0.9.2 optionalDependencies: '@types/eslint': 9.6.1 eslint-config-prettier: 9.1.0(eslint@9.12.0(jiti@1.21.6)) - eslint-plugin-unicorn@55.0.0(eslint@9.12.0(jiti@1.21.6)): + eslint-plugin-unicorn@56.0.0(eslint@9.12.0(jiti@1.21.6)): dependencies: - '@babel/helper-validator-identifier': 7.24.7 + '@babel/helper-validator-identifier': 7.25.7 '@eslint-community/eslint-utils': 4.4.0(eslint@9.12.0(jiti@1.21.6)) ci-info: 4.0.0 clean-regexp: 1.0.0 core-js-compat: 3.38.1 eslint: 9.12.0(jiti@1.21.6) esquery: 1.6.0 - globals: 15.9.0 + globals: 15.11.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -5589,7 +5532,7 @@ snapshots: forever-agent@0.6.1: {} - form-data@4.0.0: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 @@ -5609,8 +5552,6 @@ snapshots: get-caller-file@2.0.5: {} - get-func-name@2.0.2: {} - get-intrinsic@1.2.4: dependencies: es-errors: 1.3.0 @@ -5682,7 +5623,7 @@ snapshots: jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 global-dirs@3.0.1: @@ -5691,7 +5632,7 @@ snapshots: globals@14.0.0: {} - globals@15.9.0: {} + globals@15.11.0: {} globby@13.2.2: dependencies: @@ -5935,13 +5876,13 @@ snapshots: cssstyle: 4.1.0 data-urls: 5.0.0 decimal.js: 10.4.3 - form-data: 4.0.0 + form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 - parse5: 7.1.2 + nwsapi: 2.2.13 + parse5: 7.2.0 rrweb-cssom: 0.7.1 saxes: 6.0.0 symbol-tree: 3.2.4 @@ -6072,9 +6013,7 @@ snapshots: slice-ansi: 4.0.0 wrap-ansi: 6.2.0 - loupe@3.1.1: - dependencies: - get-func-name: 2.0.2 + loupe@3.1.2: {} lru-cache@10.4.3: {} @@ -6082,14 +6021,14 @@ snapshots: dependencies: yallist: 4.0.0 - magic-string@0.30.11: + magic-string@0.30.12: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 magicast@0.3.5: dependencies: - '@babel/parser': 7.25.6 - '@babel/types': 7.25.6 + '@babel/parser': 7.25.8 + '@babel/types': 7.25.8 source-map-js: 1.2.1 make-dir@4.0.0: @@ -6242,7 +6181,7 @@ snapshots: dependencies: path-key: 3.1.1 - nwsapi@2.2.12: {} + nwsapi@2.2.13: {} object-assign@4.1.1: {} @@ -6258,7 +6197,7 @@ snapshots: oniguruma-to-js@0.4.3: dependencies: - regex: 4.3.2 + regex: 4.3.3 optionator@0.9.4: dependencies: @@ -6307,7 +6246,7 @@ snapshots: p-try@2.2.0: {} - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} parent-module@1.0.1: dependencies: @@ -6325,14 +6264,14 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.25.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 parse-srcset@1.0.2: {} - parse5@7.1.2: + parse5@7.2.0: dependencies: entities: 4.5.0 @@ -6383,14 +6322,14 @@ snapshots: pluralize@8.0.0: {} - postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1): + postcss-load-config@6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.6.0): dependencies: lilconfig: 3.1.2 optionalDependencies: jiti: 1.21.6 postcss: 8.4.47 tsx: 4.19.1 - yaml: 2.5.1 + yaml: 2.6.0 postcss@8.4.47: dependencies: @@ -6398,7 +6337,7 @@ snapshots: picocolors: 1.1.0 source-map-js: 1.2.1 - preact@10.24.0: {} + preact@10.24.2: {} prelude-ls@1.2.1: {} @@ -6406,12 +6345,12 @@ snapshots: dependencies: fast-diff: 1.3.0 - prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.6.2)(vue-tsc@2.1.6(typescript@5.6.2)): + prettier-plugin-organize-imports@4.1.0(prettier@3.3.3)(typescript@5.6.3)(vue-tsc@2.1.6(typescript@5.6.3)): dependencies: prettier: 3.3.3 - typescript: 5.6.2 + typescript: 5.6.3 optionalDependencies: - vue-tsc: 2.1.6(typescript@5.6.2) + vue-tsc: 2.1.6(typescript@5.6.3) prettier-plugin-packagejson@2.5.3(prettier@3.3.3): dependencies: @@ -6505,7 +6444,7 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - regex@4.3.2: {} + regex@4.3.3: {} regexp-tree@0.1.27: {} @@ -6546,26 +6485,26 @@ snapshots: dependencies: glob: 10.4.5 - rollup@4.22.4: + rollup@4.24.0: dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.22.4 - '@rollup/rollup-android-arm64': 4.22.4 - '@rollup/rollup-darwin-arm64': 4.22.4 - '@rollup/rollup-darwin-x64': 4.22.4 - '@rollup/rollup-linux-arm-gnueabihf': 4.22.4 - '@rollup/rollup-linux-arm-musleabihf': 4.22.4 - '@rollup/rollup-linux-arm64-gnu': 4.22.4 - '@rollup/rollup-linux-arm64-musl': 4.22.4 - '@rollup/rollup-linux-powerpc64le-gnu': 4.22.4 - '@rollup/rollup-linux-riscv64-gnu': 4.22.4 - '@rollup/rollup-linux-s390x-gnu': 4.22.4 - '@rollup/rollup-linux-x64-gnu': 4.22.4 - '@rollup/rollup-linux-x64-musl': 4.22.4 - '@rollup/rollup-win32-arm64-msvc': 4.22.4 - '@rollup/rollup-win32-ia32-msvc': 4.22.4 - '@rollup/rollup-win32-x64-msvc': 4.22.4 + '@rollup/rollup-android-arm-eabi': 4.24.0 + '@rollup/rollup-android-arm64': 4.24.0 + '@rollup/rollup-darwin-arm64': 4.24.0 + '@rollup/rollup-darwin-x64': 4.24.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 + '@rollup/rollup-linux-arm-musleabihf': 4.24.0 + '@rollup/rollup-linux-arm64-gnu': 4.24.0 + '@rollup/rollup-linux-arm64-musl': 4.24.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 + '@rollup/rollup-linux-riscv64-gnu': 4.24.0 + '@rollup/rollup-linux-s390x-gnu': 4.24.0 + '@rollup/rollup-linux-x64-gnu': 4.24.0 + '@rollup/rollup-linux-x64-musl': 4.24.0 + '@rollup/rollup-win32-arm64-msvc': 4.24.0 + '@rollup/rollup-win32-ia32-msvc': 4.24.0 + '@rollup/rollup-win32-x64-msvc': 4.24.0 fsevents: 2.3.3 rrweb-cssom@0.7.1: {} @@ -6805,11 +6744,6 @@ snapshots: symbol-tree@3.2.4: {} - synckit@0.9.1: - dependencies: - '@pkgr/core': 0.1.1 - tslib: 2.7.0 - synckit@0.9.2: dependencies: '@pkgr/core': 0.1.1 @@ -6848,11 +6782,6 @@ snapshots: tinyexec@0.3.0: {} - tinyglobby@0.2.6: - dependencies: - fdir: 6.4.0(picomatch@4.0.2) - picomatch: 4.0.2 - tinyglobby@0.2.9: dependencies: fdir: 6.4.0(picomatch@4.0.2) @@ -6864,11 +6793,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.47: {} + tldts-core@6.1.51: {} - tldts@6.1.47: + tldts@6.1.51: dependencies: - tldts-core: 6.1.47 + tldts-core: 6.1.51 tmp@0.2.3: {} @@ -6889,7 +6818,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.47 + tldts: 6.1.51 tr46@1.0.1: dependencies: @@ -6905,9 +6834,9 @@ snapshots: trim-newlines@3.0.1: {} - ts-api-utils@1.3.0(typescript@5.6.2): + ts-api-utils@1.3.0(typescript@5.6.3): dependencies: - typescript: 5.6.2 + typescript: 5.6.3 ts-interface-checker@0.1.13: {} @@ -6918,7 +6847,7 @@ snapshots: tslib@2.7.0: {} - tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.2)(yaml@2.5.1): + tsup@8.3.0(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(typescript@5.6.3)(yaml@2.6.0): dependencies: bundle-require: 5.0.0(esbuild@0.23.1) cac: 6.7.14 @@ -6929,16 +6858,16 @@ snapshots: execa: 5.1.1 joycon: 3.1.1 picocolors: 1.1.0 - postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.5.1) + postcss-load-config: 6.0.1(jiti@1.21.6)(postcss@8.4.47)(tsx@4.19.1)(yaml@2.6.0) resolve-from: 5.0.0 - rollup: 4.22.4 + rollup: 4.24.0 source-map: 0.8.0-beta.0 sucrase: 3.35.0 - tinyglobby: 0.2.6 + tinyglobby: 0.2.9 tree-kill: 1.2.2 optionalDependencies: postcss: 8.4.47 - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - jiti - supports-color @@ -6974,18 +6903,18 @@ snapshots: typedarray@0.0.6: {} - typescript-eslint@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2): + typescript-eslint@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) - '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.2) + '@typescript-eslint/eslint-plugin': 8.8.1(@typescript-eslint/parser@8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.8.1(eslint@9.12.0(jiti@1.21.6))(typescript@5.6.3) optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 transitivePeerDependencies: - eslint - supports-color - typescript@5.6.2: {} + typescript@5.6.3: {} uglify-js@3.19.3: optional: true @@ -7027,9 +6956,9 @@ snapshots: untildify@4.0.0: {} - update-browserslist-db@1.1.0(browserslist@4.23.3): + update-browserslist-db@1.1.1(browserslist@4.24.0): dependencies: - browserslist: 4.23.3 + browserslist: 4.24.0 escalade: 3.2.0 picocolors: 1.1.0 @@ -7090,30 +7019,30 @@ snapshots: dependencies: esbuild: 0.21.5 postcss: 8.4.47 - rollup: 4.22.4 + rollup: 4.24.0 optionalDependencies: '@types/node': 20.16.11 fsevents: 2.3.3 - vitepress@1.4.0(@algolia/client-search@5.5.3)(@types/node@20.16.11)(postcss@8.4.47)(search-insights@2.17.2)(typescript@5.6.2): + vitepress@1.4.0(@algolia/client-search@4.24.0)(@types/node@20.16.11)(postcss@8.4.47)(search-insights@2.17.2)(typescript@5.6.3): dependencies: '@docsearch/css': 3.6.2 - '@docsearch/js': 3.6.2(@algolia/client-search@5.5.3)(search-insights@2.17.2) + '@docsearch/js': 3.6.2(@algolia/client-search@4.24.0)(search-insights@2.17.2) '@shikijs/core': 1.22.0 '@shikijs/transformers': 1.22.0 '@shikijs/types': 1.22.0 '@types/markdown-it': 14.1.2 - '@vitejs/plugin-vue': 5.1.4(vite@5.4.8(@types/node@20.16.11))(vue@3.5.11(typescript@5.6.2)) + '@vitejs/plugin-vue': 5.1.4(vite@5.4.8(@types/node@20.16.11))(vue@3.5.12(typescript@5.6.3)) '@vue/devtools-api': 7.4.6 - '@vue/shared': 3.5.11 - '@vueuse/core': 11.1.0(vue@3.5.11(typescript@5.6.2)) - '@vueuse/integrations': 11.1.0(focus-trap@7.6.0)(vue@3.5.11(typescript@5.6.2)) + '@vue/shared': 3.5.12 + '@vueuse/core': 11.1.0(vue@3.5.12(typescript@5.6.3)) + '@vueuse/integrations': 11.1.0(focus-trap@7.6.0)(vue@3.5.12(typescript@5.6.3)) focus-trap: 7.6.0 mark.js: 8.11.1 minisearch: 7.1.0 shiki: 1.22.0 vite: 5.4.8(@types/node@20.16.11) - vue: 3.5.11(typescript@5.6.2) + vue: 3.5.12(typescript@5.6.3) optionalDependencies: postcss: 8.4.47 transitivePeerDependencies: @@ -7155,7 +7084,7 @@ snapshots: '@vitest/utils': 2.1.2 chai: 5.1.1 debug: 4.3.7(supports-color@8.1.1) - magic-string: 0.30.11 + magic-string: 0.30.12 pathe: 1.1.2 std-env: 3.7.0 tinybench: 2.9.0 @@ -7182,26 +7111,26 @@ snapshots: vscode-uri@3.0.8: {} - vue-demi@0.14.10(vue@3.5.11(typescript@5.6.2)): + vue-demi@0.14.10(vue@3.5.12(typescript@5.6.3)): dependencies: - vue: 3.5.11(typescript@5.6.2) + vue: 3.5.12(typescript@5.6.3) - vue-tsc@2.1.6(typescript@5.6.2): + vue-tsc@2.1.6(typescript@5.6.3): dependencies: - '@volar/typescript': 2.4.5 - '@vue/language-core': 2.1.6(typescript@5.6.2) + '@volar/typescript': 2.4.6 + '@vue/language-core': 2.1.6(typescript@5.6.3) semver: 7.6.3 - typescript: 5.6.2 + typescript: 5.6.3 - vue@3.5.11(typescript@5.6.2): + vue@3.5.12(typescript@5.6.3): dependencies: - '@vue/compiler-dom': 3.5.11 - '@vue/compiler-sfc': 3.5.11 - '@vue/runtime-dom': 3.5.11 - '@vue/server-renderer': 3.5.11(vue@3.5.11(typescript@5.6.2)) - '@vue/shared': 3.5.11 + '@vue/compiler-dom': 3.5.12 + '@vue/compiler-sfc': 3.5.12 + '@vue/runtime-dom': 3.5.12 + '@vue/server-renderer': 3.5.12(vue@3.5.12(typescript@5.6.3)) + '@vue/shared': 3.5.12 optionalDependencies: - typescript: 5.6.2 + typescript: 5.6.3 w3c-xmlserializer@5.0.0: dependencies: @@ -7273,7 +7202,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.5.1: {} + yaml@2.6.0: {} yargs-parser@20.2.9: {} diff --git a/src/definitions/location.ts b/src/definitions/location.ts index 5aee4e79e3f..5b4a4bc33d1 100644 --- a/src/definitions/location.ts +++ b/src/definitions/location.ts @@ -8,7 +8,7 @@ export type LocationDefinition = LocaleEntry<{ * Postcodes patterns by state */ postcode_by_state: { - [state: string]: string; + [state: string]: string | string[]; }; /** @@ -36,6 +36,11 @@ export type LocationDefinition = LocaleEntry<{ */ city_suffix: string[]; + /** + * The names of all continents. + */ + continent: string[]; + /** * The names of all countries. */ diff --git a/src/internal/mersenne.ts b/src/internal/mersenne.ts index 351faa4e4b9..82a0915baf9 100644 --- a/src/internal/mersenne.ts +++ b/src/internal/mersenne.ts @@ -171,7 +171,7 @@ export class MersenneTwister19937 { this.initGenrand(19650218); let i = 1; let j = 0; - let k = this.N > keyLength ? this.N : keyLength; + let k = Math.max(this.N, keyLength); for (; k; k--) { // mt[i] = (mt[i] ^ ((mt[i-1] ^ (mt[i-1] >> 30)) * 1664525)) + init_key[j] + j; this.mt[i] = this.addition32( diff --git a/src/locales/en/location/continent.ts b/src/locales/en/location/continent.ts new file mode 100644 index 00000000000..379b460155e --- /dev/null +++ b/src/locales/en/location/continent.ts @@ -0,0 +1,9 @@ +export default [ + 'Africa', + 'Antarctica', + 'Asia', + 'Australia', + 'Europe', + 'North America', + 'South America', +]; diff --git a/src/locales/en/location/index.ts b/src/locales/en/location/index.ts index 7938321dcb7..64ca3268f7d 100644 --- a/src/locales/en/location/index.ts +++ b/src/locales/en/location/index.ts @@ -8,6 +8,7 @@ import city_name from './city_name'; import city_pattern from './city_pattern'; import city_prefix from './city_prefix'; import city_suffix from './city_suffix'; +import continent from './continent'; import country from './country'; import county from './county'; import direction from './direction'; @@ -26,6 +27,7 @@ const location: LocationDefinition = { city_pattern, city_prefix, city_suffix, + continent, country, county, direction, diff --git a/src/locales/en/vehicle/manufacturer.ts b/src/locales/en/vehicle/manufacturer.ts index 9de1e9c934b..ee13f841bff 100644 --- a/src/locales/en/vehicle/manufacturer.ts +++ b/src/locales/en/vehicle/manufacturer.ts @@ -2,11 +2,13 @@ export default [ 'Aston Martin', 'Audi', 'BMW', + 'BYD', 'Bentley', 'Bugatti', 'Cadillac', 'Chevrolet', 'Chrysler', + 'Citroën', 'Dodge', 'Ferrari', 'Fiat', @@ -22,13 +24,21 @@ export default [ 'Mazda', 'Mercedes Benz', 'Mini', + 'Mitsubishi', + 'NIO', 'Nissan', + 'Peugeot', 'Polestar', 'Porsche', + 'Renault', + 'Rivian', 'Rolls Royce', 'Smart', + 'Subaru', + 'Suzuki', 'Tesla', 'Toyota', + 'Vauxhall', 'Volkswagen', 'Volvo', ]; diff --git a/src/locales/en_US/location/postcode_by_state.ts b/src/locales/en_US/location/postcode_by_state.ts index 70b61700453..ba175dd0a0c 100644 --- a/src/locales/en_US/location/postcode_by_state.ts +++ b/src/locales/en_US/location/postcode_by_state.ts @@ -1,18 +1,54 @@ export default { AK: '{{number.int({"min": 99501,"max": 99950})}}', AL: '{{number.int({"min": 35004,"max": 36925})}}', - AR: '{{number.int({"min": 71601,"max": 72959})}}', + AR: [ + '{{number.int({"min": 71601,"max": 72642})}}', + '{{number.int({"min": 72644,"max": 72959})}}', + ], AZ: '{{number.int({"min": 85001,"max": 86556})}}', CA: '{{number.int({"min": 90001,"max": 96162})}}', CO: '{{number.int({"min": 80001,"max": 81658})}}', CT: '0{{number.int({"min": 6001,"max": 6389})}}', DC: '{{number.int({"min": 20001,"max": 20039})}}', DE: '{{number.int({"min": 19701,"max": 19980})}}', - FL: '{{number.int({"min": 32004,"max": 34997})}}', + FL: [ + '{{number.int({"min": 32003,"max": 32099})}}', + '{{number.int({"min": 32102,"max": 32198})}}', + '{{number.int({"min": 32201,"max": 32290})}}', + '{{number.int({"min": 32301,"max": 32399})}}', + '{{number.int({"min": 32401,"max": 32466})}}', + '{{number.int({"min": 32501,"max": 32592})}}', + '{{number.int({"min": 32601,"max": 32697})}}', + '{{number.int({"min": 32701,"max": 32799})}}', + '{{number.int({"min": 32801,"max": 32899})}}', + '{{number.int({"min": 32901,"max": 32978})}}', + '{{number.int({"min": 33001,"max": 33097})}}', + '{{number.int({"min": 33101,"max": 33199})}}', + '{{number.int({"min": 33206,"max": 33299})}}', + '{{number.int({"min": 33301,"max": 33394})}}', + '{{number.int({"min": 33401,"max": 33499})}}', + '{{number.int({"min": 33503,"max": 33598})}}', + '{{number.int({"min": 33601,"max": 33694})}}', + '{{number.int({"min": 33701,"max": 33786})}}', + '{{number.int({"min": 33801,"max": 33898})}}', + '{{number.int({"min": 33900,"max": 33994})}}', + '{{number.int({"min": 34101,"max": 34146})}}', + '{{number.int({"min": 34201,"max": 34295})}}', + '{{number.int({"min": 34420,"max": 34498})}}', + '{{number.int({"min": 34601,"max": 34698})}}', + '{{number.int({"min": 34705,"max": 34797})}}', + '{{number.int({"min": 34945,"max": 34997})}}', + ], GA: '{{number.int({"min": 30001,"max": 31999})}}', - HI: '{{number.int({"min": 96701,"max": 96898})}}', + HI: [ + '{{number.int({"min": 96701,"max": 96798})}}', + '{{number.int({"min": 96801,"max": 96898})}}', + ], IA: '{{number.int({"min": 50001,"max": 52809})}}', - ID: '{{number.int({"min": 83201,"max": 83876})}}', + ID: [ + '{{number.int({"min": 83201,"max": 83406})}}', + '{{number.int({"min": 83415,"max": 83876})}}', + ], IL: '{{number.int({"min": 60001,"max": 62999})}}', IN: '{{number.int({"min": 46001,"max": 47997})}}', KS: '{{number.int({"min": 66002,"max": 67954})}}', @@ -38,14 +74,17 @@ export default { OK: '{{number.int({"min": 73001,"max": 73199})}}', OR: '{{number.int({"min": 97001,"max": 97920})}}', PA: '{{number.int({"min": 15001,"max": 19640})}}', - PR: '00{{number.int({"min": 601,"max": 988})}}', + PR: [ + '00{{number.int({"min": 601,"max": 799})}}', + '00{{number.int({"min": 901,"max": 988})}}', + ], RI: '0{{number.int({"min": 2801,"max": 2940})}}', SC: '{{number.int({"min": 29001,"max": 29948})}}', SD: '{{number.int({"min": 57001,"max": 57799})}}', TN: '{{number.int({"min": 37010,"max": 38589})}}', TX: '{{number.int({"min": 75503,"max": 79999})}}', UT: '{{number.int({"min": 84001,"max": 84784})}}', - VA: '{{number.int({"min": 20040,"max": 20041})}}', + VA: '{{number.int({"min": 22201,"max": 24599})}}', VT: '0{{number.int({"min": 5001,"max": 5495})}}', WA: '{{number.int({"min": 98001,"max": 99403})}}', WI: '{{number.int({"min": 53001,"max": 54990})}}', diff --git a/src/modules/finance/index.ts b/src/modules/finance/index.ts index 4c84fe4c148..0e9a6883994 100644 --- a/src/modules/finance/index.ts +++ b/src/modules/finance/index.ts @@ -816,7 +816,9 @@ export class FinanceModule extends ModuleBase { } /** - * Generates a random iban. + * Generates a random IBAN. + * + * Please note that the generated IBAN might be invalid due to randomly generated bank codes/other country specific validation rules. * * @param options An options object. * @param options.formatted Return a formatted version of the generated IBAN. Defaults to `false`. diff --git a/src/modules/food/index.ts b/src/modules/food/index.ts index 0effaae6bcb..45b91f3047e 100644 --- a/src/modules/food/index.ts +++ b/src/modules/food/index.ts @@ -18,7 +18,9 @@ export class FoodModule extends ModuleBase { * @since 9.0.0 */ adjective(): string { - return this.faker.helpers.fake(this.faker.definitions.food.adjective); + return this.faker.helpers.arrayElement( + this.faker.definitions.food.adjective + ); } /** diff --git a/src/modules/git/index.ts b/src/modules/git/index.ts index 8f33f0c5484..22c848b8828 100644 --- a/src/modules/git/index.ts +++ b/src/modules/git/index.ts @@ -88,7 +88,7 @@ export class GitModule extends ModuleBase { const firstName = this.faker.person.firstName(); const lastName = this.faker.person.lastName(); const fullName = this.faker.person.fullName({ firstName, lastName }); - const username = this.faker.internet.userName({ firstName, lastName }); + const username = this.faker.internet.username({ firstName, lastName }); let user = this.faker.helpers.arrayElement([fullName, username]); const email = this.faker.internet.email({ firstName, lastName }); diff --git a/src/modules/image/index.ts b/src/modules/image/index.ts index 76aa759e7f0..67d0e2d8150 100644 --- a/src/modules/image/index.ts +++ b/src/modules/image/index.ts @@ -13,7 +13,7 @@ import { ModuleBase } from '../../internal/module-base'; * * For a random user avatar image, use [`avatar()`](https://fakerjs.dev/api/image.html#avatar). * - * This module previously also contained methods for specifically themed images like "fashion" or "food", but these are now deprecated. If you need more control over image type, you can request categorized images using [`urlLoremFlickr()`](https://fakerjs.dev/api/image.html#urlloremflickr), use an image provider directly or provide your own set of placeholder images. + * If you need more control over the content of the images, you can pass a `category` parameter e.g. `'cat'` or `'nature'` to [`urlLoremFlickr()`](https://fakerjs.dev/api/image.html#urlloremflickr) or simply use [`faker.helpers.arrayElement()`](https://fakerjs.dev/api/helpers.html#arrayelement) with your own array of image URLs. */ export class ImageModule extends ModuleBase { /** diff --git a/src/modules/internet/index.ts b/src/modules/internet/index.ts index a455135b00d..3e7759f29ff 100644 --- a/src/modules/internet/index.ts +++ b/src/modules/internet/index.ts @@ -1,4 +1,5 @@ import { FakerError } from '../../errors/faker-error'; +import { deprecated } from '../../internal/deprecated'; import { ModuleBase } from '../../internal/module-base'; import { charMapping } from './char-mappings'; import * as random_ua from './user-agent'; @@ -105,7 +106,7 @@ const ipv4Networks: Record = { * * ### Overview * - * For user accounts, you may need an [`email()`](https://fakerjs.dev/api/internet.html#email) and a [`password()`](https://fakerjs.dev/api/internet.html#password), as well as a ASCII [`userName()`](https://fakerjs.dev/api/internet.html#username) or Unicode [`displayName()`](https://fakerjs.dev/api/internet.html#displayname). Since the emails generated could coincidentally be real email addresses, you should not use these for sending real email addresses. If this is a concern, use [`exampleEmail()`](https://fakerjs.dev/api/internet.html#exampleemail) instead. + * For user accounts, you may need an [`email()`](https://fakerjs.dev/api/internet.html#email) and a [`password()`](https://fakerjs.dev/api/internet.html#password), as well as a ASCII [`username()`](https://fakerjs.dev/api/internet.html#username) or Unicode [`displayName()`](https://fakerjs.dev/api/internet.html#displayname). Since the emails generated could coincidentally be real email addresses, you should not use these for sending real email addresses. If this is a concern, use [`exampleEmail()`](https://fakerjs.dev/api/internet.html#exampleemail) instead. * * For websites, you can generate a [`domainName()`](https://fakerjs.dev/api/internet.html#domainname) or a full [`url()`](https://fakerjs.dev/api/internet.html#url). * @@ -169,7 +170,7 @@ export class InternetModule extends ModuleBase { allowSpecialCharacters = false, } = options; - let localPart: string = this.userName({ firstName, lastName }); + let localPart: string = this.username({ firstName, lastName }); // Strip any special characters from the local part of the email address // This could happen if invalid chars are passed in manually in the firstName/lastName localPart = localPart.replaceAll(/[^A-Za-z0-9._+-]+/g, ''); @@ -273,6 +274,8 @@ export class InternetModule extends ModuleBase { * faker.internet.userName({ firstName: '大羽', lastName: '陳' }) // 'hlzp8d.tpv45' - note neither name is used * * @since 2.0.1 + * + * @deprecated Use `faker.internet.username()` instead. */ userName( options: { @@ -289,6 +292,56 @@ export class InternetModule extends ModuleBase { */ lastName?: string; } = {} + ): string { + deprecated({ + deprecated: 'faker.internet.userName()', + proposed: 'faker.internet.username()', + since: '9.1.0', + until: '10.0.0', + }); + + return this.username(options); + } + + /** + * Generates a username using the given person's name as base. + * The resulting username may use neither, one or both of the names provided. + * This will always return a plain ASCII string. + * Some basic stripping of accents and transliteration of characters will be done. + * + * @param options An options object. + * @param options.firstName The optional first name to use. If not specified, a random one will be chosen. + * @param options.lastName The optional last name to use. If not specified, a random one will be chosen. + * + * @see faker.internet.displayName(): For generating an Unicode display name. + * + * @example + * faker.internet.username() // 'Nettie_Zboncak40' + * faker.internet.username({ firstName: 'Jeanne' }) // 'Jeanne98' + * faker.internet.username({ firstName: 'Jeanne' }) // 'Jeanne.Smith98' + * faker.internet.username({ firstName: 'Jeanne', lastName: 'Doe'}) // 'Jeanne_Doe98' + * faker.internet.username({ firstName: 'John', lastName: 'Doe' }) // 'John.Doe' + * faker.internet.username({ firstName: 'Hélene', lastName: 'Müller' }) // 'Helene_Muller11' + * faker.internet.username({ firstName: 'Фёдор', lastName: 'Достоевский' }) // 'Fedor.Dostoevskii50' + * faker.internet.username({ firstName: '大羽', lastName: '陳' }) // 'hlzp8d.tpv45' - note neither name is used + * + * @since 9.1.0 + */ + username( + options: { + /** + * The optional first name to use. + * + * @default faker.person.firstName() + */ + firstName?: string; + /** + * The optional last name to use. + * + * @default faker.person.lastName() + */ + lastName?: string; + } = {} ): string { const { firstName = this.faker.person.firstName(), @@ -348,7 +401,7 @@ export class InternetModule extends ModuleBase { * @param options.firstName The optional first name to use. If not specified, a random one will be chosen. * @param options.lastName The optional last name to use. If not specified, a random one will be chosen. * - * @see faker.internet.userName(): For generating a plain ASCII username. + * @see faker.internet.username(): For generating a plain ASCII username. * * @example * faker.internet.displayName() // 'Nettie_Zboncak40' diff --git a/src/modules/location/index.ts b/src/modules/location/index.ts index 4aabdd8db4a..4a49e029501 100644 --- a/src/modules/location/index.ts +++ b/src/modules/location/index.ts @@ -216,6 +216,20 @@ export class LocationModule extends ModuleBase { ); } + /** + * Returns a random continent name. + * + * @example + * faker.location.continent() // 'Asia' + * + * @since 9.1.0 + */ + continent(): string { + return this.faker.helpers.arrayElement( + this.faker.definitions.location.continent + ); + } + /** * Returns a random [ISO_3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) country code. * diff --git a/test/modules/__snapshots__/internet.spec.ts.snap b/test/modules/__snapshots__/internet.spec.ts.snap index 9ec2d26525f..a70d9afe80e 100644 --- a/test/modules/__snapshots__/internet.spec.ts.snap +++ b/test/modules/__snapshots__/internet.spec.ts.snap @@ -120,6 +120,22 @@ exports[`internet > 42 > userName > with firstName option 1`] = `"Jane_Wiegand59 exports[`internet > 42 > userName > with lastName option 1`] = `"Garnet_Doe"`; +exports[`internet > 42 > username > noArgs 1`] = `"Garnet.Reynolds-Miller15"`; + +exports[`internet > 42 > username > with Chinese names 1`] = `"hlzp8d.tpv"`; + +exports[`internet > 42 > username > with Cyrillic names 1`] = `"Fedor.Dostoevskii"`; + +exports[`internet > 42 > username > with Latin names 1`] = `"Jane.Doe"`; + +exports[`internet > 42 > username > with accented names 1`] = `"Helene.Muller"`; + +exports[`internet > 42 > username > with all option 1`] = `"Jane.Doe"`; + +exports[`internet > 42 > username > with firstName option 1`] = `"Jane_Wiegand59"`; + +exports[`internet > 42 > username > with lastName option 1`] = `"Garnet_Doe"`; + exports[`internet > 1211 > color > noArgs 1`] = `"#77721c"`; exports[`internet > 1211 > color > with all options 1`] = `"#a9a44e"`; @@ -240,6 +256,22 @@ exports[`internet > 1211 > userName > with firstName option 1`] = `"Jane99"`; exports[`internet > 1211 > userName > with lastName option 1`] = `"Tito_Doe"`; +exports[`internet > 1211 > username > noArgs 1`] = `"Tito67"`; + +exports[`internet > 1211 > username > with Chinese names 1`] = `"hlzp8d_tpv89"`; + +exports[`internet > 1211 > username > with Cyrillic names 1`] = `"Fedor_Dostoevskii89"`; + +exports[`internet > 1211 > username > with Latin names 1`] = `"Jane_Doe89"`; + +exports[`internet > 1211 > username > with accented names 1`] = `"Helene_Muller89"`; + +exports[`internet > 1211 > username > with all option 1`] = `"Jane_Doe89"`; + +exports[`internet > 1211 > username > with firstName option 1`] = `"Jane99"`; + +exports[`internet > 1211 > username > with lastName option 1`] = `"Tito_Doe"`; + exports[`internet > 1337 > color > noArgs 1`] = `"#211423"`; exports[`internet > 1337 > color > with all options 1`] = `"#534655"`; @@ -359,3 +391,19 @@ exports[`internet > 1337 > userName > with all option 1`] = `"Jane.Doe15"`; exports[`internet > 1337 > userName > with firstName option 1`] = `"Jane.Cronin45"`; exports[`internet > 1337 > userName > with lastName option 1`] = `"Devyn.Doe27"`; + +exports[`internet > 1337 > username > noArgs 1`] = `"Devyn.Gottlieb"`; + +exports[`internet > 1337 > username > with Chinese names 1`] = `"hlzp8d.tpv15"`; + +exports[`internet > 1337 > username > with Cyrillic names 1`] = `"Fedor.Dostoevskii15"`; + +exports[`internet > 1337 > username > with Latin names 1`] = `"Jane.Doe15"`; + +exports[`internet > 1337 > username > with accented names 1`] = `"Helene.Muller15"`; + +exports[`internet > 1337 > username > with all option 1`] = `"Jane.Doe15"`; + +exports[`internet > 1337 > username > with firstName option 1`] = `"Jane.Cronin45"`; + +exports[`internet > 1337 > username > with lastName option 1`] = `"Devyn.Doe27"`; diff --git a/test/modules/__snapshots__/location.spec.ts.snap b/test/modules/__snapshots__/location.spec.ts.snap index b53acbda355..a8d24e9a6ef 100644 --- a/test/modules/__snapshots__/location.spec.ts.snap +++ b/test/modules/__snapshots__/location.spec.ts.snap @@ -8,6 +8,8 @@ exports[`location > 42 > cardinalDirection > with abbreviated option 1`] = `"E"` exports[`location > 42 > city 1`] = `"Fort Moses"`; +exports[`location > 42 > continent 1`] = `"Asia"`; + exports[`location > 42 > country 1`] = `"Guinea"`; exports[`location > 42 > countryCode > noArgs 1`] = `"GY"`; @@ -144,6 +146,8 @@ exports[`location > 1211 > cardinalDirection > with abbreviated option 1`] = `"W exports[`location > 1211 > city 1`] = `"The Villages"`; +exports[`location > 1211 > continent 1`] = `"South America"`; + exports[`location > 1211 > country 1`] = `"Uganda"`; exports[`location > 1211 > countryCode > noArgs 1`] = `"UM"`; @@ -280,6 +284,8 @@ exports[`location > 1337 > cardinalDirection > with abbreviated option 1`] = `"E exports[`location > 1337 > city 1`] = `"East Duane"`; +exports[`location > 1337 > continent 1`] = `"Antarctica"`; + exports[`location > 1337 > country 1`] = `"Egypt"`; exports[`location > 1337 > countryCode > noArgs 1`] = `"EH"`; diff --git a/test/modules/__snapshots__/vehicle.spec.ts.snap b/test/modules/__snapshots__/vehicle.spec.ts.snap index c8164153099..9c5a6ebd5f3 100644 --- a/test/modules/__snapshots__/vehicle.spec.ts.snap +++ b/test/modules/__snapshots__/vehicle.spec.ts.snap @@ -6,13 +6,13 @@ exports[`vehicle > 42 > color 1`] = `"lime"`; exports[`vehicle > 42 > fuel 1`] = `"Electric"`; -exports[`vehicle > 42 > manufacturer 1`] = `"Ford"`; +exports[`vehicle > 42 > manufacturer 1`] = `"Hyundai"`; exports[`vehicle > 42 > model 1`] = `"Durango"`; exports[`vehicle > 42 > type 1`] = `"Extended Cab Pickup"`; -exports[`vehicle > 42 > vehicle 1`] = `"Ford Wrangler"`; +exports[`vehicle > 42 > vehicle 1`] = `"Hyundai Wrangler"`; exports[`vehicle > 42 > vin 1`] = `"CYRK551VKPAZ82113"`; @@ -42,13 +42,13 @@ exports[`vehicle > 1337 > color 1`] = `"indigo"`; exports[`vehicle > 1337 > fuel 1`] = `"Electric"`; -exports[`vehicle > 1337 > manufacturer 1`] = `"Dodge"`; +exports[`vehicle > 1337 > manufacturer 1`] = `"Ferrari"`; exports[`vehicle > 1337 > model 1`] = `"Challenger"`; exports[`vehicle > 1337 > type 1`] = `"Coupe"`; -exports[`vehicle > 1337 > vehicle 1`] = `"Dodge Aventador"`; +exports[`vehicle > 1337 > vehicle 1`] = `"Ferrari Aventador"`; exports[`vehicle > 1337 > vin 1`] = `"859FAH8ZR3JL19477"`; diff --git a/test/modules/internet.spec.ts b/test/modules/internet.spec.ts index 04b255fd48f..f96671eb661 100644 --- a/test/modules/internet.spec.ts +++ b/test/modules/internet.spec.ts @@ -66,6 +66,20 @@ describe('internet', () => { .it('with Chinese names', { firstName: '大羽', lastName: '陳' }); }); + t.describe('username', (t) => { + t.it('noArgs') + .it('with firstName option', { firstName: 'Jane' }) + .it('with lastName option', { lastName: 'Doe' }) + .it('with all option', { firstName: 'Jane', lastName: 'Doe' }) + .it('with Latin names', { firstName: 'Jane', lastName: 'Doe' }) + .it('with accented names', { firstName: 'Hélene', lastName: 'Müller' }) + .it('with Cyrillic names', { + firstName: 'Фёдор', + lastName: 'Достоевский', + }) + .it('with Chinese names', { firstName: '大羽', lastName: '陳' }); + }); + t.describe('displayName', (t) => { t.it('noArgs') .it('with firstName option', { firstName: 'Jane' }) @@ -347,8 +361,80 @@ describe('internet', () => { }); describe('userName()', () => { + it('should return a random userName', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName(); + + expect(userName).toBeTruthy(); + expect(userName).toBeTypeOf('string'); + expect(userName).toMatch(/\w/); + }); + + it('should return a random userName with given firstName', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ firstName: 'Aiden' }); + + expect(userName).toBeTruthy(); + expect(userName).toBeTypeOf('string'); + expect(userName).toMatch(/\w/); + expect(userName).includes('Aiden'); + }); + + it('should return a random userName with given firstName and lastName', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ + firstName: 'Aiden', + lastName: 'Harann', + }); + + expect(userName).toBeTruthy(); + expect(userName).toBeTypeOf('string'); + expect(userName).includes('Aiden'); + expect(userName).includes('Harann'); + expect(userName).toMatch(/^Aiden[._]Harann\d*/); + }); + + it('should strip accents', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ + firstName: 'Adèle', + lastName: 'Smith', + }); + expect(userName).includes('Adele'); + expect(userName).includes('Smith'); + }); + + it('should transliterate Cyrillic', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ + firstName: 'Амос', + lastName: 'Васильев', + }); + expect(userName).includes('Amos'); + }); + + it('should provide a fallback for Chinese etc', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ + firstName: '大羽', + lastName: '陳', + }); + expect(userName).includes('hlzp8d'); + }); + + it('should provide a fallback special unicode characters', () => { + // eslint-disable-next-line @typescript-eslint/no-deprecated + const userName = faker.internet.userName({ + firstName: '🐼', + lastName: '❤️', + }); + expect(userName).includes('2qt8'); + }); + }); + + describe('username()', () => { it('should return a random username', () => { - const username = faker.internet.userName(); + const username = faker.internet.username(); expect(username).toBeTruthy(); expect(username).toBeTypeOf('string'); @@ -356,7 +442,7 @@ describe('internet', () => { }); it('should return a random username with given firstName', () => { - const username = faker.internet.userName({ firstName: 'Aiden' }); + const username = faker.internet.username({ firstName: 'Aiden' }); expect(username).toBeTruthy(); expect(username).toBeTypeOf('string'); @@ -365,7 +451,7 @@ describe('internet', () => { }); it('should return a random username with given firstName and lastName', () => { - const username = faker.internet.userName({ + const username = faker.internet.username({ firstName: 'Aiden', lastName: 'Harann', }); @@ -378,7 +464,7 @@ describe('internet', () => { }); it('should strip accents', () => { - const username = faker.internet.userName({ + const username = faker.internet.username({ firstName: 'Adèle', lastName: 'Smith', }); @@ -387,7 +473,7 @@ describe('internet', () => { }); it('should transliterate Cyrillic', () => { - const username = faker.internet.userName({ + const username = faker.internet.username({ firstName: 'Амос', lastName: 'Васильев', }); @@ -395,7 +481,7 @@ describe('internet', () => { }); it('should provide a fallback for Chinese etc', () => { - const username = faker.internet.userName({ + const username = faker.internet.username({ firstName: '大羽', lastName: '陳', }); @@ -403,7 +489,7 @@ describe('internet', () => { }); it('should provide a fallback special unicode characters', () => { - const username = faker.internet.userName({ + const username = faker.internet.username({ firstName: '🐼', lastName: '❤️', }); diff --git a/test/modules/location.spec.ts b/test/modules/location.spec.ts index 1291efd31fd..2be7c4896a3 100644 --- a/test/modules/location.spec.ts +++ b/test/modules/location.spec.ts @@ -77,6 +77,8 @@ describe('location', () => { t.it('country'); + t.it('continent'); + t.describe('countryCode', (t) => { t.it('noArgs') .it('with string alpha-2', 'alpha-2') @@ -145,6 +147,16 @@ describe('location', () => { describe.each(times(NON_SEEDED_BASED_RUN).map(() => faker.seed()))( 'random seeded tests for seed %i', () => { + describe('continent()', () => { + it('returns random continent', () => { + const actual = faker.location.continent(); + + expect(actual).toBeTruthy(); + expect(actual).toBeTypeOf('string'); + expect(faker.definitions.location.continent).toContain(actual); + }); + }); + describe('countryCode()', () => { it('returns random alpha-2 countryCode', () => { const countryCode = faker.location.countryCode('alpha-2'); diff --git a/test/scripts/apidocs/verify-jsdoc-tags.spec.ts b/test/scripts/apidocs/verify-jsdoc-tags.spec.ts index 753ef9b3ce9..0456d8ee477 100644 --- a/test/scripts/apidocs/verify-jsdoc-tags.spec.ts +++ b/test/scripts/apidocs/verify-jsdoc-tags.spec.ts @@ -36,6 +36,11 @@ function resolvePathToMethodFile( signature: number ): string { const dir = resolveDirToModule(moduleName); + // TODO @ST-DDT 2024-09-23: Remove this in v10 + if (methodName === 'userName') { + methodName = 'userNameDeprecated'; + } + return resolve(dir, `${methodName}_${signature}.ts`); }