diff --git a/package.json b/package.json index 07e6136e6..6d6b53f92 100644 --- a/package.json +++ b/package.json @@ -24,8 +24,8 @@ }, "dependencies": { "@codesandbox/sandpack-react": "2.13.5", - "@docsearch/css": "^3.6.1", - "@docsearch/react": "^3.6.1", + "@docsearch/css": "^3.8.3", + "@docsearch/react": "^3.8.3", "@headlessui/react": "^1.7.0", "@radix-ui/react-context-menu": "^2.1.5", "body-scroll-lock": "^3.1.3", diff --git a/public/images/team/andrey-lunyov.jpg b/public/images/team/andrey-lunyov.jpg deleted file mode 100644 index aeaaec06a..000000000 Binary files a/public/images/team/andrey-lunyov.jpg and /dev/null differ diff --git a/public/images/team/hendrik.jpg b/public/images/team/hendrik.jpg new file mode 100644 index 000000000..b39ea5be2 Binary files /dev/null and b/public/images/team/hendrik.jpg differ diff --git a/public/images/team/jordan.jpg b/public/images/team/jordan.jpg new file mode 100644 index 000000000..d8874a29f Binary files /dev/null and b/public/images/team/jordan.jpg differ diff --git a/public/images/team/kathryn-middleton.jpg b/public/images/team/kathryn-middleton.jpg deleted file mode 100644 index 904c3b134..000000000 Binary files a/public/images/team/kathryn-middleton.jpg and /dev/null differ diff --git a/public/images/team/lauren.jpg b/public/images/team/lauren.jpg index 26d46bd2f..a8615aa00 100644 Binary files a/public/images/team/lauren.jpg and b/public/images/team/lauren.jpg differ diff --git a/public/images/team/luna-wei.jpg b/public/images/team/luna-wei.jpg deleted file mode 100644 index cdc4a2b6a..000000000 Binary files a/public/images/team/luna-wei.jpg and /dev/null differ diff --git a/public/images/team/mike.jpg b/public/images/team/mike.jpg new file mode 100644 index 000000000..39fe23fea Binary files /dev/null and b/public/images/team/mike.jpg differ diff --git a/public/images/team/noahlemen.jpg b/public/images/team/noahlemen.jpg deleted file mode 100644 index e3f788d89..000000000 Binary files a/public/images/team/noahlemen.jpg and /dev/null differ diff --git a/public/images/team/pieter.jpg b/public/images/team/pieter.jpg new file mode 100644 index 000000000..d098e5abe Binary files /dev/null and b/public/images/team/pieter.jpg differ diff --git a/public/images/team/sam.jpg b/public/images/team/sam.jpg deleted file mode 100644 index f73474b91..000000000 Binary files a/public/images/team/sam.jpg and /dev/null differ diff --git a/public/images/team/sathya.jpg b/public/images/team/sathya.jpg deleted file mode 100644 index 0f087f4a3..000000000 Binary files a/public/images/team/sathya.jpg and /dev/null differ diff --git a/public/images/team/tianyu.jpg b/public/images/team/tianyu.jpg deleted file mode 100644 index aeb6ed9fa..000000000 Binary files a/public/images/team/tianyu.jpg and /dev/null differ diff --git a/src/components/MDX/TeamMember.tsx b/src/components/MDX/TeamMember.tsx index a49aa728e..2c2fffa73 100644 --- a/src/components/MDX/TeamMember.tsx +++ b/src/components/MDX/TeamMember.tsx @@ -3,7 +3,7 @@ */ import * as React from 'react'; -import Image from 'next/image'; +import Image from 'next/legacy/image'; import {IconTwitter} from '../Icon/IconTwitter'; import {IconThreads} from '../Icon/IconThreads'; import {IconBsky} from '../Icon/IconBsky'; diff --git a/src/content/blog/2024/12/05/react-19.md b/src/content/blog/2024/12/05/react-19.md index 62a6ce464..aac80a44f 100644 --- a/src/content/blog/2024/12/05/react-19.md +++ b/src/content/blog/2024/12/05/react-19.md @@ -294,7 +294,7 @@ A component was suspended by an uncached promise. Creating promises inside a Cli -To fix, you need to pass a promise from a suspense powered library or framework that supports caching for promises. In the future we plan to ship features to make it easier to cache promises in render. +To fix, you need to pass a promise from a Suspense powered library or framework that supports caching for promises. In the future we plan to ship features to make it easier to cache promises in render. diff --git a/src/content/community/acknowledgements.md b/src/content/community/acknowledgements.md index 760076d83..bfe67f55a 100644 --- a/src/content/community/acknowledgements.md +++ b/src/content/community/acknowledgements.md @@ -36,6 +36,8 @@ We'd like to recognize a few people who have made significant contributions to R * [Joe Critchley](https://github.com/joecritch) * [Jeff Morrison](https://github.com/jeffmo) * [Luna Ruan](https://github.com/lunaruan) +* [Luna Wei](https://github.com/lunaleaps) +* [Noah Lemen](https://github.com/noahlemen) * [Kathryn Middleton](https://github.com/kmiddleton14) * [Keyan Zhang](https://github.com/keyz) * [Marco Salazar](https://github.com/salazarm) @@ -51,9 +53,10 @@ We'd like to recognize a few people who have made significant contributions to R * [Samuel Susla](https://github.com/sammy-SC) * [Sander Spies](https://github.com/sanderspies) * [Sasha Aickin](https://github.com/aickin) -* [Sean Keegan](https://github.com/seanryankeegan) +* [Sathya Gunasekaran](https://github.com/gsathya) * [Sophia Shoemaker](https://github.com/mrscobbler) * [Sunil Pai](https://github.com/threepointone) +* [Tianyu Yao](https://github.com/) * [Tim Yung](https://github.com/yungsters) * [Xuan Huang](https://github.com/huxpro) diff --git a/src/content/community/team.md b/src/content/community/team.md index 94f31f09f..da4ce0791 100644 --- a/src/content/community/team.md +++ b/src/content/community/team.md @@ -22,10 +22,14 @@ Current members of the React team are listed in alphabetical order below. Dan got into programming after he accidentally discovered Visual Basic inside Microsoft PowerPoint. He has found his true calling in turning [Sebastian](#sebastian-markbåge)'s tweets into long-form blog posts. Dan occasionally wins at Fortnite by hiding in a bush until the game ends. - + Eli got into programming after he got suspended from middle school for hacking. He has been working on React and React Native since 2017. He enjoys eating treats, especially ice cream and apple pie. You can find Eli trying quirky activities like parkour, indoor skydiving, and aerial silks. + + Hendrik’s journey in tech started in the late 90s when he built his first websites with Netscape Communicator. After earning a diploma in computer science and working at digital agencies, he built a React Server Components bundler and library, paving the way to his role on the Next.js team. Outside of work, he enjoys cycling and tinkering in his workshop. + + Shortly after being introduced to AutoHotkey, Jack had written scripts to automate everything he could think of. When reaching limitations there, he dove headfirst into web app development and hasn't looked back. Most recently, Jack worked on the web platform at Instagram before moving to React. His favorite programming language is JSX. @@ -38,6 +42,10 @@ Current members of the React team are listed in alphabetical order below. Joe was planning to major in math and philosophy but got into computer science after writing physics simulations in Matlab. Prior to React, he worked on Relay, RSocket.js, and the Skip programming language. While he’s not building some sort of reactive system he enjoys running, studying Japanese, and spending time with his family. + + Jordan started coding by building iPhone apps, where he was pushing and popping view controllers before he knew that for-loops were a thing. He enjoys working on technology that developers love, which naturally drew him to React. Outside of work he enjoys reading, kiteboarding, and playing guitar. + + Josh majored in Mathematics and discovered programming while in college. His first professional developer job was to program insurance rate calculations in Microsoft Excel, the paragon of Reactive Programming which must be why he now works on React. In between that time Josh has been an IC, Manager, and Executive at a few startups. outside of work he likes to push his limits with cooking. @@ -46,20 +54,20 @@ Current members of the React team are listed in alphabetical order below. Lauren's programming career peaked when she first discovered the `` tag. She’s been chasing that high ever since. She studied Finance instead of CS in college, so she learned to code using Excel. Lauren enjoys dropping cheeky memes in chat, playing video games with her partner, learning Korean, and petting her dog Zelda. - - Luna first learnt the fundamentals of python at the age of 6 from her father. Since then, she has been unstoppable. Luna aspires to be a gen z, and the road to success is paved with environmental advocacy, urban gardening and lots of quality time with her Voo-Doo’d (as pictured). - - Matt stumbled into coding, and since then, has become enamored with creating things in communities that can’t be created alone. Prior to React, he worked on YouTube, the Google Assistant, Fuchsia, and Google Cloud AI and Evernote. When he's not trying to make better developer tools he enjoys the mountains, jazz, and spending time with his family. + + Mike went to grad school dreaming of becoming a professor but realized that he liked building things a lot more than writing grant applications. Mike joined Meta to work on Javascript infrastructure, which ultimately led him to work on the React Compiler. When not hacking on either Javascript or OCaml, Mike can often be found hiking or skiing in the Pacific Northwest. + + Mofei started programming when she realized it can help her cheat in video games. She focused on operating systems in undergrad / grad school, but now finds herself happily tinkering on React. Outside of work, she enjoys debugging bouldering problems and planning her next backpacking trip(s). - - Noah’s interest in UI programming sparked during his education in music technology at NYU. At Meta, he's worked on internal tools, browsers, web performance, and is currently focused on React. Outside of work, Noah can be found tinkering with synthesizers or spending time with his cat. + + Pieter studied building science but after failing to get a job he made himself a website and things escalated from there. At Meta, he enjoys working on performance, languages and now React. When he's not programming you can find him off-road in the mountains. @@ -70,10 +78,6 @@ Current members of the React team are listed in alphabetical order below. Ruslan's introduction to UI programming started when he was a kid by manually editing HTML templates for his custom gaming forums. Somehow, he ended up majoring in Computer Science. He enjoys music, games, and memes. Mostly memes. - - Sathya hated the Dragon Book in school but somehow ended up working on compilers all his career. When he's not compiling React components, he's either drinking coffee or eating yet another Dosa. - - Sebastian majored in psychology. He's usually quiet. Even when he says something, it often doesn't make sense to the rest of us until a few months later. The correct way to pronounce his surname is "mark-boa-geh" but he settled for "mark-beige" out of pragmatism -- and that's how he approaches React. @@ -90,10 +94,6 @@ Current members of the React team are listed in alphabetical order below. Four days after React was released, Sophie rewrote the entirety of her then-current project to use it, which she now realizes was perhaps a bit reckless. After she became the project's #1 committer, she wondered why she wasn't getting paid by Facebook like everyone else was and joined the team officially to lead React through its adolescent years. Though she quit that job years ago, somehow she's still in the team's group chats and “providing value”. - - Tianyu’s interest in computers started as a kid because he loves video games. So he majored in computer science and still plays childish games like League of Legends. When he is not in front of a computer, he enjoys playing with his two kittens, hiking and kayaking. - - Yuzhi studied Computer Science in school. She liked the instant gratification of seeing code come to life without having to physically be in a laboratory. Now she’s a manager in the React org. Before management, she used to work on the Relay data fetching framework. In her spare time, Yuzhi enjoys optimizing her life via gardening and home improvement projects. diff --git a/src/content/learn/add-react-to-an-existing-project.md b/src/content/learn/add-react-to-an-existing-project.md index 4904ea042..ed6a90070 100644 --- a/src/content/learn/add-react-to-an-existing-project.md +++ b/src/content/learn/add-react-to-an-existing-project.md @@ -85,7 +85,7 @@ root.render(

Hello, world

); -पहली बार एक मौजूदा परियोजना में एक मॉड्यूलर जावास्क्रिप्ट वातावरण को एकीकृत करना डराने वाला महसूस कर सकता है, लेकिन यह इसके लायक है!यदि आप अटक जाते हैं, तो हमारे [सामुदायिक संसाधन](/community) या [vite चैट](https://chat.vitejs.dev/) का प्रयास करें। +पहली बार एक मौजूदा परियोजना में एक मॉड्यूलर जावास्क्रिप्ट वातावरण को एकीकृत करना डराने वाला महसूस कर सकता है, लेकिन यह इसके लायक है!यदि आप अटक जाते हैं, तो हमारे [सामुदायिक संसाधन](/community) या [Vite चैट](https://chat.vitejs.dev/) का प्रयास करें। diff --git a/src/content/learn/start-a-new-react-project.md b/src/content/learn/start-a-new-react-project.md index ec53d2144..072740174 100644 --- a/src/content/learn/start-a-new-react-project.md +++ b/src/content/learn/start-a-new-react-project.md @@ -1,141 +1,95 @@ --- -title: एक नया React प्रोजेक्ट शुरू करें +title: नया React प्रोजेक्ट शुरू करें --- -यदि आप पूरी तरह से React का उपयोग करके एक नया ऐप या नई वेबसाइट बनाना चाहते हैं, तो हम समुदाय में लोकप्रिय React पर आधारित फ्रेमवर्क में से किसी एक को चुनने की सलाह देते हैं। +अगर आप पूरी तरह से React के साथ एक नया ऐप या वेबसाइट बनाना चाहते हैं, तो हम समुदाय में लोकप्रिय React-समर्थित फ्रेमवर्क में से एक चुनने की सलाह देते हैं। फ्रेमवर्क वे सुविधाएँ प्रदान करते हैं जिनकी ज्यादातर ऐप्स और साइट्स को अंततः आवश्यकता होती है, जैसे कि रूटिंग, डेटा फ़ेचिंग, और HTML जनरेशन। + -आप React को बिना किसी फ्रेमवर्क के उपयोग कर सकते हैं, लेकिन हमने पाया है कि अधिकांश ऐप्स और वेबसाइट्स अंततः सामान्य समस्याओं जैसे कोड-स्प्लिटिंग, रूटिंग, डेटा फेचिंग, और HTML जनरेट करने के समाधान विकसित करती हैं। ये समस्याएँ केवल React तक सीमित नहीं हैं, बल्कि सभी UI लाइब्रेरीज़ में सामान्य हैं। +**स्थानीय विकास के लिए आपको [Node.js](https://nodejs.org/en/) इंस्टॉल करना होगा।** आप उत्पादन (production) में भी Node.js का उपयोग कर सकते हैं, लेकिन यह आवश्यक नहीं है। कई React फ्रेमवर्क एक स्टैटिक HTML/CSS/JS फ़ोल्डर में एक्सपोर्ट का समर्थन करते हैं। -किसी फ्रेमवर्क के साथ शुरुआत करके, आप React के साथ जल्दी शुरुआत कर सकते हैं और बाद में अपना खुद का फ्रेमवर्क बनाने से बच सकते हैं। + - - -#### क्या मैं React को बिना किसी फ्रेमवर्क के उपयोग कर सकता हूँ? {/*can-i-use-react-without-a-framework*/} - -आप निश्चित रूप से React को बिना किसी फ्रेमवर्क के उपयोग कर सकते हैं—यही तरीका है जिससे आप अपने पेज के किसी हिस्से में [React का उपयोग कर सकते हैं।](/learn/add-react-to-an-existing-project#using-react-for-a-part-of-your-existing-page) **हालांकि, यदि आप पूरी तरह से React का उपयोग करके एक नया ऐप या वेबसाइट बना रहे हैं, तो हम किसी फ्रेमवर्क का उपयोग करने की सिफारिश करते हैं।** - -कारण यह हैं: - -भले ही आपको शुरुआत में रूटिंग या डेटा फेचिंग की आवश्यकता न हो, लेकिन समय के साथ आप इनके लिए कुछ लाइब्रेरीज़ जोड़ना चाहेंगे। जैसे-जैसे आपके जावास्क्रिप्ट बंडल का आकार हर नई सुविधा के साथ बढ़ेगा, आपको हर रूट के लिए कोड को अलग-अलग विभाजित करने के तरीके खोजने पड़ सकते हैं। - -जैसे-जैसे आपके डेटा फेचिंग की ज़रूरतें जटिल होंगी, आपको क्लाइंट और सर्वर के बीच नेटवर्क की देरी (waterfalls) का सामना करना पड़ सकता है, जिससे आपका ऐप धीमा महसूस हो सकता है। और जब आपका ऑडियंस कमजोर नेटवर्क और लो-एंड डिवाइस का उपयोग करता है, तो आपको अपने कॉम्पोनेंट्स से HTML जेनरेट करके कंटेंट पहले से डिस्प्ले करना पड़ सकता है—या तो सर्वर पर या बिल्ड समय के दौरान। +## प्रोडक्शन-ग्रेड React फ्रेमवर्क {/*production-grade-react-frameworks*/} -अपनी सेटअप को बदलकर सर्वर पर या बिल्ड समय पर कुछ कोड चलाना बहुत चुनौतीपूर्ण हो सकता है। +### Next.js {/*nextjs*/} -**ये समस्याएँ React तक सीमित नहीं हैं। इसी कारण से Svelte के पास SvelteKit है, Vue के पास Nuxt है.** इन समस्याओं को स्वयं हल करने के लिए, आपको अपने बंडलर को अपने राउटर और डेटा फेचिंग लाइब्रेरी के साथ एकीकृत करना होगा। शुरूआती सेटअप बनाना आसान हो सकता है, लेकिन एक ऐसा ऐप बनाना जो समय के साथ तेजी से लोड हो, इसमें कई सूक्ष्मताएँ शामिल हैं। - -आपको ऐप का न्यूनतम कोड भेजने की आवश्यकता होगी, लेकिन इसे एक ही क्लाइंट–सर्वर राउंडट्रिप में और पेज के डेटा के साथ समानांतर में करना होगा। -आप चाहेंगे कि पेज आपके जावास्क्रिप्ट कोड के चलने से पहले इंटरैक्टिव हो, ताकि प्रोग्रेसिव एन्हांसमेंट को सपोर्ट किया जा सके। -आप शायद अपनी मार्केटिंग पेज के लिए पूरी तरह से स्थिर HTML फाइलें जनरेट करना चाहेंगे, जिन्हें कहीं भी होस्ट किया जा सके और जो जावास्क्रिप्ट डिसेबल होने पर भी काम करें। -इन क्षमताओं का निर्माण अपने आप में एक वास्तविक प्रयास की आवश्यकता होती है। - -**React फ्रेमवर्क इन समस्याओं का समाधान स्वतः रूप से करते हैं।** वे आपको बहुत सरलता से शुरुआत करने देते हैं और आपकी ज़रूरतों के अनुसार आपके ऐप को स्केल करने देते हैं। प्रत्येक React फ्रेमवर्क का अपना समुदाय होता है, जिससे प्रश्नों के उत्तर खोजना और टूलिंग को अपग्रेड करना आसान हो जाता है। -फ्रेमवर्क आपके कोड को संरचना प्रदान करते हैं, जिससे आप और अन्य डेवलपर्स विभिन्न प्रोजेक्ट्स के बीच संदर्भ और कौशल बनाए रख सकते हैं। -वहीं, कस्टम सेटअप के साथ आप असमर्थित डिपेंडेंसी वर्ज़न पर अटक सकते हैं और अंततः अपना खुद का फ्रेमवर्क बना सकते हैं—जो न तो किसी समुदाय के साथ होगा और न ही अपग्रेड पथ के साथ। - -अगर आपके ऐप की कुछ असामान्य आवश्यकताएँ हैं जो इन फ्रेमवर्क द्वारा हल नहीं की जा सकतीं, या आप स्वयं इन समस्याओं को हल करना पसंद करते हैं, तो आप React के साथ अपना कस्टम सेटअप बना सकते हैं। इसके लिए `react` और `react-dom` npm से डाउनलोड करें, और [Vite](https://vitejs.dev/) या [Parcel](https://parceljs.org/), जैसे बंडलर के साथ अपना कस्टम बिल्ड प्रोसेस सेटअप करें। रूटिंग, स्टैटिक जनरेशन, या सर्वर-साइड रेंडरिंग जैसी आवश्यकताओं के लिए ज़रूरत के अनुसार अन्य टूल्स जोड़ें। - - - -## प्रोडक्शन-ग्रेड React फ्रेमवर्क्स {/*production-grade-react-frameworks*/} - -ये फ्रेमवर्क्स उन सभी सुविधाओं का समर्थन करते हैं जिनकी आपको अपने ऐप को प्रोडक्शन में तैनात और स्केल करने की आवश्यकता है और यह हमारे [फुल-स्टैक आर्किटेक्चर विजन](#which-features-make-up-the-react-teams-full-stack-architecture-vision). का समर्थन करने की दिशा में काम कर रहे हैं। हम जिन फ्रेमवर्क्स की सिफारिश करते हैं, वे सभी ओपन सोर्स हैं जिनके सक्रिय समुदाय हैं, और इन्हें आपके अपने सर्वर या किसी होस्टिंग प्रोवाइडर पर तैनात किया जा सकता है। यदि आप एक फ्रेमवर्क लेखक हैं और इस सूची में शामिल होने में रुचि रखते हैं, तो [कृपया हमें बताएं।](https://github.com/reactjs/react.dev/issues/new?assignees=&labels=type%3A+framework&projects=&template=3-framework.yml&title=%5BFramework%5D%3A+). - -### Next.js {/*nextjs-pages-router*/} - -**[Next.js' पेजेस राउटर](https://nextjs.org/) एक फुल-स्टैक React फ्रेमवर्क है।** यह बहुपरकारी है और आपको किसी भी आकार के React ऐप्स बनाने की अनुमति देता है-- एक मुख्यतः स्थिर ब्लॉग से लेकर एक जटिल डायनामिक एप्लिकेशन तक। नया Next.js प्रोजेक्ट बनाने के लिए, अपने टर्मिनल में यह कमांड चलाएं: +**[Next.js](https://nextjs.org/) एक फुल-स्टैक React फ्रेमवर्क है।** यह बहुपयोगी है और आपको किसी भी आकार के React ऐप्स बनाने की सुविधा देता है—एक ज्यादातर स्टैटिक ब्लॉग से लेकर एक जटिल डायनामिक एप्लिकेशन तक। एक नया Next.js प्रोजेक्ट बनाने के लिए, अपने टर्मिनल में चलाएँ: npx create-next-app@latest -अगर आप Next.js में नए हैं, तो [learn Next.js कोर्स को देखें।](https://nextjs.org/learn) +अगर आप Next.js में नए हैं, तो [Next.js कोर्स](https://nextjs.org/learn) देखें। -Next.js को [Vercel](https://vercel.com/) द्वारा मेंटेन किया जाता है। आप [ Next.js ऐप](https://nextjs.org/docs/app/building-your-application/deploying) को किसी भी Node.js या सर्वरलेस होस्टिंग पर या अपने सर्वर पर तैनात कर सकते हैं। Next.js एक [स्टैटिक एक्सपोर्ट](https://nextjs.org/docs/pages/building-your-application/deploying/static-exports) भी समर्थन करता है, जिसके लिए सर्वर की आवश्यकता नहीं होती। +Next.js को [Vercel](https://vercel.com/) द्वारा मेंटेन किया जाता है। आप [Next.js ऐप को होस्ट कर सकते हैं](https://nextjs.org/docs/app/building-your-application/deploying) किसी भी Node.js या सर्वरलेस होस्टिंग पर, या अपने स्वयं के सर्वर पर। Next.js एक [स्टैटिक एक्सपोर्ट](https://nextjs.org/docs/pages/building-your-application/deploying/static-exports) भी सपोर्ट करता है, जो सर्वर की आवश्यकता नहीं रखता। ### Remix {/*remix*/} -**[Remix](https://remix.run/) एक फुल-स्टैक React फ्रेमवर्क है जिसमें नेस्टेड राउटिंग है।** यह आपको आपके ऐप को नेस्टेड हिस्सों में विभाजित करने की अनुमति देता है जो समानांतर में डेटा लोड कर सकते हैं और उपयोगकर्ता क्रियाओं के जवाब में रिफ्रेश हो सकते हैं। नया Remix प्रोजेक्ट बनाने के लिए, यह कमांड चलाएं: +**[Remix](https://remix.run/) एक फुल-स्टैक React फ्रेमवर्क है जिसमें नेस्टेड रूटिंग होती है।** यह आपको अपने ऐप को नेस्टेड हिस्सों में विभाजित करने की सुविधा देता है, जो डेटा को समानांतर में लोड कर सकते हैं और उपयोगकर्ता क्रियाओं के जवाब में रीफ्रेश हो सकते हैं। नया Remix प्रोजेक्ट बनाने के लिए चलाएँ: npx create-remix -अगर आप Remix में नए हैं, तो Remix के [ब्लॉग ट्यूटोरियल ](https://remix.run/docs/en/main/tutorials/blog) (संक्षिप्त) और [ऐप ट्यूटोरियल](https://remix.run/docs/en/main/tutorials/jokes) (सम्पूर्ण) को देखें। +अगर आप Remix में नए हैं, तो [ब्लॉग ट्यूटोरियल](https://remix.run/docs/en/main/tutorials/blog) (छोटा) और [ऐप ट्यूटोरियल](https://remix.run/docs/en/main/tutorials/jokes) (लंबा) देखें। -Remix को [Shopify](https://www.shopify.com/) द्वारा मेंटेन किया जाता है। जब आप एक Remix प्रोजेक्ट बनाते हैं, तो आपको अपना [डिप्लॉयमेंट टारगेट](https://remix.run/docs/en/main/guides/deployment) चुनना होता है। आप Remix ऐप को किसी भी Node.js या सर्वरलेस होस्टिंग पर तैनात कर सकते हैं, इसके लिए [एडेप्टर](https://remix.run/docs/en/main/other-api/adapter) का उपयोग करके या उसे लिखकर। +Remix को [Shopify](https://www.shopify.com/) द्वारा मेंटेन किया जाता है। जब आप एक Remix प्रोजेक्ट बनाते हैं, तो आपको एक [डिप्लॉयमेंट टार्गेट चुनना होगा](https://remix.run/docs/en/main/guides/deployment)। आप एक [एडॉप्टर](https://remix.run/docs/en/main/other-api/adapter) का उपयोग करके इसे किसी भी Node.js या सर्वरलेस होस्टिंग पर होस्ट कर सकते हैं। ### Gatsby {/*gatsby*/} -**[Gatsby](https://www.gatsbyjs.com/) एक React फ्रेमवर्क है जो तेज़ CMS-बैक्ड वेबसाइट्स के लिए है।** इसका समृद्ध प्लगइन पारिस्थितिकी तंत्र और इसका GraphQL डेटा लेयर कंटेंट, APIs, और सेवाओं को एक वेबसाइट में एकीकृत करना सरल बनाते हैं। नया Gatsby प्रोजेक्ट बनाने के लिए, यह कमांड चलाएं: +**[Gatsby](https://www.gatsbyjs.com/) एक React फ्रेमवर्क है जो तेज़ CMS-बेस्ड वेबसाइट्स बनाने के लिए उपयुक्त है।** इसका समृद्ध प्लगइन इकोसिस्टम और GraphQL डेटा लेयर सामग्री, API और सेवाओं को एक वेबसाइट में जोड़ना आसान बनाता है। नया Gatsby प्रोजेक्ट बनाने के लिए चलाएँ: npx create-gatsby -अगर आप Gatsby में नए हैं, तो [Gatsby ट्यूटोरियल देखें।](https://www.gatsbyjs.com/docs/tutorial/) +अगर आप Gatsby में नए हैं, तो [Gatsby ट्यूटोरियल](https://www.gatsbyjs.com/docs/tutorial/) देखें। -Gatsby को [Netlify](https://www.netlify.com/) द्वारा मेंटेन किया जाता है। आप किसी भी स्टैटिक होस्टिंग पर [पूर्ण रूप से स्टैटिक Gatsby साइट](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting) तैनात कर सकते हैं। यदि आप केवल सर्वर-विशेष सुविधाओं का उपयोग करते हैं, तो सुनिश्चित करें कि आपका होस्टिंग प्रोवाइडर उन सुविधाओं का समर्थन करता हो। +Gatsby को [Netlify](https://www.netlify.com/) द्वारा मेंटेन किया जाता है। आप [Gatsby साइट को पूरी तरह से स्टैटिक रूप में होस्ट कर सकते हैं](https://www.gatsbyjs.com/docs/how-to/previews-deploys-hosting)। अगर आप सर्वर-साइड सुविधाओं का उपयोग करना चाहते हैं, तो सुनिश्चित करें कि आपका होस्टिंग प्रदाता उन्हें सपोर्ट करता है। ### Expo (नेटिव ऐप्स के लिए) {/*expo*/} -**[Expo](https://expo.dev/) एक React फ्रेमवर्क है जो आपको यूनिवर्सल Android, iOS, और वेब ऐप्स बनाने की अनुमति देता है, जिनमें सच्ची नेटिव UI होती है।** यह [React Native](https://reactnative.dev/) के लिए एक SDK प्रदान करता है जो नेटिव हिस्सों का उपयोग करना आसान बनाता है। नया Expo प्रोजेक्ट बनाने के लिए, यह कमांड चलाएं: +**[Expo](https://expo.dev/) एक React फ्रेमवर्क है जो आपको Android, iOS और वेब के लिए यूनिवर्सल ऐप्स बनाने की सुविधा देता है।** यह [React Native](https://reactnative.dev/) के लिए एक SDK प्रदान करता है जो नेटिव भागों को उपयोग में आसान बनाता है। नया Expo प्रोजेक्ट बनाने के लिए चलाएँ: npx create-expo-app -अगर आप Expo में नए हैं, तो [Expo ट्यूटोरियल देखें।](https://docs.expo.dev/tutorial/introduction/) - -Expo को [Expo (कंपनी)](https://expo.dev/about) द्वारा मेंटेन किया जाता है। Expo के साथ ऐप्स बनाना मुफ्त है, और आप इन्हें बिना किसी प्रतिबंध के Google और Apple ऐप स्टोर्स में सबमिट कर सकते हैं। Expo अतिरिक्त रूप से ऑप्ट-इन भुगतान वाले क्लाउड सेवाएँ प्रदान करता है। +अगर आप Expo में नए हैं, तो [Expo ट्यूटोरियल](https://docs.expo.dev/tutorial/introduction/) देखें। -## ब्लीडिंग-एज React फ्रेमवर्क्स {/*bleeding-edge-react-frameworks*/} +Expo को [Expo (कंपनी)](https://expo.dev/about) द्वारा मेंटेन किया जाता है। Expo के साथ ऐप्स बनाना मुफ़्त है, और आप उन्हें Google और Apple ऐप स्टोर में जमा कर सकते हैं। -जैसा कि हम React को बेहतर बनाने के तरीकों की खोज कर रहे हैं, हमें यह एहसास हुआ कि React को फ्रेमवर्क्स के साथ (विशेष रूप से राउटिंग, बंडलिंग, और सर्वर तकनीकों के साथ) अधिक करीब से एकीकृत करना हमारे लिए React उपयोगकर्ताओं को बेहतर ऐप्स बनाने में मदद करने का सबसे बड़ा अवसर है। Next.js टीम ने हमारे साथ मिलकर, फ्रेमवर्क-agnostic ब्लीडिंग-एज React फीचर्स जैसे [React Server Components](/blog/2023/03/22/react-labs-what-we-have-been-working-on-march-2023#react-server-components) पर रिसर्च, डेवलपमेंट, एकीकरण और परीक्षण में सहयोग करने पर सहमति जताई है। - -ये फीचर्स हर दिन प्रोडक्शन-तैयार होने के करीब आ रहे हैं, और हम अन्य बंडलर और फ्रेमवर्क डेवलपर्स के साथ इनका एकीकरण करने पर बात कर रहे हैं। हमारी उम्मीद है कि एक या दो साल में, इस पृष्ठ पर सूचीबद्ध सभी फ्रेमवर्क्स इन फीचर्स के लिए पूर्ण समर्थन प्रदान करेंगे। (यदि आप एक फ्रेमवर्क लेखक हैं जो इन फीचर्स के साथ प्रयोग करने के लिए हमारे साथ साझेदारी करने में रुचि रखते हैं, तो कृपया हमें बताएं!) + -### Next.js (ऐप राउटर) {/*nextjs-app-router*/} +#### क्या मैं React बिना किसी फ्रेमवर्क के उपयोग कर सकता हूँ? {/*can-i-use-react-without-a-framework*/} -**[Next.js का ऐप राउटर ](https://nextjs.org/docs) Next.js APIs का एक नया डिज़ाइन है, जिसका उद्देश्य React टीम की फुल-स्टैक आर्किटेक्चर विजन को पूरा करना है।** यह आपको सर्वर पर या यहां तक कि बिल्ड के दौरान चलने वाले असिंक्रोनस कंपोनेंट्स में डेटा को लाने की अनुमति देता है। +बिलकुल! आप React को किसी फ्रेमवर्क के बिना भी उपयोग कर सकते हैं। हालांकि, यदि आप पूरी तरह से React का उपयोग करके एक नई साइट या ऐप बना रहे हैं, तो हम एक फ्रेमवर्क का उपयोग करने की सलाह देते हैं। -Next.js को [Vercel](https://vercel.com/) द्वारा मेंटेन किया जाता है। आप [Next.js ऐप](https://nextjs.org/docs/app/building-your-application/deploying) को किसी भी Node.js या सर्वरलेस होस्टिंग पर या अपने खुद के सर्वर पर डिप्लॉय कर सकते हैं। Next.js [स्टैटिक एक्सपोर्ट](https://nextjs.org/docs/app/building-your-application/deploying/static-exports) भी सपोर्ट करता है, जो सर्वर की आवश्यकता +React फ्रेमवर्क वे समस्याएँ हल करते हैं जो बड़े होते ऐप्स में आमतौर पर आती हैं, जैसे कि कोड-स्प्लिटिंग, सर्वर-साइड डेटा फ़ेचिंग, और SEO के लिए HTML जनरेशन। - + -#### कौन सी विशेषताएँ React टीम के फुल-स्टैक आर्किटेक्चर दृष्टिकोण का हिस्सा हैं? {/*which-features-make-up-the-react-teams-full-stack-architecture-vision*/} +## उभरते हुए React फ्रेमवर्क {/*bleeding-edge-react-frameworks*/} -Next.js का App Router bundler आधिकारिक [React सर्वर कंपोनेंट्स विनिर्देश](https://github.com/reactjs/rfcs/blob/main/text/0188-server-components.md) को पूरी तरह से लागू करता है। इससे आप एक ही React ट्री में बिल्ड-टाइम, सर्वर-केवल, और इंटरएक्टिव कंपोनेंट्स को मिला सकते हैं। +React टीम ने यह महसूस किया कि फ्रेमवर्क्स के साथ React को अधिक गहराई से एकीकृत करना, विशेष रूप से रूटिंग, बंडलिंग और सर्वर टेक्नोलॉजीज़ के संदर्भ में, React उपयोगकर्ताओं के लिए बेहतरीन ऐप्स बनाना आसान बना सकता है। -उदाहरण के लिए, आप एक सर्वर-केवल React कंपोनेंट लिख सकते हैं जो एक `async` फ़ंक्शन के रूप में होता है, जो डेटाबेस या फ़ाइल से पढ़ता है। फिर आप इसे से डेटा को अपने इंटरएक्टिव कंपोनेंट्स तक भेज सकते हैं। +### Next.js (App Router) {/*nextjs-app-router*/} -```js -// This component runs *only* on the server (or during the build). -async function Talks({ confId }) { - // 1. You're on the server, so you can talk to your data layer. API endpoint not required. - const talks = await db.Talks.findAll({ confId }); +**[Next.js का App Router](https://nextjs.org/docs) Next.js API का एक नया डिज़ाइन है, जो React टीम के फुल-स्टैक आर्किटेक्चर दृष्टिकोण को पूरा करने के लिए बनाया गया है।** यह आपको असिंक्रोनस कंपोनेंट्स का उपयोग करके डेटा फ़ेच करने की अनुमति देता है, जो सर्वर पर या बिल्ड के दौरान चलते हैं। - // 2. Add any amount of rendering logic. It won't make your JavaScript bundle larger. - const videos = talks.map(talk => talk.video); +Next.js को [Vercel](https://vercel.com/) द्वारा मेंटेन किया जाता है। - // 3. Pass the data down to the components that will run in the browser. - return ; -} -``` + -Next.js का App Router [डेटा फ़ेचिंग को सस्पेंस के साथ](/blog/2022/03/29/react-v18#suspense-in-data-frameworks) भी इंटीग्रेट करता है। इससे आप अपने उपयोगकर्ता इंटरफ़ेस के विभिन्न भागों के लिए लोडिंग स्टेट (जैसे कि एक स्केलेटन प्लेसहोल्डर) को सीधे अपने React ट्री में निर्दिष्ट कर सकते हैं। +#### React टीम का फुल-स्टैक आर्किटेक्चर दृष्टिकोण क्या है? {/*which-features-make-up-the-react-teams-full-stack-architecture-vision*/} -```js -}> - - -``` +Next.js का App Router आधिकारिक [React Server Components स्पेसिफिकेशन](https://github.com/reactjs/rfcs/blob/main/text/0188-server-components.md) को पूरी तरह से लागू करता है। -सर्वर कंपोनेंट्स और सस्पेंस React की विशेषताएँ हैं, न कि Next.js की। हालांकि, इन्हें फ्रेमवर्क स्तर पर अपनाने के लिए सहमति और महत्वपूर्ण कार्यान्वयन की आवश्यकता होती है। इस समय, Next.js App Router सबसे पूरी तरह से लागू की गई कार्यान्वयन है। React टीम इन सुविधाओं को अगली पीढ़ी के फ्रेमवर्क्स में लागू करना आसान बनाने के लिए बंडलर डेवलपर्स के साथ काम कर रही है। +यह डेटा फ़ेचिंग और Suspense को एकीकृत करता है, जिससे UI के विभिन्न हिस्सों को लोडिंग स्टेट (जैसे कि स्केलेटन प्लेसहोल्डर) के साथ दिखाना आसान हो जाता है। diff --git a/src/content/reference/react-dom/static/prerender.md b/src/content/reference/react-dom/static/prerender.md index 198faea64..6450e4a34 100644 --- a/src/content/reference/react-dom/static/prerender.md +++ b/src/content/reference/react-dom/static/prerender.md @@ -230,7 +230,7 @@ async function renderToString() { bootstrapScripts: ['/main.js'] }); - const reader = stream.getReader(); + const reader = prelude.getReader(); let content = ''; while (true) { const {done, value} = await reader.read(); @@ -291,7 +291,7 @@ Suspense-enabled data fetching without the use of an opinionated framework is no ### My stream doesn't start until the entire app is rendered {/*my-stream-doesnt-start-until-the-entire-app-is-rendered*/} -The `prerender` response waits for the entire app to finish rendering, including waiting for all suspense boundaries to resolve, before resolving. It is designed for static site generation (SSG) ahead of time and does not support streaming more content as it loads. +The `prerender` response waits for the entire app to finish rendering, including waiting for all Suspense boundaries to resolve, before resolving. It is designed for static site generation (SSG) ahead of time and does not support streaming more content as it loads. To stream content as it loads, use a streaming server render API like [renderToReadableStream](/reference/react-dom/server/renderToReadableStream). \ No newline at end of file diff --git a/src/content/reference/react-dom/static/prerenderToNodeStream.md b/src/content/reference/react-dom/static/prerenderToNodeStream.md index 039987497..eb12f4b38 100644 --- a/src/content/reference/react-dom/static/prerenderToNodeStream.md +++ b/src/content/reference/react-dom/static/prerenderToNodeStream.md @@ -289,7 +289,7 @@ Suspense-enabled data fetching without the use of an opinionated framework is no ### My stream doesn't start until the entire app is rendered {/*my-stream-doesnt-start-until-the-entire-app-is-rendered*/} -The `prerenderToNodeStream` response waits for the entire app to finish rendering, including waiting for all suspense boundaries to resolve, before resolving. It is designed for static site generation (SSG) ahead of time and does not support streaming more content as it loads. +The `prerenderToNodeStream` response waits for the entire app to finish rendering, including waiting for all Suspense boundaries to resolve, before resolving. It is designed for static site generation (SSG) ahead of time and does not support streaming more content as it loads. To stream content as it loads, use a streaming server render API like [renderToPipeableStream](/reference/react-dom/server/renderToPipeableStream). diff --git a/src/content/reference/react/useEffect.md b/src/content/reference/react/useEffect.md index bf148339b..ba183d3aa 100644 --- a/src/content/reference/react/useEffect.md +++ b/src/content/reference/react/useEffect.md @@ -23,7 +23,7 @@ useEffect(setup, dependencies?) Call `useEffect` at the top level of your component to declare an Effect: ```js -import { useEffect } from 'react'; +import { useState, useEffect } from 'react'; import { createConnection } from './chat.js'; function ChatRoom({ roomId }) { @@ -81,7 +81,7 @@ Some components need to stay connected to the network, some browser API, or a th To [connect your component to some external system,](/learn/synchronizing-with-effects) call `useEffect` at the top level of your component: ```js [[1, 8, "const connection = createConnection(serverUrl, roomId);"], [1, 9, "connection.connect();"], [2, 11, "connection.disconnect();"], [3, 13, "[serverUrl, roomId]"]] -import { useEffect } from 'react'; +import { useState, useEffect } from 'react'; import { createConnection } from './chat.js'; function ChatRoom({ roomId }) { diff --git a/yarn.lock b/yarn.lock index 7c9f52f42..a118cbeda 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,153 +2,148 @@ # yarn lockfile v1 -"@algolia/autocomplete-core@1.9.3": - 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== +"@algolia/autocomplete-core@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.17.9.tgz#83374c47dc72482aa45d6b953e89377047f0dcdc" + integrity sha512-O7BxrpLDPJWWHv/DLA9DRFWs+iY1uOJZkqUwjS5HSZAGcl0hIVCQ97LTLewiZmZ402JYUrun+8NqFP+hCknlbQ== + dependencies: + "@algolia/autocomplete-plugin-algolia-insights" "1.17.9" + "@algolia/autocomplete-shared" "1.17.9" + +"@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" + integrity sha512-u1fEHkCbWF92DBeB/KHeMacsjsoI0wFhjZtlCq2ddZbAehshbZST6Hs0Avkc0s+4UyBGbMDnSuXHLuvRWK5iDQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@algolia/autocomplete-preset-algolia@1.17.9": + version "1.17.9" + resolved "https://registry.yarnpkg.com/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.17.9.tgz#911f3250544eb8ea4096fcfb268f156b085321b5" + integrity sha512-Na1OuceSJeg8j7ZWn5ssMu/Ax3amtOwk76u4h5J4eK2Nx2KB5qt0Z4cOapCsxot9VcEN11ADV5aUSlQF4RhGjQ== + dependencies: + "@algolia/autocomplete-shared" "1.17.9" + +"@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" + integrity sha512-iDf05JDQ7I0b7JEA/9IektxN/80a2MZ1ToohfmNS3rfeuQnIKI3IJlIafD0xu4StbtQTghx9T3Maa97ytkXenQ== + +"@algolia/client-abtesting@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-abtesting/-/client-abtesting-5.20.0.tgz#984472e4ae911285a8e3be2b81c121108f87a179" + integrity sha512-YaEoNc1Xf2Yk6oCfXXkZ4+dIPLulCx8Ivqj0OsdkHWnsI3aOJChY5qsfyHhDBNSOhqn2ilgHWxSfyZrjxBcAww== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/client-analytics@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-analytics/-/client-analytics-5.20.0.tgz#25944c8c7bcc06a16ae3b26ddf86d0d18f984349" + integrity sha512-CIT9ni0+5sYwqehw+t5cesjho3ugKQjPVy/iPiJvtJX4g8Cdb6je6SPt2uX72cf2ISiXCAX9U3cY0nN0efnRDw== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/client-common@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-common/-/client-common-5.20.0.tgz#0b6b96c779d30afada68cf36f20f0c280e3f1273" + integrity sha512-iSTFT3IU8KNpbAHcBUJw2HUrPnMXeXLyGajmCL7gIzWOsYM4GabZDHXOFx93WGiXMti1dymz8k8R+bfHv1YZmA== + +"@algolia/client-insights@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-insights/-/client-insights-5.20.0.tgz#37b59043a86423dd283d05909faea06e4eff026b" + integrity sha512-w9RIojD45z1csvW1vZmAko82fqE/Dm+Ovsy2ElTsjFDB0HMAiLh2FO86hMHbEXDPz6GhHKgGNmBRiRP8dDPgJg== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/client-personalization@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-personalization/-/client-personalization-5.20.0.tgz#d10da6d798f9a5f6cf239c57b9a850deb29e5683" + integrity sha512-p/hftHhrbiHaEcxubYOzqVV4gUqYWLpTwK+nl2xN3eTrSW9SNuFlAvUBFqPXSVBqc6J5XL9dNKn3y8OA1KElSQ== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/client-query-suggestions@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-query-suggestions/-/client-query-suggestions-5.20.0.tgz#1d4f1d638f857fad202cee7feecd3ffc270d9c60" + integrity sha512-m4aAuis5vZi7P4gTfiEs6YPrk/9hNTESj3gEmGFgfJw3hO2ubdS4jSId1URd6dGdt0ax2QuapXufcrN58hPUcw== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/client-search@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/client-search/-/client-search-5.20.0.tgz#4b847bda4bef2eee8ba72ef3ce59be612319e8d0" + integrity sha512-KL1zWTzrlN4MSiaK1ea560iCA/UewMbS4ZsLQRPoDTWyrbDKVbztkPwwv764LAqgXk0fvkNZvJ3IelcK7DqhjQ== + dependencies: + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" + +"@algolia/ingestion@1.20.0": + version "1.20.0" + resolved "https://registry.yarnpkg.com/@algolia/ingestion/-/ingestion-1.20.0.tgz#b91849fe4a8efed21c048a0a69ad77934d2fc3fd" + integrity sha512-shj2lTdzl9un4XJblrgqg54DoK6JeKFO8K8qInMu4XhE2JuB8De6PUuXAQwiRigZupbI0xq8aM0LKdc9+qiLQA== dependencies: - "@algolia/autocomplete-plugin-algolia-insights" "1.9.3" - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" -"@algolia/autocomplete-plugin-algolia-insights@1.9.3": - 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== +"@algolia/monitoring@1.20.0": + version "1.20.0" + resolved "https://registry.yarnpkg.com/@algolia/monitoring/-/monitoring-1.20.0.tgz#5b3a7964b08a91b1c71466bf5adb8a1597e3134b" + integrity sha512-aF9blPwOhKtWvkjyyXh9P5peqmhCA1XxLBRgItT+K6pbT0q4hBDQrCid+pQZJYy4HFUKjB/NDDwyzFhj/rwKhw== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" -"@algolia/autocomplete-preset-algolia@1.9.3": - version "1.9.3" - resolved "https://registry.npmjs.org/@algolia/autocomplete-preset-algolia/-/autocomplete-preset-algolia-1.9.3.tgz" - integrity sha512-d4qlt6YmrLMYy95n5TB52wtNDr6EgAIPH81dvvvW8UmuWRgxEtY0NJiPwl/h95JtG2vmRM804M0DSwMCNZlzRA== +"@algolia/recommend@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/recommend/-/recommend-5.20.0.tgz#49f8f8d31f815b107c8ebd1c35220d90b22fd876" + integrity sha512-T6B/WPdZR3b89/F9Vvk6QCbt/wrLAtrGoL8z4qPXDFApQ8MuTFWbleN/4rHn6APWO3ps+BUePIEbue2rY5MlRw== dependencies: - "@algolia/autocomplete-shared" "1.9.3" + "@algolia/client-common" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" -"@algolia/autocomplete-shared@1.9.3": - version "1.9.3" - resolved "https://registry.npmjs.org/@algolia/autocomplete-shared/-/autocomplete-shared-1.9.3.tgz" - integrity sha512-Wnm9E4Ye6Rl6sTTqjoymD+l8DjSTHsHboVRYrKgEt8Q7UHm9nYbqhN/i0fhUYA3OAEH7WA8x3jfpnmJm3rKvaQ== - -"@algolia/cache-browser-local-storage@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.24.0.tgz" - integrity sha512-t63W9BnoXVrGy9iYHBgObNXqYXM3tYXCjDSHeNwnsc324r4o5UiVKUiAB4THQ5z9U5hTj6qUvwg/Ez43ZD85ww== - dependencies: - "@algolia/cache-common" "4.24.0" - -"@algolia/cache-common@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.24.0.tgz" - integrity sha512-emi+v+DmVLpMGhp0V9q9h5CdkURsNmFC+cOS6uK9ndeJm9J4TiqSvPYVu+THUP8P/S08rxf5x2P+p3CfID0Y4g== - -"@algolia/cache-in-memory@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.24.0.tgz" - integrity sha512-gDrt2so19jW26jY3/MkFg5mEypFIPbPoXsQGQWAi6TrCPsNOSEYepBMPlucqWigsmEy/prp5ug2jy/N3PVG/8w== - dependencies: - "@algolia/cache-common" "4.24.0" - -"@algolia/client-account@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.24.0.tgz" - integrity sha512-adcvyJ3KjPZFDybxlqnf+5KgxJtBjwTPTeyG2aOyoJvx0Y8dUQAEOEVOJ/GBxX0WWNbmaSrhDURMhc+QeevDsA== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-analytics@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.24.0.tgz" - integrity sha512-y8jOZt1OjwWU4N2qr8G4AxXAzaa8DBvyHTWlHzX/7Me1LX8OayfgHexqrsL4vSBcoMmVw2XnVW9MhL+Y2ZDJXg== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-common@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.24.0.tgz" - integrity sha512-bc2ROsNL6w6rqpl5jj/UywlIYC21TwSSoFHKl01lYirGMW+9Eek6r02Tocg4gZ8HAw3iBvu6XQiM3BEbmEMoiA== - dependencies: - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-personalization@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.24.0.tgz" - integrity sha512-l5FRFm/yngztweU0HdUzz1rC4yoWCFo3IF+dVIVTfEPg906eZg5BOd1k0K6rZx5JzyyoP4LdmOikfkfGsKVE9w== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/client-search@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz" - integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== - dependencies: - "@algolia/client-common" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/logger-common@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.24.0.tgz" - integrity sha512-LLUNjkahj9KtKYrQhFKCzMx0BY3RnNP4FEtO+sBybCjJ73E8jNdaKJ/Dd8A/VA4imVHP5tADZ8pn5B8Ga/wTMA== - -"@algolia/logger-console@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.24.0.tgz" - integrity sha512-X4C8IoHgHfiUROfoRCV+lzSy+LHMgkoEEU1BbKcsfnV0i0S20zyy0NLww9dwVHUWNfPPxdMU+/wKmLGYf96yTg== - dependencies: - "@algolia/logger-common" "4.24.0" - -"@algolia/recommend@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/recommend/-/recommend-4.24.0.tgz" - integrity sha512-P9kcgerfVBpfYHDfVZDvvdJv0lEoCvzNlOy2nykyt5bK8TyieYyiD0lguIJdRZZYGre03WIAFf14pgE+V+IBlw== - dependencies: - "@algolia/cache-browser-local-storage" "4.24.0" - "@algolia/cache-common" "4.24.0" - "@algolia/cache-in-memory" "4.24.0" - "@algolia/client-common" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/logger-console" "4.24.0" - "@algolia/requester-browser-xhr" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/requester-node-http" "4.24.0" - "@algolia/transporter" "4.24.0" - -"@algolia/requester-browser-xhr@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.24.0.tgz" - integrity sha512-Z2NxZMb6+nVXSjF13YpjYTdvV3032YTBSGm2vnYvYPA6mMxzM3v5rsCiSspndn9rzIW4Qp1lPHBvuoKJV6jnAA== - dependencies: - "@algolia/requester-common" "4.24.0" - -"@algolia/requester-common@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.24.0.tgz" - integrity sha512-k3CXJ2OVnvgE3HMwcojpvY6d9kgKMPRxs/kVohrwF5WMr2fnqojnycZkxPoEg+bXm8fi5BBfFmOqgYztRtHsQA== - -"@algolia/requester-node-http@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.24.0.tgz" - integrity sha512-JF18yTjNOVYvU/L3UosRcvbPMGT9B+/GQWNWnenIImglzNVGpyzChkXLnrSf6uxwVNO6ESGu6oN8MqcGQcjQJw== - dependencies: - "@algolia/requester-common" "4.24.0" - -"@algolia/transporter@4.24.0": - version "4.24.0" - resolved "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.24.0.tgz" - integrity sha512-86nI7w6NzWxd1Zp9q3413dRshDqAzSbsQjhcDhPIatEFiZrL1/TjnHL8S7jVKFePlIMzDsZWXAXwXzcok9c5oA== - dependencies: - "@algolia/cache-common" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/requester-common" "4.24.0" +"@algolia/requester-browser-xhr@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-browser-xhr/-/requester-browser-xhr-5.20.0.tgz#998fd5c1123fbc49b664c484c6b0cd7cefc6a1fa" + integrity sha512-t6//lXsq8E85JMenHrI6mhViipUT5riNhEfCcvtRsTV+KIBpC6Od18eK864dmBhoc5MubM0f+sGpKOqJIlBSCg== + dependencies: + "@algolia/client-common" "5.20.0" + +"@algolia/requester-fetch@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-fetch/-/requester-fetch-5.20.0.tgz#fed4f135f22c246ce40cf23c9d6518884be43e5e" + integrity sha512-FHxYGqRY+6bgjKsK4aUsTAg6xMs2S21elPe4Y50GB0Y041ihvw41Vlwy2QS6K9ldoftX4JvXodbKTcmuQxywdQ== + dependencies: + "@algolia/client-common" "5.20.0" + +"@algolia/requester-node-http@5.20.0": + version "5.20.0" + resolved "https://registry.yarnpkg.com/@algolia/requester-node-http/-/requester-node-http-5.20.0.tgz#920a9488be07c0521951da92f36be61f47c4d0e0" + integrity sha512-kmtQClq/w3vtPteDSPvaW9SPZL/xrIgMrxZyAgsFwrJk0vJxqyC5/hwHmrCraDnStnGSADnLpBf4SpZnwnkwWw== + dependencies: + "@algolia/client-common" "5.20.0" "@alloc/quick-lru@^5.2.0": version "5.2.0" @@ -895,20 +890,20 @@ resolved "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz" integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@docsearch/css@3.6.1", "@docsearch/css@^3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@docsearch/css/-/css-3.6.1.tgz" - integrity sha512-VtVb5DS+0hRIprU2CO6ZQjK2Zg4QU5HrDM1+ix6rT0umsYvFvatMAnf97NHZlVWDaaLlx7GRfR/7FikANiM2Fg== +"@docsearch/css@3.8.3", "@docsearch/css@^3.8.3": + version "3.8.3" + resolved "https://registry.yarnpkg.com/@docsearch/css/-/css-3.8.3.tgz#12f377cf8c14b687042273f920efdfdb794e9fcf" + integrity sha512-1nELpMV40JDLJ6rpVVFX48R1jsBFIQ6RnEQDsLFGmzOjPWTOMlZqUcXcvRx8VmYV/TqnS1l784Ofz+ZEb+wEOQ== -"@docsearch/react@^3.6.1": - version "3.6.1" - resolved "https://registry.npmjs.org/@docsearch/react/-/react-3.6.1.tgz" - integrity sha512-qXZkEPvybVhSXj0K7U3bXc233tk5e8PfhoZ6MhPOiik/qUQxYC+Dn9DnoS7CxHQQhHfCvTiN0eY9M12oRghEXw== +"@docsearch/react@^3.8.3": + version "3.8.3" + resolved "https://registry.yarnpkg.com/@docsearch/react/-/react-3.8.3.tgz#72f6bcbbda6cd07f23398af641e483c27d16e00a" + integrity sha512-6UNrg88K7lJWmuS6zFPL/xgL+n326qXqZ7Ybyy4E8P/6Rcblk3GE8RXxeol4Pd5pFpKMhOhBhzABKKwHtbJCIg== dependencies: - "@algolia/autocomplete-core" "1.9.3" - "@algolia/autocomplete-preset-algolia" "1.9.3" - "@docsearch/css" "3.6.1" - algoliasearch "^4.19.1" + "@algolia/autocomplete-core" "1.17.9" + "@algolia/autocomplete-preset-algolia" "1.17.9" + "@docsearch/css" "3.8.3" + algoliasearch "^5.14.2" "@emnapi/runtime@^1.2.0": version "1.3.1" @@ -1920,26 +1915,24 @@ ajv@^8.0.1: require-from-string "^2.0.2" uri-js "^4.2.2" -algoliasearch@^4.19.1: - version "4.24.0" - resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz" - integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== - dependencies: - "@algolia/cache-browser-local-storage" "4.24.0" - "@algolia/cache-common" "4.24.0" - "@algolia/cache-in-memory" "4.24.0" - "@algolia/client-account" "4.24.0" - "@algolia/client-analytics" "4.24.0" - "@algolia/client-common" "4.24.0" - "@algolia/client-personalization" "4.24.0" - "@algolia/client-search" "4.24.0" - "@algolia/logger-common" "4.24.0" - "@algolia/logger-console" "4.24.0" - "@algolia/recommend" "4.24.0" - "@algolia/requester-browser-xhr" "4.24.0" - "@algolia/requester-common" "4.24.0" - "@algolia/requester-node-http" "4.24.0" - "@algolia/transporter" "4.24.0" +algoliasearch@^5.14.2: + version "5.20.0" + resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-5.20.0.tgz#15f4eb6428f258d083d1cbc47d04a8d66eecba5f" + integrity sha512-groO71Fvi5SWpxjI9Ia+chy0QBwT61mg6yxJV27f5YFf+Mw+STT75K6SHySpP8Co5LsCrtsbCH5dJZSRtkSKaQ== + dependencies: + "@algolia/client-abtesting" "5.20.0" + "@algolia/client-analytics" "5.20.0" + "@algolia/client-common" "5.20.0" + "@algolia/client-insights" "5.20.0" + "@algolia/client-personalization" "5.20.0" + "@algolia/client-query-suggestions" "5.20.0" + "@algolia/client-search" "5.20.0" + "@algolia/ingestion" "1.20.0" + "@algolia/monitoring" "1.20.0" + "@algolia/recommend" "5.20.0" + "@algolia/requester-browser-xhr" "5.20.0" + "@algolia/requester-fetch" "5.20.0" + "@algolia/requester-node-http" "5.20.0" anser@^2.1.1: version "2.1.1"