New showcase structure + fixes

This commit is contained in:
Sacha Weatherstone 2021-12-23 01:42:57 +11:00
parent f186c6803a
commit 988f7c489f
26 changed files with 584 additions and 1286 deletions

View file

@ -1,5 +1,5 @@
---
id: device-software
id: device-firmware
title: Device firmware
sidebar_label: Device firmware
---

View file

@ -6,20 +6,21 @@ slug: /software
---
The following applications are available to support your Meshtastic network:
* The [firmware](/docs/software/device/device-software) to run on the devices
* Connect to the devices with our [Android app](/docs/software/android/android-installation)
* An [iOS application](/docs/software/ios/ios-development) is in the works
* [Meshtastic.js](/docs/software/js/getting-started) provides a javascript library to interface with devices
* [Meshtastic-python](/docs/software/python/python-installation) provides access from desktop computers including a command line interface
* A [web interface](/docs/software/web/web-app-software) can be accessed over wifi on ESP32 devices
* Pre-installed device plugins for:
* [Range testing](/docs/software/plugins/range-test-plugin)
* [External notifications](/docs/software/plugins/ext-notif-plugin)
* [Serial communication](/docs/software/plugins/serial-plugin)
* [Store and forewarding messages](/docs/software/plugins/store-forward-plugin) (in development)
* [Environment measurement](/docs/software/plugins/environment-plugin) (in development)
* Community projects include:
* A [plugin](/docs/software/community/community-atak) for the [Android Team Awareness Kit (ATAK)](https://play.google.com/store/apps/details?id=com.atakmap.app.civ)
* [PyGUI](/docs/software/community/community-pygui), a platform agnostic graphical user interface for devices
The devices running Meshtastic have a large number of preferences that can be set, see the [Settings](/docs/settings) pages for more details.
- The [firmware](/docs/software/device/device-firmware) to run on the devices
- Connect to the devices with our [Android app](/docs/software/android/android-installation)
- An [iOS application](/docs/software/ios/ios-development) is in the works
- [Meshtastic.js](/docs/software/js/getting-started) provides a javascript library to interface with devices
- [Meshtastic-python](/docs/software/python/python-installation) provides access from desktop computers including a command line interface
- A [web interface](/docs/software/web/web-app-software) can be accessed over wifi on ESP32 devices
- Pre-installed device plugins for:
- [Range testing](/docs/software/plugins/range-test-plugin)
- [External notifications](/docs/software/plugins/ext-notif-plugin)
- [Serial communication](/docs/software/plugins/serial-plugin)
- [Store and forewarding messages](/docs/software/plugins/store-forward-plugin) (in development)
- [Environment measurement](/docs/software/plugins/environment-plugin) (in development)
- Community projects include:
- A [plugin](/docs/software/community/community-atak) for the [Android Team Awareness Kit (ATAK)](https://play.google.com/store/apps/details?id=com.atakmap.app.civ)
- [PyGUI](/docs/software/community/community-pygui), a platform agnostic graphical user interface for devices
The devices running Meshtastic have a large number of preferences that can be set, see the [Settings](/docs/settings) pages for more details.

View file

@ -12,14 +12,11 @@
},
"dependencies": {
"@algolia/client-search": "^4.11.0",
"@docusaurus/core": "^2.0.0-beta.13",
"@docusaurus/plugin-ideal-image": "^2.0.0-beta.13",
"@docusaurus/preset-classic": "^2.0.0-beta.13",
"@docusaurus/core": "^2.0.0-beta.14",
"@docusaurus/plugin-ideal-image": "^2.0.0-beta.14",
"@docusaurus/preset-classic": "^2.0.0-beta.14",
"@mdx-js/react": "^1.6.22",
"@prisma/client": "^3.6.0",
"@supabase/supabase-js": "^1.28.6",
"esp-web-flasher": "^4.0.0",
"prisma": "^3.6.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-icons": "^4.3.1",
@ -40,7 +37,7 @@
]
},
"devDependencies": {
"@docusaurus/module-type-aliases": "^2.0.0-beta.13",
"@docusaurus/module-type-aliases": "^2.0.0-beta.14",
"@tsconfig/docusaurus": "^1.0.4",
"@types/node": "^17.0.2",
"@types/w3c-web-serial": "^1.0.2",

View file

@ -1 +0,0 @@
DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DATABASE?schema=SCHEMA

View file

@ -1,61 +0,0 @@
datasource db {
url = env("DATABASE_URL")
provider = "postgresql"
}
generator client {
provider = "prisma-client-js"
}
model Author {
id String @id @default(cuid())
githubUsername String
bio String
showcase Showcase[]
}
model Showcase {
id String @id @default(cuid())
title String
body String
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
tags ShowcaseTag[]
nodes Node[]
materials Material[]
author Author @relation(fields: [authorId], references: [id])
authorId String
}
model Material {
id String @id @default(cuid())
name String
details String
image String
url String
showcases Showcase[]
}
model Node {
id String @id @default(cuid())
latitude String
longitude String
showcase Showcase @relation(fields: [showcaseId], references: [id])
showcaseId String
}
model ShowcaseTag {
id String @id @default(cuid())
label String
description String
color String
showcase Showcase @relation(fields: [showcaseId], references: [id])
showcaseId String
}

View file

@ -15,7 +15,7 @@ module.exports = {
"software/overview",
{
"Meshtastic device": [
"software/device/device-software",
"software/device/device-firmware",
"software/device/device-channels",
"software/device/device-remote-admin",
"software/device/remote-hardware-service",

View file

@ -1,365 +0,0 @@
export const rakWireless = {
/**
* Base modules
*/
RAK19003: {
name: "RAK19003",
details: "WisBlock Mini Base Board",
image: "/img/hardware/rak/RAK19003.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19003/Overview/",
},
RAK5005_O: {
name: "RAK5005-O",
details: "WisBlock Base Board",
image: "/img/hardware/rak/RAK5005-O.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5005-O/Overview/",
},
/**
* Core modules
*/
RAK11200: {
name: "RAK11200",
details: "WisBlock WiFi Module",
image: "/img/hardware/rak/RAK11200.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11200/Overview/",
},
RAK11310: {
name: "RAK11310",
details: "WisBlock LPWAN Module",
image: "/img/hardware/rak/RAK11310.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK11310/Overview/",
},
RAK4631: {
name: "RAK4631",
details: "WisBlock LPWAN Module",
image: "/img/hardware/rak/RAK4631.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK4631/Overview/",
},
/**
* Wireless modules
*/
RAK13101: {
name: "RAK13101",
details: "WisBlock GSM/GPRS Module",
image: "/img/hardware/rak/RAK13101.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13101/Overview/",
},
RAK2305: {
name: "RAK2305",
details: "WisBlock WiFi Interface Module",
image: "/img/hardware/rak/RAK2305.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK2305/Overview/",
},
RAK5860: {
name: "RAK5860",
details: "WisBlock NB-IoT Interface Module",
image: "/img/hardware/rak/RAK5860.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5860/Overview/",
},
/**
* Sensor modules
*/
RAK12003: {
name: "RAK12003",
details: "WisBlock Infrared Temperature Sensor",
image: "/img/hardware/rak/RAK12003.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12003/Overview/",
},
RAK12004: {
name: "RAK12004",
details: "WisBlock MQ2 Gas Sensor Module",
image: "/img/hardware/rak/RAK12004.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12004/Overview/",
},
RAK12005: {
name: "RAK12005",
details: "WisBlock Rain Sensor Module",
image: "/img/hardware/rak/RAK12005.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12005/Overview/",
},
RAK12006: {
name: "RAK12006",
details: "WisBlock PIR Module",
image: "/img/hardware/rak/RAK12006.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12006/Overview/",
},
RAK12007: {
name: "RAK12007",
details: "WisBlock Ultrasonic Module",
image: "/img/hardware/rak/RAK12007.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12007/Overview/",
},
RAK12009: {
name: "RAK12009",
details: "WisBlock MQ3 Alcohol Gas Sensor Module",
image: "/img/hardware/rak/RAK12009.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12009/Overview/",
},
RAK12010: {
name: "RAK12010",
details: "WisBlock Ambient Light Sensor Module",
image: "/img/hardware/rak/RAK12010.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12010/Overview/",
},
RAK12011: {
name: "RAK12011",
details: "WisBlock Barometer WT Sensor Module",
image: "/img/hardware/rak/RAK12011.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12011/Overview/",
},
RAK12012: {
name: "RAK12012",
details: "WisBlock Heart Rate Module",
image: "/img/hardware/rak/RAK12012.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12012/Overview/",
},
RAK12015: {
name: "RAK12015",
details: "WisBlock Vibration Detection Module",
image: "/img/hardware/rak/RAK12015.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12015/Overview/",
},
RAK12500: {
name: "RAK12500",
details: "WisBlock GNSS Location Module",
image: "/img/hardware/rak/RAK12500.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12500/Overview/",
},
RAK16000: {
name: "RAK16000",
details: "WisBlock DC Current Module",
image: "/img/hardware/rak/RAK16000.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK16000/Overview/",
},
RAK18000: {
name: "RAK18000",
details: "WisBlock PDM Stereo Microphone Module",
image: "/img/hardware/rak/RAK18000.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK18000/Overview/",
},
RAK1901: {
name: "RAK1901",
details: "WisBlock Temperature and Humidity Sensor",
image: "/img/hardware/rak/RAK1901.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1901/Overview/",
},
RAK1902: {
name: "RAK1902",
details: "WisBlock Barometer Pressure Sensor",
image: "/img/hardware/rak/RAK1902.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1902/Overview/",
},
RAK1903: {
name: "RAK1903",
details: "WisBlock Ambient Light Sensor",
image: "/img/hardware/rak/RAK1903.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1903/Overview/",
},
RAK1904: {
name: "RAK1904",
details: "WisBlock 3-axis Acceleration Sensor",
image: "/img/hardware/rak/RAK1904.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1904/Overview/",
},
RAK1906: {
name: "RAK1906",
details: "WisBlock Environmental Sensor",
image: "/img/hardware/rak/RAK1906.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1906/Overview/",
},
RAK1910: {
name: "RAK1910",
details: "WisBlock GNSS Location Module",
image: "/img/hardware/rak/RAK1910.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1910/Overview/",
},
/**
* Interface modules
*/
RAK13001: {
name: "RAK13001",
details: "WisBlock Relay IO Module",
image: "/img/hardware/rak/RAK13001.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13001/Overview/",
},
RAK13002: {
name: "RAK13002",
details: "WisBlock IO Module",
image: "/img/hardware/rak/RAK13002.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13002/Overview/",
},
RAK13003: {
name: "RAK13003",
details: "WisBlock IO Expansion Module",
image: "/img/hardware/rak/RAK13003.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13003/Overview/",
},
RAK13004: {
name: "RAK13004",
details: "WisBlock PWM Expander Module",
image: "/img/hardware/rak/RAK13004.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13004/Overview/",
},
RAK13005: {
name: "RAK13005",
details: "WisBlock LIN Module",
image: "/img/hardware/rak/RAK13005.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK13005/Overview/",
},
RAK14002: {
name: "RAK14002",
details: "WisBlock Touch Sensor Module",
image: "/img/hardware/rak/RAK14002.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14002/Overview/",
},
RAK16001: {
name: "RAK16001",
details: "WisBlock ADC Module",
image: "/img/hardware/rak/RAK16001.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK16001/Overview/",
},
RAK1920: {
name: "RAK1920",
details: "WisBlock Sensor Adapter Module",
image: "/img/hardware/rak/RAK1920.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1920/Overview/",
},
RAK5801: {
name: "RAK5801",
details: "WisBlock 4-20mA Interface Module",
image: "/img/hardware/rak/RAK5801.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5801/Overview/",
},
RAK5802: {
name: "RAK5802",
details: "WisBlock RS485 Interface Module",
image: "/img/hardware/rak/RAK5802.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5802/Overview/",
},
RAK5804: {
name: "RAK5804",
details: "WisBlock Interface Extension Module",
image: "/img/hardware/rak/RAK5804.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5804/Overview/",
},
RAK5811: {
name: "RAK5811",
details: "WisBlock 0-5V Interface Module",
image: "/img/hardware/rak/RAK5811.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK5811/Overview/",
},
/**
* Display Modules
*/
RAK14000: {
name: "RAK14000",
details: "WisBlock E-Ink Display",
image: "/img/hardware/rak/RAK14000.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14000/Overview/",
},
RAK14001: {
name: "RAK14001",
details: "WisBlock RGB LED Module",
image: "/img/hardware/rak/RAK14001.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14001/Overview/",
},
RAK14003: {
name: "RAK14003",
details: "WisBlock LED Bar Graph Module",
image: "/img/hardware/rak/RAK14003.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK14003/Overview/",
},
RAK1921: {
name: "RAK1921",
details: "WisBlock OLED Display",
image: "/img/hardware/rak/RAK1921.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK1921/Overview/",
},
/**
* Extra modules
*/
RAK12002: {
name: "RAK12002",
details: "WisBlock RTC Module",
image: "/img/hardware/rak/RAK12002.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK12002/Overview/",
},
RAK18001: {
name: "RAK18001",
details: "WisBlock Buzzer Module",
image: "/img/hardware/rak/RAK18001.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK18001/Overview/",
},
RAK19005: {
name: "RAK19005",
details: "WisBlock Sensor Extension Cable",
image: "/img/hardware/rak/RAK19005.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19005/Overview/",
},
RAK19008: {
name: "RAK19008",
details: "WisBlock IO Extension Cable",
image: "/img/hardware/rak/RAK19008.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19008/Overview/",
},
/**
* Storage modules
*/
RAK15000: {
name: "RAK15000",
details: "WisBlock EEPROM Module",
image: "/img/hardware/rak/RAK15000.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK15000/Overview/",
},
RAK15001: {
name: "RAK15001",
details: "WisBlock Flash Module",
image: "/img/hardware/rak/RAK15001.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK15001/Overview/",
},
RAK15002: {
name: "RAK15002",
details: "WisBlock Micro SD Card Module",
image: "/img/hardware/rak/RAK15002.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK15002/Overview/",
},
/**
* Power modules
*/
RAK19002: {
name: "RAK19002",
details: "WisBlock Boost Module",
image: "/img/hardware/rak/RAK19002.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19002/Overview/",
},
RAK19004: {
name: "RAK19004",
details: "WisBlock Green Power Module",
image: "/img/hardware/rak/RAK19004.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19004/Overview/",
},
RAK19006: {
name: "RAK19006",
details: "WisBlock Wireless Charge Module",
image: "/img/hardware/rak/RAK19006.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK19006/Overview/",
},
/**
* Motor modules
*/
RAK17000: {
name: "RAK17000",
details: "WisBlock Motor Control Module",
image: "/img/hardware/rak/RAK17000.png",
url: "https://docs.rakwireless.com/Product-Categories/WisBlock/RAK17000/Overview/",
},
};

View file

@ -1 +0,0 @@
export const writeups: string[] = ["ckwhq3l5a000008kufkw8f3dg"];

View file

@ -1,110 +0,0 @@
import { NetworkWriteup, ShowcaseNetwork } from '../../utils/showcase';
import { rakWireless } from '../hardware/rakWireless';
export const metadata: ShowcaseNetwork = {
id: "ckwhq3l5a000008kufkw8f3dg",
title: "Network 1",
description:
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed eget dui mollis.",
nodes: [
{
latitude: -37.656719,
longitude: 145.632219,
},
{
latitude: -37.633466,
longitude: 145.692371,
},
{
latitude: -37.559148,
longitude: 145.735771,
},
],
tags: ["community", "largeNetwork"],
};
export const writeup: NetworkWriteup = {
summary: "This is the article summary.",
body: [
{
heading: "This is the first heading.",
body: "This is the first body segment.",
},
{
heading: "This is the second heading.",
body: "This is the second body segment.",
},
{
heading: "This is the second heading.",
body: "This is the second body segment.",
},
],
bom: [
{
name: "This is the first material name.",
details: "This is the first material details.",
image: "https://example.com/image.png",
url: "https://example.com/material",
},
rakWireless.RAK19003,
rakWireless.RAK5005_O,
rakWireless.RAK11200,
rakWireless.RAK11310,
rakWireless.RAK4631,
rakWireless.RAK13101,
rakWireless.RAK2305,
rakWireless.RAK5860,
rakWireless.RAK12003,
rakWireless.RAK12004,
rakWireless.RAK12005,
rakWireless.RAK12006,
rakWireless.RAK12007,
rakWireless.RAK12009,
rakWireless.RAK12010,
rakWireless.RAK12011,
rakWireless.RAK12012,
rakWireless.RAK12015,
rakWireless.RAK12500,
rakWireless.RAK16000,
rakWireless.RAK18000,
rakWireless.RAK1901,
rakWireless.RAK1902,
rakWireless.RAK1903,
rakWireless.RAK1904,
rakWireless.RAK1906,
rakWireless.RAK1910,
rakWireless.RAK13001,
rakWireless.RAK13002,
rakWireless.RAK13003,
rakWireless.RAK13004,
rakWireless.RAK13005,
rakWireless.RAK14002,
rakWireless.RAK16001,
rakWireless.RAK1920,
rakWireless.RAK5801,
rakWireless.RAK5802,
rakWireless.RAK5804,
rakWireless.RAK5811,
rakWireless.RAK14000,
rakWireless.RAK14001,
rakWireless.RAK14003,
rakWireless.RAK1921,
rakWireless.RAK12002,
rakWireless.RAK18001,
rakWireless.RAK19005,
rakWireless.RAK19008,
rakWireless.RAK15000,
rakWireless.RAK15001,
rakWireless.RAK15002,
rakWireless.RAK19002,
rakWireless.RAK19004,
rakWireless.RAK19006,
rakWireless.RAK17000,
],
author: {
name: "Author Name",
about: "This is the author's about text.",
avatarUrl: "https://avatars0.githubusercontent.com/u/1234?s=460&v=4",
url: "",
},
};

View file

@ -1,27 +1,29 @@
import React from 'react';
import { ShowcaseNetwork, sortedNetworks, TagType } from '../utils/showcase';
import { Showcase } from '../utils/apiTypes.js';
import { useSelectedTags } from './useSelectedTags';
const filterNetworks = async (
showcaseNetworks: Promise<ShowcaseNetwork[]>,
selectedTags: TagType[]
const filterNetworks = (
showcaseNetworks: Showcase[],
selectedTags: string[]
) => {
if (selectedTags.length === 0) {
return showcaseNetworks;
}
return (await showcaseNetworks).filter((showcaseNetwork) => {
return showcaseNetworks.filter((showcaseNetwork) => {
if (showcaseNetwork.tags.length === 0) {
return false;
}
return selectedTags.every((tag) => showcaseNetwork.tags.includes(tag));
return selectedTags.every((queryTag) =>
showcaseNetwork.tags.find((searchTag) => searchTag.label === queryTag)
);
});
};
export const useFilteredNetworks = () => {
export const useFilteredNetworks = (networks: Showcase[]) => {
const selectedTags = useSelectedTags();
return React.useMemo(
() => filterNetworks(sortedNetworks, selectedTags),
() => filterNetworks(networks, selectedTags),
[selectedTags]
);
};

View file

@ -3,11 +3,10 @@ import React from 'react';
import { useLocation } from '@docusaurus/router';
import { readSearchTags } from '../pages/showcase/_components/TagSelect';
import { TagType } from '../utils/showcase';
export const useSelectedTags = () => {
const location = useLocation();
const [selectedTags, setSelectedTags] = React.useState<TagType[]>([]);
const [selectedTags, setSelectedTags] = React.useState<string[]>([]);
React.useEffect(() => {
const tags = readSearchTags(location.search);
setSelectedTags(tags);

View file

@ -6,10 +6,10 @@ import useSWR from 'swr';
import Layout from '@theme/Layout';
import { Release } from '../../utils/github';
import { fetcher } from '../../utils/swr';
import { FirmwareCard } from './_components/FirmwareCard';
const Firmware = (): JSX.Element => {
const fetcher = (url: string) => fetch(url).then((res) => res.json());
const { data, error } = useSWR<Release[]>(
"https://api.github.com/repos/meshtastic/meshtastic-device/releases",
fetcher

View file

@ -2,98 +2,32 @@ import React from 'react';
import Image from '@theme/IdealImage';
import {
Node,
ShowcaseNetwork,
sortBy,
Tag,
TagList,
Tags,
TagType,
} from '../../../utils/showcase';
import { Showcase } from '../../../utils/apiTypes';
import { mapUrl } from '../../../utils/map';
import { CardTags } from './CardTags';
interface Props extends Tag {
id: string;
export interface CardProps {
network: Showcase;
}
const mapUrl = (nodes: Node[]): string => {
const width = 900;
const height = 400;
const access_token =
"pk.eyJ1Ijoic2FjaGF3IiwiYSI6ImNrNW9meXozZjBsdW0zbHBjM2FnNnV6cmsifQ.3E4n8eFGD9ZOFo-XDVeZnQ";
const nodeCoords = nodes.map(
({ latitude, longitude }) => `pin-l+67ea94(${longitude},${latitude})`
);
return `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/${nodeCoords}/auto/${width}x${height}@2x?access_token=${access_token}`;
};
const CardTags = ({ tags }: { tags: TagType[] }) => {
const tagObjects = tags.map((tag) => ({ tag, ...Tags[tag] }));
const tagObjectsSorted = sortBy(tagObjects, (tagObject) =>
TagList.indexOf(tagObject.tag)
);
return (
<ul className="pills">
{tagObjectsSorted.map(({ color, description, label }, index) => {
return (
<li
key={index}
style={{
display: "inline-flex",
alignItems: "center",
alignContent: "center",
gap: "0.3rem",
fontSize: "0.6rem",
lineHeight: "1rem",
cursor: "default",
userSelect: "none",
padding: "0.2rem",
border: "2px solid gray",
}}
className="pills__item"
title={description}
>
<span>{label.toLowerCase()}</span>
<span
style={{
backgroundColor: color,
width: "0.5rem",
height: "0.5rem",
borderRadius: "50%",
}}
/>
</li>
);
})}
</ul>
);
};
export const Card = React.memo(
({ showcaseNetwork }: { showcaseNetwork: ShowcaseNetwork }) => (
<div className="card">
<div className="card__image">
<Image
img={mapUrl(showcaseNetwork.nodes)}
alt={showcaseNetwork.title}
/>
</div>
<div className="card__body">
<h4>{showcaseNetwork.title}</h4>
<small>{showcaseNetwork.description}</small>
</div>
<div className="card__footer">
<a
href={`?id=${showcaseNetwork.id}`}
className="button button--primary button--block"
style={{ marginBottom: "0.5rem" }}
>
Get Started
</a>
<CardTags tags={showcaseNetwork.tags} />
</div>
export const Card = React.memo(({ network }: CardProps) => (
<div className="card">
<div className="card__image">
<Image img={mapUrl(network.nodes ?? [])} alt={network.title} />
</div>
)
);
<div className="card__body">
<h4>{network.title}</h4>
<small>{network.summary}</small>
</div>
<div className="card__footer">
<a
href={`?id=${network.id}`}
className="button button--primary button--block"
style={{ marginBottom: "0.5rem" }}
>
Get Started
</a>
<CardTags tags={network.tags} />
</div>
</div>
));

View file

@ -0,0 +1,45 @@
import React from 'react';
import { ShowcaseTag } from '../../../utils/apiTypes';
export interface CardTagsProps {
tags: ShowcaseTag[];
}
export const CardTags = ({ tags }: CardTagsProps) => {
return (
<ul className="pills">
{tags.map(({ color, description, label }, index) => {
return (
<li
key={index}
style={{
display: "inline-flex",
alignItems: "center",
alignContent: "center",
gap: "0.3rem",
fontSize: "0.6rem",
lineHeight: "1rem",
cursor: "default",
userSelect: "none",
padding: "0.2rem",
border: "2px solid gray",
}}
className="pills__item"
title={description}
>
<span>{label.toLowerCase()}</span>
<span
style={{
backgroundColor: color,
width: "0.5rem",
height: "0.5rem",
borderRadius: "50%",
}}
/>
</li>
);
})}
</ul>
);
};

View file

@ -1,74 +1,86 @@
import React from 'react';
import { FiHeart } from 'react-icons/fi';
import useSWR from 'swr';
import { TagList, Tags } from '../../../utils/showcase';
import { fetcher } from '@site/src/utils/swr';
import { ShowcaseTag } from '../../../utils/apiTypes';
// import { TagList, Tags } from '../../../utils/showcase';
import { TagSelect } from './TagSelect';
export const Filters = (): JSX.Element => {
const { data, error } = useSWR<ShowcaseTag[]>(
"http://localhost:4000/showcase/tags",
fetcher
);
return (
<section className="container margin-top--l margin-bottom--lg">
<ul
style={{
padding: "0",
display: "flex",
alignItems: "center",
flexWrap: "wrap",
}}
>
{TagList.map((tag, i) => {
const { label, description, color } = Tags[tag];
const id = `showcase_checkbox_id_${tag};`;
{data && !error ? (
<ul
style={{
padding: "0",
display: "flex",
alignItems: "center",
flexWrap: "wrap",
}}
>
{data.map((tag, i) => {
const { label, description, color } = tag;
const id = `showcase_checkbox_id_${tag};`;
return (
<div
key={i}
style={{
boxSizing: "border-box",
position: "relative",
display: "inline-flex",
alignItems: "center",
height: "2rem",
marginTop: "0.5rem",
marginRight: "0.5rem",
fontSize: "0.875rem",
lineHeight: "1.25rem",
verticalAlign: "middle",
userSelect: "none",
}}
>
<TagSelect
tag={tag}
id={id}
label={label}
icon={
tag === "favorite" ? (
<span
style={{
display: "flex",
marginLeft: "0.5rem",
color: "rgb(190 24 93)",
}}
>
<FiHeart />
</span>
) : (
<span
style={{
backgroundColor: color,
width: 10,
height: 10,
borderRadius: "50%",
marginLeft: 8,
}}
/>
)
}
/>
</div>
);
})}
</ul>
return (
<div
key={i}
style={{
boxSizing: "border-box",
position: "relative",
display: "inline-flex",
alignItems: "center",
height: "2rem",
marginTop: "0.5rem",
marginRight: "0.5rem",
fontSize: "0.875rem",
lineHeight: "1.25rem",
verticalAlign: "middle",
userSelect: "none",
}}
>
<TagSelect
tag={tag}
id={id}
label={label}
icon={
tag.label === "Favorite" ? (
<span
style={{
display: "flex",
marginLeft: "0.5rem",
color: "rgb(190 24 93)",
}}
>
<FiHeart />
</span>
) : (
<span
style={{
backgroundColor: color,
width: 10,
height: 10,
borderRadius: "50%",
marginLeft: 8,
}}
/>
)
}
/>
</div>
);
})}
</ul>
) : (
<p>Loading...</p>
)}
</section>
);
};

View file

@ -1,49 +1,44 @@
import React from 'react';
// import { networks } from '../../../data/networks/_overview';
import { NetworkWriteup, ShowcaseNetwork } from '../../../utils/showcase';
import useSWR from 'swr';
import { Showcase } from '@site/src/utils/apiTypes';
import { User } from '@site/src/utils/github';
import { fetcher } from '@site/src/utils/swr';
interface NetworkProps {
id: string;
}
export const Network = ({ id }: NetworkProps): JSX.Element => {
import(`../../../data/networks/${id}`).then((data) => {
setNetworkWriteup(data.writeup as NetworkWriteup);
setMetadata(data.metadata as ShowcaseNetwork);
});
const { data, error } = useSWR<Showcase>(
`http://localhost:4000/showcase/${id}`,
fetcher
);
// console.log(data);
const [networkWriteup, setNetworkWriteup] = React.useState<NetworkWriteup>();
const [metadata, setMetadata] = React.useState<ShowcaseNetwork>();
React.useEffect(() => {
// data.then((data) => setNetworkWriteup(data));
}, []);
const githubData = useSWR<User>(
`https://api.github.com/users/${data?.author?.githubUsername}`,
fetcher
).data;
// const network = networks.find((network) => network.id === id);
return metadata && networkWriteup ? (
return data && !error ? (
<div className="container">
<h1>{metadata.title}</h1>
<p>{metadata.description}</p>
<div className="avatar">
<img
src={networkWriteup.author.avatarUrl}
alt={networkWriteup.author.name}
className="avatar__photo"
/>
<div className="avatar__intro">
<div className="avatar__name">{networkWriteup.author.name}</div>
<div className="avatar__subtitle">{networkWriteup.author.about}</div>
<h1>{data.title}</h1>
<p>{data.summary}</p>
{githubData && (
<div className="avatar">
<img
src={githubData.avatar_url}
alt={githubData.name}
className="avatar__photo"
/>
<div className="avatar__intro">
<div className="avatar__name">{githubData.name}</div>
<div className="avatar__subtitle">{githubData.bio}</div>
</div>
</div>
</div>
{networkWriteup.body.map((segment, index) => (
<div key={index}>
<h2>{segment.heading}</h2>
<p>{segment.body}</p>
</div>
))}
)}
<div className="markdown">{data.body}</div>
<div
className="card"
@ -62,7 +57,7 @@ export const Network = ({ id }: NetworkProps): JSX.Element => {
<h2>Bill of Materials</h2>
</div>
<div className="card__body">
{networkWriteup.bom.map((material, index) => (
{data.materials?.map((material, index) => (
<div
key={index}
style={{

View file

@ -0,0 +1,65 @@
import React from 'react';
import { Showcase } from '../../../utils/apiTypes';
import { Card } from './Card';
interface NetworkSectionProps {
title: string;
icon?: JSX.Element;
iconColor?: string;
networks?: Showcase[];
}
export const NetworkSection = ({
title,
icon,
iconColor,
networks,
}: NetworkSectionProps): JSX.Element => {
return (
<div className="container margin-top--lg">
<div
className="margin-bottom--sm"
style={{
display: "flex",
alignItems: "center",
}}
>
<h2>{title}</h2>
{icon && (
<span
style={{
marginBottom: "0.5rem",
marginLeft: "0.5rem",
fontSize: "1.25rem",
lineHeight: "1.75rem",
color: iconColor,
}}
>
{icon}
</span>
)}
</div>
<ul
style={{
position: "relative",
display: "grid",
gap: "1.5rem",
gridTemplateColumns: "repeat(auto-fill, minmax(280px, 1fr))",
paddingLeft: "0",
}}
>
{networks ? (
<>
{networks.map((network) => (
<Card key={network.title} network={network} />
))}
{networks.length === 0 && <h2>No result</h2>}
</>
) : (
<div>Loading...</div>
)}
</ul>
</div>
);
};

View file

@ -1,99 +1,49 @@
import React from 'react';
import { FiHeart, FiSearch } from 'react-icons/fi';
import useSWR from 'swr';
import { useSelectedTags } from '@site/src/hooks/useSelectedTags';
import { useFilteredNetworks } from '../../../hooks/useFilteredNetworks';
import { useSelectedTags } from '../../../hooks/useSelectedTags';
import { ShowcaseNetwork, sortedNetworks } from '../../../utils/showcase';
import { Card } from './Card';
interface NetworkSectionProps {
title: string;
icon?: JSX.Element;
iconColor?: string;
networks: ShowcaseNetwork[];
}
const NetworkSection = ({
title,
icon,
iconColor,
networks,
}: NetworkSectionProps): JSX.Element => {
return (
<div className="container margin-top--lg">
<div
className="margin-bottom--sm"
style={{
display: "flex",
alignItems: "center",
}}
>
<h2>{title}</h2>
{icon && (
<span
style={{
marginBottom: "0.5rem",
marginLeft: "0.5rem",
fontSize: "1.25rem",
lineHeight: "1.75rem",
color: iconColor,
}}
>
{icon}
</span>
)}
</div>
<ul
style={{
position: "relative",
display: "grid",
gap: "1.5rem",
gridTemplateColumns: "repeat(auto-fill, minmax(280px, 1fr))",
paddingLeft: "0",
}}
>
{networks.map((network) => (
<Card key={network.title} showcaseNetwork={network} />
))}
{networks.length === 0 && <h2>No result</h2>}
</ul>
</div>
);
};
import { Showcase } from '../../../utils/apiTypes';
import { fetcher } from '../../../utils/swr';
import { NetworkSection } from './NetworkSection';
export const Networks = (): JSX.Element => {
const [sorted, setSorted] = React.useState<ShowcaseNetwork[]>([]);
const [other, setOther] = React.useState<ShowcaseNetwork[]>([]);
sortedNetworks.then((networks) => {
setSorted(networks.filter((network) => network.tags.includes("favorite")));
});
sortedNetworks.then((networks) => {
setOther(networks.filter((network) => !network.tags.includes("favorite")));
});
const { data, error } = useSWR<Showcase[]>(
"http://localhost:4000/showcase",
fetcher
);
const selectedTags = useSelectedTags();
const filteredNetworks = useFilteredNetworks();
const filteredNetworks = useFilteredNetworks(data ?? []);
return (
<section className="margin-top--lg margin-bottom--xl">
{selectedTags.length === 0 ? (
<>
{data && !error ? (
selectedTags.length === 0 ? (
<>
<NetworkSection
title="Our favorites"
icon={<FiHeart />}
iconColor="rgb(190 24 93)"
networks={data.filter((network) =>
network.tags.find((tag) => tag.label === "Favourite")
)}
/>
<NetworkSection title="All networks" networks={data} />
</>
) : (
<NetworkSection
title="Our favorites"
icon={<FiHeart />}
iconColor="rgb(190 24 93)"
networks={sorted}
title="Results"
icon={<FiSearch />}
networks={filteredNetworks}
/>
<NetworkSection title="All networks" networks={other} />
</>
)
) : error ? (
<div>{error}</div>
) : (
<NetworkSection
title="Results"
icon={<FiSearch />}
networks={filteredNetworks}
/>
<div>Loading...</div>
)}
</section>
);

View file

@ -3,20 +3,21 @@ import 'url-search-params-polyfill';
import React from 'react';
import { useHistory, useLocation } from '@docusaurus/router';
import { ShowcaseTag } from '@site/src/utils/apiTypes';
import { TagType, toggleListItem } from '../../../utils/showcase';
import { toggleListItem } from '../../../utils/showcase';
interface Props extends React.ComponentProps<"input"> {
icon: React.ReactElement<React.ComponentProps<"svg">>;
label: React.ReactNode;
tag: TagType;
tag: ShowcaseTag;
}
export function readSearchTags(search: string): TagType[] {
return new URLSearchParams(search).getAll("tags") as TagType[];
export function readSearchTags(search: string): string[] {
return new URLSearchParams(search).getAll("tags") as string[];
}
function replaceSearchTags(search: string, newTags: TagType[]) {
function replaceSearchTags(search: string, newTags: string[]) {
const searchParams = new URLSearchParams(search);
searchParams.delete("tags");
newTags.forEach((tag) => searchParams.append("tags", tag));
@ -30,11 +31,11 @@ export const TagSelect = React.forwardRef<HTMLLabelElement, Props>(
const [selected, setSelected] = React.useState(false);
React.useEffect(() => {
const tags = readSearchTags(location.search);
setSelected(tags.includes(tag));
setSelected(tags.includes(tag.label));
}, [tag, location]);
const toggleTag = React.useCallback(() => {
const tags = readSearchTags(location.search);
const newTags = toggleListItem(tags, tag);
const newTags = toggleListItem(tags, tag.label);
const newSearch = replaceSearchTags(location.search, newTags);
history.push({ ...location, search: newSearch });
}, [tag, location, history]);

50
src/utils/apiTypes.ts Normal file
View file

@ -0,0 +1,50 @@
export interface Showcase {
id: string;
title: string;
summary: string;
body: string;
createdAt: Date;
updatedAt: Date;
tags: ShowcaseTag[];
nodes?: Node[];
materials?: Material[];
author?: Author;
authorId?: string;
}
export interface ShowcaseTag {
id: string;
label: string;
description: string;
color: string;
showcases?: Showcase[];
}
export interface Node {
id: string;
latitude: string;
longitude: string;
showcase?: Showcase;
showcaseId?: String;
}
export interface Material {
id: string;
name: string;
details: string;
image: string;
url: string;
showcases?: Showcase[];
}
export interface Author {
id: string;
githubUsername: string;
bio: string;
showcase?: Showcase[];
}

View file

@ -1,3 +1,38 @@
export interface User {
login: string;
id: number;
node_id: string;
avatar_url: string;
gravatar_id: string;
url: string;
html_url: string;
followers_url: string;
following_url: string;
gists_url: string;
starred_url: string;
subscriptions_url: string;
organizations_url: string;
repos_url: string;
events_url: string;
received_events_url: string;
type: string;
site_admin: boolean;
name: string;
company: string | null;
blog: string;
location: string;
email: string | null;
hireable: string | null;
bio: string | null;
twitter_username: string | null;
public_repos: number;
public_gists: number;
followers: number;
following: number;
created_at: string;
updated_at: string;
}
export interface Author {
login: string;
id: number;

13
src/utils/map.ts Normal file
View file

@ -0,0 +1,13 @@
import { Node } from './apiTypes.js';
export const mapUrl = (nodes: Node[]): string => {
const width = 900;
const height = 400;
const access_token =
"pk.eyJ1Ijoic2FjaGF3IiwiYSI6ImNrNW9meXozZjBsdW0zbHBjM2FnNnV6cmsifQ.3E4n8eFGD9ZOFo-XDVeZnQ";
const nodeCoords = nodes.map(
({ latitude, longitude }) => `pin-l+67ea94(${longitude},${latitude})`
);
return `https://api.mapbox.com/styles/v1/mapbox/satellite-v9/static/${nodeCoords}/auto/${width}x${height}@2x?access_token=${access_token}`;
};

View file

@ -1,3 +0,0 @@
import { PrismaClient } from '@prisma/client';
export const prisma = new PrismaClient();

View file

@ -1,96 +1,3 @@
import { writeups } from '../data/networks/_overview';
export interface Material {
name: string;
details: string;
image?: string;
url?: string;
}
interface Author {
name: string;
about: string;
url?: string;
avatarUrl?: string;
}
interface BodySegment {
heading: string;
body: string;
}
export interface NetworkWriteup {
summary: string;
body: BodySegment[];
bom: Material[];
author: Author;
}
export type Tag = {
label: string;
description: string;
color: string;
};
export type TagType =
| "portable"
| "offGrid"
| "largeNetwork"
| "longDistance"
| "community"
| "favorite";
export interface Node {
latitude: number;
longitude: number;
}
export type ShowcaseNetwork = {
id: string; //please get id from https://www.getuniqueid.com/cuid
title: string;
description: string;
nodes: Node[];
tags: TagType[];
};
export const Tags: Record<TagType, Tag> = {
portable: {
label: "Portable",
description: "Networks that move",
color: "#560bad",
},
offGrid: {
label: "Off Grid",
description: "No mains power here",
color: "#2a9d8f",
},
largeNetwork: {
label: "Large Network",
description: "Many users or nodes",
color: "#2191bc",
},
longDistance: {
label: "Long Distance",
description: "Links over massive distances",
color: "#e9c46a",
},
community: {
label: "Community",
description: "General access networks for many users",
color: "#e76f51",
},
favorite: {
label: "Favorite",
description: "Our picks for the coolest networks",
color: "#e9669e",
},
};
export const sortBy = <T>(array: T[], getter: (item: T) => unknown): T[] => {
const sortedArray = [...array];
sortedArray.sort((a, b) =>
@ -100,25 +7,6 @@ export const sortBy = <T>(array: T[], getter: (item: T) => unknown): T[] => {
return sortedArray;
};
export const TagList = Object.keys(Tags) as TagType[];
const sortNetworks = async () => {
const metadataArr: ShowcaseNetwork[] = [];
const writeupsArr: NetworkWriteup[] = [];
writeups.map(async (id) => {
await import(`../data/networks/${id}`).then(
(network: { metadata: ShowcaseNetwork; writeup: NetworkWriteup }) => {
metadataArr.push(network.metadata);
writeupsArr.push(network.writeup);
}
);
});
return metadataArr;
};
export const sortedNetworks = sortNetworks();
export const difference = <T>(...arrays: T[][]): T[] => {
return arrays.reduce((a, b) => a.filter((c) => !b.includes(c)));
};

1
src/utils/swr.ts Normal file
View file

@ -0,0 +1 @@
export const fetcher = (url: string) => fetch(url).then((res) => res.json());

493
yarn.lock
View file

@ -1748,10 +1748,10 @@
"@docsearch/css" "3.0.0-alpha.41"
algoliasearch "^4.0.0"
"@docusaurus/core@2.0.0-beta.13", "@docusaurus/core@^2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.13.tgz#3179303e043bf6bd5da6b0141574665f5e66ea98"
integrity sha512-iSU20aIVUDO8m+9koP/sHR1O/6Wvcr/WUMyYwJ47OPq4OkM4L2+opN9mb7UI5ZFXotXZAyMBe1Q6h83FC5xzvA==
"@docusaurus/core@2.0.0-beta.14", "@docusaurus/core@^2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/core/-/core-2.0.0-beta.14.tgz#9baf8fbfe29f444f985616013b5d80435ea5f29e"
integrity sha512-dW95WbD+WE+35Ee1RYIS1QDcBhvUxUWuDmrWr1X0uH5ZHIeOmOnsGVjjn4FA8VN2MkF0uuWknmRakQmJk0KMZw==
dependencies:
"@babel/core" "^7.16.0"
"@babel/generator" "^7.16.0"
@ -1763,19 +1763,19 @@
"@babel/runtime" "^7.16.3"
"@babel/runtime-corejs3" "^7.16.3"
"@babel/traverse" "^7.16.3"
"@docusaurus/cssnano-preset" "2.0.0-beta.13"
"@docusaurus/mdx-loader" "2.0.0-beta.13"
"@docusaurus/cssnano-preset" "2.0.0-beta.14"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/mdx-loader" "2.0.0-beta.14"
"@docusaurus/react-loadable" "5.5.2"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-common" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-common" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
"@slorber/static-site-generator-webpack-plugin" "^4.0.0"
"@svgr/webpack" "^6.0.0"
autoprefixer "^10.3.5"
babel-loader "^8.2.2"
babel-plugin-dynamic-import-node "2.3.0"
boxen "^5.0.1"
chalk "^4.1.2"
chokidar "^3.5.2"
clean-css "^5.1.5"
commander "^5.1.0"
@ -1829,36 +1829,45 @@
webpack-merge "^5.8.0"
webpackbar "^5.0.0-3"
"@docusaurus/cssnano-preset@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.13.tgz#14d20360ca71be62b045b56607632b5221b69963"
integrity sha512-5e6tOtRJ4tFO94TtVNluseOJ7WX0sqCzS2nCUo02DUR4h/xlF/YMLpdt6FKd450L5l2uIrAc08QzX4Nv4y85Kg==
"@docusaurus/cssnano-preset@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/cssnano-preset/-/cssnano-preset-2.0.0-beta.14.tgz#99bad713e3b58a89f63c25cec90b83437c3b3f2d"
integrity sha512-O5CebLXrytSQSpa0cgoMIUZ19gnLfCHhHPYqMfKxk0kvgR6g8b5AbsXxaMbgFNAqH690zPRsXmXb39BmXC7fMg==
dependencies:
cssnano-preset-advanced "^5.1.4"
postcss "^8.3.7"
postcss-sort-media-queries "^4.1.0"
"@docusaurus/lqip-loader@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/lqip-loader/-/lqip-loader-2.0.0-beta.13.tgz#e36b902e1d53254d631cdfa60e50de91d8beb119"
integrity sha512-IMai2BwYLdQPStfuA1zqxLxy7yMAeGU1K7C+DkPiEGYnzHxzywAZ/oxln72XRjWBYSw69Oh7AbPriSfbYkFXEQ==
"@docusaurus/logger@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/logger/-/logger-2.0.0-beta.14.tgz#d8c4e5f1c8b39149705587b98ca926549be51064"
integrity sha512-KNK8RgTGArXXlTUGhHUcYLJCI51gTMerSoebNXpTxAOBHFqjwJKv95LqVOy/uotoJZDUeEWR4vS/szGz4g7NaA==
dependencies:
chalk "^4.1.2"
tslib "^2.3.1"
"@docusaurus/lqip-loader@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/lqip-loader/-/lqip-loader-2.0.0-beta.14.tgz#4c5e761870caae4deb59147ab66f3b563fbc881c"
integrity sha512-Mz8NjmQ2mt8UR4VsjA5ADBI3RnjPfgVJTA0WBT8dtZFPA14I43UXQcWp0UnZfAedpc0wZqHFMk8gDHMCaNvsmQ==
dependencies:
file-loader "^6.2.0"
lodash "^4.17.20"
node-vibrant "^3.1.5"
sharp "^0.29.1"
tslib "^2.3.1"
"@docusaurus/mdx-loader@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.13.tgz#1f5a0e8487355f867d23627015c8a679a14463d0"
integrity sha512-z7Sa3VTybhKhlFyBMap6tyIb5e+FVa28jYXeq6aLe7Xr16YCK9ZqjlM8G6/Gvx68L8ILBlNsCZM2GinIh8t7/Q==
"@docusaurus/mdx-loader@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/mdx-loader/-/mdx-loader-2.0.0-beta.14.tgz#f4750a02a8d178c843bc50f29f5a92d6cd0692cd"
integrity sha512-lusTVTHc4WbNQY8bDM9zPQWZBIo70SnEyWzCqtznxpV7L3kjSoWEpBCHaYWE/lY2VhvayRsZtrqLwNs3KQgqXw==
dependencies:
"@babel/parser" "^7.16.4"
"@babel/traverse" "^7.16.3"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@mdx-js/mdx" "^1.6.21"
"@mdx-js/react" "^1.6.21"
chalk "^4.1.2"
escape-html "^1.0.3"
file-loader "^6.2.0"
fs-extra "^10.0.0"
@ -1871,27 +1880,27 @@
url-loader "^4.1.1"
webpack "^5.61.0"
"@docusaurus/module-type-aliases@^2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.13.tgz#45e811739bec9b79dba07af040e574c9cd2cd04a"
integrity sha512-yYHWajhjx0IgMJkbPtoXQzC58em6emGFyl5w5b6OuFxG4qXHZQJp7dRaPQxUMCBvOcHrI9lIw9RYJssIwOcYAg==
"@docusaurus/module-type-aliases@^2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/module-type-aliases/-/module-type-aliases-2.0.0-beta.14.tgz#8a11f9c4a408d8e8cc4cb59ba81a28ecc629256a"
integrity sha512-jlSwYoRVeNxvmjbVil35mRVSXZdOmEM95Sph7NxC6IE/ceT1a8s4tpzI2xUMsGgSfLBldqhkXe+WSOYqUL7x3w==
dependencies:
"@docusaurus/types" "2.0.0-beta.13"
"@docusaurus/types" "2.0.0-beta.14"
"@types/react" "*"
"@types/react-helmet" "*"
"@types/react-router-config" "*"
"@types/react-router-dom" "*"
"@docusaurus/plugin-content-blog@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.13.tgz#57c9b6f71c57dd6895a11b9f541e2e7b95206828"
integrity sha512-J0SesYymavO9pjnuhC28ycSVgzv7Z1fSpq7tfkqLh3uPydq9N2eY7CbyPOysrLBta3/PveldLU+XskiNUs7hCg==
"@docusaurus/plugin-content-blog@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-blog/-/plugin-content-blog-2.0.0-beta.14.tgz#d390ab0ab3aceaeb0be7d49ccde0cf5a2e0b1566"
integrity sha512-MLDRNbQKxwBDsWADyBT/fES7F7xzEEGS8CsdTnm48l7yGSWL8GM3PT6YvjdqHxNxZw3RCRRPUAiJcjZwfOjd8w==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/mdx-loader" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
chalk "^4.1.2"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/mdx-loader" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
escape-string-regexp "^4.0.0"
feed "^4.2.2"
fs-extra "^10.0.0"
@ -1905,16 +1914,16 @@
utility-types "^3.10.0"
webpack "^5.61.0"
"@docusaurus/plugin-content-docs@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.13.tgz#060e344147a05574f34380462a3380b38a24fbbc"
integrity sha512-NaYxr/R+FBaONUFEcFAOfYNA5CRwceRHNFOEIRdJtkJZbWpct5vkKPIojUWUfJbXb2/nV98rPufHyOdVmvAxVA==
"@docusaurus/plugin-content-docs@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-docs/-/plugin-content-docs-2.0.0-beta.14.tgz#533ba6ba471b45ba7a7867207b251f281a6bed1e"
integrity sha512-pjAhfFevIkVl/t+6x9RVsE+6c+VN8Ru1uImTgXk5uVkp6yS1AxW7neEngsczZ1gSiENfTiYyhgWmTXK/uy03kw==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/mdx-loader" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
chalk "^4.1.2"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/mdx-loader" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
combine-promises "^1.1.0"
escape-string-regexp "^4.0.0"
fs-extra "^10.0.0"
@ -1929,54 +1938,56 @@
utility-types "^3.10.0"
webpack "^5.61.0"
"@docusaurus/plugin-content-pages@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.13.tgz#8a892a6d8064d7f007d684cf4e3a8d5614060027"
integrity sha512-gUG69seyivxM0/vQ0SDeynEx9un6IMauMD8J8CWHikTF/axnV27aadjEmmBP8cEvpvXfy3k1zAcGV+BcMUGKbw==
"@docusaurus/plugin-content-pages@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-content-pages/-/plugin-content-pages-2.0.0-beta.14.tgz#7f176d585994339cbe5c65332ed321eec82f53e3"
integrity sha512-gGcMPG4e+K57cbBPf7IfV5lFCBdraXcpJeDqXlD8ArTeZrAe8Lx3SGz2lco25DgdRGqjMivab3BoT6Hkmo7vVA==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/mdx-loader" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/mdx-loader" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
globby "^11.0.2"
remark-admonitions "^1.2.1"
tslib "^2.3.1"
webpack "^5.61.0"
"@docusaurus/plugin-debug@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.13.tgz#3313e34b46aaee3ca15c1cad6cdb316faa3a1cdf"
integrity sha512-tiuKE510Md0RR2+Pkh+YSj41mZmPv/l0c6Mi71mhHiHG5YABjVxbJxoG06WRm/qDkwCwkFcdKRUy/Cu+n9SGDQ==
"@docusaurus/plugin-debug@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-debug/-/plugin-debug-2.0.0-beta.14.tgz#74d661a5cfefded7c9c281956ec2ec02260b576d"
integrity sha512-l0T26nZ9keyG2HrWwfwwHdqRzJg6cEJahyvKmnAOFfKieHPMxCJ9axBW+Ecy2PUMwJO7rILc6UObbhifNH7PnQ==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
fs-extra "^10.0.0"
react-json-view "^1.21.3"
tslib "^2.3.1"
"@docusaurus/plugin-google-analytics@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.13.tgz#4f1eea13c32fa3ccc84b865eaafe988f36d4d95b"
integrity sha512-I37v2aWq43EXVScSOrYqP6PtHNVWar9OJ4Pbgwx1GNAy2VTyAQMoD8cLOCm6LVsEPxzIj+JsvGHrMlzaXZ3WIQ==
"@docusaurus/plugin-google-analytics@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-analytics/-/plugin-google-analytics-2.0.0-beta.14.tgz#16bfdd9245767e008be88cfeb47c7ceeef3884f6"
integrity sha512-fVtAwqK9iHjj32Dtg0j+T6ikD8yjTh5ruYru7rKYxld6LSSkU29Q0wp39qYxR390jn3rkrXLRCZ7qHT/Hs0zZg==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
tslib "^2.3.1"
"@docusaurus/plugin-google-gtag@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.13.tgz#9d0c477cb3e85ece99f1846d70c0e21d32cb107e"
integrity sha512-+V4Fp0KaIi50Mf7G0qj1g4xynF6pqDZjhvzZrQG351As9JZanLUIC9ggAleXLQih+ZST1qEEgjogVSlikNlcCQ==
"@docusaurus/plugin-google-gtag@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-google-gtag/-/plugin-google-gtag-2.0.0-beta.14.tgz#be950af01da784965a7fd7ba61d557055cceeb5e"
integrity sha512-DcaNRvu0VLS/C6qRAG0QNWjnuP8dAdzH0NOfl86AxdK6dWOP5NlGD9QoIFKTa19PB8iTzM2XZn/hOCub4hR6MQ==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
tslib "^2.3.1"
"@docusaurus/plugin-ideal-image@^2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-2.0.0-beta.13.tgz#0ced3a54fade0c6878bfb4a971c466b27e17ad57"
integrity sha512-8CVBnsCV3hbNQjuusx9i0TfZkY7NZbofWh9etCceuTzY31qkrsz3i9buGsugJydGA+LXcqJ6lXz0Oy1qhrOajQ==
"@docusaurus/plugin-ideal-image@^2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-ideal-image/-/plugin-ideal-image-2.0.0-beta.14.tgz#37e63b14f75942929ec31701e1292d43b03973d2"
integrity sha512-FIt/Ww68YDDPYM/SxdrhYaFHEPBir1/2BOtq7Mtfo61sY67rbtBIOqyYMmgpNhswqQHgLIvdUmdSBqCDyP6c7Q==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/lqip-loader" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/lqip-loader" "2.0.0-beta.14"
"@docusaurus/responsive-loader" "1.5.0"
"@endiliey/react-ideal-image" "^0.0.11"
react-waypoint "^10.1.0"
@ -1984,34 +1995,34 @@
tslib "^2.3.1"
webpack "^5.61.0"
"@docusaurus/plugin-sitemap@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.13.tgz#d2a2e0eb28286e6277f229a6c3f47ab1b05be052"
integrity sha512-SEiefgI9nDWgtQXMzaIHAQwKIsof9tYp0iU7BEqRSJqM2CX3LwGIGr1JpQOxBUJfbHu5tk1LMgJO11Pfz/fMNQ==
"@docusaurus/plugin-sitemap@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/plugin-sitemap/-/plugin-sitemap-2.0.0-beta.14.tgz#13042fee40ab2a66615c44d9ef440abb3df5c42a"
integrity sha512-ikSgz4VAttDB2uOrPa7fq/E/GKS5HAtKfD572kBj8RvppdlgFYwCLZ88ex5cnRFF//2ccaobYkU4QwDw2UKWMA==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-common" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-common" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
fs-extra "^10.0.0"
sitemap "^7.0.0"
tslib "^2.3.1"
"@docusaurus/preset-classic@^2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.13.tgz#907badfe99e46d37ab900f148cc7169671c7fe95"
integrity sha512-LuxZc7/VO0abXVccQaSXND6mY6hA62DKadp4Gaw+IZV5vabrlBLQYaN9G/Cn5De+b1G5qbsyNS3sz6UQLWqQvA==
"@docusaurus/preset-classic@^2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/preset-classic/-/preset-classic-2.0.0-beta.14.tgz#128026fb201fdc6271614587ca09187bc83d930a"
integrity sha512-43rHA6wM4FcbHLPiBpqY4VSUjUXOWvW/N4q0wvf1LMoPH25lUzIaldpjD3Unzq5+UCYCFES24ktl58QOh7PB2g==
dependencies:
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/plugin-content-blog" "2.0.0-beta.13"
"@docusaurus/plugin-content-docs" "2.0.0-beta.13"
"@docusaurus/plugin-content-pages" "2.0.0-beta.13"
"@docusaurus/plugin-debug" "2.0.0-beta.13"
"@docusaurus/plugin-google-analytics" "2.0.0-beta.13"
"@docusaurus/plugin-google-gtag" "2.0.0-beta.13"
"@docusaurus/plugin-sitemap" "2.0.0-beta.13"
"@docusaurus/theme-classic" "2.0.0-beta.13"
"@docusaurus/theme-search-algolia" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/plugin-content-blog" "2.0.0-beta.14"
"@docusaurus/plugin-content-docs" "2.0.0-beta.14"
"@docusaurus/plugin-content-pages" "2.0.0-beta.14"
"@docusaurus/plugin-debug" "2.0.0-beta.14"
"@docusaurus/plugin-google-analytics" "2.0.0-beta.14"
"@docusaurus/plugin-google-gtag" "2.0.0-beta.14"
"@docusaurus/plugin-sitemap" "2.0.0-beta.14"
"@docusaurus/theme-classic" "2.0.0-beta.14"
"@docusaurus/theme-search-algolia" "2.0.0-beta.14"
"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2":
version "5.5.2"
@ -2028,25 +2039,25 @@
dependencies:
loader-utils "^2.0.0"
"@docusaurus/theme-classic@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.13.tgz#131f04dd1812ea3534c59fdb6a970e191fabdd46"
integrity sha512-c5yc4OauJ0MxVVa872lV2eBUho4xpUaq0U151dXbpQbIs5YRc1RWitzGOSUPuTrERT/d887TuQDfofh/zTHdAQ==
"@docusaurus/theme-classic@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-classic/-/theme-classic-2.0.0-beta.14.tgz#1e11f0e034bbb530ce38e669bc61a8eeea839132"
integrity sha512-gAatNruzgPh1NdCcIJPkhBpZE4jmbO+nYwpk/scatYQWBkhOs/fcI9tieIaGZIqi60N6lAUYQkPH+qXtLxX7Iw==
dependencies:
"@docusaurus/plugin-content-blog" "2.0.0-beta.13"
"@docusaurus/plugin-content-docs" "2.0.0-beta.13"
"@docusaurus/plugin-content-pages" "2.0.0-beta.13"
"@docusaurus/theme-common" "2.0.0-beta.13"
"@docusaurus/theme-translations" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/plugin-content-blog" "2.0.0-beta.14"
"@docusaurus/plugin-content-docs" "2.0.0-beta.14"
"@docusaurus/plugin-content-pages" "2.0.0-beta.14"
"@docusaurus/theme-common" "2.0.0-beta.14"
"@docusaurus/theme-translations" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
"@mdx-js/mdx" "^1.6.21"
"@mdx-js/react" "^1.6.21"
chalk "^4.1.2"
clsx "^1.1.1"
copy-text-to-clipboard "^3.0.1"
globby "^11.0.2"
infima "0.2.0-alpha.36"
infima "0.2.0-alpha.37"
lodash "^4.17.20"
postcss "^8.3.7"
prism-react-renderer "^1.2.1"
@ -2054,49 +2065,51 @@
react-router-dom "^5.2.0"
rtlcss "^3.3.0"
"@docusaurus/theme-common@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.13.tgz#3b1e2374ed5b2ef7315e197dd8448d824b1853cf"
integrity sha512-lperE2dgmKmSHIRaMx34qTTwsjDsKu2WSZwbZ/faIPt5lups2OgiON154qYfFqOVwbM+IvdFQWfo4RiEaNesvQ==
"@docusaurus/theme-common@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-common/-/theme-common-2.0.0-beta.14.tgz#9795071a0df62b7700f6fbdea09946f3aae8183d"
integrity sha512-hr/+rx9mszjMEbrR329WFSj1jl/VxglSggLWhXqswiA3Lh5rbbeQv2ExwpBl4JBG5HxvtHUYmwYOuOTMuvRYTQ==
dependencies:
"@docusaurus/plugin-content-blog" "2.0.0-beta.13"
"@docusaurus/plugin-content-docs" "2.0.0-beta.13"
"@docusaurus/plugin-content-pages" "2.0.0-beta.13"
"@docusaurus/plugin-content-blog" "2.0.0-beta.14"
"@docusaurus/plugin-content-docs" "2.0.0-beta.14"
"@docusaurus/plugin-content-pages" "2.0.0-beta.14"
clsx "^1.1.1"
fs-extra "^10.0.0"
parse-numeric-range "^1.3.0"
tslib "^2.3.1"
utility-types "^3.10.0"
"@docusaurus/theme-search-algolia@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.13.tgz#095c8ffbe1120c2a6f564e8e0fd9418dba2df267"
integrity sha512-/+jiRQvuG85iWlOsprQd/1OGUifwN8t9WMlPA6TjAcUoycFdra73P/1RHZzMjuUd8CV0VbzaD+wLCryMdf5lIw==
"@docusaurus/theme-search-algolia@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-search-algolia/-/theme-search-algolia-2.0.0-beta.14.tgz#0238622324251c42098b2ccada4e19c3e92cd772"
integrity sha512-kTQl8vKXn8FAVVkCeN4XvU8PGWZTHToc+35F9GL06b4rv33zL9HaFIRX3nPM1NHC7I8qh+6gGeV0DRKGjO+j2g==
dependencies:
"@docsearch/react" "^3.0.0-alpha.39"
"@docusaurus/core" "2.0.0-beta.13"
"@docusaurus/theme-common" "2.0.0-beta.13"
"@docusaurus/theme-translations" "2.0.0-beta.13"
"@docusaurus/utils" "2.0.0-beta.13"
"@docusaurus/utils-validation" "2.0.0-beta.13"
"@docusaurus/core" "2.0.0-beta.14"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/theme-common" "2.0.0-beta.14"
"@docusaurus/theme-translations" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
"@docusaurus/utils-validation" "2.0.0-beta.14"
algoliasearch "^4.10.5"
algoliasearch-helper "^3.5.5"
clsx "^1.1.1"
eta "^1.12.3"
lodash "^4.17.20"
tslib "^2.3.1"
"@docusaurus/theme-translations@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.13.tgz#353ebe3d20994a6d71edf28d62aa663db5fa2e92"
integrity sha512-ZDjObLcJCoylltgbnyOr3gnkh+pOH3U7m3kJJNyVuC3yPIK97NHcQXO5FxujlwjtWL11BIGDOu+oZsmaNL7PMw==
"@docusaurus/theme-translations@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/theme-translations/-/theme-translations-2.0.0-beta.14.tgz#30f230c66aad3e085d680d49db484b663041be75"
integrity sha512-b67qJJIWc3A2tanYslDGpAUGfJ7oVAl+AdjGBYG3j3hYEUSyVUBzm8Y4iyCFEfW6BTx9pjqC/ECNO3iH2L3Ixg==
dependencies:
fs-extra "^10.0.0"
tslib "^2.3.1"
"@docusaurus/types@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.13.tgz#1a837bdd13e9384bdbdb301dd0c31f9c97ea8197"
integrity sha512-4kGninMm3uEcvN/KXBAmc4nR83jPC8h7bPY2MsioSAjL8T0i2f7dUqmVQuIT3vJ69VQaY9HtWhJcTPPYeY3B/w==
"@docusaurus/types@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/types/-/types-2.0.0-beta.14.tgz#d9e1bae14a16ad96c51caaea3c5049eedbaed869"
integrity sha512-1mVrVI0crwZrnjJJeUJUfBrwKdPJVsvh3E0I4pRG9Bo9dfeT8j3bj/GgjaKX4VYRFkDfsVPEpMfrVWujiWr4qQ==
dependencies:
commander "^5.1.0"
joi "^17.4.2"
@ -2105,31 +2118,31 @@
webpack "^5.61.0"
webpack-merge "^5.8.0"
"@docusaurus/utils-common@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.13.tgz#12511a35b1fdb1c57b773ed8fb92ad7cffd4da47"
integrity sha512-jtTGqFbk0qL+338w311aYxpBScAS7MjwXbQdxkBtTV3iELApl6Vc2XXspWCWAQGr+BsRjjz+jnVei9BqUG1PnQ==
"@docusaurus/utils-common@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-common/-/utils-common-2.0.0-beta.14.tgz#4ee8a266366722b2c98e17c12b109236dd2b32fb"
integrity sha512-hNWyy083Bm+6jEzsm05gFmEfwumXph0E46s2HrWkSM8tClrOVmu/C1Rm7kWYn561gXHhrATtyXr/u8bKXByFcQ==
dependencies:
tslib "^2.3.1"
"@docusaurus/utils-validation@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.13.tgz#3ec823a9587f1163e679f7d284277a5b912ea4da"
integrity sha512-2ucoqiFKQURCmqxRN3uYwper/uEWiY0auMRMt0RnhgRZlY3460IoPMjs5ewyjWAP7huRMhNz/FMmNUheKEK06w==
"@docusaurus/utils-validation@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/utils-validation/-/utils-validation-2.0.0-beta.14.tgz#c5e54adbe6dd4b3d6f5525ae5138c0214e75a6c2"
integrity sha512-ttDp/fXjbM6rTfP8XCmBKtNygfPg8cncp+rPsWHdSFjGmE7HkinilFTtaw0Zos/096TtxsQx3DgGQyPOl6prnA==
dependencies:
"@docusaurus/utils" "2.0.0-beta.13"
chalk "^4.1.2"
"@docusaurus/logger" "2.0.0-beta.14"
"@docusaurus/utils" "2.0.0-beta.14"
joi "^17.4.2"
tslib "^2.3.1"
"@docusaurus/utils@2.0.0-beta.13":
version "2.0.0-beta.13"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.13.tgz#aac3d7732593969cacfca29675c490b0309dc324"
integrity sha512-jvQynP//qwqwD8tvCdCH6a9QMc8XQwC6nJsU3pu6+dvU9STVrriBH4RmrQSL4orPFdJ46sBjQEH7DD3sYvv9fw==
"@docusaurus/utils@2.0.0-beta.14":
version "2.0.0-beta.14"
resolved "https://registry.yarnpkg.com/@docusaurus/utils/-/utils-2.0.0-beta.14.tgz#494d2181cc0fd264ebe12f2a08c6ae04878e5f90"
integrity sha512-7V+X70a+7UJHS7PeXS/BO2jz+zXaKhRlT7MUe5khu6i6n1oQA3Jqx1sfu78slemqEWe8u337jxal6uILcB0IWQ==
dependencies:
"@docusaurus/logger" "2.0.0-beta.14"
"@mdx-js/runtime" "^1.6.22"
"@svgr/webpack" "^6.0.0"
chalk "^4.1.2"
escape-string-regexp "^4.0.0"
file-loader "^6.2.0"
fs-extra "^10.0.0"
@ -2330,23 +2343,6 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1"
integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==
"@prisma/client@^3.6.0":
version "3.6.0"
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-3.6.0.tgz#68a60cd4c73a369b11f72e173e86fd6789939293"
integrity sha512-ycSGY9EZGROtje0iCNsgC5Zqi/ttX2sO7BNMYaLsUMiTlf3F69ZPH+08pRo0hrDfkZzyimXYqeXJlaoYDH1w7A==
dependencies:
"@prisma/engines-version" "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
"@prisma/engines-version@3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727":
version "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727.tgz#25aa447776849a774885866b998732b37ec4f4f5"
integrity sha512-vtoO2ys6mSfc8ONTWdcYztKN3GBU1tcKBj0aXObyjzSuGwHFcM/pEA0xF+n1W4/0TAJgfoPX2khNEit6g0jtNA==
"@prisma/engines@3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727":
version "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727.tgz#c68ede6aeffa9ef7743a32cfa6daf9172a4e15b3"
integrity sha512-dRClHS7DsTVchDKzeG72OaEyeDskCv91pnZ72Fftn0mp4BkUvX2LvWup65hCNzwwQm5IDd6A88APldKDnMiEMA==
"@sideway/address@^4.1.0":
version "4.1.2"
resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.2.tgz#811b84333a335739d3969cfc434736268170cad1"
@ -2380,45 +2376,6 @@
url "^0.11.0"
webpack-sources "^1.4.3"
"@supabase/gotrue-js@^1.21.7":
version "1.21.7"
resolved "https://registry.yarnpkg.com/@supabase/gotrue-js/-/gotrue-js-1.21.7.tgz#ec3fdf2199a28fb65c1ae94a3c10032536c0aa4e"
integrity sha512-YnL4cO3Q+ugatWEtgCEnLt+Wwi0VpOVTPSSjSSUho2x3cH7+juRBTrVbYky/W6YVgAw/ZJrVUFPh/NcUCUhdmw==
dependencies:
cross-fetch "^3.0.6"
"@supabase/postgrest-js@^0.35.0":
version "0.35.0"
resolved "https://registry.yarnpkg.com/@supabase/postgrest-js/-/postgrest-js-0.35.0.tgz#a00bda3a0af75e2af6eb31b47742ba112e74686c"
integrity sha512-z+XKJ2oXuGEAEBVXseeQUXaM3ekQZK4XF0Kc399Glyg+rZaBTwNeJtY+Q/23NcIE5uNMYbTnEXm80jZbLBnWdw==
dependencies:
cross-fetch "^3.0.6"
"@supabase/realtime-js@^1.3.3":
version "1.3.3"
resolved "https://registry.yarnpkg.com/@supabase/realtime-js/-/realtime-js-1.3.3.tgz#973c4cacf8062b4f1e435a0b250a2758e16e15f1"
integrity sha512-9D79jlo/56VQf/U7TWhu24epCoj0vWJ7ALkGcqci8Luk/iOcdCxY1NJ76BbS1UnpXEIvQxQGb1R5NSexriKcUA==
dependencies:
"@types/websocket" "^1.0.3"
websocket "^1.0.34"
"@supabase/storage-js@^1.5.0":
version "1.5.0"
resolved "https://registry.yarnpkg.com/@supabase/storage-js/-/storage-js-1.5.0.tgz#5a8390e3102eaab80d394e1734b0ba6c52a3c2cc"
integrity sha512-ki2HT9FrCYRN3yoqWqX+u47TUHQ8lgSStAqV/97kMov1z2d+iIlqGBGVcaGDqq4NvK8CipG8IJARYM72oX+afA==
dependencies:
cross-fetch "^3.1.0"
"@supabase/supabase-js@^1.28.6":
version "1.28.6"
resolved "https://registry.yarnpkg.com/@supabase/supabase-js/-/supabase-js-1.28.6.tgz#be3e85c9f1c6c3c319995d987eda08c66ead75f4"
integrity sha512-xi7txkybcCFLhEFKUFpmvp/ZV/0Ak31w1FZ0eMKAab26yYBRkZPVcogwekOOzLMgSyti/ZZXpWh2x3xMbT9smQ==
dependencies:
"@supabase/gotrue-js" "^1.21.7"
"@supabase/postgrest-js" "^0.35.0"
"@supabase/realtime-js" "^1.3.3"
"@supabase/storage-js" "^1.5.0"
"@svgr/babel-plugin-add-jsx-attribute@^6.0.0":
version "6.0.0"
resolved "https://registry.yarnpkg.com/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-6.0.0.tgz#bd6d1ff32a31b82b601e73672a789cc41e84fe18"
@ -2713,13 +2670,6 @@
resolved "https://registry.yarnpkg.com/@types/w3c-web-serial/-/w3c-web-serial-1.0.2.tgz#8bf21f90b40dda6d2e2e6b188417b6bd66525d03"
integrity sha512-Ftx4BtLxgAnel7V7GbHylCYjSq827A+jeEE3SnTS7huCGUN0pSwUn+CchTCT9TkZj9w+NVMUq4Bk2R0GvUNmAQ==
"@types/websocket@^1.0.3":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@types/websocket/-/websocket-1.0.4.tgz#1dc497280d8049a5450854dd698ee7e6ea9e60b8"
integrity sha512-qn1LkcFEKK8RPp459jkjzsfpbsx36BBt3oC3pITYtkoBw/aVX+EZFa5j3ThCRTNpLFvIMr5dSTD4RaMdilIOpA==
dependencies:
"@types/node" "*"
"@webassemblyjs/ast@1.11.1":
version "1.11.1"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
@ -3334,13 +3284,6 @@ buffer@^5.2.0, buffer@^5.5.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
bufferutil@^4.0.1:
version "4.0.5"
resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.5.tgz#da9ea8166911cc276bf677b8aed2d02d31f59028"
integrity sha512-HTm14iMQKK2FjFLRTM5lAVcyaUzOnqbPtesFIvREgXpJHdQm8bWS+GkQgIkfaBYRHuCnea7w8UVNfwiAQhlr9A==
dependencies:
node-gyp-build "^4.3.0"
bytes@3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
@ -3785,7 +3728,7 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1:
path-type "^4.0.0"
yaml "^1.10.0"
cross-fetch@^3.0.4, cross-fetch@^3.0.6, cross-fetch@^3.1.0:
cross-fetch@^3.0.4:
version "3.1.4"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
@ -3960,15 +3903,7 @@ csstype@^3.0.2:
resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.10.tgz#2ad3a7bed70f35b965707c092e5f30b327c290e5"
integrity sha512-2u44ZG2OcNUO9HDp/Jl8C07x6pU/eTR3ncV91SiK3dhG9TWvRVsCoJw14Ckx5DgWkzGA3waZWO3d7pgqpUI/XA==
d@1, d@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==
dependencies:
es5-ext "^0.10.50"
type "^1.0.1"
debug@2.6.9, debug@^2.2.0, debug@^2.6.0:
debug@2.6.9, debug@^2.6.0:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
@ -4321,32 +4256,6 @@ es-module-lexer@^0.9.0:
resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19"
integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==
es5-ext@^0.10.35, es5-ext@^0.10.50:
version "0.10.53"
resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1"
integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==
dependencies:
es6-iterator "~2.0.3"
es6-symbol "~3.1.3"
next-tick "~1.0.0"
es6-iterator@~2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7"
integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c=
dependencies:
d "1"
es5-ext "^0.10.35"
es6-symbol "^3.1.1"
es6-symbol@^3.1.1, es6-symbol@~3.1.3:
version "3.1.3"
resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18"
integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==
dependencies:
d "^1.0.1"
ext "^1.1.2"
escalade@^3.1.1:
version "3.1.1"
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
@ -4513,13 +4422,6 @@ express@^4.17.1:
utils-merge "1.0.1"
vary "~1.1.2"
ext@^1.1.2:
version "1.6.0"
resolved "https://registry.yarnpkg.com/ext/-/ext-1.6.0.tgz#3871d50641e874cc172e2b53f919842d19db4c52"
integrity sha512-sdBImtzkq2HpkdRLtlLWDa6w4DX22ijZLKx8BMPUuKe1c5lbN6xwQDQCxSfxBQnHZ13ls/FH0MQZx/q/gr6FQg==
dependencies:
type "^2.5.0"
extend-shallow@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
@ -5318,10 +5220,10 @@ indent-string@^4.0.0:
resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251"
integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==
infima@0.2.0-alpha.36:
version "0.2.0-alpha.36"
resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.36.tgz#205515680e2dc588ec1a07b6ce108e49b29cc810"
integrity sha512-tlhQa7S09+QzQs8hCZ9oBeD6xOFap1f2zDO4I5HRZ4SMFKKGk9sIhwaou1FWpYoqM6aaoK2YN+G1fND+Sad1Qw==
infima@0.2.0-alpha.37:
version "0.2.0-alpha.37"
resolved "https://registry.yarnpkg.com/infima/-/infima-0.2.0-alpha.37.tgz#b87ff42d528d6d050098a560f0294fbdd12adb78"
integrity sha512-4GX7Baw+/lwS4PPW/UJNY89tWSvYG1DL6baKVdpK6mC593iRgMssxNtORMTFArLPJ/A/lzsGhRmx+z6MaMxj0Q==
inflight@^1.0.4:
version "1.0.6"
@ -6208,11 +6110,6 @@ neo-async@^2.6.2:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f"
integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==
next-tick@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c"
integrity sha1-yobR/ogoFpsBICCOPchCS524NCw=
no-case@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d"
@ -6250,11 +6147,6 @@ node-forge@^0.10.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
node-gyp-build@^4.3.0:
version "4.3.0"
resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.3.0.tgz#9f256b03e5826150be39c764bf51e993946d71a3"
integrity sha512-iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==
node-releases@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
@ -7047,13 +6939,6 @@ prism-react-renderer@^1.2.1:
resolved "https://registry.yarnpkg.com/prism-react-renderer/-/prism-react-renderer-1.2.1.tgz#392460acf63540960e5e3caa699d851264e99b89"
integrity sha512-w23ch4f75V1Tnz8DajsYKvY5lF7H1+WvzvLUcF0paFxkTHSp42RS0H5CttdN2Q8RR3DRGZ9v5xD/h3n8C8kGmg==
prisma@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/prisma/-/prisma-3.6.0.tgz#99532abc02e045e58c6133a19771bdeb28cecdbe"
integrity sha512-6SqgHS/5Rq6HtHjsWsTxlj+ySamGyCLBUQfotc2lStOjPv52IQuDVpp58GieNqc9VnfuFyHUvTZw7aQB+G2fvQ==
dependencies:
"@prisma/engines" "3.6.0-24.dc520b92b1ebb2d28dc3161f9f82e875bd35d727"
prismjs@^1.23.0:
version "1.25.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.25.0.tgz#6f822df1bdad965734b310b315a23315cf999756"
@ -8403,16 +8288,6 @@ type-is@~1.6.17, type-is@~1.6.18:
media-typer "0.3.0"
mime-types "~2.1.24"
type@^1.0.1:
version "1.2.0"
resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0"
integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==
type@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d"
integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==
typedarray-to-buffer@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080"
@ -8641,13 +8516,6 @@ use-latest@^1.0.0:
dependencies:
use-isomorphic-layout-effect "^1.0.0"
utf-8-validate@^5.0.2:
version "5.0.7"
resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.7.tgz#c15a19a6af1f7ad9ec7ddc425747ca28c3644922"
integrity sha512-vLt1O5Pp+flcArHGIyKEQq883nBt8nN8tVBcoL0qUXj2XT1n7p70yGIq2VK98I5FdZ1YHc0wk/koOnHjnXWk1Q==
dependencies:
node-gyp-build "^4.3.0"
utif@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/utif/-/utif-2.0.1.tgz#9e1582d9bbd20011a6588548ed3266298e711759"
@ -8876,18 +8744,6 @@ websocket-extensions@>=0.1.1:
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
websocket@^1.0.34:
version "1.0.34"
resolved "https://registry.yarnpkg.com/websocket/-/websocket-1.0.34.tgz#2bdc2602c08bf2c82253b730655c0ef7dcab3111"
integrity sha512-PRDso2sGwF6kM75QykIesBijKSVceR6jL2G8NGYyq2XrItNC2P5/qL5XeR056GhA+Ly7JMFvJb9I312mJfmqnQ==
dependencies:
bufferutil "^4.0.1"
debug "^2.2.0"
es5-ext "^0.10.50"
typedarray-to-buffer "^3.1.5"
utf-8-validate "^5.0.2"
yaeti "^0.0.6"
which@^1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
@ -9000,11 +8856,6 @@ xtend@^4.0.0, xtend@^4.0.1:
resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
yaeti@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/yaeti/-/yaeti-0.0.6.tgz#f26f484d72684cf42bedfb76970aa1608fbf9577"
integrity sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=
yallist@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"