better design with selfmade shader
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-02-09 21:34:25 +01:00
parent ff8536f8c6
commit 22755e66e5
18 changed files with 1855 additions and 97 deletions

View File

@@ -1,22 +0,0 @@
import { useEffect } from 'react'
import { Gradient } from '../Gradient.js'
export const GradientBG = () =>{
useEffect(() => {
// Call `initGradient` with the selector to your canvas
const canvasElement = document.getElementById("gradient-background");
const gradient: any = new Gradient();
if (canvasElement) {
gradient.initGradient("#gradient-background");
} else {
gradient.pause();
}
}, []);
return (
<canvas className='-z-40 w-screen h-screen fixed top-0 left-0' id="gradient-background" data-transition-in />
);
};

View File

@@ -24,7 +24,7 @@ export const PostHeader = ({
<div className="lg:text-5xl text-3xl font-bold mt-2 text-gray-50"> <div className="lg:text-5xl text-3xl font-bold mt-2 text-gray-50">
{title} {title}
</div> </div>
<div className="mt-2 text-gray-600dark:text-gray-400">{description}</div> <div className="mt-2 text-gray-600dark:text-gray-400 text-sm">{description}</div>
<div className="mt-2 mb-10 flex lg:flex-row flex-col gap-2 items-start"> <div className="mt-2 mb-10 flex lg:flex-row flex-col gap-2 items-start">
{author && ( {author && (
<div className="font-medium "> <div className="font-medium ">

View File

@@ -0,0 +1,61 @@
import { useRef, useMemo } from 'react'
import { Canvas, useFrame } from '@react-three/fiber'
import { BufferGeometry, Material, MathUtils, Mesh } from "three";
import { vertexShader } from './Shaders/Background/vertex';
import { fragmentShader } from './Shaders/Background/fragment';
const Fragment = () => {
// This reference will give us direct access to the mesh
const meshRef = useRef<Mesh<BufferGeometry, Material | Material[]>>(null);
const uniforms = useMemo(
() => ({
u_intensity: {
value: 1.0,
},
u_time: {
value: 0.0,
},
}),
[]
);
useFrame((state) => {
if(!meshRef.current){
return;
}
const { clock } = state;
//@ts-ignore
meshRef.current.material.uniforms.u_time.value = 0.4 * clock.getElapsedTime()/5;
//@ts-ignore
meshRef.current.material.uniforms.u_intensity.value = MathUtils.lerp(
//@ts-ignore
meshRef.current.material.uniforms.u_intensity.value,
1.0,
0.02
);
});
return (
<mesh ref={meshRef} position={[0, 0, 0]} rotation={[-Math.PI/17, Math.PI/20, 0]} scale={1.5}>
<planeGeometry args={[20, 20, 200, 200]} />
<shaderMaterial
fragmentShader={fragmentShader}
vertexShader={vertexShader}
uniforms={uniforms}
wireframe={false}
/>
</mesh>
);
};
export const R3Gradient = () => {
return (
<div className='-z-40 h-screen w-screen fixed bg-black opacity-60'>
<Canvas camera={{ position: [0.0, 0.0, 5.0] }}>
<Fragment />
</Canvas>
</div>
);
};

View File

@@ -0,0 +1,82 @@
export const fragmentShader = `
uniform float u_intensity;
uniform float u_time;
uniform int width;
uniform int height;
varying vec2 vUv;
varying float vDisplacement;
//from Hash Functions for GPU Rendering (Jarzynski et al.)
//http://www.jcgt.org/published/0009/03/02/
vec3 pcg3d(uvec3 v)
{
v = v * 1664525u + 1013904223u;
v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
v ^= v >> 16u;
v.x += v.y*v.z; v.y += v.z*v.x; v.z += v.x*v.y;
return vec3(v) * (1.0/float(0xffffffffu));
}
// convert texture coordinates to pixel
float t2p(float t, int noOfPixels){
return t * float(noOfPixels) - 0.5;
}
#define M_PI 3.1415926535897932384626433832795
vec2 randomGradient(uvec3 p){
vec3 _uv = pcg3d(p);
float r = sqrt(_uv[0]);
float phi = 2.0 * M_PI * _uv[1];
return vec2(r* cos(phi), r * sin(phi));
}
vec3 gradientNoise(vec2 pos, float gridSize){
vec2 gridPos = pos * gridSize;
uvec2 i = uvec2(gridPos);
vec2 f = fract(gridPos);
vec2 g11 = randomGradient(uvec3(i.x,i.y,1));
vec2 g12 = randomGradient(uvec3(i.x + 1u,i.y,1));
vec2 g21 = randomGradient(uvec3(i.x,i.y + 1u,1));
vec2 g22 = randomGradient(uvec3(i.x + 1u,i.y +1u,1));
float d11 = dot(g11, f);
float d12 = dot(g12, f - vec2(1.0, 0.0));
float d21 = dot(g21, f - vec2(0.0, 1.0));
float d22 = dot(g22, f - vec2(1.0, 1.0));
/*
vec3 f11 = vec3(d11);
vec3 f12 = vec3(d12);
vec3 f21 = vec3(d21);
vec3 f22 = vec3(d22);
*/
vec3 f11 = pcg3d(uvec3(i.x,i.y,0)) * (d11 + 1.0);
vec3 f12 = pcg3d(uvec3(i.x + 1u,i.y,0))* (d12 + 1.0);
vec3 f21 = pcg3d(uvec3(i.x,i.y + 1u,0))* (d21 + 1.0);
vec3 f22 = pcg3d(uvec3(i.x + 1u,i.y +1u,0))* (d22 + 1.0);
f = smoothstep(0.0, 1.0, f);
vec3 q1 = mix(f11, f12, vec3(f.x));
vec3 q2 = mix(f21, f22, vec3(f.x));
vec3 p = mix(q1, q2, vec3(f.y));
return p;
}
void main() {
float distort = 2.0 * vDisplacement + u_intensity;
vec2 pos = vec2(u_time) /5.0 + vUv;
vec3 texColor = gradientNoise(pos, 4.0);
texColor.y = 0.0;
gl_FragColor = vec4(texColor, 1.0);
}
`

View File

@@ -0,0 +1,108 @@
export const vertexShader = `
uniform float u_intensity;
uniform float u_time;
varying vec2 vUv;
varying float vDisplacement;
// Classic Perlin 3D Noise
// by Stefan Gustavson
//
vec4 permute(vec4 x) {
return mod(((x*34.0)+1.0)*x, 289.0);
}
vec4 taylorInvSqrt(vec4 r) {
return 1.79284291400159 - 0.85373472095314 * r;
}
vec3 fade(vec3 t) {
return t*t*t*(t*(t*6.0-15.0)+10.0);
}
float cnoise(vec3 P) {
vec3 Pi0 = floor(P); // Integer part for indexing
vec3 Pi1 = Pi0 + vec3(1.0); // Integer part + 1
Pi0 = mod(Pi0, 289.0);
Pi1 = mod(Pi1, 289.0);
vec3 Pf0 = fract(P); // Fractional part for interpolation
vec3 Pf1 = Pf0 - vec3(1.0); // Fractional part - 1.0
vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);
vec4 iy = vec4(Pi0.yy, Pi1.yy);
vec4 iz0 = Pi0.zzzz;
vec4 iz1 = Pi1.zzzz;
vec4 ixy = permute(permute(ix) + iy);
vec4 ixy0 = permute(ixy + iz0);
vec4 ixy1 = permute(ixy + iz1);
vec4 gx0 = ixy0 / 7.0;
vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;
gx0 = fract(gx0);
vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);
vec4 sz0 = step(gz0, vec4(0.0));
gx0 -= sz0 * (step(0.0, gx0) - 0.5);
gy0 -= sz0 * (step(0.0, gy0) - 0.5);
vec4 gx1 = ixy1 / 7.0;
vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;
gx1 = fract(gx1);
vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);
vec4 sz1 = step(gz1, vec4(0.0));
gx1 -= sz1 * (step(0.0, gx1) - 0.5);
gy1 -= sz1 * (step(0.0, gy1) - 0.5);
vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);
vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);
vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);
vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);
vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);
vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);
vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);
vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);
vec4 norm0 = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));
g000 *= norm0.x;
g010 *= norm0.y;
g100 *= norm0.z;
g110 *= norm0.w;
vec4 norm1 = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));
g001 *= norm1.x;
g011 *= norm1.y;
g101 *= norm1.z;
g111 *= norm1.w;
float n000 = dot(g000, Pf0);
float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));
float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));
float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));
float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));
float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));
float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));
float n111 = dot(g111, Pf1);
vec3 fade_xyz = fade(Pf0);
vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);
vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);
float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x);
return 2.2 * n_xyz;
}
// End of Perlin Noise Code
void main() {
vUv = uv;
vDisplacement = cnoise(position + vec3(2.0 * u_time));
vec3 newPosition = position + normal * (u_intensity * vDisplacement);
vec4 modelPosition = modelMatrix * vec4(newPosition, 1.0);
vec4 viewPosition = viewMatrix * modelPosition;
vec4 projectedPosition = projectionMatrix * viewPosition;
gl_Position = projectedPosition;
}
`

View File

@@ -16,6 +16,7 @@ import remarkTypograf from "@mavrin/remark-typograf";
import smartypants from "remark-smartypants"; import smartypants from "remark-smartypants";
import oembed from "@agentofuser/remark-oembed"; import oembed from "@agentofuser/remark-oembed";
import rehypeRaw from "rehype-raw"; import rehypeRaw from "rehype-raw";
import emoji from "remark-emoji";
import rehypeSanitize from "rehype-sanitize"; import rehypeSanitize from "rehype-sanitize";
SyntaxHighlighter.registerLanguage("tsx", tsx); SyntaxHighlighter.registerLanguage("tsx", tsx);
@@ -104,9 +105,11 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
); );
}, },
code({ node, inline, className, ...props }: any) { code({ node, inline, className, ...props }: any) {
const match = /language-(\w+)/.exec(className || ""); const match = /language-(\w+)/.exec(className || "");
const hasMeta = node?.data?.meta; const hasMeta = node?.data?.meta;
const applyHighlights: object = (applyHighlights: number) => { const applyHighlights: object = (applyHighlights: number) => {
if (hasMeta) { if (hasMeta) {
const RE = /{([\d,-]+)}/; const RE = /{([\d,-]+)}/;
@@ -118,7 +121,7 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
const highlightLines = rangeParser(strlineNumbers); const highlightLines = rangeParser(strlineNumbers);
const highlight = highlightLines; const highlight = highlightLines;
const data = highlight.includes(applyHighlights) ? 200 : null; const data = highlight.includes(applyHighlights) ? "highlight" : null;
return { data }; return { data };
} else { } else {
return {}; return {};
@@ -141,11 +144,12 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
const metadata = node.data.meta; const metadata = node.data.meta;
const RE = /title=\"(.*)\"/; const RE = /title=\"(.*)\"/;
const title = RE?.test(metadata) && RE.exec(metadata); const title = RE?.test(metadata) && RE.exec(metadata);
return title ? title[1] : null; return title ? title[1] : "Code";
} }
return "Code"; return "Code";
}; };
return match ? ( return match ? (
<div> <div>
<div className="w-full flex flex-row items-center gap-4"> <div className="w-full flex flex-row items-center gap-4">
@@ -155,7 +159,7 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
> >
<BiCopy /> <BiCopy />
</button> </button>
{getTitle() && <div>{getTitle()}</div>} {<div>{getTitle()}</div>}
</div> </div>
<SyntaxHighlighter <SyntaxHighlighter
style={defaulttheme} style={defaulttheme}
@@ -190,8 +194,8 @@ export const StyledMarkdown = ({ html }: { html: string }) => {
> >
<ReactMarkdown <ReactMarkdown
components={MarkdownComponents} components={MarkdownComponents}
rehypePlugins={[rehypeRaw, rehypeSanitize]} rehypePlugins={[rehypeRaw]}
remarkPlugins={[remarkGfm, remarkTypograf, smartypants, oembed]} remarkPlugins={[remarkGfm, remarkTypograf, smartypants, oembed, emoji]}
children={html} children={html}
/> />
</div> </div>

View File

@@ -0,0 +1,33 @@
---
title: "Space Madness"
date: 29.12.2022
author: kookroach
authorLink: https://git.peroxy.dev/kookroach
description: "Challenge yourself in this mobile endless space shooter game. Navigate through an endless battlefield and destroy turrets while avoiding being killed. See if you can beat the current high score of 7471."
thumbnail: https://docs.peroxy.dev/uploads/cd22a289-ebe7-4d82-98e3-b639d1df2ea6.png
---
```
_____ ___ ___ _
/ ___| | \/ | | |
\ `--. _ __ __ _ ___ ___ | . . | __ _ __| | _ __ ___ ___ ___
`--. \| '_ \ / _` | / __| / _ \ | |\/| | / _` | / _` || '_ \ / _ \/ __|/ __|
/\__/ /| |_) || (_| || (__ | __/ | | | || (_| || (_| || | | || __/\__ \\__ \
\____/ | .__/ \__,_| \___| \___| \_| |_/ \__,_| \__,_||_| |_| \___||___/|___/
| |
|_|
```
> :warning: **Assets and Sounds of this game are not self made**
### About this Project
My introduction to game development began with the completion of my first project, "Space Madness", which I created using the Unity Engine. This experience sparked my passion for the field and led me to pursue a degree in Informatics: Games Engineering at the Technical University of Munich.
### Technical Features
- Procedual Terrain generation
- Chunk rendering with LOD
- Endless Level generation
- Basic Boss Fight Logic
- Touch input support

View File

@@ -1,16 +0,0 @@
---
title: "My First Project"
date: 29.12.2022
author: kookroach
authorLink: https://git.peroxy.dev/kookroach
description: Short description
thumbnail: https://images.unsplash.com/photo-1640539984026-c1b0d7c5d4b5?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1332&q=80
---
# First project
This is a project
You can add pics
![Foo](https://images.unsplash.com/photo-1593508512255-86ab42a8e620?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=578&q=80)

View File

@@ -115,7 +115,7 @@ var foo = function (bar) {
console.log(foo(5)); console.log(foo(5));
``` ```
```js line=200,{2-3, 5},title="pidhsome je" ```tsx line=200, title="pidhsome je"
var foo = function (bar) { var foo = function (bar) {
return bar++; return bar++;
}; };

View File

@@ -1,14 +1,13 @@
import { PropsWithChildren } from "react"; import { PropsWithChildren } from "react";
import { R3Gradient } from '../components/R3Background';
import { GradientBG } from '../components/GradientBG';
import { Navbar } from "../components/Navbar"; import { Navbar } from "../components/Navbar";
export const MainLayout = ({ children }: PropsWithChildren) => { export const MainLayout = ({ children }: PropsWithChildren) => {
return ( return (
<div className="w-full"> <div className="w-full">
<Navbar /> <Navbar />
<GradientBG /> <R3Gradient />
<main className="xl:p-10 p-4 px-10 xl:mx-0">{children}</main> <main className="xl:p-5 p-4 px-5 xl:mx-0">{children}</main>
</div> </div>
); );
}; };

1089
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,10 +11,13 @@
"dependencies": { "dependencies": {
"@agentofuser/remark-oembed": "^1.0.4", "@agentofuser/remark-oembed": "^1.0.4",
"@mavrin/remark-typograf": "^2.2.0", "@mavrin/remark-typograf": "^2.2.0",
"@react-three/drei": "^9.56.19",
"@react-three/fiber": "^8.11.0",
"@tailwindcss/typography": "^0.5.8", "@tailwindcss/typography": "^0.5.8",
"@types/node": "18.11.11", "@types/node": "18.11.11",
"@types/react": "18.0.26", "@types/react": "18.0.26",
"@types/react-dom": "18.0.9", "@types/react-dom": "18.0.9",
"@types/three": "^0.149.0",
"framer-motion": "^8.0.2", "framer-motion": "^8.0.2",
"gray-matter": "^4.0.3", "gray-matter": "^4.0.3",
"next": "13.0.6", "next": "13.0.6",
@@ -27,9 +30,11 @@
"rehype-raw": "^6.1.1", "rehype-raw": "^6.1.1",
"rehype-sanitize": "^5.0.1", "rehype-sanitize": "^5.0.1",
"remark": "^14.0.2", "remark": "^14.0.2",
"remark-emoji": "^3.1.0",
"remark-gfm": "^3.0.1", "remark-gfm": "^3.0.1",
"remark-html": "^15.0.1", "remark-html": "^15.0.1",
"remark-smartypants": "^2.0.0", "remark-smartypants": "^2.0.0",
"three": "^0.149.0",
"typescript": "4.9.3" "typescript": "4.9.3"
}, },
"devDependencies": { "devDependencies": {

View File

@@ -13,14 +13,18 @@ import { StyledMarkdown } from "../../components/StyledMarkdown";
export const BlogArticle = ({ frontMatter, html }: MarkdownRenderingResult) => { export const BlogArticle = ({ frontMatter, html }: MarkdownRenderingResult) => {
return ( return (
<MainLayout> <MainLayout>
<Link href="/blog"> <div className="rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700 gap-4 bg-black bg-opacity-30 round">
<button className="flex flex-row items-center gap-2 text-primary hover:text-primary-dark dark:text-secondary dark:hover:text-secondary/50 transition-all ease-in duration-75"> <div className="mx-10 mt-5 mb-10">
<BackIcon /> <Link href="/blog">
<span>Go Back</span> <button className="flex flex-row items-center gap-2 text-primary hover:text-primary-dark dark:text-secondary dark:hover:text-secondary/50 transition-all ease-in duration-75">
</button> <BackIcon />
</Link> <span>Go Back</span>
<PostHeader frontMatter={frontMatter} estTime={readingTime(html)} /> </button>
<StyledMarkdown html={html} /> </Link>
<PostHeader frontMatter={frontMatter} estTime={readingTime(html)} />
<StyledMarkdown html={html} />
</div>
</div>
</MainLayout> </MainLayout>
); );
}; };

View File

@@ -13,12 +13,12 @@ const BlogCard = ({
slug: string; slug: string;
}) => { }) => {
return ( return (
<div className="p-4 rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700"> <div className="p-4 rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700 bg-black bg-opacity-60">
<div className="text-sm font-medium text-gray-500"> <div className="text-sm font-medium text-gray-500">
{formatDate(blog.date)} {formatDate(blog.date)}
</div> </div>
<h2 className="text-2xl font-bold">{blog.title}</h2> <h2 className="text-2xl font-bold">{blog.title}</h2>
<p className="text-gray-600 dark:text-gray-400 text-lg"> <p className="text-gray-600 dark:text-gray-400 text-sm">
{blog.description} {blog.description}
</p> </p>
<Link href={`blog/${slug}`}> <Link href={`blog/${slug}`}>
@@ -36,7 +36,7 @@ const Blog = ({ posts }: { posts: Post[] }) => {
<h1 className="text-3xl font-bold text-gray-800 dark:text-gray-200"> <h1 className="text-3xl font-bold text-gray-800 dark:text-gray-200">
Blog Blog
</h1> </h1>
<div className="w-full h-0.5 bg-gray-200 dark:bg-gray-700 my-4 rounded-full" /> <div className="w-full h-0.5 bg-violet-200 dark:bg-violet-700 my-4 rounded-full" />
<div className="grid grid-cols-1 md:grid-cols-2 gap-4"> <div className="grid grid-cols-1 md:grid-cols-2 gap-4">
{posts.map((post, index) => ( {posts.map((post, index) => (
<BlogCard <BlogCard

View File

@@ -16,16 +16,20 @@ export const ProjectArticle = ({
}: MarkdownRenderingResult) => { }: MarkdownRenderingResult) => {
return ( return (
<MainLayout> <MainLayout>
<Link href="/projects"> <div className="rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700 gap-4 bg-black bg-opacity-30 round">
<button className="flex flex-row items-center gap-2 text-primary hover:text-primary-dark dark:text-secondary dark:hover:text-secondary/50 transition-all ease-in duration-75"> <div className="mx-10 my-10">
<BackIcon /> <Link href="/projects">
<span>Go Back</span> <button className="flex flex-row items-center gap-2 text-primary hover:text-primary-dark dark:text-secondary dark:hover:text-secondary/50 transition-all ease-in duration-75">
</button> <BackIcon />
</Link> <span>Go Back</span>
</button>
</Link>
<PostHeader frontMatter={frontMatter} estTime={readingTime(html)} /> <PostHeader frontMatter={frontMatter} estTime={readingTime(html)} />
<StyledMarkdown html={html} /> <StyledMarkdown html={html} />
</div>
</div>
</MainLayout> </MainLayout>
); );
}; };

View File

@@ -13,13 +13,13 @@ const ProjectCard = ({
slug: string; slug: string;
}) => { }) => {
return ( return (
<div className="p-4 rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700 grid grid-cols-1 xl:grid-cols-2 items-center gap-4"> <div className="p-4 rounded-md border border-gray-200 shadow-md shadow-gray-200 dark:shadow-gray-900 dark:border-gray-700 grid grid-cols-1 xl:grid-cols-2 items-center gap-4 bg-black bg-opacity-60">
<div className="order-last xl:order-1"> <div className="order-last xl:order-1">
<div className="text-sm font-medium text-gray-500"> <div className="text-sm font-medium text-gray-500">
{formatDate(project.date)} {formatDate(project.date)}
</div> </div>
<h2 className="text-2xl font-bold">{project.title}</h2> <h2 className="text-2xl font-bold">{project.title}</h2>
<p className="text-gray-600 dark:text-gray-400 text-lg"> <p className="text-gray-600 dark:text-gray-400 text-sm">
{project.description} {project.description}
</p> </p>
<Link href={`project/${slug}`}> <Link href={`project/${slug}`}>
@@ -45,7 +45,7 @@ const Projects = ({ posts }: { posts: Post[] }) => {
<h1 className="text-3xl font-bold text-gray-800 dark:text-gray-100"> <h1 className="text-3xl font-bold text-gray-800 dark:text-gray-100">
Projects Projects
</h1> </h1>
<div className="w-full h-0.5 bg-gray-200 dark:bg-gray-700 my-4 rounded-full" /> <div className="w-full h-0.5 bg-violet-200 dark:bg-violet-700 my-4 rounded-full" />
<div className="grid grid-cols-1 gap-4"> <div className="grid grid-cols-1 gap-4">
{posts.map((post, index) => ( {posts.map((post, index) => (
<ProjectCard <ProjectCard

View File

@@ -48,14 +48,3 @@ h4 > a:hover::before {
div > code, pre > code { div > code, pre > code {
@apply p-0 m-0 !important @apply p-0 m-0 !important
} }
#gradient-background {
width:100%;
height:100%;
fill: rgba(0, 0, 0, 0.6);
--gradient-color-1: #161926;
--gradient-color-2: #1E96FC;
--gradient-color-3: #FF3366;
--gradient-color-4: #1b2034;
}

446
yarn.lock
View File

@@ -10,13 +10,40 @@
"axios" "^0.19.0" "axios" "^0.19.0"
"unist-util-select" "^2.0.2" "unist-util-select" "^2.0.2"
"@babel/runtime@^7.3.1": "@babel/runtime@^7.11.2", "@babel/runtime@^7.16.7", "@babel/runtime@^7.17.8", "@babel/runtime@^7.3.1":
"integrity" "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==" "integrity" "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA=="
"resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz" "resolved" "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz"
"version" "7.20.13" "version" "7.20.13"
dependencies: dependencies:
"regenerator-runtime" "^0.13.11" "regenerator-runtime" "^0.13.11"
"@chevrotain/cst-dts-gen@10.4.2":
"integrity" "sha512-0+4bNjlndNWMoVLH/+y4uHnf6GrTipsC+YTppJxelVJo+xeRVQ0s2PpkdDCVTsu7efyj+8r1gFiwVXsp6JZ0iQ=="
"resolved" "https://registry.npmjs.org/@chevrotain/cst-dts-gen/-/cst-dts-gen-10.4.2.tgz"
"version" "10.4.2"
dependencies:
"@chevrotain/gast" "10.4.2"
"@chevrotain/types" "10.4.2"
"lodash" "4.17.21"
"@chevrotain/gast@10.4.2":
"integrity" "sha512-4ZAn8/mjkmYonilSJ60gGj1tAF0cVWYUMlIGA0e4ATAc3a648aCnvpBw7zlPHDQjFp50XC13iyWEgWAKiRKTOA=="
"resolved" "https://registry.npmjs.org/@chevrotain/gast/-/gast-10.4.2.tgz"
"version" "10.4.2"
dependencies:
"@chevrotain/types" "10.4.2"
"lodash" "4.17.21"
"@chevrotain/types@10.4.2":
"integrity" "sha512-QzSCjg6G4MvIoLeIgOiMR0IgzkGEQqrNJJIr3T5ETRa7l4Av4AMIiEctV99mvDr57iXwwk0/kr3RJxiU36Nevw=="
"resolved" "https://registry.npmjs.org/@chevrotain/types/-/types-10.4.2.tgz"
"version" "10.4.2"
"@chevrotain/utils@10.4.2":
"integrity" "sha512-V34dacxWLwKcvcy32dx96ADJVdB7kOJLm7LyBkBQw5u5HC9WdEFw2G17zml+U3ivavGTrGPJHl8o9/UJm0PlUw=="
"resolved" "https://registry.npmjs.org/@chevrotain/utils/-/utils-10.4.2.tgz"
"version" "10.4.2"
"@emotion/is-prop-valid@^0.8.2": "@emotion/is-prop-valid@^0.8.2":
"integrity" "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==" "integrity" "sha512-u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA=="
"resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz" "resolved" "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz"
@@ -127,6 +154,92 @@
"@nodelib/fs.scandir" "2.1.5" "@nodelib/fs.scandir" "2.1.5"
"fastq" "^1.6.0" "fastq" "^1.6.0"
"@react-spring/animated@~9.6.1":
"integrity" "sha512-ls/rJBrAqiAYozjLo5EPPLLOb1LM0lNVQcXODTC1SMtS6DbuBCPaKco5svFUQFMP2dso3O+qcC4k9FsKc0KxMQ=="
"resolved" "https://registry.npmjs.org/@react-spring/animated/-/animated-9.6.1.tgz"
"version" "9.6.1"
dependencies:
"@react-spring/shared" "~9.6.1"
"@react-spring/types" "~9.6.1"
"@react-spring/core@~9.6.1":
"integrity" "sha512-3HAAinAyCPessyQNNXe5W0OHzRfa8Yo5P748paPcmMowZ/4sMfaZ2ZB6e5x5khQI8NusOHj8nquoutd6FRY5WQ=="
"resolved" "https://registry.npmjs.org/@react-spring/core/-/core-9.6.1.tgz"
"version" "9.6.1"
dependencies:
"@react-spring/animated" "~9.6.1"
"@react-spring/rafz" "~9.6.1"
"@react-spring/shared" "~9.6.1"
"@react-spring/types" "~9.6.1"
"@react-spring/rafz@~9.6.1":
"integrity" "sha512-v6qbgNRpztJFFfSE3e2W1Uz+g8KnIBs6SmzCzcVVF61GdGfGOuBrbjIcp+nUz301awVmREKi4eMQb2Ab2gGgyQ=="
"resolved" "https://registry.npmjs.org/@react-spring/rafz/-/rafz-9.6.1.tgz"
"version" "9.6.1"
"@react-spring/shared@~9.6.1":
"integrity" "sha512-PBFBXabxFEuF8enNLkVqMC9h5uLRBo6GQhRMQT/nRTnemVENimgRd+0ZT4yFnAQ0AxWNiJfX3qux+bW2LbG6Bw=="
"resolved" "https://registry.npmjs.org/@react-spring/shared/-/shared-9.6.1.tgz"
"version" "9.6.1"
dependencies:
"@react-spring/rafz" "~9.6.1"
"@react-spring/types" "~9.6.1"
"@react-spring/three@^9.3.1":
"integrity" "sha512-Tyw2YhZPKJAX3t2FcqvpLRb71CyTe1GvT3V+i+xJzfALgpk10uPGdGaQQ5Xrzmok1340DAeg2pR/MCfaW7b8AA=="
"resolved" "https://registry.npmjs.org/@react-spring/three/-/three-9.6.1.tgz"
"version" "9.6.1"
dependencies:
"@react-spring/animated" "~9.6.1"
"@react-spring/core" "~9.6.1"
"@react-spring/shared" "~9.6.1"
"@react-spring/types" "~9.6.1"
"@react-spring/types@~9.6.1":
"integrity" "sha512-POu8Mk0hIU3lRXB3bGIGe4VHIwwDsQyoD1F394OK7STTiX9w4dG3cTLljjYswkQN+hDSHRrj4O36kuVa7KPU8Q=="
"resolved" "https://registry.npmjs.org/@react-spring/types/-/types-9.6.1.tgz"
"version" "9.6.1"
"@react-three/drei@^9.56.19":
"integrity" "sha512-vbBEbxDrC1VZ16QFtJQoC0QK1d3HSFV0WxPL5wxXZcL1zI0GN9RvoWj9CF9z2ImsaAQYzCnEurPJbsKJopxwzQ=="
"resolved" "https://registry.npmjs.org/@react-three/drei/-/drei-9.56.19.tgz"
"version" "9.56.19"
dependencies:
"@babel/runtime" "^7.11.2"
"@react-spring/three" "^9.3.1"
"@use-gesture/react" "^10.2.24"
"camera-controls" "^2.0.1"
"detect-gpu" "^5.0.9"
"glsl-noise" "^0.0.0"
"lodash.clamp" "^4.0.3"
"lodash.omit" "^4.5.0"
"lodash.pick" "^4.4.0"
"maath" "^0.5.2"
"meshline" "^3.1.6"
"react-composer" "^5.0.3"
"react-merge-refs" "^1.1.0"
"stats.js" "^0.17.0"
"suspend-react" "^0.0.8"
"three-mesh-bvh" "^0.5.23"
"three-stdlib" "^2.21.8"
"troika-three-text" "^0.47.1"
"utility-types" "^3.10.0"
"zustand" "^3.5.13"
"@react-three/fiber@^8.11.0", "@react-three/fiber@>=6.0", "@react-three/fiber@>=8.0":
"integrity" "sha512-n9eM7hVsHbecexKK0isvUOPq1SYMHcLhUTZsMZQSYo5RT1yjbgQbbrVtF9bXN9rQgrD9l3V3Ho3ckPp0cNNs1w=="
"resolved" "https://registry.npmjs.org/@react-three/fiber/-/fiber-8.11.0.tgz"
"version" "8.11.0"
dependencies:
"@babel/runtime" "^7.17.8"
"@types/react-reconciler" "^0.26.7"
"its-fine" "^1.0.6"
"react-reconciler" "^0.27.0"
"react-use-measure" "^2.1.1"
"scheduler" "^0.21.0"
"suspend-react" "^0.0.8"
"zustand" "^3.7.1"
"@swc/helpers@0.4.14": "@swc/helpers@0.4.14":
"integrity" "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw==" "integrity" "sha512-4C7nX/dvpzB7za4Ql9K81xK3HPxCpHMgwTZVyf+9JQ6VUbn9jjZVN7/Nkdz/Ugzs2CSjqnL/UPXroiVBVHUWUw=="
"resolved" "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz" "resolved" "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.14.tgz"
@@ -182,6 +295,11 @@
"resolved" "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz" "resolved" "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz"
"version" "18.11.11" "version" "18.11.11"
"@types/offscreencanvas@^2019.6.4":
"integrity" "sha512-PGcyveRIpL1XIqK8eBsmRBt76eFgtzuPiSTyKHZxnGemp2yzGzWpjYKAfK3wIMiU7eH+851yEpiuP8JZerTmWg=="
"resolved" "https://registry.npmjs.org/@types/offscreencanvas/-/offscreencanvas-2019.7.0.tgz"
"version" "2019.7.0"
"@types/parse5@^6.0.0": "@types/parse5@^6.0.0":
"integrity" "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==" "integrity" "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g=="
"resolved" "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz" "resolved" "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz"
@@ -199,6 +317,20 @@
dependencies: dependencies:
"@types/react" "*" "@types/react" "*"
"@types/react-reconciler@^0.26.7":
"integrity" "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ=="
"resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz"
"version" "0.26.7"
dependencies:
"@types/react" "*"
"@types/react-reconciler@^0.28.0":
"integrity" "sha512-8tu6lHzEgYPlfDf/J6GOQdIc+gs+S2yAqlby3zTsB3SP2svlqTYe5fwZNtZyfactP74ShooP2vvi1BOp9ZemWw=="
"resolved" "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.28.2.tgz"
"version" "0.28.2"
dependencies:
"@types/react" "*"
"@types/react-syntax-highlighter@^15.5.5": "@types/react-syntax-highlighter@^15.5.5":
"integrity" "sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg==" "integrity" "sha512-i7wFuLbIAFlabTeD2I1cLjEOrG/xdMa/rpx2zwzAoGHuXJDhSqp9BSfDlMHSh9JSuNfxHk9eEmMX6D55GiyjGg=="
"resolved" "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz" "resolved" "https://registry.npmjs.org/@types/react-syntax-highlighter/-/react-syntax-highlighter-15.5.6.tgz"
@@ -220,11 +352,40 @@
"resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz" "resolved" "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz"
"version" "0.16.2" "version" "0.16.2"
"@types/three@^0.149.0", "@types/three@>=0.144.0":
"integrity" "sha512-fgNBm9LWc65ER/W0cvoXdC0iMy7Ke9e2CONmEr6Jt8sDSY3sw4DgOubZfmdZ747dkPhbQrgRQAWwDEr2S/7IEg=="
"resolved" "https://registry.npmjs.org/@types/three/-/three-0.149.0.tgz"
"version" "0.149.0"
dependencies:
"@types/webxr" "*"
"@types/unist@*", "@types/unist@^2.0.0": "@types/unist@*", "@types/unist@^2.0.0":
"integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==" "integrity" "sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ=="
"resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz" "resolved" "https://registry.npmjs.org/@types/unist/-/unist-2.0.6.tgz"
"version" "2.0.6" "version" "2.0.6"
"@types/webxr@*":
"integrity" "sha512-xlFXPfgJR5vIuDefhaHuUM9uUgvPaXB6GKdXy2gdEh8gBWQZ2ul24AJz3foUd8NNKlSTQuWYJpCb1/pL81m1KQ=="
"resolved" "https://registry.npmjs.org/@types/webxr/-/webxr-0.5.1.tgz"
"version" "0.5.1"
"@use-gesture/core@10.2.24":
"integrity" "sha512-ZL7F9mgOn3Qlnp6QLI9jaOfcvqrx6JPE/BkdVSd8imveaFTm/a3udoO6f5Us/1XtqnL4347PsIiK6AtCvMHk2Q=="
"resolved" "https://registry.npmjs.org/@use-gesture/core/-/core-10.2.24.tgz"
"version" "10.2.24"
"@use-gesture/react@^10.2.24":
"integrity" "sha512-rAZ8Nnpu1g4eFzqCPlaq+TppJpMy0dTpYOQx5KpfoBF4P3aWnCqwj7eKxcmdIb1NJKpIJj50DPugUH4mq5cpBg=="
"resolved" "https://registry.npmjs.org/@use-gesture/react/-/react-10.2.24.tgz"
"version" "10.2.24"
dependencies:
"@use-gesture/core" "10.2.24"
"@webgpu/glslang@^0.0.15":
"integrity" "sha512-niT+Prh3Aff8Uf1MVBVUsaNjFj9rJAKDXuoHIKiQbB+6IUP/3J3JIhBNyZ7lDhytvXxw6ppgnwKZdDJ08UMj4Q=="
"resolved" "https://registry.npmjs.org/@webgpu/glslang/-/glslang-0.0.15.tgz"
"version" "0.0.15"
"acorn-node@^1.8.2": "acorn-node@^1.8.2":
"integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==" "integrity" "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A=="
"resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz" "resolved" "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz"
@@ -293,6 +454,13 @@
"resolved" "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz" "resolved" "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz"
"version" "2.0.2" "version" "2.0.2"
"bidi-js@^1.0.2":
"integrity" "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw=="
"resolved" "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz"
"version" "1.0.2"
dependencies:
"require-from-string" "^2.0.2"
"binary-extensions@^2.0.0": "binary-extensions@^2.0.0":
"integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" "integrity" "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
"resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" "resolved" "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
@@ -325,6 +493,11 @@
"resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" "resolved" "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz"
"version" "2.0.1" "version" "2.0.1"
"camera-controls@^2.0.1":
"integrity" "sha512-9b2dpUZp+3Rfkh/E8dU9O9/rBbPDzyB5DBINktedRAF4I5ldZUgBiSYtFac7wF3yXNf4UH2pjP3uRcoAtXTh4A=="
"resolved" "https://registry.npmjs.org/camera-controls/-/camera-controls-2.1.0.tgz"
"version" "2.1.0"
"caniuse-lite@^1.0.30001400", "caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001426": "caniuse-lite@^1.0.30001400", "caniuse-lite@^1.0.30001406", "caniuse-lite@^1.0.30001426":
"integrity" "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg==" "integrity" "sha512-OyxRR4Vof59I3yGWXws6i908EtGbMzVUi3ganaZQHmydk1iwDhRnvaPG2WaR0KcqrDFKrxVZHULT396LEPhXfg=="
"resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz" "resolved" "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001441.tgz"
@@ -365,6 +538,18 @@
"resolved" "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz" "resolved" "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz"
"version" "1.1.4" "version" "1.1.4"
"chevrotain@^10.1.2":
"integrity" "sha512-gzF5GxE0Ckti5kZVuKEZycLntB5X2aj9RVY0r4/220GwQjdnljU+/t3kP74/FMWC7IzCDDEjQ9wsFUf0WCdSHg=="
"resolved" "https://registry.npmjs.org/chevrotain/-/chevrotain-10.4.2.tgz"
"version" "10.4.2"
dependencies:
"@chevrotain/cst-dts-gen" "10.4.2"
"@chevrotain/gast" "10.4.2"
"@chevrotain/types" "10.4.2"
"@chevrotain/utils" "10.4.2"
"lodash" "4.17.21"
"regexp-to-ast" "0.5.0"
"chokidar@^3.5.3": "chokidar@^3.5.3":
"integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==" "integrity" "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw=="
"resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" "resolved" "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
@@ -415,6 +600,11 @@
"resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz" "resolved" "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz"
"version" "3.1.1" "version" "3.1.1"
"debounce@^1.2.1":
"integrity" "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
"resolved" "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz"
"version" "1.2.1"
"debug@^4.0.0": "debug@^4.0.0":
"integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==" "integrity" "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
"resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" "resolved" "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
@@ -446,6 +636,13 @@
"resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" "resolved" "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz"
"version" "2.0.3" "version" "2.0.3"
"detect-gpu@^5.0.9":
"integrity" "sha512-V0g0RhtlItrhgBM4/T/lTpjephr9b/xDAOtJZztGTvQxaPSMQ4EAiV9tdHL+4GcT1ATvYmMCm4QbrhyjdEH6Fw=="
"resolved" "https://registry.npmjs.org/detect-gpu/-/detect-gpu-5.0.10.tgz"
"version" "5.0.10"
dependencies:
"webgl-constants" "^1.1.1"
"detective@^5.2.1": "detective@^5.2.1":
"integrity" "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==" "integrity" "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw=="
"resolved" "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz" "resolved" "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz"
@@ -470,11 +667,21 @@
"resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" "resolved" "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz"
"version" "1.1.3" "version" "1.1.3"
"draco3d@^1.4.1":
"integrity" "sha512-+3NaRjWktb5r61ZFoDejlykPEFKT5N/LkbXsaddlw6xNSXBanUYpFc2AXXpbJDilPHazcSreU/DpQIaxfX0NfQ=="
"resolved" "https://registry.npmjs.org/draco3d/-/draco3d-1.5.6.tgz"
"version" "1.5.6"
"electron-to-chromium@^1.4.251": "electron-to-chromium@^1.4.251":
"integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==" "integrity" "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA=="
"resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz" "resolved" "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz"
"version" "1.4.284" "version" "1.4.284"
"emoticon@^4.0.1":
"integrity" "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw=="
"resolved" "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz"
"version" "4.0.1"
"escalade@^3.1.1": "escalade@^3.1.1":
"integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" "integrity" "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
"resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" "resolved" "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
@@ -527,6 +734,11 @@
dependencies: dependencies:
"format" "^0.2.0" "format" "^0.2.0"
"fflate@^0.6.9":
"integrity" "sha512-IQrh3lEPM93wVCEczc9SaAOvkmcoQn/G8Bo1e8ZPlY3X3bnAxWaBdvTdvM1hP62iZp0BXWDy4vTAy4fF0+Dlpg=="
"resolved" "https://registry.npmjs.org/fflate/-/fflate-0.6.10.tgz"
"version" "0.6.10"
"fill-range@^7.0.1": "fill-range@^7.0.1":
"integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==" "integrity" "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ=="
"resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" "resolved" "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz"
@@ -588,6 +800,11 @@
dependencies: dependencies:
"is-glob" "^4.0.1" "is-glob" "^4.0.1"
"glsl-noise@^0.0.0":
"integrity" "sha512-b/ZCF6amfAUb7dJM/MxRs7AetQEahYzJ8PtgfrmEdtw6uyGOr+ZSGtgjFm6mfsBkxJ4d2W7kg+Nlqzqvn3Bc0w=="
"resolved" "https://registry.npmjs.org/glsl-noise/-/glsl-noise-0.0.0.tgz"
"version" "0.0.0"
"gray-matter@^4.0.3": "gray-matter@^4.0.3":
"integrity" "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==" "integrity" "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q=="
"resolved" "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz" "resolved" "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz"
@@ -806,6 +1023,13 @@
"resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz" "resolved" "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz"
"version" "4.1.0" "version" "4.1.0"
"its-fine@^1.0.6":
"integrity" "sha512-Ph+vcp1R100JOM4raXmDx/wCTi4kMkMXiFE108qGzsLdghXFPqad82UJJtqT1jwdyWYkTU6eDpDnol/ZIzW+1g=="
"resolved" "https://registry.npmjs.org/its-fine/-/its-fine-1.0.9.tgz"
"version" "1.0.9"
dependencies:
"@types/react-reconciler" "^0.28.0"
"js-tokens@^3.0.0 || ^4.0.0": "js-tokens@^3.0.0 || ^4.0.0":
"integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" "integrity" "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
"resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" "resolved" "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"
@@ -829,6 +1053,11 @@
"resolved" "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz" "resolved" "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz"
"version" "4.1.5" "version" "4.1.5"
"ktx-parse@^0.4.5":
"integrity" "sha512-MK3FOody4TXbFf8Yqv7EBbySw7aPvEcPX++Ipt6Sox+/YMFvR5xaTyhfNSk1AEmMy+RYIw81ctN4IMxCB8OAlg=="
"resolved" "https://registry.npmjs.org/ktx-parse/-/ktx-parse-0.4.5.tgz"
"version" "0.4.5"
"lilconfig@^2.0.5", "lilconfig@^2.0.6": "lilconfig@^2.0.5", "lilconfig@^2.0.6":
"integrity" "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==" "integrity" "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg=="
"resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz" "resolved" "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz"
@@ -839,6 +1068,11 @@
"resolved" "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz" "resolved" "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz"
"version" "4.4.0" "version" "4.4.0"
"lodash.clamp@^4.0.3":
"integrity" "sha512-HvzRFWjtcguTW7yd8NJBshuNaCa8aqNFtnswdT7f/cMd/1YKy5Zzoq4W/Oxvnx9l7aeY258uSdDfM793+eLsVg=="
"resolved" "https://registry.npmjs.org/lodash.clamp/-/lodash.clamp-4.0.3.tgz"
"version" "4.0.3"
"lodash.escaperegexp@^4.1.2": "lodash.escaperegexp@^4.1.2":
"integrity" "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" "integrity" "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw=="
"resolved" "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" "resolved" "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz"
@@ -854,6 +1088,21 @@
"resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" "resolved" "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
"version" "4.6.2" "version" "4.6.2"
"lodash.omit@^4.5.0":
"integrity" "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg=="
"resolved" "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz"
"version" "4.5.0"
"lodash.pick@^4.4.0":
"integrity" "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q=="
"resolved" "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz"
"version" "4.4.0"
"lodash@^4.17.21", "lodash@4.17.21":
"integrity" "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
"resolved" "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz"
"version" "4.17.21"
"longest-streak@^3.0.0": "longest-streak@^3.0.0":
"integrity" "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==" "integrity" "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g=="
"resolved" "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz" "resolved" "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz"
@@ -874,6 +1123,11 @@
"fault" "^1.0.0" "fault" "^1.0.0"
"highlight.js" "~10.7.0" "highlight.js" "~10.7.0"
"maath@^0.5.2":
"integrity" "sha512-MFjfnXF5CzZaVnBuKc9y1FJh/BiPGqf19NH8Jm4o/jKTxuQ3RyPkcSIpuwdDhXrWROVKAxi3KjmHFUNMuIndbg=="
"resolved" "https://registry.npmjs.org/maath/-/maath-0.5.2.tgz"
"version" "0.5.2"
"markdown-table@^3.0.0": "markdown-table@^3.0.0":
"integrity" "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==" "integrity" "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw=="
"resolved" "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz" "resolved" "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz"
@@ -888,11 +1142,12 @@
"@types/unist" "^2.0.0" "@types/unist" "^2.0.0"
"unist-util-visit" "^4.0.0" "unist-util-visit" "^4.0.0"
"mdast-util-find-and-replace@^2.0.0": "mdast-util-find-and-replace@^2.0.0", "mdast-util-find-and-replace@^2.2.2":
"integrity" "sha512-SobxkQXFAdd4b5WmEakmkVoh18icjQRxGy5OWTCzgsLRm1Fu/KCtwD1HIQSsmq5ZRjVH0Ehwg6/Fn3xIUk+nKw==" "integrity" "sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw=="
"resolved" "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.1.tgz" "resolved" "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz"
"version" "2.2.1" "version" "2.2.2"
dependencies: dependencies:
"@types/mdast" "^3.0.0"
"escape-string-regexp" "^5.0.0" "escape-string-regexp" "^5.0.0"
"unist-util-is" "^5.0.0" "unist-util-is" "^5.0.0"
"unist-util-visit-parents" "^5.0.0" "unist-util-visit-parents" "^5.0.0"
@@ -1011,6 +1266,11 @@
"resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" "resolved" "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
"version" "1.4.1" "version" "1.4.1"
"meshline@^3.1.6":
"integrity" "sha512-8JZJOdaL5oz3PI/upG8JvP/5FfzYUOhrkJ8np/WKvXzl0/PZ2V9pqTvCIjSKv+w9ccg2xb+yyBhXAwt6ier3ug=="
"resolved" "https://registry.npmjs.org/meshline/-/meshline-3.1.6.tgz"
"version" "3.1.6"
"micromark-core-commonmark@^1.0.0", "micromark-core-commonmark@^1.0.1": "micromark-core-commonmark@^1.0.0", "micromark-core-commonmark@^1.0.1":
"integrity" "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==" "integrity" "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA=="
"resolved" "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz" "resolved" "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz"
@@ -1299,6 +1559,11 @@
"resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz" "resolved" "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz"
"version" "1.2.7" "version" "1.2.7"
"mmd-parser@^1.0.4":
"integrity" "sha512-Qi0VCU46t2IwfGv5KF0+D/t9cizcDug7qnNoy9Ggk7aucp0tssV8IwTMkBlDbm+VqAf3cdQHTCARKSsuS2MYFg=="
"resolved" "https://registry.npmjs.org/mmd-parser/-/mmd-parser-1.0.4.tgz"
"version" "1.0.4"
"mri@^1.1.0": "mri@^1.1.0":
"integrity" "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==" "integrity" "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA=="
"resolved" "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz" "resolved" "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz"
@@ -1351,6 +1616,13 @@
dependencies: dependencies:
"@types/nlcst" "^1.0.0" "@types/nlcst" "^1.0.0"
"node-emoji@^1.11.0":
"integrity" "sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A=="
"resolved" "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz"
"version" "1.11.0"
dependencies:
"lodash" "^4.17.21"
"node-releases@^2.0.6": "node-releases@^2.0.6":
"integrity" "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A==" "integrity" "sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A=="
"resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz" "resolved" "https://registry.npmjs.org/node-releases/-/node-releases-2.0.8.tgz"
@@ -1388,6 +1660,14 @@
"resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" "resolved" "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz"
"version" "3.0.0" "version" "3.0.0"
"opentype.js@^1.3.3":
"integrity" "sha512-d2JE9RP/6uagpQAVtJoF0pJJA/fgai89Cc50Yp0EJHk+eLp6QQ7gBoblsnubRULNY132I0J1QKMJ+JTbMqz4sw=="
"resolved" "https://registry.npmjs.org/opentype.js/-/opentype.js-1.3.4.tgz"
"version" "1.3.4"
dependencies:
"string.prototype.codepointat" "^0.2.1"
"tiny-inflate" "^1.0.3"
"parse-entities@^2.0.0": "parse-entities@^2.0.0":
"integrity" "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==" "integrity" "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ=="
"resolved" "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz" "resolved" "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz"
@@ -1501,6 +1781,11 @@
"picocolors" "^1.0.0" "picocolors" "^1.0.0"
"source-map-js" "^1.0.2" "source-map-js" "^1.0.2"
"potpack@^1.0.1":
"integrity" "sha512-choctRBIV9EMT9WGAZHn3V7t0Z2pMQyl0EZE6pFc/6ml3ssw7Dlf/oAOvFwjm1HVsqfQN8GfeFyJ+d8tRzqueQ=="
"resolved" "https://registry.npmjs.org/potpack/-/potpack-1.0.2.tgz"
"version" "1.0.2"
"prismjs@^1.27.0": "prismjs@^1.27.0":
"integrity" "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" "integrity" "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q=="
"resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz" "resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz"
@@ -1511,7 +1796,7 @@
"resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz" "resolved" "https://registry.npmjs.org/prismjs/-/prismjs-1.27.0.tgz"
"version" "1.27.0" "version" "1.27.0"
"prop-types@^15.0.0": "prop-types@^15.0.0", "prop-types@^15.6.0":
"integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==" "integrity" "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg=="
"resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" "resolved" "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
"version" "15.8.1" "version" "15.8.1"
@@ -1542,7 +1827,14 @@
"resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" "resolved" "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"
"version" "5.1.1" "version" "5.1.1"
"react-dom@^18.0.0", "react-dom@^18.2.0", "react-dom@18.2.0": "react-composer@^5.0.3":
"integrity" "sha512-1uWd07EME6XZvMfapwZmc7NgCZqDemcvicRi3wMJzXsQLvZ3L7fTHVyPy1bZdnWXM4iPjYuNE+uJ41MLKeTtnA=="
"resolved" "https://registry.npmjs.org/react-composer/-/react-composer-5.0.3.tgz"
"version" "5.0.3"
dependencies:
"prop-types" "^15.6.0"
"react-dom@^18.0.0", "react-dom@^18.2.0", "react-dom@>=16.13", "react-dom@>=18.0", "react-dom@18.2.0":
"integrity" "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==" "integrity" "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g=="
"resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" "resolved" "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
"version" "18.2.0" "version" "18.2.0"
@@ -1586,6 +1878,19 @@
"unist-util-visit" "^4.0.0" "unist-util-visit" "^4.0.0"
"vfile" "^5.0.0" "vfile" "^5.0.0"
"react-merge-refs@^1.1.0":
"integrity" "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ=="
"resolved" "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz"
"version" "1.1.0"
"react-reconciler@^0.27.0":
"integrity" "sha512-HmMDKciQjYmBRGuuhIaKA1ba/7a+UsM5FzOZsMO2JYHt9Jh8reCb7j1eDC95NOyUlKM9KRyvdx0flBuDvYSBoA=="
"resolved" "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.27.0.tgz"
"version" "0.27.0"
dependencies:
"loose-envify" "^1.1.0"
"scheduler" "^0.21.0"
"react-syntax-highlighter@^15.5.0": "react-syntax-highlighter@^15.5.0":
"integrity" "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg==" "integrity" "sha512-+zq2myprEnQmH5yw6Gqc8lD55QHnpKaU8TOcFeC/Lg/MQSs8UknEA0JC4nTZGFAXC2J2Hyj/ijJ7NlabyPi2gg=="
"resolved" "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz" "resolved" "https://registry.npmjs.org/react-syntax-highlighter/-/react-syntax-highlighter-15.5.0.tgz"
@@ -1597,7 +1902,14 @@
"prismjs" "^1.27.0" "prismjs" "^1.27.0"
"refractor" "^3.6.0" "refractor" "^3.6.0"
"react@*", "react@^18.0.0", "react@^18.2.0", "react@>= 0.14.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16", "react@18.2.0": "react-use-measure@^2.1.1":
"integrity" "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig=="
"resolved" "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz"
"version" "2.1.1"
dependencies:
"debounce" "^1.2.1"
"react@*", "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^18.0.0", "react@^18.2.0", "react@>= 0.14.0", "react@>= 16.8.0", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", "react@>=16", "react@>=16.13", "react@>=16.8", "react@>=17.0", "react@>=18.0", "react@18.2.0":
"integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==" "integrity" "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ=="
"resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz" "resolved" "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
"version" "18.2.0" "version" "18.2.0"
@@ -1632,6 +1944,11 @@
"resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" "resolved" "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz"
"version" "0.13.11" "version" "0.13.11"
"regexp-to-ast@0.5.0":
"integrity" "sha512-tlbJqcMHnPKI9zSrystikWKwHkBqu2a/Sgw01h3zFjvYrMxEDYHzzoMZnUrbIfpTFEsoRnnviOXNCzFiSc54Qw=="
"resolved" "https://registry.npmjs.org/regexp-to-ast/-/regexp-to-ast-0.5.0.tgz"
"version" "0.5.0"
"rehype-raw@^6.1.1": "rehype-raw@^6.1.1":
"integrity" "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==" "integrity" "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ=="
"resolved" "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz" "resolved" "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz"
@@ -1650,6 +1967,15 @@
"hast-util-sanitize" "^4.0.0" "hast-util-sanitize" "^4.0.0"
"unified" "^10.0.0" "unified" "^10.0.0"
"remark-emoji@^3.1.0":
"integrity" "sha512-KmjkU04niXFMn/H+SsPAGnXhsuq0gT/neIg1KRw8vUKZ/PNxpLDGmwVzx4a14OOd5GJ8rnCdh6DKXqHySkUHAQ=="
"resolved" "https://registry.npmjs.org/remark-emoji/-/remark-emoji-3.1.0.tgz"
"version" "3.1.0"
dependencies:
"emoticon" "^4.0.1"
"mdast-util-find-and-replace" "^2.2.2"
"node-emoji" "^1.11.0"
"remark-gfm@^3.0.1": "remark-gfm@^3.0.1":
"integrity" "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==" "integrity" "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig=="
"resolved" "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz" "resolved" "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz"
@@ -1718,6 +2044,11 @@
"remark-stringify" "^10.0.0" "remark-stringify" "^10.0.0"
"unified" "^10.0.0" "unified" "^10.0.0"
"require-from-string@^2.0.2":
"integrity" "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
"resolved" "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz"
"version" "2.0.2"
"resolve@^1.1.7", "resolve@^1.22.1": "resolve@^1.1.7", "resolve@^1.22.1":
"integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==" "integrity" "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw=="
"resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" "resolved" "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz"
@@ -1785,6 +2116,13 @@
dependencies: dependencies:
"mri" "^1.1.0" "mri" "^1.1.0"
"scheduler@^0.21.0":
"integrity" "sha512-1r87x5fz9MXqswA2ERLo0EbOAU74DpIUO090gIasYTqlVoJeMcl+Z1Rg7WHz+qtPujhS/hGIt9kxZOYBV3faRQ=="
"resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.21.0.tgz"
"version" "0.21.0"
dependencies:
"loose-envify" "^1.1.0"
"scheduler@^0.23.0": "scheduler@^0.23.0":
"integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==" "integrity" "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw=="
"resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz" "resolved" "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz"
@@ -1820,6 +2158,16 @@
"resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" "resolved" "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"
"version" "1.0.3" "version" "1.0.3"
"stats.js@^0.17.0":
"integrity" "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
"resolved" "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz"
"version" "0.17.0"
"string.prototype.codepointat@^0.2.1":
"integrity" "sha512-2cBVCj6I4IOvEnjgO/hWqXjqBGsY+zwPmHl12Srk9IXSZ56Jwwmy+66XO5Iut/oQVR7t5ihYdLB0GMa4alEUcg=="
"resolved" "https://registry.npmjs.org/string.prototype.codepointat/-/string.prototype.codepointat-0.2.1.tgz"
"version" "0.2.1"
"stringify-entities@^4.0.2": "stringify-entities@^4.0.2":
"integrity" "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==" "integrity" "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g=="
"resolved" "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz" "resolved" "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz"
@@ -1852,6 +2200,11 @@
"resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" "resolved" "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz"
"version" "1.0.0" "version" "1.0.0"
"suspend-react@^0.0.8":
"integrity" "sha512-ZC3r8Hu1y0dIThzsGw0RLZplnX9yXwfItcvaIzJc2VQVi8TGyGDlu92syMB5ulybfvGLHAI5Ghzlk23UBPF8xg=="
"resolved" "https://registry.npmjs.org/suspend-react/-/suspend-react-0.0.8.tgz"
"version" "0.0.8"
"tailwindcss@^3.2.4", "tailwindcss@>=3.0.0 || insiders": "tailwindcss@^3.2.4", "tailwindcss@>=3.0.0 || insiders":
"integrity" "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==" "integrity" "sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ=="
"resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz" "resolved" "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.4.tgz"
@@ -1881,6 +2234,38 @@
"quick-lru" "^5.1.1" "quick-lru" "^5.1.1"
"resolve" "^1.22.1" "resolve" "^1.22.1"
"three-mesh-bvh@^0.5.23":
"integrity" "sha512-nyk+MskdyDgECqkxdv57UjazqqhrMi+Al9PxJN6yFtx1CTW4r0eCQ27FtyYKY5gCIWhxjtNfWYDPVy8lzx6LkA=="
"resolved" "https://registry.npmjs.org/three-mesh-bvh/-/three-mesh-bvh-0.5.23.tgz"
"version" "0.5.23"
"three-stdlib@^2.21.8":
"integrity" "sha512-kqisiKvO4mSy59v5vWqBQSH8famLxp7Z51LxpMJI9GwDxqODaW02rhIwmjYDEzZWNFpjZpoDHVGbdpeHf8h3SA=="
"resolved" "https://registry.npmjs.org/three-stdlib/-/three-stdlib-2.21.8.tgz"
"version" "2.21.8"
dependencies:
"@babel/runtime" "^7.16.7"
"@types/offscreencanvas" "^2019.6.4"
"@webgpu/glslang" "^0.0.15"
"chevrotain" "^10.1.2"
"draco3d" "^1.4.1"
"fflate" "^0.6.9"
"ktx-parse" "^0.4.5"
"mmd-parser" "^1.0.4"
"opentype.js" "^1.3.3"
"potpack" "^1.0.1"
"zstddec" "^0.0.2"
"three@^0.149.0", "three@>= 0.123.0", "three@>=0.122.0", "three@>=0.125.0", "three@>=0.126", "three@>=0.126.1", "three@>=0.133", "three@>=0.137", "three@>=0.144.0":
"integrity" "sha512-tohpUxPDht0qExRLDTM8sjRLc5d9STURNrdnK3w9A+V4pxaTBfKWWT/IqtiLfg23Vfc3Z+ImNfvRw1/0CtxrkQ=="
"resolved" "https://registry.npmjs.org/three/-/three-0.149.0.tgz"
"version" "0.149.0"
"tiny-inflate@^1.0.3":
"integrity" "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw=="
"resolved" "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz"
"version" "1.0.3"
"to-regex-range@^5.0.1": "to-regex-range@^5.0.1":
"integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==" "integrity" "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="
"resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" "resolved" "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz"
@@ -1893,6 +2278,26 @@
"resolved" "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" "resolved" "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz"
"version" "3.0.1" "version" "3.0.1"
"troika-three-text@^0.47.1":
"integrity" "sha512-/fPRUmxCkXxyUT8k6REC/aWeFzKbNr37ivrkrplSJNb3JcBUXvVt8MT0Ac5wTUvFsYTviYWprYS4/8Laen08WA=="
"resolved" "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.47.1.tgz"
"version" "0.47.1"
dependencies:
"bidi-js" "^1.0.2"
"troika-three-utils" "^0.47.0"
"troika-worker-utils" "^0.47.0"
"webgl-sdf-generator" "1.1.1"
"troika-three-utils@^0.47.0":
"integrity" "sha512-yoVTQxVbpQX3a55giIwqwq6hyJA6oYvq7kaNGwFTeicoWmTZCqqTbytafx1gcuL5umrtw5MYgsxYUSOha+xp5w=="
"resolved" "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.47.0.tgz"
"version" "0.47.0"
"troika-worker-utils@^0.47.0":
"integrity" "sha512-PSUc9vunDEkbE23jpgXD3PcF96jQHKjgMjS+4o5g6DEK/ZAPTnldb+FNddhppawfUcuraMFrslo0GmIC8UpEmA=="
"resolved" "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.47.0.tgz"
"version" "0.47.0"
"trough@^2.0.0": "trough@^2.0.0":
"integrity" "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" "integrity" "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g=="
"resolved" "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz" "resolved" "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz"
@@ -2045,6 +2450,11 @@
"resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" "resolved" "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
"version" "1.0.2" "version" "1.0.2"
"utility-types@^3.10.0":
"integrity" "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg=="
"resolved" "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz"
"version" "3.10.0"
"uvu@^0.5.0": "uvu@^0.5.0":
"integrity" "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==" "integrity" "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA=="
"resolved" "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz" "resolved" "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz"
@@ -2086,6 +2496,16 @@
"resolved" "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz" "resolved" "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz"
"version" "2.0.1" "version" "2.0.1"
"webgl-constants@^1.1.1":
"integrity" "sha512-LkBXKjU5r9vAW7Gcu3T5u+5cvSvh5WwINdr0C+9jpzVB41cjQAP5ePArDtk/WHYdVj0GefCgM73BA7FlIiNtdg=="
"resolved" "https://registry.npmjs.org/webgl-constants/-/webgl-constants-1.1.1.tgz"
"version" "1.1.1"
"webgl-sdf-generator@1.1.1":
"integrity" "sha512-9Z0JcMTFxeE+b2x1LJTdnaT8rT8aEp7MVxkNwoycNmJWwPdzoXzMh0BjJSh/AEFP+KPYZUli814h8bJZFIZ2jA=="
"resolved" "https://registry.npmjs.org/webgl-sdf-generator/-/webgl-sdf-generator-1.1.1.tgz"
"version" "1.1.1"
"xtend@^4.0.0", "xtend@^4.0.2": "xtend@^4.0.0", "xtend@^4.0.2":
"integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" "integrity" "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="
"resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" "resolved" "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
@@ -2096,6 +2516,16 @@
"resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz" "resolved" "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz"
"version" "1.10.2" "version" "1.10.2"
"zstddec@^0.0.2":
"integrity" "sha512-DCo0oxvcvOTGP/f5FA6tz2Z6wF+FIcEApSTu0zV5sQgn9hoT5lZ9YRAKUraxt9oP7l4e8TnNdi8IZTCX6WCkwA=="
"resolved" "https://registry.npmjs.org/zstddec/-/zstddec-0.0.2.tgz"
"version" "0.0.2"
"zustand@^3.5.13", "zustand@^3.7.1":
"integrity" "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA=="
"resolved" "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz"
"version" "3.7.2"
"zwitch@^1.0.3": "zwitch@^1.0.3":
"integrity" "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw==" "integrity" "sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw=="
"resolved" "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz" "resolved" "https://registry.npmjs.org/zwitch/-/zwitch-1.0.5.tgz"