diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6245cd6825f..5f0fe46f37e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -37,7 +37,7 @@ importers: version: 2.1.7(vitest@2.1.7) '@vitest/eslint-plugin': specifier: 1.1.13 - version: 1.1.13(@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)(vitest@2.1.7) + version: 1.1.13(@typescript-eslint/utils@8.18.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)(vitest@2.1.7) '@vitest/ui': specifier: 2.1.7 version: 2.1.7(vitest@2.1.7) @@ -112,7 +112,7 @@ importers: version: 13.12.0 vitepress: specifier: 1.5.0 - version: 1.5.0(@algolia/client-search@5.15.0)(@types/node@22.10.1)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.2) + version: 1.5.0(@algolia/client-search@5.17.1)(@types/node@22.10.1)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.2) vitest: specifier: 2.1.7 version: 2.1.7(@types/node@22.10.1)(@vitest/ui@2.1.7)(jsdom@25.0.1) @@ -145,56 +145,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.15.0': - resolution: {integrity: sha512-FaEM40iuiv1mAipYyiptP4EyxkJ8qHfowCpEeusdHUC4C7spATJYArD2rX3AxkVeREkDIgYEOuXcwKUbDCr7Nw==} + '@algolia/client-abtesting@5.17.1': + resolution: {integrity: sha512-Os/xkQbDp5A5RdGYq1yS3fF69GoBJH5FIfrkVh+fXxCSe714i1Xdl9XoXhS4xG76DGKm6EFMlUqP024qjps8cg==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.15.0': - resolution: {integrity: sha512-lho0gTFsQDIdCwyUKTtMuf9nCLwq9jOGlLGIeQGKDxXF7HbiAysFIu5QW/iQr1LzMgDyM9NH7K98KY+BiIFriQ==} + '@algolia/client-analytics@5.17.1': + resolution: {integrity: sha512-WKpGC+cUhmdm3wndIlTh8RJXoVabUH+4HrvZHC4hXtvCYojEXYeep8RZstatwSZ7Ocg6Y2u67bLw90NEINuYEw==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.15.0': - resolution: {integrity: sha512-IofrVh213VLsDkPoSKMeM9Dshrv28jhDlBDLRcVJQvlL8pzue7PEB1EZ4UoJFYS3NSn7JOcJ/V+olRQzXlJj1w==} + '@algolia/client-common@5.17.1': + resolution: {integrity: sha512-5rb5+yPIie6912riAypTSyzbE23a7UM1UpESvD8GEPI4CcWQvA9DBlkRNx9qbq/nJ5pvv8VjZjUxJj7rFkzEAA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.15.0': - resolution: {integrity: sha512-bDDEQGfFidDi0UQUCbxXOCdphbVAgbVmxvaV75cypBTQkJ+ABx/Npw7LkFGw1FsoVrttlrrQbwjvUB6mLVKs/w==} + '@algolia/client-insights@5.17.1': + resolution: {integrity: sha512-nb/tfwBMn209TzFv1DDTprBKt/wl5btHVKoAww9fdEVdoKK02R2KAqxe5tuXLdEzAsS+LevRyOM/YjXuLmPtjQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.15.0': - resolution: {integrity: sha512-LfaZqLUWxdYFq44QrasCDED5bSYOswpQjSiIL7Q5fYlefAAUO95PzBPKCfUhSwhb4rKxigHfDkd81AvEicIEoA==} + '@algolia/client-personalization@5.17.1': + resolution: {integrity: sha512-JuNlZe1SdW9KbV0gcgdsiVkFfXt0mmPassdS3cBSGvZGbPB9JsHthD719k5Y6YOY4dGvw1JmC1i9CwCQHAS8hg==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.15.0': - resolution: {integrity: sha512-wu8GVluiZ5+il8WIRsGKu8VxMK9dAlr225h878GGtpTL6VBvwyJvAyLdZsfFIpY0iN++jiNb31q2C1PlPL+n/A==} + '@algolia/client-query-suggestions@5.17.1': + resolution: {integrity: sha512-RBIFIv1QE3IlAikJKWTOpd6pwE4d2dY6t02iXH7r/SLXWn0HzJtsAPPeFg/OKkFvWAXt0H7In2/Mp7a1/Dy2pw==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.15.0': - resolution: {integrity: sha512-Z32gEMrRRpEta5UqVQA612sLdoqY3AovvUPClDfMxYrbdDAebmGDVPtSogUba1FZ4pP5dx20D3OV3reogLKsRA==} + '@algolia/client-search@5.17.1': + resolution: {integrity: sha512-bd5JBUOP71kPsxwDcvOxqtqXXVo/706NFifZ/O5Rx5GB8ZNVAhg4l7aGoT6jBvEfgmrp2fqPbkdIZ6JnuOpGcw==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.15.0': - resolution: {integrity: sha512-MkqkAxBQxtQ5if/EX2IPqFA7LothghVyvPoRNA/meS2AW2qkHwcxjuiBxv4H6mnAVEPfJlhu9rkdVz9LgCBgJg==} + '@algolia/ingestion@1.17.1': + resolution: {integrity: sha512-T18tvePi1rjRYcIKhd82oRukrPWHxG/Iy1qFGaxCplgRm9Im5z96qnYOq75MSKGOUHkFxaBKJOLmtn8xDR+Mcw==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.15.0': - resolution: {integrity: sha512-QPrFnnGLMMdRa8t/4bs7XilPYnoUXDY8PMQJ1sf9ZFwhUysYYhQNX34/enoO0LBjpoOY6rLpha39YQEFbzgKyQ==} + '@algolia/monitoring@1.17.1': + resolution: {integrity: sha512-gDtow+AUywTehRP8S1tWKx2IvhcJOxldAoqBxzN3asuQobF7er5n72auBeL++HY4ImEuzMi7PDOA/Iuwxs2IcA==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.15.0': - resolution: {integrity: sha512-5eupMwSqMLDObgSMF0XG958zR6GJP3f7jHDQ3/WlzCM9/YIJiWIUoJFGsko9GYsA5xbLDHE/PhWtq4chcCdaGQ==} + '@algolia/recommend@5.17.1': + resolution: {integrity: sha512-2992tTHkRe18qmf5SP57N78kN1D3e5t4PO1rt10sJncWtXBZWiNOK6K/UcvWsFbNSGAogFcIcvIMAl5mNp6RWA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.15.0': - resolution: {integrity: sha512-Po/GNib6QKruC3XE+WKP1HwVSfCDaZcXu48kD+gwmtDlqHWKc7Bq9lrS0sNZ456rfCKhXksOmMfUs4wRM/Y96w==} + '@algolia/requester-browser-xhr@5.17.1': + resolution: {integrity: sha512-XpKgBfyczVesKgr7DOShNyPPu5kqlboimRRPjdqAw5grSyHhCmb8yoTIKy0TCqBABZeXRPMYT13SMruUVRXvHA==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.15.0': - resolution: {integrity: sha512-rOZ+c0P7ajmccAvpeeNrUmEKoliYFL8aOR5qGW5pFq3oj3Iept7Y5mEtEsOBYsRt6qLnaXn4zUKf+N8nvJpcIw==} + '@algolia/requester-fetch@5.17.1': + resolution: {integrity: sha512-EhUomH+DZP5vb6DnEjT0GvXaXBSwzZnuU6hPGNU1EYKRXDouRjII/bIWpVjt7ycMgL2D2oQruqDh6rAWUhQwRw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.15.0': - resolution: {integrity: sha512-b1jTpbFf9LnQHEJP5ddDJKE2sAlhYd7EVSOWgzo/27n/SfCoHfqD0VWntnWYD83PnOKvfe8auZ2+xCb0TXotrQ==} + '@algolia/requester-node-http@5.17.1': + resolution: {integrity: sha512-PSnENJtl4/wBWXlGyOODbLYm6lSiFqrtww7UpQRCJdsHXlJKF8XAP6AME8NxvbE0Qo/RJUxK0mvyEh9sQcx6bg==} engines: {node: '>= 14.0.0'} '@ampproject/remapping@2.3.0': @@ -229,8 +229,8 @@ packages: resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==} engines: {node: '>=0.1.90'} - '@cypress/request@3.0.6': - resolution: {integrity: sha512-fi0eVdCOtKu5Ed6+E8mYxUF6ZTFJDZvHogCBelM0xVXmrDEkyM22gRArQzq1YcHPm1V47Vf/iAD+WgVdUlJCGg==} + '@cypress/request@3.0.7': + resolution: {integrity: sha512-LzxlLEMbBOPYB85uXrDqvD4MgcenjRBLIns3zyhx7vTPj/0u2eQhzXvPiGcaJrV38Q9dbkExWp6cOHPJ+EtFYg==} engines: {node: '>= 6'} '@cypress/xvfb@1.2.4': @@ -756,8 +756,8 @@ packages: resolution: {integrity: sha512-H9XAx3hc0BQHY6l+IFSWHDySypcXsvsuLhgYLUGywmJ5pswRVQJUHpOsobnLYp2ZUaUlKiKDrgWWhosOwAEM8Q==} engines: {node: '>=6.9.0'} - '@iconify-json/simple-icons@1.2.14': - resolution: {integrity: sha512-zLqb48pM1B5vegMBDouyv7FzrROV5HRIjDpl+/PKjY3P7AeSySaOeT6mzutF6hDZCJvn1J7qQ7lug3FOgegiiA==} + '@iconify-json/simple-icons@1.2.15': + resolution: {integrity: sha512-4vxMQwkjsbjVIVGsPjKBnLMqAXu4wSlHmeN35KaJLK0UJNUj/ef6ES5c4bT/U4bSZjD2oZqOjOWTPD+HCrSUkg==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -770,8 +770,8 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -906,23 +906,23 @@ packages: cpu: [x64] os: [win32] - '@shikijs/core@1.24.0': - resolution: {integrity: sha512-6pvdH0KoahMzr6689yh0QJ3rCgF4j1XsXRHNEeEN6M4xJTfQ6QPWrmHzIddotg+xPJUPEPzYzYCKzpYyhTI6Gw==} + '@shikijs/core@1.24.2': + resolution: {integrity: sha512-BpbNUSKIwbKrRRA+BQj0BEWSw+8kOPKDJevWeSE/xIqGX7K0xrCZQ9kK0nnEQyrzsUoka1l81ZtJ2mGaCA32HQ==} - '@shikijs/engine-javascript@1.24.0': - resolution: {integrity: sha512-ZA6sCeSsF3Mnlxxr+4wGEJ9Tto4RHmfIS7ox8KIAbH0MTVUkw3roHPHZN+LlJMOHJJOVupe6tvuAzRpN8qK1vA==} + '@shikijs/engine-javascript@1.24.2': + resolution: {integrity: sha512-EqsmYBJdLEwEiO4H+oExz34a5GhhnVp+jH9Q/XjPjmBPc6TE/x4/gD0X3i0EbkKKNqXYHHJTJUpOLRQNkEzS9Q==} - '@shikijs/engine-oniguruma@1.24.0': - resolution: {integrity: sha512-Eua0qNOL73Y82lGA4GF5P+G2+VXX9XnuUxkiUuwcxQPH4wom+tE39kZpBFXfUuwNYxHSkrSxpB1p4kyRW0moSg==} + '@shikijs/engine-oniguruma@1.24.2': + resolution: {integrity: sha512-ZN6k//aDNWRJs1uKB12pturKHh7GejKugowOFGAuG7TxDRLod1Bd5JhpOikOiFqPmKjKEPtEA6mRCf7q3ulDyQ==} - '@shikijs/transformers@1.24.0': - resolution: {integrity: sha512-Qf/hby+PRPkoHncjYnJf5svK1aCsOUtQhuLzKPnmeXJtuUZCmbH0pTpdNtXe9tgln/RHlyRJnv7q46HHS1sO0Q==} + '@shikijs/transformers@1.24.2': + resolution: {integrity: sha512-cIwn8YSwO3bsWKJ+pezcXY1Vq0BVwvuLes1TZSC5+Awi6Tsfqhf3vBahOIqZK1rraMKOti2VEAEF/95oXMig1w==} - '@shikijs/types@1.24.0': - resolution: {integrity: sha512-aptbEuq1Pk88DMlCe+FzXNnBZ17LCiLIGWAeCWhoFDzia5Q5Krx3DgnULLiouSdd6+LUM39XwXGppqYE0Ghtug==} + '@shikijs/types@1.24.2': + resolution: {integrity: sha512-bdeWZiDtajGLG9BudI0AHet0b6e7FbR0EsE4jpGaI0YwHm/XJunI9+3uZnzFtX65gsyJ6ngCIWUfA4NWRPnBkQ==} - '@shikijs/vscode-textmate@9.3.0': - resolution: {integrity: sha512-jn7/7ky30idSkd/O5yDBfAnVt+JJpepofP/POZ1iMOxK59cOfqIgg/Dj0eFsjOTMw+4ycJN0uhZH/Eb0bs/EUA==} + '@shikijs/vscode-textmate@9.3.1': + resolution: {integrity: sha512-79QfK1393x9Ho60QFyLti+QfdJzRQCVLFb97kOIV7Eo9vQU/roINgk7m24uv0a7AUvN//RDH36FLjjK48v0s9g==} '@stylistic/eslint-plugin@2.11.0': resolution: {integrity: sha512-PNRHbydNG5EH8NK4c+izdJlxajIR6GxcUhzsYNRsn6Myep4dsZt0qFCz3rCPnkvgO5FYibDcMqgNHUT+zvjYZw==} @@ -1018,8 +1018,8 @@ packages: resolution: {integrity: sha512-mwsZWubQvBki2t5565uxF0EYvG+FwdFb8bMtDuGQLdCCnGPrDEDvm1gtfynuKlnpzeBRqdFCkMf9jg1fnAK8sg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/scope-manager@8.17.0': - resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/type-utils@8.16.0': @@ -1036,8 +1036,8 @@ packages: resolution: {integrity: sha512-NzrHj6thBAOSE4d9bsuRNMvk+BvaQvmY4dDglgkgGC0EW/tB3Kelnp3tAKH87GEwzoxgeQn9fNGRyFJM/xd+GQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/types@8.17.0': - resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@8.16.0': @@ -1049,14 +1049,11 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.17.0': - resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/utils@8.16.0': resolution: {integrity: sha512-C1zRy/mOL8Pj157GiX4kaw7iyRLKfJXBR3L82hk5kS/GyHcOFmy4YUq/zfZti72I9wnuQtA/+xzft4wCC8PJdA==} @@ -1068,22 +1065,19 @@ packages: typescript: optional: true - '@typescript-eslint/utils@8.17.0': - resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} + '@typescript-eslint/utils@8.18.0': + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/visitor-keys@8.16.0': resolution: {integrity: sha512-pq19gbaMOmFE3CbL0ZB8J8BFCo2ckfHBfaIsaOZgBIF4EoISJIdLX5xRhd0FGB0LlHReNRuzoJoMGpTjq8F2CQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/visitor-keys@8.17.0': - resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.2.1': @@ -1155,14 +1149,14 @@ packages: '@vitest/utils@2.1.7': resolution: {integrity: sha512-7gUdvIzCCuIrMZu0WHTvDJo8C1NsUtOqmwmcS3bRHUcfHemj29wmkzLVNuWQD7WHoBD/+I7WIgrnzt7kxR54ow==} - '@volar/language-core@2.4.10': - resolution: {integrity: sha512-hG3Z13+nJmGaT+fnQzAkS0hjJRa2FCeqZt6Bd+oGNhUkQ+mTFsDETg5rqUTxyzIh5pSOGY7FHCWUS8G82AzLCA==} + '@volar/language-core@2.4.11': + resolution: {integrity: sha512-lN2C1+ByfW9/JRPpqScuZt/4OrUUse57GLI6TbLgTIqBVemdl1wNcZ1qYGEo2+Gw8coYLgCy7SuKqn6IrQcQgg==} - '@volar/source-map@2.4.10': - resolution: {integrity: sha512-OCV+b5ihV0RF3A7vEvNyHPi4G4kFa6ukPmyVocmqm5QzOd8r5yAtiNvaPEjl8dNvgC/lj4JPryeeHLdXd62rWA==} + '@volar/source-map@2.4.11': + resolution: {integrity: sha512-ZQpmafIGvaZMn/8iuvCFGrW3smeqkq/IIh9F1SdSx9aUl0J4Iurzd6/FhmjNO5g2ejF3rT45dKskgXWiofqlZQ==} - '@volar/typescript@2.4.10': - resolution: {integrity: sha512-F8ZtBMhSXyYKuBfGpYwqA5rsONnOwAVvjyE7KPYJ7wgZqo2roASqNWUnianOomJX5u1cxeRooHV59N0PhvEOgw==} + '@volar/typescript@2.4.11': + resolution: {integrity: sha512-2DT+Tdh88Spp5PyPbqhyoYavYCPDsqbHLFwcUI9K1NlY1YgUJvujGdrqUp0zWxnW7KWNTr3xSpMuv2WnaTKDAw==} '@vue/compiler-core@3.5.13': resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} @@ -1179,14 +1173,14 @@ packages: '@vue/compiler-vue2@2.7.16': resolution: {integrity: sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==} - '@vue/devtools-api@7.6.7': - resolution: {integrity: sha512-PV4I31WaV2rfA8RGauM+69uFEzWkqtP561RiLU2wK+Ce85u3zyKW3aoESlLCNzkc4y0JaJyskH6zAE3xWOP8+Q==} + '@vue/devtools-api@7.6.8': + resolution: {integrity: sha512-ma6dY/sZR36zALVsV1W7eC57c6IJPXsy8SNgZn1PLVWU4z4dPn5TIBmnF4stmdJ4sQcixqKaQ8pwjbMPzEZwiA==} - '@vue/devtools-kit@7.6.7': - resolution: {integrity: sha512-V8/jrXY/swHgnblABG9U4QCbE60c6RuPasmv2d9FvVqc5d94t1vDiESuvRmdNJBdWz4/D3q6ffgyAfRVjwHYEw==} + '@vue/devtools-kit@7.6.8': + resolution: {integrity: sha512-JhJ8M3sPU+v0P2iZBF2DkdmR9L0dnT5RXJabJqX6o8KtFs3tebdvfoXV2Dm3BFuqeECuMJIfF1aCzSt+WQ4wrw==} - '@vue/devtools-shared@7.6.7': - resolution: {integrity: sha512-QggO6SviAsolrePAXZ/sA1dSicSPt4TueZibCvydfhNDieL1lAuyMTgQDGst7TEvMGb4vgYv2I+1sDkO4jWNnw==} + '@vue/devtools-shared@7.6.8': + resolution: {integrity: sha512-9MBPO5Z3X1nYGFqTJyohl6Gmf/J7UNN1oicHdyzBVZP4jnhZ4c20MgtaHDIzWmHDHCMYVS5bwKxT3jxh7gOOKA==} '@vue/language-core@2.1.10': resolution: {integrity: sha512-DAI289d0K3AB5TUG3xDp9OuQ71CnrujQwJrQnfuZDwo6eGNf0UoRlPuaVNO+Zrn65PC3j0oB2i7mNmVPggeGeQ==} @@ -1300,8 +1294,8 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - algoliasearch@5.15.0: - resolution: {integrity: sha512-Yf3Swz1s63hjvBVZ/9f2P1Uu48GjmjCN+Esxb6MAONMGtZB1fRX8/S1AhUTtsuTlcGovbYLxpHgc7wEzstDZBw==} + algoliasearch@5.17.1: + resolution: {integrity: sha512-3CcbT5yTWJDIcBe9ZHgsPi184SkT1kyZi3GWlQU5EFgvq1V73X2sqHRkPCQMe0RA/uvZbB+1sFeAk73eWygeLg==} engines: {node: '>= 14.0.0'} alien-signals@0.2.2: @@ -1414,8 +1408,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.3: + resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1446,12 +1440,12 @@ packages: resolution: {integrity: sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ==} engines: {node: '>=6'} - call-bind-apply-helpers@1.0.0: - resolution: {integrity: sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} - call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} callsites@3.1.0: @@ -1466,8 +1460,8 @@ packages: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} - caniuse-lite@1.0.30001687: - resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + caniuse-lite@1.0.30001688: + resolution: {integrity: sha512-Nmqpru91cuABu/DTCXbM2NSRHzM2uVHfPnhJ/1zEAJx/ILBRVmz3pzH4N7DZqbdG0gWClsCC05Oj0mJ/1AWMbA==} caseless@0.12.0: resolution: {integrity: sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==} @@ -1756,10 +1750,6 @@ packages: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} @@ -1818,8 +1808,8 @@ packages: ecc-jsbn@0.1.2: resolution: {integrity: sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==} - electron-to-chromium@1.5.71: - resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + electron-to-chromium@1.5.73: + resolution: {integrity: sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg==} emoji-regex-xs@1.0.0: resolution: {integrity: sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==} @@ -1855,6 +1845,10 @@ packages: es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + esbuild@0.21.5: resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} engines: {node: '>=12'} @@ -2093,8 +2087,8 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.5: - resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + get-intrinsic@1.2.6: + resolution: {integrity: sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==} engines: {node: '>= 0.4'} get-pkg-repo@4.2.1: @@ -2190,9 +2184,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -2201,8 +2192,8 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} - hast-util-to-html@9.0.3: - resolution: {integrity: sha512-M17uBDzMJ9RPCqLMO92gNNUDuBSq10a25SDBI08iCCxmorf4Yy6sYHK57n9WAbRAAaU+DuR4W6GN9K4DFZesYg==} + hast-util-to-html@9.0.4: + resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -2290,8 +2281,8 @@ packages: resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==} engines: {node: '>=6'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.0: + resolution: {integrity: sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -2423,8 +2414,8 @@ packages: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -2552,8 +2543,8 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} - magic-string@0.30.14: - resolution: {integrity: sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==} + magic-string@0.30.15: + resolution: {integrity: sha512-zXeaYRgZ6ldS1RJJUrMrYgNJ4fdwnyI6tVqoiIhyCyv5IVTK9BU8Ic2l253GGETQHxI4HNUwhJ3fjDhKqEoaAw==} magicast@0.3.5: resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} @@ -2573,6 +2564,10 @@ packages: mark.js@8.11.1: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} + math-intrinsics@1.0.0: + resolution: {integrity: sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA==} + engines: {node: '>= 0.4'} + mdast-util-to-hast@13.2.0: resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} @@ -2672,8 +2667,8 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - nanospinner@1.2.0: - resolution: {integrity: sha512-dGxYcEj8YhuxjVO3PYmnj1nBhtwUkvuwYbLl/MduBPmQUPy3xBtG/ScJgqZgntQkX44UQaCSlFeW4rS5fUR/Sw==} + nanospinner@1.2.2: + resolution: {integrity: sha512-Zt/AmG6qRU3e+WnzGGLuMCEAO/dAu45stNbHY223tUxldaDAeE+FxSPsd9Q+j+paejmm0ZbrNVs5Sraqy3dRxA==} natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -2681,8 +2676,8 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} @@ -2893,8 +2888,8 @@ packages: resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} engines: {node: ^10 || ^12 || >=14} - preact@10.25.1: - resolution: {integrity: sha512-frxeZV2vhQSohQwJ7FvlqC40ze89+8friponWUFeVEkaCfhC6Eu4V0iND5C9CXz8JLndV07QRDeXzH1+Anz5Og==} + preact@10.25.2: + resolution: {integrity: sha512-GEts1EH3oMnqdOIeXhlbBSddZ9nrINd070WBOiPO2ous1orrKGUM4SMDbwyjSWD1iMS2dBvaDjAa5qUhz3TXqw==} prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} @@ -2951,8 +2946,8 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - qs@6.13.0: - resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} + qs@6.13.1: + resolution: {integrity: sha512-EJPeIn0CYrGu+hli1xilKAPXODtJ12T0sP63Ijx2/khC2JtuaN3JyNIpvmnkmaEtha9ocbG4A4cMcr+TvqvwQg==} engines: {node: '>=0.6'} queue-microtask@1.2.3: @@ -3032,8 +3027,8 @@ packages: resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.9: + resolution: {integrity: sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A==} hasBin: true restore-cursor@3.1.0: @@ -3093,10 +3088,6 @@ packages: engines: {node: '>=10'} hasBin: true - set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} - shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -3109,11 +3100,23 @@ packages: resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} engines: {node: '>= 0.4'} - shiki@1.24.0: - resolution: {integrity: sha512-qIneep7QRwxRd5oiHb8jaRzH15V/S8F3saCXOdjwRLgozZJr5x2yeBhQtqkO3FSzQDwYEFAYuifg4oHjpDghrg==} + shiki@1.24.2: + resolution: {integrity: sha512-TR1fi6mkRrzW+SKT5G6uKuc32Dj2EEa7Kj0k8kGqiBINb+C1TiflVOiT9ta6GqOJtC4fraxO5SLUaKBcSY38Fg==} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -3321,11 +3324,11 @@ packages: resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} - tldts-core@6.1.66: - resolution: {integrity: sha512-s07jJruSwndD2X8bVjwioPfqpIc1pDTzszPe9pL1Skbh4bjytL85KNQ3tolqLbCvpQHawIsGfFi9dgerWjqW4g==} + tldts-core@6.1.68: + resolution: {integrity: sha512-85TdlS/DLW/gVdf2oyyzqp3ocS30WxjaL4la85EArl9cHUR/nizifKAJPziWewSZjDZS71U517/i6ciUeqtB5Q==} - tldts@6.1.66: - resolution: {integrity: sha512-l3ciXsYFel/jSRfESbyKYud1nOw7WfhrBEF9I3UiarYk/qEaOOwu3qXNECHw4fHGHGTEOuhf/VdKgoDX5M/dhQ==} + tldts@6.1.68: + resolution: {integrity: sha512-JKF17jROiYkjJPT73hUTEiTp2OBCf+kAlB+1novk8i6Q6dWjHsgEjw9VLiipV4KTJavazXhY1QUXyQFSem2T7w==} hasBin: true tmp@0.2.3: @@ -3736,114 +3739,114 @@ packages: snapshots: - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1) search-insights: 2.17.3 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) - '@algolia/client-search': 5.15.0 - algoliasearch: 5.15.0 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1) + '@algolia/client-search': 5.17.1 + algoliasearch: 5.17.1 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)': dependencies: - '@algolia/client-search': 5.15.0 - algoliasearch: 5.15.0 + '@algolia/client-search': 5.17.1 + algoliasearch: 5.17.1 - '@algolia/client-abtesting@5.15.0': + '@algolia/client-abtesting@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/client-analytics@5.15.0': + '@algolia/client-analytics@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/client-common@5.15.0': {} + '@algolia/client-common@5.17.1': {} - '@algolia/client-insights@5.15.0': + '@algolia/client-insights@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/client-personalization@5.15.0': + '@algolia/client-personalization@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/client-query-suggestions@5.15.0': + '@algolia/client-query-suggestions@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/client-search@5.15.0': + '@algolia/client-search@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/ingestion@1.15.0': + '@algolia/ingestion@1.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/monitoring@1.15.0': + '@algolia/monitoring@1.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/recommend@5.15.0': + '@algolia/recommend@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + '@algolia/client-common': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 - '@algolia/requester-browser-xhr@5.15.0': + '@algolia/requester-browser-xhr@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 + '@algolia/client-common': 5.17.1 - '@algolia/requester-fetch@5.15.0': + '@algolia/requester-fetch@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 + '@algolia/client-common': 5.17.1 - '@algolia/requester-node-http@5.15.0': + '@algolia/requester-node-http@5.17.1': dependencies: - '@algolia/client-common': 5.15.0 + '@algolia/client-common': 5.17.1 '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@babel/code-frame@7.26.2': @@ -3870,7 +3873,7 @@ snapshots: '@colors/colors@1.5.0': optional: true - '@cypress/request@3.0.6': + '@cypress/request@3.0.7': dependencies: aws-sign2: 0.7.0 aws4: 1.13.2 @@ -3885,7 +3888,7 @@ snapshots: json-stringify-safe: 5.0.1 mime-types: 2.1.35 performance-now: 2.1.0 - qs: 6.13.0 + qs: 6.13.1 safe-buffer: 5.2.1 tough-cookie: 5.0.0 tunnel-agent: 0.6.0 @@ -3900,10 +3903,10 @@ snapshots: '@docsearch/css@3.8.0': {} - '@docsearch/js@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3)': + '@docsearch/js@3.8.0(@algolia/client-search@5.17.1)(search-insights@2.17.3)': dependencies: - '@docsearch/react': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3) - preact: 10.25.1 + '@docsearch/react': 3.8.0(@algolia/client-search@5.17.1)(search-insights@2.17.3) + preact: 10.25.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -3911,12 +3914,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3)': + '@docsearch/react@3.8.0(@algolia/client-search@5.17.1)(search-insights@2.17.3)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0)(search-insights@2.17.3) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.15.0)(algoliasearch@5.15.0) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1)(search-insights@2.17.3) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.17.1)(algoliasearch@5.17.1) '@docsearch/css': 3.8.0 - algoliasearch: 5.15.0 + algoliasearch: 5.17.1 optionalDependencies: search-insights: 2.17.3 transitivePeerDependencies: @@ -4201,7 +4204,7 @@ snapshots: '@hutson/parse-repository-url@3.0.2': {} - '@iconify-json/simple-icons@1.2.14': + '@iconify-json/simple-icons@1.2.15': dependencies: '@iconify/types': 2.0.0 @@ -4218,7 +4221,7 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -4311,40 +4314,40 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.28.1': optional: true - '@shikijs/core@1.24.0': + '@shikijs/core@1.24.2': dependencies: - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/engine-javascript': 1.24.2 + '@shikijs/engine-oniguruma': 1.24.2 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.3 + hast-util-to-html: 9.0.4 - '@shikijs/engine-javascript@1.24.0': + '@shikijs/engine-javascript@1.24.2': dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 oniguruma-to-es: 0.7.0 - '@shikijs/engine-oniguruma@1.24.0': + '@shikijs/engine-oniguruma@1.24.2': dependencies: - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 - '@shikijs/transformers@1.24.0': + '@shikijs/transformers@1.24.2': dependencies: - shiki: 1.24.0 + shiki: 1.24.2 - '@shikijs/types@1.24.0': + '@shikijs/types@1.24.2': dependencies: - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@9.3.0': {} + '@shikijs/vscode-textmate@9.3.1': {} '@stylistic/eslint-plugin@2.11.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)': dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2) eslint: 9.16.0(jiti@2.4.1) eslint-visitor-keys: 4.2.0 espree: 10.3.0 @@ -4455,10 +4458,10 @@ snapshots: '@typescript-eslint/types': 8.16.0 '@typescript-eslint/visitor-keys': 8.16.0 - '@typescript-eslint/scope-manager@8.17.0': + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 '@typescript-eslint/type-utils@8.16.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)': dependencies: @@ -4474,7 +4477,7 @@ snapshots: '@typescript-eslint/types@8.16.0': {} - '@typescript-eslint/types@8.17.0': {} + '@typescript-eslint/types@8.18.0': {} '@typescript-eslint/typescript-estree@8.16.0(typescript@5.7.2)': dependencies: @@ -4491,17 +4494,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.17.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/visitor-keys': 8.17.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 debug: 4.4.0(supports-color@8.1.1) fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 ts-api-utils: 1.4.3(typescript@5.7.2) - optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -4518,14 +4520,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)': + '@typescript-eslint/utils@8.18.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.16.0(jiti@2.4.1)) - '@typescript-eslint/scope-manager': 8.17.0 - '@typescript-eslint/types': 8.17.0 - '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) eslint: 9.16.0(jiti@2.4.1) - optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -4535,9 +4536,9 @@ snapshots: '@typescript-eslint/types': 8.16.0 eslint-visitor-keys: 4.2.0 - '@typescript-eslint/visitor-keys@8.17.0': + '@typescript-eslint/visitor-keys@8.18.0': dependencies: - '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/types': 8.18.0 eslint-visitor-keys: 4.2.0 '@ungap/structured-clone@1.2.1': {} @@ -4556,7 +4557,7 @@ snapshots: istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 5.0.6 istanbul-reports: 3.1.7 - magic-string: 0.30.14 + magic-string: 0.30.15 magicast: 0.3.5 std-env: 3.8.0 test-exclude: 7.0.1 @@ -4565,9 +4566,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitest/eslint-plugin@1.1.13(@typescript-eslint/utils@8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)(vitest@2.1.7)': + '@vitest/eslint-plugin@1.1.13(@typescript-eslint/utils@8.18.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2))(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2)(vitest@2.1.7)': dependencies: - '@typescript-eslint/utils': 8.17.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0(jiti@2.4.1))(typescript@5.7.2) eslint: 9.16.0(jiti@2.4.1) optionalDependencies: typescript: 5.7.2 @@ -4584,7 +4585,7 @@ snapshots: dependencies: '@vitest/spy': 2.1.7 estree-walker: 3.0.3 - magic-string: 0.30.14 + magic-string: 0.30.15 optionalDependencies: vite: 5.4.11(@types/node@22.10.1) @@ -4604,7 +4605,7 @@ snapshots: '@vitest/snapshot@2.1.7': dependencies: '@vitest/pretty-format': 2.1.7 - magic-string: 0.30.14 + magic-string: 0.30.15 pathe: 1.1.2 '@vitest/spy@2.1.7': @@ -4628,15 +4629,15 @@ snapshots: loupe: 3.1.2 tinyrainbow: 1.2.0 - '@volar/language-core@2.4.10': + '@volar/language-core@2.4.11': dependencies: - '@volar/source-map': 2.4.10 + '@volar/source-map': 2.4.11 - '@volar/source-map@2.4.10': {} + '@volar/source-map@2.4.11': {} - '@volar/typescript@2.4.10': + '@volar/typescript@2.4.11': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 path-browserify: 1.0.1 vscode-uri: 3.0.8 @@ -4661,7 +4662,7 @@ snapshots: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 estree-walker: 2.0.2 - magic-string: 0.30.14 + magic-string: 0.30.15 postcss: 8.4.49 source-map-js: 1.2.1 @@ -4675,13 +4676,13 @@ snapshots: de-indent: 1.0.2 he: 1.2.0 - '@vue/devtools-api@7.6.7': + '@vue/devtools-api@7.6.8': dependencies: - '@vue/devtools-kit': 7.6.7 + '@vue/devtools-kit': 7.6.8 - '@vue/devtools-kit@7.6.7': + '@vue/devtools-kit@7.6.8': dependencies: - '@vue/devtools-shared': 7.6.7 + '@vue/devtools-shared': 7.6.8 birpc: 0.2.19 hookable: 5.5.3 mitt: 3.0.1 @@ -4689,13 +4690,13 @@ snapshots: speakingurl: 14.0.1 superjson: 2.2.2 - '@vue/devtools-shared@7.6.7': + '@vue/devtools-shared@7.6.8': dependencies: rfdc: 1.4.1 '@vue/language-core@2.1.10(typescript@5.7.2)': dependencies: - '@volar/language-core': 2.4.10 + '@volar/language-core': 2.4.11 '@vue/compiler-dom': 3.5.13 '@vue/compiler-vue2': 2.7.16 '@vue/shared': 3.5.13 @@ -4804,21 +4805,21 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - algoliasearch@5.15.0: - dependencies: - '@algolia/client-abtesting': 5.15.0 - '@algolia/client-analytics': 5.15.0 - '@algolia/client-common': 5.15.0 - '@algolia/client-insights': 5.15.0 - '@algolia/client-personalization': 5.15.0 - '@algolia/client-query-suggestions': 5.15.0 - '@algolia/client-search': 5.15.0 - '@algolia/ingestion': 1.15.0 - '@algolia/monitoring': 1.15.0 - '@algolia/recommend': 5.15.0 - '@algolia/requester-browser-xhr': 5.15.0 - '@algolia/requester-fetch': 5.15.0 - '@algolia/requester-node-http': 5.15.0 + algoliasearch@5.17.1: + dependencies: + '@algolia/client-abtesting': 5.17.1 + '@algolia/client-analytics': 5.17.1 + '@algolia/client-common': 5.17.1 + '@algolia/client-insights': 5.17.1 + '@algolia/client-personalization': 5.17.1 + '@algolia/client-query-suggestions': 5.17.1 + '@algolia/client-search': 5.17.1 + '@algolia/ingestion': 1.17.1 + '@algolia/monitoring': 1.17.1 + '@algolia/recommend': 5.17.1 + '@algolia/requester-browser-xhr': 5.17.1 + '@algolia/requester-fetch': 5.17.1 + '@algolia/requester-node-http': 5.17.1 alien-signals@0.2.2: {} @@ -4901,12 +4902,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.24.2: + browserslist@4.24.3: dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001688 + electron-to-chromium: 1.5.73 + node-releases: 2.0.19 + update-browserslist-db: 1.1.1(browserslist@4.24.3) buffer-crc32@0.2.13: {} @@ -4928,17 +4929,15 @@ snapshots: cachedir@2.4.0: {} - call-bind-apply-helpers@1.0.0: + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - call-bind@1.0.8: + call-bound@1.0.3: dependencies: - call-bind-apply-helpers: 1.0.0 - es-define-property: 1.0.1 - get-intrinsic: 1.2.5 - set-function-length: 1.2.2 + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.6 callsites@3.1.0: {} @@ -4950,7 +4949,7 @@ snapshots: camelcase@5.3.1: {} - caniuse-lite@1.0.30001687: {} + caniuse-lite@1.0.30001688: {} caseless@0.12.0: {} @@ -5186,7 +5185,7 @@ snapshots: core-js-compat@3.39.0: dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 core-util-is@1.0.2: {} @@ -5206,7 +5205,7 @@ snapshots: cypress@13.16.0: dependencies: - '@cypress/request': 3.0.6 + '@cypress/request': 3.0.7 '@cypress/xvfb': 1.2.4(supports-color@8.1.1) '@types/sinonjs__fake-timers': 8.1.1 '@types/sizzle': 2.3.9 @@ -5294,12 +5293,6 @@ snapshots: deepmerge@4.3.1: {} - define-data-property@1.1.4: - dependencies: - es-define-property: 1.0.1 - es-errors: 1.3.0 - gopd: 1.2.0 - delayed-stream@1.0.0: {} dequal@2.0.3: {} @@ -5345,7 +5338,7 @@ snapshots: dunder-proto@1.0.0: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 @@ -5356,7 +5349,7 @@ snapshots: jsbn: 0.1.1 safer-buffer: 2.1.2 - electron-to-chromium@1.5.71: {} + electron-to-chromium@1.5.73: {} emoji-regex-xs@1.0.0: {} @@ -5385,6 +5378,10 @@ snapshots: es-module-lexer@1.5.4: {} + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + esbuild@0.21.5: optionalDependencies: '@esbuild/aix-ppc64': 0.21.5 @@ -5478,7 +5475,7 @@ snapshots: eslint-plugin-file-progress@3.0.1(eslint@9.16.0(jiti@2.4.1)): dependencies: eslint: 9.16.0(jiti@2.4.1) - nanospinner: 1.2.0 + nanospinner: 1.2.2 picocolors: 1.1.1 eslint-plugin-jsdoc@50.6.0(eslint@9.16.0(jiti@2.4.1)): @@ -5520,7 +5517,7 @@ snapshots: globals: 15.13.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 - jsesc: 3.0.2 + jsesc: 3.1.0 pluralize: 8.0.0 read-pkg-up: 7.0.1 regexp-tree: 0.1.27 @@ -5734,16 +5731,18 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.5: + get-intrinsic@1.2.6: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 dunder-proto: 1.0.0 es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.0.0 function-bind: 1.1.2 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.0.0 get-pkg-repo@4.2.1: dependencies: @@ -5838,17 +5837,13 @@ snapshots: has-flag@4.0.0: {} - has-property-descriptors@1.0.2: - dependencies: - es-define-property: 1.0.1 - has-symbols@1.1.0: {} hasown@2.0.2: dependencies: function-bind: 1.1.2 - hast-util-to-html@9.0.3: + hast-util-to-html@9.0.4: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -5942,7 +5937,7 @@ snapshots: dependencies: builtin-modules: 3.3.0 - is-core-module@2.15.1: + is-core-module@2.16.0: dependencies: hasown: 2.0.2 @@ -6064,7 +6059,7 @@ snapshots: jsesc@0.5.0: {} - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -6184,7 +6179,7 @@ snapshots: dependencies: yallist: 4.0.0 - magic-string@0.30.14: + magic-string@0.30.15: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 @@ -6204,6 +6199,8 @@ snapshots: mark.js@8.11.1: {} + math-intrinsics@1.0.0: {} + mdast-util-to-hast@13.2.0: dependencies: '@types/hast': 3.0.4 @@ -6306,7 +6303,7 @@ snapshots: nanoid@3.3.8: {} - nanospinner@1.2.0: + nanospinner@1.2.2: dependencies: picocolors: 1.1.1 @@ -6314,19 +6311,19 @@ snapshots: neo-async@2.6.2: {} - node-releases@2.0.18: {} + node-releases@2.0.19: {} normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.9 semver: 5.7.2 validate-npm-package-license: 3.0.4 normalize-package-data@3.0.3: dependencies: hosted-git-info: 4.1.0 - is-core-module: 2.15.1 + is-core-module: 2.16.0 semver: 7.6.3 validate-npm-package-license: 3.0.4 @@ -6503,7 +6500,7 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.25.1: {} + preact@10.25.2: {} prelude-ls@1.2.1: {} @@ -6544,9 +6541,9 @@ snapshots: punycode@2.3.1: {} - qs@6.13.0: + qs@6.13.1: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 queue-microtask@1.2.3: {} @@ -6632,9 +6629,9 @@ snapshots: resolve-pkg-maps@1.0.0: {} - resolve@1.22.8: + resolve@1.22.9: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -6711,15 +6708,6 @@ snapshots: semver@7.6.3: {} - set-function-length@1.2.2: - dependencies: - define-data-property: 1.1.4 - es-errors: 1.3.0 - function-bind: 1.1.2 - get-intrinsic: 1.2.5 - gopd: 1.2.0 - has-property-descriptors: 1.0.2 - shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -6728,21 +6716,42 @@ snapshots: shell-quote@1.8.2: {} - shiki@1.24.0: + shiki@1.24.2: dependencies: - '@shikijs/core': 1.24.0 - '@shikijs/engine-javascript': 1.24.0 - '@shikijs/engine-oniguruma': 1.24.0 - '@shikijs/types': 1.24.0 - '@shikijs/vscode-textmate': 9.3.0 + '@shikijs/core': 1.24.2 + '@shikijs/engine-javascript': 1.24.2 + '@shikijs/engine-oniguruma': 1.24.2 + '@shikijs/types': 1.24.2 + '@shikijs/vscode-textmate': 9.3.1 '@types/hast': 3.0.4 - side-channel@1.0.6: + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.6 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: dependencies: - call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.5 object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 siginfo@2.0.0: {} @@ -6883,7 +6892,7 @@ snapshots: sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -6958,11 +6967,11 @@ snapshots: tinyspy@3.0.2: {} - tldts-core@6.1.66: {} + tldts-core@6.1.68: {} - tldts@6.1.66: + tldts@6.1.68: dependencies: - tldts-core: 6.1.66 + tldts-core: 6.1.68 tmp@0.2.3: {} @@ -6974,7 +6983,7 @@ snapshots: tough-cookie@5.0.0: dependencies: - tldts: 6.1.66 + tldts: 6.1.68 tr46@1.0.1: dependencies: @@ -7102,9 +7111,9 @@ snapshots: untildify@4.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.1(browserslist@4.24.3): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.3 escalade: 3.2.0 picocolors: 1.1.1 @@ -7166,24 +7175,24 @@ snapshots: '@types/node': 22.10.1 fsevents: 2.3.3 - vitepress@1.5.0(@algolia/client-search@5.15.0)(@types/node@22.10.1)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.2): + vitepress@1.5.0(@algolia/client-search@5.17.1)(@types/node@22.10.1)(postcss@8.4.49)(search-insights@2.17.3)(typescript@5.7.2): dependencies: '@docsearch/css': 3.8.0 - '@docsearch/js': 3.8.0(@algolia/client-search@5.15.0)(search-insights@2.17.3) - '@iconify-json/simple-icons': 1.2.14 - '@shikijs/core': 1.24.0 - '@shikijs/transformers': 1.24.0 - '@shikijs/types': 1.24.0 + '@docsearch/js': 3.8.0(@algolia/client-search@5.17.1)(search-insights@2.17.3) + '@iconify-json/simple-icons': 1.2.15 + '@shikijs/core': 1.24.2 + '@shikijs/transformers': 1.24.2 + '@shikijs/types': 1.24.2 '@types/markdown-it': 14.1.2 '@vitejs/plugin-vue': 5.2.1(vite@5.4.11(@types/node@22.10.1))(vue@3.5.13(typescript@5.7.2)) - '@vue/devtools-api': 7.6.7 + '@vue/devtools-api': 7.6.8 '@vue/shared': 3.5.13 '@vueuse/core': 11.3.0(vue@3.5.13(typescript@5.7.2)) '@vueuse/integrations': 11.3.0(focus-trap@7.6.2)(vue@3.5.13(typescript@5.7.2)) focus-trap: 7.6.2 mark.js: 8.11.1 minisearch: 7.1.1 - shiki: 1.24.0 + shiki: 1.24.2 vite: 5.4.11(@types/node@22.10.1) vue: 3.5.13(typescript@5.7.2) optionalDependencies: @@ -7228,7 +7237,7 @@ snapshots: chai: 5.1.2 debug: 4.4.0(supports-color@8.1.1) expect-type: 1.1.0 - magic-string: 0.30.14 + magic-string: 0.30.15 pathe: 1.1.2 std-env: 3.8.0 tinybench: 2.9.0 @@ -7261,7 +7270,7 @@ snapshots: vue-tsc@2.1.10(typescript@5.7.2): dependencies: - '@volar/typescript': 2.4.10 + '@volar/typescript': 2.4.11 '@vue/language-core': 2.1.10(typescript@5.7.2) semver: 7.6.3 typescript: 5.7.2 diff --git a/src/definitions/finance.ts b/src/definitions/finance.ts index c82ac6e85ba..8755edccbb8 100644 --- a/src/definitions/finance.ts +++ b/src/definitions/finance.ts @@ -26,4 +26,9 @@ export type FinanceDefinition = LocaleEntry<{ * Types of transactions (e.g. `deposit`). */ transaction_type: string[]; + + /** + * The pattern used to generate transaction descriptions. + */ + transaction_description_pattern: string[]; }>; diff --git a/src/definitions/internet.ts b/src/definitions/internet.ts index fdcd6a0fec3..dcd1d5ae09b 100644 --- a/src/definitions/internet.ts +++ b/src/definitions/internet.ts @@ -31,4 +31,9 @@ export type InternetDefinition = LocaleEntry<{ http_status_code: Record; jwt_algorithm: string[]; + + /** + * List of user agent patterns. + */ + user_agent_pattern: string[]; }>; diff --git a/src/definitions/location.ts b/src/definitions/location.ts index 5b4a4bc33d1..6145f2592d8 100644 --- a/src/definitions/location.ts +++ b/src/definitions/location.ts @@ -1,3 +1,4 @@ +import type { Language } from '../modules/location'; import type { LocaleEntry } from './definitions'; /** @@ -147,4 +148,11 @@ export type LocationDefinition = LocaleEntry<{ * @see [IANA Time Zone Database](https://www.iana.org/time-zones) */ time_zone: string[]; + + /** + * A list of spoken languages. + * + * @see [ISO 639-2 Language Code List](https://www.loc.gov/standards/iso639-2/php/code_list.php) + */ + language: Language[]; }>; diff --git a/src/locales/base/internet/index.ts b/src/locales/base/internet/index.ts index 55709025e49..39a517646e3 100644 --- a/src/locales/base/internet/index.ts +++ b/src/locales/base/internet/index.ts @@ -6,11 +6,13 @@ import type { InternetDefinition } from '../../..'; import emoji from './emoji'; import http_status_code from './http_status_code'; import jwt_algorithm from './jwt_algorithm'; +import user_agent_pattern from './user_agent_pattern'; const internet: InternetDefinition = { emoji, http_status_code, jwt_algorithm, + user_agent_pattern, }; export default internet; diff --git a/src/locales/base/internet/user_agent_pattern.ts b/src/locales/base/internet/user_agent_pattern.ts new file mode 100644 index 00000000000..d94d8a55daa --- /dev/null +++ b/src/locales/base/internet/user_agent_pattern.ts @@ -0,0 +1,22 @@ +export default [ + //typical IE user agent on Windows + 'Mozilla/5.0 (compatible; MSIE {{number.int({"min":6,"max":10})}}.0; Windows NT {{helpers.arrayElement(["5.1","5.2","6.0","6.1","6.2","6.3","10.0"])}}; Trident/{{number.int({"min":4,"max":7})}}.0)', + //typical Edge user agent on Windows + 'Mozilla/5.0 (Windows NT {{helpers.arrayElement(["5.1","5.2","6.0","6.1","6.2","6.3","10.0"])}}; Win64; x64) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} Edg/{{number.int({"min":110,"max":131})}}.{{system.semver}}', + //typical Safari user agent on MacOS + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Version/16.1 Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}}', + //typical Firefox user agent on MacOS + 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:{{number.int({"min":75, "max":133})}}.0) Gecko/20100101 Firefox/{{number.int({"min":75, "max":133})}}.0', + //typical Chrome user agent on MacOS + 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_15_7) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}}', + //typical Firefox user agent on Linux + 'Mozilla/5.0 (X11; Linux x86_64; rv:{{number.int({"min":75,"max":133})}}.0) Gecko/20100101 Firefox/{{number.int({"min":75,"max":133})}}.0', + //typical user agent for a bot + 'FakerBot/{{system.semver}}', + //typical Googlebot user agent + 'Googlebot/2.1 (+http://www.google.com/bot.html)', + //typical Safari user agent on iOS + 'Mozilla/5.0 (iPhone; CPU iPhone OS {{number.int({"min":10,"max":18})}}_{{number.int({"min":0,"max":4})}} like Mac OS X) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Version/{{number.int({"min":10,"max":18})}}_{{number.int({"min":0,"max":4})}} Mobile/15E148 Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}', + //typical Chrome user agent on Android + 'Mozilla/5.0 (Linux; Android {{number.int({"min":5,"max":13})}}; {{helpers.arrayElement(["SM-G998U","SM-G998B","SM-G998N","SM-G998P","SM-T800"])}}) AppleWebKit/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}} (KHTML, like Gecko) Chrome/{{number.int({"min":55,"max":131})}}.{{system.semver}} Mobile Safari/{{number.int({"min":536,"max":605})}}.{{number.int({"min":0,"max":99})}}', +]; diff --git a/src/locales/de/animal/index.ts b/src/locales/de/animal/index.ts new file mode 100644 index 00000000000..333108c01bb --- /dev/null +++ b/src/locales/de/animal/index.ts @@ -0,0 +1,12 @@ +/* + * This file is automatically generated. + * Run 'pnpm run generate:locales' to update. + */ +import type { AnimalDefinition } from '../../..'; +import type_ from './type'; + +const animal: AnimalDefinition = { + type: type_, +}; + +export default animal; diff --git a/src/locales/de/animal/type.ts b/src/locales/de/animal/type.ts new file mode 100644 index 00000000000..9da42887f9e --- /dev/null +++ b/src/locales/de/animal/type.ts @@ -0,0 +1,46 @@ +export default [ + 'Adler', + 'Affe', + 'Biene', + 'Bär', + 'Delfin', + 'Eichhörnchen', + 'Eisbär', + 'Elefant', + 'Fisch', + 'Flamingo', + 'Fledermaus', + 'Frosch', + 'Fuchs', + 'Gecko', + 'Giraffe', + 'Gorilla', + 'Hai', + 'Hamster', + 'Hund', + 'Kaninchen', + 'Katze', + 'Koala', + 'Krokodil', + 'Kuh', + 'Känguru', + 'Löwe', + 'Nashorn', + 'Nilpferd', + 'Panda', + 'Papagei', + 'Pfau', + 'Pferd', + 'Pinguin', + 'Reh', + 'Schildkröte', + 'Schlange', + 'Schmetterling', + 'Seelöwe', + 'Strauß', + 'Tiger', + 'Vogel', + 'Wal', + 'Wolf', + 'Zebra', +]; diff --git a/src/locales/de/index.ts b/src/locales/de/index.ts index a64e7755d49..6c0c0ead05c 100644 --- a/src/locales/de/index.ts +++ b/src/locales/de/index.ts @@ -3,6 +3,7 @@ * Run 'pnpm run generate:locales' to update. */ import type { LocaleDefinition } from '../..'; +import animal from './animal'; import cell_phone from './cell_phone'; import color from './color'; import company from './company'; @@ -23,6 +24,7 @@ import word from './word'; * - Endonym: Deutsch */ const de: LocaleDefinition = { + animal, cell_phone, color, company, diff --git a/src/locales/en/finance/index.ts b/src/locales/en/finance/index.ts index 2428aa2873b..04e3fd05280 100644 --- a/src/locales/en/finance/index.ts +++ b/src/locales/en/finance/index.ts @@ -6,12 +6,14 @@ import type { FinanceDefinition } from '../../..'; import account_type from './account_type'; import credit_card from './credit_card'; import currency from './currency'; +import transaction_description_pattern from './transaction_description_pattern'; import transaction_type from './transaction_type'; const finance: FinanceDefinition = { account_type, credit_card, currency, + transaction_description_pattern, transaction_type, }; diff --git a/src/locales/en/finance/transaction_description_pattern.ts b/src/locales/en/finance/transaction_description_pattern.ts new file mode 100644 index 00000000000..b6854b19c46 --- /dev/null +++ b/src/locales/en/finance/transaction_description_pattern.ts @@ -0,0 +1,13 @@ +export default [ + 'A {{finance.transactionType}} for {{finance.currencyCode}} {{finance.amount}} was made at {{company.name}} via card ending ****{{string.numeric(4)}} on account ***{{string.numeric(4)}}.', + 'A {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} occurred at {{company.name}} using a card ending in ****{{string.numeric(4)}} for account ***{{string.numeric(4)}}.', + 'Payment of {{finance.currencyCode}} {{finance.amount}} for {{finance.transactionType}} at {{company.name}}, processed with card ending ****{{string.numeric(4)}} linked to account ***{{string.numeric(4)}}.', + 'Transaction alert: {{finance.transactionType}} at {{company.name}} using card ending ****{{string.numeric(4)}} for an amount of {{finance.currencyCode}} {{finance.amount}} on account ***{{string.numeric(4)}}.', + 'You made a {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} using card ending in ****{{string.numeric(4)}} from account ***{{string.numeric(4)}}.', + 'Your {{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} was successful. Charged via card ****{{string.numeric(4)}} to account ***{{string.numeric(4)}}.', + '{{finance.transactionType}} at {{company.name}} with a card ending in ****{{string.numeric(4)}} for {{finance.currencyCode}} {{finance.amount}} from account ***{{string.numeric(4)}}.', + '{{finance.transactionType}} confirmed at {{company.name}} for {{finance.currencyCode}} {{finance.amount}}, card ending in ****{{string.numeric(4)}} associated with account ***{{string.numeric(4)}}.', + '{{finance.transactionType}} of {{finance.currencyCode}} {{finance.amount}} at {{company.name}} charged to account ending in {{string.numeric(4)}} using card ending in ****{{string.numeric(4)}}.', + '{{finance.transactionType}} processed at {{company.name}} for {{finance.currencyCode}} {{finance.amount}}, using card ending ****{{string.numeric(4)}}. Account: ***{{string.numeric(4)}}.', + '{{finance.transactionType}} transaction at {{company.name}} using card ending with ****{{string.numeric(4)}} for {{finance.currencyCode}} {{finance.amount}} in account ***{{string.numeric(4)}}.', +]; diff --git a/src/locales/en/location/index.ts b/src/locales/en/location/index.ts index 64ca3268f7d..4dad10fee26 100644 --- a/src/locales/en/location/index.ts +++ b/src/locales/en/location/index.ts @@ -12,6 +12,7 @@ import continent from './continent'; import country from './country'; import county from './county'; import direction from './direction'; +import language from './language'; import postcode from './postcode'; import secondary_address from './secondary_address'; import state from './state'; @@ -31,6 +32,7 @@ const location: LocationDefinition = { country, county, direction, + language, postcode, secondary_address, state, diff --git a/src/locales/en/location/language.ts b/src/locales/en/location/language.ts new file mode 100644 index 00000000000..cddb7b9fd3c --- /dev/null +++ b/src/locales/en/location/language.ts @@ -0,0 +1,73 @@ +export default [ + { name: 'Afrikaans', alpha2: 'af', alpha3: 'afr' }, + { name: 'Azerbaijani', alpha2: 'az', alpha3: 'aze' }, + { name: 'Maldivian', alpha2: 'dv', alpha3: 'div' }, + { name: 'Farsi/Persian', alpha2: 'fa', alpha3: 'fas' }, + { name: 'Latvian', alpha2: 'lv', alpha3: 'lav' }, + { name: 'Indonesian', alpha2: 'id', alpha3: 'ind' }, + { name: 'Nepali', alpha2: 'ne', alpha3: 'nep' }, + { name: 'Thai', alpha2: 'th', alpha3: 'tha' }, + { name: 'Uzbek', alpha2: 'uz', alpha3: 'uzb' }, + { name: 'Yoruba', alpha2: 'yo', alpha3: 'yor' }, + { name: 'Pashto', alpha2: 'ps', alpha3: 'pus' }, + { name: 'English', alpha2: 'en', alpha3: 'eng' }, + { name: 'Urdu', alpha2: 'ur', alpha3: 'urd' }, + { name: 'German', alpha2: 'de', alpha3: 'deu' }, + { name: 'French', alpha2: 'fr', alpha3: 'fra' }, + { name: 'Spanish', alpha2: 'es', alpha3: 'spa' }, + { name: 'Italian', alpha2: 'it', alpha3: 'ita' }, + { name: 'Dutch', alpha2: 'nl', alpha3: 'nld' }, + { name: 'Russian', alpha2: 'ru', alpha3: 'rus' }, + { name: 'Portuguese', alpha2: 'pt', alpha3: 'por' }, + { name: 'Polish', alpha2: 'pl', alpha3: 'pol' }, + { name: 'Arabic', alpha2: 'ar', alpha3: 'ara' }, + { name: 'Japanese', alpha2: 'ja', alpha3: 'jpn' }, + { name: 'Chinese', alpha2: 'zh', alpha3: 'zho' }, + { name: 'Hindi', alpha2: 'hi', alpha3: 'hin' }, + { name: 'Bengali', alpha2: 'bn', alpha3: 'ben' }, + { name: 'Gujarati', alpha2: 'gu', alpha3: 'guj' }, + { name: 'Tamil', alpha2: 'ta', alpha3: 'tam' }, + { name: 'Telugu', alpha2: 'te', alpha3: 'tel' }, + { name: 'Punjabi', alpha2: 'pa', alpha3: 'pan' }, + { name: 'Vietnamese', alpha2: 'vi', alpha3: 'vie' }, + { name: 'Korean', alpha2: 'ko', alpha3: 'kor' }, + { name: 'Turkish', alpha2: 'tr', alpha3: 'tur' }, + { name: 'Swedish', alpha2: 'sv', alpha3: 'swe' }, + { name: 'Greek', alpha2: 'el', alpha3: 'ell' }, + { name: 'Czech', alpha2: 'cs', alpha3: 'ces' }, + { name: 'Hungarian', alpha2: 'hu', alpha3: 'hun' }, + { name: 'Romanian', alpha2: 'ro', alpha3: 'ron' }, + { name: 'Ukrainian', alpha2: 'uk', alpha3: 'ukr' }, + { name: 'Norwegian', alpha2: 'no', alpha3: 'nor' }, + { name: 'Serbian', alpha2: 'sr', alpha3: 'srp' }, + { name: 'Croatian', alpha2: 'hr', alpha3: 'hrv' }, + { name: 'Slovak', alpha2: 'sk', alpha3: 'slk' }, + { name: 'Slovenian', alpha2: 'sl', alpha3: 'slv' }, + { name: 'Icelandic', alpha2: 'is', alpha3: 'isl' }, + { name: 'Finnish', alpha2: 'fi', alpha3: 'fin' }, + { name: 'Danish', alpha2: 'da', alpha3: 'dan' }, + { name: 'Swahili', alpha2: 'sw', alpha3: 'swa' }, + { name: 'Bashkir', alpha2: 'ba', alpha3: 'bak' }, + { name: 'Basque', alpha2: 'eu', alpha3: 'eus' }, + { name: 'Catalan', alpha2: 'ca', alpha3: 'cat' }, + { name: 'Galician', alpha2: 'gl', alpha3: 'glg' }, + { name: 'Esperanto', alpha2: 'eo', alpha3: 'epo' }, + { name: 'Fijian', alpha2: 'fj', alpha3: 'fij' }, + { name: 'Malagasy', alpha2: 'mg', alpha3: 'mlg' }, + { name: 'Maltese', alpha2: 'mt', alpha3: 'mlt' }, + { name: 'Albanian', alpha2: 'sq', alpha3: 'sqi' }, + { name: 'Armenian', alpha2: 'hy', alpha3: 'hye' }, + { name: 'Georgian', alpha2: 'ka', alpha3: 'kat' }, + { name: 'Macedonian', alpha2: 'mk', alpha3: 'mkd' }, + { name: 'Kazakh', alpha2: 'kk', alpha3: 'kaz' }, + { name: 'Haitian Creole', alpha2: 'ht', alpha3: 'hat' }, + { name: 'Mongolian', alpha2: 'mn', alpha3: 'mon' }, + { name: 'Kyrgyz', alpha2: 'ky', alpha3: 'kir' }, + { name: 'Finnish', alpha2: 'fi', alpha3: 'fin' }, + { name: 'Tagalog', alpha2: 'tl', alpha3: 'tgl' }, + { name: 'Malay', alpha2: 'ms', alpha3: 'msa' }, + { name: 'Tajik', alpha2: 'tg', alpha3: 'tgk' }, + { name: 'Swati', alpha2: 'ss', alpha3: 'ssw' }, + { name: 'Tatar', alpha2: 'tt', alpha3: 'tat' }, + { name: 'Zulu', alpha2: 'zu', alpha3: 'zul' }, +]; diff --git a/src/locales/ur/location/index.ts b/src/locales/ur/location/index.ts index ea213fcab40..d278b2d5d5d 100644 --- a/src/locales/ur/location/index.ts +++ b/src/locales/ur/location/index.ts @@ -10,6 +10,7 @@ import city_prefix from './city_prefix'; import city_suffix from './city_suffix'; import country from './country'; import direction from './direction'; +import language from './language'; import postcode from './postcode'; import secondary_address from './secondary_address'; import state from './state'; @@ -26,6 +27,7 @@ const location: LocationDefinition = { city_suffix, country, direction, + language, postcode, secondary_address, state, diff --git a/src/locales/ur/location/language.ts b/src/locales/ur/location/language.ts new file mode 100644 index 00000000000..b6df76574f3 --- /dev/null +++ b/src/locales/ur/location/language.ts @@ -0,0 +1,33 @@ +export default [ + { name: 'پشتو', alpha2: 'ps', alpha3: 'pus' }, + { name: 'اردو', alpha2: 'ur', alpha3: 'urd' }, + { name: 'انگریزی', alpha2: 'en', alpha3: 'eng' }, + { name: 'جرمن', alpha2: 'de', alpha3: 'deu' }, + { name: 'فرانسیسی', alpha2: 'fr', alpha3: 'fra' }, + { name: 'اسپینش', alpha2: 'es', alpha3: 'spa' }, + { name: 'دچ', alpha2: 'nl', alpha3: 'nld' }, + { name: 'روسی', alpha2: 'ru', alpha3: 'rus' }, + { name: 'پرتگالی', alpha2: 'pt', alpha3: 'por' }, + { name: 'پولش', alpha2: 'pl', alpha3: 'pol' }, + { name: 'عربی', alpha2: 'ar', alpha3: 'ara' }, + { name: 'جاپانی', alpha2: 'ja', alpha3: 'jpn' }, + { name: 'چینی', alpha2: 'zh', alpha3: 'zho' }, + { name: 'ہندی', alpha2: 'hi', alpha3: 'hin' }, + { name: 'بنگالی', alpha2: 'bn', alpha3: 'ben' }, + { name: 'تمل', alpha2: 'ta', alpha3: 'tam' }, + { name: 'تلگو', alpha2: 'te', alpha3: 'tel' }, + { name: 'پنجابی', alpha2: 'pa', alpha3: 'pan' }, + { name: 'ترکی', alpha2: 'tr', alpha3: 'tur' }, + { name: 'سویڈش', alpha2: 'sv', alpha3: 'swe' }, + { name: 'یونانی', alpha2: 'el', alpha3: 'ell' }, + { name: 'چیک', alpha2: 'cs', alpha3: 'ces' }, + { name: 'ہنگرین', alpha2: 'hu', alpha3: 'hun' }, + { name: 'نارویجن', alpha2: 'no', alpha3: 'nor' }, + { name: 'کروشیائی', alpha2: 'hr', alpha3: 'hrv' }, + { name: 'سلوواک', alpha2: 'sk', alpha3: 'slk' }, + { name: 'سلووینیائی', alpha2: 'sl', alpha3: 'slv' }, + { name: 'فنش', alpha2: 'fi', alpha3: 'fin' }, + { name: 'دنش', alpha2: 'da', alpha3: 'dan' }, + { name: 'مالٹی', alpha2: 'mt', alpha3: 'mlt' }, + { name: 'تاجک', alpha2: 'tg', alpha3: 'tgk' }, +]; diff --git a/src/modules/finance/index.ts b/src/modules/finance/index.ts index 656872b784a..cc4068089e1 100644 --- a/src/modules/finance/index.ts +++ b/src/modules/finance/index.ts @@ -969,18 +969,13 @@ export class FinanceModule extends ModuleBase { * * @example * faker.finance.transactionDescription() - * // 'invoice transaction at Kilback - Durgan using card ending with ************4316 for UAH 783.82 in account ***16168663' + * // 'payment transaction at Emard LLC using card ending with ****9187 for HNL 506.57 in account ***2584.' * * @since 5.1.0 */ transactionDescription(): string { - const amount = this.amount(); - const company = this.faker.company.name(); - const transactionType = this.transactionType(); - const account = this.accountNumber(); - const card = this.creditCardNumber().replaceAll(/.(?=.{4})/g, '*'); - const currency = this.currencyCode(); - - return `${transactionType} transaction at ${company} using card ending with ${card} for ${currency} ${amount} in account ***${account}`; + return this.faker.helpers.fake( + this.faker.definitions.finance.transaction_description_pattern + ); } } diff --git a/src/modules/helpers/index.ts b/src/modules/helpers/index.ts index 52d311dcb05..375e820ca8a 100644 --- a/src/modules/helpers/index.ts +++ b/src/modules/helpers/index.ts @@ -184,18 +184,18 @@ export function legacyReplaceSymbolWithNumber( string: string = '', symbol: string = '#' ): string { - let str = ''; + let result = ''; for (let i = 0; i < string.length; i++) { if (string.charAt(i) === symbol) { - str += faker.number.int(9); + result += faker.number.int(9); } else if (string.charAt(i) === '!') { - str += faker.number.int({ min: 2, max: 9 }); + result += faker.number.int({ min: 2, max: 9 }); } else { - str += string.charAt(i); + result += string.charAt(i); } } - return str; + return result; } /** @@ -270,23 +270,23 @@ export class SimpleHelpersModule extends SimpleModuleBase { 'Y', 'Z', ]; - let str = ''; + let result = ''; for (let i = 0; i < string.length; i++) { if (string.charAt(i) === '#') { - str += this.faker.number.int(9); + result += this.faker.number.int(9); } else if (string.charAt(i) === '?') { - str += this.arrayElement(alpha); + result += this.arrayElement(alpha); } else if (string.charAt(i) === '*') { - str += this.faker.datatype.boolean() + result += this.faker.datatype.boolean() ? this.arrayElement(alpha) : this.faker.number.int(9); } else { - str += string.charAt(i); + result += string.charAt(i); } } - return str; + return result; } /** @@ -700,7 +700,7 @@ export class SimpleHelpersModule extends SimpleModuleBase { /** * Replaces the `{{placeholder}}` patterns in the given string mustache style. * - * @param str The template string to parse. + * @param text The template string to parse. * @param data The data used to populate the placeholders. * This is a record where the key is the template placeholder, * whereas the value is either a string or a function suitable for `String.replace()`. @@ -714,10 +714,10 @@ export class SimpleHelpersModule extends SimpleModuleBase { * @since 2.0.1 */ mustache( - str: string | undefined, + text: string | undefined, data: Record[1]> ): string { - if (str == null) { + if (text == null) { return ''; } @@ -727,13 +727,13 @@ export class SimpleHelpersModule extends SimpleModuleBase { if (typeof value === 'string') { // escape $, source: https://stackoverflow.com/a/6969486/6897682 value = value.replaceAll('$', '$$$$'); - str = str.replace(re, value); + text = text.replace(re, value); } else { - str = str.replace(re, value); + text = text.replace(re, value); } } - return str; + return text; } /** @@ -897,7 +897,7 @@ export class SimpleHelpersModule extends SimpleModuleBase { ); } - const total = array.reduce((acc, { weight }) => acc + weight, 0); + const total = array.reduce((sum, { weight }) => sum + weight, 0); const random = this.faker.number.float({ min: 0, max: total, @@ -1276,10 +1276,10 @@ export class HelpersModule extends SimpleHelpersModule { // Replace the found tag with the returned fake value // We cannot use string.replace here because the result might contain evaluated characters - const res = + const patched = pattern.substring(0, start) + stringified + pattern.substring(end + 2); // return the response recursively until we are done finding all tags - return this.fake(res); + return this.fake(patched); } } diff --git a/src/modules/internet/index.ts b/src/modules/internet/index.ts index 115bb8a83d5..35a3e7d88f0 100644 --- a/src/modules/internet/index.ts +++ b/src/modules/internet/index.ts @@ -4,7 +4,6 @@ import { toBase64Url } from '../../internal/base64'; import { deprecated } from '../../internal/deprecated'; import { ModuleBase } from '../../internal/module-base'; import { charMapping } from './char-mappings'; -import * as random_ua from './user-agent'; export type EmojiType = | 'smiley' @@ -798,12 +797,14 @@ export class InternetModule extends ModuleBase { * * @example * faker.internet.userAgent() - * // 'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_8_8) AppleWebKit/536.0.2 (KHTML, like Gecko) Chrome/27.0.849.0 Safari/536.0.2' + * // 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_1 like Mac OS X) AppleWebKit/537.19.86 (KHTML, like Gecko) Version/18_3 Mobile/15E148 Safari/598.43' * * @since 2.0.1 */ userAgent(): string { - return random_ua.generate(this.faker); + return this.faker.helpers.fake( + this.faker.definitions.internet.user_agent_pattern + ); } /** @@ -876,14 +877,14 @@ export class InternetModule extends ModuleBase { /** * Generates a random mac address. * - * @param sep The optional separator to use. Can be either `':'`, `'-'` or `''`. Defaults to `':'`. + * @param separator The optional separator to use. Can be either `':'`, `'-'` or `''`. Defaults to `':'`. * * @example * faker.internet.mac() // '32:8e:2e:09:c6:05' * * @since 3.0.0 */ - mac(sep?: string): string; + mac(separator?: string): string; /** * Generates a random mac address. * diff --git a/src/modules/internet/user-agent.ts b/src/modules/internet/user-agent.ts deleted file mode 100644 index fba5ed05ea5..00000000000 --- a/src/modules/internet/user-agent.ts +++ /dev/null @@ -1,340 +0,0 @@ -/** - * Copyright (c) 2022-2023 Faker - * - * This is a version of the original code migrated to TypeScript and modified - * by the Faker team. - * - * Check LICENSE for more details about the copyright. - * - * ----------------------------------------------------------------------------- - * - * Copyright (c) 2012-2014 Jeffrey Mealo - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - * ----------------------------------------------------------------------------- - * - * Based loosely on Luka Pusic's PHP Script: - * http://360percents.com/posts/php-random-user-agent-generator/ - * - * The license for that script is as follows: - * - * "THE BEER-WARE LICENSE" (Revision 42): - * - * wrote this file. As long as you retain this notice you - * can do whatever you want with this stuff. If we meet some day, and you think - * this stuff is worth it, you can buy me a beer in return. Luka Pusic - */ - -import type { Faker } from '../..'; - -type OS = 'lin' | 'mac' | 'win'; - -type Browser = 'chrome' | 'iexplorer' | 'firefox' | 'safari' | 'opera'; - -/** - * Generates a random user-agent. - * - * @param faker An existing faker instance. - */ -export function generate(faker: Faker): string { - const randomLang = (): string => - faker.helpers.arrayElement([ - 'AB', - 'AF', - 'AN', - 'AR', - 'AS', - 'AZ', - 'BE', - 'BG', - 'BN', - 'BO', - 'BR', - 'BS', - 'CA', - 'CE', - 'CO', - 'CS', - 'CU', - 'CY', - 'DA', - 'DE', - 'EL', - 'EN', - 'EO', - 'ES', - 'ET', - 'EU', - 'FA', - 'FI', - 'FJ', - 'FO', - 'FR', - 'FY', - 'GA', - 'GD', - 'GL', - 'GV', - 'HE', - 'HI', - 'HR', - 'HT', - 'HU', - 'HY', - 'ID', - 'IS', - 'IT', - 'JA', - 'JV', - 'KA', - 'KG', - 'KO', - 'KU', - 'KW', - 'KY', - 'LA', - 'LB', - 'LI', - 'LN', - 'LT', - 'LV', - 'MG', - 'MK', - 'MN', - 'MO', - 'MS', - 'MT', - 'MY', - 'NB', - 'NE', - 'NL', - 'NN', - 'NO', - 'OC', - 'PL', - 'PT', - 'RM', - 'RO', - 'RU', - 'SC', - 'SE', - 'SK', - 'SL', - 'SO', - 'SQ', - 'SR', - 'SV', - 'SW', - 'TK', - 'TR', - 'TY', - 'UK', - 'UR', - 'UZ', - 'VI', - 'VO', - 'YI', - 'ZH', - ]); - - const randomBrowserAndOS = (): [Browser, OS] => { - const browserToOsMap = { - chrome: ['win', 'mac', 'lin'], - firefox: ['win', 'mac', 'lin'], - opera: ['win', 'mac', 'lin'], - safari: ['win', 'mac'], - iexplorer: ['win'], - } satisfies Record; - const browser: Browser = faker.helpers.objectKey(browserToOsMap); - const os: OS = faker.helpers.arrayElement(browserToOsMap[browser]); - - return [browser, os]; - }; - - const randomProc = (arch: OS): string => - faker.helpers.arrayElement( - ( - { - lin: ['i686', 'x86_64'], - mac: ['Intel', 'PPC', 'U; Intel', 'U; PPC'], - win: ['', 'WOW64', 'Win64; x64'], - } satisfies Record - )[arch] - ); - - const randomRevision = (dots: number): string => { - let return_val = ''; - //generate a random revision - //dots = 2 returns .x.y where x & y are between 0 and 9 - for (let x = 0; x < dots; x++) { - return_val += `.${faker.string.numeric({ allowLeadingZeros: true })}`; - } - - return return_val; - }; - - const version_string = { - net() { - return [ - faker.number.int({ min: 1, max: 4 }), - faker.number.int(9), - faker.number.int({ min: 10000, max: 99999 }), - faker.number.int(9), - ].join('.'); - }, - nt() { - return [faker.number.int({ min: 5, max: 6 }), faker.number.int(3)].join( - '.' - ); - }, - ie() { - return faker.number.int({ min: 7, max: 11 }); - }, - trident() { - return [faker.number.int({ min: 3, max: 7 }), faker.number.int(1)].join( - '.' - ); - }, - osx(delim?: string) { - return [ - 10, - faker.number.int({ min: 5, max: 10 }), - faker.number.int(9), - ].join(delim || '.'); - }, - chrome() { - return [ - faker.number.int({ min: 13, max: 39 }), - 0, - faker.number.int({ min: 800, max: 899 }), - 0, - ].join('.'); - }, - presto() { - return `2.9.${faker.number.int({ min: 160, max: 190 })}`; - }, - presto2() { - return `${faker.number.int({ min: 10, max: 12 })}.00`; - }, - safari() { - return [ - faker.number.int({ min: 531, max: 538 }), - faker.number.int(2), - faker.number.int(2), - ].join('.'); - }, - }; - - const browserMap = { - firefox(arch: OS): string { - //https://developer.mozilla.org/en-US/docs/Gecko_user_agent_string_reference - const firefox_ver = `${faker.number.int({ - min: 5, - max: 15, - })}${randomRevision(2)}`, - gecko_ver = `Gecko/20100101 Firefox/${firefox_ver}`, - proc = randomProc(arch), - os_ver = - arch === 'win' - ? `(Windows NT ${version_string.nt()}${proc ? `; ${proc}` : ''}` - : arch === 'mac' - ? `(Macintosh; ${proc} Mac OS X ${version_string.osx()}` - : `(X11; Linux ${proc}`; - - return `Mozilla/5.0 ${os_ver}; rv:${firefox_ver.slice( - 0, - -2 - )}) ${gecko_ver}`; - }, - - iexplorer(): string { - const ver = version_string.ie(); - - if (ver >= 11) { - //http://msdn.microsoft.com/en-us/library/ie/hh869301(v=vs.85).aspx - return `Mozilla/5.0 (Windows NT 6.${faker.number.int({ - min: 1, - max: 3, - })}; Trident/7.0; ${ - faker.datatype.boolean() ? 'Touch; ' : '' - }rv:11.0) like Gecko`; - } - - //http://msdn.microsoft.com/en-us/library/ie/ms537503(v=vs.85).aspx - return `Mozilla/5.0 (compatible; MSIE ${ver}.0; Windows NT ${version_string.nt()}; Trident/${version_string.trident()}${ - faker.datatype.boolean() ? `; .NET CLR ${version_string.net()}` : '' - })`; - }, - - opera(arch: OS): string { - //http://www.opera.com/docs/history/ - const presto_ver = ` Presto/${version_string.presto()} Version/${version_string.presto2()})`, - os_ver = - arch === 'win' - ? `(Windows NT ${version_string.nt()}; U; ${randomLang()}${presto_ver}` - : arch === 'lin' - ? `(X11; Linux ${randomProc( - arch - )}; U; ${randomLang()}${presto_ver}` - : `(Macintosh; Intel Mac OS X ${version_string.osx()} U; ${randomLang()} Presto/${version_string.presto()} Version/${version_string.presto2()})`; - - return `Opera/${faker.number.int({ - min: 9, - max: 14, - })}.${faker.number.int(99)} ${os_ver}`; - }, - - safari(arch: OS): string { - const safari = version_string.safari(), - ver = `${faker.number.int({ - min: 4, - max: 7, - })}.${faker.number.int(1)}.${faker.number.int(10)}`, - os_ver = - arch === 'mac' - ? `(Macintosh; ${randomProc('mac')} Mac OS X ${version_string.osx( - '_' - )} rv:${faker.number.int({ - min: 2, - max: 6, - })}.0; ${randomLang()}) ` - : `(Windows; U; Windows NT ${version_string.nt()})`; - - return `Mozilla/5.0 ${os_ver}AppleWebKit/${safari} (KHTML, like Gecko) Version/${ver} Safari/${safari}`; - }, - - chrome(arch: OS): string { - const safari = version_string.safari(), - os_ver = - arch === 'mac' - ? `(Macintosh; ${randomProc('mac')} Mac OS X ${version_string.osx( - '_' - )}) ` - : arch === 'win' - ? `(Windows; U; Windows NT ${version_string.nt()})` - : `(X11; Linux ${randomProc(arch)}`; - - return `Mozilla/5.0 ${os_ver} AppleWebKit/${safari} (KHTML, like Gecko) Chrome/${version_string.chrome()} Safari/${safari}`; - }, - }; - - const [browser, arch] = randomBrowserAndOS(); - return browserMap[browser](arch); -} diff --git a/src/modules/location/index.ts b/src/modules/location/index.ts index 4a49e029501..29267eb1a44 100644 --- a/src/modules/location/index.ts +++ b/src/modules/location/index.ts @@ -1,6 +1,26 @@ import { FakerError } from '../../errors/faker-error'; import { ModuleBase } from '../../internal/module-base'; +/** + * Represents a language with its full name, 2 character ISO 639-1 code, and 3 character ISO 639-2 code. + */ +export interface Language { + /** + * The full name for the language (e.g. `English`). + */ + name: string; + + /** + * The 2 character [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) code. + */ + alpha2: string; + + /** + * The 3 character [ISO 639-2](https://en.wikipedia.org/wiki/ISO_639-2) code. + */ + alpha3: string; +} + /** * Module to generate addresses and locations. Prior to Faker 8.0.0, this module was known as `faker.address`. * @@ -628,4 +648,25 @@ export class LocationModule extends ModuleBase { this.faker.definitions.location.time_zone ); } + + /** + * Returns a random spoken language. + * + * @see [ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1) + * @see [ISO 639-2](https://en.wikipedia.org/wiki/ISO_639-2) + * @see [ISO 639-2 Language Code List](https://www.loc.gov/standards/iso639-2/php/code_list.php) + * + * @example + * faker.location.language() // { alpha2: 'de', alpha3: 'deu', name: 'German' } + * faker.location.language().name // German + * faker.location.language().alpha2 // de + * faker.location.language().alpha3 // deu + * + * @since 9.4.0 + */ + language(): Language { + return this.faker.helpers.arrayElement( + this.faker.definitions.location.language + ); + } } diff --git a/src/randomizer.ts b/src/randomizer.ts index a0bc14bfaae..e52deb8701e 100644 --- a/src/randomizer.ts +++ b/src/randomizer.ts @@ -9,7 +9,7 @@ * Instances are expected to be ready for use before being passed to any Faker constructor, * this includes being `seed()`ed with either a random or fixed value. * - * For more information please refer to the [documentation](https://fakerjs.dev/api/randomizer.html). + * For more information please refer to the [documentation](https://fakerjs.dev/guide/randomizer.html). * * @example * import { Faker, Randomizer, SimpleFaker } from '@faker-js/faker'; diff --git a/test/modules/__snapshots__/finance.spec.ts.snap b/test/modules/__snapshots__/finance.spec.ts.snap index 5ac691cf462..7d1a1f4cb2b 100644 --- a/test/modules/__snapshots__/finance.spec.ts.snap +++ b/test/modules/__snapshots__/finance.spec.ts.snap @@ -84,7 +84,7 @@ exports[`finance > 42 > pin > with length option 1`] = `"3975110867"`; exports[`finance > 42 > routingNumber 1`] = `"397511082"`; -exports[`finance > 42 > transactionDescription 1`] = `"deposit transaction at Reynolds, Miller and Crist using card ending with ************4719 for LYD 374.54 in account ***08670982"`; +exports[`finance > 42 > transactionDescription 1`] = `"You made a withdrawal of SAR 598.66 at Crist - Beer using card ending in ****8670 from account ***9821."`; exports[`finance > 42 > transactionType 1`] = `"invoice"`; @@ -172,7 +172,7 @@ exports[`finance > 1211 > pin > with length option 1`] = `"9829667368"`; exports[`finance > 1211 > routingNumber 1`] = `"982966738"`; -exports[`finance > 1211 > transactionDescription 1`] = `"payment transaction at Fahey, Zieme and Osinski using card ending with ***************2758 for HNL 928.52 in account ***73687684"`; +exports[`finance > 1211 > transactionDescription 1`] = `"withdrawal transaction at Zieme - Osinski using card ending with ****6736 for SZL 768.50 in account ***6848."`; exports[`finance > 1211 > transactionType 1`] = `"withdrawal"`; @@ -260,6 +260,6 @@ exports[`finance > 1337 > pin > with length option 1`] = `"2124352971"`; exports[`finance > 1337 > routingNumber 1`] = `"212435298"`; -exports[`finance > 1337 > transactionDescription 1`] = `"invoice transaction at Gottlieb - Koelpin using card ending with *********6413 for JMD 262.02 in account ***52971361"`; +exports[`finance > 1337 > transactionDescription 1`] = `"Payment of CAD 278.12 for invoice at Leannon - Gibson, processed with card ending ****9713 linked to account ***6194."`; exports[`finance > 1337 > transactionType 1`] = `"invoice"`; diff --git a/test/modules/__snapshots__/internet.spec.ts.snap b/test/modules/__snapshots__/internet.spec.ts.snap index 835929e2d86..433507747ed 100644 --- a/test/modules/__snapshots__/internet.spec.ts.snap +++ b/test/modules/__snapshots__/internet.spec.ts.snap @@ -110,7 +110,7 @@ exports[`internet > 42 > url > with slash appended 1`] = `"https://hospitable-un exports[`internet > 42 > url > without slash appended and with http protocol 1`] = `"http://hospitable-unit.net"`; -exports[`internet > 42 > userAgent 1`] = `"Mozilla/5.0 (X11; Linux i686; rv:13.5) Gecko/20100101 Firefox/13.5.1"`; +exports[`internet > 42 > userAgent 1`] = `"Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:131.0) Gecko/20100101 Firefox/118.0"`; exports[`internet > 42 > userName > noArgs 1`] = `"Garnet.Reynolds-Miller15"`; @@ -254,7 +254,7 @@ exports[`internet > 1211 > url > with slash appended 1`] = `"https://velvety-tar exports[`internet > 1211 > url > without slash appended and with http protocol 1`] = `"http://velvety-tarragon.biz"`; -exports[`internet > 1211 > userAgent 1`] = `"Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko"`; +exports[`internet > 1211 > userAgent 1`] = `"Mozilla/5.0 (Linux; Android 13; SM-G998B) AppleWebKit/605.67 (KHTML, like Gecko) Chrome/107.7.3.6 Mobile Safari/592.76"`; exports[`internet > 1211 > userName > noArgs 1`] = `"Tito67"`; @@ -398,7 +398,7 @@ exports[`internet > 1337 > url > with slash appended 1`] = `"https://fatal-co-pr exports[`internet > 1337 > url > without slash appended and with http protocol 1`] = `"http://fatal-co-producer.biz"`; -exports[`internet > 1337 > userAgent 1`] = `"Mozilla/5.0 (Windows NT 5.3; WOW64; rv:8.4) Gecko/20100101 Firefox/8.4.3"`; +exports[`internet > 1337 > userAgent 1`] = `"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/547.27.45 (KHTML, like Gecko) Version/16.1 Safari/558.51.26"`; exports[`internet > 1337 > userName > noArgs 1`] = `"Devyn.Gottlieb"`; diff --git a/test/modules/__snapshots__/location.spec.ts.snap b/test/modules/__snapshots__/location.spec.ts.snap index a8d24e9a6ef..6116943fd53 100644 --- a/test/modules/__snapshots__/location.spec.ts.snap +++ b/test/modules/__snapshots__/location.spec.ts.snap @@ -32,6 +32,14 @@ exports[`location > 42 > direction > noArgs 1`] = `"South"`; exports[`location > 42 > direction > with abbreviated option 1`] = `"S"`; +exports[`location > 42 > language 1`] = ` +{ + "alpha2": "gu", + "alpha3": "guj", + "name": "Gujarati", +} +`; + exports[`location > 42 > latitude > noArgs 1`] = `-22.5828`; exports[`location > 42 > latitude > with max and min option 1`] = `-2.5092`; @@ -170,6 +178,14 @@ exports[`location > 1211 > direction > noArgs 1`] = `"Southwest"`; exports[`location > 1211 > direction > with abbreviated option 1`] = `"SW"`; +exports[`location > 1211 > language 1`] = ` +{ + "alpha2": "tl", + "alpha3": "tgl", + "name": "Tagalog", +} +`; + exports[`location > 1211 > latitude > noArgs 1`] = `77.1337`; exports[`location > 1211 > latitude > with max and min option 1`] = `8.5704`; @@ -308,6 +324,14 @@ exports[`location > 1337 > direction > noArgs 1`] = `"South"`; exports[`location > 1337 > direction > with abbreviated option 1`] = `"S"`; +exports[`location > 1337 > language 1`] = ` +{ + "alpha2": "ru", + "alpha3": "rus", + "name": "Russian", +} +`; + exports[`location > 1337 > latitude > noArgs 1`] = `-42.8356`; exports[`location > 1337 > latitude > with max and min option 1`] = `-4.7595`; diff --git a/test/modules/internet.spec.ts b/test/modules/internet.spec.ts index 9de3a8d9219..9dc376f9f3a 100644 --- a/test/modules/internet.spec.ts +++ b/test/modules/internet.spec.ts @@ -841,9 +841,7 @@ describe('internet', () => { expect(ua).toBeTruthy(); expect(ua).toBeTypeOf('string'); expect(ua.length).toBeGreaterThanOrEqual(1); - expect(ua).toMatch( - /^(([^\d]+\/[\dA-Za-z.]+(\s\(.*\)))|([^\d]+\/[\dA-Za-z.]+(\s\(.*\)*))(\s[^\d]+\/[\dA-Za-z.]+(\s\(.*\)*))*)$/ - ); + expect(ua).includes('/'); }); }); diff --git a/test/modules/location.spec.ts b/test/modules/location.spec.ts index 2be7c4896a3..78b688126dc 100644 --- a/test/modules/location.spec.ts +++ b/test/modules/location.spec.ts @@ -126,6 +126,8 @@ describe('location', () => { t.it('timeZone'); + t.it('language'); + t.describeEach( 'direction', 'cardinalDirection', @@ -415,6 +417,19 @@ describe('location', () => { expect(faker.definitions.location.time_zone).toContain(actual); }); }); + + describe('language()', () => { + it('should return a random language', () => { + const actual = faker.location.language(); + expect(actual.name).toBeTruthy(); + expect(actual.alpha2).toBeTruthy(); + expect(actual.alpha2).toHaveLength(2); + expect(actual.alpha3).toBeTruthy(); + expect(actual.alpha3).toHaveLength(3); + + expect(faker.definitions.location.language).toContain(actual); + }); + }); } ); }); diff --git a/test/scripts/apidocs/__snapshots__/verify-jsdoc-tags.spec.ts.snap b/test/scripts/apidocs/__snapshots__/verify-jsdoc-tags.spec.ts.snap index bc3ee0a01a3..c13b2811a53 100644 --- a/test/scripts/apidocs/__snapshots__/verify-jsdoc-tags.spec.ts.snap +++ b/test/scripts/apidocs/__snapshots__/verify-jsdoc-tags.spec.ts.snap @@ -288,6 +288,7 @@ exports[`check docs completeness > all modules and methods are present 1`] = ` "countryCode", "county", "direction", + "language", "latitude", "longitude", "nearbyGPSCoordinate",