From e2cf9326b11cd34cf0385cb14820e1c4fb0beb58 Mon Sep 17 00:00:00 2001
From: haml-707 <845831435@qq.com>
Date: Tue, 12 Jul 2022 20:09:29 +0800
Subject: [PATCH] =?UTF-8?q?feat:=E9=9A=90=E7=A7=81=E6=94=BF=E7=AD=96=20+?=
=?UTF-8?q?=20=E9=95=9C=E5=83=8F=E4=BB=93=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix:markdown 样式加载方式
---
app/.vitepress/src/App.vue | 14 +-
app/.vitepress/src/api/api-mirror.ts | 18 +
app/.vitepress/src/components/AppFooter.vue | 6 +-
app/.vitepress/src/shared/styles/index.scss | 1 +
.../src/shared/styles/markdown.scss | 132 +++++
app/.vitepress/src/views/TheDemo.vue | 5 +
.../views/security/SafetyBulletinDetail.vue | 28 ++
app/en/other/privacy/index.md | 101 ++++
app/ru/other/privacy/index.md | 65 +++
app/vite.config.js | 8 +
app/zh/other/privacy/index.md | 76 +++
.../security/safety-bulletin/detail/index.md | 5 +
opendesign/index.ts | 13 +-
opendesign/style/variable.scss | 8 +-
opendesign/tabs/OTabPane.vue | 11 +
opendesign/tabs/OTabs.vue | 27 +
opendesign/tabs/index.ts | 11 +
pnpm-lock.yaml | 476 ++++++++----------
18 files changed, 735 insertions(+), 270 deletions(-)
create mode 100644 app/.vitepress/src/api/api-mirror.ts
create mode 100644 app/.vitepress/src/shared/styles/markdown.scss
create mode 100644 app/.vitepress/src/views/security/SafetyBulletinDetail.vue
create mode 100644 app/en/other/privacy/index.md
create mode 100644 app/ru/other/privacy/index.md
create mode 100644 app/zh/other/privacy/index.md
create mode 100644 app/zh/security/safety-bulletin/detail/index.md
create mode 100644 opendesign/tabs/OTabPane.vue
create mode 100644 opendesign/tabs/OTabs.vue
create mode 100644 opendesign/tabs/index.ts
diff --git a/app/.vitepress/src/App.vue b/app/.vitepress/src/App.vue
index 9a4bf9dfc..9cc681a11 100644
--- a/app/.vitepress/src/App.vue
+++ b/app/.vitepress/src/App.vue
@@ -1,17 +1,27 @@
-
+
diff --git a/app/en/other/privacy/index.md b/app/en/other/privacy/index.md
new file mode 100644
index 000000000..d16f9f974
--- /dev/null
+++ b/app/en/other/privacy/index.md
@@ -0,0 +1,101 @@
+---
+title: "Privacy"
+doc: true
+---
+
+The openEuler Community ("Community") understands the importance of your privacy and fully respects it. **Please read this openEuler Community Privacy Statement ("Statement") carefully before you submit your personal data to us.** If you have any questions about how we process your personal data, please feel free to contact us. Unless otherwise specified, "we" and "us" in this Statement refers to the Community.
+
+## 1. How We Collect and Process Your Personal Data
+
+We generally do not require your personal data if you only browse the general content of the Community. We will collect your personal data accordingly in the following circumstances:
+
+(a) Mail Subscription. When you use our mail subscription service, we will collect your **email address and name (optional)**. We will provide you with the email subscription service through this email address to facilitate your participation in discussions in the Community.
+
+(b) Service Optimization. For the purpose of operating the Community and providing better services, we will deploy a trusted third-party plugin to collect information from your browser, computer, and mobile device, including but not limited to your **IP address, access source, number of visits to the Community, stay duration, access timestamp, browser type, and server type and version**, etc. We do this to help us improve the overall accuracy of information and better tailor our interactions with you.
+
+(c) Contributor License Agreement ("CLA") Signing. When signing the CLA ([learn more](https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZvcGVuZXVsZXI=)) before contribution, you need to submit required personal data to the CLA signing system. We will acquire such personal data to verify whether you have signed the CLA, and to conduct relevant statistical analysis about operations of the Community.
+
+We may also supplement the personal data we collect from you with additional personal data we receive from third parties, including other platforms, communities, or legal and public channels within the scope of your authorization and consent. We promise to process your personal data in strict accordance with applicable laws and regulations. Please read the privacy statements and user agreements of the third parties carefully. If your personal data provided by a third party is required for using related services of the Community, but you refuse to allow the third party to collect, use, transfer, or share your personal data when the third party provides services, you may not be able to use related services of the Community. For example, when you use an authorized third-party account to log in to the Community, we will obtain your personal data from the third party with your consent.
+
+## 2. How We Use Cookies and Similar Technologies
+
+(a) To ensure our website works properly, we may at times place cookies on your computer or mobile device. A cookie is a small data file placed on your computer or mobile device used to access a website. The content of a cookie can be retrieved or read only by the server that creates the cookie. We use cookies and similar technologies for understanding how you interact with our websites, helping you efficiently browse pages, storing and honoring your preferences, improving your browsing experience, and fulfilling other legitimate purposes.
+
+(b) We categorize cookies on our websites into two categories:
+
+ (1) Required cookies: used for login and verification. When you log in to the website with your Huawei ID, cookies improve your Web browsing experience.
+
+ (2) Statistical analysis cookies: We collect information about your use of our services, including your single or multiple visits, which help us understand how you interact with the services. We use the statistical analysis plugin provided by Baidu.
+
+Many services require cookies. If you do not allow cookies related to these services, you may not be able to use these services or specific functions of these services.
+
+(c) **Do Not Track**. Many Web browsers provide the **Do Not Track** function, which sends **Do Not Track** requests to websites. Currently, major Internet standardization organizations have not established policies to specify how websites should handle these requests. If you enable **Do Not Track** or similar functions that your browser may provide, we will not change the way your data is collected and used as described in this Statement. However, we reserve the right to respond to your **Do Not Track** request and stop collecting your data without prior notice.
+
+(d) **Your Choice**. Most browsers allow you to delete or reject cookies. To do this, follow the instructions in the browser settings. By default, many browsers accept cookies until you change your settings.
+
+## 3. How We Share Your Personal Data
+
+Sharing means providing third parties with your personal data. The third parties and we would handle the personal data independently. We do not share your personal data with third parties without your consent, except in the following circumstances or as described in this Statement:
+
+(a) **Sharing under your instruction**. We may share your personal data with your consent and under your instruction to the third parties indicated by you.
+
+(b) **For compliance, fraud prevention, and safety**. We may share your personal data for the purposes of compliance, fraud prevention, and safety.
+
+(c) **Affiliates**. We may share your personal data with our affiliates, for the purposes of transaction support, service support, or security support.
+
+(d) **Partners**. We may share your personal data with our partners. However, we will share your personal data only for legitimate, justified, necessary, specified, and explicit purposes, and share only the personal data necessary for providing our services. Our partners may include:
+
+ (1) **Developers, platforms, and social media networks**. Some products or services may be directly provided to you by third parties. In this case, we need to provide them with the transaction information. If you associate our services or products with third-party platforms or social media networks (for example, direct login through a third-party website, virtual login, or associated login), we may disclose your personal data with your authorization. We do not control the third party's use of your personal data.
+
+
+ (2) **Service suppliers or professional service providers**. We may share your personal data with third-party companies and individuals that provide services on our behalf or help us operate the websites and services (such as supply, infrastructure support, hosting, customer support, marketing and analytics, and data processing services). We share such data only for purposes consistent with this Statement or under your authorization. We may disclose your personal data to professional advisors, such as auditors, insurers, bankers, and lawyers, where necessary in the course of the professional services that they render to us.
+
+When we share your personal data with affiliates or partners, their responsibilities and obligations will be governed by contracts and we will require them to take appropriate measures to ensure the security of the personal data processed.
+
+## 4. How Long We Retain Your Personal Data For
+
+We will retain your personal data for no longer than is necessary for the purposes set out in this Statement, unless otherwise required by laws or requested by you.
+
+Generally, we will store or retain your personal data within the retention period according to applicable laws or service agreements from the date when we obtain your personal data in the Community. If your personal data has exceeded the retention period and no law requires us to continue processing your specific personal data, we will delete your personal data or anonymize it according to applicable laws and regulations.
+
+## 5. How We Protect Your Personal Data
+
+We take the security of your personal data seriously. We take appropriate physical, organizational, and technical measures to protect your personal data. For example, we use encryption technologies to ensure the confidentiality of data; we implement protection mechanisms to protect data from attacks; we deploy access control mechanisms to ensure that only authorized personnel can access your personal data; and we hold security and privacy protection training. **In a word, we are committed to protecting your personal data. Nevertheless, no security measure is perfect and no product, service, website, data transfer, computing system, or network connection is absolutely secure.**
+
+## 6. How We Access or Control Your Personal Data
+
+In accordance with applicable laws and regulations, you may have the following rights regarding your personal data:
+
+(a) Access the personal data we hold about you and obtain copies thereof;
+
+(b) Request us to update or correct your personal data;
+
+(c) Request us to erase your personal data;
+
+(d) Object to our processing of your personal data;
+
+(e) Restrict our processing of your personal data;
+
+(f) Lodge a complaint with the competent data protection authority.
+
+Please note that these rights are not absolute and may be restricted in accordance with applicable laws. If you need our assistance in exercising the requests or rights above, please contact us as set out in the "How to Contact Us" section below.
+
+**Generally, we will respond to you within one month, unless otherwise required by applicable laws. Depending on the complexity of your requests, we may extend the period by two further months. In this case, we will inform you of the extension and its reasons within one month of receiving your request.** Please note that under some circumstances, for example where we cannot verify your identity, or your claim exceeds your rights under applicable laws, we may refuse your request. In this case, we will inform you in written form that your request is refused together with the reasons for our refusal.
+
+You can change the scope of your authorization for us to collect your personal data or withdraw your authorization. However, your decision to withdraw your consent or authorization does not affect any previous processing of personal data based on your authorization.
+
+## 7. Where Your Personal Data Is Stored
+
+We provide products and services for you through our global resources and servers. Your personal data collected by us may be stored in the countries or regions where we, our affiliates, service providers, and subcontractors are located. This means that your personal data may be transferred to other jurisdictions outside the country or region where the product or service you use is located, or may be accessed from these jurisdictions.
+
+Jurisdictions where such personal data is stored may have laws that protect personal data to varying degrees or may not have personal data protection laws. We will ensure that your personal data is protected by applicable laws and regulations as well as this Statement.
+
+## 8. How This Statement Is Updated
+
+We may update this Statement from time to time according to changes of our services or data processing. If we update this Statement, we will publish the latest version of the Statement on the website, and it will take effect immediately upon its release. You are advised to review this Statement periodically for any changes. If we make any substantial changes to this Statement (any change of personal data we collect or we use for), we will notify you through appropriate channels and obtain your consent.
+
+## 9. How to Contact Us
+
+If you want to contact us or exercise your rights, please contact us at .
+
+Last updated: May, 2022
diff --git a/app/ru/other/privacy/index.md b/app/ru/other/privacy/index.md
new file mode 100644
index 000000000..bf13bef3c
--- /dev/null
+++ b/app/ru/other/privacy/index.md
@@ -0,0 +1,65 @@
+---
+title: "Конфиденциальность"
+doc: true
+---
+
+
+Сообщество openEuler понимает важность сохранения конфиденциальности ваших данных и соблюдает ее. **Внимательно прочтите настоящее Уведомление о конфиденциальности сообщества openEuler («Уведомление»), прежде чем отправите нам свои персональные данные.**Если у вас возникли вопросы о том, как мы обрабатываем ваши персональные данные, свяжитесь с нами. Если не указано иное, «мы» и «наш» в настоящем Уведомлении относятся к сообществу openEuler.
+
+## 1.Использование файлов cookie и похожих технологий
+
+**a)** Для обеспечения надлежащей работы веб-сайта мы иногда можем разместить файлы cookie на вашем компьютере или мобильном устройстве. Файл cookie — это небольшой массив данных, размещаемый на вашем компьютере или мобильном устройстве при доступе к веб-сайту. Содержимое файла cookie может извлечь и прочитать только сервер, создавший этот файл cookie. Файлы cookie служат различным целям. Например, они помогают нам понять, как используется веб-сайт, помогают вам эффективно просматривать страницы, помнят ваши предпочтения и улучшают опыт просмотра веб-сайта.
+**b)** Мы используем два типа файлов cookie:
+** 1)** Обязательные файлы cookie: используются для входа и верификации. Когда вы выполняете вход на веб-сайт с помощью вашего аккаунта HUAWEI, файлы cookie улучшают ваш опыт просмотра веб-сайта.
+** 2)** Файлы cookie для статистического анализа: мы собираем информацию об использовании наших сервисов, включая единичные или повторные посещения, которые помогут нам понять, как работают и используются сервисы. Мы используем плагин для статистического анализа, предоставляемый Baidu.
+ Многие сервисы требуют использования файлов cookie. Если вы не разрешите использование файлов cookie, относящихся к этим сервисам, вы не сможете использовать эти сервисы или некоторые функции этих сервисов.
+**c)** Функция «Не отслеживать». У большинства веб-браузеров есть функция «Не отслеживать», которая отправляет сигналы «Не отслеживать» на веб-сайты. В настоящее время участники ведущих организаций по стандартизации Интернета не пришли к согласию по поводу того, какие действия должны предпринимать веб-сайты, когда получают такие сигналы. Если вы активируете функцию Не отслеживать или другие аналогичные функции в вашем браузере, мы не изменим способы сбора и использования ваших данных, описанные в настоящем Уведомлении. Однако мы оставляем за собой право ответить на ваш запрос Не отслеживать и прекратить сбор ваших данных без предварительного уведомления.
+**d)** (d)Ваш выбор. Большинство браузеров позволяют удалить или отклонить файлы cookie. Для этого следуйте инструкциям в настройках браузера. По умолчанию многие браузеры принимают файлы cookie, пока вы не измените свои настройки.
+
+## 2.Передача ваших персональных данных
+
+Передача означает предоставление третьим лицам ваших персональных данных. Третьи лица и мы будем обрабатывать персональные данные независимо. Мы не передаем ваши персональные данные третьим лицам без вашего согласия, за исключением следующих обстоятельств или согласно положениям настоящего Уведомления:
+**a) Передача по вашему требованию**. Мы можем передать ваши персональные данные с вашего согласия и по вашему требованию третьим сторонам, указанным вами.
+**b) В целях соблюдения требований, предотвращения мошенничества и обеспечения безопасности**. Мы можем передавать ваши персональные данные в целях соблюдения требований, предотвращения мошенничества и обеспечения безопасности.
+**c) Аффилированные лица**Мы можем передать ваши персональные данные своим аффилированным лицам для поддержки проведения транзакций, работы сервисов или безопасности.
+**d) Партнеры**. Мы можем передавать ваши персональные данные своим партнерам. Однако мы будем передавать ваши персональные данные только в законных, оправданных, необходимых, указанных и явно выраженных целях, а также передавать персональные данные только в объеме, необходимом для предоставления наших сервисов. В число наших партнеров могут входить следующие лица:
+** 1) Разработчики, платформы и социальные сети**. Некоторые продукты или сервисы могут напрямую предоставляться вам третьими лицами. В этом случае мы должны предоставить им информацию о транзакциях. Если вы связываете наши сервисы или продукты со сторонними платформами или социальными сетями (например, выполняете прямой вход через веб-сайт третьего лица, виртуальный вход или связанный вход), мы можем раскрывать ваши персональные данные с вашего разрешения. Мы не контролируем использование ваших персональных данных третьим лицом.
+** 2) Поставщики услуг или профессиональные обслуживающие организации**(2). Мы можем передавать ваши персональные данные сторонним компаниям и физическим лицам, которые предоставляют сервисы от нашего имени или помогают нам управлять веб-сайтом и сервисами (такие как поставки, инфраструктура, хостинг, поддержка клиентов, маркетинг и аналитика, а также сервисы обработки данных). Мы передаем такие данные только в целях, соответствующих настоящему Уведомлению, или при вашем разрешении. Мы можем раскрывать ваши персональные данные профессиональным консультантам, например аудиторам, страховщикам, банковским сотрудникам и юристам, где это необходимо при оказании нам профессиональных услуг.
+Когда мы передаем ваши персональные данные связанным компаниям или партнерам, их обязанности будут регулироваться договорами, и мы потребуем от них принять соответствующие меры для обеспечения безопасности обработанных персональных данных.
+
+## 3.Срок хранения ваших персональных данных
+
+Мы будем хранить ваши персональные данные не дольше, чем это необходимо, в целях, изложенных в настоящем Уведомлении, если иное не требуется законом или вашим запросом.
+Мы будем хранить ваши персональные данные в течение периода хранения в соответствии с применимыми законами или сервисными соглашениями с даты получения ваших персональных данных в сообществе openEuler. Если срок хранения ваших персональных данных превысил лимит и ни один закон не требует от нас продолжать обработку ваших конкретных персональных данных, мы удалим или анонимизируем их в соответствии с применимыми законами.
+
+## 4.Защита ваших персональных данных
+
+Мы серьезно относимся к безопасности ваших личных данных. Мы принимаем соответствующие физические, организационные и технические меры для защиты ваших персональных данных. Например, мы используем технологии шифрования для обеспечения конфиденциальности данных, а также внедряем механизмы для защиты данных от атак. Мы используем механизмы контроля посещений, которые предоставляют доступ к персональным данным только авторизованному персоналу. Кроме того, мы проводим тренинги по вопросам безопасности и защиты конфиденциальности.** Таким образом, мы привержены защите ваших персональных данных. Несмотря на это, никакая защита не может быть идеальной, никакие продукты, услуги, веб-сайты, вычислительные системы, механизмы передачи данных и сети не могут быть надежными на 100%.**
+
+## 5.Доступ и контроль ваших персональных данных
+
+В соответствии с применимыми законами и правилами у вас есть следующие права в отношении ваших персональных данных:
+**a)** Получать доступ к персональным данным, которые есть у нас о вас, и получать их копии;
+**b)** Запрашивать обновление или исправление ваших персональных данных;
+**c)** Запрашивать удаление ваших персональных данных;
+**d)** Возражать против обработки ваших персональных данных;
+**e)** Запретить обработку ваших персональных данных;
+**f)** Подать жалобу в компетентный орган по защите данных.
+Обратите внимание, что эти права не являются абсолютными и могут быть ограничены в соответствии с применимыми законами. Если вам нужна наша помощь в выполнении вышеупомянутых запросов или осуществлении прав, свяжитесь с нами согласно информации в разделе «Контакты» ниже.
+**Как правило, мы отвечаем в течение одного месяца, если иное не требуется применимым законодательством. В зависимости от сложности ваших запросов мы можем продлить срок еще на два месяца. В этом случае мы сообщим вам о продлении и причинах в течение одного месяца с момента получения вашего запроса.**Обратите внимание, что при некоторых обстоятельствах, например, если мы не можем подтвердить вашу личность или ваша заявка выходит за рамки ваших прав согласно применимому законодательству, мы можем отказать в выполнении вашей заявки. В этом случае мы сообщим вам в письменной форме, что ваша заявка отклонена, и укажем причины отклонения.
+Вы можете изменить объем разрешения на сбор ваших персональных данных или отозвать ваше разрешение. Однако ваше решение отозвать свое согласие или разрешение не влияет на предыдущую обработку персональных данных, выполненную на основании вашего разрешения.
+
+## 6.Место хранения персональных данных
+
+Мы предоставляем вам продукты и сервисы через наши глобальные ресурсы и серверы. Ваши персональные данные, собранные нами, могут храниться в странах или регионах, в которых расположены мы, наши аффилированные лица, поставщики услуг и субподрядчики. Это означает, что ваши персональные данные могут быть переданы другим юрисдикциям за пределами страны или региона, где находится продукт или сервис, которые вы используете, или к ним может быть получен доступ из этих юрисдикций.
+Юрисдикции, в которых хранятся такие персональные данные, могут иметь законы, которые защищают персональную информацию в различной степени, или могут не иметь законов о защите персональных данных. Мы обеспечим, чтобы ваши персональные данные были защищены применимыми законами и правилами, а также положениями настоящего Уведомления.
+
+## 7.Обновления текста Уведомления
+
+Мы можем время от времени обновлять или изменять настоящее Уведомление в соответствии с изменениями в наших сервисах или обработке данных. Если мы обновим настоящее Уведомление, мы опубликуем его последнюю версию на веб-сайте, и оно вступит в силу сразу же после его публикации. Рекомендуем вам периодически проверять настоящее Уведомление на предмет изменений. Если мы внесем существенные изменения в настоящее Уведомление (любые изменения в отношении персональных данных, которые мы собираем или используем), мы уведомим вас по соответствующим каналам связи и получим ваше согласие.
+
+## 8.Контакты
+
+Если вы хотите связаться с нами или осуществить свои права, свяжитесь с нами по ****.
+
+
Обновлено: июнь 2021 г.
diff --git a/app/vite.config.js b/app/vite.config.js
index 188cc23ee..d58c2b829 100644
--- a/app/vite.config.js
+++ b/app/vite.config.js
@@ -51,4 +51,12 @@ export default defineConfig({
// useSource: true,
// }),
],
+ server: {
+ proxy: {
+ '/mirrors': {
+ target: 'https://api.openeuler.org/',
+ changeOrigin: true,
+ },
+ },
+ },
});
diff --git a/app/zh/other/privacy/index.md b/app/zh/other/privacy/index.md
new file mode 100644
index 000000000..d2181673d
--- /dev/null
+++ b/app/zh/other/privacy/index.md
@@ -0,0 +1,76 @@
+---
+title: "隐私政策"
+doc: true
+---
+
+
+
+
+我们深知您的隐私对您的重要性,并充分尊重您的隐私。**在向我们提交您的个人信息之前,请您仔细阅读本《隐私政策声明》(以下简称“本声明”)。**如果您对于我们处理您的个人信息的方式有任何疑问,欢迎与我们联系。除非另有约定,本声明中的“我们”是指**openEuler**社区。
+
+## 1.我们如何收集和处理您的个人信息
+**如果您仅仅浏览openEuler社区网站(以下简称“本网站”)的一般性内容,我们通常并不要求您提供个人信息,但在以下情形,我们会相应收集您的个人信息:**
+**a) 邮件订阅**,当您使用我们的邮件订阅服务时,我们将收集您的**电子邮件地址以及您的姓名(可选)。**我们会通过该邮箱为您提供邮件订阅服务,便于您参与社区中的讨论。
+**b) 服务优化**,为持续了解**openEuler**社区的运行状况,以便我们更好地为您服务,我们会将第三方插件部署在本程序中,该第三方会通过插件收集并记录您的浏览器和计算机、移动设备上的信息,包括但不限于您的**IP地址、访问来源、访问社区的次数、停留时长、访问时间戳、浏览器类型、访问社区所用服务器类型版本**等,我们会在此基础上进行数据统计,以便我们了解**openEuler**社区的运营状况。
+**c) 贡献者协议签署**,当您通过贡献者许可协议(简称“**CLA**”)签署系统(点击[此处](https://clasign.osinfra.cn/sign/Z2l0ZWUlMkZvcGVuZXVsZXI=)了解)参与代码贡献时,您需要向**CLA**签署系统提交您的相关个人信息,我们会取得这些个人信息用于校验您是否已经签署**CLA**,并进行相关统计分析,用于了解社区的运营状况。
+
+我们还可能会在您的授权同意范围内从第三方,包括其他平台或社区收集到您的个人信息,或者我们能从其他合法公开渠道获取到您的个人信息。我们保证严格依照相关法律规定处理您的个人信息,同时请您详细阅读该第三方的隐私政策及用户协议。如使用openEuler社区需要第三方提供您的个人信息,但您拒绝第三方在提供服务时收集、使用传递或者分享您的个人信息,将可能导致您无法使用openEuler社区相关服务。例如,当您使用经授权的第三方帐号登录openEuler社区时,我们会在征得您的同意后,从第三方获取您的相关个人信息。
+
+## 2.我们如何使用Cookie及类似技术
+
+**a)** 为确保网站正常运转,我们有时会在计算机或移动设备上存储 **Cookie**。**Cookie**是访问网站时放置在您的计算机或移动设备上的小型数据文件。**Cookie** 的内容只能由创建它的服务器检索或读取。**Cookie**服务于不同的目的,例如帮助我们了解网站如何被使用,让您高效地浏览页面,记住您的偏好并总体上改善您的浏览体验。
+**b)** 我们使用二种类型的**Cookie**:
+** 1)** 严格必要的**Cookie**: 用于登录和验证。当您使用**HUAWEI** **ID**登录网站时,**Cookie**将确保您对该网站的访问尽可能顺利;
+** 2)** 统计分析**Cookie**:我们收集关于您使用服务的信息,包括您的单次或多次访问,这些**Cookie**帮助我们了解服务是如何运行、使用的。我们使用百度提供的统计分析插件。
+ 许多服务需要**Cookie**才能运行。如果拟选择不允许与这些服务相关的**Cookie**,则您可能无法使用该等服务或该等服务的某些功能。
+**c) 请勿追踪**,很多网络浏览器均提供 **Do Not Track** 功能,该功能可向网站发布 **Do Not Track** 请求。目前,主要互联网标准组织尚未设立相关政策来规定网站应如何处理此类请求。如果您启用了“请勿追踪”或您的浏览器可能提供的其他类似功能,我们将不会更改本声明中所述的收集和使用您数据的方式。但是,我们保留对您的“请勿追踪”请求做出回应并停止收集您的数据而不另行通知的权利。
+**d) 您的选择**,大多数浏览器允许您删除或拒绝**Cookie**。为此,请按照浏览器设置中的说明进行操作。默认情况下,许多浏览器接受**Cookie**,直到您更改设置为止。
+
+## 3.我们如何共享您的个人信息
+
+共享是指我们向第三方提供个人信息,且我们和第三方分别对个人信息进行独立处理的过程。除非您的同意,我们不会向第三方共享您的个人信息,但以下情况或本声明规定的情形除外:
+**a) 在获取明确同意情况下的共享**。获得您的明确同意后,我们会向您指定的第三方共享您授权范围内的信息;
+**b) 为合规、防止欺诈和安全目的共享**。我们可能为上述提及的合规、防止欺诈和安全目的共享您的个人信息。
+**c) 我们可能会将您的个人信息向我们的关联公司披露,以供它们为您提供交易支持、服务支持或安全支持**。
+**d) 共享给业务合作伙伴**。我们可能会向合作伙伴等第三方共享您的信息。但我们仅会出于合法、正当、必要、特定、明确的目的共享您的个人信息,并且只会共享提供服务所必需的个人信息。我们的合作伙伴包括:
+** 1) 开发者,平台及社交媒体**:某些产品或服务由第三方直接向您提供,我们须将交易相关信息共享给第三方来实现您的需求。例如,如果您通过激活或关联使得我们提供的服务或产品与第三方平台或社交媒体相关联(例如通过第三方网站直接登录、虚拟登录或关联登录),我们可能会根据您就此的授权将您的个人信息进行披露。我们不控制第三方对您个人信息的使用。
+** 2) 服务供应商或专业服务提供商**:我们可能会将您的个人信息共享给按照我们指示进行服务或产品提供或支持我们网站运营的第三方,包括为我们供货或提供基础设施技术服务、托管、客户支持、市场推广和分析、信息处理服务的第三方等。我们共享这些信息的目的仅限于本声明披露或在您允许的范围内进行,比如百度。我们可能因获取专业服务,如审计、保险、金融或法律之目的,向相关专业人士共享您的个人信息。
+在我们根据上述内容向关联公司或合作伙伴共享信息时,我们将通过合同等方式规定其责任和义务,并要求他们采取必要措施保障所处理的个人信息的安全。
+
+## 4.我们将保留多久您的个人信息
+
+我们将会在达成本声明所述目的所需的期限内保留您的个人信息,除非按照法律要求或您的要求需要延长保留期。
+一般而言,我们会自您使用我们的社区服务时获取您的个人信息之日起,根据可适用法律的要求或服务协议的约定,在留存期限内存储或保留您的个人信息。在您的个人信息超出保留期限后,且没有法律要求我们继续处理您的特定个人信息的情况下,我们将会根据可适用法律的要求删除您的个人信息,或进行匿名化处理。
+
+## 5.我们将如何保护您的个人信息
+
+我们重视您的个人信息安全。我们采用适当的物理、管理和技术保障措施来保护您的个人信息。例如,我们会使用加密技术确保信息的机密性;我们会使用保护机制防止信息遭到恶意攻击;我们会部署访问控制机制,确保只有授权人员才可访问个人信息;以及我们会举办安全和隐私保护培训等。**总之,我们会尽力保护您的个人信息。尽管如此,任何措施都无法做到无懈可击,也没有任何产品与服务、网站、信息传输、计算机系统、网络连接是绝对安全的**。
+
+## 6.如何访问或控制您的个人信息
+
+根据适用的法律法规,就您的个人信息,您可能享有如下权利:
+**a)** 访问我们持有的您的个人信息并获得副本的权利;
+**b)** 要求我们更新或更正您的个人信息的权利;
+**c)** 要求我们删除您的个人信息的权利;
+**d)** 反对我们对您的个人信息进行处理的权利;
+**e)** 限制我们对您的个人信息进行处理的权利;以及
+**f)** 向有权的个人信息保护部门提起投诉、举报的权利。
+请注意该等权利不是绝对的,且可能根据适用的法律受到限制。如果您需要我们协助行使上述请求或权利,请通过下述“如何联系我们”联系。
+**除非适用的法律法规另有要求,我们会在一个月内响应您的请求。根据您请求的复杂度,我们可能另行延迟两个月。如果发生该情况,我们会在收到请求的一个月内向您告知延迟及其原因。**请注意在某些情况下,您的请求将被驳回,比如我们无法验证您的身份,或您提出的要求超出适用的法律下赋予您的权利。我们将书面告知您提出的请求被驳回以及被驳回的原因。
+您可以改变您授权我们继续收集个人信息的范围或撤回您的授权,但您撤回同意或授权的决定,不会影响此前基于您的授权而开展的个人信息处理行为。
+
+## 7.个人信息存储地点
+
+我们通过遍布全球的资源和服务器为您提供产品与服务,我们收集您的个人信息可能存储在我们及其关联方、服务提供商/分包商所在的国家/地区。这意味着,您的个人信息可能会被转移到您使用的产品或服务所在的国家/地区以外的其他司法管辖区,或者受到来自这些司法管辖区的访问。
+此类个人信息存储地的司法管辖区可能采用保护程度不一的个人信息保护法律,甚至未订立相关法律。我们会确保您的个人信息得到适用的法律法规和本声明的保护。
+
+## 8.如何更新本声明
+
+我们可能会根据我们的服务或数据处理的变化不时更新或修改本声明。如果我们更新本声明,我们会将最新版隐私声明发布在本网站上,并自发布时立即生效。建议您定期查看本声明以了解任何更改。如果我们对本声明做出任何重大更改(收集的个人信息范围和使用目的变更),我们将通过适当渠道通知您,并获取您的同意。
+
+## 9.如何联系我们
+
+如果您想联系我们或行使您的相关权利,请通过以下方式与我们联系: ****
+
+
最近更新时间:**2022**年**3**月
diff --git a/app/zh/security/safety-bulletin/detail/index.md b/app/zh/security/safety-bulletin/detail/index.md
new file mode 100644
index 000000000..4945f31e6
--- /dev/null
+++ b/app/zh/security/safety-bulletin/detail/index.md
@@ -0,0 +1,5 @@
+
+
+
diff --git a/opendesign/index.ts b/opendesign/index.ts
index d3cd9f9ab..6bbc30321 100644
--- a/opendesign/index.ts
+++ b/opendesign/index.ts
@@ -6,9 +6,20 @@ import { Select } from './select';
import { Icon } from './icon';
import { Card } from './card';
+import { Tabs, TabPane } from './tabs';
import { Input } from './input';
-const components = [Button, Radio, RadioGroup, Select, Icon, Card, Input];
+const components = [
+ Button,
+ Radio,
+ RadioGroup,
+ Select,
+ Icon,
+ Card,
+ Input,
+ Tabs,
+ TabPane,
+];
export default {
install(app: App): void {
diff --git a/opendesign/style/variable.scss b/opendesign/style/variable.scss
index 26d8aac29..bbbbb8598 100644
--- a/opendesign/style/variable.scss
+++ b/opendesign/style/variable.scss
@@ -74,9 +74,9 @@
// 阴影
--o-shadow-base: 0px 1px 5px 0px rgba(45, 47, 51, 0.1); // 一级投影,应用场景:默认状态卡片、楼层、导航栏等
--o-shadow-base_hover: 0px 6px 18px 0px rgba(0, 47, 167, 0.14); // 一级投影hover态
- --0-shadow-secondary: 0px 6px 18px 0px rgba(45, 47, 51, 0.14); // 二级投影
+ --o-shadow-secondary: 0px 6px 18px 0px rgba(45, 47, 51, 0.14); // 二级投影
--o-shadow-secondary_hover: 0px 6px 18px 0px rgba(0, 47, 167, 0.14); // 二级投影hover态
- --o-shadow-overlay: 0px 10px 32px rbga(45, 47, 31, 0.18); // 覆盖投影,应用场景:信息提示(tips,活动进入按钮等)
- --o-shadow-overlay_hover: 0px 10px 32px rbga(0, 47, 167, 0.18); // 覆盖投影hover态
- --o-shadow-pop: 0px 12px 42px rbga(45, 47, 31, 0.24); // 弹出层投影:应用场景:模态框弹窗
+ --o-shadow-overlay: 0px 10px 32px rgba(45, 47, 31, 0.18); // 覆盖投影,应用场景:信息提示(tips,活动进入按钮等)
+ --o-shadow-overlay_hover: 0px 10px 32px rgba(0, 47, 167, 0.18); // 覆盖投影hover态
+ --o-shadow-pop: 0px 12px 42px rgba(45, 47, 31, 0.24); // 弹出层投影:应用场景:模态框弹窗
}
diff --git a/opendesign/tabs/OTabPane.vue b/opendesign/tabs/OTabPane.vue
new file mode 100644
index 000000000..074a678f3
--- /dev/null
+++ b/opendesign/tabs/OTabPane.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/opendesign/tabs/OTabs.vue b/opendesign/tabs/OTabs.vue
new file mode 100644
index 000000000..5647a3deb
--- /dev/null
+++ b/opendesign/tabs/OTabs.vue
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/tabs/index.ts b/opendesign/tabs/index.ts
new file mode 100644
index 000000000..5dd1a7b72
--- /dev/null
+++ b/opendesign/tabs/index.ts
@@ -0,0 +1,11 @@
+import type { App } from 'vue';
+import Tabs from './OTabs.vue';
+import TabPane from './OTabPane.vue';
+Tabs.install = function (app: App) {
+ app.component('OTabs', Tabs);
+};
+TabPane.install = function (app: App) {
+ app.component('OTabPane', Tabs);
+};
+
+export { Tabs, TabPane };
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 03a944260..931d3710e 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -54,6 +54,198 @@ devDependencies:
packages:
+ /@sxzz/popperjs-es/2.11.7:
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+ dev: false
+
+ /esbuild-android-64/0.14.48:
+ resolution: {integrity: sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-android-arm64/0.14.48:
+ resolution: {integrity: sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-64/0.14.48:
+ resolution: {integrity: sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-arm64/0.14.48:
+ resolution: {integrity: sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-64/0.14.48:
+ resolution: {integrity: sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-arm64/0.14.48:
+ resolution: {integrity: sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-32/0.14.48:
+ resolution: {integrity: sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-64/0.14.48:
+ resolution: {integrity: sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm/0.14.48:
+ resolution: {integrity: sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm64/0.14.48:
+ resolution: {integrity: sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-mips64le/0.14.48:
+ resolution: {integrity: sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-ppc64le/0.14.48:
+ resolution: {integrity: sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-riscv64/0.14.48:
+ resolution: {integrity: sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-s390x/0.14.48:
+ resolution: {integrity: sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-netbsd-64/0.14.48:
+ resolution: {integrity: sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-openbsd-64/0.14.48:
+ resolution: {integrity: sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-sunos-64/0.14.48:
+ resolution: {integrity: sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-32/0.14.48:
+ resolution: {integrity: sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-64/0.14.48:
+ resolution: {integrity: sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-arm64/0.14.48:
+ resolution: {integrity: sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
registry.npmmirror.com/@algolia/autocomplete-core/1.7.1:
resolution: {integrity: sha512-eiZw+fxMzNQn01S8dA/hcCpoWCOCwcIIEUtHHdzN5TGB3IpzLbuhqFeTfh2OUhhgkE8Uo17+wH+QJ/wYyQmmzg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.1.tgz}
name: '@algolia/autocomplete-core'
@@ -869,12 +1061,6 @@ packages:
picomatch: registry.npmmirror.com/picomatch/2.3.1
dev: true
- registry.npmmirror.com/@sxzz/popperjs-es/2.11.7:
- resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.7.tgz}
- name: '@sxzz/popperjs-es'
- version: 2.11.7
- dev: false
-
registry.npmmirror.com/@types/json-schema/7.0.11:
resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz}
name: '@types/json-schema'
@@ -1562,7 +1748,7 @@ packages:
normalize-path: registry.npmmirror.com/normalize-path/3.0.0
readdirp: registry.npmmirror.com/readdirp/3.6.0
optionalDependencies:
- fsevents: registry.npmmirror.com/fsevents/2.3.2
+ fsevents: 2.3.2
dev: true
registry.npmmirror.com/clean-stack/2.2.0:
@@ -1764,7 +1950,7 @@ packages:
'@ctrl/tinycolor': registry.npmmirror.com/@ctrl/tinycolor/3.4.1
'@element-plus/icons-vue': registry.npmmirror.com/@element-plus/icons-vue/2.0.6_vue@3.2.33
'@floating-ui/dom': registry.npmmirror.com/@floating-ui/dom/0.5.4
- '@popperjs/core': registry.npmmirror.com/@sxzz/popperjs-es/2.11.7
+ '@popperjs/core': /@sxzz/popperjs-es/2.11.7
'@types/lodash': registry.npmmirror.com/@types/lodash/4.14.182
'@types/lodash-es': registry.npmmirror.com/@types/lodash-es/4.17.6
'@vueuse/core': registry.npmmirror.com/@vueuse/core/8.9.1_vue@3.2.33
@@ -1799,226 +1985,6 @@ packages:
version: 0.10.5
dev: true
- registry.npmmirror.com/esbuild-android-64/0.14.48:
- resolution: {integrity: sha512-3aMjboap/kqwCUpGWIjsk20TtxVoKck8/4Tu19rubh7t5Ra0Yrpg30Mt1QXXlipOazrEceGeWurXKeFJgkPOUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-64/-/esbuild-android-64-0.14.48.tgz}
- name: esbuild-android-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-android-arm64/0.14.48:
- resolution: {integrity: sha512-vptI3K0wGALiDq+EvRuZotZrJqkYkN5282iAfcffjI5lmGG9G1ta/CIVauhY42MBXwEgDJkweiDcDMRLzBZC4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.48.tgz}
- name: esbuild-android-arm64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [android]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-darwin-64/0.14.48:
- resolution: {integrity: sha512-gGQZa4+hab2Va/Zww94YbshLuWteyKGD3+EsVon8EWTWhnHFRm5N9NbALNbwi/7hQ/hM1Zm4FuHg+k6BLsl5UA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.48.tgz}
- name: esbuild-darwin-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-darwin-arm64/0.14.48:
- resolution: {integrity: sha512-bFjnNEXjhZT+IZ8RvRGNJthLWNHV5JkCtuOFOnjvo5pC0sk2/QVk0Qc06g2PV3J0TcU6kaPC3RN9yy9w2PSLEA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.48.tgz}
- name: esbuild-darwin-arm64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-freebsd-64/0.14.48:
- resolution: {integrity: sha512-1NOlwRxmOsnPcWOGTB10JKAkYSb2nue0oM1AfHWunW/mv3wERfJmnYlGzL3UAOIUXZqW8GeA2mv+QGwq7DToqA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.48.tgz}
- name: esbuild-freebsd-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-freebsd-arm64/0.14.48:
- resolution: {integrity: sha512-gXqKdO8wabVcYtluAbikDH2jhXp+Klq5oCD5qbVyUG6tFiGhrC9oczKq3vIrrtwcxDQqK6+HDYK8Zrd4bCA9Gw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.48.tgz}
- name: esbuild-freebsd-arm64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [freebsd]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-32/0.14.48:
- resolution: {integrity: sha512-ghGyDfS289z/LReZQUuuKq9KlTiTspxL8SITBFQFAFRA/IkIvDpnZnCAKTCjGXAmUqroMQfKJXMxyjJA69c/nQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-32/-/esbuild-linux-32-0.14.48.tgz}
- name: esbuild-linux-32
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-64/0.14.48:
- resolution: {integrity: sha512-vni3p/gppLMVZLghI7oMqbOZdGmLbbKR23XFARKnszCIBpEMEDxOMNIKPmMItQrmH/iJrL1z8Jt2nynY0bE1ug==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-64/-/esbuild-linux-64-0.14.48.tgz}
- name: esbuild-linux-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-arm/0.14.48:
- resolution: {integrity: sha512-+VfSV7Akh1XUiDNXgqgY1cUP1i2vjI+BmlyXRfVz5AfV3jbpde8JTs5Q9sYgaoq5cWfuKfoZB/QkGOI+QcL1Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.48.tgz}
- name: esbuild-linux-arm
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-arm64/0.14.48:
- resolution: {integrity: sha512-3CFsOlpoxlKPRevEHq8aAntgYGYkE1N9yRYAcPyng/p4Wyx0tPR5SBYsxLKcgPB9mR8chHEhtWYz6EZ+H199Zw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.48.tgz}
- name: esbuild-linux-arm64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-mips64le/0.14.48:
- resolution: {integrity: sha512-cs0uOiRlPp6ymknDnjajCgvDMSsLw5mST2UXh+ZIrXTj2Ifyf2aAP3Iw4DiqgnyYLV2O/v/yWBJx+WfmKEpNLA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.48.tgz}
- name: esbuild-linux-mips64le
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [mips64el]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-ppc64le/0.14.48:
- resolution: {integrity: sha512-+2F0vJMkuI0Wie/wcSPDCqXvSFEELH7Jubxb7mpWrA/4NpT+/byjxDz0gG6R1WJoeDefcrMfpBx4GFNN1JQorQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.48.tgz}
- name: esbuild-linux-ppc64le
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [ppc64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-riscv64/0.14.48:
- resolution: {integrity: sha512-BmaK/GfEE+5F2/QDrIXteFGKnVHGxlnK9MjdVKMTfvtmudjY3k2t8NtlY4qemKSizc+QwyombGWTBDc76rxePA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.48.tgz}
- name: esbuild-linux-riscv64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [riscv64]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-linux-s390x/0.14.48:
- resolution: {integrity: sha512-tndw/0B9jiCL+KWKo0TSMaUm5UWBLsfCKVdbfMlb3d5LeV9WbijZ8Ordia8SAYv38VSJWOEt6eDCdOx8LqkC4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.48.tgz}
- name: esbuild-linux-s390x
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [s390x]
- os: [linux]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-netbsd-64/0.14.48:
- resolution: {integrity: sha512-V9hgXfwf/T901Lr1wkOfoevtyNkrxmMcRHyticybBUHookznipMOHoF41Al68QBsqBxnITCEpjjd4yAos7z9Tw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.48.tgz}
- name: esbuild-netbsd-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [netbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-openbsd-64/0.14.48:
- resolution: {integrity: sha512-+IHf4JcbnnBl4T52egorXMatil/za0awqzg2Vy6FBgPcBpisDWT2sVz/tNdrK9kAqj+GZG/jZdrOkj7wsrNTKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.48.tgz}
- name: esbuild-openbsd-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [openbsd]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-sunos-64/0.14.48:
- resolution: {integrity: sha512-77m8bsr5wOpOWbGi9KSqDphcq6dFeJyun8TA+12JW/GAjyfTwVtOnN8DOt6DSPUfEV+ltVMNqtXUeTeMAxl5KA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.48.tgz}
- name: esbuild-sunos-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [sunos]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-windows-32/0.14.48:
- resolution: {integrity: sha512-EPgRuTPP8vK9maxpTGDe5lSoIBHGKO/AuxDncg5O3NkrPeLNdvvK8oywB0zGaAZXxYWfNNSHskvvDgmfVTguhg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-32/-/esbuild-windows-32-0.14.48.tgz}
- name: esbuild-windows-32
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [ia32]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-windows-64/0.14.48:
- resolution: {integrity: sha512-YmpXjdT1q0b8ictSdGwH3M8VCoqPpK1/UArze3X199w6u8hUx3V8BhAi1WjbsfDYRBanVVtduAhh2sirImtAvA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-64/-/esbuild-windows-64-0.14.48.tgz}
- name: esbuild-windows-64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [x64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
- registry.npmmirror.com/esbuild-windows-arm64/0.14.48:
- resolution: {integrity: sha512-HHaOMCsCXp0rz5BT2crTka6MPWVno121NKApsGs/OIW5QC0ggC69YMGs1aJct9/9FSUF4A1xNE/cLvgB5svR4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.48.tgz}
- name: esbuild-windows-arm64
- version: 0.14.48
- engines: {node: '>=12'}
- cpu: [arm64]
- os: [win32]
- requiresBuild: true
- dev: true
- optional: true
-
registry.npmmirror.com/esbuild/0.14.48:
resolution: {integrity: sha512-w6N1Yn5MtqK2U1/WZTX9ZqUVb8IOLZkZ5AdHkT6x3cHDMVsYWC7WPdiLmx19w3i4Rwzy5LqsEMtVihG3e4rFzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/esbuild/-/esbuild-0.14.48.tgz}
name: esbuild
@@ -2027,26 +1993,26 @@ packages:
hasBin: true
requiresBuild: true
optionalDependencies:
- esbuild-android-64: registry.npmmirror.com/esbuild-android-64/0.14.48
- esbuild-android-arm64: registry.npmmirror.com/esbuild-android-arm64/0.14.48
- esbuild-darwin-64: registry.npmmirror.com/esbuild-darwin-64/0.14.48
- esbuild-darwin-arm64: registry.npmmirror.com/esbuild-darwin-arm64/0.14.48
- esbuild-freebsd-64: registry.npmmirror.com/esbuild-freebsd-64/0.14.48
- esbuild-freebsd-arm64: registry.npmmirror.com/esbuild-freebsd-arm64/0.14.48
- esbuild-linux-32: registry.npmmirror.com/esbuild-linux-32/0.14.48
- esbuild-linux-64: registry.npmmirror.com/esbuild-linux-64/0.14.48
- esbuild-linux-arm: registry.npmmirror.com/esbuild-linux-arm/0.14.48
- esbuild-linux-arm64: registry.npmmirror.com/esbuild-linux-arm64/0.14.48
- esbuild-linux-mips64le: registry.npmmirror.com/esbuild-linux-mips64le/0.14.48
- esbuild-linux-ppc64le: registry.npmmirror.com/esbuild-linux-ppc64le/0.14.48
- esbuild-linux-riscv64: registry.npmmirror.com/esbuild-linux-riscv64/0.14.48
- esbuild-linux-s390x: registry.npmmirror.com/esbuild-linux-s390x/0.14.48
- esbuild-netbsd-64: registry.npmmirror.com/esbuild-netbsd-64/0.14.48
- esbuild-openbsd-64: registry.npmmirror.com/esbuild-openbsd-64/0.14.48
- esbuild-sunos-64: registry.npmmirror.com/esbuild-sunos-64/0.14.48
- esbuild-windows-32: registry.npmmirror.com/esbuild-windows-32/0.14.48
- esbuild-windows-64: registry.npmmirror.com/esbuild-windows-64/0.14.48
- esbuild-windows-arm64: registry.npmmirror.com/esbuild-windows-arm64/0.14.48
+ esbuild-android-64: 0.14.48
+ esbuild-android-arm64: 0.14.48
+ esbuild-darwin-64: 0.14.48
+ esbuild-darwin-arm64: 0.14.48
+ esbuild-freebsd-64: 0.14.48
+ esbuild-freebsd-arm64: 0.14.48
+ esbuild-linux-32: 0.14.48
+ esbuild-linux-64: 0.14.48
+ esbuild-linux-arm: 0.14.48
+ esbuild-linux-arm64: 0.14.48
+ esbuild-linux-mips64le: 0.14.48
+ esbuild-linux-ppc64le: 0.14.48
+ esbuild-linux-riscv64: 0.14.48
+ esbuild-linux-s390x: 0.14.48
+ esbuild-netbsd-64: 0.14.48
+ esbuild-openbsd-64: 0.14.48
+ esbuild-sunos-64: 0.14.48
+ esbuild-windows-32: 0.14.48
+ esbuild-windows-64: 0.14.48
+ esbuild-windows-arm64: 0.14.48
dev: true
registry.npmmirror.com/escalade/3.1.1:
@@ -2429,16 +2395,6 @@ packages:
version: 1.0.0
dev: true
- registry.npmmirror.com/fsevents/2.3.2:
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fsevents/-/fsevents-2.3.2.tgz}
- name: fsevents
- version: 2.3.2
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
- os: [darwin]
- requiresBuild: true
- dev: true
- optional: true
-
registry.npmmirror.com/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/function-bind/-/function-bind-1.1.1.tgz}
name: function-bind
@@ -3370,7 +3326,7 @@ packages:
engines: {node: '>=10.0.0'}
hasBin: true
optionalDependencies:
- fsevents: registry.npmmirror.com/fsevents/2.3.2
+ fsevents: 2.3.2
dev: true
registry.npmmirror.com/run-parallel/1.2.0:
@@ -3852,7 +3808,7 @@ packages:
rollup: registry.npmmirror.com/rollup/2.76.0
sass: registry.npmmirror.com/sass/1.51.0
optionalDependencies:
- fsevents: registry.npmmirror.com/fsevents/2.3.2
+ fsevents: 2.3.2
dev: true
registry.npmmirror.com/vitepress/1.0.0-alpha.4_sass@1.51.0:
--
Gitee