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,
|
"lockfileVersion": 1,
|
||||||
"configVersion": 0,
|
"configVersion": 1,
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"": {
|
"": {
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
@ -10,7 +10,7 @@
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"packages": {
|
"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=="],
|
"@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/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=="],
|
"@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=="],
|
"@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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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=="],
|
"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",
|
"hash": "ae8ed175",
|
||||||
"configHash": "4a0428f0",
|
"configHash": "ad343dd6",
|
||||||
"lockfileHash": "fbe7d3cd",
|
"lockfileHash": "e3b0c442",
|
||||||
"browserHash": "8e057cea",
|
"browserHash": "317f7f96",
|
||||||
"optimized": {
|
"optimized": {
|
||||||
"vue": {
|
"vue": {
|
||||||
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||||
"file": "vue.js",
|
"file": "vue.js",
|
||||||
"fileHash": "a0185409",
|
"fileHash": "b3c2417e",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"vitepress > @vue/devtools-api": {
|
"vitepress > @vue/devtools-api": {
|
||||||
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
||||||
"file": "vitepress___@vue_devtools-api.js",
|
"file": "vitepress___@vue_devtools-api.js",
|
||||||
"fileHash": "8ada93ae",
|
"fileHash": "ffb91792",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"vitepress > @vueuse/core": {
|
"vitepress > @vueuse/core": {
|
||||||
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
"src": "../../../../node_modules/@vueuse/core/index.mjs",
|
||||||
"file": "vitepress___@vueuse_core.js",
|
"file": "vitepress___@vueuse_core.js",
|
||||||
"fileHash": "2d8ce331",
|
"fileHash": "58b8626d",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"vitepress > @vueuse/integrations/useFocusTrap": {
|
"vitepress > @vueuse/integrations/useFocusTrap": {
|
||||||
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
|
||||||
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
||||||
"fileHash": "1e108db2",
|
"fileHash": "a3a5751e",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"vitepress > mark.js/src/vanilla.js": {
|
"vitepress > mark.js/src/vanilla.js": {
|
||||||
"src": "../../../../node_modules/mark.js/src/vanilla.js",
|
"src": "../../../../node_modules/mark.js/src/vanilla.js",
|
||||||
"file": "vitepress___mark__js_src_vanilla__js.js",
|
"file": "vitepress___mark__js_src_vanilla__js.js",
|
||||||
"fileHash": "2ceafc1e",
|
"fileHash": "fd5ee677",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
},
|
},
|
||||||
"vitepress > minisearch": {
|
"vitepress > minisearch": {
|
||||||
"src": "../../../../node_modules/minisearch/dist/es/index.js",
|
"src": "../../../../node_modules/minisearch/dist/es/index.js",
|
||||||
"file": "vitepress___minisearch.js",
|
"file": "vitepress___minisearch.js",
|
||||||
"fileHash": "e70ffd6d",
|
"fileHash": "02230d0a",
|
||||||
"needsInterop": false
|
"needsInterop": false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -24,18 +24,21 @@
|
||||||
--vp-c-danger-3: var(--vp-c-red-3);
|
--vp-c-danger-3: var(--vp-c-red-3);
|
||||||
--vp-c-danger-soft: var(--vp-c-red-soft);
|
--vp-c-danger-soft: var(--vp-c-red-soft);
|
||||||
|
|
||||||
--glass-nav-bg: rgba(255, 255, 255, 0.7);
|
--glass-nav-bg: rgba(255, 255, 255, 0.7);
|
||||||
--glass-sidebar-bg: rgba(255, 255, 255, 0.7);
|
--glass-sidebar-bg: rgba(255, 255, 255, 0.7);
|
||||||
|
|
||||||
--glass-bg: rgba(255, 255, 255, 0.8);
|
--glass-bg: rgba(255, 255, 255, 0.8);
|
||||||
--glass-border: rgba(0, 0, 0, 0.08);
|
--glass-border: rgba(0, 0, 0, 0.08);
|
||||||
--glass-shadow: 0 8px 32px 0 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-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.6);
|
||||||
--glass-blur: 28px;
|
--glass-blur: 28px;
|
||||||
|
--glass-blur-2: 16px;
|
||||||
|
--glass-blur-3: 24px;
|
||||||
--glass-radius: 24px;
|
--glass-radius: 24px;
|
||||||
--glass-menu-radius: 12px;
|
--glass-menu-radius: 12px;
|
||||||
|
|
||||||
--vp-c-bg: #ffffff;
|
--vp-c-bg: #ffffff;
|
||||||
--vp-c-bg-alt: #f8f9fa;
|
--vp-c-bg-alt: #f8f9fa;
|
||||||
|
|
||||||
--vp-button-brand-border: transparent;
|
--vp-button-brand-border: transparent;
|
||||||
|
|
@ -62,39 +65,44 @@
|
||||||
.dark {
|
.dark {
|
||||||
--glass-nav-bg: rgba(22, 22, 24, 0.6);
|
--glass-nav-bg: rgba(22, 22, 24, 0.6);
|
||||||
--glass-sidebar-bg: rgba(22, 22, 24, 0.6);
|
--glass-sidebar-bg: rgba(22, 22, 24, 0.6);
|
||||||
|
|
||||||
--glass-bg: rgba(30, 30, 35, 0.6);
|
--glass-bg: rgba(30, 30, 35, 0.6);
|
||||||
--glass-border: rgba(255, 255, 255, 0.1);
|
--glass-border: rgba(255, 255, 255, 0.1);
|
||||||
--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5);
|
--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.5);
|
||||||
--glass-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.1);
|
--glass-highlight: inset 0 1px 0 0 rgba(255, 255, 255, 0.1);
|
||||||
|
|
||||||
--vp-c-bg: #0f0f11;
|
--vp-c-bg: #0f0f11;
|
||||||
--vp-c-bg-alt: #161618;
|
--vp-c-bg-alt: #161618;
|
||||||
|
--vp-c-gutter: rgba(255, 255, 255, 0.4);
|
||||||
}
|
}
|
||||||
|
|
||||||
body::before {
|
body::before {
|
||||||
content: "";
|
content: "";
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
width: 100vw;
|
width: 100vw;
|
||||||
height: 100vh;
|
height: 100vh;
|
||||||
z-index: -1;
|
z-index: -1;
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
background:
|
background:
|
||||||
radial-gradient(circle at 100% 0%, rgba(254, 82, 52, 0.1), transparent 50%),
|
radial-gradient(circle at 100% 0%, rgba(254, 82, 52, 0.1), transparent 50%),
|
||||||
radial-gradient(circle at 0% 100%, rgba(79, 70, 229, 0.1), transparent 50%);
|
radial-gradient(circle at 0% 100%, rgba(79, 70, 229, 0.1), transparent 50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark body::before {
|
.dark body::before {
|
||||||
background:
|
background:
|
||||||
radial-gradient(circle at 90% 10%, rgba(254, 82, 52, 0.15), transparent 60%),
|
radial-gradient(circle at 90% 10%, rgba(254, 82, 52, 0.15), transparent 60%),
|
||||||
radial-gradient(circle at 10% 90%, rgba(79, 70, 229, 0.12), transparent 50%);
|
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;
|
background-color: var(--glass-nav-bg) !important;
|
||||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||||
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
-webkit-backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||||
|
|
@ -102,25 +110,70 @@ body::before {
|
||||||
box-shadow: var(--glass-shadow);
|
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 {
|
.VPNavScreenAppearance {
|
||||||
background-color: var(--glass-sidebar-bg) !important;
|
background-color: transparent !important;
|
||||||
backdrop-filter: blur(var(--glass-blur));
|
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);
|
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 {
|
.VPFlyout .menu {
|
||||||
background-color: var(--glass-bg) !important;
|
background-color: var(--glass-bg) !important;
|
||||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||||
-webkit-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;
|
border: 1px solid var(--glass-border) !important;
|
||||||
border-radius: var(--glass-menu-radius) !important;
|
border-radius: var(--glass-menu-radius) !important;
|
||||||
box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
|
box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
|
||||||
|
|
||||||
padding: 6px !important;
|
padding: 6px !important;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
@ -141,27 +194,46 @@ body::before {
|
||||||
background-color: rgba(255, 255, 255, 0.05) !important;
|
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 {
|
.VPFeature {
|
||||||
background: var(--glass-bg) !important;
|
background: var(--glass-bg) !important;
|
||||||
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
backdrop-filter: saturate(180%) blur(var(--glass-blur)) !important;
|
||||||
-webkit-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;
|
border: 1px solid var(--glass-border) !important;
|
||||||
border-radius: var(--glass-radius) !important;
|
border-radius: var(--glass-radius) !important;
|
||||||
|
|
||||||
background-clip: padding-box !important;
|
background-clip: padding-box !important;
|
||||||
box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
|
box-shadow: var(--glass-shadow), var(--glass-highlight) !important;
|
||||||
|
|
||||||
transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
|
transition: transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1),
|
||||||
border-color 0.3s ease,
|
border-color 0.3s ease,
|
||||||
box-shadow 0.3s ease !important;
|
box-shadow 0.3s ease !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.VPFeature:hover {
|
.VPFeature:hover {
|
||||||
transform: translateY(-8px) scale(1.01);
|
transform: translateY(-8px) scale(1.01);
|
||||||
border-color: rgba(255, 255, 255, 0.4) !important;
|
border-color: rgba(255, 255, 255, 0.4) !important;
|
||||||
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25),
|
box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25),
|
||||||
inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
|
inset 0 1px 0 rgba(255, 255, 255, 0.2) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.VPButton {
|
.VPButton {
|
||||||
|
|
@ -175,7 +247,7 @@ body::before {
|
||||||
.VPButton.brand {
|
.VPButton.brand {
|
||||||
background: linear-gradient(135deg, var(--vp-c-brand-3), var(--vp-c-brand-1)) !important;
|
background: linear-gradient(135deg, var(--vp-c-brand-3), var(--vp-c-brand-1)) !important;
|
||||||
border: 1px solid rgba(255, 255, 255, 0.2) !important;
|
border: 1px solid rgba(255, 255, 255, 0.2) !important;
|
||||||
box-shadow: 0 4px 12px rgba(var(--vp-c-brand-rgb), 0.5), inset 0 1px 0 rgba(255,255,255,0.3) !important;
|
box-shadow: 0 4px 12px rgba(var(--vp-c-brand-rgb), 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.3) !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.VPButton.brand:hover {
|
.VPButton.brand:hover {
|
||||||
|
|
@ -195,10 +267,15 @@ body::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 640px) {
|
@media (min-width: 640px) {
|
||||||
:root { --vp-home-hero-image-filter: blur(56px); }
|
:root {
|
||||||
|
--vp-home-hero-image-filter: blur(56px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (min-width: 960px) {
|
@media (min-width: 960px) {
|
||||||
:root { --vp-home-hero-image-filter: blur(72px); }
|
:root {
|
||||||
|
--vp-home-hero-image-filter: blur(72px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.DocSearch {
|
.DocSearch {
|
||||||
|
|
@ -213,6 +290,7 @@ body::before {
|
||||||
.VPHero .name {
|
.VPHero .name {
|
||||||
text-shadow: 0 0 40px rgba(254, 82, 52, 0.3);
|
text-shadow: 0 0 40px rgba(254, 82, 52, 0.3);
|
||||||
}
|
}
|
||||||
|
|
||||||
.VPHero .image-src {
|
.VPHero .image-src {
|
||||||
animation: float-premium 6s ease-in-out infinite;
|
animation: float-premium 6s ease-in-out infinite;
|
||||||
transform-origin: center center;
|
transform-origin: center center;
|
||||||
|
|
@ -223,18 +301,27 @@ body::before {
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes float-premium {
|
@keyframes float-premium {
|
||||||
0% { transform: translate(-50%, -50%) translateY(0px); }
|
0% {
|
||||||
50% { transform: translate(-50%, -50%) translateY(-16px); }
|
transform: translate(-50%, -50%) translateY(0px);
|
||||||
100% { transform: translate(-50%, -50%) translateY(0px); }
|
}
|
||||||
|
|
||||||
|
50% {
|
||||||
|
transform: translate(-50%, -50%) translateY(-16px);
|
||||||
|
}
|
||||||
|
|
||||||
|
100% {
|
||||||
|
transform: translate(-50%, -50%) translateY(0px);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes pulse-glow-premium {
|
@keyframes pulse-glow-premium {
|
||||||
0% {
|
0% {
|
||||||
opacity: 0.6;
|
opacity: 0.6;
|
||||||
transform: translate(-50%, -50%) scale(0.95);
|
transform: translate(-50%, -50%) scale(0.95);
|
||||||
}
|
}
|
||||||
100% {
|
|
||||||
opacity: 1;
|
100% {
|
||||||
transform: translate(-50%, -50%) scale(1.1);
|
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": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||||
|
|
@ -49,10 +49,10 @@
|
||||||
"index.d.ts"
|
"index.d.ts"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/client-common": "5.48.0",
|
"@algolia/client-common": "5.48.1",
|
||||||
"@algolia/requester-browser-xhr": "5.48.0",
|
"@algolia/requester-browser-xhr": "5.48.1",
|
||||||
"@algolia/requester-fetch": "5.48.0",
|
"@algolia/requester-fetch": "5.48.1",
|
||||||
"@algolia/requester-node-http": "5.48.0"
|
"@algolia/requester-node-http": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
|
|
@ -65,5 +65,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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",
|
"name": "@algolia/client-common",
|
||||||
"version": "5.48.0",
|
"version": "5.48.1",
|
||||||
"description": "Common package for the Algolia JavaScript API client.",
|
"description": "Common package for the Algolia JavaScript API client.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
@ -36,7 +36,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
"@types/node": "24.10.9",
|
"@types/node": "24.10.12",
|
||||||
"jsdom": "27.4.0",
|
"jsdom": "27.4.0",
|
||||||
"publint": "0.3.17",
|
"publint": "0.3.17",
|
||||||
"ts-node": "10.9.2",
|
"ts-node": "10.9.2",
|
||||||
|
|
@ -47,5 +47,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||||
|
|
@ -49,10 +49,10 @@
|
||||||
"index.d.ts"
|
"index.d.ts"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/client-common": "5.48.0",
|
"@algolia/client-common": "5.48.1",
|
||||||
"@algolia/requester-browser-xhr": "5.48.0",
|
"@algolia/requester-browser-xhr": "5.48.1",
|
||||||
"@algolia/requester-fetch": "5.48.0",
|
"@algolia/requester-fetch": "5.48.1",
|
||||||
"@algolia/requester-node-http": "5.48.0"
|
"@algolia/requester-node-http": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
|
|
@ -65,5 +65,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||||
|
|
@ -49,10 +49,10 @@
|
||||||
"index.d.ts"
|
"index.d.ts"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/client-common": "5.48.0",
|
"@algolia/client-common": "5.48.1",
|
||||||
"@algolia/requester-browser-xhr": "5.48.0",
|
"@algolia/requester-browser-xhr": "5.48.1",
|
||||||
"@algolia/requester-fetch": "5.48.0",
|
"@algolia/requester-fetch": "5.48.1",
|
||||||
"@algolia/requester-node-http": "5.48.0"
|
"@algolia/requester-node-http": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
|
|
@ -65,5 +65,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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",
|
"name": "@algolia/requester-browser-xhr",
|
||||||
"version": "5.48.0",
|
"version": "5.48.1",
|
||||||
"description": "Promise-based request library for browser using xhr.",
|
"description": "Promise-based request library for browser using xhr.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
@ -32,11 +32,11 @@
|
||||||
"test:bundle": "publint . && attw --pack . --ignore-rules cjs-resolves-to-esm"
|
"test:bundle": "publint . && attw --pack . --ignore-rules cjs-resolves-to-esm"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/client-common": "5.48.0"
|
"@algolia/client-common": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
"@types/node": "24.10.9",
|
"@types/node": "24.10.12",
|
||||||
"jsdom": "27.4.0",
|
"jsdom": "27.4.0",
|
||||||
"publint": "0.3.17",
|
"publint": "0.3.17",
|
||||||
"tsup": "8.5.1",
|
"tsup": "8.5.1",
|
||||||
|
|
@ -47,5 +47,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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",
|
"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.",
|
"description": "Promise-based request library for node using the native http module.",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
|
|
@ -35,11 +35,11 @@
|
||||||
"test:bundle": "publint . && attw --pack ."
|
"test:bundle": "publint . && attw --pack ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/client-common": "5.48.0"
|
"@algolia/client-common": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@arethetypeswrong/cli": "0.18.2",
|
||||||
"@types/node": "24.10.9",
|
"@types/node": "24.10.12",
|
||||||
"nock": "14.0.10",
|
"nock": "14.0.10",
|
||||||
"publint": "0.3.17",
|
"publint": "0.3.17",
|
||||||
"tsup": "8.5.1",
|
"tsup": "8.5.1",
|
||||||
|
|
@ -49,5 +49,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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",
|
"name": "@esbuild/win32-x64",
|
||||||
"version": "0.19.12",
|
"version": "0.21.5",
|
||||||
"description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
|
"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",
|
"license": "MIT",
|
||||||
"preferUnplugged": true,
|
"preferUnplugged": true,
|
||||||
"engines": {
|
"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",
|
"name": "@rollup/rollup-win32-x64-msvc",
|
||||||
"version": "4.9.6",
|
"version": "4.57.1",
|
||||||
"os": [
|
"os": [
|
||||||
"win32"
|
"win32"
|
||||||
],
|
],
|
||||||
|
|
@ -14,6 +14,9 @@
|
||||||
"author": "Lukas Taegert-Atkinson",
|
"author": "Lukas Taegert-Atkinson",
|
||||||
"homepage": "https://rollupjs.org/",
|
"homepage": "https://rollupjs.org/",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": "rollup/rollup",
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+https://github.com/rollup/rollup.git"
|
||||||
|
},
|
||||||
"main": "./rollup.win32-x64-msvc.node"
|
"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
|
### With a package manager
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
yarn add algoliasearch@5.48.0
|
yarn add algoliasearch@5.48.1
|
||||||
# or
|
# or
|
||||||
npm install algoliasearch@5.48.0
|
npm install algoliasearch@5.48.1
|
||||||
# or
|
# or
|
||||||
pnpm add algoliasearch@5.48.0
|
pnpm add algoliasearch@5.48.1
|
||||||
```
|
```
|
||||||
|
|
||||||
### Without a package manager
|
### Without a package manager
|
||||||
|
|
@ -50,10 +50,10 @@ Add the following JavaScript snippet to the <head> of your website:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
// for the full client
|
// 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
|
// 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
|
### 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": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
"url": "git+https://github.com/algolia/algoliasearch-client-javascript.git"
|
||||||
|
|
@ -74,25 +74,25 @@
|
||||||
"lite.d.ts"
|
"lite.d.ts"
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@algolia/abtesting": "1.14.0",
|
"@algolia/abtesting": "1.14.1",
|
||||||
"@algolia/client-abtesting": "5.48.0",
|
"@algolia/client-abtesting": "5.48.1",
|
||||||
"@algolia/client-analytics": "5.48.0",
|
"@algolia/client-analytics": "5.48.1",
|
||||||
"@algolia/client-common": "5.48.0",
|
"@algolia/client-common": "5.48.1",
|
||||||
"@algolia/client-insights": "5.48.0",
|
"@algolia/client-insights": "5.48.1",
|
||||||
"@algolia/client-personalization": "5.48.0",
|
"@algolia/client-personalization": "5.48.1",
|
||||||
"@algolia/client-query-suggestions": "5.48.0",
|
"@algolia/client-query-suggestions": "5.48.1",
|
||||||
"@algolia/client-search": "5.48.0",
|
"@algolia/client-search": "5.48.1",
|
||||||
"@algolia/ingestion": "1.48.0",
|
"@algolia/ingestion": "1.48.1",
|
||||||
"@algolia/monitoring": "1.48.0",
|
"@algolia/monitoring": "1.48.1",
|
||||||
"@algolia/recommend": "5.48.0",
|
"@algolia/recommend": "5.48.1",
|
||||||
"@algolia/requester-browser-xhr": "5.48.0",
|
"@algolia/requester-browser-xhr": "5.48.1",
|
||||||
"@algolia/requester-fetch": "5.48.0",
|
"@algolia/requester-fetch": "5.48.1",
|
||||||
"@algolia/requester-node-http": "5.48.0"
|
"@algolia/requester-node-http": "5.48.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@algolia/requester-testing": "5.48.0",
|
"@algolia/requester-testing": "5.48.1",
|
||||||
"@arethetypeswrong/cli": "0.18.2",
|
"@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",
|
"@cloudflare/workers-types": "4.20251115.0",
|
||||||
"@types/node": "25.1.0",
|
"@types/node": "25.1.0",
|
||||||
"jsdom": "27.4.0",
|
"jsdom": "27.4.0",
|
||||||
|
|
@ -105,5 +105,5 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 14.0.0"
|
"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>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
|
|
||||||
[](http://npm.im/preact)
|
[](https://www.npmjs.com/package/preact)
|
||||||
[](https://chat.preactjs.com)
|
[](https://chat.preactjs.com)
|
||||||
[](#backers)
|
[](#backers)
|
||||||
[](#sponsors)
|
[](#sponsors)
|
||||||
|
|
||||||
[](https://coveralls.io/github/preactjs/preact)
|
[](https://coveralls.io/github/preactjs/preact)
|
||||||
[](https://unpkg.com/preact/dist/preact.min.js)
|
[](https://unpkg.com/preact/dist/preact.min.js)
|
||||||
[](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">
|
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</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) {
|
function createRoot(container) {
|
||||||
return {
|
return {
|
||||||
render(children) {
|
// eslint-disable-next-line
|
||||||
|
render: function (children) {
|
||||||
render(children, container);
|
render(children, container);
|
||||||
},
|
},
|
||||||
unmount() {
|
// eslint-disable-next-line
|
||||||
|
unmount: function () {
|
||||||
unmountComponentAtNode(container);
|
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) {
|
export function createRoot(container) {
|
||||||
return {
|
return {
|
||||||
render(children) {
|
// eslint-disable-next-line
|
||||||
|
render: function (children) {
|
||||||
render(children, container);
|
render(children, container);
|
||||||
},
|
},
|
||||||
unmount() {
|
// eslint-disable-next-line
|
||||||
|
unmount: function () {
|
||||||
unmountComponentAtNode(container);
|
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"
|
"require": "./dist/compat.js"
|
||||||
},
|
},
|
||||||
"./client": {
|
"./client": {
|
||||||
|
"types": "./client.d.ts",
|
||||||
"import": "./client.mjs",
|
"import": "./client.mjs",
|
||||||
"require": "./client.js"
|
"require": "./client.js"
|
||||||
},
|
},
|
||||||
|
|
@ -45,6 +46,10 @@
|
||||||
"import": "./scheduler.mjs",
|
"import": "./scheduler.mjs",
|
||||||
"require": "./scheduler.js"
|
"require": "./scheduler.js"
|
||||||
},
|
},
|
||||||
|
"./test-utils": {
|
||||||
|
"import": "./test-utils.mjs",
|
||||||
|
"require": "./test-utils.js"
|
||||||
|
},
|
||||||
"./package.json": "./package.json"
|
"./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 = {
|
module.exports = {
|
||||||
renderToString: renderToString,
|
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 { renderToString } from 'preact-render-to-string';
|
||||||
|
import { renderToPipeableStream } from 'preact-render-to-string/stream-node';
|
||||||
|
import { renderToReadableStream } from 'preact-render-to-string/stream';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
renderToString,
|
renderToString,
|
||||||
renderToString as renderToStaticMarkup
|
renderToString as renderToStaticMarkup
|
||||||
} from 'preact-render-to-string';
|
} from 'preact-render-to-string';
|
||||||
|
|
||||||
|
export { renderToPipeableStream } from 'preact-render-to-string/stream-node';
|
||||||
|
export { renderToReadableStream } from 'preact-render-to-string/stream';
|
||||||
export default {
|
export default {
|
||||||
renderToString,
|
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
|
* Component class with a predefined `shouldComponentUpdate` implementation
|
||||||
*/
|
*/
|
||||||
export function PureComponent(p) {
|
export function PureComponent(p, c) {
|
||||||
this.props = p;
|
this.props = p;
|
||||||
|
this.context = c;
|
||||||
}
|
}
|
||||||
PureComponent.prototype = new Component();
|
PureComponent.prototype = new Component();
|
||||||
// Some third-party libraries check if this property is present
|
// 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,
|
// It expects an object here with a `render` property,
|
||||||
// and prototype.render will fail. Without this
|
// and prototype.render will fail. Without this
|
||||||
// mobx-react throws.
|
// mobx-react throws.
|
||||||
Forwarded.render = Forwarded;
|
Forwarded.render = fn;
|
||||||
|
|
||||||
Forwarded.prototype.isReactComponent = Forwarded._forwarded = true;
|
Forwarded.prototype.isReactComponent = Forwarded._forwarded = true;
|
||||||
Forwarded.displayName = 'ForwardRef(' + (fn.displayName || fn.name) + ')';
|
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 _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 { JSXInternal } from '../../src/jsx';
|
||||||
import * as _Suspense from './suspense';
|
import * as _Suspense from './suspense';
|
||||||
import * as _SuspenseList from './suspense-list';
|
import * as _SuspenseList from './suspense-list';
|
||||||
|
|
@ -18,7 +20,6 @@ declare namespace React {
|
||||||
export import PropRef = _hooks.PropRef;
|
export import PropRef = _hooks.PropRef;
|
||||||
export import Reducer = _hooks.Reducer;
|
export import Reducer = _hooks.Reducer;
|
||||||
export import Dispatch = _hooks.Dispatch;
|
export import Dispatch = _hooks.Dispatch;
|
||||||
export import Ref = _hooks.Ref;
|
|
||||||
export import SetStateAction = _hooks.StateUpdater;
|
export import SetStateAction = _hooks.StateUpdater;
|
||||||
export import useCallback = _hooks.useCallback;
|
export import useCallback = _hooks.useCallback;
|
||||||
export import useContext = _hooks.useContext;
|
export import useContext = _hooks.useContext;
|
||||||
|
|
@ -46,14 +47,21 @@ declare namespace React {
|
||||||
export import RefObject = preact.RefObject;
|
export import RefObject = preact.RefObject;
|
||||||
export import Component = preact.Component;
|
export import Component = preact.Component;
|
||||||
export import FunctionComponent = preact.FunctionComponent;
|
export import FunctionComponent = preact.FunctionComponent;
|
||||||
|
export import ComponentType = preact.ComponentType;
|
||||||
|
export import ComponentClass = preact.ComponentClass;
|
||||||
export import FC = preact.FunctionComponent;
|
export import FC = preact.FunctionComponent;
|
||||||
export import createContext = preact.createContext;
|
export import createContext = preact.createContext;
|
||||||
|
export import Ref = preact.Ref;
|
||||||
export import createRef = preact.createRef;
|
export import createRef = preact.createRef;
|
||||||
export import Fragment = preact.Fragment;
|
export import Fragment = preact.Fragment;
|
||||||
export import createElement = preact.createElement;
|
export import createElement = preact.createElement;
|
||||||
export import cloneElement = preact.cloneElement;
|
export import cloneElement = preact.cloneElement;
|
||||||
export import ComponentProps = preact.ComponentProps;
|
export import ComponentProps = preact.ComponentProps;
|
||||||
export import ReactNode = preact.ComponentChild;
|
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
|
// Suspense
|
||||||
export import Suspense = _Suspense.Suspense;
|
export import Suspense = _Suspense.Suspense;
|
||||||
|
|
@ -69,32 +77,126 @@ declare namespace React {
|
||||||
export interface HTMLAttributes<T extends EventTarget>
|
export interface HTMLAttributes<T extends EventTarget>
|
||||||
extends JSXInternal.HTMLAttributes<T> {}
|
extends JSXInternal.HTMLAttributes<T> {}
|
||||||
export interface HTMLProps<T extends EventTarget>
|
export interface HTMLProps<T extends EventTarget>
|
||||||
extends JSXInternal.HTMLAttributes<T>,
|
extends JSXInternal.AllHTMLAttributes<T>,
|
||||||
preact.ClassAttributes<T> {}
|
preact.ClassAttributes<T> {}
|
||||||
|
export interface AllHTMLAttributes<T extends EventTarget>
|
||||||
|
extends JSXInternal.AllHTMLAttributes<T> {}
|
||||||
export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps;
|
export import DetailedHTMLProps = JSXInternal.DetailedHTMLProps;
|
||||||
export import CSSProperties = JSXInternal.CSSProperties;
|
export import CSSProperties = JSXInternal.CSSProperties;
|
||||||
|
|
||||||
export interface SVGProps<T extends EventTarget>
|
export interface SVGProps<T extends EventTarget>
|
||||||
extends JSXInternal.SVGAttributes<T>,
|
extends JSXInternal.SVGAttributes<T>,
|
||||||
preact.ClassAttributes<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
|
// Events
|
||||||
export import TargetedEvent = JSXInternal.TargetedEvent;
|
export import TargetedEvent = JSXInternal.TargetedEvent;
|
||||||
export import ChangeEvent = 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 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(
|
export function createPortal(
|
||||||
vnode: preact.VNode,
|
vnode: preact.ComponentChildren,
|
||||||
container: preact.ContainerNode
|
container: preact.ContainerNode
|
||||||
): preact.VNode<any>;
|
): preact.VNode<any>;
|
||||||
|
|
||||||
export function render(
|
export function render(
|
||||||
vnode: preact.VNode<any>,
|
vnode: preact.ComponentChild,
|
||||||
parent: preact.ContainerNode,
|
parent: preact.ContainerNode,
|
||||||
callback?: () => void
|
callback?: () => void
|
||||||
): Component | null;
|
): Component | null;
|
||||||
|
|
||||||
export function hydrate(
|
export function hydrate(
|
||||||
vnode: preact.VNode<any>,
|
vnode: preact.ComponentChild,
|
||||||
parent: preact.ContainerNode,
|
parent: preact.ContainerNode,
|
||||||
callback?: () => void
|
callback?: () => void
|
||||||
): Component | null;
|
): Component | null;
|
||||||
|
|
@ -111,14 +213,16 @@ declare namespace React {
|
||||||
) => preact.VNode<any>;
|
) => preact.VNode<any>;
|
||||||
export function isValidElement(element: any): boolean;
|
export function isValidElement(element: any): boolean;
|
||||||
export function isFragment(element: any): boolean;
|
export function isFragment(element: any): boolean;
|
||||||
|
export function isMemo(element: any): boolean;
|
||||||
export function findDOMNode(
|
export function findDOMNode(
|
||||||
component: preact.Component | Element
|
component: preact.Component | Element
|
||||||
): Element | null;
|
): Element | null;
|
||||||
|
|
||||||
export abstract class PureComponent<P = {}, S = {}, SS = any> extends preact.Component<
|
export abstract class PureComponent<
|
||||||
P,
|
P = {},
|
||||||
S
|
S = {},
|
||||||
> {
|
SS = any
|
||||||
|
> extends preact.Component<P, S> {
|
||||||
isPureReactComponent: boolean;
|
isPureReactComponent: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -143,18 +247,26 @@ declare namespace React {
|
||||||
ref?: preact.Ref<R> | undefined;
|
ref?: preact.Ref<R> | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Please use `ForwardRefRenderFunction` instead.
|
||||||
|
*/
|
||||||
export interface ForwardFn<P = {}, T = any> {
|
export interface ForwardFn<P = {}, T = any> {
|
||||||
(props: P, ref: ForwardedRef<T>): preact.ComponentChild;
|
(props: P, ref: ForwardedRef<T>): preact.ComponentChild;
|
||||||
displayName?: string;
|
displayName?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface ForwardRefRenderFunction<T = any, P = {}> {
|
||||||
|
(props: P, ref: ForwardedRef<T>): preact.ComponentChild;
|
||||||
|
displayName?: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface ForwardRefExoticComponent<P>
|
export interface ForwardRefExoticComponent<P>
|
||||||
extends preact.FunctionComponent<P> {
|
extends preact.FunctionComponent<P> {
|
||||||
defaultProps?: Partial<P> | undefined;
|
defaultProps?: Partial<P> | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function forwardRef<R, P = {}>(
|
export function forwardRef<R, P = {}>(
|
||||||
fn: ForwardFn<P, R>
|
fn: ForwardRefRenderFunction<R, P>
|
||||||
): preact.FunctionalComponent<PropsWithoutRef<P> & { ref?: preact.Ref<R> }>;
|
): preact.FunctionalComponent<PropsWithoutRef<P> & { ref?: preact.Ref<R> }>;
|
||||||
|
|
||||||
export type PropsWithoutRef<P> = Omit<P, 'ref'>;
|
export type PropsWithoutRef<P> = Omit<P, 'ref'>;
|
||||||
|
|
@ -168,6 +280,37 @@ declare namespace React {
|
||||||
| MutableRefObject<T | null>
|
| MutableRefObject<T | null>
|
||||||
| 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<R>(fn: () => R): R;
|
||||||
export function flushSync<A, R>(fn: (a: A) => R, a: A): R;
|
export function flushSync<A, R>(fn: (a: A) => R, a: A): R;
|
||||||
|
|
||||||
|
|
@ -177,7 +320,7 @@ declare namespace React {
|
||||||
): void;
|
): void;
|
||||||
|
|
||||||
export type PropsWithChildren<P = unknown> = P & {
|
export type PropsWithChildren<P = unknown> = P & {
|
||||||
children?: preact.ComponentChild | undefined;
|
children?: preact.ComponentChildren | undefined;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const Children: {
|
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,
|
useContext,
|
||||||
useDebugValue
|
useDebugValue
|
||||||
} from 'preact/hooks';
|
} from 'preact/hooks';
|
||||||
|
import {
|
||||||
|
useInsertionEffect,
|
||||||
|
startTransition,
|
||||||
|
useDeferredValue,
|
||||||
|
useSyncExternalStore,
|
||||||
|
useTransition
|
||||||
|
} from './hooks';
|
||||||
import { PureComponent } from './PureComponent';
|
import { PureComponent } from './PureComponent';
|
||||||
import { memo } from './memo';
|
import { memo } from './memo';
|
||||||
import { forwardRef } from './forwardRef';
|
import { forwardRef } from './forwardRef';
|
||||||
|
|
@ -27,7 +34,6 @@ import { Children } from './Children';
|
||||||
import { Suspense, lazy } from './suspense';
|
import { Suspense, lazy } from './suspense';
|
||||||
import { SuspenseList } from './suspense-list';
|
import { SuspenseList } from './suspense-list';
|
||||||
import { createPortal } from './portals';
|
import { createPortal } from './portals';
|
||||||
import { is } from './util';
|
|
||||||
import {
|
import {
|
||||||
hydrate,
|
hydrate,
|
||||||
render,
|
render,
|
||||||
|
|
@ -35,7 +41,7 @@ import {
|
||||||
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
|
__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED
|
||||||
} from './render';
|
} 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.
|
* Legacy version of createElement.
|
||||||
|
|
@ -63,6 +69,21 @@ function isFragment(element) {
|
||||||
return isValidElement(element) && element.type === Fragment;
|
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
|
* Wrap `cloneElement` to abort if the passed element is not a valid element and apply
|
||||||
* all vnode normalizations.
|
* all vnode normalizations.
|
||||||
|
|
@ -128,77 +149,9 @@ const flushSync = (callback, arg) => callback(arg);
|
||||||
*/
|
*/
|
||||||
const StrictMode = Fragment;
|
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
|
// compat to react-is
|
||||||
export const isElement = isValidElement;
|
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 * from 'preact/hooks';
|
||||||
export {
|
export {
|
||||||
version,
|
version,
|
||||||
|
|
@ -215,12 +168,18 @@ export {
|
||||||
Fragment,
|
Fragment,
|
||||||
isValidElement,
|
isValidElement,
|
||||||
isFragment,
|
isFragment,
|
||||||
|
isMemo,
|
||||||
findDOMNode,
|
findDOMNode,
|
||||||
Component,
|
Component,
|
||||||
PureComponent,
|
PureComponent,
|
||||||
memo,
|
memo,
|
||||||
forwardRef,
|
forwardRef,
|
||||||
flushSync,
|
flushSync,
|
||||||
|
useInsertionEffect,
|
||||||
|
startTransition,
|
||||||
|
useDeferredValue,
|
||||||
|
useSyncExternalStore,
|
||||||
|
useTransition,
|
||||||
// eslint-disable-next-line camelcase
|
// eslint-disable-next-line camelcase
|
||||||
unstable_batchedUpdates,
|
unstable_batchedUpdates,
|
||||||
StrictMode,
|
StrictMode,
|
||||||
|
|
@ -263,6 +222,7 @@ export default {
|
||||||
isValidElement,
|
isValidElement,
|
||||||
isElement,
|
isElement,
|
||||||
isFragment,
|
isFragment,
|
||||||
|
isMemo,
|
||||||
findDOMNode,
|
findDOMNode,
|
||||||
Component,
|
Component,
|
||||||
PureComponent,
|
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 {
|
import {
|
||||||
Component as PreactComponent,
|
Component as PreactComponent,
|
||||||
VNode as PreactVNode,
|
VNode as PreactVNode,
|
||||||
FunctionComponent as PreactFunctionComponent
|
FunctionComponent as PreactFunctionComponent,
|
||||||
|
PreactElement
|
||||||
} from '../../src/internal';
|
} from '../../src/internal';
|
||||||
import { SuspenseProps } from './suspense';
|
import { SuspenseProps } from './suspense';
|
||||||
|
|
||||||
export { ComponentChildren } from '../..';
|
export { ComponentChildren } from '../..';
|
||||||
|
|
||||||
export { PreactElement } from '../../src/internal';
|
export { PreactElement };
|
||||||
|
|
||||||
export interface Component<P = {}, S = {}> extends PreactComponent<P, S> {
|
export interface Component<P = {}, S = {}> extends PreactComponent<P, S> {
|
||||||
isReactComponent?: object;
|
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.displayName = 'Memo(' + (c.displayName || c.name) + ')';
|
||||||
Memoed.prototype.isReactComponent = true;
|
Memoed.prototype.isReactComponent = true;
|
||||||
Memoed._forwarded = true;
|
Memoed._forwarded = true;
|
||||||
|
Memoed.type = c;
|
||||||
return Memoed;
|
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) {
|
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;
|
_this._container = container;
|
||||||
|
|
||||||
// Create a fake DOM parent node that manages a subset of `container`'s children:
|
// Create a fake DOM parent node that manages a subset of `container`'s children:
|
||||||
|
|
@ -39,13 +45,12 @@ function Portal(props) {
|
||||||
nodeType: 1,
|
nodeType: 1,
|
||||||
parentNode: container,
|
parentNode: container,
|
||||||
childNodes: [],
|
childNodes: [],
|
||||||
appendChild(child) {
|
_children: { _mask: root._mask },
|
||||||
this.childNodes.push(child);
|
contains: () => true,
|
||||||
_this._container.appendChild(child);
|
namespaceURI: container.namespaceURI,
|
||||||
},
|
|
||||||
insertBefore(child, before) {
|
insertBefore(child, before) {
|
||||||
this.childNodes.push(child);
|
this.childNodes.push(child);
|
||||||
_this._container.appendChild(child);
|
_this._container.insertBefore(child, before);
|
||||||
},
|
},
|
||||||
removeChild(child) {
|
removeChild(child) {
|
||||||
this.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);
|
this.childNodes.splice(this.childNodes.indexOf(child) >>> 1, 1);
|
||||||
|
|
|
||||||
77
node_modules/preact/compat/src/render.js
generated
vendored
77
node_modules/preact/compat/src/render.js
generated
vendored
|
|
@ -5,6 +5,25 @@ import {
|
||||||
toChildArray,
|
toChildArray,
|
||||||
Component
|
Component
|
||||||
} from 'preact';
|
} 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 =
|
export const REACT_ELEMENT_TYPE =
|
||||||
(typeof Symbol != 'undefined' && Symbol.for && Symbol.for('react.element')) ||
|
(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]/;
|
/^(?: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 ON_ANI = /^on(Ani|Tra|Tou|BeforeInp|Compo)/;
|
||||||
const CAMEL_REPLACE = /[A-Z0-9]/g;
|
const CAMEL_REPLACE = /[A-Z0-9]/g;
|
||||||
|
|
||||||
const IS_DOM = typeof document !== 'undefined';
|
const IS_DOM = typeof document !== 'undefined';
|
||||||
|
|
||||||
// Input types for which onchange should not be converted to oninput.
|
// Input types for which onchange should not be converted to oninput.
|
||||||
|
|
@ -116,6 +134,7 @@ function handleDomVNode(vnode) {
|
||||||
type = vnode.type,
|
type = vnode.type,
|
||||||
normalizedProps = {};
|
normalizedProps = {};
|
||||||
|
|
||||||
|
let isNonDashedType = type.indexOf('-') === -1;
|
||||||
for (let i in props) {
|
for (let i in props) {
|
||||||
let value = props[i];
|
let value = props[i];
|
||||||
|
|
||||||
|
|
@ -143,21 +162,25 @@ function handleDomVNode(vnode) {
|
||||||
// value will be used as the file name and the file will be called
|
// value will be used as the file name and the file will be called
|
||||||
// "true" upon downloading it.
|
// "true" upon downloading it.
|
||||||
value = '';
|
value = '';
|
||||||
} else if (lowerCased === 'ondoubleclick') {
|
} else if (lowerCased === 'translate' && value === 'no') {
|
||||||
i = 'ondblclick';
|
value = false;
|
||||||
} else if (
|
} else if (lowerCased[0] === 'o' && lowerCased[1] === 'n') {
|
||||||
lowerCased === 'onchange' &&
|
if (lowerCased === 'ondoubleclick') {
|
||||||
(type === 'input' || type === 'textarea') &&
|
i = 'ondblclick';
|
||||||
!onChangeInputType(props.type)
|
} else if (
|
||||||
) {
|
lowerCased === 'onchange' &&
|
||||||
lowerCased = i = 'oninput';
|
(type === 'input' || type === 'textarea') &&
|
||||||
} else if (lowerCased === 'onfocus') {
|
!onChangeInputType(props.type)
|
||||||
i = 'onfocusin';
|
) {
|
||||||
} else if (lowerCased === 'onblur') {
|
lowerCased = i = 'oninput';
|
||||||
i = 'onfocusout';
|
} else if (lowerCased === 'onfocus') {
|
||||||
} else if (ON_ANI.test(i)) {
|
i = 'onfocusin';
|
||||||
i = lowerCased;
|
} else if (lowerCased === 'onblur') {
|
||||||
} else if (type.indexOf('-') === -1 && CAMEL_PROPS.test(i)) {
|
i = 'onfocusout';
|
||||||
|
} else if (ON_ANI.test(i)) {
|
||||||
|
i = lowerCased;
|
||||||
|
}
|
||||||
|
} else if (isNonDashedType && CAMEL_PROPS.test(i)) {
|
||||||
i = i.replace(CAMEL_REPLACE, '-$&').toLowerCase();
|
i = i.replace(CAMEL_REPLACE, '-$&').toLowerCase();
|
||||||
} else if (value === null) {
|
} else if (value === null) {
|
||||||
value = undefined;
|
value = undefined;
|
||||||
|
|
@ -262,15 +285,29 @@ options.diffed = function (vnode) {
|
||||||
};
|
};
|
||||||
|
|
||||||
// This is a very very private internal function for React it
|
// This is a very very private internal function for React it
|
||||||
// is used to sort-of do runtime dependency injection. So far
|
// is used to sort-of do runtime dependency injection.
|
||||||
// only `react-relay` makes use of it. It uses it to read the
|
|
||||||
// context value.
|
|
||||||
export const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
|
export const __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = {
|
||||||
ReactCurrentDispatcher: {
|
ReactCurrentDispatcher: {
|
||||||
current: {
|
current: {
|
||||||
readContext(context) {
|
readContext(context) {
|
||||||
return currentComponent._globalContext[context._id].props.value;
|
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
|
// 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
|
// 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 {
|
export interface SuspenseProps {
|
||||||
children?: ComponentChildren;
|
children?: ComponentChildren;
|
||||||
|
|
|
||||||
28
node_modules/preact/compat/src/suspense.js
generated
vendored
28
node_modules/preact/compat/src/suspense.js
generated
vendored
|
|
@ -27,6 +27,7 @@ const oldUnmount = options.unmount;
|
||||||
options.unmount = function (vnode) {
|
options.unmount = function (vnode) {
|
||||||
/** @type {import('./internal').Component} */
|
/** @type {import('./internal').Component} */
|
||||||
const component = vnode._component;
|
const component = vnode._component;
|
||||||
|
if (component) component._unmounted = true;
|
||||||
if (component && component._onResolve) {
|
if (component && component._onResolve) {
|
||||||
component._onResolve();
|
component._onResolve();
|
||||||
}
|
}
|
||||||
|
|
@ -57,6 +58,9 @@ function detachedClone(vnode, detachedParent, parentDom) {
|
||||||
if (vnode._component._parentDom === parentDom) {
|
if (vnode._component._parentDom === parentDom) {
|
||||||
vnode._component._parentDom = detachedParent;
|
vnode._component._parentDom = detachedParent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vnode._component._force = true;
|
||||||
|
|
||||||
vnode._component = null;
|
vnode._component = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -126,7 +130,7 @@ Suspense.prototype._childDidSuspend = function (promise, suspendingVNode) {
|
||||||
|
|
||||||
let resolved = false;
|
let resolved = false;
|
||||||
const onResolved = () => {
|
const onResolved = () => {
|
||||||
if (resolved) return;
|
if (resolved || c._unmounted) return;
|
||||||
|
|
||||||
resolved = true;
|
resolved = true;
|
||||||
suspendingComponent._onResolve = null;
|
suspendingComponent._onResolve = null;
|
||||||
|
|
@ -140,6 +144,12 @@ Suspense.prototype._childDidSuspend = function (promise, suspendingVNode) {
|
||||||
|
|
||||||
suspendingComponent._onResolve = onResolved;
|
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 = () => {
|
const onSuspensionComplete = () => {
|
||||||
if (!--c._pendingSuspensionCount) {
|
if (!--c._pendingSuspensionCount) {
|
||||||
// If the suspension was during hydration we don't need to restore the
|
// 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;
|
let suspended;
|
||||||
while ((suspended = c._suspenders.pop())) {
|
while ((suspended = c._suspenders.pop())) {
|
||||||
|
// Restore _parentDom before forceUpdate so render can proceed
|
||||||
|
suspended._parentDom = originalParentDom;
|
||||||
suspended.forceUpdate();
|
suspended.forceUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -233,6 +245,7 @@ Suspense.prototype.render = function (props, state) {
|
||||||
* @returns {((unsuspend: () => void) => void)?}
|
* @returns {((unsuspend: () => void) => void)?}
|
||||||
*/
|
*/
|
||||||
export function suspended(vnode) {
|
export function suspended(vnode) {
|
||||||
|
if (!vnode._parent) return null;
|
||||||
/** @type {import('./internal').Component} */
|
/** @type {import('./internal').Component} */
|
||||||
let component = vnode._parent._component;
|
let component = vnode._parent._component;
|
||||||
return component && component._suspended && component._suspended(vnode);
|
return component && component._suspended && component._suspended(vnode);
|
||||||
|
|
@ -240,18 +253,23 @@ export function suspended(vnode) {
|
||||||
|
|
||||||
export function lazy(loader) {
|
export function lazy(loader) {
|
||||||
let prom;
|
let prom;
|
||||||
let component;
|
let component = null;
|
||||||
let error;
|
let error;
|
||||||
|
let resolved;
|
||||||
|
|
||||||
function Lazy(props) {
|
function Lazy(props) {
|
||||||
if (!prom) {
|
if (!prom) {
|
||||||
prom = loader();
|
prom = loader();
|
||||||
prom.then(
|
prom.then(
|
||||||
exports => {
|
exports => {
|
||||||
component = exports.default || exports;
|
if (exports) {
|
||||||
|
component = exports.default || exports;
|
||||||
|
}
|
||||||
|
resolved = true;
|
||||||
},
|
},
|
||||||
e => {
|
e => {
|
||||||
error = e;
|
error = e;
|
||||||
|
resolved = true;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -260,11 +278,11 @@ export function lazy(loader) {
|
||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!component) {
|
if (!resolved) {
|
||||||
throw prom;
|
throw prom;
|
||||||
}
|
}
|
||||||
|
|
||||||
return createElement(component, props);
|
return component ? createElement(component, props) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Lazy.displayName = 'Lazy';
|
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