mirror of
https://github.com/Lissy93/awesome-privacy.git
synced 2026-03-11 08:55:33 +00:00
Loads of typescript typings
This commit is contained in:
parent
b780c963f5
commit
4d6da96d4d
19 changed files with 794 additions and 227 deletions
|
|
@ -1,6 +1,6 @@
|
|||
---
|
||||
|
||||
const { text, url, icon } = Astro.props;
|
||||
const { text, url } = Astro.props;
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
margin: 2rem auto;
|
||||
padding: 1rem;
|
||||
width: 1000px;
|
||||
max-width: calc(100% - 2rem);
|
||||
max-width: calc(100% - 5rem);
|
||||
border: 2px solid var(--foreground);
|
||||
box-shadow: 6px 6px 0 var(--foreground);
|
||||
background: var(--accent-fg);
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import FontAwesome from "@components/form/FontAwesome.svelte"
|
|||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
gap: 1rem;
|
||||
border-bottom: 2px solid var(--foreground);
|
||||
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@
|
|||
import FontAwesome from "@components/form/FontAwesome.svelte";
|
||||
const { github } = Astro.props;
|
||||
|
||||
|
||||
const [user, repo] = github.split("/");
|
||||
|
||||
// const [user, repo] = github.split("/");
|
||||
|
||||
/**
|
||||
* For a given `user/repo` fetch repository stats from the GitHub API data
|
||||
|
|
@ -75,10 +73,10 @@ const formatBigNumber = (num: number) => {
|
|||
}
|
||||
|
||||
// Initiate GitHub fetch, and make available to the component
|
||||
const stats = await fetchGitHubData(github);
|
||||
const stats = (await fetchGitHubData(github)) as any;
|
||||
|
||||
const {
|
||||
stargazers_count, forks_count, open_issues_count, language, license, owner,
|
||||
stargazers_count, forks_count, open_issues_count, language, license,
|
||||
} = stats.data;
|
||||
|
||||
|
||||
|
|
@ -139,7 +137,7 @@ const {
|
|||
color: var(--accent-3);
|
||||
&:hover {
|
||||
color: var(--accent-3);
|
||||
font-weight: 500;
|
||||
text-decoration: underline;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@
|
|||
import { prepareSearchItems, searchOptions } from '@utils/do-searchy-searchy';
|
||||
|
||||
export let data: Category[];
|
||||
export let previousSearch: string | undefined = undefined;
|
||||
|
||||
let fuse: Fuse<any>;
|
||||
let searchQuery = '';
|
||||
|
|
@ -73,7 +74,7 @@
|
|||
</label>
|
||||
<input
|
||||
id="search"
|
||||
placeholder="Start typing..."
|
||||
placeholder={previousSearch || 'Start typing...'}
|
||||
autocomplete="off"
|
||||
bind:value={searchQuery}
|
||||
on:keydown={handleKeyDown}
|
||||
|
|
|
|||
|
|
@ -79,7 +79,25 @@ h2 {
|
|||
font-weight: bold;
|
||||
margin: 0;
|
||||
font-size: 1.8rem;
|
||||
position: relative;
|
||||
&:after {
|
||||
background: none repeat scroll 0 0 transparent;
|
||||
bottom: 0;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 3px;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
background: var(--accent);
|
||||
transition: width 0.3s ease 0s, left 0.3s ease 0s;
|
||||
width: 0;
|
||||
}
|
||||
&:hover:after {
|
||||
width: 80%;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ul {
|
||||
|
|
|
|||
|
|
@ -13,19 +13,20 @@ const { services, subHeading, buttonLink, noGitHubMetrics } = Astro.props;
|
|||
---
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', (event) => {
|
||||
const serviceIcons = document.querySelectorAll('.service-icon');
|
||||
const broke = '/broken-image.png'
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const serviceIcons = document.querySelectorAll<HTMLImageElement>('.service-icon');
|
||||
const broke = '/broken-image.png';
|
||||
|
||||
serviceIcons.forEach(function(icon) {
|
||||
icon.onerror = function() {
|
||||
const serviceUrl = this.getAttribute('data-service-url');
|
||||
const newSrcAttribute = (this.src.includes('on.ho') ? broke : `https://icon.horse/icon/${serviceUrl}`);
|
||||
this.src = this.src !== newSrcAttribute ? newSrcAttribute : broke;
|
||||
this.onerror = null;
|
||||
};
|
||||
});
|
||||
serviceIcons.forEach(function(icon) {
|
||||
icon.onerror = function() {
|
||||
const imgElement = this as HTMLImageElement;
|
||||
const serviceUrl = imgElement.getAttribute('data-service-url');
|
||||
const newSrcAttribute = (imgElement.src.includes('on.ho') ? broke : `https://icon.horse/icon/${serviceUrl}`);
|
||||
imgElement.src = imgElement.src !== newSrcAttribute ? newSrcAttribute : broke;
|
||||
imgElement.onerror = null;
|
||||
};
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<script lang="ts">
|
||||
import { onMount } from "svelte";
|
||||
import { writable } from "svelte/store"; // Import writable to create a reactive variable
|
||||
import { writable } from "svelte/store";
|
||||
import type { Category, Service } from "../../types/Service";
|
||||
import { parseMarkdown, formatLink } from '@utils/parse-markdown';
|
||||
import { formatLink } from '@utils/parse-markdown';
|
||||
import { slugify } from '@utils/fetch-data';
|
||||
|
||||
interface ServiceResult extends Service {
|
||||
|
|
@ -14,21 +14,20 @@
|
|||
|
||||
let results = writable<ServiceResult[]>([]);
|
||||
|
||||
const normalize = (str: string) => str.toLowerCase().replace(/[^a-z0-9]/g, '');
|
||||
|
||||
onMount(async () => {
|
||||
|
||||
const apiEndpoint = `https://awesome-privacy.as93.workers.dev/${searchTerm}`;
|
||||
const fetchedServices = await fetch(apiEndpoint)
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
console.log("SmartSuggestions data", data);
|
||||
return JSON.parse(data);
|
||||
});
|
||||
.then((data) => (JSON.parse(data) || []).map((servName: string) => normalize(servName)));
|
||||
|
||||
const tmpResults: ServiceResult[] = [];
|
||||
categories.forEach((category) => {
|
||||
(category.sections || []).forEach((section) => {
|
||||
(section.services || []).forEach((service) => {
|
||||
if (fetchedServices.includes(service.name)) {
|
||||
if (fetchedServices.includes(normalize(service.name))) {
|
||||
const path = `/${slugify(category.name)}/${slugify(section.name)}#${slugify(service.name)}`
|
||||
tmpResults.push({ ...service, path });
|
||||
return;
|
||||
|
|
@ -116,6 +115,11 @@
|
|||
margin: 0;
|
||||
font-size: 0.85rem;
|
||||
font-weight: 400;
|
||||
max-width: 100px;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.service-icon {
|
||||
|
|
|
|||
|
|
@ -222,6 +222,9 @@ h2 {
|
|||
color: var(--foreground);
|
||||
font-size: 0.8rem;
|
||||
opacity: 0.5;
|
||||
@media (max-width: 768px) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ import Main from '@components/scafold/MainCard.astro';
|
|||
import { fetchData, slugify } from '@utils/fetch-data';
|
||||
|
||||
import type { Section } from '../types/Service';
|
||||
import Button from '@components/form/Button.astro';
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
|
|
@ -15,8 +16,9 @@ interface Props {
|
|||
|
||||
const { title, sections } = Astro.props;
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const categories = (await fetchData()).categories;
|
||||
|
||||
export async function getStaticPaths() {
|
||||
const pages = await fetchData().then((data) => {
|
||||
return data.categories.map((category) => {
|
||||
return {
|
||||
|
|
@ -35,14 +37,66 @@ export async function getStaticPaths() {
|
|||
});
|
||||
}
|
||||
|
||||
const makePaginationLinks = () => {
|
||||
const index = categories.findIndex(category => category.name === title);
|
||||
const previousCategory = index > 0 ? categories[index - 1].name : null;
|
||||
const nextCategory = index < categories.length - 1 ? categories[index + 1].name : null;
|
||||
return { previous: previousCategory, next: nextCategory };
|
||||
};
|
||||
|
||||
const { previous, next } = makePaginationLinks();
|
||||
|
||||
---
|
||||
|
||||
<Layout title={`${title} | Awesome Privacy`}>
|
||||
<Main>
|
||||
<SectionList title={title} sections={sections} bigTitle={true} />
|
||||
<div class="pagination-navigation">
|
||||
{ previous ? (
|
||||
<Button url={`/${slugify(previous)}`}>
|
||||
<span>← Previous</span>
|
||||
<p>{previous}</p>
|
||||
</Button>
|
||||
) : <p class="nothing"></p>}
|
||||
{ next && (
|
||||
<Button url={`/${slugify(next)}`}>
|
||||
<span>Next →</span>
|
||||
<p>{next}</p>
|
||||
</Button>
|
||||
)}
|
||||
</div>
|
||||
</Main>
|
||||
</Layout>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
.pagination-navigation {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 1rem 0;
|
||||
:global(.button) {
|
||||
min-width: 120px;
|
||||
width: fit-content;
|
||||
padding: 0.25rem 1rem;
|
||||
text-align: right;
|
||||
&:first-child { text-align: left; }
|
||||
p {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
font-size: 1rem;
|
||||
}
|
||||
span {
|
||||
font-size: 0.8rem;
|
||||
}
|
||||
|
||||
}
|
||||
.nothing {
|
||||
width: 120px;
|
||||
}
|
||||
.go-to-category {
|
||||
color: var(--foreground);
|
||||
font-size: 0.8rem;
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -3,102 +3,146 @@
|
|||
import Layout from '@layouts/Layout.astro';
|
||||
import Main from '@components/scafold/MainCard.astro';
|
||||
import Icon from '@components/form/Icon.astro';
|
||||
import { parseMarkdown } from '@utils/parse-markdown';
|
||||
|
||||
const contributorsResource = async () => {
|
||||
const url = 'https://api.github.com/repos/lissy93/personal-security-checklist/contributors?per_page=100';
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch contributors');
|
||||
}
|
||||
return await response.json();
|
||||
};
|
||||
const url = 'https://api.github.com/repos/lissy93/personal-security-checklist/contributors?per_page=100';
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch contributors');
|
||||
}
|
||||
return await response.json();
|
||||
};
|
||||
|
||||
const sponsorsResource = async () => {
|
||||
const url = 'https://github-sponsors.as93.workers.dev/lissy93';
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch sponsors');
|
||||
}
|
||||
return await response.json();
|
||||
};
|
||||
const sponsorsResource = async () => {
|
||||
const url = 'https://github-sponsors.as93.workers.dev/lissy93';
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch sponsors');
|
||||
}
|
||||
return await response.json();
|
||||
};
|
||||
|
||||
export const projects = [
|
||||
{
|
||||
title: 'Email Comparison',
|
||||
description: 'Objective comparison of private/secure mail providers',
|
||||
icon: 'https://email-comparison.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/email-comparison',
|
||||
},
|
||||
{
|
||||
title: 'Personal Security Checklist',
|
||||
description: 'Checklist of security tips, for protecting your privacy',
|
||||
icon: 'https://i.ibb.co/Rb6P6h6/shield.png',
|
||||
link: 'https://github.com/Lissy93/personal-security-checklist',
|
||||
},
|
||||
const licenseContent = async () => {
|
||||
const url = 'https://raw.githubusercontent.com/Lissy93/awesome-privacy/HEAD/LICENSE';
|
||||
const response = await fetch(url);
|
||||
if (!response.ok) {
|
||||
throw new Error('Failed to fetch license');
|
||||
}
|
||||
return await response.text();
|
||||
};
|
||||
|
||||
const projectRequrements = `
|
||||
For software to be included in this list, it must meet the following requirements:
|
||||
|
||||
- **Privacy Respecting**
|
||||
- The project must respect users privacy, not collect more data than necessary, and store info securely
|
||||
- For hosted services, the project must have a clear privacy policy
|
||||
- The user must remain in full control of their data, and be able to delete it at any time
|
||||
- **Secure**
|
||||
- The software must be secure by default, without requiring additional configuration
|
||||
- There should be no current, critical security issues
|
||||
- The handling of past issues must have been prompt, transparent and effective
|
||||
- **Open Source**
|
||||
- The full source code should be released under an open source license
|
||||
- Ideally it should be possible for the user to build and run/deploy the software themselves from source
|
||||
- **Actively Maintained**
|
||||
- The developers should address dependency updates and security patches in a timely manner
|
||||
- **Transparent**
|
||||
- It should be clear who is behind the project, what their motives are, and what (if any) the funding model is
|
||||
- **Ethical**
|
||||
- Must not suppress free speech, discriminate or disregard any human rights
|
||||
- **Relevant**
|
||||
- The software must be relevant, and fit into one of the existing categories
|
||||
- **Functional**
|
||||
- Must be fully functional, and not just a concept or idea
|
||||
- A stable (non-alpha/beta) release is required at a minimum
|
||||
- Must be accessible to the general public, and not just a select group of people
|
||||
- If technical knowledge is required to run it, the software must be well documented
|
||||
|
||||
_There may be some exceptions, but these would need to be fully justified, reviewed
|
||||
by the community, and the drawbacks / anti-features must be clearly listed along-side the software.
|
||||
Usually these entries go within the "Notable Mentions" section instead._
|
||||
`;
|
||||
|
||||
|
||||
const projects = [
|
||||
{
|
||||
title: 'Web-Check',
|
||||
description: 'OSINT tool for analysing any website',
|
||||
icon: 'https://icon.horse/icon/web-check.xyz',
|
||||
link: 'https://github.com/lissy93/web-check',
|
||||
},
|
||||
title: 'Email Comparison',
|
||||
description: 'Objective comparison of private/secure mail providers',
|
||||
icon: 'https://email-comparison.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/email-comparison',
|
||||
},
|
||||
{
|
||||
title: 'Dashy',
|
||||
description: 'Dashboard app, for organising your self-hosted services',
|
||||
icon: 'https://dashy.to/img/dashy.png',
|
||||
link: 'https://github.com/lissy93/dashy',
|
||||
},
|
||||
{
|
||||
title: 'Portainer-Templates',
|
||||
description: 'Compiled repository of 1-click Docker apps for self-hosting',
|
||||
icon: 'https://portainer-templates.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/portainer-templates',
|
||||
},
|
||||
{
|
||||
title: 'AdGuardian',
|
||||
description: 'CLI tool for monitoring your networks traffic and AdGuard DNS stats',
|
||||
icon: 'https://adguardian.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/adguardian-term',
|
||||
},
|
||||
{
|
||||
title: 'Bug-Bounties',
|
||||
description: 'Database of websites which accept responsible vulnerability discolsure',
|
||||
icon: 'https://bug-bounties.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/bug-bounties',
|
||||
},
|
||||
{
|
||||
title: 'Git-In',
|
||||
description: 'Tools and resources to help beginners get into open source',
|
||||
icon: 'https://www.git-in.to/favicon.png',
|
||||
link: 'https://github.com/lissy93/git-in',
|
||||
},
|
||||
title: 'Personal Security Checklist',
|
||||
description: 'Checklist of security tips, for protecting your privacy',
|
||||
icon: 'https://i.ibb.co/Rb6P6h6/shield.png',
|
||||
link: 'https://github.com/Lissy93/personal-security-checklist',
|
||||
},
|
||||
{
|
||||
title: 'Web-Check',
|
||||
description: 'OSINT tool for analysing any website',
|
||||
icon: 'https://icon.horse/icon/web-check.xyz',
|
||||
link: 'https://github.com/lissy93/web-check',
|
||||
},
|
||||
{
|
||||
title: 'Dashy',
|
||||
description: 'Dashboard app, for organising your self-hosted services',
|
||||
icon: 'https://dashy.to/img/dashy.png',
|
||||
link: 'https://github.com/lissy93/dashy',
|
||||
},
|
||||
{
|
||||
title: 'Portainer-Templates',
|
||||
description: 'Compiled repository of 1-click Docker apps for self-hosting',
|
||||
icon: 'https://portainer-templates.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/portainer-templates',
|
||||
},
|
||||
{
|
||||
title: 'AdGuardian',
|
||||
description: 'CLI tool for monitoring your networks traffic and AdGuard DNS stats',
|
||||
icon: 'https://adguardian.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/adguardian-term',
|
||||
},
|
||||
{
|
||||
title: 'Bug-Bounties',
|
||||
description: 'Database of websites which accept responsible vulnerability discolsure',
|
||||
icon: 'https://bug-bounties.as93.net/favicon.png',
|
||||
link: 'https://github.com/lissy93/bug-bounties',
|
||||
},
|
||||
{
|
||||
title: 'Git-In',
|
||||
description: 'Tools and resources to help beginners get into open source',
|
||||
icon: 'https://www.git-in.to/favicon.png',
|
||||
link: 'https://github.com/lissy93/git-in',
|
||||
},
|
||||
];
|
||||
|
||||
export const socials = [
|
||||
{
|
||||
title: 'GitHub',
|
||||
icon: 'hub',
|
||||
link: 'https://github.com/lissy93',
|
||||
},
|
||||
{
|
||||
title: 'Twitter',
|
||||
icon: 'twitter',
|
||||
link: 'https://x.com/lissy_sykes',
|
||||
},
|
||||
{
|
||||
title: 'Mastodon',
|
||||
icon: 'mastodon',
|
||||
link: 'https://mastodon.social/@lissy93',
|
||||
},
|
||||
{
|
||||
title: 'Dev',
|
||||
icon: 'dev',
|
||||
link: 'https://dev.to/lissy93',
|
||||
},
|
||||
{
|
||||
title: 'LinkedIn',
|
||||
icon: 'linkedin',
|
||||
link: 'https://linkedin.com/in/aliciasykes',
|
||||
},
|
||||
{
|
||||
title: 'GitHub',
|
||||
icon: 'hub',
|
||||
link: 'https://github.com/lissy93',
|
||||
},
|
||||
{
|
||||
title: 'Twitter',
|
||||
icon: 'twitter',
|
||||
link: 'https://x.com/lissy_sykes',
|
||||
},
|
||||
{
|
||||
title: 'Mastodon',
|
||||
icon: 'mastodon',
|
||||
link: 'https://mastodon.social/@lissy93',
|
||||
},
|
||||
{
|
||||
title: 'Dev',
|
||||
icon: 'dev',
|
||||
link: 'https://dev.to/lissy93',
|
||||
},
|
||||
{
|
||||
title: 'LinkedIn',
|
||||
icon: 'linkedin',
|
||||
link: 'https://linkedin.com/in/aliciasykes',
|
||||
},
|
||||
];
|
||||
|
||||
const description = 'Privacy is a fundamental human right; '
|
||||
|
|
@ -128,6 +172,10 @@ const description = 'Privacy is a fundamental human right; '
|
|||
</p>
|
||||
<hr />
|
||||
|
||||
<h2>Software Requirements</h2>
|
||||
<div class="software-requirements"><p set:html={parseMarkdown(projectRequrements)}></p></div>
|
||||
<hr />
|
||||
|
||||
<h2>Contributing</h2>
|
||||
<p>
|
||||
Awesome Privacy (including all data and code) is fully open source,
|
||||
|
|
@ -237,12 +285,14 @@ const description = 'Privacy is a fundamental human right; '
|
|||
|
||||
<h2>License</h2>
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
|
||||
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
|
||||
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
|
||||
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
|
||||
eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident,
|
||||
sunt in culpa qui officia deserunt mollit anim id est laborum.
|
||||
All content on Awesome Privacy is freely available, within the public domain,
|
||||
licensed under Creative Commons Zero v1.0 Universal.
|
||||
The code for the website is licensed under MIT.
|
||||
</p>
|
||||
<p>
|
||||
{licenseContent().then((license) => {
|
||||
return (<pre class="license-content">{license}</pre>)
|
||||
})}
|
||||
</p>
|
||||
|
||||
</Main>
|
||||
|
|
@ -273,6 +323,26 @@ h3 {
|
|||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.software-requirements {
|
||||
:global(p) {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
:global(ul) {
|
||||
padding-left: 0.5rem;
|
||||
list-style: none;
|
||||
font-size: 1.1rem;
|
||||
:global(li ul) {
|
||||
padding: 0 0 0.5rem 1rem;
|
||||
list-style: circle;
|
||||
}
|
||||
|
||||
}
|
||||
:global(ul li:hover strong) {
|
||||
transition: color 0.2s ease-in-out;
|
||||
color: var(--accent-3);
|
||||
}
|
||||
}
|
||||
|
||||
.user-list {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
|
@ -297,6 +367,17 @@ h3 {
|
|||
}
|
||||
}
|
||||
|
||||
.license-content {
|
||||
max-height: 500px;
|
||||
overflow: scroll;
|
||||
background: #e6e6ee;
|
||||
width: fit-content;
|
||||
border-radius: var(--curve-sm);
|
||||
padding: 0.5rem;
|
||||
font-size: 0.7rem;
|
||||
font-family: mono;
|
||||
}
|
||||
|
||||
.author {
|
||||
p {
|
||||
margin: 1rem 0 0 0;
|
||||
|
|
@ -305,6 +386,9 @@ h3 {
|
|||
padding-left: 1.5rem;
|
||||
list-style: circle;
|
||||
margin-bottom: 0;
|
||||
li {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
.about {
|
||||
font-size: 1.4rem;
|
||||
|
|
|
|||
|
|
@ -2,12 +2,9 @@
|
|||
|
||||
|
||||
import Layout from '@layouts/Layout.astro';
|
||||
import Button from '@components/form/Button.astro';
|
||||
import Main from '@components/scafold/MainCard.astro';
|
||||
import ServiceList from '@components/things/ServiceList.astro';
|
||||
import type { AwesomePrivacy, Section, Service, ShortService } from '../types/Service';
|
||||
import type { AwesomePrivacy, Section } from '../types/Service';
|
||||
import { fetchData, slugify } from '@utils/fetch-data';
|
||||
import { parseMarkdown } from '@utils/parse-markdown';
|
||||
import FontAwesome from '@components/form/FontAwesome.svelte';
|
||||
|
||||
const categories = (await fetchData() as AwesomePrivacy)?.categories || [];
|
||||
|
|
@ -91,7 +88,7 @@ main {
|
|||
margin: 2rem auto;
|
||||
padding: 1rem;
|
||||
width: 1000px;
|
||||
max-width: calc(100% - 2rem);
|
||||
max-width: calc(100% - 5rem);
|
||||
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ import Layout from '@layouts/Layout.astro';
|
|||
import SectionList from '@components/things/SectionList.astro';
|
||||
|
||||
import { fetchData } from '@utils/fetch-data';
|
||||
import { Category } from '../types/Service';
|
||||
import type { Category } from '../types/Service';
|
||||
|
||||
const categories: Category[] = (await fetchData())?.categories;
|
||||
|
||||
|
|
@ -35,69 +35,75 @@ const categories: Category[] = (await fetchData())?.categories;
|
|||
</Layout>
|
||||
|
||||
<script>
|
||||
const filterInput = document.querySelector('input');
|
||||
const categories = document.querySelectorAll('.category');
|
||||
const pressEnterMsg = document.getElementById('press-enter-msg');
|
||||
// Time for some good ol' fashioned vanilla JS...
|
||||
// I reccomend you not to look at this code for too long, it's not pretty.
|
||||
const filterInput = document.querySelector('input');
|
||||
const categories = document.querySelectorAll<HTMLElement>('.category');
|
||||
const pressEnterMsg = document.getElementById('press-enter-msg') as HTMLElement | null;
|
||||
const noResults = document.querySelector('.no-results') as HTMLElement | null;
|
||||
|
||||
filterInput?.addEventListener('input', (e) => {
|
||||
let resultsCount = 0;
|
||||
const filter = e.target.value.toLowerCase();
|
||||
if (filter.length > 0) {
|
||||
pressEnterMsg.style.visibility = 'visible';
|
||||
} else {
|
||||
pressEnterMsg.style.visibility = 'hidden';
|
||||
}
|
||||
categories.forEach((category) => {
|
||||
const title = category.querySelector('.category-title').textContent.toLowerCase();
|
||||
const sections = category.querySelectorAll('.section');
|
||||
let count = 0;
|
||||
sections.forEach((section) => {
|
||||
const sectionTitle = section?.textContent?.toLowerCase();
|
||||
if (sectionTitle?.includes(filter)) {
|
||||
section.style.display = 'block';
|
||||
count++;
|
||||
resultsCount++;
|
||||
} else {
|
||||
section.style.display = 'none';
|
||||
}
|
||||
});
|
||||
if (title.includes(filter)) {
|
||||
category.style.display = 'inline-flex';
|
||||
if (!pressEnterMsg || !noResults) {
|
||||
throw new Error('No pressEnterMsg or noResults');
|
||||
};
|
||||
|
||||
filterInput?.addEventListener('input', (e) => {
|
||||
let resultsCount = 0;
|
||||
const filter = (e.target as HTMLInputElement).value.toLowerCase();
|
||||
if (filter.length > 0) {
|
||||
pressEnterMsg.style.visibility = 'visible';
|
||||
} else {
|
||||
pressEnterMsg.style.visibility = 'hidden';
|
||||
}
|
||||
categories.forEach((category) => {
|
||||
const titleElement = category.querySelector('.category-title');
|
||||
const title = titleElement ? titleElement.textContent?.toLowerCase() : '';
|
||||
const sections = category.querySelectorAll<HTMLElement>('.section');
|
||||
let count = 0;
|
||||
sections.forEach((section) => {
|
||||
const sectionTitle = section.textContent?.toLowerCase();
|
||||
if (sectionTitle?.includes(filter)) {
|
||||
section.style.display = 'block';
|
||||
count++;
|
||||
resultsCount++;
|
||||
} else if (count === 0) {
|
||||
category.style.display = 'none';
|
||||
} else {
|
||||
section.style.display = 'none';
|
||||
}
|
||||
});
|
||||
const noResults = document.querySelector('.no-results');
|
||||
noResults.style.display = resultsCount === 0 ? 'block' : 'none';
|
||||
if (title && title.includes(filter)) {
|
||||
category.style.display = 'inline-flex';
|
||||
resultsCount++;
|
||||
} else if (count === 0) {
|
||||
category.style.display = 'none';
|
||||
}
|
||||
});
|
||||
noResults.style.display = resultsCount === 0 ? 'block' : 'none';
|
||||
});
|
||||
|
||||
if (typeof window !== 'undefined') {
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const searchInput = document.getElementById('searchInput') as HTMLInputElement | null;
|
||||
if (searchInput === null) return;
|
||||
searchInput.addEventListener('keydown', function(event) {
|
||||
console.log('Keydown', event.key);
|
||||
if (event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
const searchTerm = encodeURIComponent(searchInput.value);
|
||||
window.location.href = `/search/${searchTerm}`;
|
||||
}
|
||||
if (event.key === 'Escape') {
|
||||
searchInput.value = '';
|
||||
searchInput.blur();
|
||||
pressEnterMsg.style.visibility = 'hidden';
|
||||
categories.forEach((category) => {
|
||||
category.style.display = 'inline-flex';
|
||||
const sections = category.querySelectorAll('.section');
|
||||
sections.forEach((section) => {
|
||||
section.style.display = 'block';
|
||||
});
|
||||
if (typeof window !== 'undefined') {
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
const searchInput = document.getElementById('searchInput') as HTMLInputElement | null;
|
||||
if (searchInput === null) return;
|
||||
searchInput.addEventListener('keydown', function(event) {
|
||||
if (event.key === 'Enter') {
|
||||
event.preventDefault();
|
||||
const searchTerm = encodeURIComponent(searchInput.value);
|
||||
window.location.href = `/search/${searchTerm}`;
|
||||
}
|
||||
if (event.key === 'Escape') {
|
||||
searchInput.value = '';
|
||||
searchInput.blur();
|
||||
pressEnterMsg.style.visibility = 'hidden';
|
||||
categories.forEach((category) => {
|
||||
category.style.display = 'inline-flex';
|
||||
const sections = category.querySelectorAll<HTMLElement>('.section');
|
||||
sections.forEach((section) => {
|
||||
section.style.display = 'block';
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,15 +1,15 @@
|
|||
---
|
||||
|
||||
import Layout from '@layouts/Layout.astro';
|
||||
import Card from '@components/Card.astro';
|
||||
import Hero from '@components/Hero.astro';
|
||||
import Search from '@components/things/Search.svelte';
|
||||
import SectionList from '@components/things/SectionList.astro';
|
||||
|
||||
import { fetchData } from '@utils/fetch-data';
|
||||
import Button from '@components/form/Button.astro';
|
||||
import type { Category } from 'src/types/Service';
|
||||
|
||||
const categories = (await fetchData())?.categories || [];
|
||||
const categories = (await fetchData())?.categories || [] as Category[];
|
||||
|
||||
const description = 'Privacy is a fundamental human right; '
|
||||
+ 'without it, we\'re just open books in a world where everyone\'s '
|
||||
|
|
@ -17,7 +17,6 @@ const description = 'Privacy is a fundamental human right; '
|
|||
+ 'Migrating open-source applications which do not collect, sell or log your data is a great first step.'
|
||||
+ 'Awesome Privacy is a directory of alternative privacy-respecting software and services.';
|
||||
|
||||
|
||||
---
|
||||
|
||||
<Layout title="Home | Awesome Privacy" hideNav={true} description={description}>
|
||||
|
|
@ -74,7 +73,7 @@ const description = 'Privacy is a fundamental human right; '
|
|||
margin: auto;
|
||||
padding: 1rem;
|
||||
width: 1100px;
|
||||
max-width: calc(100% - 2rem);
|
||||
max-width: calc(100% - 5rem);
|
||||
font-size: 20px;
|
||||
line-height: 1.6;
|
||||
.view-all {
|
||||
|
|
@ -97,6 +96,23 @@ const description = 'Privacy is a fundamental human right; '
|
|||
text-decoration: none;
|
||||
color: var(--accent-3);
|
||||
font-family: "Lekton", sans-serif;
|
||||
position: relative;
|
||||
&:after {
|
||||
background: none repeat scroll 0 0 transparent;
|
||||
bottom: 0;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 3px;
|
||||
left: 50%;
|
||||
position: absolute;
|
||||
background: var(--accent);
|
||||
transition: width 0.3s ease 0s, left 0.3s ease 0s;
|
||||
width: 0;
|
||||
}
|
||||
&:hover:after {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
import Fuse from 'fuse.js';
|
||||
|
||||
import Layout from '@layouts/Layout.astro';
|
||||
import Buton from '@components/form/Button.astro';
|
||||
import { fetchData, slugify } from '@utils/fetch-data';
|
||||
import { prepareSearchItems, searchOptions } from '@utils/do-searchy-searchy';
|
||||
import Search from '@components/things/Search.svelte';
|
||||
|
|
@ -27,14 +26,6 @@ const searchResults = fuse.search(searchTerm || '').map(result => result.item);
|
|||
|
||||
const services = searchResults.filter(result => result.type === 'Service');
|
||||
|
||||
interface RenderResults {
|
||||
categoryName: string;
|
||||
sections: {
|
||||
sectionName: string;
|
||||
items: Service;
|
||||
}
|
||||
};
|
||||
|
||||
const putResultsIntoGroups = () => {
|
||||
const grouped = services.reduce((acc, item) => {
|
||||
const { category: categoryName, sectionName, ...service } = item;
|
||||
|
|
@ -52,8 +43,9 @@ const putResultsIntoGroups = () => {
|
|||
return acc;
|
||||
}, {});
|
||||
|
||||
// Convert the grouped object into the desired array structure
|
||||
return Object.values(grouped).map(category => ({
|
||||
// Convert the grouped object into the desired array structure.
|
||||
// And fuck it, let's use `any`
|
||||
return Object.values(grouped).map((category: any) => ({
|
||||
categoryName: category.categoryName,
|
||||
sections: Object.values(category.sections)
|
||||
}));
|
||||
|
|
@ -66,9 +58,9 @@ const beer = putResultsIntoGroups();
|
|||
<Layout title="Search | Awesome Privacy">
|
||||
<section>
|
||||
<h1>Search</h1>
|
||||
<Search client:visible data={categories} />
|
||||
<Search client:visible data={categories} previousSearch={searchTerm} />
|
||||
</section>
|
||||
<SmartSuggestions client:visible searchTerm={searchTerm} categories={categories} />
|
||||
<SmartSuggestions client:visible searchTerm={searchTerm || ''} categories={categories} />
|
||||
<section class="result-count">
|
||||
<h3>Deep Search</h3>
|
||||
<p>Showing {services.length} results for "{searchTerm}" sorted by relevence</p>
|
||||
|
|
@ -82,11 +74,11 @@ const beer = putResultsIntoGroups();
|
|||
</a>
|
||||
<span class="section-icon"><FontAwesome iconName={slugify(category.categoryName)} /></span>
|
||||
<ul class="section-list">
|
||||
{category.sections.map(section => (
|
||||
{category.sections.map((section: any) => (
|
||||
<li class="section-item">
|
||||
<h4>{section.sectionName}</h4>
|
||||
<ul class="service-list">
|
||||
{section.items.map(item => (
|
||||
{section.items.map((item: Service) => (
|
||||
<li>
|
||||
<a href={item.url}>{item.name}</a>
|
||||
</li>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
---
|
||||
|
||||
import Layout from '@layouts/Layout.astro';
|
||||
import Buton from '@components/form/Button.astro';
|
||||
import { fetchData } from '@utils/fetch-data';
|
||||
|
||||
import Search from '@components/things/Search.svelte';
|
||||
|
|
@ -30,7 +29,7 @@ section {
|
|||
border-radius: var(--curve-sm);
|
||||
margin: 2rem auto;
|
||||
padding: 1rem;
|
||||
width: calc(100% - 2rem);
|
||||
width: calc(100% - 5rem);
|
||||
max-width: 1100px;
|
||||
min-height: 80vh;
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,4 @@
|
|||
import Fuse from 'fuse.js';
|
||||
// import { slugify } from '@utils/fetch-data';
|
||||
import type { Category, Section, Service, ShortService } from '../types/Service';
|
||||
// import { formatLink } from '@utils/parse-markdown';
|
||||
import type { Category } from '../types/Service';
|
||||
|
||||
export const prepareSearchItems = (categories: Category[]) => {
|
||||
const items: any = [];
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
|
||||
import yaml from 'js-yaml';
|
||||
|
||||
import type { AwesomePrivacy, Section, Service } from '../types/Service';
|
||||
import type { AwesomePrivacy } from '../types/Service';
|
||||
|
||||
export const fetchData = async (): Promise<AwesomePrivacy> => {
|
||||
return await fetch('http://localhost:4321/awesome-privacy.yml')
|
||||
.then((res) => res.text())
|
||||
.then((data) => yaml.load(data))
|
||||
.catch((err) => console.error(err)) as AwesomePrivacy;
|
||||
.catch((err) => console.error('ah crap', err)) as AwesomePrivacy;
|
||||
}
|
||||
|
||||
export const slugify = (title: string) => {
|
||||
|
|
|
|||
430
web/yarn.lock
430
web/yarn.lock
|
|
@ -73,6 +73,15 @@
|
|||
unist-util-visit "^5.0.0"
|
||||
vfile "^6.0.1"
|
||||
|
||||
"@astrojs/netlify@^5.1.2":
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@astrojs/netlify/-/netlify-5.1.2.tgz#fb36f69e80f86e914cf67196ba51c0d9cda44faf"
|
||||
integrity sha512-capy8kLSgv4qryZ7rski+Qt1EnDs/l+VCzhGBtYuUbuShGhadPRRTQmxgIlUfWpblEd3vHtmkJDg3mxxyFsEqg==
|
||||
dependencies:
|
||||
"@astrojs/underscore-redirects" "^0.3.3"
|
||||
"@netlify/functions" "^2.0.1"
|
||||
esbuild "^0.19.5"
|
||||
|
||||
"@astrojs/partytown@^2.0.4":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@astrojs/partytown/-/partytown-2.0.4.tgz#402ebabf2813f916bd9fb9fb8a85b0cb98133d03"
|
||||
|
|
@ -117,6 +126,24 @@
|
|||
is-wsl "^3.0.0"
|
||||
which-pm-runs "^1.1.0"
|
||||
|
||||
"@astrojs/underscore-redirects@^0.3.3":
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@astrojs/underscore-redirects/-/underscore-redirects-0.3.3.tgz#a968b6980ad34d84093100264a1035b130732137"
|
||||
integrity sha512-qDAKhFO4M1KzP7mxoJfiehf8oyf3EB158MxAa6z10NeD2pR3o4K3LlOQI8CfJgXE+BDBQcnaLvVCg/Mz/Gkg4Q==
|
||||
|
||||
"@astrojs/vercel@^7.3.2":
|
||||
version "7.3.2"
|
||||
resolved "https://registry.yarnpkg.com/@astrojs/vercel/-/vercel-7.3.2.tgz#2ff0a3c8603a4fb492706a74a8317b3ba7a0eebd"
|
||||
integrity sha512-fFYatU4uCO41JDu+38Mg0K874fbXwAs4JPQ2BmYlUqx2C1IM+pum/4RgTl0zCuwIpDpwMnhV80izTStUSIwp0A==
|
||||
dependencies:
|
||||
"@astrojs/internal-helpers" "0.2.1"
|
||||
"@vercel/analytics" "^1.0.2"
|
||||
"@vercel/nft" "^0.24.3"
|
||||
esbuild "^0.19.6"
|
||||
fast-glob "^3.3.2"
|
||||
set-cookie-parser "^2.6.0"
|
||||
web-vitals "^3.4.0"
|
||||
|
||||
"@awesome.me/kit-c134243295@^1.0.10":
|
||||
version "1.0.10"
|
||||
resolved "https://npm.fontawesome.com/@awesome.me/kit-c134243295/-/1.0.10/kit-c134243295.tgz#e81e7572b9b107bf90983d658c2efb27abf69916"
|
||||
|
|
@ -540,6 +567,41 @@
|
|||
"@jridgewell/resolve-uri" "^3.1.0"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||
|
||||
"@mapbox/node-pre-gyp@^1.0.5":
|
||||
version "1.0.11"
|
||||
resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa"
|
||||
integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ==
|
||||
dependencies:
|
||||
detect-libc "^2.0.0"
|
||||
https-proxy-agent "^5.0.0"
|
||||
make-dir "^3.1.0"
|
||||
node-fetch "^2.6.7"
|
||||
nopt "^5.0.0"
|
||||
npmlog "^5.0.1"
|
||||
rimraf "^3.0.2"
|
||||
semver "^7.3.5"
|
||||
tar "^6.1.11"
|
||||
|
||||
"@netlify/functions@^2.0.1":
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/@netlify/functions/-/functions-2.6.0.tgz#801a6fe8ceef2ce1512c637a28e53e6a3aae289b"
|
||||
integrity sha512-vU20tij0fb4nRGACqb+5SQvKd50JYyTyEhQetCMHdakcJFzjLDivvRR16u1G2Oy4A7xNAtGJF1uz8reeOtTVcQ==
|
||||
dependencies:
|
||||
"@netlify/serverless-functions-api" "1.14.0"
|
||||
|
||||
"@netlify/node-cookies@^0.1.0":
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@netlify/node-cookies/-/node-cookies-0.1.0.tgz#dda912ba618527695cf519fafa221c5e6777c612"
|
||||
integrity sha512-OAs1xG+FfLX0LoRASpqzVntVV/RpYkgpI0VrUnw2u0Q1qiZUzcPffxRK8HF3gc4GjuhG5ahOEMJ9bswBiZPq0g==
|
||||
|
||||
"@netlify/serverless-functions-api@1.14.0":
|
||||
version "1.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@netlify/serverless-functions-api/-/serverless-functions-api-1.14.0.tgz#2bedff76cf898e24e48161aa2508776c4d261ed1"
|
||||
integrity sha512-HUNETLNvNiC2J+SB/YuRwJA9+agPrc0azSoWVk8H85GC+YE114hcS5JW+dstpKwVerp2xILE3vNWN7IMXP5Q5Q==
|
||||
dependencies:
|
||||
"@netlify/node-cookies" "^0.1.0"
|
||||
urlpattern-polyfill "8.0.2"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz"
|
||||
|
|
@ -561,6 +623,14 @@
|
|||
"@nodelib/fs.scandir" "2.1.5"
|
||||
fastq "^1.6.0"
|
||||
|
||||
"@rollup/pluginutils@^4.0.0":
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d"
|
||||
integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==
|
||||
dependencies:
|
||||
estree-walker "^2.0.1"
|
||||
picomatch "^2.2.2"
|
||||
|
||||
"@rollup/rollup-android-arm-eabi@4.10.0":
|
||||
version "4.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz#786eaf6372be2fc209cc957c14aa9d3ff8fefe6a"
|
||||
|
|
@ -756,6 +826,30 @@
|
|||
resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz"
|
||||
integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
|
||||
|
||||
"@vercel/analytics@^1.0.2":
|
||||
version "1.2.2"
|
||||
resolved "https://registry.yarnpkg.com/@vercel/analytics/-/analytics-1.2.2.tgz#715d8f203a170c06ba36b363e03b048c03060d5d"
|
||||
integrity sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==
|
||||
dependencies:
|
||||
server-only "^0.0.1"
|
||||
|
||||
"@vercel/nft@^0.24.3":
|
||||
version "0.24.4"
|
||||
resolved "https://registry.yarnpkg.com/@vercel/nft/-/nft-0.24.4.tgz#b8942340c7821e6ff7bdf943b559642dbc9cae78"
|
||||
integrity sha512-KjYAZty7boH5fi5udp6p+lNu6nawgs++pHW+3koErMgbRkkHuToGX/FwjN5clV1FcaM3udfd4zW/sUapkMgpZw==
|
||||
dependencies:
|
||||
"@mapbox/node-pre-gyp" "^1.0.5"
|
||||
"@rollup/pluginutils" "^4.0.0"
|
||||
acorn "^8.6.0"
|
||||
async-sema "^3.1.1"
|
||||
bindings "^1.4.0"
|
||||
estree-walker "2.0.2"
|
||||
glob "^7.1.3"
|
||||
graceful-fs "^4.2.9"
|
||||
micromatch "^4.0.2"
|
||||
node-gyp-build "^4.2.2"
|
||||
resolve-from "^5.0.0"
|
||||
|
||||
"@volar/kit@~2.0.4":
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npmjs.org/@volar/kit/-/kit-2.0.4.tgz"
|
||||
|
|
@ -845,11 +939,23 @@
|
|||
resolved "https://registry.npmjs.org/@vscode/l10n/-/l10n-0.0.18.tgz"
|
||||
integrity sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==
|
||||
|
||||
acorn@^8.10.0, acorn@^8.11.2, acorn@^8.9.0:
|
||||
abbrev@1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
||||
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
|
||||
|
||||
acorn@^8.10.0, acorn@^8.11.2, acorn@^8.6.0, acorn@^8.9.0:
|
||||
version "8.11.3"
|
||||
resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz"
|
||||
integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
|
||||
|
||||
agent-base@6:
|
||||
version "6.0.2"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
|
||||
integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
|
||||
dependencies:
|
||||
debug "4"
|
||||
|
||||
ansi-align@^3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz"
|
||||
|
|
@ -894,6 +1000,19 @@ anymatch@~3.1.2:
|
|||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
"aproba@^1.0.3 || ^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
|
||||
integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
|
||||
|
||||
are-we-there-yet@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c"
|
||||
integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==
|
||||
dependencies:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^3.6.0"
|
||||
|
||||
arg@^5.0.0:
|
||||
version "5.0.2"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
|
||||
|
|
@ -996,6 +1115,11 @@ astro@^4.3.6:
|
|||
optionalDependencies:
|
||||
sharp "^0.32.6"
|
||||
|
||||
async-sema@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/async-sema/-/async-sema-3.1.1.tgz#e527c08758a0f8f6f9f15f799a173ff3c40ea808"
|
||||
integrity sha512-tLRNUXati5MFePdAk8dw7Qt7DpxPB60ofAgn8WRhW6a2rcimZnYBP9oxHiv0OHy+Wz7kPMG+t4LGdt31+4EmGg==
|
||||
|
||||
axobject-query@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.npmjs.org/axobject-query/-/axobject-query-4.0.0.tgz"
|
||||
|
|
@ -1013,6 +1137,11 @@ bail@^2.0.0:
|
|||
resolved "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
|
||||
integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==
|
||||
|
||||
balanced-match@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||
|
||||
bare-events@^2.0.0, bare-events@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz"
|
||||
|
|
@ -1055,6 +1184,13 @@ binary-extensions@^2.0.0:
|
|||
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
|
||||
integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
|
||||
|
||||
bindings@^1.4.0:
|
||||
version "1.5.0"
|
||||
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
|
||||
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
||||
dependencies:
|
||||
file-uri-to-path "1.0.0"
|
||||
|
||||
bl@^4.0.3:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz"
|
||||
|
|
@ -1087,6 +1223,14 @@ boxen@^7.1.1:
|
|||
widest-line "^4.0.1"
|
||||
wrap-ansi "^8.1.0"
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
braces@^3.0.2, braces@~3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz"
|
||||
|
|
@ -1184,6 +1328,11 @@ chownr@^1.1.1:
|
|||
resolved "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"
|
||||
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
||||
|
||||
chownr@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
|
||||
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
|
||||
|
||||
ci-info@^3.8.0:
|
||||
version "3.9.0"
|
||||
resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz"
|
||||
|
|
@ -1268,6 +1417,11 @@ color-string@^1.9.0:
|
|||
color-name "^1.0.0"
|
||||
simple-swizzle "^0.2.2"
|
||||
|
||||
color-support@^1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2"
|
||||
integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==
|
||||
|
||||
color@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz"
|
||||
|
|
@ -1286,6 +1440,16 @@ common-ancestor-path@^1.0.1:
|
|||
resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz"
|
||||
integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==
|
||||
|
||||
concat-map@0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
||||
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
|
||||
|
||||
console-control-strings@^1.0.0, console-control-strings@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
|
||||
integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==
|
||||
|
||||
convert-source-map@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz"
|
||||
|
|
@ -1325,6 +1489,13 @@ debug@2:
|
|||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^3.2.6:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"
|
||||
|
|
@ -1332,13 +1503,6 @@ debug@^3.2.6:
|
|||
dependencies:
|
||||
ms "^2.1.1"
|
||||
|
||||
debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
decode-named-character-reference@^1.0.0:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz"
|
||||
|
|
@ -1368,6 +1532,11 @@ deepmerge@^4.3.1:
|
|||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
|
||||
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
|
||||
|
||||
delegates@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
||||
integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
|
||||
|
||||
dequal@^2.0.0, dequal@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
|
||||
|
|
@ -1462,7 +1631,7 @@ es-module-lexer@^1.4.1:
|
|||
resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz"
|
||||
integrity sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==
|
||||
|
||||
esbuild@^0.19.3, esbuild@^0.19.6:
|
||||
esbuild@^0.19.3, esbuild@^0.19.5, esbuild@^0.19.6:
|
||||
version "0.19.12"
|
||||
resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.19.12.tgz"
|
||||
integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==
|
||||
|
|
@ -1511,6 +1680,11 @@ esprima@^4.0.0:
|
|||
resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"
|
||||
integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
|
||||
|
||||
estree-walker@2.0.2, estree-walker@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||
|
||||
estree-walker@^3.0.0, estree-walker@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz"
|
||||
|
|
@ -1578,6 +1752,11 @@ fastq@^1.6.0:
|
|||
dependencies:
|
||||
reusify "^1.0.4"
|
||||
|
||||
file-uri-to-path@1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
|
||||
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
|
||||
|
|
@ -1619,6 +1798,18 @@ fs-constants@^1.0.0:
|
|||
resolved "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"
|
||||
integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==
|
||||
|
||||
fs-minipass@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
|
||||
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
|
||||
fs.realpath@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
|
||||
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
|
||||
|
||||
fsevents@~2.3.2, fsevents@~2.3.3:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6"
|
||||
|
|
@ -1629,6 +1820,26 @@ function-bind@^1.1.2:
|
|||
resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz"
|
||||
integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==
|
||||
|
||||
fuse.js@^7.0.0:
|
||||
version "7.0.0"
|
||||
resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.0.0.tgz#6573c9fcd4c8268e403b4fc7d7131ffcf99a9eb2"
|
||||
integrity sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==
|
||||
|
||||
gauge@^3.0.0:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395"
|
||||
integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==
|
||||
dependencies:
|
||||
aproba "^1.0.3 || ^2.0.0"
|
||||
color-support "^1.1.2"
|
||||
console-control-strings "^1.0.0"
|
||||
has-unicode "^2.0.1"
|
||||
object-assign "^4.1.1"
|
||||
signal-exit "^3.0.0"
|
||||
string-width "^4.2.3"
|
||||
strip-ansi "^6.0.1"
|
||||
wide-align "^1.1.2"
|
||||
|
||||
gensync@^1.0.0-beta.2:
|
||||
version "1.0.0-beta.2"
|
||||
resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
|
||||
|
|
@ -1666,12 +1877,24 @@ glob-parent@^5.1.2, glob-parent@~5.1.2:
|
|||
dependencies:
|
||||
is-glob "^4.0.1"
|
||||
|
||||
glob@^7.1.3:
|
||||
version "7.2.3"
|
||||
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
|
||||
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
|
||||
dependencies:
|
||||
fs.realpath "^1.0.0"
|
||||
inflight "^1.0.4"
|
||||
inherits "2"
|
||||
minimatch "^3.1.1"
|
||||
once "^1.3.0"
|
||||
path-is-absolute "^1.0.0"
|
||||
|
||||
globals@^11.1.0:
|
||||
version "11.12.0"
|
||||
resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz"
|
||||
integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
|
||||
|
||||
graceful-fs@^4.1.5:
|
||||
graceful-fs@^4.1.5, graceful-fs@^4.2.9:
|
||||
version "4.2.11"
|
||||
resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz"
|
||||
integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
|
||||
|
|
@ -1691,6 +1914,11 @@ has-flag@^3.0.0:
|
|||
resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"
|
||||
integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
|
||||
|
||||
has-unicode@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
|
||||
|
||||
hasown@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz"
|
||||
|
|
@ -1814,6 +2042,14 @@ http-cache-semantics@^4.1.1:
|
|||
resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz"
|
||||
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||
|
||||
https-proxy-agent@^5.0.0:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
|
||||
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
|
||||
dependencies:
|
||||
agent-base "6"
|
||||
debug "4"
|
||||
|
||||
human-signals@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz"
|
||||
|
|
@ -1841,7 +2077,15 @@ import-meta-resolve@^4.0.0:
|
|||
resolved "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz"
|
||||
integrity sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==
|
||||
|
||||
inherits@^2.0.3, inherits@^2.0.4:
|
||||
inflight@^1.0.4:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
|
||||
integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
|
||||
dependencies:
|
||||
once "^1.3.0"
|
||||
wrappy "1"
|
||||
|
||||
inherits@2, inherits@^2.0.3, inherits@^2.0.4:
|
||||
version "2.0.4"
|
||||
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
|
@ -2078,6 +2322,13 @@ magic-string@^0.30.3, magic-string@^0.30.4, magic-string@^0.30.5:
|
|||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
|
||||
make-dir@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
|
||||
integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
|
||||
dependencies:
|
||||
semver "^6.0.0"
|
||||
|
||||
markdown-table@^3.0.0:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz"
|
||||
|
|
@ -2549,16 +2800,48 @@ mimic-response@^3.1.0:
|
|||
resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"
|
||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
||||
|
||||
minimatch@^3.1.1:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimist@^1.2.0, minimist@^1.2.3:
|
||||
version "1.2.8"
|
||||
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
|
||||
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
|
||||
|
||||
minipass@^3.0.0:
|
||||
version "3.3.6"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
|
||||
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
minipass@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
|
||||
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
|
||||
|
||||
minizlib@^2.1.1:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
|
||||
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
|
||||
dependencies:
|
||||
minipass "^3.0.0"
|
||||
yallist "^4.0.0"
|
||||
|
||||
mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3:
|
||||
version "0.5.3"
|
||||
resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"
|
||||
integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==
|
||||
|
||||
mkdirp@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
mrmime@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27"
|
||||
|
|
@ -2625,11 +2908,30 @@ node-addon-api@^6.1.0:
|
|||
resolved "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz"
|
||||
integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==
|
||||
|
||||
node-fetch@^2.6.7:
|
||||
version "2.7.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d"
|
||||
integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==
|
||||
dependencies:
|
||||
whatwg-url "^5.0.0"
|
||||
|
||||
node-gyp-build@^4.2.2:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd"
|
||||
integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og==
|
||||
|
||||
node-releases@^2.0.14:
|
||||
version "2.0.14"
|
||||
resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz"
|
||||
integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==
|
||||
|
||||
nopt@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
|
||||
integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
|
||||
dependencies:
|
||||
abbrev "1"
|
||||
|
||||
normalize-path@^3.0.0, normalize-path@~3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz"
|
||||
|
|
@ -2642,7 +2944,22 @@ npm-run-path@^5.1.0:
|
|||
dependencies:
|
||||
path-key "^4.0.0"
|
||||
|
||||
once@^1.3.1, once@^1.4.0:
|
||||
npmlog@^5.0.1:
|
||||
version "5.0.1"
|
||||
resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0"
|
||||
integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==
|
||||
dependencies:
|
||||
are-we-there-yet "^2.0.0"
|
||||
console-control-strings "^1.1.0"
|
||||
gauge "^3.0.0"
|
||||
set-blocking "^2.0.0"
|
||||
|
||||
object-assign@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
||||
integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
|
||||
|
||||
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
|
||||
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
|
||||
|
|
@ -2765,6 +3082,11 @@ path-exists@^4.0.0:
|
|||
resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz"
|
||||
integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
|
||||
|
||||
path-is-absolute@^1.0.0:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
||||
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
|
||||
|
||||
path-key@^3.1.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz"
|
||||
|
|
@ -2799,7 +3121,7 @@ picocolors@^1.0.0:
|
|||
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
|
||||
integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
|
||||
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
|
||||
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz"
|
||||
integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
|
||||
|
|
@ -2908,7 +3230,7 @@ rc@^1.2.7:
|
|||
minimist "^1.2.0"
|
||||
strip-json-comments "~2.0.1"
|
||||
|
||||
readable-stream@^3.1.1, readable-stream@^3.4.0:
|
||||
readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
|
||||
version "3.6.2"
|
||||
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
|
||||
integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
|
||||
|
|
@ -3022,6 +3344,11 @@ require-directory@^2.1.1:
|
|||
resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
|
||||
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
|
||||
|
||||
resolve-from@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69"
|
||||
integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==
|
||||
|
||||
resolve@^1.22.4:
|
||||
version "1.22.8"
|
||||
resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz"
|
||||
|
|
@ -3083,6 +3410,13 @@ reusify@^1.0.4:
|
|||
resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rimraf@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
|
||||
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
|
||||
dependencies:
|
||||
glob "^7.1.3"
|
||||
|
||||
rollup@^4.2.0:
|
||||
version "4.10.0"
|
||||
resolved "https://registry.npmjs.org/rollup/-/rollup-4.10.0.tgz"
|
||||
|
|
@ -3144,7 +3478,7 @@ section-matter@^1.0.0:
|
|||
extend-shallow "^2.0.1"
|
||||
kind-of "^6.0.0"
|
||||
|
||||
semver@^6.3.1:
|
||||
semver@^6.0.0, semver@^6.3.1:
|
||||
version "6.3.1"
|
||||
resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz"
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
|
@ -3161,6 +3495,21 @@ server-destroy@^1.0.1:
|
|||
resolved "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz"
|
||||
integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==
|
||||
|
||||
server-only@^0.0.1:
|
||||
version "0.0.1"
|
||||
resolved "https://registry.yarnpkg.com/server-only/-/server-only-0.0.1.tgz#0f366bb6afb618c37c9255a314535dc412cd1c9e"
|
||||
integrity sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==
|
||||
|
||||
set-blocking@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||
integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==
|
||||
|
||||
set-cookie-parser@^2.6.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/set-cookie-parser/-/set-cookie-parser-2.6.0.tgz#131921e50f62ff1a66a461d7d62d7b21d5d15a51"
|
||||
integrity sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==
|
||||
|
||||
sharp@^0.32.6:
|
||||
version "0.32.6"
|
||||
resolved "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz"
|
||||
|
|
@ -3199,7 +3548,7 @@ shikiji@^0.9.18, shikiji@^0.9.19:
|
|||
dependencies:
|
||||
shikiji-core "0.9.19"
|
||||
|
||||
signal-exit@^3.0.2:
|
||||
signal-exit@^3.0.0, signal-exit@^3.0.2:
|
||||
version "3.0.7"
|
||||
resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
|
||||
integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
|
||||
|
|
@ -3284,7 +3633,7 @@ streamx@^2.13.0, streamx@^2.15.0:
|
|||
optionalDependencies:
|
||||
bare-events "^2.2.0"
|
||||
|
||||
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
|
||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||
|
|
@ -3455,6 +3804,18 @@ tar-stream@^3.1.5:
|
|||
fast-fifo "^1.2.0"
|
||||
streamx "^2.15.0"
|
||||
|
||||
tar@^6.1.11:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73"
|
||||
integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==
|
||||
dependencies:
|
||||
chownr "^2.0.0"
|
||||
fs-minipass "^2.0.0"
|
||||
minipass "^5.0.0"
|
||||
minizlib "^2.1.1"
|
||||
mkdirp "^1.0.3"
|
||||
yallist "^4.0.0"
|
||||
|
||||
to-fast-properties@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
|
||||
|
|
@ -3467,6 +3828,11 @@ to-regex-range@^5.0.1:
|
|||
dependencies:
|
||||
is-number "^7.0.0"
|
||||
|
||||
tr46@~0.0.3:
|
||||
version "0.0.3"
|
||||
resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
|
||||
integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==
|
||||
|
||||
trim-lines@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz"
|
||||
|
|
@ -3644,6 +4010,11 @@ update-browserslist-db@^1.0.13:
|
|||
escalade "^3.1.1"
|
||||
picocolors "^1.0.0"
|
||||
|
||||
urlpattern-polyfill@8.0.2:
|
||||
version "8.0.2"
|
||||
resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5"
|
||||
integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ==
|
||||
|
||||
util-deprecate@^1.0.1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
|
||||
|
|
@ -3826,6 +4197,24 @@ web-namespaces@^2.0.0:
|
|||
resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz"
|
||||
integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==
|
||||
|
||||
web-vitals@^3.4.0:
|
||||
version "3.5.2"
|
||||
resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-3.5.2.tgz#5bb58461bbc173c3f00c2ddff8bfe6e680999ca9"
|
||||
integrity sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==
|
||||
|
||||
webidl-conversions@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
|
||||
integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==
|
||||
|
||||
whatwg-url@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
|
||||
integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==
|
||||
dependencies:
|
||||
tr46 "~0.0.3"
|
||||
webidl-conversions "^3.0.0"
|
||||
|
||||
which-pm-runs@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz"
|
||||
|
|
@ -3854,6 +4243,13 @@ which@^2.0.1:
|
|||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
wide-align@^1.1.2:
|
||||
version "1.1.5"
|
||||
resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3"
|
||||
integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==
|
||||
dependencies:
|
||||
string-width "^1.0.2 || 2 || 3 || 4"
|
||||
|
||||
widest-line@^4.0.1:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz"
|
||||
|
|
|
|||
Loading…
Reference in a new issue