mirror of
https://github.com/imezx/Warp.git
synced 2026-03-18 00:44:16 +00:00
feat(docs): few changes for better appearance
This commit is contained in:
parent
d57d990256
commit
95a84bcaec
686 changed files with 3864 additions and 59792 deletions
36
bun.lock
36
bun.lock
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"lockfileVersion": 1,
|
||||
"configVersion": 0,
|
||||
"configVersion": 1,
|
||||
"workspaces": {
|
||||
"": {
|
||||
"devDependencies": {
|
||||
|
|
@ -10,7 +10,7 @@
|
|||
},
|
||||
},
|
||||
"packages": {
|
||||
"@algolia/abtesting": ["@algolia/abtesting@1.14.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-cZfj+1Z1dgrk3YPtNQNt0H9Rr67P8b4M79JjUKGS0d7/EbFbGxGgSu6zby5f22KXo3LT0LZa4O2c6VVbupJuDg=="],
|
||||
"@algolia/abtesting": ["@algolia/abtesting@1.14.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-Dkj0BgPiLAaim9sbQ97UKDFHJE/880wgStAM18U++NaJ/2Cws34J5731ovJifr6E3Pv4T2CqvMXf8qLCC417Ew=="],
|
||||
|
||||
"@algolia/autocomplete-core": ["@algolia/autocomplete-core@1.17.7", "", { "dependencies": { "@algolia/autocomplete-plugin-algolia-insights": "1.17.7", "@algolia/autocomplete-shared": "1.17.7" } }, "sha512-BjiPOW6ks90UKl7TwMv7oNQMnzU+t/wk9mgIDi6b1tXpUek7MW0lbNOUHpvam9pe3lVCf4xPFT+lK7s+e+fs7Q=="],
|
||||
|
||||
|
|
@ -20,31 +20,31 @@
|
|||
|
||||
"@algolia/autocomplete-shared": ["@algolia/autocomplete-shared@1.17.7", "", { "peerDependencies": { "@algolia/client-search": ">= 4.9.1 < 6", "algoliasearch": ">= 4.9.1 < 6" } }, "sha512-o/1Vurr42U/qskRSuhBH+VKxMvkkUVTLU6WZQr+L5lGZZLYWyhdzWjW0iGXY7EkwRTjBqvN2EsR81yCTGV/kmg=="],
|
||||
|
||||
"@algolia/client-abtesting": ["@algolia/client-abtesting@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-n17WSJ7vazmM6yDkWBAjY12J8ERkW9toOqNgQ1GEZu/Kc4dJDJod1iy+QP5T/UlR3WICgZDi/7a/VX5TY5LAPQ=="],
|
||||
"@algolia/client-abtesting": ["@algolia/client-abtesting@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-LV5qCJdj+/m9I+Aj91o+glYszrzd7CX6NgKaYdTOj4+tUYfbS62pwYgUfZprYNayhkQpVFcrW8x8ZlIHpS23Vw=="],
|
||||
|
||||
"@algolia/client-analytics": ["@algolia/client-analytics@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-v5bMZMEqW9U2l40/tTAaRyn4AKrYLio7KcRuHmLaJtxuJAhvZiE7Y62XIsF070juz4MN3eyvfQmI+y5+OVbZuA=="],
|
||||
"@algolia/client-analytics": ["@algolia/client-analytics@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-/AVoMqHhPm14CcHq7mwB+bUJbfCv+jrxlNvRjXAuO+TQa+V37N8k1b0ijaRBPdmSjULMd8KtJbQyUyabXOu6Kg=="],
|
||||
|
||||
"@algolia/client-common": ["@algolia/client-common@5.48.0", "", {}, "sha512-7H3DgRyi7UByScc0wz7EMrhgNl7fKPDjKX9OcWixLwCj7yrRXDSIzwunykuYUUO7V7HD4s319e15FlJ9CQIIFQ=="],
|
||||
"@algolia/client-common": ["@algolia/client-common@5.48.1", "", {}, "sha512-VXO+qu2Ep6ota28ktvBm3sG53wUHS2n7bgLWmce5jTskdlCD0/JrV4tnBm1l7qpla1CeoQb8D7ShFhad+UoSOw=="],
|
||||
|
||||
"@algolia/client-insights": ["@algolia/client-insights@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-tXmkB6qrIGAXrtRYHQNpfW0ekru/qymV02bjT0w5QGaGw0W91yT+53WB6dTtRRsIrgS30Al6efBvyaEosjZ5uw=="],
|
||||
"@algolia/client-insights": ["@algolia/client-insights@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-zl+Qyb0nLg+Y5YvKp1Ij+u9OaPaKg2/EPzTwKNiVyOHnQJlFxmXyUZL1EInczAZsEY8hVpPCLtNfhMhfxluXKQ=="],
|
||||
|
||||
"@algolia/client-personalization": ["@algolia/client-personalization@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-4tXEsrdtcBZbDF73u14Kb3otN+xUdTVGop1tBjict+Rc/FhsJQVIwJIcTrOJqmvhtBfc56Bu65FiVOnpAZCxcw=="],
|
||||
"@algolia/client-personalization": ["@algolia/client-personalization@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-r89Qf9Oo9mKWQXumRu/1LtvVJAmEDpn8mHZMc485pRfQUMAwSSrsnaw1tQ3sszqzEgAr1c7rw6fjBI+zrAXTOw=="],
|
||||
|
||||
"@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-unzSUwWFpsDrO8935RhMAlyK0Ttua/5XveVIwzfjs5w+GVBsHgIkbOe8VbBJccMU/z1LCwvu1AY3kffuSLAR5Q=="],
|
||||
"@algolia/client-query-suggestions": ["@algolia/client-query-suggestions@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-TPKNPKfghKG/bMSc7mQYD9HxHRUkBZA4q1PEmHgICaSeHQscGqL4wBrKkhfPlDV1uYBKW02pbFMUhsOt7p4ZpA=="],
|
||||
|
||||
"@algolia/client-search": ["@algolia/client-search@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-RB9bKgYTVUiOcEb5bOcZ169jiiVW811dCsJoLT19DcbbFmU4QaK0ghSTssij35QBQ3SCOitXOUrHcGgNVwS7sQ=="],
|
||||
"@algolia/client-search": ["@algolia/client-search@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-4Fu7dnzQyQmMFknYwTiN/HxPbH4DyxvQ1m+IxpPp5oslOgz8m6PG5qhiGbqJzH4HiT1I58ecDiCAC716UyVA8Q=="],
|
||||
|
||||
"@algolia/ingestion": ["@algolia/ingestion@1.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-rhoSoPu+TDzDpvpk3cY/pYgbeWXr23DxnAIH/AkN0dUC+GCnVIeNSQkLaJ+CL4NZ51cjLIjksrzb4KC5Xu+ktw=="],
|
||||
"@algolia/ingestion": ["@algolia/ingestion@1.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-/RFq3TqtXDUUawwic/A9xylA2P3LDMO8dNhphHAUOU51b1ZLHrmZ6YYJm3df1APz7xLY1aht6okCQf+/vmrV9w=="],
|
||||
|
||||
"@algolia/monitoring": ["@algolia/monitoring@1.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-aSe6jKvWt+8VdjOaq2ERtsXp9+qMXNJ3mTyTc1VMhNfgPl7ArOhRMRSQ8QBnY8ZL4yV5Xpezb7lAg8pdGrrulg=="],
|
||||
"@algolia/monitoring": ["@algolia/monitoring@1.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-Of0jTeAZRyRhC7XzDSjJef0aBkgRcvRAaw0ooYRlOw57APii7lZdq+layuNdeL72BRq1snaJhoMMwkmLIpJScw=="],
|
||||
|
||||
"@algolia/recommend": ["@algolia/recommend@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-p9tfI1bimAaZrdiVExL/dDyGUZ8gyiSHsktP1ZWGzt5hXpM3nhv4tSjyHtXjEKtA0UvsaHKwSfFE8aAAm1eIQA=="],
|
||||
"@algolia/recommend": ["@algolia/recommend@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-bE7JcpFXzxF5zHwj/vkl2eiCBvyR1zQ7aoUdO+GDXxGp0DGw7nI0p8Xj6u8VmRQ+RDuPcICFQcCwRIJT5tDJFw=="],
|
||||
|
||||
"@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-XshyfpsQB7BLnHseMinp3fVHOGlTv6uEHOzNK/3XrEF9mjxoZAcdVfY1OCXObfwRWX5qXZOq8FnrndFd44iVsQ=="],
|
||||
"@algolia/requester-browser-xhr": ["@algolia/requester-browser-xhr@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1" } }, "sha512-MK3wZ2koLDnvH/AmqIF1EKbJlhRS5j74OZGkLpxI4rYvNi9Jn/C7vb5DytBnQ4KUWts7QsmbdwHkxY5txQHXVw=="],
|
||||
|
||||
"@algolia/requester-fetch": ["@algolia/requester-fetch@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-Q4XNSVQU89bKNAPuvzSYqTH9AcbOOiIo6AeYMQTxgSJ2+uvT78CLPMG89RIIloYuAtSfE07s40OLV50++l1Bbw=="],
|
||||
"@algolia/requester-fetch": ["@algolia/requester-fetch@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1" } }, "sha512-2oDT43Y5HWRSIQMPQI4tA/W+TN/N2tjggZCUsqQV440kxzzoPGsvv9QP1GhQ4CoDa+yn6ygUsGp6Dr+a9sPPSg=="],
|
||||
|
||||
"@algolia/requester-node-http": ["@algolia/requester-node-http@5.48.0", "", { "dependencies": { "@algolia/client-common": "5.48.0" } }, "sha512-ZgxV2+5qt3NLeUYBTsi6PLyHcENQWC0iFppFZekHSEDA2wcLdTUjnaJzimTEULHIvJuLRCkUs4JABdhuJktEag=="],
|
||||
"@algolia/requester-node-http": ["@algolia/requester-node-http@5.48.1", "", { "dependencies": { "@algolia/client-common": "5.48.1" } }, "sha512-xcaCqbhupVWhuBP1nwbk1XNvwrGljozutEiLx06mvqDf3o8cHyEgQSHS4fKJM+UAggaWVnnFW+Nne5aQ8SUJXg=="],
|
||||
|
||||
"@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="],
|
||||
|
||||
|
|
@ -230,7 +230,7 @@
|
|||
|
||||
"@vueuse/shared": ["@vueuse/shared@12.8.2", "", { "dependencies": { "vue": "^3.5.13" } }, "sha512-dznP38YzxZoNloI0qpEfpkms8knDtaoQ6Y/sfS0L7Yki4zh40LFHEhur0odJC6xTHG5dxWVPiUWBXn+wCG2s5w=="],
|
||||
|
||||
"algoliasearch": ["algoliasearch@5.48.0", "", { "dependencies": { "@algolia/abtesting": "1.14.0", "@algolia/client-abtesting": "5.48.0", "@algolia/client-analytics": "5.48.0", "@algolia/client-common": "5.48.0", "@algolia/client-insights": "5.48.0", "@algolia/client-personalization": "5.48.0", "@algolia/client-query-suggestions": "5.48.0", "@algolia/client-search": "5.48.0", "@algolia/ingestion": "1.48.0", "@algolia/monitoring": "1.48.0", "@algolia/recommend": "5.48.0", "@algolia/requester-browser-xhr": "5.48.0", "@algolia/requester-fetch": "5.48.0", "@algolia/requester-node-http": "5.48.0" } }, "sha512-aD8EQC6KEman6/S79FtPdQmB7D4af/etcRL/KwiKFKgAE62iU8c5PeEQvpvIcBPurC3O/4Lj78nOl7ZcoazqSw=="],
|
||||
"algoliasearch": ["algoliasearch@5.48.1", "", { "dependencies": { "@algolia/abtesting": "1.14.1", "@algolia/client-abtesting": "5.48.1", "@algolia/client-analytics": "5.48.1", "@algolia/client-common": "5.48.1", "@algolia/client-insights": "5.48.1", "@algolia/client-personalization": "5.48.1", "@algolia/client-query-suggestions": "5.48.1", "@algolia/client-search": "5.48.1", "@algolia/ingestion": "1.48.1", "@algolia/monitoring": "1.48.1", "@algolia/recommend": "5.48.1", "@algolia/requester-browser-xhr": "5.48.1", "@algolia/requester-fetch": "5.48.1", "@algolia/requester-node-http": "5.48.1" } }, "sha512-Rf7xmeuIo7nb6S4mp4abW2faW8DauZyE2faBIKFaUfP3wnpOvNSbiI5AwVhqBNj0jPgBWEvhyCu0sLjN2q77Rg=="],
|
||||
|
||||
"birpc": ["birpc@2.9.0", "", {}, "sha512-KrayHS5pBi69Xi9JmvoqrIgYGDkD6mcSe/i6YKi3w5kekCLzrX4+nawcXqrj2tIp50Kw/mT/s3p+GVK0A0sKxw=="],
|
||||
|
||||
|
|
@ -302,7 +302,7 @@
|
|||
|
||||
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
||||
|
||||
"preact": ["preact@10.19.3", "", {}, "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ=="],
|
||||
"preact": ["preact@10.28.3", "", {}, "sha512-tCmoRkPQLpBeWzpmbhryairGnhW9tKV6c6gr/w+RhoRoKEJwsjzipwp//1oCpGPOchvSLaAPlpcJi9MwMmoPyA=="],
|
||||
|
||||
"property-information": ["property-information@7.1.0", "", {}, "sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ=="],
|
||||
|
||||
|
|
@ -316,7 +316,7 @@
|
|||
|
||||
"rollup": ["rollup@4.57.1", "", { "dependencies": { "@types/estree": "1.0.8" }, "optionalDependencies": { "@rollup/rollup-android-arm-eabi": "4.57.1", "@rollup/rollup-android-arm64": "4.57.1", "@rollup/rollup-darwin-arm64": "4.57.1", "@rollup/rollup-darwin-x64": "4.57.1", "@rollup/rollup-freebsd-arm64": "4.57.1", "@rollup/rollup-freebsd-x64": "4.57.1", "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", "@rollup/rollup-linux-arm-musleabihf": "4.57.1", "@rollup/rollup-linux-arm64-gnu": "4.57.1", "@rollup/rollup-linux-arm64-musl": "4.57.1", "@rollup/rollup-linux-loong64-gnu": "4.57.1", "@rollup/rollup-linux-loong64-musl": "4.57.1", "@rollup/rollup-linux-ppc64-gnu": "4.57.1", "@rollup/rollup-linux-ppc64-musl": "4.57.1", "@rollup/rollup-linux-riscv64-gnu": "4.57.1", "@rollup/rollup-linux-riscv64-musl": "4.57.1", "@rollup/rollup-linux-s390x-gnu": "4.57.1", "@rollup/rollup-linux-x64-gnu": "4.57.1", "@rollup/rollup-linux-x64-musl": "4.57.1", "@rollup/rollup-openbsd-x64": "4.57.1", "@rollup/rollup-openharmony-arm64": "4.57.1", "@rollup/rollup-win32-arm64-msvc": "4.57.1", "@rollup/rollup-win32-ia32-msvc": "4.57.1", "@rollup/rollup-win32-x64-gnu": "4.57.1", "@rollup/rollup-win32-x64-msvc": "4.57.1", "fsevents": "~2.3.2" }, "bin": { "rollup": "dist/bin/rollup" } }, "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A=="],
|
||||
|
||||
"search-insights": ["search-insights@2.13.0", "", {}, "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw=="],
|
||||
"search-insights": ["search-insights@2.17.3", "", {}, "sha512-RQPdCYTa8A68uM2jwxoY842xDhvx3E5LFL1LxvxCNMev4o5mLuokczhzjAgGwUZBAmOKZknArSxLKmXtIi2AxQ=="],
|
||||
|
||||
"shiki": ["shiki@2.5.0", "", { "dependencies": { "@shikijs/core": "2.5.0", "@shikijs/engine-javascript": "2.5.0", "@shikijs/engine-oniguruma": "2.5.0", "@shikijs/langs": "2.5.0", "@shikijs/themes": "2.5.0", "@shikijs/types": "2.5.0", "@shikijs/vscode-textmate": "^10.0.2", "@types/hast": "^3.0.4" } }, "sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ=="],
|
||||
|
||||
|
|
|
|||
20
docs/.vitepress/cache/deps/_metadata.json
vendored
20
docs/.vitepress/cache/deps/_metadata.json
vendored
|
|
@ -1,43 +1,43 @@
|
|||
{
|
||||
"hash": "f3a26489",
|
||||
"configHash": "4a0428f0",
|
||||
"lockfileHash": "fbe7d3cd",
|
||||
"browserHash": "8e057cea",
|
||||
"hash": "ae8ed175",
|
||||
"configHash": "ad343dd6",
|
||||
"lockfileHash": "e3b0c442",
|
||||
"browserHash": "317f7f96",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "a0185409",
|
||||
"fileHash": "b3c2417e",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vue/devtools-api": {
|
||||
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
||||
"file": "vitepress___@vue_devtools-api.js",
|
||||
"fileHash": "8ada93ae",
|
||||
"fileHash": "ffb91792",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/core": {
|
||||
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
||||
"file": "vitepress___@vueuse_core.js",
|
||||
"fileHash": "2d8ce331",
|
||||
"fileHash": "58b8626d",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/integrations/useFocusTrap": {
|
||||
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
||||
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
||||
"fileHash": "1e108db2",
|
||||
"fileHash": "a3a5751e",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > mark.js/src/vanilla.js": {
|
||||
"src": "../../../../node_modules/mark.js/src/vanilla.js",
|
||||
"file": "vitepress___mark__js_src_vanilla__js.js",
|
||||
"fileHash": "2ceafc1e",
|
||||
"fileHash": "fd5ee677",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > minisearch": {
|
||||
"src": "../../../../node_modules/minisearch/dist/es/index.js",
|
||||
"file": "vitepress___minisearch.js",
|
||||
"fileHash": "e70ffd6d",
|
||||
"fileHash": "02230d0a",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
|
|
|
|||
|
|
@ -30,8 +30,11 @@
|
|||
--glass-bg: rgba(255, 255, 255, 0.8);
|
||||
--glass-border: rgba(0, 0, 0, 0.08);
|
||||
--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.08);
|
||||
--glass-shadow-2: 0 6px 24px 0 rgba(0, 0, 0, 0.08);
|
||||
--glass-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.6);
|
||||
--glass-blur: 28px;
|
||||
--glass-blur-2: 16px;
|
||||
--glass-blur-3: 24px;
|
||||
--glass-radius: 24px;
|
||||
--glass-menu-radius: 12px;
|
||||
|
||||
|
|
@ -70,6 +73,7 @@
|
|||
|
||||
--vp-c-bg: #0f0f11;
|
||||
--vp-c-bg-alt: #161618;
|
||||
--vp-c-gutter: rgba(255, 255, 255, 0.4);
|
||||
}
|
||||
|
||||
body::before {
|
||||
|
|
@ -92,9 +96,13 @@ body::before {
|
|||
radial-gradient(circle at 10% 90%, rgba(79, 70, 229, 0.12), transparent 50%);
|
||||
}
|
||||
|
||||
.VPNav { background-color: transparent !important; }
|
||||
.VPNav,
|
||||
.VPLocalNav, .shell, .backdrop {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
|
||||
.VPNavBar {
|
||||
.VPNavBar,
|
||||
.VPLocalNav {
|
||||
background-color: var(--glass-nav-bg) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
|
|
@ -102,15 +110,60 @@ body::before {
|
|||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
|
||||
.VPNav .content-body { background-color: transparent !important; backdrop-filter: none !important; }
|
||||
.VPNav .content-body,
|
||||
.VPLocalNav.container {
|
||||
background-color: transparent !important;
|
||||
backdrop-filter: none !important;
|
||||
}
|
||||
|
||||
.VPSidebar {
|
||||
background-color: var(--glass-sidebar-bg) !important;
|
||||
backdrop-filter: blur(var(--glass-blur));
|
||||
.VPNavScreenAppearance {
|
||||
background-color: transparent !important;
|
||||
backdrop-filter: blur(var(--glass-blur)) !important;
|
||||
border: 1px solid var(--glass-border);
|
||||
}
|
||||
|
||||
.VPNavScreenMenuLink, .VPNavScreenMenuGroup {
|
||||
border-bottom: 1px solid var(--glass-border) !important;
|
||||
}
|
||||
|
||||
.VPLocalNav .outline {
|
||||
background-color: rgba(24, 24, 29, 0.9) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
border: 1px solid var(--glass-border) !important;
|
||||
}
|
||||
.VPLocalNav .header {
|
||||
background-color: rgba(24, 24, 29, 0.95) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
border: 1px solid var(--glass-border) !important;
|
||||
}
|
||||
|
||||
.VPSidebar,
|
||||
.VPNavScreen {
|
||||
background-color: transparent !important;
|
||||
backdrop-filter: blur(var(--glass-blur-3)) !important;
|
||||
border-right: 1px solid var(--glass-border);
|
||||
}
|
||||
|
||||
.VPNavBar .divider { display: none; }
|
||||
.shell {
|
||||
background-color: var(--glass-bg) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur-2)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur-2)) !important;
|
||||
border: 1px solid var(--glass-border) !important;
|
||||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
.backdrop {
|
||||
background-color: transparent !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur-2)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur-2)) !important;
|
||||
border: 1px solid var(--glass-border) !important;
|
||||
box-shadow: var(--glass-shadow);
|
||||
}
|
||||
|
||||
.VPNavBar .divider {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.VPFlyout .menu {
|
||||
background-color: var(--glass-bg) !important;
|
||||
|
|
@ -141,6 +194,25 @@ body::before {
|
|||
background-color: rgba(255, 255, 255, 0.05) !important;
|
||||
}
|
||||
|
||||
.vp-adaptive-theme {
|
||||
background-color: var(--glass-bg) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
}
|
||||
.custom-block {
|
||||
backdrop-filter: blur(var(--glass-blur)) !important;
|
||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
|
||||
border: 1px solid var(--glass-border) !important;
|
||||
border-radius: var(--glass-menu-radius) !important;
|
||||
|
||||
background-clip: padding-box !important;
|
||||
box-shadow: var(--glass-shadow-2), var(--glass-highlight) !important;
|
||||
|
||||
transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
|
||||
border-color 0.3s ease,
|
||||
box-shadow 0.3s ease !important;
|
||||
}
|
||||
|
||||
.VPFeature {
|
||||
background: var(--glass-bg) !important;
|
||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||
|
|
@ -195,10 +267,15 @@ body::before {
|
|||
}
|
||||
|
||||
@media (min-width: 640px) {
|
||||
:root { --vp-home-hero-image-filter: blur(56px); }
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(56px);
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 960px) {
|
||||
:root { --vp-home-hero-image-filter: blur(72px); }
|
||||
:root {
|
||||
--vp-home-hero-image-filter: blur(72px);
|
||||
}
|
||||
}
|
||||
|
||||
.DocSearch {
|
||||
|
|
@ -213,6 +290,7 @@ body::before {
|
|||
.VPHero .name {
|
||||
text-shadow: 0 0 40px rgba(254, 82, 52, 0.3);
|
||||
}
|
||||
|
||||
.VPHero .image-src {
|
||||
animation: float-premium 6s ease-in-out infinite;
|
||||
transform-origin: center center;
|
||||
|
|
@ -223,9 +301,17 @@ body::before {
|
|||
}
|
||||
|
||||
@keyframes float-premium {
|
||||
0% { transform: translate(-50%, -50%) translateY(0px); }
|
||||
50% { transform: translate(-50%, -50%) translateY(-16px); }
|
||||
100% { transform: translate(-50%, -50%) translateY(0px); }
|
||||
0% {
|
||||
transform: translate(-50%, -50%) translateY(0px);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translate(-50%, -50%) translateY(-16px);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translate(-50%, -50%) translateY(0px);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes pulse-glow-premium {
|
||||
|
|
@ -233,6 +319,7 @@ body::before {
|
|||
opacity: 0.6;
|
||||
transform: translate(-50%, -50%) scale(0.95);
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translate(-50%, -50%) scale(1.1);
|
||||
|
|
|
|||
1
node_modules/.bin/esbuild
generated
vendored
1
node_modules/.bin/esbuild
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../@esbuild/linux-x64/bin/esbuild
|
||||
17
node_modules/.bin/esbuild.cmd
generated
vendored
17
node_modules/.bin/esbuild.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*
|
||||
28
node_modules/.bin/esbuild.ps1
generated
vendored
28
node_modules/.bin/esbuild.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
1
node_modules/.bin/nanoid
generated
vendored
1
node_modules/.bin/nanoid
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../nanoid/bin/nanoid.cjs
|
||||
17
node_modules/.bin/nanoid.cmd
generated
vendored
17
node_modules/.bin/nanoid.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*
|
||||
28
node_modules/.bin/nanoid.ps1
generated
vendored
28
node_modules/.bin/nanoid.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
1
node_modules/.bin/parser
generated
vendored
1
node_modules/.bin/parser
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../@babel/parser/bin/babel-parser.js
|
||||
17
node_modules/.bin/parser.cmd
generated
vendored
17
node_modules/.bin/parser.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*
|
||||
28
node_modules/.bin/parser.ps1
generated
vendored
28
node_modules/.bin/parser.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
1
node_modules/.bin/rollup
generated
vendored
1
node_modules/.bin/rollup
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../rollup/dist/bin/rollup
|
||||
17
node_modules/.bin/rollup.cmd
generated
vendored
17
node_modules/.bin/rollup.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*
|
||||
28
node_modules/.bin/rollup.ps1
generated
vendored
28
node_modules/.bin/rollup.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../rollup/dist/bin/rollup" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
1
node_modules/.bin/vite
generated
vendored
1
node_modules/.bin/vite
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../vite/bin/vite.js
|
||||
17
node_modules/.bin/vite.cmd
generated
vendored
17
node_modules/.bin/vite.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vite\bin\vite.js" %*
|
||||
28
node_modules/.bin/vite.ps1
generated
vendored
28
node_modules/.bin/vite.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vite/bin/vite.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
1
node_modules/.bin/vitepress
generated
vendored
1
node_modules/.bin/vitepress
generated
vendored
|
|
@ -1 +0,0 @@
|
|||
../vitepress/bin/vitepress.js
|
||||
17
node_modules/.bin/vitepress.cmd
generated
vendored
17
node_modules/.bin/vitepress.cmd
generated
vendored
|
|
@ -1,17 +0,0 @@
|
|||
@ECHO off
|
||||
GOTO start
|
||||
:find_dp0
|
||||
SET dp0=%~dp0
|
||||
EXIT /b
|
||||
:start
|
||||
SETLOCAL
|
||||
CALL :find_dp0
|
||||
|
||||
IF EXIST "%dp0%\node.exe" (
|
||||
SET "_prog=%dp0%\node.exe"
|
||||
) ELSE (
|
||||
SET "_prog=node"
|
||||
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||
)
|
||||
|
||||
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\vitepress\bin\vitepress.js" %*
|
||||
28
node_modules/.bin/vitepress.ps1
generated
vendored
28
node_modules/.bin/vitepress.ps1
generated
vendored
|
|
@ -1,28 +0,0 @@
|
|||
#!/usr/bin/env pwsh
|
||||
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||
|
||||
$exe=""
|
||||
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||
# Fix case when both the Windows and Linux builds of Node
|
||||
# are installed in the same directory
|
||||
$exe=".exe"
|
||||
}
|
||||
$ret=0
|
||||
if (Test-Path "$basedir/node$exe") {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "$basedir/node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
} else {
|
||||
& "$basedir/node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
} else {
|
||||
# Support pipeline input
|
||||
if ($MyInvocation.ExpectingInput) {
|
||||
$input | & "node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
} else {
|
||||
& "node$exe" "$basedir/../vitepress/bin/vitepress.js" $args
|
||||
}
|
||||
$ret=$LASTEXITCODE
|
||||
}
|
||||
exit $ret
|
||||
979
node_modules/.package-lock.json
generated
vendored
979
node_modules/.package-lock.json
generated
vendored
|
|
@ -1,979 +0,0 @@
|
|||
{
|
||||
"name": "Warp",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"node_modules/@algolia/autocomplete-core": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-core/-/autocomplete-core-1.9.3.tgz",
|
||||
"integrity": "sha512-009HdfugtGCdC4JdXUbVJClA0q0zh24yyePn+KUGk3rP7j8FEe/m5Yo/z65gn6nP/cM39PxpzqKrL7A6fP6PPw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-plugin-algolia-insights": "1.9.3",
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-plugin-algolia-insights": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.9.3.tgz",
|
||||
"integrity": "sha512-a/yTUkcO/Vyy+JffmAnTWbr4/90cLzw+CC3bRbhnULr/EM0fGNvM13oQQ14f2moLMcVDyAx/leczLlAOovhSZg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"search-insights": ">= 1 < 3"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-preset-algolia": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz",
|
||||
"integrity": "sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-shared": "1.9.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@algolia/client-search": ">= 4.9.1 < 6",
|
||||
"algoliasearch": ">= 4.9.1 < 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/autocomplete-shared": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz",
|
||||
"integrity": "sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"@algolia/client-search": ">= 4.9.1 < 6",
|
||||
"algoliasearch": ">= 4.9.1 < 6"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/cache-browser-local-storage": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.0.tgz",
|
||||
"integrity": "sha512-uZ1uZMLDZb4qODLfTSNHxSi4fH9RdrQf7DXEzW01dS8XK7QFtFh29N5NGKa9S+Yudf1vUMIF+/RiL4i/J0pWlQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/cache-common": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.0.tgz",
|
||||
"integrity": "sha512-TPwUMlIGPN16eW67qamNQUmxNiGHg/WBqWcrOoCddhqNTqGDPVqmgfaM85LPbt24t3r1z0zEz/tdsmuq3Q6oaA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/cache-in-memory": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.0.tgz",
|
||||
"integrity": "sha512-kf4Cio9NpPjzp1+uXQgL4jsMDeck7MP89BYThSvXSjf2A6qV/0KeqQf90TL2ECS02ovLOBXkk98P7qVarM+zGA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-account": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.0.tgz",
|
||||
"integrity": "sha512-Bjb5UXpWmJT+yGWiqAJL0prkENyEZTBzdC+N1vBuHjwIJcjLMjPB6j1hNBRbT12Lmwi55uzqeMIKS69w+0aPzA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/client-search": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-analytics": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.0.tgz",
|
||||
"integrity": "sha512-os2K+kHUcwwRa4ArFl5p/3YbF9lN3TLOPkbXXXxOvDpqFh62n9IRZuzfxpHxMPKAQS3Et1s0BkKavnNP02E9Hg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/client-search": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-common": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.0.tgz",
|
||||
"integrity": "sha512-BlbkF4qXVWuwTmYxVWvqtatCR3lzXwxx628p1wj1Q7QP2+LsTmGt1DiUYRuy9jG7iMsnlExby6kRMOOlbhv2Ag==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-personalization": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.0.tgz",
|
||||
"integrity": "sha512-pEOftCxeBdG5pL97WngOBi9w5Vxr5KCV2j2D+xMVZH8MuU/JX7CglDSDDb0ffQWYqcUN+40Ry+xtXEYaGXTGow==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/client-search": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.0.tgz",
|
||||
"integrity": "sha512-bn4qQiIdRPBGCwsNuuqB8rdHhGKKWIij9OqidM1UkQxnSG8yzxHdb7CujM30pvp5EnV7jTqDZRbxacbjYVW20Q==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/logger-common": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.0.tgz",
|
||||
"integrity": "sha512-HMUQTID0ucxNCXs5d1eBJ5q/HuKg8rFVE/vOiLaM4Abfeq1YnTtGV3+rFEhOPWhRQxNDd+YHa4q864IMc0zHpQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/logger-console": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.0.tgz",
|
||||
"integrity": "sha512-7JKb6hgcY64H7CRm3u6DRAiiEVXMvCJV5gRE672QFOUgDxo4aiDpfU61g6Uzy8NKjlEzHMmgG4e2fklELmPXhQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/logger-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/requester-browser-xhr": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.0.tgz",
|
||||
"integrity": "sha512-BHfv1h7P9/SyvcDJDaRuIwDu2yrDLlXlYmjvaLZTtPw6Ok/ZVhBR55JqW832XN/Fsl6k3LjdkYHHR7xnsa5Wvg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/requester-common": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.0.tgz",
|
||||
"integrity": "sha512-Y9cEH/cKjIIZgzvI1aI0ARdtR/xRrOR13g5psCxkdhpgRN0Vcorx+zePhmAa4jdQNqexpxtkUdcKYugBzMZJgQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@algolia/requester-node-http": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.0.tgz",
|
||||
"integrity": "sha512-8xHoGpxVhz3u2MYIieHIB6MsnX+vfd5PS4REgglejJ6lPigftRhTdBCToe6zbwq4p0anZXjjPDvNWMlgK2+xYA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/requester-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@algolia/transporter": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.0.tgz",
|
||||
"integrity": "sha512-ieO1k8x2o77GNvOoC+vAkFKppydQSVfbjM3YrSjLmgywiBejPTvU1R1nEvG59JIIUvtSLrZsLGPkd6vL14zopA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0",
|
||||
"@algolia/logger-common": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.23.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.9.tgz",
|
||||
"integrity": "sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==",
|
||||
"dev": true,
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docsearch/css": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/css/-/css-3.5.2.tgz",
|
||||
"integrity": "sha512-SPiDHaWKQZpwR2siD0KQUwlStvIAnEyK6tAE2h2Wuoq8ue9skzhlyVQ1ddzOxX6khULnAALDiR/isSF3bnuciA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@docsearch/js": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/js/-/js-3.5.2.tgz",
|
||||
"integrity": "sha512-p1YFTCDflk8ieHgFJYfmyHBki1D61+U9idwrLh+GQQMrBSP3DLGKpy0XUJtPjAOPltcVbqsTjiPFfH7JImjUNg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@docsearch/react": "3.5.2",
|
||||
"preact": "^10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@docsearch/react": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/@docsearch/react/-/react-3.5.2.tgz",
|
||||
"integrity": "sha512-9Ahcrs5z2jq/DcAvYtvlqEBHImbm4YJI8M9y0x6Tqg598P40HTEkX7hsMcIuThI+hTFxRGZ9hll0Wygm2yEjng==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/autocomplete-core": "1.9.3",
|
||||
"@algolia/autocomplete-preset-algolia": "1.9.3",
|
||||
"@docsearch/css": "3.5.2",
|
||||
"algoliasearch": "^4.19.1"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/react": ">= 16.8.0 < 19.0.0",
|
||||
"react": ">= 16.8.0 < 19.0.0",
|
||||
"react-dom": ">= 16.8.0 < 19.0.0",
|
||||
"search-insights": ">= 1 < 3"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/react": {
|
||||
"optional": true
|
||||
},
|
||||
"react": {
|
||||
"optional": true
|
||||
},
|
||||
"react-dom": {
|
||||
"optional": true
|
||||
},
|
||||
"search-insights": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz",
|
||||
"integrity": "sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/sourcemap-codec": {
|
||||
"version": "1.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz",
|
||||
"integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.9.6",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.6.tgz",
|
||||
"integrity": "sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@types/estree": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/linkify-it": {
|
||||
"version": "3.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz",
|
||||
"integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/markdown-it": {
|
||||
"version": "13.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-13.0.7.tgz",
|
||||
"integrity": "sha512-U/CBi2YUUcTHBt5tjO2r5QV/x0Po6nsYwQU4Y04fBS6vfoImaiZ6f8bi3CjTCxBPQSO1LMyUqkByzi8AidyxfA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/linkify-it": "*",
|
||||
"@types/mdurl": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@types/mdurl": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz",
|
||||
"integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/web-bluetooth": {
|
||||
"version": "0.0.20",
|
||||
"resolved": "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.20.tgz",
|
||||
"integrity": "sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vitejs/plugin-vue": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.3.tgz",
|
||||
"integrity": "sha512-b8S5dVS40rgHdDrw+DQi/xOM9ed+kSRZzfm1T74bMmBDCd8XO87NKlFYInzCtwvtWwXZvo1QxE2OSspTATWrbA==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vite": "^5.0.0",
|
||||
"vue": "^3.2.25"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-core": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.15.tgz",
|
||||
"integrity": "sha512-XcJQVOaxTKCnth1vCxEChteGuwG6wqnUHxAm1DO3gCz0+uXKaJNx8/digSz4dLALCy8n2lKq24jSUs8segoqIw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.23.6",
|
||||
"@vue/shared": "3.4.15",
|
||||
"entities": "^4.5.0",
|
||||
"estree-walker": "^2.0.2",
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-dom": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.15.tgz",
|
||||
"integrity": "sha512-wox0aasVV74zoXyblarOM3AZQz/Z+OunYcIHe1OsGclCHt8RsRm04DObjefaI82u6XDzv+qGWZ24tIsRAIi5MQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-core": "3.4.15",
|
||||
"@vue/shared": "3.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-sfc": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.15.tgz",
|
||||
"integrity": "sha512-LCn5M6QpkpFsh3GQvs2mJUOAlBQcCco8D60Bcqmf3O3w5a+KWS5GvYbrrJBkgvL1BDnTp+e8q0lXCLgHhKguBA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.23.6",
|
||||
"@vue/compiler-core": "3.4.15",
|
||||
"@vue/compiler-dom": "3.4.15",
|
||||
"@vue/compiler-ssr": "3.4.15",
|
||||
"@vue/shared": "3.4.15",
|
||||
"estree-walker": "^2.0.2",
|
||||
"magic-string": "^0.30.5",
|
||||
"postcss": "^8.4.33",
|
||||
"source-map-js": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/compiler-ssr": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.15.tgz",
|
||||
"integrity": "sha512-1jdeQyiGznr8gjFDadVmOJqZiLNSsMa5ZgqavkPZ8O2wjHv0tVuAEsw5hTdUoUW4232vpBbL/wJhzVW/JwY1Uw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.15",
|
||||
"@vue/shared": "3.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/devtools-api": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz",
|
||||
"integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vue/reactivity": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.15.tgz",
|
||||
"integrity": "sha512-55yJh2bsff20K5O84MxSvXKPHHt17I2EomHznvFiJCAZpJTNW8IuLj1xZWMLELRhBK3kkFV/1ErZGHJfah7i7w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/shared": "3.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-core": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.15.tgz",
|
||||
"integrity": "sha512-6E3by5m6v1AkW0McCeAyhHTw+3y17YCOKG0U0HDKDscV4Hs0kgNT5G+GCHak16jKgcCDHpI9xe5NKb8sdLCLdw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/reactivity": "3.4.15",
|
||||
"@vue/shared": "3.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/runtime-dom": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.15.tgz",
|
||||
"integrity": "sha512-EVW8D6vfFVq3V/yDKNPBFkZKGMFSvZrUQmx196o/v2tHKdwWdiZjYUBS+0Ez3+ohRyF8Njwy/6FH5gYJ75liUw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/runtime-core": "3.4.15",
|
||||
"@vue/shared": "3.4.15",
|
||||
"csstype": "^3.1.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/server-renderer": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.15.tgz",
|
||||
"integrity": "sha512-3HYzaidu9cHjrT+qGUuDhFYvF/j643bHC6uUN9BgM11DVy+pM6ATsG6uPBLnkwOgs7BpJABReLmpL3ZPAsUaqw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-ssr": "3.4.15",
|
||||
"@vue/shared": "3.4.15"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": "3.4.15"
|
||||
}
|
||||
},
|
||||
"node_modules/@vue/shared": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.15.tgz",
|
||||
"integrity": "sha512-KzfPTxVaWfB+eGcGdbSf4CWdaXcGDqckoeXUh7SB3fZdEtzPCK2Vq9B/lRRL3yutax/LWITz+SwvgyOxz5V75g==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@vueuse/core": {
|
||||
"version": "10.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/core/-/core-10.7.2.tgz",
|
||||
"integrity": "sha512-AOyAL2rK0By62Hm+iqQn6Rbu8bfmbgaIMXcE3TSr7BdQ42wnSFlwIdPjInO62onYsEMK/yDMU8C6oGfDAtZ2qQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/web-bluetooth": "^0.0.20",
|
||||
"@vueuse/metadata": "10.7.2",
|
||||
"@vueuse/shared": "10.7.2",
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/core/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/integrations": {
|
||||
"version": "10.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/integrations/-/integrations-10.7.2.tgz",
|
||||
"integrity": "sha512-+u3RLPFedjASs5EKPc69Ge49WNgqeMfSxFn+qrQTzblPXZg6+EFzhjarS5edj2qAf6xQ93f95TUxRwKStXj/sQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vueuse/core": "10.7.2",
|
||||
"@vueuse/shared": "10.7.2",
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"async-validator": "*",
|
||||
"axios": "*",
|
||||
"change-case": "*",
|
||||
"drauu": "*",
|
||||
"focus-trap": "*",
|
||||
"fuse.js": "*",
|
||||
"idb-keyval": "*",
|
||||
"jwt-decode": "*",
|
||||
"nprogress": "*",
|
||||
"qrcode": "*",
|
||||
"sortablejs": "*",
|
||||
"universal-cookie": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"async-validator": {
|
||||
"optional": true
|
||||
},
|
||||
"axios": {
|
||||
"optional": true
|
||||
},
|
||||
"change-case": {
|
||||
"optional": true
|
||||
},
|
||||
"drauu": {
|
||||
"optional": true
|
||||
},
|
||||
"focus-trap": {
|
||||
"optional": true
|
||||
},
|
||||
"fuse.js": {
|
||||
"optional": true
|
||||
},
|
||||
"idb-keyval": {
|
||||
"optional": true
|
||||
},
|
||||
"jwt-decode": {
|
||||
"optional": true
|
||||
},
|
||||
"nprogress": {
|
||||
"optional": true
|
||||
},
|
||||
"qrcode": {
|
||||
"optional": true
|
||||
},
|
||||
"sortablejs": {
|
||||
"optional": true
|
||||
},
|
||||
"universal-cookie": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/integrations/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/metadata": {
|
||||
"version": "10.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/metadata/-/metadata-10.7.2.tgz",
|
||||
"integrity": "sha512-kCWPb4J2KGrwLtn1eJwaJD742u1k5h6v/St5wFe8Quih90+k2a0JP8BS4Zp34XUuJqS2AxFYMb1wjUL8HfhWsQ==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared": {
|
||||
"version": "10.7.2",
|
||||
"resolved": "https://registry.npmjs.org/@vueuse/shared/-/shared-10.7.2.tgz",
|
||||
"integrity": "sha512-qFbXoxS44pi2FkgFjPvF4h7c9oMDutpyBdcJdMYIMg9XyXli2meFMuaKn+UMgsClo//Th6+beeCgqweT/79BVA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"vue-demi": ">=0.14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/@vueuse/shared/node_modules/vue-demi": {
|
||||
"version": "0.14.6",
|
||||
"resolved": "https://registry.npmjs.org/vue-demi/-/vue-demi-0.14.6.tgz",
|
||||
"integrity": "sha512-8QA7wrYSHKaYgUxDA5ZC24w+eHm3sYCbp0EzcDwKqN3p6HqtTCGR/GVsPyZW92unff4UlcSh++lmqDWN3ZIq4w==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"vue-demi-fix": "bin/vue-demi-fix.js",
|
||||
"vue-demi-switch": "bin/vue-demi-switch.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@vue/composition-api": "^1.0.0-rc.1",
|
||||
"vue": "^3.0.0-0 || ^2.6.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@vue/composition-api": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/algoliasearch": {
|
||||
"version": "4.22.0",
|
||||
"resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.0.tgz",
|
||||
"integrity": "sha512-gfceltjkwh7PxXwtkS8KVvdfK+TSNQAWUeNSxf4dA29qW5tf2EGwa8jkJujlT9jLm17cixMVoGNc+GJFO1Mxhg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@algolia/cache-browser-local-storage": "4.22.0",
|
||||
"@algolia/cache-common": "4.22.0",
|
||||
"@algolia/cache-in-memory": "4.22.0",
|
||||
"@algolia/client-account": "4.22.0",
|
||||
"@algolia/client-analytics": "4.22.0",
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/client-personalization": "4.22.0",
|
||||
"@algolia/client-search": "4.22.0",
|
||||
"@algolia/logger-common": "4.22.0",
|
||||
"@algolia/logger-console": "4.22.0",
|
||||
"@algolia/requester-browser-xhr": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0",
|
||||
"@algolia/requester-node-http": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
},
|
||||
"node_modules/csstype": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz",
|
||||
"integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/entities": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
||||
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.12"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/fb55/entities?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/esbuild": {
|
||||
"version": "0.19.12",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz",
|
||||
"integrity": "sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@esbuild/aix-ppc64": "0.19.12",
|
||||
"@esbuild/android-arm": "0.19.12",
|
||||
"@esbuild/android-arm64": "0.19.12",
|
||||
"@esbuild/android-x64": "0.19.12",
|
||||
"@esbuild/darwin-arm64": "0.19.12",
|
||||
"@esbuild/darwin-x64": "0.19.12",
|
||||
"@esbuild/freebsd-arm64": "0.19.12",
|
||||
"@esbuild/freebsd-x64": "0.19.12",
|
||||
"@esbuild/linux-arm": "0.19.12",
|
||||
"@esbuild/linux-arm64": "0.19.12",
|
||||
"@esbuild/linux-ia32": "0.19.12",
|
||||
"@esbuild/linux-loong64": "0.19.12",
|
||||
"@esbuild/linux-mips64el": "0.19.12",
|
||||
"@esbuild/linux-ppc64": "0.19.12",
|
||||
"@esbuild/linux-riscv64": "0.19.12",
|
||||
"@esbuild/linux-s390x": "0.19.12",
|
||||
"@esbuild/linux-x64": "0.19.12",
|
||||
"@esbuild/netbsd-x64": "0.19.12",
|
||||
"@esbuild/openbsd-x64": "0.19.12",
|
||||
"@esbuild/sunos-x64": "0.19.12",
|
||||
"@esbuild/win32-arm64": "0.19.12",
|
||||
"@esbuild/win32-ia32": "0.19.12",
|
||||
"@esbuild/win32-x64": "0.19.12"
|
||||
}
|
||||
},
|
||||
"node_modules/estree-walker": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
|
||||
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/focus-trap": {
|
||||
"version": "7.5.4",
|
||||
"resolved": "https://registry.npmjs.org/focus-trap/-/focus-trap-7.5.4.tgz",
|
||||
"integrity": "sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"tabbable": "^6.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.5",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
|
||||
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/sourcemap-codec": "^1.4.15"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/mark.js": {
|
||||
"version": "8.11.1",
|
||||
"resolved": "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz",
|
||||
"integrity": "sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/minisearch": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/minisearch/-/minisearch-6.3.0.tgz",
|
||||
"integrity": "sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/nanoid": {
|
||||
"version": "3.3.7",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"bin": {
|
||||
"nanoid": "bin/nanoid.cjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/picocolors": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.33",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
|
||||
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/postcss/"
|
||||
},
|
||||
{
|
||||
"type": "tidelift",
|
||||
"url": "https://tidelift.com/funding/github/npm/postcss"
|
||||
},
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/ai"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"nanoid": "^3.3.7",
|
||||
"picocolors": "^1.0.0",
|
||||
"source-map-js": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^10 || ^12 || >=14"
|
||||
}
|
||||
},
|
||||
"node_modules/preact": {
|
||||
"version": "10.19.3",
|
||||
"resolved": "https://registry.npmjs.org/preact/-/preact-10.19.3.tgz",
|
||||
"integrity": "sha512-nHHTeFVBTHRGxJXKkKu5hT8C/YWBkPso4/Gad6xuj5dbptt9iF9NZr9pHbPhBrnT2klheu7mHTxTZ/LjwJiEiQ==",
|
||||
"dev": true,
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/preact"
|
||||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.9.6",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.9.6.tgz",
|
||||
"integrity": "sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "1.0.5"
|
||||
},
|
||||
"bin": {
|
||||
"rollup": "dist/bin/rollup"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0",
|
||||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.9.6",
|
||||
"@rollup/rollup-android-arm64": "4.9.6",
|
||||
"@rollup/rollup-darwin-arm64": "4.9.6",
|
||||
"@rollup/rollup-darwin-x64": "4.9.6",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.9.6",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.9.6",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.9.6",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.9.6",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.9.6",
|
||||
"@rollup/rollup-linux-x64-musl": "4.9.6",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.9.6",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.9.6",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.9.6",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
"node_modules/search-insights": {
|
||||
"version": "2.13.0",
|
||||
"resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz",
|
||||
"integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==",
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/shikiji": {
|
||||
"version": "0.10.2",
|
||||
"resolved": "https://registry.npmjs.org/shikiji/-/shikiji-0.10.2.tgz",
|
||||
"integrity": "sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shikiji-core": "0.10.2"
|
||||
}
|
||||
},
|
||||
"node_modules/shikiji-core": {
|
||||
"version": "0.10.2",
|
||||
"resolved": "https://registry.npmjs.org/shikiji-core/-/shikiji-core-0.10.2.tgz",
|
||||
"integrity": "sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/shikiji-transformers": {
|
||||
"version": "0.10.2",
|
||||
"resolved": "https://registry.npmjs.org/shikiji-transformers/-/shikiji-transformers-0.10.2.tgz",
|
||||
"integrity": "sha512-7IVTwl1af205ywYEq5bOAYOTOFW4V1dVX1EablP0nWKErqZeD1o93VMytxmtJomqS+YwbB8doY8SE3MFMn0aPQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"shikiji": "0.10.2"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map-js": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tabbable": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz",
|
||||
"integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vite": {
|
||||
"version": "5.0.12",
|
||||
"resolved": "https://registry.npmjs.org/vite/-/vite-5.0.12.tgz",
|
||||
"integrity": "sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"esbuild": "^0.19.3",
|
||||
"postcss": "^8.4.32",
|
||||
"rollup": "^4.2.0"
|
||||
},
|
||||
"bin": {
|
||||
"vite": "bin/vite.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.0.0 || >=20.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/vitejs/vite?sponsor=1"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"fsevents": "~2.3.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@types/node": "^18.0.0 || >=20.0.0",
|
||||
"less": "*",
|
||||
"lightningcss": "^1.21.0",
|
||||
"sass": "*",
|
||||
"stylus": "*",
|
||||
"sugarss": "*",
|
||||
"terser": "^5.4.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@types/node": {
|
||||
"optional": true
|
||||
},
|
||||
"less": {
|
||||
"optional": true
|
||||
},
|
||||
"lightningcss": {
|
||||
"optional": true
|
||||
},
|
||||
"sass": {
|
||||
"optional": true
|
||||
},
|
||||
"stylus": {
|
||||
"optional": true
|
||||
},
|
||||
"sugarss": {
|
||||
"optional": true
|
||||
},
|
||||
"terser": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vitepress": {
|
||||
"version": "1.0.0-rc.40",
|
||||
"resolved": "https://registry.npmjs.org/vitepress/-/vitepress-1.0.0-rc.40.tgz",
|
||||
"integrity": "sha512-1x9PCrcsJwqhpccyTR93uD6jpiPDeRC98CBCAQLLBb44a3VSXYBPzhCahi+2kwAYylu49p0XhseMPVM4IVcWcw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@docsearch/css": "^3.5.2",
|
||||
"@docsearch/js": "^3.5.2",
|
||||
"@types/markdown-it": "^13.0.7",
|
||||
"@vitejs/plugin-vue": "^5.0.3",
|
||||
"@vue/devtools-api": "^6.5.1",
|
||||
"@vueuse/core": "^10.7.2",
|
||||
"@vueuse/integrations": "^10.7.2",
|
||||
"focus-trap": "^7.5.4",
|
||||
"mark.js": "8.11.1",
|
||||
"minisearch": "^6.3.0",
|
||||
"shikiji": "^0.10.0",
|
||||
"shikiji-core": "^0.10.0",
|
||||
"shikiji-transformers": "^0.10.0",
|
||||
"vite": "^5.0.12",
|
||||
"vue": "^3.4.15"
|
||||
},
|
||||
"bin": {
|
||||
"vitepress": "bin/vitepress.js"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"markdown-it-mathjax3": "^4.3.2",
|
||||
"postcss": "^8.4.33"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"markdown-it-mathjax3": {
|
||||
"optional": true
|
||||
},
|
||||
"postcss": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/vue": {
|
||||
"version": "3.4.15",
|
||||
"resolved": "https://registry.npmjs.org/vue/-/vue-3.4.15.tgz",
|
||||
"integrity": "sha512-jC0GH4KkWLWJOEQjOpkqU1bQsBwf4R1rsFtw5GQJbjHVKWDzO6P0nWWBTmjp1xSemAioDFj1jdaK1qa3DnMQoQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@vue/compiler-dom": "3.4.15",
|
||||
"@vue/compiler-sfc": "3.4.15",
|
||||
"@vue/runtime-dom": "3.4.15",
|
||||
"@vue/server-renderer": "3.4.15",
|
||||
"@vue/shared": "3.4.15"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"typescript": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"typescript": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,83 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
function createBrowserLocalStorageCache(options) {
|
||||
const namespaceKey = `algoliasearch-client-js-${options.key}`;
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let storage;
|
||||
const getStorage = () => {
|
||||
if (storage === undefined) {
|
||||
storage = options.localStorage || window.localStorage;
|
||||
}
|
||||
return storage;
|
||||
};
|
||||
const getNamespace = () => {
|
||||
return JSON.parse(getStorage().getItem(namespaceKey) || '{}');
|
||||
};
|
||||
const setNamespace = (namespace) => {
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
};
|
||||
const removeOutdatedCacheItems = () => {
|
||||
const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;
|
||||
const namespace = getNamespace();
|
||||
const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
|
||||
return cacheItem.timestamp !== undefined;
|
||||
}));
|
||||
setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);
|
||||
if (!timeToLive)
|
||||
return;
|
||||
const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {
|
||||
const currentTimestamp = new Date().getTime();
|
||||
const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;
|
||||
return !isExpired;
|
||||
}));
|
||||
setNamespace(filteredNamespaceWithoutExpiredItems);
|
||||
};
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
removeOutdatedCacheItems();
|
||||
const keyAsString = JSON.stringify(key);
|
||||
return getNamespace()[keyAsString];
|
||||
})
|
||||
.then(value => {
|
||||
return Promise.all([value ? value.value : defaultValue(), value !== undefined]);
|
||||
})
|
||||
.then(([value, exists]) => {
|
||||
return Promise.all([value, exists || events.miss(value)]);
|
||||
})
|
||||
.then(([value]) => value);
|
||||
},
|
||||
set(key, value) {
|
||||
return Promise.resolve().then(() => {
|
||||
const namespace = getNamespace();
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
namespace[JSON.stringify(key)] = {
|
||||
timestamp: new Date().getTime(),
|
||||
value,
|
||||
};
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
return value;
|
||||
});
|
||||
},
|
||||
delete(key) {
|
||||
return Promise.resolve().then(() => {
|
||||
const namespace = getNamespace();
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
delete namespace[JSON.stringify(key)];
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
});
|
||||
},
|
||||
clear() {
|
||||
return Promise.resolve().then(() => {
|
||||
getStorage().removeItem(namespaceKey);
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
exports.createBrowserLocalStorageCache = createBrowserLocalStorageCache;
|
||||
31
node_modules/@algolia/cache-browser-local-storage/dist/cache-browser-local-storage.d.ts
generated
vendored
31
node_modules/@algolia/cache-browser-local-storage/dist/cache-browser-local-storage.d.ts
generated
vendored
|
|
@ -1,31 +0,0 @@
|
|||
import { Cache } from '@algolia/cache-common';
|
||||
|
||||
export declare type BrowserLocalStorageCacheItem = {
|
||||
/**
|
||||
* The cache item creation timestamp.
|
||||
*/
|
||||
readonly timestamp: number;
|
||||
/**
|
||||
* The cache item value
|
||||
*/
|
||||
readonly value: any;
|
||||
};
|
||||
|
||||
export declare type BrowserLocalStorageOptions = {
|
||||
/**
|
||||
* The cache key.
|
||||
*/
|
||||
readonly key: string;
|
||||
/**
|
||||
* The time to live for each cached item in seconds.
|
||||
*/
|
||||
readonly timeToLive?: number;
|
||||
/**
|
||||
* The native local storage implementation.
|
||||
*/
|
||||
readonly localStorage?: Storage;
|
||||
};
|
||||
|
||||
export declare function createBrowserLocalStorageCache(options: BrowserLocalStorageOptions): Cache;
|
||||
|
||||
export { }
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
function createBrowserLocalStorageCache(options) {
|
||||
const namespaceKey = `algoliasearch-client-js-${options.key}`;
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let storage;
|
||||
const getStorage = () => {
|
||||
if (storage === undefined) {
|
||||
storage = options.localStorage || window.localStorage;
|
||||
}
|
||||
return storage;
|
||||
};
|
||||
const getNamespace = () => {
|
||||
return JSON.parse(getStorage().getItem(namespaceKey) || '{}');
|
||||
};
|
||||
const setNamespace = (namespace) => {
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
};
|
||||
const removeOutdatedCacheItems = () => {
|
||||
const timeToLive = options.timeToLive ? options.timeToLive * 1000 : null;
|
||||
const namespace = getNamespace();
|
||||
const filteredNamespaceWithoutOldFormattedCacheItems = Object.fromEntries(Object.entries(namespace).filter(([, cacheItem]) => {
|
||||
return cacheItem.timestamp !== undefined;
|
||||
}));
|
||||
setNamespace(filteredNamespaceWithoutOldFormattedCacheItems);
|
||||
if (!timeToLive)
|
||||
return;
|
||||
const filteredNamespaceWithoutExpiredItems = Object.fromEntries(Object.entries(filteredNamespaceWithoutOldFormattedCacheItems).filter(([, cacheItem]) => {
|
||||
const currentTimestamp = new Date().getTime();
|
||||
const isExpired = cacheItem.timestamp + timeToLive < currentTimestamp;
|
||||
return !isExpired;
|
||||
}));
|
||||
setNamespace(filteredNamespaceWithoutExpiredItems);
|
||||
};
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
return Promise.resolve()
|
||||
.then(() => {
|
||||
removeOutdatedCacheItems();
|
||||
const keyAsString = JSON.stringify(key);
|
||||
return getNamespace()[keyAsString];
|
||||
})
|
||||
.then(value => {
|
||||
return Promise.all([value ? value.value : defaultValue(), value !== undefined]);
|
||||
})
|
||||
.then(([value, exists]) => {
|
||||
return Promise.all([value, exists || events.miss(value)]);
|
||||
})
|
||||
.then(([value]) => value);
|
||||
},
|
||||
set(key, value) {
|
||||
return Promise.resolve().then(() => {
|
||||
const namespace = getNamespace();
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
namespace[JSON.stringify(key)] = {
|
||||
timestamp: new Date().getTime(),
|
||||
value,
|
||||
};
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
return value;
|
||||
});
|
||||
},
|
||||
delete(key) {
|
||||
return Promise.resolve().then(() => {
|
||||
const namespace = getNamespace();
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
delete namespace[JSON.stringify(key)];
|
||||
getStorage().setItem(namespaceKey, JSON.stringify(namespace));
|
||||
});
|
||||
},
|
||||
clear() {
|
||||
return Promise.resolve().then(() => {
|
||||
getStorage().removeItem(namespaceKey);
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export { createBrowserLocalStorageCache };
|
||||
2
node_modules/@algolia/cache-browser-local-storage/index.js
generated
vendored
2
node_modules/@algolia/cache-browser-local-storage/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/cache-browser-local-storage.cjs.js');
|
||||
22
node_modules/@algolia/cache-browser-local-storage/package.json
generated
vendored
22
node_modules/@algolia/cache-browser-local-storage/package.json
generated
vendored
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/cache-browser-local-storage",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Promise-based cache library for browser using local storage.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/cache-browser-local-storage.esm.js",
|
||||
"types": "dist/cache-browser-local-storage.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0"
|
||||
}
|
||||
}
|
||||
61
node_modules/@algolia/cache-common/dist/cache-common.cjs.js
generated
vendored
61
node_modules/@algolia/cache-common/dist/cache-common.cjs.js
generated
vendored
|
|
@ -1,61 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
// @todo Add logger on options to debug when caches go wrong.
|
||||
function createFallbackableCache(options) {
|
||||
const caches = [...options.caches];
|
||||
const current = caches.shift(); // eslint-disable-line functional/immutable-data
|
||||
if (current === undefined) {
|
||||
return createNullCache();
|
||||
}
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
return current.get(key, defaultValue, events).catch(() => {
|
||||
return createFallbackableCache({ caches }).get(key, defaultValue, events);
|
||||
});
|
||||
},
|
||||
set(key, value) {
|
||||
return current.set(key, value).catch(() => {
|
||||
return createFallbackableCache({ caches }).set(key, value);
|
||||
});
|
||||
},
|
||||
delete(key) {
|
||||
return current.delete(key).catch(() => {
|
||||
return createFallbackableCache({ caches }).delete(key);
|
||||
});
|
||||
},
|
||||
clear() {
|
||||
return current.clear().catch(() => {
|
||||
return createFallbackableCache({ caches }).clear();
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function createNullCache() {
|
||||
return {
|
||||
get(_key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
const value = defaultValue();
|
||||
return value
|
||||
.then(result => Promise.all([result, events.miss(result)]))
|
||||
.then(([result]) => result);
|
||||
},
|
||||
set(_key, value) {
|
||||
return Promise.resolve(value);
|
||||
},
|
||||
delete(_key) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
clear() {
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
exports.createFallbackableCache = createFallbackableCache;
|
||||
exports.createNullCache = createNullCache;
|
||||
40
node_modules/@algolia/cache-common/dist/cache-common.d.ts
generated
vendored
40
node_modules/@algolia/cache-common/dist/cache-common.d.ts
generated
vendored
|
|
@ -1,40 +0,0 @@
|
|||
import { Cache as Cache_2 } from '@algolia/cache-common';
|
||||
|
||||
export declare type Cache = {
|
||||
/**
|
||||
* Gets the value of the given `key`.
|
||||
*/
|
||||
readonly get: <TValue>(key: object | string, defaultValue: () => Readonly<Promise<TValue>>, events?: CacheEvents<TValue>) => Readonly<Promise<TValue>>;
|
||||
/**
|
||||
* Sets the given value with the given `key`.
|
||||
*/
|
||||
readonly set: <TValue>(key: object | string, value: TValue) => Readonly<Promise<TValue>>;
|
||||
/**
|
||||
* Deletes the given `key`.
|
||||
*/
|
||||
readonly delete: (key: object | string) => Readonly<Promise<void>>;
|
||||
/**
|
||||
* Clears the cache.
|
||||
*/
|
||||
readonly clear: () => Readonly<Promise<void>>;
|
||||
};
|
||||
|
||||
export declare type CacheEvents<TValue> = {
|
||||
/**
|
||||
* The callback when the given `key` is missing from the cache.
|
||||
*/
|
||||
readonly miss: (value: TValue) => Readonly<Promise<any>>;
|
||||
};
|
||||
|
||||
export declare function createFallbackableCache(options: FallbackableCacheOptions): Cache;
|
||||
|
||||
export declare function createNullCache(): Cache;
|
||||
|
||||
export declare type FallbackableCacheOptions = {
|
||||
/**
|
||||
* List of caches order by priority.
|
||||
*/
|
||||
readonly caches: readonly Cache_2[];
|
||||
};
|
||||
|
||||
export { }
|
||||
56
node_modules/@algolia/cache-common/dist/cache-common.esm.js
generated
vendored
56
node_modules/@algolia/cache-common/dist/cache-common.esm.js
generated
vendored
|
|
@ -1,56 +0,0 @@
|
|||
// @todo Add logger on options to debug when caches go wrong.
|
||||
function createFallbackableCache(options) {
|
||||
const caches = [...options.caches];
|
||||
const current = caches.shift(); // eslint-disable-line functional/immutable-data
|
||||
if (current === undefined) {
|
||||
return createNullCache();
|
||||
}
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
return current.get(key, defaultValue, events).catch(() => {
|
||||
return createFallbackableCache({ caches }).get(key, defaultValue, events);
|
||||
});
|
||||
},
|
||||
set(key, value) {
|
||||
return current.set(key, value).catch(() => {
|
||||
return createFallbackableCache({ caches }).set(key, value);
|
||||
});
|
||||
},
|
||||
delete(key) {
|
||||
return current.delete(key).catch(() => {
|
||||
return createFallbackableCache({ caches }).delete(key);
|
||||
});
|
||||
},
|
||||
clear() {
|
||||
return current.clear().catch(() => {
|
||||
return createFallbackableCache({ caches }).clear();
|
||||
});
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function createNullCache() {
|
||||
return {
|
||||
get(_key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
const value = defaultValue();
|
||||
return value
|
||||
.then(result => Promise.all([result, events.miss(result)]))
|
||||
.then(([result]) => result);
|
||||
},
|
||||
set(_key, value) {
|
||||
return Promise.resolve(value);
|
||||
},
|
||||
delete(_key) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
clear() {
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export { createFallbackableCache, createNullCache };
|
||||
2
node_modules/@algolia/cache-common/index.js
generated
vendored
2
node_modules/@algolia/cache-common/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/cache-common.cjs.js');
|
||||
19
node_modules/@algolia/cache-common/package.json
generated
vendored
19
node_modules/@algolia/cache-common/package.json
generated
vendored
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/cache-common",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Common interfaces for promise-based caching libraries",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-js.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/cache-common.esm.js",
|
||||
"types": "dist/cache-common.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
37
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.cjs.js
generated
vendored
37
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.cjs.js
generated
vendored
|
|
@ -1,37 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
function createInMemoryCache(options = { serializable: true }) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let cache = {};
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
const keyAsString = JSON.stringify(key);
|
||||
if (keyAsString in cache) {
|
||||
return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);
|
||||
}
|
||||
const promise = defaultValue();
|
||||
const miss = (events && events.miss) || (() => Promise.resolve());
|
||||
return promise.then((value) => miss(value)).then(() => promise);
|
||||
},
|
||||
set(key, value) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;
|
||||
return Promise.resolve(value);
|
||||
},
|
||||
delete(key) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
delete cache[JSON.stringify(key)];
|
||||
return Promise.resolve();
|
||||
},
|
||||
clear() {
|
||||
cache = {};
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
exports.createInMemoryCache = createInMemoryCache;
|
||||
12
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.d.ts
generated
vendored
12
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.d.ts
generated
vendored
|
|
@ -1,12 +0,0 @@
|
|||
import { Cache } from '@algolia/cache-common';
|
||||
|
||||
export declare function createInMemoryCache(options?: InMemoryCacheOptions): Cache;
|
||||
|
||||
export declare type InMemoryCacheOptions = {
|
||||
/**
|
||||
* If keys and values should be serialized using `JSON.stringify`.
|
||||
*/
|
||||
readonly serializable?: boolean;
|
||||
};
|
||||
|
||||
export { }
|
||||
33
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js
generated
vendored
33
node_modules/@algolia/cache-in-memory/dist/cache-in-memory.esm.js
generated
vendored
|
|
@ -1,33 +0,0 @@
|
|||
function createInMemoryCache(options = { serializable: true }) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let cache = {};
|
||||
return {
|
||||
get(key, defaultValue, events = {
|
||||
miss: () => Promise.resolve(),
|
||||
}) {
|
||||
const keyAsString = JSON.stringify(key);
|
||||
if (keyAsString in cache) {
|
||||
return Promise.resolve(options.serializable ? JSON.parse(cache[keyAsString]) : cache[keyAsString]);
|
||||
}
|
||||
const promise = defaultValue();
|
||||
const miss = (events && events.miss) || (() => Promise.resolve());
|
||||
return promise.then((value) => miss(value)).then(() => promise);
|
||||
},
|
||||
set(key, value) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
cache[JSON.stringify(key)] = options.serializable ? JSON.stringify(value) : value;
|
||||
return Promise.resolve(value);
|
||||
},
|
||||
delete(key) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
delete cache[JSON.stringify(key)];
|
||||
return Promise.resolve();
|
||||
},
|
||||
clear() {
|
||||
cache = {};
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export { createInMemoryCache };
|
||||
2
node_modules/@algolia/cache-in-memory/index.js
generated
vendored
2
node_modules/@algolia/cache-in-memory/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/cache-in-memory.cjs.js');
|
||||
22
node_modules/@algolia/cache-in-memory/package.json
generated
vendored
22
node_modules/@algolia/cache-in-memory/package.json
generated
vendored
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/cache-in-memory",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Promise-based cache library using memory.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/cache-in-memory.esm.js",
|
||||
"types": "dist/cache-in-memory.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0"
|
||||
}
|
||||
}
|
||||
69
node_modules/@algolia/client-account/dist/client-account.cjs.js
generated
vendored
69
node_modules/@algolia/client-account/dist/client-account.cjs.js
generated
vendored
|
|
@ -1,69 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var clientCommon = require('@algolia/client-common');
|
||||
var clientSearch = require('@algolia/client-search');
|
||||
|
||||
function createDestinationIndiceExistsError() {
|
||||
return {
|
||||
name: 'DestinationIndiceAlreadyExistsError',
|
||||
message: 'Destination indice already exists.',
|
||||
};
|
||||
}
|
||||
|
||||
function createIndicesInSameAppError(appId) {
|
||||
return {
|
||||
name: 'IndicesInTheSameAppError',
|
||||
message: 'Indices are in the same application. Use SearchClient.copyIndex instead.',
|
||||
appId,
|
||||
};
|
||||
}
|
||||
|
||||
const accountCopyIndex = (source, destination, requestOptions) => {
|
||||
// eslint-disable-next-line functional/prefer-readonly-type
|
||||
const responses = [];
|
||||
const promise = clientSearch.exists(destination)()
|
||||
.then(res => {
|
||||
if (source.appId === destination.appId) {
|
||||
throw createIndicesInSameAppError(source.appId);
|
||||
}
|
||||
if (res) {
|
||||
throw createDestinationIndiceExistsError();
|
||||
}
|
||||
})
|
||||
.then(() => clientSearch.getSettings(source)())
|
||||
.then(settings =>
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
responses.push(clientSearch.setSettings(destination)(settings, requestOptions)))
|
||||
.then(() => clientSearch.browseRules(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: rules => responses.push(clientSearch.saveRules(destination)(rules, requestOptions)),
|
||||
}))
|
||||
.then(() => clientSearch.browseSynonyms(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: synonyms => responses.push(clientSearch.saveSynonyms(destination)(synonyms, requestOptions)),
|
||||
}))
|
||||
.then(() => clientSearch.browseObjects(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: objects => responses.push(clientSearch.saveObjects(destination)(objects, requestOptions)),
|
||||
}));
|
||||
return clientCommon.createWaitablePromise(
|
||||
/**
|
||||
* The original promise will return an array of async responses, now
|
||||
* we need to resolve that array of async responses using a
|
||||
* `Promise.all`, and then resolve `void` for the end-user.
|
||||
*/
|
||||
promise.then(() => Promise.all(responses)).then(() => undefined),
|
||||
/**
|
||||
* Next, if the end-user calls the `wait` method, we need to also call
|
||||
* the `wait` method on each element of of async responses.
|
||||
*/
|
||||
(_response, waitRequestOptions) => {
|
||||
return Promise.all(responses.map(response => response.wait(waitRequestOptions)));
|
||||
});
|
||||
};
|
||||
|
||||
exports.accountCopyIndex = accountCopyIndex;
|
||||
exports.createDestinationIndiceExistsError = createDestinationIndiceExistsError;
|
||||
exports.createIndicesInSameAppError = createIndicesInSameAppError;
|
||||
18
node_modules/@algolia/client-account/dist/client-account.d.ts
generated
vendored
18
node_modules/@algolia/client-account/dist/client-account.d.ts
generated
vendored
|
|
@ -1,18 +0,0 @@
|
|||
import { RequestOptions } from '@algolia/transporter';
|
||||
import { SearchIndex } from '@algolia/client-search';
|
||||
import { WaitablePromise } from '@algolia/client-common';
|
||||
|
||||
export declare const accountCopyIndex: (source: SearchIndex, destination: SearchIndex, requestOptions?: RequestOptions | undefined) => WaitablePromise<void>;
|
||||
|
||||
export declare function createDestinationIndiceExistsError(): Error;
|
||||
|
||||
export declare function createIndicesInSameAppError(appId: string): IndicesInSameAppError;
|
||||
|
||||
export declare type IndicesInSameAppError = Error & {
|
||||
/**
|
||||
* The app id.
|
||||
*/
|
||||
readonly appId: string;
|
||||
};
|
||||
|
||||
export { }
|
||||
63
node_modules/@algolia/client-account/dist/client-account.esm.js
generated
vendored
63
node_modules/@algolia/client-account/dist/client-account.esm.js
generated
vendored
|
|
@ -1,63 +0,0 @@
|
|||
import { createWaitablePromise } from '@algolia/client-common';
|
||||
import { exists, getSettings, setSettings, browseRules, saveRules, browseSynonyms, saveSynonyms, browseObjects, saveObjects } from '@algolia/client-search';
|
||||
|
||||
function createDestinationIndiceExistsError() {
|
||||
return {
|
||||
name: 'DestinationIndiceAlreadyExistsError',
|
||||
message: 'Destination indice already exists.',
|
||||
};
|
||||
}
|
||||
|
||||
function createIndicesInSameAppError(appId) {
|
||||
return {
|
||||
name: 'IndicesInTheSameAppError',
|
||||
message: 'Indices are in the same application. Use SearchClient.copyIndex instead.',
|
||||
appId,
|
||||
};
|
||||
}
|
||||
|
||||
const accountCopyIndex = (source, destination, requestOptions) => {
|
||||
// eslint-disable-next-line functional/prefer-readonly-type
|
||||
const responses = [];
|
||||
const promise = exists(destination)()
|
||||
.then(res => {
|
||||
if (source.appId === destination.appId) {
|
||||
throw createIndicesInSameAppError(source.appId);
|
||||
}
|
||||
if (res) {
|
||||
throw createDestinationIndiceExistsError();
|
||||
}
|
||||
})
|
||||
.then(() => getSettings(source)())
|
||||
.then(settings =>
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
responses.push(setSettings(destination)(settings, requestOptions)))
|
||||
.then(() => browseRules(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: rules => responses.push(saveRules(destination)(rules, requestOptions)),
|
||||
}))
|
||||
.then(() => browseSynonyms(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: synonyms => responses.push(saveSynonyms(destination)(synonyms, requestOptions)),
|
||||
}))
|
||||
.then(() => browseObjects(source)({
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
batch: objects => responses.push(saveObjects(destination)(objects, requestOptions)),
|
||||
}));
|
||||
return createWaitablePromise(
|
||||
/**
|
||||
* The original promise will return an array of async responses, now
|
||||
* we need to resolve that array of async responses using a
|
||||
* `Promise.all`, and then resolve `void` for the end-user.
|
||||
*/
|
||||
promise.then(() => Promise.all(responses)).then(() => undefined),
|
||||
/**
|
||||
* Next, if the end-user calls the `wait` method, we need to also call
|
||||
* the `wait` method on each element of of async responses.
|
||||
*/
|
||||
(_response, waitRequestOptions) => {
|
||||
return Promise.all(responses.map(response => response.wait(waitRequestOptions)));
|
||||
});
|
||||
};
|
||||
|
||||
export { accountCopyIndex, createDestinationIndiceExistsError, createIndicesInSameAppError };
|
||||
2
node_modules/@algolia/client-account/index.js
generated
vendored
2
node_modules/@algolia/client-account/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/client-account.cjs.js');
|
||||
23
node_modules/@algolia/client-account/package.json
generated
vendored
23
node_modules/@algolia/client-account/package.json
generated
vendored
|
|
@ -1,23 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/client-account",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/client-account.esm.js",
|
||||
"types": "dist/client-account.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "4.22.0",
|
||||
"@algolia/client-search": "4.22.0",
|
||||
"@algolia/transporter": "4.22.0"
|
||||
}
|
||||
}
|
||||
12
node_modules/@algolia/client-analytics/package.json
generated
vendored
12
node_modules/@algolia/client-analytics/package.json
generated
vendored
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
|
|
@ -49,10 +49,10 @@
|
|||
"index.d.ts"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.48.0",
|
||||
"@algolia/requester-browser-xhr": "5.48.0",
|
||||
"@algolia/requester-fetch": "5.48.0",
|
||||
"@algolia/requester-node-http": "5.48.0"
|
||||
"@algolia/client-common": "5.48.1",
|
||||
"@algolia/requester-browser-xhr": "5.48.1",
|
||||
"@algolia/requester-fetch": "5.48.1",
|
||||
"@algolia/requester-node-http": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
|
|
@ -65,5 +65,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
6
node_modules/@algolia/client-common/package.json
generated
vendored
6
node_modules/@algolia/client-common/package.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@algolia/client-common",
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"description": "Common package for the Algolia JavaScript API client.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -36,7 +36,7 @@
|
|||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
"@types/node": "24.10.9",
|
||||
"@types/node": "24.10.12",
|
||||
"jsdom": "27.4.0",
|
||||
"publint": "0.3.17",
|
||||
"ts-node": "10.9.2",
|
||||
|
|
@ -47,5 +47,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
12
node_modules/@algolia/client-personalization/package.json
generated
vendored
12
node_modules/@algolia/client-personalization/package.json
generated
vendored
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
|
|
@ -49,10 +49,10 @@
|
|||
"index.d.ts"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.48.0",
|
||||
"@algolia/requester-browser-xhr": "5.48.0",
|
||||
"@algolia/requester-fetch": "5.48.0",
|
||||
"@algolia/requester-node-http": "5.48.0"
|
||||
"@algolia/client-common": "5.48.1",
|
||||
"@algolia/requester-browser-xhr": "5.48.1",
|
||||
"@algolia/requester-fetch": "5.48.1",
|
||||
"@algolia/requester-node-http": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
|
|
@ -65,5 +65,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
12
node_modules/@algolia/client-search/package.json
generated
vendored
12
node_modules/@algolia/client-search/package.json
generated
vendored
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
|
|
@ -49,10 +49,10 @@
|
|||
"index.d.ts"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.48.0",
|
||||
"@algolia/requester-browser-xhr": "5.48.0",
|
||||
"@algolia/requester-fetch": "5.48.0",
|
||||
"@algolia/requester-node-http": "5.48.0"
|
||||
"@algolia/client-common": "5.48.1",
|
||||
"@algolia/requester-browser-xhr": "5.48.1",
|
||||
"@algolia/requester-fetch": "5.48.1",
|
||||
"@algolia/requester-node-http": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
|
|
@ -65,5 +65,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
26
node_modules/@algolia/logger-common/dist/logger-common.cjs.js
generated
vendored
26
node_modules/@algolia/logger-common/dist/logger-common.cjs.js
generated
vendored
|
|
@ -1,26 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
function createNullLogger() {
|
||||
return {
|
||||
debug(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
info(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
error(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const LogLevelEnum = {
|
||||
Debug: 1,
|
||||
Info: 2,
|
||||
Error: 3,
|
||||
};
|
||||
|
||||
exports.LogLevelEnum = LogLevelEnum;
|
||||
exports.createNullLogger = createNullLogger;
|
||||
23
node_modules/@algolia/logger-common/dist/logger-common.d.ts
generated
vendored
23
node_modules/@algolia/logger-common/dist/logger-common.d.ts
generated
vendored
|
|
@ -1,23 +0,0 @@
|
|||
|
||||
export declare function createNullLogger(): Logger;
|
||||
|
||||
export declare type Logger = {
|
||||
/**
|
||||
* Logs debug messages.
|
||||
*/
|
||||
readonly debug: (message: string, args?: any) => Readonly<Promise<void>>;
|
||||
/**
|
||||
* Logs info messages.
|
||||
*/
|
||||
readonly info: (message: string, args?: any) => Readonly<Promise<void>>;
|
||||
/**
|
||||
* Logs error messages.
|
||||
*/
|
||||
readonly error: (message: string, args?: any) => Readonly<Promise<void>>;
|
||||
};
|
||||
|
||||
export declare const LogLevelEnum: Readonly<Record<string, LogLevelType>>;
|
||||
|
||||
export declare type LogLevelType = 1 | 2 | 3;
|
||||
|
||||
export { }
|
||||
21
node_modules/@algolia/logger-common/dist/logger-common.esm.js
generated
vendored
21
node_modules/@algolia/logger-common/dist/logger-common.esm.js
generated
vendored
|
|
@ -1,21 +0,0 @@
|
|||
function createNullLogger() {
|
||||
return {
|
||||
debug(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
info(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
error(_message, _args) {
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
const LogLevelEnum = {
|
||||
Debug: 1,
|
||||
Info: 2,
|
||||
Error: 3,
|
||||
};
|
||||
|
||||
export { LogLevelEnum, createNullLogger };
|
||||
2
node_modules/@algolia/logger-common/index.js
generated
vendored
2
node_modules/@algolia/logger-common/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/logger-common.cjs.js');
|
||||
19
node_modules/@algolia/logger-common/package.json
generated
vendored
19
node_modules/@algolia/logger-common/package.json
generated
vendored
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/logger-common",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Common interfaces for promise-based log libraries",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-js.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/logger-common.esm.js",
|
||||
"types": "dist/logger-common.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
29
node_modules/@algolia/logger-console/dist/logger-console.cjs.js
generated
vendored
29
node_modules/@algolia/logger-console/dist/logger-console.cjs.js
generated
vendored
|
|
@ -1,29 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var loggerCommon = require('@algolia/logger-common');
|
||||
|
||||
/* eslint no-console: 0 */
|
||||
function createConsoleLogger(logLevel) {
|
||||
return {
|
||||
debug(message, args) {
|
||||
if (loggerCommon.LogLevelEnum.Debug >= logLevel) {
|
||||
console.debug(message, args);
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
info(message, args) {
|
||||
if (loggerCommon.LogLevelEnum.Info >= logLevel) {
|
||||
console.info(message, args);
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
error(message, args) {
|
||||
console.error(message, args);
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
exports.createConsoleLogger = createConsoleLogger;
|
||||
6
node_modules/@algolia/logger-console/dist/logger-console.d.ts
generated
vendored
6
node_modules/@algolia/logger-console/dist/logger-console.d.ts
generated
vendored
|
|
@ -1,6 +0,0 @@
|
|||
import { Logger } from '@algolia/logger-common';
|
||||
import { LogLevelType } from '@algolia/logger-common';
|
||||
|
||||
export declare function createConsoleLogger(logLevel: LogLevelType): Logger;
|
||||
|
||||
export { }
|
||||
25
node_modules/@algolia/logger-console/dist/logger-console.esm.js
generated
vendored
25
node_modules/@algolia/logger-console/dist/logger-console.esm.js
generated
vendored
|
|
@ -1,25 +0,0 @@
|
|||
import { LogLevelEnum } from '@algolia/logger-common';
|
||||
|
||||
/* eslint no-console: 0 */
|
||||
function createConsoleLogger(logLevel) {
|
||||
return {
|
||||
debug(message, args) {
|
||||
if (LogLevelEnum.Debug >= logLevel) {
|
||||
console.debug(message, args);
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
info(message, args) {
|
||||
if (LogLevelEnum.Info >= logLevel) {
|
||||
console.info(message, args);
|
||||
}
|
||||
return Promise.resolve();
|
||||
},
|
||||
error(message, args) {
|
||||
console.error(message, args);
|
||||
return Promise.resolve();
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export { createConsoleLogger };
|
||||
2
node_modules/@algolia/logger-console/index.js
generated
vendored
2
node_modules/@algolia/logger-console/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/logger-console.cjs.js');
|
||||
22
node_modules/@algolia/logger-console/package.json
generated
vendored
22
node_modules/@algolia/logger-console/package.json
generated
vendored
|
|
@ -1,22 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/logger-console",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Promise-based log library using console log.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/logger-console.esm.js",
|
||||
"types": "dist/logger-console.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/logger-common": "4.22.0"
|
||||
}
|
||||
}
|
||||
8
node_modules/@algolia/requester-browser-xhr/package.json
generated
vendored
8
node_modules/@algolia/requester-browser-xhr/package.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@algolia/requester-browser-xhr",
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"description": "Promise-based request library for browser using xhr.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -32,11 +32,11 @@
|
|||
"test:bundle": "publint . && attw --pack . --ignore-rules cjs-resolves-to-esm"
|
||||
},
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.48.0"
|
||||
"@algolia/client-common": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
"@types/node": "24.10.9",
|
||||
"@types/node": "24.10.12",
|
||||
"jsdom": "27.4.0",
|
||||
"publint": "0.3.17",
|
||||
"tsup": "8.5.1",
|
||||
|
|
@ -47,5 +47,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
12
node_modules/@algolia/requester-common/dist/requester-common.cjs.js
generated
vendored
12
node_modules/@algolia/requester-common/dist/requester-common.cjs.js
generated
vendored
|
|
@ -1,12 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
const MethodEnum = {
|
||||
Delete: 'DELETE',
|
||||
Get: 'GET',
|
||||
Post: 'POST',
|
||||
Put: 'PUT',
|
||||
};
|
||||
|
||||
exports.MethodEnum = MethodEnum;
|
||||
66
node_modules/@algolia/requester-common/dist/requester-common.d.ts
generated
vendored
66
node_modules/@algolia/requester-common/dist/requester-common.d.ts
generated
vendored
|
|
@ -1,66 +0,0 @@
|
|||
|
||||
export declare type Destroyable = {
|
||||
/**
|
||||
* Destroy any sockets that are currently in use by the agent.
|
||||
*
|
||||
* It is usually not necessary to do this. However, if using an agent with keepAlive enabled, then
|
||||
* it is best to explicitly shut down the agent when it will no longer be used. Otherwise, sockets
|
||||
* may hang open for quite a long time before the server terminates them.
|
||||
*/
|
||||
readonly destroy: () => Readonly<Promise<void>>;
|
||||
};
|
||||
|
||||
export declare const MethodEnum: Readonly<Record<string, MethodType>>;
|
||||
|
||||
export declare type MethodType = 'DELETE' | 'GET' | 'POST' | 'PUT';
|
||||
|
||||
export declare type Request = {
|
||||
/**
|
||||
* The headers of the request.
|
||||
*/
|
||||
readonly headers: Readonly<Record<string, string>>;
|
||||
/**
|
||||
* The method of the request. `GET`, etc.
|
||||
*/
|
||||
readonly method: MethodType;
|
||||
/**
|
||||
* The complete url of the request, with the protocol.
|
||||
*/
|
||||
readonly url: string;
|
||||
/**
|
||||
* The timeout to stablish a connection with the server.
|
||||
*/
|
||||
readonly connectTimeout: number;
|
||||
/**
|
||||
* The timeout to receive the response.
|
||||
*/
|
||||
readonly responseTimeout: number;
|
||||
/**
|
||||
* The data to be transfered to the server.
|
||||
*/
|
||||
readonly data: string | undefined;
|
||||
};
|
||||
|
||||
export declare type Requester = {
|
||||
/**
|
||||
* Sends the given `request` to the server.
|
||||
*/
|
||||
readonly send: (request: Request) => Readonly<Promise<Response>>;
|
||||
};
|
||||
|
||||
export declare type Response = {
|
||||
/**
|
||||
* The raw response from the server.
|
||||
*/
|
||||
content: string;
|
||||
/**
|
||||
* If the request timeouted.
|
||||
*/
|
||||
isTimedOut: boolean;
|
||||
/**
|
||||
* The http status code.
|
||||
*/
|
||||
status: number;
|
||||
};
|
||||
|
||||
export { }
|
||||
8
node_modules/@algolia/requester-common/dist/requester-common.esm.js
generated
vendored
8
node_modules/@algolia/requester-common/dist/requester-common.esm.js
generated
vendored
|
|
@ -1,8 +0,0 @@
|
|||
const MethodEnum = {
|
||||
Delete: 'DELETE',
|
||||
Get: 'GET',
|
||||
Post: 'POST',
|
||||
Put: 'PUT',
|
||||
};
|
||||
|
||||
export { MethodEnum };
|
||||
2
node_modules/@algolia/requester-common/index.js
generated
vendored
2
node_modules/@algolia/requester-common/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/requester-common.cjs.js');
|
||||
19
node_modules/@algolia/requester-common/package.json
generated
vendored
19
node_modules/@algolia/requester-common/package.json
generated
vendored
|
|
@ -1,19 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/requester-common",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Common interfaces for promise-based request libraries",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-js.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/requester-common.esm.js",
|
||||
"types": "dist/requester-common.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
]
|
||||
}
|
||||
8
node_modules/@algolia/requester-node-http/package.json
generated
vendored
8
node_modules/@algolia/requester-node-http/package.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@algolia/requester-node-http",
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"description": "Promise-based request library for node using the native http module.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
|
@ -35,11 +35,11 @@
|
|||
"test:bundle": "publint . && attw --pack ."
|
||||
},
|
||||
"dependencies": {
|
||||
"@algolia/client-common": "5.48.0"
|
||||
"@algolia/client-common": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
"@types/node": "24.10.9",
|
||||
"@types/node": "24.10.12",
|
||||
"nock": "14.0.10",
|
||||
"publint": "0.3.17",
|
||||
"tsup": "8.5.1",
|
||||
|
|
@ -49,5 +49,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
483
node_modules/@algolia/transporter/dist/transporter.cjs.js
generated
vendored
483
node_modules/@algolia/transporter/dist/transporter.cjs.js
generated
vendored
|
|
@ -1,483 +0,0 @@
|
|||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
var requesterCommon = require('@algolia/requester-common');
|
||||
|
||||
function createMappedRequestOptions(requestOptions, timeout) {
|
||||
const options = requestOptions || {};
|
||||
const data = options.data || {};
|
||||
Object.keys(options).forEach(key => {
|
||||
if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {
|
||||
data[key] = options[key]; // eslint-disable-line functional/immutable-data
|
||||
}
|
||||
});
|
||||
return {
|
||||
data: Object.entries(data).length > 0 ? data : undefined,
|
||||
timeout: options.timeout || timeout,
|
||||
headers: options.headers || {},
|
||||
queryParameters: options.queryParameters || {},
|
||||
cacheable: options.cacheable,
|
||||
};
|
||||
}
|
||||
|
||||
const CallEnum = {
|
||||
/**
|
||||
* If the host is read only.
|
||||
*/
|
||||
Read: 1,
|
||||
/**
|
||||
* If the host is write only.
|
||||
*/
|
||||
Write: 2,
|
||||
/**
|
||||
* If the host is both read and write.
|
||||
*/
|
||||
Any: 3,
|
||||
};
|
||||
|
||||
const HostStatusEnum = {
|
||||
Up: 1,
|
||||
Down: 2,
|
||||
Timeouted: 3,
|
||||
};
|
||||
|
||||
// By default, API Clients at Algolia have expiration delay
|
||||
// of 5 mins. In the JavaScript client, we have 2 mins.
|
||||
const EXPIRATION_DELAY = 2 * 60 * 1000;
|
||||
function createStatefulHost(host, status = HostStatusEnum.Up) {
|
||||
return {
|
||||
...host,
|
||||
status,
|
||||
lastUpdate: Date.now(),
|
||||
};
|
||||
}
|
||||
function isStatefulHostUp(host) {
|
||||
return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;
|
||||
}
|
||||
function isStatefulHostTimeouted(host) {
|
||||
return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);
|
||||
}
|
||||
|
||||
function createStatelessHost(options) {
|
||||
if (typeof options === 'string') {
|
||||
return {
|
||||
protocol: 'https',
|
||||
url: options,
|
||||
accept: CallEnum.Any,
|
||||
};
|
||||
}
|
||||
return {
|
||||
protocol: options.protocol || 'https',
|
||||
url: options.url,
|
||||
accept: options.accept || CallEnum.Any,
|
||||
};
|
||||
}
|
||||
|
||||
function createRetryableOptions(hostsCache, statelessHosts) {
|
||||
return Promise.all(statelessHosts.map(statelessHost => {
|
||||
return hostsCache.get(statelessHost, () => {
|
||||
return Promise.resolve(createStatefulHost(statelessHost));
|
||||
});
|
||||
})).then(statefulHosts => {
|
||||
const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));
|
||||
const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));
|
||||
/**
|
||||
* Note, we put the hosts that previously timeouted on the end of the list.
|
||||
*/
|
||||
const hostsAvailable = [...hostsUp, ...hostsTimeouted];
|
||||
const statelessHostsAvailable = hostsAvailable.length > 0
|
||||
? hostsAvailable.map(host => createStatelessHost(host))
|
||||
: statelessHosts;
|
||||
return {
|
||||
getTimeout(timeoutsCount, baseTimeout) {
|
||||
/**
|
||||
* Imagine that you have 4 hosts, if timeouts will increase
|
||||
* on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)
|
||||
*
|
||||
* Note that, the very next request, we start from the previous timeout
|
||||
*
|
||||
* 5 (timeouted) > 6 (timeouted) > 7 ...
|
||||
*
|
||||
* This strategy may need to be reviewed, but is the strategy on the our
|
||||
* current v3 version.
|
||||
*/
|
||||
const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0
|
||||
? 1
|
||||
: hostsTimeouted.length + 3 + timeoutsCount;
|
||||
return timeoutMultiplier * baseTimeout;
|
||||
},
|
||||
statelessHosts: statelessHostsAvailable,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const isNetworkError = ({ isTimedOut, status }) => {
|
||||
return !isTimedOut && ~~status === 0;
|
||||
};
|
||||
const isRetryable = (response) => {
|
||||
const status = response.status;
|
||||
const isTimedOut = response.isTimedOut;
|
||||
return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));
|
||||
};
|
||||
const isSuccess = ({ status }) => {
|
||||
return ~~(status / 100) === 2;
|
||||
};
|
||||
const retryDecision = (response, outcomes) => {
|
||||
if (isRetryable(response)) {
|
||||
return outcomes.onRetry(response);
|
||||
}
|
||||
if (isSuccess(response)) {
|
||||
return outcomes.onSuccess(response);
|
||||
}
|
||||
return outcomes.onFail(response);
|
||||
};
|
||||
|
||||
function retryableRequest(transporter, statelessHosts, request, requestOptions) {
|
||||
const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type
|
||||
/**
|
||||
* First we prepare the payload that do not depend from hosts.
|
||||
*/
|
||||
const data = serializeData(request, requestOptions);
|
||||
const headers = serializeHeaders(transporter, requestOptions);
|
||||
const method = request.method;
|
||||
// On `GET`, the data is proxied to query parameters.
|
||||
const dataQueryParameters = request.method !== requesterCommon.MethodEnum.Get
|
||||
? {}
|
||||
: {
|
||||
...request.data,
|
||||
...requestOptions.data,
|
||||
};
|
||||
const queryParameters = {
|
||||
'x-algolia-agent': transporter.userAgent.value,
|
||||
...transporter.queryParameters,
|
||||
...dataQueryParameters,
|
||||
...requestOptions.queryParameters,
|
||||
};
|
||||
let timeoutsCount = 0; // eslint-disable-line functional/no-let
|
||||
const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type
|
||||
getTimeout) => {
|
||||
/**
|
||||
* We iterate on each host, until there is no host left.
|
||||
*/
|
||||
const host = hosts.pop(); // eslint-disable-line functional/immutable-data
|
||||
if (host === undefined) {
|
||||
throw createRetryError(stackTraceWithoutCredentials(stackTrace));
|
||||
}
|
||||
const payload = {
|
||||
data,
|
||||
headers,
|
||||
method,
|
||||
url: serializeUrl(host, request.path, queryParameters),
|
||||
connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),
|
||||
responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),
|
||||
};
|
||||
/**
|
||||
* The stackFrame is pushed to the stackTrace so we
|
||||
* can have information about onRetry and onFailure
|
||||
* decisions.
|
||||
*/
|
||||
const pushToStackTrace = (response) => {
|
||||
const stackFrame = {
|
||||
request: payload,
|
||||
response,
|
||||
host,
|
||||
triesLeft: hosts.length,
|
||||
};
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
stackTrace.push(stackFrame);
|
||||
return stackFrame;
|
||||
};
|
||||
const decisions = {
|
||||
onSuccess: response => deserializeSuccess(response),
|
||||
onRetry(response) {
|
||||
const stackFrame = pushToStackTrace(response);
|
||||
/**
|
||||
* If response is a timeout, we increaset the number of
|
||||
* timeouts so we can increase the timeout later.
|
||||
*/
|
||||
if (response.isTimedOut) {
|
||||
timeoutsCount++;
|
||||
}
|
||||
return Promise.all([
|
||||
/**
|
||||
* Failures are individually send the logger, allowing
|
||||
* the end user to debug / store stack frames even
|
||||
* when a retry error does not happen.
|
||||
*/
|
||||
transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),
|
||||
/**
|
||||
* We also store the state of the host in failure cases. If the host, is
|
||||
* down it will remain down for the next 2 minutes. In a timeout situation,
|
||||
* this host will be added end of the list of hosts on the next request.
|
||||
*/
|
||||
transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),
|
||||
]).then(() => retry(hosts, getTimeout));
|
||||
},
|
||||
onFail(response) {
|
||||
pushToStackTrace(response);
|
||||
throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));
|
||||
},
|
||||
};
|
||||
return transporter.requester.send(payload).then(response => {
|
||||
return retryDecision(response, decisions);
|
||||
});
|
||||
};
|
||||
/**
|
||||
* Finally, for each retryable host perform request until we got a non
|
||||
* retryable response. Some notes here:
|
||||
*
|
||||
* 1. The reverse here is applied so we can apply a `pop` later on => more performant.
|
||||
* 2. We also get from the retryable options a timeout multiplier that is tailored
|
||||
* for the current context.
|
||||
*/
|
||||
return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {
|
||||
return retry([...options.statelessHosts].reverse(), options.getTimeout);
|
||||
});
|
||||
}
|
||||
|
||||
function createTransporter(options) {
|
||||
const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;
|
||||
const transporter = {
|
||||
hostsCache,
|
||||
logger,
|
||||
requester,
|
||||
requestsCache,
|
||||
responsesCache,
|
||||
timeouts,
|
||||
userAgent,
|
||||
headers,
|
||||
queryParameters,
|
||||
hosts: hosts.map(host => createStatelessHost(host)),
|
||||
read(request, requestOptions) {
|
||||
/**
|
||||
* First, we compute the user request options. Now, keep in mind,
|
||||
* that using request options the user is able to modified the intire
|
||||
* payload of the request. Such as headers, query parameters, and others.
|
||||
*/
|
||||
const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);
|
||||
const createRetryableRequest = () => {
|
||||
/**
|
||||
* Then, we prepare a function factory that contains the construction of
|
||||
* the retryable request. At this point, we may *not* perform the actual
|
||||
* request. But we want to have the function factory ready.
|
||||
*/
|
||||
return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);
|
||||
};
|
||||
/**
|
||||
* Once we have the function factory ready, we need to determine of the
|
||||
* request is "cacheable" - should be cached. Note that, once again,
|
||||
* the user can force this option.
|
||||
*/
|
||||
const cacheable = mappedRequestOptions.cacheable !== undefined
|
||||
? mappedRequestOptions.cacheable
|
||||
: request.cacheable;
|
||||
/**
|
||||
* If is not "cacheable", we immediatly trigger the retryable request, no
|
||||
* need to check cache implementations.
|
||||
*/
|
||||
if (cacheable !== true) {
|
||||
return createRetryableRequest();
|
||||
}
|
||||
/**
|
||||
* If the request is "cacheable", we need to first compute the key to ask
|
||||
* the cache implementations if this request is on progress or if the
|
||||
* response already exists on the cache.
|
||||
*/
|
||||
const key = {
|
||||
request,
|
||||
mappedRequestOptions,
|
||||
transporter: {
|
||||
queryParameters: transporter.queryParameters,
|
||||
headers: transporter.headers,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* With the computed key, we first ask the responses cache
|
||||
* implemention if this request was been resolved before.
|
||||
*/
|
||||
return transporter.responsesCache.get(key, () => {
|
||||
/**
|
||||
* If the request has never resolved before, we actually ask if there
|
||||
* is a current request with the same key on progress.
|
||||
*/
|
||||
return transporter.requestsCache.get(key, () => {
|
||||
return (transporter.requestsCache
|
||||
/**
|
||||
* Finally, if there is no request in progress with the same key,
|
||||
* this `createRetryableRequest()` will actually trigger the
|
||||
* retryable request.
|
||||
*/
|
||||
.set(key, createRetryableRequest())
|
||||
.then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))
|
||||
.then(([_, response]) => response));
|
||||
});
|
||||
}, {
|
||||
/**
|
||||
* Of course, once we get this response back from the server, we
|
||||
* tell response cache to actually store the received response
|
||||
* to be used later.
|
||||
*/
|
||||
miss: response => transporter.responsesCache.set(key, response),
|
||||
});
|
||||
},
|
||||
write(request, requestOptions) {
|
||||
/**
|
||||
* On write requests, no cache mechanisms are applied, and we
|
||||
* proxy the request immediately to the requester.
|
||||
*/
|
||||
return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));
|
||||
},
|
||||
};
|
||||
return transporter;
|
||||
}
|
||||
|
||||
function createUserAgent(version) {
|
||||
const userAgent = {
|
||||
value: `Algolia for JavaScript (${version})`,
|
||||
add(options) {
|
||||
const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;
|
||||
if (userAgent.value.indexOf(addedUserAgent) === -1) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
userAgent.value = `${userAgent.value}${addedUserAgent}`;
|
||||
}
|
||||
return userAgent;
|
||||
},
|
||||
};
|
||||
return userAgent;
|
||||
}
|
||||
|
||||
function deserializeSuccess(response) {
|
||||
// eslint-disable-next-line functional/no-try-statement
|
||||
try {
|
||||
return JSON.parse(response.content);
|
||||
}
|
||||
catch (e) {
|
||||
throw createDeserializationError(e.message, response);
|
||||
}
|
||||
}
|
||||
function deserializeFailure({ content, status }, stackFrame) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let message = content;
|
||||
// eslint-disable-next-line functional/no-try-statement
|
||||
try {
|
||||
message = JSON.parse(content).message;
|
||||
}
|
||||
catch (e) {
|
||||
// ..
|
||||
}
|
||||
return createApiError(message, status, stackFrame);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line functional/prefer-readonly-type
|
||||
function encode(format, ...args) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let i = 0;
|
||||
return format.replace(/%s/g, () => encodeURIComponent(args[i++]));
|
||||
}
|
||||
|
||||
function serializeUrl(host, path, queryParameters) {
|
||||
const queryParametersAsString = serializeQueryParameters(queryParameters);
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
||||
if (queryParametersAsString.length) {
|
||||
url += `?${queryParametersAsString}`;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
function serializeQueryParameters(parameters) {
|
||||
const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||
|
||||
Object.prototype.toString.call(value) === '[object Array]';
|
||||
return Object.keys(parameters)
|
||||
.map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))
|
||||
.join('&');
|
||||
}
|
||||
function serializeData(request, requestOptions) {
|
||||
if (request.method === requesterCommon.MethodEnum.Get ||
|
||||
(request.data === undefined && requestOptions.data === undefined)) {
|
||||
return undefined;
|
||||
}
|
||||
const data = Array.isArray(request.data)
|
||||
? request.data
|
||||
: { ...request.data, ...requestOptions.data };
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
function serializeHeaders(transporter, requestOptions) {
|
||||
const headers = {
|
||||
...transporter.headers,
|
||||
...requestOptions.headers,
|
||||
};
|
||||
const serializedHeaders = {};
|
||||
Object.keys(headers).forEach(header => {
|
||||
const value = headers[header];
|
||||
// @ts-ignore
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
serializedHeaders[header.toLowerCase()] = value;
|
||||
});
|
||||
return serializedHeaders;
|
||||
}
|
||||
|
||||
function stackTraceWithoutCredentials(stackTrace) {
|
||||
return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));
|
||||
}
|
||||
function stackFrameWithoutCredentials(stackFrame) {
|
||||
const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']
|
||||
? { 'x-algolia-api-key': '*****' }
|
||||
: {};
|
||||
return {
|
||||
...stackFrame,
|
||||
request: {
|
||||
...stackFrame.request,
|
||||
headers: {
|
||||
...stackFrame.request.headers,
|
||||
...modifiedHeaders,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function createApiError(message, status, transporterStackTrace) {
|
||||
return {
|
||||
name: 'ApiError',
|
||||
message,
|
||||
status,
|
||||
transporterStackTrace,
|
||||
};
|
||||
}
|
||||
|
||||
function createDeserializationError(message, response) {
|
||||
return {
|
||||
name: 'DeserializationError',
|
||||
message,
|
||||
response,
|
||||
};
|
||||
}
|
||||
|
||||
function createRetryError(transporterStackTrace) {
|
||||
return {
|
||||
name: 'RetryError',
|
||||
message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',
|
||||
transporterStackTrace,
|
||||
};
|
||||
}
|
||||
|
||||
exports.CallEnum = CallEnum;
|
||||
exports.HostStatusEnum = HostStatusEnum;
|
||||
exports.createApiError = createApiError;
|
||||
exports.createDeserializationError = createDeserializationError;
|
||||
exports.createMappedRequestOptions = createMappedRequestOptions;
|
||||
exports.createRetryError = createRetryError;
|
||||
exports.createStatefulHost = createStatefulHost;
|
||||
exports.createStatelessHost = createStatelessHost;
|
||||
exports.createTransporter = createTransporter;
|
||||
exports.createUserAgent = createUserAgent;
|
||||
exports.deserializeFailure = deserializeFailure;
|
||||
exports.deserializeSuccess = deserializeSuccess;
|
||||
exports.isStatefulHostTimeouted = isStatefulHostTimeouted;
|
||||
exports.isStatefulHostUp = isStatefulHostUp;
|
||||
exports.serializeData = serializeData;
|
||||
exports.serializeHeaders = serializeHeaders;
|
||||
exports.serializeQueryParameters = serializeQueryParameters;
|
||||
exports.serializeUrl = serializeUrl;
|
||||
exports.stackFrameWithoutCredentials = stackFrameWithoutCredentials;
|
||||
exports.stackTraceWithoutCredentials = stackTraceWithoutCredentials;
|
||||
381
node_modules/@algolia/transporter/dist/transporter.d.ts
generated
vendored
381
node_modules/@algolia/transporter/dist/transporter.d.ts
generated
vendored
|
|
@ -1,381 +0,0 @@
|
|||
import { Cache } from '@algolia/cache-common';
|
||||
import { Logger } from '@algolia/logger-common';
|
||||
import { MethodType } from '@algolia/requester-common';
|
||||
import { Request as Request_2 } from '@algolia/requester-common';
|
||||
import { Requester } from '@algolia/requester-common';
|
||||
import { Response } from '@algolia/requester-common';
|
||||
|
||||
export declare type ApiError = Error & {
|
||||
/**
|
||||
* The http status code.
|
||||
*/
|
||||
readonly status: number;
|
||||
/**
|
||||
* Contains report of stack frames of the
|
||||
* execution of a certain request.
|
||||
*/
|
||||
readonly transporterStackTrace: readonly StackFrame[];
|
||||
};
|
||||
|
||||
export declare const CallEnum: Readonly<Record<string, CallType>>;
|
||||
|
||||
export declare type CallType = 1 | 2 | 3;
|
||||
|
||||
export declare function createApiError(message: string, status: number, transporterStackTrace: readonly StackFrame[]): ApiError;
|
||||
|
||||
export declare function createDeserializationError(message: string, response: Response): DeserializationError;
|
||||
|
||||
export declare function createMappedRequestOptions(requestOptions?: RequestOptions, timeout?: number): MappedRequestOptions;
|
||||
|
||||
export declare function createRetryError(transporterStackTrace: readonly StackFrame[]): RetryError;
|
||||
|
||||
export declare function createStatefulHost(host: StatelessHost, status?: HostStatusType): StatefulHost;
|
||||
|
||||
export declare function createStatelessHost(options: HostOptions): StatelessHost;
|
||||
|
||||
export declare function createTransporter(options: TransporterOptions): Transporter;
|
||||
|
||||
export declare function createUserAgent(version: string): UserAgent;
|
||||
|
||||
export declare type DeserializationError = Error & {
|
||||
/**
|
||||
* The raw response from the server.
|
||||
*/
|
||||
readonly response: Response;
|
||||
};
|
||||
|
||||
export declare function deserializeFailure({ content, status }: Response, stackFrame: readonly StackFrame[]): Error;
|
||||
|
||||
export declare function deserializeSuccess<TObject>(response: Response): TObject;
|
||||
|
||||
export declare type Headers = Readonly<Record<string, string>>;
|
||||
|
||||
export declare type HostOptions = string | {
|
||||
/**
|
||||
* The url of the server, without the protocol.
|
||||
*/
|
||||
readonly url: string;
|
||||
/**
|
||||
* The type of host. Defaults to `Any`.
|
||||
*/
|
||||
readonly accept?: CallType;
|
||||
/**
|
||||
* The protocol. Defaults to `https`.
|
||||
*/
|
||||
readonly protocol?: string;
|
||||
};
|
||||
|
||||
export declare const HostStatusEnum: Readonly<Record<string, HostStatusType>>;
|
||||
|
||||
export declare type HostStatusType = 1 | 2 | 3;
|
||||
|
||||
export declare function isStatefulHostTimeouted(host: StatefulHost): boolean;
|
||||
|
||||
export declare function isStatefulHostUp(host: StatefulHost): boolean;
|
||||
|
||||
export declare type MappedRequestOptions = {
|
||||
/**
|
||||
* If the request should be cached.
|
||||
*/
|
||||
readonly cacheable: boolean | undefined;
|
||||
/**
|
||||
* The `read` or `write` timeout of the request.
|
||||
*/
|
||||
readonly timeout: number | undefined;
|
||||
/**
|
||||
* The headers of the request.
|
||||
*/
|
||||
readonly headers: Record<string, string>;
|
||||
/**
|
||||
* The query parameters of the request.
|
||||
*/
|
||||
readonly queryParameters: Record<string, any>;
|
||||
/**
|
||||
* The data to be transfered to the server.
|
||||
*/
|
||||
readonly data?: Record<string, string>;
|
||||
};
|
||||
|
||||
export declare type QueryParameters = Readonly<Record<string, string>>;
|
||||
|
||||
export declare type Request = {
|
||||
/**
|
||||
* The method of the request. `GET`, etc.
|
||||
*/
|
||||
readonly method: MethodType;
|
||||
/**
|
||||
* The path of the request. i.e: `/1/indexes`.
|
||||
*/
|
||||
readonly path: string;
|
||||
/**
|
||||
* The data to transfer to the server.
|
||||
*/
|
||||
readonly data?: Record<string, any> | ReadonlyArray<Record<string, any>>;
|
||||
/**
|
||||
* If the response should persist on cache.
|
||||
*/
|
||||
readonly cacheable?: boolean;
|
||||
};
|
||||
|
||||
export declare type RequestOptions = {
|
||||
/**
|
||||
* If the given request should persist on the cache. Keep in mind,
|
||||
* that some methods may have this option enabled by default.
|
||||
*/
|
||||
readonly cacheable?: boolean;
|
||||
/**
|
||||
* Custom timeout for the request. Note that, in normal situacions
|
||||
* the given timeout will be applied. But the transporter layer may
|
||||
* increase this timeout if there is need for it.
|
||||
*/
|
||||
readonly timeout?: number;
|
||||
/**
|
||||
* Custom headers for the request. This headers are
|
||||
* going to be merged the transporter headers.
|
||||
*/
|
||||
readonly headers?: Readonly<Record<string, string>>;
|
||||
/**
|
||||
* Custom query parameters for the request. This query parameters are
|
||||
* going to be merged the transporter query parameters.
|
||||
*/
|
||||
readonly queryParameters?: Record<string, any>;
|
||||
/**
|
||||
* Custom data for the request. This data are
|
||||
* going to be merged the transporter data.
|
||||
*/
|
||||
readonly data?: Record<string, any>;
|
||||
/**
|
||||
* Additional request body values. It's only taken in
|
||||
* consideration in `POST` and `PUT` requests.
|
||||
*/
|
||||
[key: string]: any;
|
||||
};
|
||||
|
||||
export declare type RetryError = Error & {
|
||||
/**
|
||||
* Contains report of stack frames of the
|
||||
* execution of a certain request.
|
||||
*/
|
||||
readonly transporterStackTrace: readonly StackFrame[];
|
||||
};
|
||||
|
||||
export declare function serializeData(request: Request, requestOptions: RequestOptions): string | undefined;
|
||||
|
||||
export declare function serializeHeaders(transporter: Transporter, requestOptions: RequestOptions): Headers;
|
||||
|
||||
export declare function serializeQueryParameters(parameters: Readonly<Record<string, any>>): string;
|
||||
|
||||
export declare function serializeUrl(host: StatelessHost, path: string, queryParameters: Readonly<Record<string, string>>): string;
|
||||
|
||||
export declare type StackFrame = {
|
||||
/**
|
||||
* The request made.
|
||||
*/
|
||||
readonly request: Request_2;
|
||||
/**
|
||||
* The received response.
|
||||
*/
|
||||
readonly response: Response;
|
||||
/**
|
||||
* The host associated with the `request` and the `response`.
|
||||
*/
|
||||
readonly host: StatelessHost;
|
||||
/**
|
||||
* The number of tries left.
|
||||
*/
|
||||
readonly triesLeft: number;
|
||||
};
|
||||
|
||||
export declare function stackFrameWithoutCredentials(stackFrame: StackFrame): StackFrame;
|
||||
|
||||
export declare function stackTraceWithoutCredentials(stackTrace: readonly StackFrame[]): readonly StackFrame[];
|
||||
|
||||
export declare type StatefulHost = StatelessHost & {
|
||||
/**
|
||||
* Holds the last time this host failed in milliseconds elapsed
|
||||
* since the UNIX epoch. This failure can be because of an
|
||||
* timeout error or a because the host is not available.
|
||||
*/
|
||||
readonly lastUpdate: number;
|
||||
/**
|
||||
* Holds the host status. Note that, depending of the `lastUpdate`
|
||||
* an host may be considered as `Up` on the transporter layer.
|
||||
*/
|
||||
readonly status: HostStatusType;
|
||||
};
|
||||
|
||||
export declare type StatelessHost = {
|
||||
/**
|
||||
* The protocol of the stateless host. Between `http` and `https`.
|
||||
*/
|
||||
readonly protocol: string;
|
||||
/**
|
||||
* The url, without protocol.
|
||||
*/
|
||||
readonly url: string;
|
||||
/**
|
||||
* The type of the host.
|
||||
*/
|
||||
readonly accept: CallType;
|
||||
};
|
||||
|
||||
export declare type Timeouts = {
|
||||
/**
|
||||
* The timeout to stablish a connection with the server.
|
||||
*/
|
||||
readonly connect: number;
|
||||
/**
|
||||
* The timeout to receive the response on read requests.
|
||||
*/
|
||||
readonly read: number;
|
||||
/**
|
||||
* The timeout to receive the response on write requests.
|
||||
*/
|
||||
readonly write: number;
|
||||
};
|
||||
|
||||
export declare type Transporter = {
|
||||
/**
|
||||
* The cache of the hosts. Usually used to persist
|
||||
* the state of the host when its down.
|
||||
*/
|
||||
readonly hostsCache: Cache;
|
||||
/**
|
||||
* The logger instance to send events of the transporter.
|
||||
*/
|
||||
readonly logger: Logger;
|
||||
/**
|
||||
* The underlying requester used. Should differ
|
||||
* depending of the enviroment where the client
|
||||
* will be used.
|
||||
*/
|
||||
readonly requester: Requester;
|
||||
/**
|
||||
* The cache of the requests. When requests are
|
||||
* `cacheable`, the returned promised persists
|
||||
* in this cache to shared in similar resquests
|
||||
* before being resolved.
|
||||
*/
|
||||
readonly requestsCache: Cache;
|
||||
/**
|
||||
* The cache of the responses. When requests are
|
||||
* `cacheable`, the returned responses persists
|
||||
* in this cache to shared in similar resquests.
|
||||
*/
|
||||
readonly responsesCache: Cache;
|
||||
/**
|
||||
* The timeouts used by the requester. The transporter
|
||||
* layer may increase this timeouts as defined on the
|
||||
* retry strategy.
|
||||
*/
|
||||
readonly timeouts: Timeouts;
|
||||
/**
|
||||
* The user agent used. Sent on query parameters.
|
||||
*/
|
||||
readonly userAgent: UserAgent;
|
||||
/**
|
||||
* The headers used on each request.
|
||||
*/
|
||||
readonly headers: Headers;
|
||||
/**
|
||||
* The query parameters used on each request.
|
||||
*/
|
||||
readonly queryParameters: QueryParameters;
|
||||
/**
|
||||
* The hosts used by the retry strategy.
|
||||
*
|
||||
* @readonly
|
||||
*/
|
||||
hosts: readonly StatelessHost[];
|
||||
/**
|
||||
* Performs a read request using read hosts.
|
||||
*/
|
||||
readonly read: <TResponse>(request: Request, requestOptions?: RequestOptions) => Readonly<Promise<TResponse>>;
|
||||
/**
|
||||
* Performs a write request using write hosts.
|
||||
*/
|
||||
readonly write: <TResponse>(request: Request, requestOptions?: RequestOptions) => Readonly<Promise<TResponse>>;
|
||||
};
|
||||
|
||||
export declare type TransporterOptions = {
|
||||
/**
|
||||
* The cache of the hosts. Usually used to persist
|
||||
* the state of the host when its down.
|
||||
*/
|
||||
readonly hostsCache: Cache;
|
||||
/**
|
||||
* The logger instance to send events of the transporter.
|
||||
*/
|
||||
readonly logger: Logger;
|
||||
/**
|
||||
* The underlying requester used. Should differ
|
||||
* depending of the enviroment where the client
|
||||
* will be used.
|
||||
*/
|
||||
readonly requester: Requester;
|
||||
/**
|
||||
* The cache of the requests. When requests are
|
||||
* `cacheable`, the returned promised persists
|
||||
* in this cache to shared in similar resquests
|
||||
* before being resolved.
|
||||
*/
|
||||
readonly requestsCache: Cache;
|
||||
/**
|
||||
* The cache of the responses. When requests are
|
||||
* `cacheable`, the returned responses persists
|
||||
* in this cache to shared in similar resquests.
|
||||
*/
|
||||
readonly responsesCache: Cache;
|
||||
/**
|
||||
* The timeouts used by the requester. The transporter
|
||||
* layer may increase this timeouts as defined on the
|
||||
* retry strategy.
|
||||
*/
|
||||
readonly timeouts: Timeouts;
|
||||
/**
|
||||
* The hosts used by the requester.
|
||||
*/
|
||||
readonly hosts: readonly HostOptions[];
|
||||
/**
|
||||
* The headers used by the requester. The transporter
|
||||
* layer may add some extra headers during the request
|
||||
* for the user agent, and others.
|
||||
*/
|
||||
readonly headers: Headers;
|
||||
/**
|
||||
* The query parameters used by the requester. The transporter
|
||||
* layer may add some extra headers during the request
|
||||
* for the user agent, and others.
|
||||
*/
|
||||
readonly queryParameters: QueryParameters;
|
||||
/**
|
||||
* The user agent used. Sent on query parameters.
|
||||
*/
|
||||
readonly userAgent: UserAgent;
|
||||
};
|
||||
|
||||
export declare type UserAgent = {
|
||||
/**
|
||||
* The raw value of the user agent.
|
||||
*
|
||||
* @readonly
|
||||
*/
|
||||
value: string;
|
||||
/**
|
||||
* Mutates the current user agent ading the given user agent options.
|
||||
*/
|
||||
readonly add: (options: UserAgentOptions) => UserAgent;
|
||||
};
|
||||
|
||||
export declare type UserAgentOptions = {
|
||||
/**
|
||||
* The segment. Usually the integration name.
|
||||
*/
|
||||
readonly segment: string;
|
||||
/**
|
||||
* The version. Usually the integration version.
|
||||
*/
|
||||
readonly version?: string;
|
||||
};
|
||||
|
||||
export { }
|
||||
460
node_modules/@algolia/transporter/dist/transporter.esm.js
generated
vendored
460
node_modules/@algolia/transporter/dist/transporter.esm.js
generated
vendored
|
|
@ -1,460 +0,0 @@
|
|||
import { MethodEnum } from '@algolia/requester-common';
|
||||
|
||||
function createMappedRequestOptions(requestOptions, timeout) {
|
||||
const options = requestOptions || {};
|
||||
const data = options.data || {};
|
||||
Object.keys(options).forEach(key => {
|
||||
if (['timeout', 'headers', 'queryParameters', 'data', 'cacheable'].indexOf(key) === -1) {
|
||||
data[key] = options[key]; // eslint-disable-line functional/immutable-data
|
||||
}
|
||||
});
|
||||
return {
|
||||
data: Object.entries(data).length > 0 ? data : undefined,
|
||||
timeout: options.timeout || timeout,
|
||||
headers: options.headers || {},
|
||||
queryParameters: options.queryParameters || {},
|
||||
cacheable: options.cacheable,
|
||||
};
|
||||
}
|
||||
|
||||
const CallEnum = {
|
||||
/**
|
||||
* If the host is read only.
|
||||
*/
|
||||
Read: 1,
|
||||
/**
|
||||
* If the host is write only.
|
||||
*/
|
||||
Write: 2,
|
||||
/**
|
||||
* If the host is both read and write.
|
||||
*/
|
||||
Any: 3,
|
||||
};
|
||||
|
||||
const HostStatusEnum = {
|
||||
Up: 1,
|
||||
Down: 2,
|
||||
Timeouted: 3,
|
||||
};
|
||||
|
||||
// By default, API Clients at Algolia have expiration delay
|
||||
// of 5 mins. In the JavaScript client, we have 2 mins.
|
||||
const EXPIRATION_DELAY = 2 * 60 * 1000;
|
||||
function createStatefulHost(host, status = HostStatusEnum.Up) {
|
||||
return {
|
||||
...host,
|
||||
status,
|
||||
lastUpdate: Date.now(),
|
||||
};
|
||||
}
|
||||
function isStatefulHostUp(host) {
|
||||
return host.status === HostStatusEnum.Up || Date.now() - host.lastUpdate > EXPIRATION_DELAY;
|
||||
}
|
||||
function isStatefulHostTimeouted(host) {
|
||||
return (host.status === HostStatusEnum.Timeouted && Date.now() - host.lastUpdate <= EXPIRATION_DELAY);
|
||||
}
|
||||
|
||||
function createStatelessHost(options) {
|
||||
if (typeof options === 'string') {
|
||||
return {
|
||||
protocol: 'https',
|
||||
url: options,
|
||||
accept: CallEnum.Any,
|
||||
};
|
||||
}
|
||||
return {
|
||||
protocol: options.protocol || 'https',
|
||||
url: options.url,
|
||||
accept: options.accept || CallEnum.Any,
|
||||
};
|
||||
}
|
||||
|
||||
function createRetryableOptions(hostsCache, statelessHosts) {
|
||||
return Promise.all(statelessHosts.map(statelessHost => {
|
||||
return hostsCache.get(statelessHost, () => {
|
||||
return Promise.resolve(createStatefulHost(statelessHost));
|
||||
});
|
||||
})).then(statefulHosts => {
|
||||
const hostsUp = statefulHosts.filter(host => isStatefulHostUp(host));
|
||||
const hostsTimeouted = statefulHosts.filter(host => isStatefulHostTimeouted(host));
|
||||
/**
|
||||
* Note, we put the hosts that previously timeouted on the end of the list.
|
||||
*/
|
||||
const hostsAvailable = [...hostsUp, ...hostsTimeouted];
|
||||
const statelessHostsAvailable = hostsAvailable.length > 0
|
||||
? hostsAvailable.map(host => createStatelessHost(host))
|
||||
: statelessHosts;
|
||||
return {
|
||||
getTimeout(timeoutsCount, baseTimeout) {
|
||||
/**
|
||||
* Imagine that you have 4 hosts, if timeouts will increase
|
||||
* on the following way: 1 (timeouted) > 4 (timeouted) > 5 (200)
|
||||
*
|
||||
* Note that, the very next request, we start from the previous timeout
|
||||
*
|
||||
* 5 (timeouted) > 6 (timeouted) > 7 ...
|
||||
*
|
||||
* This strategy may need to be reviewed, but is the strategy on the our
|
||||
* current v3 version.
|
||||
*/
|
||||
const timeoutMultiplier = hostsTimeouted.length === 0 && timeoutsCount === 0
|
||||
? 1
|
||||
: hostsTimeouted.length + 3 + timeoutsCount;
|
||||
return timeoutMultiplier * baseTimeout;
|
||||
},
|
||||
statelessHosts: statelessHostsAvailable,
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
const isNetworkError = ({ isTimedOut, status }) => {
|
||||
return !isTimedOut && ~~status === 0;
|
||||
};
|
||||
const isRetryable = (response) => {
|
||||
const status = response.status;
|
||||
const isTimedOut = response.isTimedOut;
|
||||
return (isTimedOut || isNetworkError(response) || (~~(status / 100) !== 2 && ~~(status / 100) !== 4));
|
||||
};
|
||||
const isSuccess = ({ status }) => {
|
||||
return ~~(status / 100) === 2;
|
||||
};
|
||||
const retryDecision = (response, outcomes) => {
|
||||
if (isRetryable(response)) {
|
||||
return outcomes.onRetry(response);
|
||||
}
|
||||
if (isSuccess(response)) {
|
||||
return outcomes.onSuccess(response);
|
||||
}
|
||||
return outcomes.onFail(response);
|
||||
};
|
||||
|
||||
function retryableRequest(transporter, statelessHosts, request, requestOptions) {
|
||||
const stackTrace = []; // eslint-disable-line functional/prefer-readonly-type
|
||||
/**
|
||||
* First we prepare the payload that do not depend from hosts.
|
||||
*/
|
||||
const data = serializeData(request, requestOptions);
|
||||
const headers = serializeHeaders(transporter, requestOptions);
|
||||
const method = request.method;
|
||||
// On `GET`, the data is proxied to query parameters.
|
||||
const dataQueryParameters = request.method !== MethodEnum.Get
|
||||
? {}
|
||||
: {
|
||||
...request.data,
|
||||
...requestOptions.data,
|
||||
};
|
||||
const queryParameters = {
|
||||
'x-algolia-agent': transporter.userAgent.value,
|
||||
...transporter.queryParameters,
|
||||
...dataQueryParameters,
|
||||
...requestOptions.queryParameters,
|
||||
};
|
||||
let timeoutsCount = 0; // eslint-disable-line functional/no-let
|
||||
const retry = (hosts, // eslint-disable-line functional/prefer-readonly-type
|
||||
getTimeout) => {
|
||||
/**
|
||||
* We iterate on each host, until there is no host left.
|
||||
*/
|
||||
const host = hosts.pop(); // eslint-disable-line functional/immutable-data
|
||||
if (host === undefined) {
|
||||
throw createRetryError(stackTraceWithoutCredentials(stackTrace));
|
||||
}
|
||||
const payload = {
|
||||
data,
|
||||
headers,
|
||||
method,
|
||||
url: serializeUrl(host, request.path, queryParameters),
|
||||
connectTimeout: getTimeout(timeoutsCount, transporter.timeouts.connect),
|
||||
responseTimeout: getTimeout(timeoutsCount, requestOptions.timeout),
|
||||
};
|
||||
/**
|
||||
* The stackFrame is pushed to the stackTrace so we
|
||||
* can have information about onRetry and onFailure
|
||||
* decisions.
|
||||
*/
|
||||
const pushToStackTrace = (response) => {
|
||||
const stackFrame = {
|
||||
request: payload,
|
||||
response,
|
||||
host,
|
||||
triesLeft: hosts.length,
|
||||
};
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
stackTrace.push(stackFrame);
|
||||
return stackFrame;
|
||||
};
|
||||
const decisions = {
|
||||
onSuccess: response => deserializeSuccess(response),
|
||||
onRetry(response) {
|
||||
const stackFrame = pushToStackTrace(response);
|
||||
/**
|
||||
* If response is a timeout, we increaset the number of
|
||||
* timeouts so we can increase the timeout later.
|
||||
*/
|
||||
if (response.isTimedOut) {
|
||||
timeoutsCount++;
|
||||
}
|
||||
return Promise.all([
|
||||
/**
|
||||
* Failures are individually send the logger, allowing
|
||||
* the end user to debug / store stack frames even
|
||||
* when a retry error does not happen.
|
||||
*/
|
||||
transporter.logger.info('Retryable failure', stackFrameWithoutCredentials(stackFrame)),
|
||||
/**
|
||||
* We also store the state of the host in failure cases. If the host, is
|
||||
* down it will remain down for the next 2 minutes. In a timeout situation,
|
||||
* this host will be added end of the list of hosts on the next request.
|
||||
*/
|
||||
transporter.hostsCache.set(host, createStatefulHost(host, response.isTimedOut ? HostStatusEnum.Timeouted : HostStatusEnum.Down)),
|
||||
]).then(() => retry(hosts, getTimeout));
|
||||
},
|
||||
onFail(response) {
|
||||
pushToStackTrace(response);
|
||||
throw deserializeFailure(response, stackTraceWithoutCredentials(stackTrace));
|
||||
},
|
||||
};
|
||||
return transporter.requester.send(payload).then(response => {
|
||||
return retryDecision(response, decisions);
|
||||
});
|
||||
};
|
||||
/**
|
||||
* Finally, for each retryable host perform request until we got a non
|
||||
* retryable response. Some notes here:
|
||||
*
|
||||
* 1. The reverse here is applied so we can apply a `pop` later on => more performant.
|
||||
* 2. We also get from the retryable options a timeout multiplier that is tailored
|
||||
* for the current context.
|
||||
*/
|
||||
return createRetryableOptions(transporter.hostsCache, statelessHosts).then(options => {
|
||||
return retry([...options.statelessHosts].reverse(), options.getTimeout);
|
||||
});
|
||||
}
|
||||
|
||||
function createTransporter(options) {
|
||||
const { hostsCache, logger, requester, requestsCache, responsesCache, timeouts, userAgent, hosts, queryParameters, headers, } = options;
|
||||
const transporter = {
|
||||
hostsCache,
|
||||
logger,
|
||||
requester,
|
||||
requestsCache,
|
||||
responsesCache,
|
||||
timeouts,
|
||||
userAgent,
|
||||
headers,
|
||||
queryParameters,
|
||||
hosts: hosts.map(host => createStatelessHost(host)),
|
||||
read(request, requestOptions) {
|
||||
/**
|
||||
* First, we compute the user request options. Now, keep in mind,
|
||||
* that using request options the user is able to modified the intire
|
||||
* payload of the request. Such as headers, query parameters, and others.
|
||||
*/
|
||||
const mappedRequestOptions = createMappedRequestOptions(requestOptions, transporter.timeouts.read);
|
||||
const createRetryableRequest = () => {
|
||||
/**
|
||||
* Then, we prepare a function factory that contains the construction of
|
||||
* the retryable request. At this point, we may *not* perform the actual
|
||||
* request. But we want to have the function factory ready.
|
||||
*/
|
||||
return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Read) !== 0), request, mappedRequestOptions);
|
||||
};
|
||||
/**
|
||||
* Once we have the function factory ready, we need to determine of the
|
||||
* request is "cacheable" - should be cached. Note that, once again,
|
||||
* the user can force this option.
|
||||
*/
|
||||
const cacheable = mappedRequestOptions.cacheable !== undefined
|
||||
? mappedRequestOptions.cacheable
|
||||
: request.cacheable;
|
||||
/**
|
||||
* If is not "cacheable", we immediatly trigger the retryable request, no
|
||||
* need to check cache implementations.
|
||||
*/
|
||||
if (cacheable !== true) {
|
||||
return createRetryableRequest();
|
||||
}
|
||||
/**
|
||||
* If the request is "cacheable", we need to first compute the key to ask
|
||||
* the cache implementations if this request is on progress or if the
|
||||
* response already exists on the cache.
|
||||
*/
|
||||
const key = {
|
||||
request,
|
||||
mappedRequestOptions,
|
||||
transporter: {
|
||||
queryParameters: transporter.queryParameters,
|
||||
headers: transporter.headers,
|
||||
},
|
||||
};
|
||||
/**
|
||||
* With the computed key, we first ask the responses cache
|
||||
* implemention if this request was been resolved before.
|
||||
*/
|
||||
return transporter.responsesCache.get(key, () => {
|
||||
/**
|
||||
* If the request has never resolved before, we actually ask if there
|
||||
* is a current request with the same key on progress.
|
||||
*/
|
||||
return transporter.requestsCache.get(key, () => {
|
||||
return (transporter.requestsCache
|
||||
/**
|
||||
* Finally, if there is no request in progress with the same key,
|
||||
* this `createRetryableRequest()` will actually trigger the
|
||||
* retryable request.
|
||||
*/
|
||||
.set(key, createRetryableRequest())
|
||||
.then(response => Promise.all([transporter.requestsCache.delete(key), response]), err => Promise.all([transporter.requestsCache.delete(key), Promise.reject(err)]))
|
||||
.then(([_, response]) => response));
|
||||
});
|
||||
}, {
|
||||
/**
|
||||
* Of course, once we get this response back from the server, we
|
||||
* tell response cache to actually store the received response
|
||||
* to be used later.
|
||||
*/
|
||||
miss: response => transporter.responsesCache.set(key, response),
|
||||
});
|
||||
},
|
||||
write(request, requestOptions) {
|
||||
/**
|
||||
* On write requests, no cache mechanisms are applied, and we
|
||||
* proxy the request immediately to the requester.
|
||||
*/
|
||||
return retryableRequest(transporter, transporter.hosts.filter(host => (host.accept & CallEnum.Write) !== 0), request, createMappedRequestOptions(requestOptions, transporter.timeouts.write));
|
||||
},
|
||||
};
|
||||
return transporter;
|
||||
}
|
||||
|
||||
function createUserAgent(version) {
|
||||
const userAgent = {
|
||||
value: `Algolia for JavaScript (${version})`,
|
||||
add(options) {
|
||||
const addedUserAgent = `; ${options.segment}${options.version !== undefined ? ` (${options.version})` : ''}`;
|
||||
if (userAgent.value.indexOf(addedUserAgent) === -1) {
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
userAgent.value = `${userAgent.value}${addedUserAgent}`;
|
||||
}
|
||||
return userAgent;
|
||||
},
|
||||
};
|
||||
return userAgent;
|
||||
}
|
||||
|
||||
function deserializeSuccess(response) {
|
||||
// eslint-disable-next-line functional/no-try-statement
|
||||
try {
|
||||
return JSON.parse(response.content);
|
||||
}
|
||||
catch (e) {
|
||||
throw createDeserializationError(e.message, response);
|
||||
}
|
||||
}
|
||||
function deserializeFailure({ content, status }, stackFrame) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let message = content;
|
||||
// eslint-disable-next-line functional/no-try-statement
|
||||
try {
|
||||
message = JSON.parse(content).message;
|
||||
}
|
||||
catch (e) {
|
||||
// ..
|
||||
}
|
||||
return createApiError(message, status, stackFrame);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line functional/prefer-readonly-type
|
||||
function encode(format, ...args) {
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let i = 0;
|
||||
return format.replace(/%s/g, () => encodeURIComponent(args[i++]));
|
||||
}
|
||||
|
||||
function serializeUrl(host, path, queryParameters) {
|
||||
const queryParametersAsString = serializeQueryParameters(queryParameters);
|
||||
// eslint-disable-next-line functional/no-let
|
||||
let url = `${host.protocol}://${host.url}/${path.charAt(0) === '/' ? path.substr(1) : path}`;
|
||||
if (queryParametersAsString.length) {
|
||||
url += `?${queryParametersAsString}`;
|
||||
}
|
||||
return url;
|
||||
}
|
||||
function serializeQueryParameters(parameters) {
|
||||
const isObjectOrArray = (value) => Object.prototype.toString.call(value) === '[object Object]' ||
|
||||
Object.prototype.toString.call(value) === '[object Array]';
|
||||
return Object.keys(parameters)
|
||||
.map(key => encode('%s=%s', key, isObjectOrArray(parameters[key]) ? JSON.stringify(parameters[key]) : parameters[key]))
|
||||
.join('&');
|
||||
}
|
||||
function serializeData(request, requestOptions) {
|
||||
if (request.method === MethodEnum.Get ||
|
||||
(request.data === undefined && requestOptions.data === undefined)) {
|
||||
return undefined;
|
||||
}
|
||||
const data = Array.isArray(request.data)
|
||||
? request.data
|
||||
: { ...request.data, ...requestOptions.data };
|
||||
return JSON.stringify(data);
|
||||
}
|
||||
function serializeHeaders(transporter, requestOptions) {
|
||||
const headers = {
|
||||
...transporter.headers,
|
||||
...requestOptions.headers,
|
||||
};
|
||||
const serializedHeaders = {};
|
||||
Object.keys(headers).forEach(header => {
|
||||
const value = headers[header];
|
||||
// @ts-ignore
|
||||
// eslint-disable-next-line functional/immutable-data
|
||||
serializedHeaders[header.toLowerCase()] = value;
|
||||
});
|
||||
return serializedHeaders;
|
||||
}
|
||||
|
||||
function stackTraceWithoutCredentials(stackTrace) {
|
||||
return stackTrace.map(stackFrame => stackFrameWithoutCredentials(stackFrame));
|
||||
}
|
||||
function stackFrameWithoutCredentials(stackFrame) {
|
||||
const modifiedHeaders = stackFrame.request.headers['x-algolia-api-key']
|
||||
? { 'x-algolia-api-key': '*****' }
|
||||
: {};
|
||||
return {
|
||||
...stackFrame,
|
||||
request: {
|
||||
...stackFrame.request,
|
||||
headers: {
|
||||
...stackFrame.request.headers,
|
||||
...modifiedHeaders,
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
function createApiError(message, status, transporterStackTrace) {
|
||||
return {
|
||||
name: 'ApiError',
|
||||
message,
|
||||
status,
|
||||
transporterStackTrace,
|
||||
};
|
||||
}
|
||||
|
||||
function createDeserializationError(message, response) {
|
||||
return {
|
||||
name: 'DeserializationError',
|
||||
message,
|
||||
response,
|
||||
};
|
||||
}
|
||||
|
||||
function createRetryError(transporterStackTrace) {
|
||||
return {
|
||||
name: 'RetryError',
|
||||
message: 'Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.',
|
||||
transporterStackTrace,
|
||||
};
|
||||
}
|
||||
|
||||
export { CallEnum, HostStatusEnum, createApiError, createDeserializationError, createMappedRequestOptions, createRetryError, createStatefulHost, createStatelessHost, createTransporter, createUserAgent, deserializeFailure, deserializeSuccess, isStatefulHostTimeouted, isStatefulHostUp, serializeData, serializeHeaders, serializeQueryParameters, serializeUrl, stackFrameWithoutCredentials, stackTraceWithoutCredentials };
|
||||
2
node_modules/@algolia/transporter/index.js
generated
vendored
2
node_modules/@algolia/transporter/index.js
generated
vendored
|
|
@ -1,2 +0,0 @@
|
|||
// eslint-disable-next-line functional/immutable-data, import/no-commonjs
|
||||
module.exports = require('./dist/transporter.cjs.js');
|
||||
24
node_modules/@algolia/transporter/package.json
generated
vendored
24
node_modules/@algolia/transporter/package.json
generated
vendored
|
|
@ -1,24 +0,0 @@
|
|||
{
|
||||
"name": "@algolia/transporter",
|
||||
"version": "4.22.0",
|
||||
"private": false,
|
||||
"description": "Promise-based transporter layer with embedded retry strategy.",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"sideEffects": false,
|
||||
"main": "index.js",
|
||||
"module": "dist/transporter.esm.js",
|
||||
"types": "dist/transporter.d.ts",
|
||||
"files": [
|
||||
"index.js",
|
||||
"dist"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/cache-common": "4.22.0",
|
||||
"@algolia/logger-common": "4.22.0",
|
||||
"@algolia/requester-common": "4.22.0"
|
||||
}
|
||||
}
|
||||
7
node_modules/@esbuild/win32-x64/package.json
generated
vendored
7
node_modules/@esbuild/win32-x64/package.json
generated
vendored
|
|
@ -1,8 +1,11 @@
|
|||
{
|
||||
"name": "@esbuild/win32-x64",
|
||||
"version": "0.19.12",
|
||||
"version": "0.21.5",
|
||||
"description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
|
||||
"repository": "https://github.com/evanw/esbuild",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/evanw/esbuild.git"
|
||||
},
|
||||
"license": "MIT",
|
||||
"preferUnplugged": true,
|
||||
"engines": {
|
||||
|
|
|
|||
7
node_modules/@rollup/rollup-win32-x64-msvc/package.json
generated
vendored
7
node_modules/@rollup/rollup-win32-x64-msvc/package.json
generated
vendored
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@rollup/rollup-win32-x64-msvc",
|
||||
"version": "4.9.6",
|
||||
"version": "4.57.1",
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
|
|
@ -14,6 +14,9 @@
|
|||
"author": "Lukas Taegert-Atkinson",
|
||||
"homepage": "https://rollupjs.org/",
|
||||
"license": "MIT",
|
||||
"repository": "rollup/rollup",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/rollup/rollup.git"
|
||||
},
|
||||
"main": "./rollup.win32-x64-msvc.node"
|
||||
}
|
||||
BIN
node_modules/@rollup/rollup-win32-x64-msvc/rollup.win32-x64-msvc.node
generated
vendored
BIN
node_modules/@rollup/rollup-win32-x64-msvc/rollup.win32-x64-msvc.node
generated
vendored
Binary file not shown.
10
node_modules/algoliasearch/README.md
generated
vendored
10
node_modules/algoliasearch/README.md
generated
vendored
|
|
@ -37,11 +37,11 @@ All of our clients comes with type definition, and are available for both browse
|
|||
### With a package manager
|
||||
|
||||
```bash
|
||||
yarn add algoliasearch@5.48.0
|
||||
yarn add algoliasearch@5.48.1
|
||||
# or
|
||||
npm install algoliasearch@5.48.0
|
||||
npm install algoliasearch@5.48.1
|
||||
# or
|
||||
pnpm add algoliasearch@5.48.0
|
||||
pnpm add algoliasearch@5.48.1
|
||||
```
|
||||
|
||||
### Without a package manager
|
||||
|
|
@ -50,10 +50,10 @@ Add the following JavaScript snippet to the <head> of your website:
|
|||
|
||||
```html
|
||||
// for the full client
|
||||
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@5.48.0/dist/algoliasearch.umd.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@5.48.1/dist/algoliasearch.umd.js"></script>
|
||||
|
||||
// for the lite client
|
||||
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@5.48.0/dist/lite/builds/browser.umd.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/algoliasearch@5.48.1/dist/lite/builds/browser.umd.js"></script>
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
|
|
|||
2
node_modules/algoliasearch/dist/algoliasearch.umd.js
generated
vendored
2
node_modules/algoliasearch/dist/algoliasearch.umd.js
generated
vendored
File diff suppressed because one or more lines are too long
36
node_modules/algoliasearch/package.json
generated
vendored
36
node_modules/algoliasearch/package.json
generated
vendored
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "5.48.0",
|
||||
"version": "5.48.1",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||
|
|
@ -74,25 +74,25 @@
|
|||
"lite.d.ts"
|
||||
],
|
||||
"dependencies": {
|
||||
"@algolia/abtesting": "1.14.0",
|
||||
"@algolia/client-abtesting": "5.48.0",
|
||||
"@algolia/client-analytics": "5.48.0",
|
||||
"@algolia/client-common": "5.48.0",
|
||||
"@algolia/client-insights": "5.48.0",
|
||||
"@algolia/client-personalization": "5.48.0",
|
||||
"@algolia/client-query-suggestions": "5.48.0",
|
||||
"@algolia/client-search": "5.48.0",
|
||||
"@algolia/ingestion": "1.48.0",
|
||||
"@algolia/monitoring": "1.48.0",
|
||||
"@algolia/recommend": "5.48.0",
|
||||
"@algolia/requester-browser-xhr": "5.48.0",
|
||||
"@algolia/requester-fetch": "5.48.0",
|
||||
"@algolia/requester-node-http": "5.48.0"
|
||||
"@algolia/abtesting": "1.14.1",
|
||||
"@algolia/client-abtesting": "5.48.1",
|
||||
"@algolia/client-analytics": "5.48.1",
|
||||
"@algolia/client-common": "5.48.1",
|
||||
"@algolia/client-insights": "5.48.1",
|
||||
"@algolia/client-personalization": "5.48.1",
|
||||
"@algolia/client-query-suggestions": "5.48.1",
|
||||
"@algolia/client-search": "5.48.1",
|
||||
"@algolia/ingestion": "1.48.1",
|
||||
"@algolia/monitoring": "1.48.1",
|
||||
"@algolia/recommend": "5.48.1",
|
||||
"@algolia/requester-browser-xhr": "5.48.1",
|
||||
"@algolia/requester-fetch": "5.48.1",
|
||||
"@algolia/requester-node-http": "5.48.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@algolia/requester-testing": "5.48.0",
|
||||
"@algolia/requester-testing": "5.48.1",
|
||||
"@arethetypeswrong/cli": "0.18.2",
|
||||
"@cloudflare/vitest-pool-workers": "0.12.8",
|
||||
"@cloudflare/vitest-pool-workers": "0.12.10",
|
||||
"@cloudflare/workers-types": "4.20251115.0",
|
||||
"@types/node": "25.1.0",
|
||||
"jsdom": "27.4.0",
|
||||
|
|
@ -105,5 +105,5 @@
|
|||
"engines": {
|
||||
"node": ">= 14.0.0"
|
||||
},
|
||||
"gitHead": "b39976bd859ef66e65d2db182d69853a91a71139"
|
||||
"gitHead": "4bbb3ce8d4cb7b7ad454352d4835cffead91ee30"
|
||||
}
|
||||
|
|
|
|||
11
node_modules/preact/README.md
generated
vendored
11
node_modules/preact/README.md
generated
vendored
|
|
@ -23,19 +23,14 @@
|
|||
<tr>
|
||||
<td>
|
||||
|
||||
[](http://npm.im/preact)
|
||||
[](https://www.npmjs.com/package/preact)
|
||||
[](https://chat.preactjs.com)
|
||||
[](#backers)
|
||||
[](#sponsors)
|
||||
|
||||
[](https://coveralls.io/github/preactjs/preact)
|
||||
[](https://unpkg.com/preact/dist/preact.min.js)
|
||||
[](https://unpkg.com/preact/dist/preact.min.js)
|
||||
|
||||
</td>
|
||||
<td>
|
||||
|
||||
<img src="https://saucelabs.com/browser-matrix/preact.svg" title="Browser support matrix">
|
||||
[](https://unpkg.com/preact/dist/preact.min.js)
|
||||
[](https://unpkg.com/preact/dist/preact.min.js)
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
|||
21
node_modules/preact/compat/LICENSE
generated
vendored
21
node_modules/preact/compat/LICENSE
generated
vendored
|
|
@ -1,21 +0,0 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-present Jason Miller
|
||||
|
||||
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.
|
||||
6
node_modules/preact/compat/client.js
generated
vendored
6
node_modules/preact/compat/client.js
generated
vendored
|
|
@ -2,10 +2,12 @@ const { render, hydrate, unmountComponentAtNode } = require('preact/compat');
|
|||
|
||||
function createRoot(container) {
|
||||
return {
|
||||
render(children) {
|
||||
// eslint-disable-next-line
|
||||
render: function (children) {
|
||||
render(children, container);
|
||||
},
|
||||
unmount() {
|
||||
// eslint-disable-next-line
|
||||
unmount: function () {
|
||||
unmountComponentAtNode(container);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
6
node_modules/preact/compat/client.mjs
generated
vendored
6
node_modules/preact/compat/client.mjs
generated
vendored
|
|
@ -2,10 +2,12 @@ import { render, hydrate, unmountComponentAtNode } from 'preact/compat';
|
|||
|
||||
export function createRoot(container) {
|
||||
return {
|
||||
render(children) {
|
||||
// eslint-disable-next-line
|
||||
render: function (children) {
|
||||
render(children, container);
|
||||
},
|
||||
unmount() {
|
||||
// eslint-disable-next-line
|
||||
unmount: function () {
|
||||
unmountComponentAtNode(container);
|
||||
}
|
||||
};
|
||||
|
|
|
|||
2
node_modules/preact/compat/dist/compat.js
generated
vendored
2
node_modules/preact/compat/dist/compat.js
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.js.map
generated
vendored
2
node_modules/preact/compat/dist/compat.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.mjs
generated
vendored
2
node_modules/preact/compat/dist/compat.mjs
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.module.js
generated
vendored
2
node_modules/preact/compat/dist/compat.module.js
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.module.js.map
generated
vendored
2
node_modules/preact/compat/dist/compat.module.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.umd.js
generated
vendored
2
node_modules/preact/compat/dist/compat.umd.js
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/preact/compat/dist/compat.umd.js.map
generated
vendored
2
node_modules/preact/compat/dist/compat.umd.js.map
generated
vendored
File diff suppressed because one or more lines are too long
5
node_modules/preact/compat/package.json
generated
vendored
5
node_modules/preact/compat/package.json
generated
vendored
|
|
@ -25,6 +25,7 @@
|
|||
"require": "./dist/compat.js"
|
||||
},
|
||||
"./client": {
|
||||
"types": "./client.d.ts",
|
||||
"import": "./client.mjs",
|
||||
"require": "./client.js"
|
||||
},
|
||||
|
|
@ -45,6 +46,10 @@
|
|||
"import": "./scheduler.mjs",
|
||||
"require": "./scheduler.js"
|
||||
},
|
||||
"./test-utils": {
|
||||
"import": "./test-utils.mjs",
|
||||
"require": "./test-utils.js"
|
||||
},
|
||||
"./package.json": "./package.json"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
23
node_modules/preact/compat/server.js
generated
vendored
23
node_modules/preact/compat/server.js
generated
vendored
|
|
@ -9,7 +9,28 @@ try {
|
|||
);
|
||||
}
|
||||
|
||||
var renderToReadableStream;
|
||||
try {
|
||||
const mod = require('preact-render-to-string/stream');
|
||||
renderToReadableStream = mod.default || mod.renderToReadableStream || mod;
|
||||
} catch (e) {
|
||||
throw Error(
|
||||
'renderToReadableStream() error: update "preact-render-to-string" dependency to at least 6.5.0.'
|
||||
);
|
||||
}
|
||||
var renderToPipeableStream;
|
||||
try {
|
||||
const mod = require('preact-render-to-string/stream-node');
|
||||
renderToPipeableStream = mod.default || mod.renderToPipeableStream || mod;
|
||||
} catch (e) {
|
||||
throw Error(
|
||||
'renderToPipeableStream() error: update "preact-render-to-string" dependency to at least 6.5.0.'
|
||||
);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
renderToString: renderToString,
|
||||
renderToStaticMarkup: renderToString
|
||||
renderToStaticMarkup: renderToString,
|
||||
renderToPipeableStream: renderToPipeableStream,
|
||||
renderToReadableStream: renderToReadableStream
|
||||
};
|
||||
|
|
|
|||
8
node_modules/preact/compat/server.mjs
generated
vendored
8
node_modules/preact/compat/server.mjs
generated
vendored
|
|
@ -1,11 +1,17 @@
|
|||
import { renderToString } from 'preact-render-to-string';
|
||||
import { renderToPipeableStream } from 'preact-render-to-string/stream-node';
|
||||
import { renderToReadableStream } from 'preact-render-to-string/stream';
|
||||
|
||||
export {
|
||||
renderToString,
|
||||
renderToString as renderToStaticMarkup
|
||||
} from 'preact-render-to-string';
|
||||
|
||||
export { renderToPipeableStream } from 'preact-render-to-string/stream-node';
|
||||
export { renderToReadableStream } from 'preact-render-to-string/stream';
|
||||
export default {
|
||||
renderToString,
|
||||
renderToStaticMarkup: renderToString
|
||||
renderToStaticMarkup: renderToString,
|
||||
renderToPipeableStream,
|
||||
renderToReadableStream
|
||||
};
|
||||
|
|
|
|||
3
node_modules/preact/compat/src/PureComponent.js
generated
vendored
3
node_modules/preact/compat/src/PureComponent.js
generated
vendored
|
|
@ -4,8 +4,9 @@ import { shallowDiffers } from './util';
|
|||
/**
|
||||
* Component class with a predefined `shouldComponentUpdate` implementation
|
||||
*/
|
||||
export function PureComponent(p) {
|
||||
export function PureComponent(p, c) {
|
||||
this.props = p;
|
||||
this.context = c;
|
||||
}
|
||||
PureComponent.prototype = new Component();
|
||||
// Some third-party libraries check if this property is present
|
||||
|
|
|
|||
2
node_modules/preact/compat/src/forwardRef.js
generated
vendored
2
node_modules/preact/compat/src/forwardRef.js
generated
vendored
|
|
@ -36,7 +36,7 @@ export function forwardRef(fn) {
|
|||
// It expects an object here with a `render` property,
|
||||
// and prototype.render will fail. Without this
|
||||
// mobx-react throws.
|
||||
Forwarded.render = Forwarded;
|
||||
Forwarded.render = fn;
|
||||
|
||||
Forwarded.prototype.isReactComponent = Forwarded._forwarded = true;
|
||||
Forwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';
|
||||
|
|
|
|||
167
node_modules/preact/compat/src/index.d.ts
generated
vendored
167
node_modules/preact/compat/src/index.d.ts
generated
vendored
|
|
@ -1,5 +1,7 @@
|
|||
import * as _hooks from '../../hooks';
|
||||
import * as preact from '../../src';
|
||||
// Intentionally not using a relative path to take advantage of
|
||||
// the TS version resolution mechanism
|
||||
import * as preact from 'preact';
|
||||
import { JSXInternal } from '../../src/jsx';
|
||||
import * as _Suspense from './suspense';
|
||||
import * as _SuspenseList from './suspense-list';
|
||||
|
|
@ -18,7 +20,6 @@ declare namespace React {
|
|||
export import PropRef = _hooks.PropRef;
|
||||
export import Reducer = _hooks.Reducer;
|
||||
export import Dispatch = _hooks.Dispatch;
|
||||
export import Ref = _hooks.Ref;
|
||||
export import SetStateAction = _hooks.StateUpdater;
|
||||
export import useCallback = _hooks.useCallback;
|
||||
export import useContext = _hooks.useContext;
|
||||
|
|
@ -46,14 +47,21 @@ declare namespace React {
|
|||
export import RefObject = preact.RefObject;
|
||||
export import Component = preact.Component;
|
||||
export import FunctionComponent = preact.FunctionComponent;
|
||||
export import ComponentType = preact.ComponentType;
|
||||
export import ComponentClass = preact.ComponentClass;
|
||||
export import FC = preact.FunctionComponent;
|
||||
export import createContext = preact.createContext;
|
||||
export import Ref = preact.Ref;
|
||||
export import createRef = preact.createRef;
|
||||
export import Fragment = preact.Fragment;
|
||||
export import createElement = preact.createElement;
|
||||
export import cloneElement = preact.cloneElement;
|
||||
export import ComponentProps = preact.ComponentProps;
|
||||
export import ReactNode = preact.ComponentChild;
|
||||
export import ReactElement = preact.VNode;
|
||||
export import Consumer = preact.Consumer;
|
||||
export import ErrorInfo = preact.ErrorInfo;
|
||||
export import Key = preact.Key;
|
||||
|
||||
// Suspense
|
||||
export import Suspense = _Suspense.Suspense;
|
||||
|
|
@ -69,32 +77,126 @@ declare namespace React {
|
|||
export interface HTMLAttributes<T extends EventTarget>
|
||||
extends JSXInternal.HTMLAttributes<T> {}
|
||||
export interface HTMLProps<T extends EventTarget>
|
||||
extends JSXInternal.HTMLAttributes<T>,
|
||||
extends JSXInternal.AllHTMLAttributes<T>,
|
||||
preact.ClassAttributes<T> {}
|
||||
export interface AllHTMLAttributes<T extends EventTarget>
|
||||
extends JSXInternal.AllHTMLAttributes<T> {}
|
||||
export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps;
|
||||
export import CSSProperties = JSXInternal.CSSProperties;
|
||||
|
||||
export interface SVGProps<T extends EventTarget>
|
||||
extends JSXInternal.SVGAttributes<T>,
|
||||
preact.ClassAttributes<T> {}
|
||||
|
||||
interface SVGAttributes<T extends EventTarget = SVGElement>
|
||||
extends JSXInternal.SVGAttributes<T> {}
|
||||
|
||||
interface ReactSVG extends JSXInternal.IntrinsicSVGElements {}
|
||||
|
||||
export import AriaAttributes = JSXInternal.AriaAttributes;
|
||||
|
||||
export import HTMLAttributeReferrerPolicy = JSXInternal.HTMLAttributeReferrerPolicy;
|
||||
export import HTMLAttributeAnchorTarget = JSXInternal.HTMLAttributeAnchorTarget;
|
||||
export import HTMLInputTypeAttribute = JSXInternal.HTMLInputTypeAttribute;
|
||||
export import HTMLAttributeCrossOrigin = JSXInternal.HTMLAttributeCrossOrigin;
|
||||
|
||||
export import AnchorHTMLAttributes = JSXInternal.AnchorHTMLAttributes;
|
||||
export import AudioHTMLAttributes = JSXInternal.AudioHTMLAttributes;
|
||||
export import AreaHTMLAttributes = JSXInternal.AreaHTMLAttributes;
|
||||
export import BaseHTMLAttributes = JSXInternal.BaseHTMLAttributes;
|
||||
export import BlockquoteHTMLAttributes = JSXInternal.BlockquoteHTMLAttributes;
|
||||
export import ButtonHTMLAttributes = JSXInternal.ButtonHTMLAttributes;
|
||||
export import CanvasHTMLAttributes = JSXInternal.CanvasHTMLAttributes;
|
||||
export import ColHTMLAttributes = JSXInternal.ColHTMLAttributes;
|
||||
export import ColgroupHTMLAttributes = JSXInternal.ColgroupHTMLAttributes;
|
||||
export import DataHTMLAttributes = JSXInternal.DataHTMLAttributes;
|
||||
export import DetailsHTMLAttributes = JSXInternal.DetailsHTMLAttributes;
|
||||
export import DelHTMLAttributes = JSXInternal.DelHTMLAttributes;
|
||||
export import DialogHTMLAttributes = JSXInternal.DialogHTMLAttributes;
|
||||
export import EmbedHTMLAttributes = JSXInternal.EmbedHTMLAttributes;
|
||||
export import FieldsetHTMLAttributes = JSXInternal.FieldsetHTMLAttributes;
|
||||
export import FormHTMLAttributes = JSXInternal.FormHTMLAttributes;
|
||||
export import IframeHTMLAttributes = JSXInternal.IframeHTMLAttributes;
|
||||
export import ImgHTMLAttributes = JSXInternal.ImgHTMLAttributes;
|
||||
export import InsHTMLAttributes = JSXInternal.InsHTMLAttributes;
|
||||
export import InputHTMLAttributes = JSXInternal.InputHTMLAttributes;
|
||||
export import KeygenHTMLAttributes = JSXInternal.KeygenHTMLAttributes;
|
||||
export import LabelHTMLAttributes = JSXInternal.LabelHTMLAttributes;
|
||||
export import LiHTMLAttributes = JSXInternal.LiHTMLAttributes;
|
||||
export import LinkHTMLAttributes = JSXInternal.LinkHTMLAttributes;
|
||||
export import MapHTMLAttributes = JSXInternal.MapHTMLAttributes;
|
||||
export import MenuHTMLAttributes = JSXInternal.MenuHTMLAttributes;
|
||||
export import MediaHTMLAttributes = JSXInternal.MediaHTMLAttributes;
|
||||
export import MetaHTMLAttributes = JSXInternal.MetaHTMLAttributes;
|
||||
export import MeterHTMLAttributes = JSXInternal.MeterHTMLAttributes;
|
||||
export import QuoteHTMLAttributes = JSXInternal.QuoteHTMLAttributes;
|
||||
export import ObjectHTMLAttributes = JSXInternal.ObjectHTMLAttributes;
|
||||
export import OlHTMLAttributes = JSXInternal.OlHTMLAttributes;
|
||||
export import OptgroupHTMLAttributes = JSXInternal.OptgroupHTMLAttributes;
|
||||
export import OptionHTMLAttributes = JSXInternal.OptionHTMLAttributes;
|
||||
export import OutputHTMLAttributes = JSXInternal.OutputHTMLAttributes;
|
||||
export import ParamHTMLAttributes = JSXInternal.ParamHTMLAttributes;
|
||||
export import ProgressHTMLAttributes = JSXInternal.ProgressHTMLAttributes;
|
||||
export import SlotHTMLAttributes = JSXInternal.SlotHTMLAttributes;
|
||||
export import ScriptHTMLAttributes = JSXInternal.ScriptHTMLAttributes;
|
||||
export import SelectHTMLAttributes = JSXInternal.SelectHTMLAttributes;
|
||||
export import SourceHTMLAttributes = JSXInternal.SourceHTMLAttributes;
|
||||
export import StyleHTMLAttributes = JSXInternal.StyleHTMLAttributes;
|
||||
export import TableHTMLAttributes = JSXInternal.TableHTMLAttributes;
|
||||
export import TextareaHTMLAttributes = JSXInternal.TextareaHTMLAttributes;
|
||||
export import TdHTMLAttributes = JSXInternal.TdHTMLAttributes;
|
||||
export import ThHTMLAttributes = JSXInternal.ThHTMLAttributes;
|
||||
export import TimeHTMLAttributes = JSXInternal.TimeHTMLAttributes;
|
||||
export import TrackHTMLAttributes = JSXInternal.TrackHTMLAttributes;
|
||||
export import VideoHTMLAttributes = JSXInternal.VideoHTMLAttributes;
|
||||
|
||||
// Events
|
||||
export import TargetedEvent = JSXInternal.TargetedEvent;
|
||||
export import ChangeEvent = JSXInternal.TargetedEvent;
|
||||
export import ClipboardEvent = JSXInternal.TargetedClipboardEvent;
|
||||
export import CompositionEvent = JSXInternal.TargetedCompositionEvent;
|
||||
export import DragEvent = JSXInternal.TargetedDragEvent;
|
||||
export import PointerEvent = JSXInternal.TargetedPointerEvent;
|
||||
export import FocusEvent = JSXInternal.TargetedFocusEvent;
|
||||
export import FormEvent = JSXInternal.TargetedEvent;
|
||||
export import InvalidEvent = JSXInternal.TargetedEvent;
|
||||
export import KeyboardEvent = JSXInternal.TargetedKeyboardEvent;
|
||||
export import MouseEvent = JSXInternal.TargetedMouseEvent;
|
||||
export import TouchEvent = JSXInternal.TargetedTouchEvent;
|
||||
export import UIEvent = JSXInternal.TargetedUIEvent;
|
||||
export import AnimationEvent = JSXInternal.TargetedAnimationEvent;
|
||||
export import TransitionEvent = JSXInternal.TargetedTransitionEvent;
|
||||
|
||||
// Event Handler Types
|
||||
export import EventHandler = JSXInternal.EventHandler;
|
||||
export import ChangeEventHandler = JSXInternal.GenericEventHandler;
|
||||
export import ClipboardEventHandler = JSXInternal.ClipboardEventHandler;
|
||||
export import CompositionEventHandler = JSXInternal.CompositionEventHandler;
|
||||
export import DragEventHandler = JSXInternal.DragEventHandler;
|
||||
export import PointerEventHandler = JSXInternal.PointerEventHandler;
|
||||
export import FocusEventHandler = JSXInternal.FocusEventHandler;
|
||||
export import FormEventHandler = JSXInternal.GenericEventHandler;
|
||||
export import InvalidEventHandler = JSXInternal.GenericEventHandler;
|
||||
export import KeyboardEventHandler = JSXInternal.KeyboardEventHandler;
|
||||
export import MouseEventHandler = JSXInternal.MouseEventHandler;
|
||||
export import TouchEventHandler = JSXInternal.TouchEventHandler;
|
||||
export import UIEventHandler = JSXInternal.UIEventHandler;
|
||||
export import AnimationEventHandler = JSXInternal.AnimationEventHandler;
|
||||
export import TransitionEventHandler = JSXInternal.TransitionEventHandler;
|
||||
|
||||
export function createPortal(
|
||||
vnode: preact.VNode,
|
||||
vnode: preact.ComponentChildren,
|
||||
container: preact.ContainerNode
|
||||
): preact.VNode<any>;
|
||||
|
||||
export function render(
|
||||
vnode: preact.VNode<any>,
|
||||
vnode: preact.ComponentChild,
|
||||
parent: preact.ContainerNode,
|
||||
callback?: () => void
|
||||
): Component | null;
|
||||
|
||||
export function hydrate(
|
||||
vnode: preact.VNode<any>,
|
||||
vnode: preact.ComponentChild,
|
||||
parent: preact.ContainerNode,
|
||||
callback?: () => void
|
||||
): Component | null;
|
||||
|
|
@ -111,14 +213,16 @@ declare namespace React {
|
|||
) => preact.VNode<any>;
|
||||
export function isValidElement(element: any): boolean;
|
||||
export function isFragment(element: any): boolean;
|
||||
export function isMemo(element: any): boolean;
|
||||
export function findDOMNode(
|
||||
component: preact.Component | Element
|
||||
): Element | null;
|
||||
|
||||
export abstract class PureComponent<P = {}, S = {}, SS = any> extends preact.Component<
|
||||
P,
|
||||
S
|
||||
> {
|
||||
export abstract class PureComponent<
|
||||
P = {},
|
||||
S = {},
|
||||
SS = any
|
||||
> extends preact.Component<P, S> {
|
||||
isPureReactComponent: boolean;
|
||||
}
|
||||
|
||||
|
|
@ -143,18 +247,26 @@ declare namespace React {
|
|||
ref?: preact.Ref<R> | undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Please use `ForwardRefRenderFunction` instead.
|
||||
*/
|
||||
export interface ForwardFn<P = {}, T = any> {
|
||||
(props: P, ref: ForwardedRef<T>): preact.ComponentChild;
|
||||
displayName?: string;
|
||||
}
|
||||
|
||||
export interface ForwardRefRenderFunction<T = any, P = {}> {
|
||||
(props: P, ref: ForwardedRef<T>): preact.ComponentChild;
|
||||
displayName?: string;
|
||||
}
|
||||
|
||||
export interface ForwardRefExoticComponent<P>
|
||||
extends preact.FunctionComponent<P> {
|
||||
defaultProps?: Partial<P> | undefined;
|
||||
}
|
||||
|
||||
export function forwardRef<R, P = {}>(
|
||||
fn: ForwardFn<P, R>
|
||||
fn: ForwardRefRenderFunction<R, P>
|
||||
): preact.FunctionalComponent<PropsWithoutRef<P> & { ref?: preact.Ref<R> }>;
|
||||
|
||||
export type PropsWithoutRef<P> = Omit<P, 'ref'>;
|
||||
|
|
@ -168,6 +280,37 @@ declare namespace React {
|
|||
| MutableRefObject<T | null>
|
||||
| null;
|
||||
|
||||
export type ElementType<
|
||||
P = any,
|
||||
Tag extends keyof JSX.IntrinsicElements = keyof JSX.IntrinsicElements
|
||||
> =
|
||||
| { [K in Tag]: P extends JSX.IntrinsicElements[K] ? K : never }[Tag]
|
||||
| ComponentType<P>;
|
||||
|
||||
export type ComponentPropsWithoutRef<T extends ElementType> = PropsWithoutRef<
|
||||
ComponentProps<T>
|
||||
>;
|
||||
|
||||
export type ComponentPropsWithRef<C extends ElementType> = C extends new (
|
||||
props: infer P
|
||||
) => Component<any, any>
|
||||
? PropsWithoutRef<P> & RefAttributes<InstanceType<C>>
|
||||
: ComponentProps<C>;
|
||||
|
||||
export type ElementRef<
|
||||
C extends
|
||||
| ForwardRefExoticComponent<any>
|
||||
| { new (props: any): Component<any, any> }
|
||||
| ((props: any) => ReactNode)
|
||||
| keyof JSXInternal.IntrinsicElements
|
||||
> = 'ref' extends keyof ComponentPropsWithRef<C>
|
||||
? NonNullable<ComponentPropsWithRef<C>['ref']> extends RefAttributes<
|
||||
infer Instance
|
||||
>['ref']
|
||||
? Instance
|
||||
: never
|
||||
: never;
|
||||
|
||||
export function flushSync<R>(fn: () => R): R;
|
||||
export function flushSync<A, R>(fn: (a: A) => R, a: A): R;
|
||||
|
||||
|
|
@ -177,7 +320,7 @@ declare namespace React {
|
|||
): void;
|
||||
|
||||
export type PropsWithChildren<P = unknown> = P & {
|
||||
children?: preact.ComponentChild | undefined;
|
||||
children?: preact.ComponentChildren | undefined;
|
||||
};
|
||||
|
||||
export const Children: {
|
||||
|
|
|
|||
100
node_modules/preact/compat/src/index.js
generated
vendored
100
node_modules/preact/compat/src/index.js
generated
vendored
|
|
@ -20,6 +20,13 @@ import {
|
|||
useContext,
|
||||
useDebugValue
|
||||
} from 'preact/hooks';
|
||||
import {
|
||||
useInsertionEffect,
|
||||
startTransition,
|
||||
useDeferredValue,
|
||||
useSyncExternalStore,
|
||||
useTransition
|
||||
} from './hooks';
|
||||
import { PureComponent } from './PureComponent';
|
||||
import { memo } from './memo';
|
||||
import { forwardRef } from './forwardRef';
|
||||
|
|
@ -27,7 +34,6 @@ import { Children } from './Children';
|
|||
import { Suspense, lazy } from './suspense';
|
||||
import { SuspenseList } from './suspense-list';
|
||||
import { createPortal } from './portals';
|
||||
import { is } from './util';
|
||||
import {
|
||||
hydrate,
|
||||
render,
|
||||
|
|
@ -35,7 +41,7 @@ import {
|
|||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
|
||||
} from './render';
|
||||
|
||||
const version = '17.0.2'; // trick libraries to think we are react
|
||||
const version = '18.3.1'; // trick libraries to think we are react
|
||||
|
||||
/**
|
||||
* Legacy version of createElement.
|
||||
|
|
@ -63,6 +69,21 @@ function isFragment(element) {
|
|||
return isValidElement(element) && element.type === Fragment;
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the passed element is a Memo node.
|
||||
* @param {*} element The element to check
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function isMemo(element) {
|
||||
return (
|
||||
!!element &&
|
||||
!!element.displayName &&
|
||||
(typeof element.displayName === 'string' ||
|
||||
element.displayName instanceof String) &&
|
||||
element.displayName.startsWith('Memo(')
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Wrap `cloneElement` to abort if the passed element is not a valid element and apply
|
||||
* all vnode normalizations.
|
||||
|
|
@ -128,77 +149,9 @@ const flushSync = (callback, arg) => callback(arg);
|
|||
*/
|
||||
const StrictMode = Fragment;
|
||||
|
||||
export function startTransition(cb) {
|
||||
cb();
|
||||
}
|
||||
|
||||
export function useDeferredValue(val) {
|
||||
return val;
|
||||
}
|
||||
|
||||
export function useTransition() {
|
||||
return [false, startTransition];
|
||||
}
|
||||
|
||||
// TODO: in theory this should be done after a VNode is diffed as we want to insert
|
||||
// styles/... before it attaches
|
||||
export const useInsertionEffect = useLayoutEffect;
|
||||
|
||||
// compat to react-is
|
||||
export const isElement = isValidElement;
|
||||
|
||||
/**
|
||||
* This is taken from https://github.com/facebook/react/blob/main/packages/use-sync-external-store/src/useSyncExternalStoreShimClient.js#L84
|
||||
* on a high level this cuts out the warnings, ... and attempts a smaller implementation
|
||||
* @typedef {{ _value: any; _getSnapshot: () => any }} Store
|
||||
*/
|
||||
export function useSyncExternalStore(subscribe, getSnapshot) {
|
||||
const value = getSnapshot();
|
||||
|
||||
/**
|
||||
* @typedef {{ _instance: Store }} StoreRef
|
||||
* @type {[StoreRef, (store: StoreRef) => void]}
|
||||
*/
|
||||
const [{ _instance }, forceUpdate] = useState({
|
||||
_instance: { _value: value, _getSnapshot: getSnapshot }
|
||||
});
|
||||
|
||||
useLayoutEffect(() => {
|
||||
_instance._value = value;
|
||||
_instance._getSnapshot = getSnapshot;
|
||||
|
||||
if (didSnapshotChange(_instance)) {
|
||||
forceUpdate({ _instance });
|
||||
}
|
||||
}, [subscribe, value, getSnapshot]);
|
||||
|
||||
useEffect(() => {
|
||||
if (didSnapshotChange(_instance)) {
|
||||
forceUpdate({ _instance });
|
||||
}
|
||||
|
||||
return subscribe(() => {
|
||||
if (didSnapshotChange(_instance)) {
|
||||
forceUpdate({ _instance });
|
||||
}
|
||||
});
|
||||
}, [subscribe]);
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/** @type {(inst: Store) => boolean} */
|
||||
function didSnapshotChange(inst) {
|
||||
const latestGetSnapshot = inst._getSnapshot;
|
||||
const prevValue = inst._value;
|
||||
try {
|
||||
const nextValue = latestGetSnapshot();
|
||||
return !is(prevValue, nextValue);
|
||||
} catch (error) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
export * from 'preact/hooks';
|
||||
export {
|
||||
version,
|
||||
|
|
@ -215,12 +168,18 @@ export {
|
|||
Fragment,
|
||||
isValidElement,
|
||||
isFragment,
|
||||
isMemo,
|
||||
findDOMNode,
|
||||
Component,
|
||||
PureComponent,
|
||||
memo,
|
||||
forwardRef,
|
||||
flushSync,
|
||||
useInsertionEffect,
|
||||
startTransition,
|
||||
useDeferredValue,
|
||||
useSyncExternalStore,
|
||||
useTransition,
|
||||
// eslint-disable-next-line camelcase
|
||||
unstable_batchedUpdates,
|
||||
StrictMode,
|
||||
|
|
@ -263,6 +222,7 @@ export default {
|
|||
isValidElement,
|
||||
isElement,
|
||||
isFragment,
|
||||
isMemo,
|
||||
findDOMNode,
|
||||
Component,
|
||||
PureComponent,
|
||||
|
|
|
|||
5
node_modules/preact/compat/src/internal.d.ts
generated
vendored
5
node_modules/preact/compat/src/internal.d.ts
generated
vendored
|
|
@ -1,13 +1,14 @@
|
|||
import {
|
||||
Component as PreactComponent,
|
||||
VNode as PreactVNode,
|
||||
FunctionComponent as PreactFunctionComponent
|
||||
FunctionComponent as PreactFunctionComponent,
|
||||
PreactElement
|
||||
} from '../../src/internal';
|
||||
import { SuspenseProps } from './suspense';
|
||||
|
||||
export { ComponentChildren } from '../..';
|
||||
|
||||
export { PreactElement } from '../../src/internal';
|
||||
export { PreactElement };
|
||||
|
||||
export interface Component<P = {}, S = {}> extends PreactComponent<P, S> {
|
||||
isReactComponent?: object;
|
||||
|
|
|
|||
1
node_modules/preact/compat/src/memo.js
generated
vendored
1
node_modules/preact/compat/src/memo.js
generated
vendored
|
|
@ -30,5 +30,6 @@ export function memo(c, comparer) {
|
|||
Memoed.displayName = 'Memo(' + (c.displayName || c.name) + ')';
|
||||
Memoed.prototype.isReactComponent = true;
|
||||
Memoed._forwarded = true;
|
||||
Memoed.type = c;
|
||||
return Memoed;
|
||||
}
|
||||
|
|
|
|||
15
node_modules/preact/compat/src/portals.js
generated
vendored
15
node_modules/preact/compat/src/portals.js
generated
vendored
|
|
@ -32,6 +32,12 @@ function Portal(props) {
|
|||
}
|
||||
|
||||
if (!_this._temp) {
|
||||
// Ensure the element has a mask for useId invocations
|
||||
let root = _this._vnode;
|
||||
while (root !== null && !root._mask && root._parent !== null) {
|
||||
root = root._parent;
|
||||
}
|
||||
|
||||
_this._container = container;
|
||||
|
||||
// Create a fake DOM parent node that manages a subset of `container`'s children:
|
||||
|
|
@ -39,13 +45,12 @@ function Portal(props) {
|
|||
nodeType: 1,
|
||||
parentNode: container,
|
||||
childNodes: [],
|
||||
appendChild(child) {
|
||||
this.childNodes.push(child);
|
||||
_this._container.appendChild(child);
|
||||
},
|
||||
_children: { _mask: root._mask },
|
||||
contains: () => true,
|
||||
namespaceURI: container.namespaceURI,
|
||||
insertBefore(child, before) {
|
||||
this.childNodes.push(child);
|
||||
_this._container.appendChild(child);
|
||||
_this._container.insertBefore(child, before);
|
||||
},
|
||||
removeChild(child) {
|
||||
this.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);
|
||||
|
|
|
|||
51
node_modules/preact/compat/src/render.js
generated
vendored
51
node_modules/preact/compat/src/render.js
generated
vendored
|
|
@ -5,6 +5,25 @@ import {
|
|||
toChildArray,
|
||||
Component
|
||||
} from 'preact';
|
||||
import {
|
||||
useCallback,
|
||||
useContext,
|
||||
useDebugValue,
|
||||
useEffect,
|
||||
useId,
|
||||
useImperativeHandle,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
useReducer,
|
||||
useRef,
|
||||
useState
|
||||
} from 'preact/hooks';
|
||||
import {
|
||||
useDeferredValue,
|
||||
useInsertionEffect,
|
||||
useSyncExternalStore,
|
||||
useTransition
|
||||
} from './index';
|
||||
|
||||
export const REACT_ELEMENT_TYPE =
|
||||
(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||
|
||||
|
|
@ -14,7 +33,6 @@ const CAMEL_PROPS =
|
|||
/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/;
|
||||
const ON_ANI = /^on(Ani|Tra|Tou|BeforeInp|Compo)/;
|
||||
const CAMEL_REPLACE = /[A-Z0-9]/g;
|
||||
|
||||
const IS_DOM = typeof document !== 'undefined';
|
||||
|
||||
// Input types for which onchange should not be converted to oninput.
|
||||
|
|
@ -116,6 +134,7 @@ function handleDomVNode(vnode) {
|
|||
type = vnode.type,
|
||||
normalizedProps = {};
|
||||
|
||||
let isNonDashedType = type.indexOf('-') === -1;
|
||||
for (let i in props) {
|
||||
let value = props[i];
|
||||
|
||||
|
|
@ -143,7 +162,10 @@ function handleDomVNode(vnode) {
|
|||
// value will be used as the file name and the file will be called
|
||||
// "true" upon downloading it.
|
||||
value = '';
|
||||
} else if (lowerCased === 'ondoubleclick') {
|
||||
} else if (lowerCased === 'translate' && value === 'no') {
|
||||
value = false;
|
||||
} else if (lowerCased[0] === 'o' && lowerCased[1] === 'n') {
|
||||
if (lowerCased === 'ondoubleclick') {
|
||||
i = 'ondblclick';
|
||||
} else if (
|
||||
lowerCased === 'onchange' &&
|
||||
|
|
@ -157,7 +179,8 @@ function handleDomVNode(vnode) {
|
|||
i = 'onfocusout';
|
||||
} else if (ON_ANI.test(i)) {
|
||||
i = lowerCased;
|
||||
} else if (type.indexOf('-') === -1 && CAMEL_PROPS.test(i)) {
|
||||
}
|
||||
} else if (isNonDashedType && CAMEL_PROPS.test(i)) {
|
||||
i = i.replace(CAMEL_REPLACE, '-$&').toLowerCase();
|
||||
} else if (value === null) {
|
||||
value = undefined;
|
||||
|
|
@ -262,15 +285,29 @@ options.diffed = function (vnode) {
|
|||
};
|
||||
|
||||
// This is a very very private internal function for React it
|
||||
// is used to sort-of do runtime dependency injection. So far
|
||||
// only `react-relay` makes use of it. It uses it to read the
|
||||
// context value.
|
||||
// is used to sort-of do runtime dependency injection.
|
||||
export const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
|
||||
ReactCurrentDispatcher: {
|
||||
current: {
|
||||
readContext(context) {
|
||||
return currentComponent._globalContext[context._id].props.value;
|
||||
}
|
||||
},
|
||||
useCallback,
|
||||
useContext,
|
||||
useDebugValue,
|
||||
useDeferredValue,
|
||||
useEffect,
|
||||
useId,
|
||||
useImperativeHandle,
|
||||
useInsertionEffect,
|
||||
useLayoutEffect,
|
||||
useMemo,
|
||||
// useMutableSource, // experimental-only and replaced by uSES, likely not worth supporting
|
||||
useReducer,
|
||||
useRef,
|
||||
useState,
|
||||
useSyncExternalStore,
|
||||
useTransition
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
|||
4
node_modules/preact/compat/src/suspense-list.d.ts
generated
vendored
4
node_modules/preact/compat/src/suspense-list.d.ts
generated
vendored
|
|
@ -1,4 +1,6 @@
|
|||
import { Component, ComponentChild, ComponentChildren } from '../../src';
|
||||
// Intentionally not using a relative path to take advantage of
|
||||
// the TS version resolution mechanism
|
||||
import { Component, ComponentChild, ComponentChildren } from 'preact';
|
||||
|
||||
//
|
||||
// SuspenseList
|
||||
|
|
|
|||
8
node_modules/preact/compat/src/suspense.d.ts
generated
vendored
8
node_modules/preact/compat/src/suspense.d.ts
generated
vendored
|
|
@ -1,9 +1,13 @@
|
|||
import { Component, ComponentChild, ComponentChildren } from '../../src';
|
||||
// Intentionally not using a relative path to take advantage of
|
||||
// the TS version resolution mechanism
|
||||
import { Component, ComponentChild, ComponentChildren } from 'preact';
|
||||
|
||||
//
|
||||
// Suspense/lazy
|
||||
// -----------------------------------
|
||||
export function lazy<T>(loader: () => Promise<{ default: T } | T>): T;
|
||||
export function lazy<T>(
|
||||
loader: () => Promise<{ default: T } | T>
|
||||
): T extends { default: infer U } ? U : T;
|
||||
|
||||
export interface SuspenseProps {
|
||||
children?: ComponentChildren;
|
||||
|
|
|
|||
26
node_modules/preact/compat/src/suspense.js
generated
vendored
26
node_modules/preact/compat/src/suspense.js
generated
vendored
|
|
@ -27,6 +27,7 @@ const oldUnmount = options.unmount;
|
|||
options.unmount = function (vnode) {
|
||||
/** @type {import('./internal').Component} */
|
||||
const component = vnode._component;
|
||||
if (component) component._unmounted = true;
|
||||
if (component && component._onResolve) {
|
||||
component._onResolve();
|
||||
}
|
||||
|
|
@ -57,6 +58,9 @@ function detachedClone(vnode, detachedParent, parentDom) {
|
|||
if (vnode._component._parentDom === parentDom) {
|
||||
vnode._component._parentDom = detachedParent;
|
||||
}
|
||||
|
||||
vnode._component._force = true;
|
||||
|
||||
vnode._component = null;
|
||||
}
|
||||
|
||||
|
|
@ -126,7 +130,7 @@ Suspense.prototype._childDidSuspend = function (promise, suspendingVNode) {
|
|||
|
||||
let resolved = false;
|
||||
const onResolved = () => {
|
||||
if (resolved) return;
|
||||
if (resolved || c._unmounted) return;
|
||||
|
||||
resolved = true;
|
||||
suspendingComponent._onResolve = null;
|
||||
|
|
@ -140,6 +144,12 @@ Suspense.prototype._childDidSuspend = function (promise, suspendingVNode) {
|
|||
|
||||
suspendingComponent._onResolve = onResolved;
|
||||
|
||||
// Store and null _parentDom to prevent setState/forceUpdate from
|
||||
// scheduling renders while suspended. Render would be a no-op anyway
|
||||
// since renderComponent checks _parentDom, but this avoids queue churn.
|
||||
const originalParentDom = suspendingComponent._parentDom;
|
||||
suspendingComponent._parentDom = null;
|
||||
|
||||
const onSuspensionComplete = () => {
|
||||
if (!--c._pendingSuspensionCount) {
|
||||
// If the suspension was during hydration we don't need to restore the
|
||||
|
|
@ -157,6 +167,8 @@ Suspense.prototype._childDidSuspend = function (promise, suspendingVNode) {
|
|||
|
||||
let suspended;
|
||||
while ((suspended = c._suspenders.pop())) {
|
||||
// Restore _parentDom before forceUpdate so render can proceed
|
||||
suspended._parentDom = originalParentDom;
|
||||
suspended.forceUpdate();
|
||||
}
|
||||
}
|
||||
|
|
@ -233,6 +245,7 @@ Suspense.prototype.render = function (props, state) {
|
|||
* @returns {((unsuspend: () => void) => void)?}
|
||||
*/
|
||||
export function suspended(vnode) {
|
||||
if (!vnode._parent) return null;
|
||||
/** @type {import('./internal').Component} */
|
||||
let component = vnode._parent._component;
|
||||
return component && component._suspended && component._suspended(vnode);
|
||||
|
|
@ -240,18 +253,23 @@ export function suspended(vnode) {
|
|||
|
||||
export function lazy(loader) {
|
||||
let prom;
|
||||
let component;
|
||||
let component = null;
|
||||
let error;
|
||||
let resolved;
|
||||
|
||||
function Lazy(props) {
|
||||
if (!prom) {
|
||||
prom = loader();
|
||||
prom.then(
|
||||
exports => {
|
||||
if (exports) {
|
||||
component = exports.default || exports;
|
||||
}
|
||||
resolved = true;
|
||||
},
|
||||
e => {
|
||||
error = e;
|
||||
resolved = true;
|
||||
}
|
||||
);
|
||||
}
|
||||
|
|
@ -260,11 +278,11 @@ export function lazy(loader) {
|
|||
throw error;
|
||||
}
|
||||
|
||||
if (!component) {
|
||||
if (!resolved) {
|
||||
throw prom;
|
||||
}
|
||||
|
||||
return createElement(component, props);
|
||||
return component ? createElement(component, props) : null;
|
||||
}
|
||||
|
||||
Lazy.displayName = 'Lazy';
|
||||
|
|
|
|||
21
node_modules/preact/debug/LICENSE
generated
vendored
21
node_modules/preact/debug/LICENSE
generated
vendored
|
|
@ -1,21 +0,0 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015-present Jason Miller
|
||||
|
||||
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.
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue