diff --git a/docusaurus.config.js b/docusaurus.config.js index b85db5828c..e14e620291 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -239,6 +239,7 @@ module.exports = { }, ], ], + themes: ['docusaurus-theme-search-typesense'], themeConfig: ({ docs: { @@ -277,16 +278,18 @@ module.exports = { defaultMode: 'light', disableSwitch: false, }, - algolia: { - appId: '2SJPGMLW1Q', - apiKey: 'fb2f4e1fb40f962900631121cb365549', - indexName: 'crawler_sumodocs', - contextualSearch: false, - insights: true, - insightsConfig: { - useCookie: true, // alt to useCookie: true, + typesense: { + typesenseCollectionName: 'sumo-docs_1764148676', // the collection name from the scraper output + typesenseServerConfig: { + nodes: [ + { + host: 'localhost', // you'll change this for production + port: 8108, + protocol: 'http', + }, + ], + apiKey: 'xyz', // use a search-only API key in production }, - useCookie: true, // alt to insightsConfig: {useCookie: true,}, }, prism: { theme: lightCodeTheme, diff --git a/package.json b/package.json index 53d3f88b3f..c02062d504 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,7 @@ "cssnano": "6.1.2", "csso": "5.0.5", "docusaurus-plugin-sass": "^0.2.1", + "docusaurus-theme-search-typesense": "^0.26.0", "docusaurus2-dotenv": "^1.4.0", "electron-to-chromium": "1.4.755", "eventsource-parser": "3.0.6", diff --git a/typesense-local-setup.md b/typesense-local-setup.md new file mode 100644 index 0000000000..b502c92208 --- /dev/null +++ b/typesense-local-setup.md @@ -0,0 +1,130 @@ + + +# Local Typesense Search Setup + +## Prerequisites + +- Homebrew +- Docker +- Yarn + +## Setup Steps + +### 1. Install Typesense + +```bash +brew install typesense +brew services start typesense +``` + +### 2. Verify it's running + +```bash +curl http://localhost:8108/health +``` + +Should return `{"ok":true}` + +### 3. Install Docker (needed for the scraper) + +```bash +brew install --cask docker +``` + +Then open Docker from Applications to start it. + +### 4. Build and serve the docs locally + +```bash +yarn build +yarn serve +``` + +### 5. In a new terminal, create the scraper config + +```bash +cat > /tmp/docsearch-config.json << 'EOF' +{ + "index_name": "sumo-docs", + "start_urls": ["http://host.docker.internal:3000/"], + "selectors": { + "lvl0": "article h1", + "lvl1": "article h2", + "lvl2": "article h3", + "lvl3": "article h4", + "text": "article p, article li" + } +} +EOF +``` + +### 6. Run the scraper + +```bash +cd /tmp +docker run -it --rm \ + -e TYPESENSE_API_KEY=xyz \ + -e TYPESENSE_HOST=host.docker.internal \ + -e TYPESENSE_PORT=8108 \ + -e TYPESENSE_PROTOCOL=http \ + -e CONFIG="$(cat docsearch-config.json)" \ + typesense/docsearch-scraper +``` + +This takes a while (~140k records). + +### 7. Test the search + +Open `http://localhost:3000` and try the search box. + +--- + +## Troubleshooting + +### Docker install error: "already a Binary at '/usr/local/bin/hub-tool'" + +This is a leftover from a previous install. You can ignore it or force reinstall: + +```bash +brew reinstall --cask docker --force +``` + +### Docker not in Applications folder + +Try opening it directly: + +```bash +open /opt/homebrew/Caskroom/docker-desktop/4.52.0,210994/Docker.app +``` + +### Scraper returns "Connection refused" + +Your local docs server isn't running. Make sure `yarn serve` is running in another terminal before starting the scraper. + +### Scraper returns 403 Forbidden + +This happens when scraping production (sumologic.com/help) due to bot protection. Always scrape against your local build instead. + +### Scraper shows "nbHits 0" or "Ignored: from start url" + +The selectors aren't matching the HTML structure. Make sure you're using the config above, which is tuned for our Docusaurus setup. + +### Typesense not running + +Check status with: + +```bash +brew services list | grep typesense +``` + +If stopped, start it: + +```bash +brew services start typesense +``` + +### Find your Typesense API key + +```bash +cat /opt/homebrew/etc/typesense/typesense.ini +``` diff --git a/yarn.lock b/yarn.lock index 8ed34b3302..1f9549a3a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -81,6 +81,13 @@ "@algolia/autocomplete-plugin-algolia-insights" "1.19.2" "@algolia/autocomplete-shared" "1.19.2" +"@algolia/autocomplete-core@1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.8.2.tgz#8d758c8652742e2761450d2b615a841fca24e10e" + integrity sha512-mTeshsyFhAqw/ebqNsQpMtbnjr+qVOSKXArEj4K0d7sqc8It1XD0gkASwecm9mF/jlOQ4Z9RNg1HbdA8JPdRwQ== + dependencies: + "@algolia/autocomplete-shared" "1.8.2" + "@algolia/autocomplete-plugin-algolia-insights@1.17.9": version "1.17.9" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-plugin-algolia-insights/-/autocomplete-plugin-algolia-insights-1.17.9.tgz#74c86024d09d09e8bfa3dd90b844b77d9f9947b6" @@ -102,6 +109,13 @@ dependencies: "@algolia/autocomplete-shared" "1.17.9" +"@algolia/autocomplete-preset-algolia@1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.8.2.tgz#706e87f94c5f198c0e90502b97af09adeeddcc79" + integrity sha512-J0oTx4me6ZM9kIKPuL3lyU3aB8DEvpVvR6xWmHVROx5rOYJGQcZsdG4ozxwcOyiiu3qxMkIbzntnV1S1VWD8yA== + dependencies: + "@algolia/autocomplete-shared" "1.8.2" + "@algolia/autocomplete-shared@1.17.9": version "1.17.9" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.17.9.tgz#5f38868f7cb1d54b014b17a10fc4f7e79d427fa8" @@ -112,6 +126,11 @@ resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.19.2.tgz#c0b7b8dc30a5c65b70501640e62b009535e4578f" integrity sha512-jEazxZTVD2nLrC+wYlVHQgpBoBB5KPStrJxLzsIFl6Kqd1AlG9sIAGl39V5tECLpIQzB3Qa2T6ZPJ1ChkwMK/w== +"@algolia/autocomplete-shared@1.8.2": + version "1.8.2" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-shared/-/autocomplete-shared-1.8.2.tgz#e6972df5c6935a241f16e4909aa82902338e029d" + integrity sha512-b6Z/X4MczChMcfhk6kfRmBzPgjoPzuS9KGR4AFsiLulLNRAAqhP+xZTKtMnZGhLuc61I20d5WqlId02AZvcO6g== + "@algolia/client-abtesting@5.18.0": version "5.18.0" resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.18.0.tgz#1bc368444d08b6e48ce56f1d5c935bfb9f658a98" @@ -1867,7 +1886,7 @@ webpack "^5.95.0" webpackbar "^6.0.1" -"@docusaurus/core@3.9.2", "@docusaurus/core@^3.9.2": +"@docusaurus/core@3.9.2", "@docusaurus/core@^3.9.2", "@docusaurus/core@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-3.9.2.tgz#cc970f29b85a8926d63c84f8cffdcda43ed266ff" integrity sha512-HbjwKeC+pHUFBfLMNzuSjqFE/58+rLVKmOU3lxQrpsxLBOGosYco/Q0GduBb0/jEMRiyEqjNT/01rRdOMWq5pw== @@ -1940,7 +1959,7 @@ tslib "^2.6.0" webpack "^5.95.0" -"@docusaurus/logger@3.9.2": +"@docusaurus/logger@3.9.2", "@docusaurus/logger@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-3.9.2.tgz#6ec6364b90f5a618a438cc9fd01ac7376869f92a" integrity sha512-/SVCc57ByARzGSU60c50rMyQlBuMIJCjcsJlkphxY6B0GV4UH3tcA1994N8fFfbJ9kX3jIBe/xg3XP5qBtGDbA== @@ -2030,7 +2049,7 @@ utility-types "^3.10.0" webpack "^5.88.1" -"@docusaurus/plugin-content-docs@3.9.2": +"@docusaurus/plugin-content-docs@3.9.2", "@docusaurus/plugin-content-docs@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-3.9.2.tgz#cd8f2d1c06e53c3fa3d24bdfcb48d237bf2d6b2e" integrity sha512-C5wZsGuKTY8jEYsqdxhhFOe1ZDjH0uIYJ9T/jebHwkyxqnr4wW0jTkB72OMqNjsoQRcb0JN3PcSeTwFlVgzCZg== @@ -2203,7 +2222,7 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-common@3.9.2": +"@docusaurus/theme-common@3.9.2", "@docusaurus/theme-common@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-3.9.2.tgz#487172c6fef9815c2746ef62a71e4f5b326f9ba5" integrity sha512-6c4DAbR6n6nPbnZhY2V3tzpnKnGL+6aOsLvFL26VRqhlczli9eWG0VDUNoCQEPnGwDMhPS42UhSAnz5pThm5Ag== @@ -2243,7 +2262,7 @@ tslib "^2.6.0" utility-types "^3.10.0" -"@docusaurus/theme-translations@3.9.2": +"@docusaurus/theme-translations@3.9.2", "@docusaurus/theme-translations@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-3.9.2.tgz#238cd69c2da92d612be3d3b4f95944c1d0f1e041" integrity sha512-vIryvpP18ON9T9rjgMRFLr2xJVDpw1rtagEGf8Ccce4CkTrvM/fRB8N2nyWYOW5u3DdjkwKw5fBa+3tbn9P4PA== @@ -2275,7 +2294,7 @@ "@docusaurus/types" "3.9.2" tslib "^2.6.0" -"@docusaurus/utils-validation@3.9.2": +"@docusaurus/utils-validation@3.9.2", "@docusaurus/utils-validation@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-3.9.2.tgz#04aec285604790806e2fc5aa90aa950dc7ba75ae" integrity sha512-l7yk3X5VnNmATbwijJkexdhulNsQaNDwoagiwujXoxFbWLcxHQqNQ+c/IAlzrfMMOfa/8xSBZ7KEKDesE/2J7A== @@ -2289,7 +2308,7 @@ lodash "^4.17.21" tslib "^2.6.0" -"@docusaurus/utils@3.9.2": +"@docusaurus/utils@3.9.2", "@docusaurus/utils@~3.9.0": version "3.9.2" resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-3.9.2.tgz#ffab7922631c7e0febcb54e6d499f648bf8a89eb" integrity sha512-lBSBiRruFurFKXr5Hbsl2thmGweAPmddhF3jb99U4EMDA5L+e5Y1rAkOS07Nvrup7HUMBDrCV45meaxZnt28nQ== @@ -4599,6 +4618,13 @@ ajv@^8.0.0, ajv@^8.9.0: json-schema-traverse "^1.0.0" require-from-string "^2.0.2" +algoliasearch-helper@^3.13.3: + version "3.26.1" + resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.26.1.tgz#5b7f0874a2751c3d6de675d5403d8fa2f015023f" + integrity sha512-CAlCxm4fYBXtvc5MamDzP6Svu8rW4z9me4DCBY1rQ2UDJ0u0flWmusQ8M3nOExZsLLRcUwUPoRAPMrhzOG3erw== + dependencies: + "@algolia/events" "^4.0.1" + algoliasearch-helper@^3.26.0: version "3.26.0" resolved "https://registry.yarnpkg.com/algoliasearch-helper/-/algoliasearch-helper-3.26.0.tgz#d6e283396a9fc5bf944f365dc3b712570314363f" @@ -4828,6 +4854,11 @@ astring@^1.8.0: resolved "https://registry.yarnpkg.com/astring/-/astring-1.9.0.tgz#cc73e6062a7eb03e7d19c22d8b0b3451fd9bfeef" integrity sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg== +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + autoprefixer@^10.4.19, autoprefixer@^10.4.21: version "10.4.21" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.21.tgz#77189468e7a8ad1d9a37fbc08efc9f480cf0a95d" @@ -4847,6 +4878,15 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" +axios@^1.6.0, axios@^1.8.4: + version "1.13.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.13.2.tgz#9ada120b7b5ab24509553ec3e40123521117f687" + integrity sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.4" + proxy-from-env "^1.1.0" + b4a@^1.6.4: version "1.6.7" resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.7.tgz#a99587d4ebbfbd5a6e3b21bdb5d5fa385767abe4" @@ -5528,6 +5568,13 @@ combine-promises@^1.1.0: resolved "https://registry.yarnpkg.com/combine-promises/-/combine-promises-1.2.0.tgz#5f2e68451862acf85761ded4d9e2af7769c2ca6a" integrity sha512-VcQB1ziGD0NXrhKxiwyNbCDmRzs/OShMs2GqW2DlU2A/Sd0nQxE1oWDAE5O0ygSx5mgQOn9eIFh7yKPgFRVkPQ== +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + comma-separated-tokens@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" @@ -6451,6 +6498,11 @@ delaunator@5: dependencies: robust-predicates "^3.0.2" +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + depd@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" @@ -6541,6 +6593,28 @@ docusaurus-plugin-sass@^0.2.1: dependencies: sass-loader "^10.1.1" +docusaurus-theme-search-typesense@^0.26.0: + version "0.26.0" + resolved "https://registry.yarnpkg.com/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.26.0.tgz#7f0009f5638d77ce32784c2c946e3c554f2fa02c" + integrity sha512-+HgkCW8ZBzjAHNIprt3tik2p7AzK2tRi+s+eIRxeDpQV7ldEtV71ihbimMmT8AgRpOuEhCYngFfU1jPJjK1vig== + dependencies: + "@docusaurus/core" "~3.9.0" + "@docusaurus/logger" "~3.9.0" + "@docusaurus/plugin-content-docs" "~3.9.0" + "@docusaurus/theme-common" "~3.9.0" + "@docusaurus/theme-translations" "~3.9.0" + "@docusaurus/utils" "~3.9.0" + "@docusaurus/utils-validation" "~3.9.0" + algoliasearch-helper "^3.13.3" + clsx "^2.0.0" + eta "^2.2.0" + fs-extra "^11.1.1" + lodash "^4.17.21" + tslib "^2.6.0" + typesense-docsearch-react "^3.4.1" + typesense-instantsearch-adapter "^2.9.0-5" + utility-types "^3.10.0" + docusaurus2-dotenv@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/docusaurus2-dotenv/-/docusaurus2-dotenv-1.4.0.tgz#9ab900e29de9081f9f1f28f7224ff63760385641" @@ -6893,6 +6967,16 @@ es-set-tostringtag@^2.0.3: has-tostringtag "^1.0.2" hasown "^2.0.1" +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== + dependencies: + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" + es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" @@ -7604,6 +7688,17 @@ form-data-encoder@^2.1.2: resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== +form-data@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.5.tgz#b49e48858045ff4cbf6b03e1805cebcad3679053" + integrity sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + es-set-tostringtag "^2.1.0" + hasown "^2.0.2" + mime-types "^2.1.12" + format@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b" @@ -7689,7 +7784,7 @@ get-intrinsic@^1.2.1, get-intrinsic@^1.2.3: has-symbols "^1.0.3" hasown "^2.0.0" -get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.3.0: +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01" integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== @@ -9403,6 +9498,11 @@ log-update@^6.0.0: strip-ansi "^7.1.0" wrap-ansi "^9.0.0" +loglevel@^1.8.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" + integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== + longest-streak@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" @@ -10605,7 +10705,7 @@ mime-types@2.1.18: dependencies: mime-db "~1.33.0" -mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -13922,7 +14022,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0: +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0, tslib@^2.6.2: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -14025,6 +14125,46 @@ typescript@^5.2.2: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.2.tgz#c26f023cb0054e657ce04f72583ea2d85f8d0507" integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== +typesense-docsearch-css@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/typesense-docsearch-css/-/typesense-docsearch-css-0.4.1.tgz#457d4ad2d63021c7cc6e12081c378c0367a891c0" + integrity sha512-mN8K18pfIpCrhzsMAJBzoS7l/YDcC4P3f9vsScenUceXmC8n3FCPldmF10dKDJmK3Lr7aAScQt70jCA5126y2w== + +typesense-docsearch-react@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/typesense-docsearch-react/-/typesense-docsearch-react-3.4.1.tgz#754d52472bb9b19a91d213f575d7cc06a58a0878" + integrity sha512-d0PQym/B/p5oP+hfdFEOH6goiKa1JLR63bikZSDGq1+jT2FtuwNrdMGVBZZMNFUsXVsJRA8ULHJpsREmfSJmVw== + dependencies: + "@algolia/autocomplete-core" "1.8.2" + "@algolia/autocomplete-preset-algolia" "1.8.2" + typesense "^1.7.2" + typesense-docsearch-css "^0.4.1" + typesense-instantsearch-adapter "^2.7.1" + +typesense-instantsearch-adapter@^2.7.1, typesense-instantsearch-adapter@^2.9.0-5: + version "2.9.0" + resolved "https://registry.yarnpkg.com/typesense-instantsearch-adapter/-/typesense-instantsearch-adapter-2.9.0.tgz#ce6b71f004b47eb88f112db74138d7c6932b088a" + integrity sha512-ZSgpi9T/S70Zs2eYIv0VmD0o4+VfBN9jz97Rhbf9Bj+gpUAbjmm46XAobEE2TGs2Wo04hpzCrXifXNJecalC/w== + dependencies: + typesense "^2.1.0-1" + +typesense@^1.7.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/typesense/-/typesense-1.8.2.tgz#16341fdd4edab02b33facc14e1d27a6d58dbe0e5" + integrity sha512-aBpePjA99Qvo+OP2pJwMpvga4Jrm1Y2oV5NsrWXBxlqUDNEUCPZBIksPv2Hq0jxQxHhLLyJVbjXjByXsvpCDVA== + dependencies: + axios "^1.6.0" + loglevel "^1.8.1" + +typesense@^2.1.0-1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/typesense/-/typesense-2.1.0.tgz#1172adbbcb42cb3888043c66465afe882c35587e" + integrity sha512-a/IRTL+dRXlpRDU4UodyGj8hl5xBz3nKihVRd/KfSFAfFPGcpdX6lxIgwdXy3O6VLNNiEsN8YwIsPHQPVT0vNw== + dependencies: + axios "^1.8.4" + loglevel "^1.8.1" + tslib "^2.6.2" + ufo@^1.5.4: version "1.5.4" resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.4.tgz#16d6949674ca0c9e0fbbae1fa20a71d7b1ded754"