diff --git a/app/components/particles.tsx b/app/components/particles.tsx new file mode 100644 index 0000000..419dc26 --- /dev/null +++ b/app/components/particles.tsx @@ -0,0 +1,234 @@ +"use client"; + +import React, { useRef, useEffect, useState } from "react"; +import { useMousePosition } from "@/util/mouse"; + +interface ParticlesProps { + className?: string; + quantity?: number; + staticity?: number; + ease?: number; + refresh?: boolean; +} + +export default function Particles({ + className = "", + quantity = 30, + staticity = 50, + ease = 50, + refresh = false, +}: ParticlesProps) { + const canvasRef = useRef(null); + const canvasContainerRef = useRef(null); + const context = useRef(null); + const circles = useRef([]); + const mousePosition = useMousePosition(); + const mouse = useRef<{ x: number; y: number }>({ x: 0, y: 0 }); + const canvasSize = useRef<{ w: number; h: number }>({ w: 0, h: 0 }); + const dpr = typeof window !== "undefined" ? window.devicePixelRatio : 1; + + useEffect(() => { + if (canvasRef.current) { + context.current = canvasRef.current.getContext("2d"); + } + initCanvas(); + animate(); + window.addEventListener("resize", initCanvas); + + return () => { + window.removeEventListener("resize", initCanvas); + }; + }, []); + + useEffect(() => { + onMouseMove(); + }, [mousePosition.x, mousePosition.y]); + + useEffect(() => { + initCanvas(); + }, [refresh]); + + const initCanvas = () => { + resizeCanvas(); + drawParticles(); + }; + + const onMouseMove = () => { + if (canvasRef.current) { + const rect = canvasRef.current.getBoundingClientRect(); + const { w, h } = canvasSize.current; + const x = mousePosition.x - rect.left - w / 2; + const y = mousePosition.y - rect.top - h / 2; + const inside = x < w / 2 && x > -w / 2 && y < h / 2 && y > -h / 2; + if (inside) { + mouse.current.x = x; + mouse.current.y = y; + } + } + }; + + type Circle = { + x: number; + y: number; + translateX: number; + translateY: number; + size: number; + alpha: number; + targetAlpha: number; + dx: number; + dy: number; + magnetism: number; + }; + + const resizeCanvas = () => { + if (canvasContainerRef.current && canvasRef.current && context.current) { + circles.current.length = 0; + canvasSize.current.w = canvasContainerRef.current.offsetWidth; + canvasSize.current.h = canvasContainerRef.current.offsetHeight; + canvasRef.current.width = canvasSize.current.w * dpr; + canvasRef.current.height = canvasSize.current.h * dpr; + canvasRef.current.style.width = `${canvasSize.current.w}px`; + canvasRef.current.style.height = `${canvasSize.current.h}px`; + context.current.scale(dpr, dpr); + } + }; + + const circleParams = (): Circle => { + const x = Math.floor(Math.random() * canvasSize.current.w); + const y = Math.floor(Math.random() * canvasSize.current.h); + const translateX = 0; + const translateY = 0; + const size = Math.floor(Math.random() * 2) + 0.1; + const alpha = 0; + const targetAlpha = parseFloat((Math.random() * 0.6 + 0.1).toFixed(1)); + const dx = (Math.random() - 0.5) * 0.2; + const dy = (Math.random() - 0.5) * 0.2; + const magnetism = 0.1 + Math.random() * 4; + return { + x, + y, + translateX, + translateY, + size, + alpha, + targetAlpha, + dx, + dy, + magnetism, + }; + }; + + const drawCircle = (circle: Circle, update = false) => { + if (context.current) { + const { x, y, translateX, translateY, size, alpha } = circle; + context.current.translate(translateX, translateY); + context.current.beginPath(); + context.current.arc(x, y, size, 0, 2 * Math.PI); + context.current.fillStyle = `rgba(255, 255, 255, ${alpha})`; + context.current.fill(); + context.current.setTransform(dpr, 0, 0, dpr, 0, 0); + + if (!update) { + circles.current.push(circle); + } + } + }; + + const clearContext = () => { + if (context.current) { + context.current.clearRect( + 0, + 0, + canvasSize.current.w, + canvasSize.current.h, + ); + } + }; + + const drawParticles = () => { + clearContext(); + const particleCount = quantity; + for (let i = 0; i < particleCount; i++) { + const circle = circleParams(); + drawCircle(circle); + } + }; + + const remapValue = ( + value: number, + start1: number, + end1: number, + start2: number, + end2: number, + ): number => { + const remapped = + ((value - start1) * (end2 - start2)) / (end1 - start1) + start2; + return remapped > 0 ? remapped : 0; + }; + + const animate = () => { + clearContext(); + circles.current.forEach((circle: Circle, i: number) => { + // Handle the alpha value + const edge = [ + circle.x + circle.translateX - circle.size, // distance from left edge + canvasSize.current.w - circle.x - circle.translateX - circle.size, // distance from right edge + circle.y + circle.translateY - circle.size, // distance from top edge + canvasSize.current.h - circle.y - circle.translateY - circle.size, // distance from bottom edge + ]; + const closestEdge = edge.reduce((a, b) => Math.min(a, b)); + const remapClosestEdge = parseFloat( + remapValue(closestEdge, 0, 20, 0, 1).toFixed(2), + ); + if (remapClosestEdge > 1) { + circle.alpha += 0.02; + if (circle.alpha > circle.targetAlpha) { + circle.alpha = circle.targetAlpha; + } + } else { + circle.alpha = circle.targetAlpha * remapClosestEdge; + } + circle.x += circle.dx; + circle.y += circle.dy; + circle.translateX += + (mouse.current.x / (staticity / circle.magnetism) - circle.translateX) / + ease; + circle.translateY += + (mouse.current.y / (staticity / circle.magnetism) - circle.translateY) / + ease; + // circle gets out of the canvas + if ( + circle.x < -circle.size || + circle.x > canvasSize.current.w + circle.size || + circle.y < -circle.size || + circle.y > canvasSize.current.h + circle.size + ) { + // remove the circle from the array + circles.current.splice(i, 1); + // create a new circle + const newCircle = circleParams(); + drawCircle(newCircle); + // update the circle position + } else { + drawCircle( + { + ...circle, + x: circle.x, + y: circle.y, + translateX: circle.translateX, + translateY: circle.translateY, + alpha: circle.alpha, + }, + true, + ); + } + }); + window.requestAnimationFrame(animate); + }; + + return ( + + ); +} diff --git a/app/page.tsx b/app/page.tsx index 2fd2e9d..1eac540 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,5 +1,6 @@ import Link from "next/link"; import React from "react"; +import Particles from "./components/particles"; const navigation = [ { name: "Projects", href: "/projects" }, @@ -23,8 +24,11 @@ export default function Home() {
- -

+ +

chronark

diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8756c7a..5d23c23 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,41 +33,46 @@ specifiers: typescript: 5.0.2 dependencies: - '@next/font': 13.2.4 - '@next/mdx': 13.2.4 + '@next/font': 13.3.1 + '@next/mdx': 13.3.1 '@types/node': 18.15.10 '@types/react': 18.0.29 '@types/react-dom': 18.0.11 - '@upstash/redis': 1.20.1 + '@upstash/redis': 1.20.4 '@vercel/analytics': 0.1.11_react@18.2.0 - contentlayer: 0.3.0_e24fifms7lyt2dudodzemqbuwu - framer-motion: 10.9.1_biqbaboplfbrettd7655fr4n2y + contentlayer: 0.3.2_35wdhhshintam6h7xjffma4xfq + framer-motion: 10.12.4_biqbaboplfbrettd7655fr4n2y lucide-react: 0.127.0_react@18.2.0 markdown-wasm: 1.2.0 next: 13.2.4_756ubwvsgazzkcxtigvs4yqbci - next-contentlayer: 0.3.0_4jrksbpguxv75tdufwflb7i7k4 + next-contentlayer: 0.3.2_6hrop2bxgloewk2uhot43fnkcm react: 18.2.0 react-dom: 18.2.0_react@18.2.0 react-wrap-balancer: 0.4.0_react@18.2.0 rehype-autolink-headings: 6.1.1 - rehype-pretty-code: 0.9.4_shiki@0.14.1 + rehype-pretty-code: 0.9.5_shiki@0.14.1 rehype-slug: 5.1.0 remark-gfm: 3.0.1 typescript: 5.0.2 devDependencies: '@opentelemetry/api': 1.4.1 - '@tailwindcss/line-clamp': 0.4.2_tailwindcss@3.2.7 - '@tailwindcss/typography': 0.5.9_tailwindcss@3.2.7 - autoprefixer: 10.4.14_postcss@8.4.21 - postcss: 8.4.21 - postcss-nesting: 11.2.2_postcss@8.4.21 + '@tailwindcss/line-clamp': 0.4.4_tailwindcss@3.3.2 + '@tailwindcss/typography': 0.5.9_tailwindcss@3.3.2 + autoprefixer: 10.4.14_postcss@8.4.23 + postcss: 8.4.23 + postcss-nesting: 11.2.2_postcss@8.4.23 rome: 11.0.0 - tailwindcss: 3.2.7_postcss@8.4.21 - tailwindcss-debug-screens: 2.2.1_tailwindcss@3.2.7 + tailwindcss: 3.3.2 + tailwindcss-debug-screens: 2.2.1_tailwindcss@3.3.2 packages: + /@alloc/quick-lru/5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@babel/runtime/7.21.0: resolution: {integrity: sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw==} engines: {node: '>=6.9.0'} @@ -75,11 +80,11 @@ packages: regenerator-runtime: 0.13.11 dev: false - /@contentlayer/cli/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-Mqb6NlIKINt2qsPKft+o8m5tJhJXVgVSd0zP1BH+CQRmvR/zwTT3maz1bDCPHBYGKgGCQKtvgM66IjvH+dmC6Q==} + /@contentlayer/cli/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-KLzB2z3Klbl4bU7VTJ8EaY1d17GCBFtwgvtNAVLOqUJ4LRw46+jT+qBMk8gyy7R1xDNF2H1a/yGYs8t8rlFVmg==} dependencies: - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/utils': 0.3.0 + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/utils': 0.3.2 clipanion: 3.2.0_typanion@3.12.1 typanion: 3.12.1 transitivePeerDependencies: @@ -89,10 +94,10 @@ packages: - supports-color dev: false - /@contentlayer/client/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-yzDYiZtqOJwWrsykieA1LMnhKbaYcJhAy7s8Xs7zU5wFfyBTO258gvmK5dVi4LuzmOOPVMJn6FpEofT/RAKVtg==} + /@contentlayer/client/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-5m7IFd0Z8qRBAOnAYwWcf/SFe1SmtHmeV1kO4pldEuD8J/5sxKeefdGHLNnH3sxlGfeJhEdDnymJtppg8v0D8w==} dependencies: - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq transitivePeerDependencies: - '@effect-ts/otel-node' - esbuild @@ -100,8 +105,8 @@ packages: - supports-color dev: false - /@contentlayer/core/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-5cL4W0nK9kNqxgBkIgauUko0SRAHf8oPoxRhdsSPQ7FSCgZGz2crMeSJOFmj3a3govh863/mKhXfkoUJBoDgnA==} + /@contentlayer/core/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-5ZLzS3s4Lp5Tlw+U4kUUK9frYmi8sc970spJSvLSxtOTDHDE7xemGT9HSj0V4DcmIkY9TT7pCmMFRfpEv7IC6Q==} peerDependencies: esbuild: 0.17.x markdown-wasm: 1.x @@ -111,36 +116,36 @@ packages: markdown-wasm: optional: true dependencies: - '@contentlayer/utils': 0.3.0 + '@contentlayer/utils': 0.3.2 camel-case: 4.1.2 comment-json: 4.2.3 - esbuild: 0.17.14 + esbuild: 0.17.18 gray-matter: 4.0.3 markdown-wasm: 1.2.0 - mdx-bundler: 9.2.1_esbuild@0.17.14 + mdx-bundler: 9.2.1_esbuild@0.17.18 rehype-stringify: 9.0.3 remark-frontmatter: 4.0.1 remark-parse: 10.0.1 remark-rehype: 10.1.0 source-map-support: 0.5.21 - type-fest: 3.6.1 + type-fest: 3.9.0 unified: 10.1.2 transitivePeerDependencies: - '@effect-ts/otel-node' - supports-color dev: false - /@contentlayer/source-files/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-6crNuRdWGYFec0Kn/DpbrzpOu8bttFmOmOpX1HIYQz4iPisg+8biybLBiNU7Y6aCUjEZLOnM7AaHpMFvhrYWsw==} + /@contentlayer/source-files/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-VYUaUbT3Hg3fSEEKpjDdfGEkw4bl4BaLHJWf5sulrkBtjdyNJ3RwUdnsqN3i+bibhcYF4ZvnFme4xtHBuEChmw==} dependencies: - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/utils': 0.3.0 + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/utils': 0.3.2 chokidar: 3.5.3 fast-glob: 3.2.12 gray-matter: 4.0.3 imagescript: 1.2.16 micromatch: 4.0.5 - ts-pattern: 4.2.1 + ts-pattern: 4.2.2 unified: 10.1.2 yaml: 1.10.2 zod: 3.21.4 @@ -151,12 +156,12 @@ packages: - supports-color dev: false - /@contentlayer/source-remote-files/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-4PnaK5cfQiduMUEO6nzqsD4ttD5RG4ffcyeSp5MLhpU0DTEZcfGXFRO777ddEI8PZ0/NJuhfz9MGbdO90QYlsw==} + /@contentlayer/source-remote-files/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-BuABBHemn/UzhARsQh2XH13VUeb5HoRI3NkJeCGEMSnstzI72Dcc6krELwG3cTFYmgb95TV8NuIZKcrz8IsX6A==} dependencies: - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/source-files': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/utils': 0.3.0 + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/source-files': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/utils': 0.3.2 transitivePeerDependencies: - '@effect-ts/otel-node' - esbuild @@ -164,8 +169,8 @@ packages: - supports-color dev: false - /@contentlayer/utils/0.3.0: - resolution: {integrity: sha512-GJF8Z67bf8KJbMqtZgt3G/m4Um93XrcryMJ+2Q1SUBRCEDuMcm8iLPaSbMQ0+gjxyW0GWHnR1oM+qyzaWTPgdg==} + /@contentlayer/utils/0.3.2: + resolution: {integrity: sha512-qQdL3PN3zKl7monHe3EXlXgq7/raApWWJ7+2n0C81ESiwdM1ZFuHU+pOIkl5JWhotTkqAqYdSvFuM+MAXF8XFg==} peerDependencies: '@effect-ts/otel-node': '*' peerDependenciesMeta: @@ -177,23 +182,24 @@ packages: optional: true dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte - '@effect-ts/otel-exporter-trace-otlp-grpc': 0.14.1_fmrvaem7w2f5ngmgqni7goprci - '@effect-ts/otel-sdk-trace-node': 0.14.1_hv2rnn6sth5zqevnyab6kulypq + '@effect-ts/otel': 0.14.1_ljifzvcfbf5iecov6gaefipl54 + '@effect-ts/otel-exporter-trace-otlp-grpc': 0.14.1_vw4ecnetvl6c6um367ljta267i + '@effect-ts/otel-sdk-trace-node': 0.14.1_dkdlds4xfacbjsc5qddgty2koa '@js-temporal/polyfill': 0.4.3 - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.1.0 - '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-node': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/semantic-conventions': 1.5.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-node': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/semantic-conventions': 1.12.0 chokidar: 3.5.3 hash-wasm: 4.9.0 inflection: 2.0.1 - oo-ascii-tree: 1.77.0 - ts-pattern: 4.2.1 - type-fest: 3.6.1 + memfs: 3.5.1 + oo-ascii-tree: 1.80.0 + ts-pattern: 4.2.2 + type-fest: 3.9.0 dev: false /@csstools/selector-specificity/2.2.0_laljekdltgzr3kfi7r4exvsr5a: @@ -211,7 +217,7 @@ packages: '@effect-ts/system': 0.57.5 dev: false - /@effect-ts/otel-exporter-trace-otlp-grpc/0.14.1_fmrvaem7w2f5ngmgqni7goprci: + /@effect-ts/otel-exporter-trace-otlp-grpc/0.14.1_vw4ecnetvl6c6um367ljta267i: resolution: {integrity: sha512-eb6dJhVKnjS1v8afdPm+wuZ3JeX2Gt3GJA9Vw5D2aESE7wa3mrpElsNNbDXn6rhgyjZq3VWYY/NXVtLAFOQIbQ==} peerDependencies: '@effect-ts/core': ^0.60.2 @@ -221,14 +227,14 @@ packages: '@opentelemetry/sdk-trace-base': ^1.5.0 dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@effect-ts/otel': 0.14.1_ljifzvcfbf5iecov6gaefipl54 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/exporter-trace-otlp-grpc': 0.31.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.12.0_@opentelemetry+api@1.4.1 dev: false - /@effect-ts/otel-sdk-trace-node/0.14.1_hv2rnn6sth5zqevnyab6kulypq: + /@effect-ts/otel-sdk-trace-node/0.14.1_dkdlds4xfacbjsc5qddgty2koa: resolution: {integrity: sha512-j5ynRvd0H+Fp9aH/5NOtBd1ogNMpNB3r7uiXOKRPlfKUOtdx4KsCt2cPBjChMvyLstj8dkjtWE4loLSTYkWPuA==} peerDependencies: '@effect-ts/core': ^0.60.2 @@ -238,14 +244,14 @@ packages: '@opentelemetry/sdk-trace-node': ^1.5.0 dependencies: '@effect-ts/core': 0.60.5 - '@effect-ts/otel': 0.14.1_5u6uu645xsdgke5uan4tpxejte - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-node': 1.5.0_@opentelemetry+api@1.1.0 + '@effect-ts/otel': 0.14.1_ljifzvcfbf5iecov6gaefipl54 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-node': 1.12.0_@opentelemetry+api@1.4.1 dev: false - /@effect-ts/otel/0.14.1_5u6uu645xsdgke5uan4tpxejte: + /@effect-ts/otel/0.14.1_ljifzvcfbf5iecov6gaefipl54: resolution: {integrity: sha512-WtkxdoM1M8bl7F1mrSwBZQJAIaUXcupePrllL7iZnvSfUVhYXV98gRTV6EiVT+prX7rzCW4wPkF/XsyWbtMDtA==} peerDependencies: '@effect-ts/core': ^0.60.2 @@ -254,9 +260,9 @@ packages: '@opentelemetry/sdk-trace-base': ^1.5.0 dependencies: '@effect-ts/core': 0.60.5 - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.12.0_@opentelemetry+api@1.4.1 dev: false /@effect-ts/system/0.57.5: @@ -276,22 +282,22 @@ packages: dev: false optional: true - /@esbuild-plugins/node-resolve/0.1.4_esbuild@0.17.14: + /@esbuild-plugins/node-resolve/0.1.4_esbuild@0.17.18: resolution: {integrity: sha512-haFQ0qhxEpqtWWY0kx1Y5oE3sMyO1PcoSiWEPrAw6tm/ZOOLXjSs6Q+v1v9eyuVF0nNt50YEvrcrvENmyoMv5g==} peerDependencies: esbuild: '*' dependencies: '@types/resolve': 1.20.2 debug: 4.3.4 - esbuild: 0.17.14 + esbuild: 0.17.18 escape-string-regexp: 4.0.0 - resolve: 1.22.1 + resolve: 1.22.2 transitivePeerDependencies: - supports-color dev: false - /@esbuild/android-arm/0.17.14: - resolution: {integrity: sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g==} + /@esbuild/android-arm/0.17.18: + resolution: {integrity: sha512-EmwL+vUBZJ7mhFCs5lA4ZimpUH3WMAoqvOIYhVQwdIgSpHC8ImHdsRyhHAVxpDYUSm0lWvd63z0XH1IlImS2Qw==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -299,8 +305,8 @@ packages: dev: false optional: true - /@esbuild/android-arm64/0.17.14: - resolution: {integrity: sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg==} + /@esbuild/android-arm64/0.17.18: + resolution: {integrity: sha512-/iq0aK0eeHgSC3z55ucMAHO05OIqmQehiGay8eP5l/5l+iEr4EIbh4/MI8xD9qRFjqzgkc0JkX0LculNC9mXBw==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -308,8 +314,8 @@ packages: dev: false optional: true - /@esbuild/android-x64/0.17.14: - resolution: {integrity: sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng==} + /@esbuild/android-x64/0.17.18: + resolution: {integrity: sha512-x+0efYNBF3NPW2Xc5bFOSFW7tTXdAcpfEg2nXmxegm4mJuVeS+i109m/7HMiOQ6M12aVGGFlqJX3RhNdYM2lWg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -317,8 +323,8 @@ packages: dev: false optional: true - /@esbuild/darwin-arm64/0.17.14: - resolution: {integrity: sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw==} + /@esbuild/darwin-arm64/0.17.18: + resolution: {integrity: sha512-6tY+djEAdF48M1ONWnQb1C+6LiXrKjmqjzPNPWXhu/GzOHTHX2nh8Mo2ZAmBFg0kIodHhciEgUBtcYCAIjGbjQ==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -326,8 +332,8 @@ packages: dev: false optional: true - /@esbuild/darwin-x64/0.17.14: - resolution: {integrity: sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g==} + /@esbuild/darwin-x64/0.17.18: + resolution: {integrity: sha512-Qq84ykvLvya3dO49wVC9FFCNUfSrQJLbxhoQk/TE1r6MjHo3sFF2tlJCwMjhkBVq3/ahUisj7+EpRSz0/+8+9A==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -335,8 +341,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-arm64/0.17.14: - resolution: {integrity: sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A==} + /@esbuild/freebsd-arm64/0.17.18: + resolution: {integrity: sha512-fw/ZfxfAzuHfaQeMDhbzxp9mc+mHn1Y94VDHFHjGvt2Uxl10mT4CDavHm+/L9KG441t1QdABqkVYwakMUeyLRA==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -344,8 +350,8 @@ packages: dev: false optional: true - /@esbuild/freebsd-x64/0.17.14: - resolution: {integrity: sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw==} + /@esbuild/freebsd-x64/0.17.18: + resolution: {integrity: sha512-FQFbRtTaEi8ZBi/A6kxOC0V0E9B/97vPdYjY9NdawyLd4Qk5VD5g2pbWN2VR1c0xhzcJm74HWpObPszWC+qTew==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -353,8 +359,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm/0.17.14: - resolution: {integrity: sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg==} + /@esbuild/linux-arm/0.17.18: + resolution: {integrity: sha512-jW+UCM40LzHcouIaqv3e/oRs0JM76JfhHjCavPxMUti7VAPh8CaGSlS7cmyrdpzSk7A+8f0hiedHqr/LMnfijg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -362,8 +368,8 @@ packages: dev: false optional: true - /@esbuild/linux-arm64/0.17.14: - resolution: {integrity: sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g==} + /@esbuild/linux-arm64/0.17.18: + resolution: {integrity: sha512-R7pZvQZFOY2sxUG8P6A21eq6q+eBv7JPQYIybHVf1XkQYC+lT7nDBdC7wWKTrbvMXKRaGudp/dzZCwL/863mZQ==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -371,8 +377,8 @@ packages: dev: false optional: true - /@esbuild/linux-ia32/0.17.14: - resolution: {integrity: sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ==} + /@esbuild/linux-ia32/0.17.18: + resolution: {integrity: sha512-ygIMc3I7wxgXIxk6j3V00VlABIjq260i967Cp9BNAk5pOOpIXmd1RFQJQX9Io7KRsthDrQYrtcx7QCof4o3ZoQ==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -380,8 +386,8 @@ packages: dev: false optional: true - /@esbuild/linux-loong64/0.17.14: - resolution: {integrity: sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ==} + /@esbuild/linux-loong64/0.17.18: + resolution: {integrity: sha512-bvPG+MyFs5ZlwYclCG1D744oHk1Pv7j8psF5TfYx7otCVmcJsEXgFEhQkbhNW8otDHL1a2KDINW20cfCgnzgMQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -389,8 +395,8 @@ packages: dev: false optional: true - /@esbuild/linux-mips64el/0.17.14: - resolution: {integrity: sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg==} + /@esbuild/linux-mips64el/0.17.18: + resolution: {integrity: sha512-oVqckATOAGuiUOa6wr8TXaVPSa+6IwVJrGidmNZS1cZVx0HqkTMkqFGD2HIx9H1RvOwFeWYdaYbdY6B89KUMxA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -398,8 +404,8 @@ packages: dev: false optional: true - /@esbuild/linux-ppc64/0.17.14: - resolution: {integrity: sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ==} + /@esbuild/linux-ppc64/0.17.18: + resolution: {integrity: sha512-3dLlQO+b/LnQNxgH4l9rqa2/IwRJVN9u/bK63FhOPB4xqiRqlQAU0qDU3JJuf0BmaH0yytTBdoSBHrb2jqc5qQ==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -407,8 +413,8 @@ packages: dev: false optional: true - /@esbuild/linux-riscv64/0.17.14: - resolution: {integrity: sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw==} + /@esbuild/linux-riscv64/0.17.18: + resolution: {integrity: sha512-/x7leOyDPjZV3TcsdfrSI107zItVnsX1q2nho7hbbQoKnmoeUWjs+08rKKt4AUXju7+3aRZSsKrJtaRmsdL1xA==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -416,8 +422,8 @@ packages: dev: false optional: true - /@esbuild/linux-s390x/0.17.14: - resolution: {integrity: sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww==} + /@esbuild/linux-s390x/0.17.18: + resolution: {integrity: sha512-cX0I8Q9xQkL/6F5zWdYmVf5JSQt+ZfZD2bJudZrWD+4mnUvoZ3TDDXtDX2mUaq6upMFv9FlfIh4Gfun0tbGzuw==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -425,8 +431,8 @@ packages: dev: false optional: true - /@esbuild/linux-x64/0.17.14: - resolution: {integrity: sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw==} + /@esbuild/linux-x64/0.17.18: + resolution: {integrity: sha512-66RmRsPlYy4jFl0vG80GcNRdirx4nVWAzJmXkevgphP1qf4dsLQCpSKGM3DUQCojwU1hnepI63gNZdrr02wHUA==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -434,8 +440,8 @@ packages: dev: false optional: true - /@esbuild/netbsd-x64/0.17.14: - resolution: {integrity: sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ==} + /@esbuild/netbsd-x64/0.17.18: + resolution: {integrity: sha512-95IRY7mI2yrkLlTLb1gpDxdC5WLC5mZDi+kA9dmM5XAGxCME0F8i4bYH4jZreaJ6lIZ0B8hTrweqG1fUyW7jbg==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -443,8 +449,8 @@ packages: dev: false optional: true - /@esbuild/openbsd-x64/0.17.14: - resolution: {integrity: sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g==} + /@esbuild/openbsd-x64/0.17.18: + resolution: {integrity: sha512-WevVOgcng+8hSZ4Q3BKL3n1xTv5H6Nb53cBrtzzEjDbbnOmucEVcZeGCsCOi9bAOcDYEeBZbD2SJNBxlfP3qiA==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -452,8 +458,8 @@ packages: dev: false optional: true - /@esbuild/sunos-x64/0.17.14: - resolution: {integrity: sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA==} + /@esbuild/sunos-x64/0.17.18: + resolution: {integrity: sha512-Rzf4QfQagnwhQXVBS3BYUlxmEbcV7MY+BH5vfDZekU5eYpcffHSyjU8T0xucKVuOcdCsMo+Ur5wmgQJH2GfNrg==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -461,8 +467,8 @@ packages: dev: false optional: true - /@esbuild/win32-arm64/0.17.14: - resolution: {integrity: sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ==} + /@esbuild/win32-arm64/0.17.18: + resolution: {integrity: sha512-Kb3Ko/KKaWhjeAm2YoT/cNZaHaD1Yk/pa3FTsmqo9uFh1D1Rfco7BBLIPdDOozrObj2sahslFuAQGvWbgWldAg==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -470,8 +476,8 @@ packages: dev: false optional: true - /@esbuild/win32-ia32/0.17.14: - resolution: {integrity: sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w==} + /@esbuild/win32-ia32/0.17.18: + resolution: {integrity: sha512-0/xUMIdkVHwkvxfbd5+lfG7mHOf2FRrxNbPiKWg9C4fFrB8H0guClmaM3BFiRUYrznVoyxTIyC/Ou2B7QQSwmw==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -479,8 +485,8 @@ packages: dev: false optional: true - /@esbuild/win32-x64/0.17.14: - resolution: {integrity: sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA==} + /@esbuild/win32-x64/0.17.18: + resolution: {integrity: sha512-qU25Ma1I3NqTSHJUOKi9sAH1/Mzuvlke0ioMJRthLXKm7JiSKVwFghlGbDLOO2sARECGhja4xYfRAZNPAkooYg==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -492,11 +498,11 @@ packages: resolution: {integrity: sha512-cEee/Z+I12mZcFJshKcCqC8tuX5hG3s+d+9nZ3LabqKF1vKdF41B92pJVCBggjAGORAeOzyyDDKrZwIkLffeOQ==} dev: false - /@grpc/grpc-js/1.8.12: - resolution: {integrity: sha512-MbUMvpVvakeKhdYux6gbSIPJaFMLNSY8jw4PqLI+FFztGrQRrYYAnHlR94+ncBQQewkpXQaW449m3tpH/B/ZnQ==} + /@grpc/grpc-js/1.8.14: + resolution: {integrity: sha512-w84maJ6CKl5aApCMzFll0hxtFNT6or9WwMslobKaqWUEf1K+zhlL43bSQhFreyYWIWR+Z0xnVFC1KtLm4ZpM/A==} engines: {node: ^8.13.0 || >=10.10.0} dependencies: - '@grpc/proto-loader': 0.7.5 + '@grpc/proto-loader': 0.7.6 '@types/node': 18.15.10 dev: false @@ -512,18 +518,52 @@ packages: yargs: 16.2.0 dev: false - /@grpc/proto-loader/0.7.5: - resolution: {integrity: sha512-mfcTuMbFowq1wh/Rn5KQl6qb95M21Prej3bewD9dUQMurYGVckGO/Pbe2Ocwto6sD05b/mxZLspvqwx60xO2Rg==} + /@grpc/proto-loader/0.7.6: + resolution: {integrity: sha512-QyAXR8Hyh7uMDmveWxDSUcJr9NAWaZ2I6IXgAYvQmfflwouTM+rArE2eEaCtLlRqO81j7pRLCt81IefUei6Zbw==} engines: {node: '>=6'} hasBin: true dependencies: '@types/long': 4.0.2 lodash.camelcase: 4.3.0 long: 4.0.0 - protobufjs: 7.2.2 + protobufjs: 7.2.3 yargs: 16.2.0 dev: false + /@jridgewell/gen-mapping/0.3.3: + resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.18 + dev: true + + /@jridgewell/resolve-uri/3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array/1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/sourcemap-codec/1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + dev: true + + /@jridgewell/sourcemap-codec/1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + + /@jridgewell/trace-mapping/0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + dev: true + /@js-temporal/polyfill/0.4.3: resolution: {integrity: sha512-6Fmjo/HlkyVCmJzAPnvtEWlcbQUSRhi8qlN9EtJA/wP7FqXsevLLrlojR44kzNzrRkpf7eDJ+z7b4xQD/Ycypw==} engines: {node: '>=12'} @@ -532,14 +572,14 @@ packages: tslib: 2.5.0 dev: false - /@mdx-js/esbuild/2.3.0_esbuild@0.17.14: + /@mdx-js/esbuild/2.3.0_esbuild@0.17.18: resolution: {integrity: sha512-r/vsqsM0E+U4Wr0DK+0EfmABE/eg+8ITW4DjvYdh3ve/tK2safaqHArNnaqbOk1DjYGrhxtoXoGaM3BY8fGBTA==} peerDependencies: esbuild: '>=0.11.0' dependencies: '@mdx-js/mdx': 2.3.0 - esbuild: 0.17.14 - node-fetch: 3.3.0 + esbuild: 0.17.18 + node-fetch: 3.3.1 vfile: 5.3.7 transitivePeerDependencies: - supports-color @@ -549,7 +589,7 @@ packages: resolution: {integrity: sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA==} dependencies: '@types/estree-jsx': 1.0.0 - '@types/mdx': 2.0.3 + '@types/mdx': 2.0.4 estree-util-build-jsx: 2.2.2 estree-util-is-identifier-name: 2.1.0 estree-util-to-js: 1.2.0 @@ -573,12 +613,12 @@ packages: resolution: {integrity: sha512-+Mq3TtpkeeKFZanPturjcXt+KHfKYnLlX6jMLyCrmpq6OOs4i1GqBOAauSkii9QeKCMTYzGppar21JU57b/GEA==} dev: false - /@next/font/13.2.4: - resolution: {integrity: sha512-lMAnuOYjv5g22WhD00u0DQ9u2rTMJH0S64PKE4Sy8Y2q+FJTYs6ZHT2z3VRoI8+AOWSLK4FirpnygcjOienQ9A==} + /@next/font/13.3.1: + resolution: {integrity: sha512-S8Shizt4xlHDItXTAowEoyktiaLIEzTxJeXPaRu+VDeb21yXu7kMX2DUQE5Un+kb/ViCaAdWlyltCuS2sywEjA==} dev: false - /@next/mdx/13.2.4: - resolution: {integrity: sha512-inl7u+OEa4Ok3uL052oa8EDw1bUkMGLVKzFfVBIgG19s29gxQvcWYzxa5t438J31ljApjh6Y5k4AD6yLaCAlQw==} + /@next/mdx/13.3.1: + resolution: {integrity: sha512-DasSzihfUHVwX+NRuc7GdnGtspOp3AHTlUc397CEK8qkBw05TVQIAOywP6gT/0WpbKWD4iOch9JZS8XVkXKq7A==} peerDependencies: '@mdx-js/loader': '>=0.15.0' '@mdx-js/react': '>=0.15.0' @@ -734,157 +774,190 @@ packages: '@opentelemetry/api': 1.4.1 dev: false - /@opentelemetry/api/1.1.0: - resolution: {integrity: sha512-hf+3bwuBwtXsugA2ULBc95qxrOqP2pOekLz34BJhcAKawt94vfeNyUKpYc0lZQ/3sCP6LqRa7UAdHA7i5UODzQ==} - engines: {node: '>=8.0.0'} - dev: false - /@opentelemetry/api/1.4.1: resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==} engines: {node: '>=8.0.0'} - /@opentelemetry/context-async-hooks/1.5.0_@opentelemetry+api@1.1.0: - resolution: {integrity: sha512-mhBPP0BU0RaH2HB8U4MDd5OjWA1y7SoLOovCT0iEpJAltaq2z04uxRJVzIs91vkpNnV0utUZowQQD3KElgU+VA==} + /@opentelemetry/context-async-hooks/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-PmwAanPNWCyS9JYFzhzVzHgviLhc0UHjOwdth+hp3HgQQ9XZZNE635P8JhAUHZmbghW9/qQFafRWOS4VN9VVnQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.2.0' + '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.1.0 + '@opentelemetry/api': 1.4.1 dev: false - /@opentelemetry/core/1.5.0_@opentelemetry+api@1.1.0: + /@opentelemetry/core/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-4DWYNb3dLs2mSCGl65jY3aEgbvPWSHVQV/dmDWiYeWUrMakZQFcymqZOSUNZO0uDrEJoxMu8O5tZktX6UKFwag==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.5.0' + dependencies: + '@opentelemetry/api': 1.4.1 + '@opentelemetry/semantic-conventions': 1.12.0 + dev: false + + /@opentelemetry/core/1.5.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-B3DIMkQN0DANrr7XrMLS4pR6d2o/jqT09x4nZJz6wSJ9SHr4eQIqeFBNeEUQG1I+AuOcH2UbJtgFm7fKxLqd+w==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.2.0' dependencies: - '@opentelemetry/api': 1.1.0 + '@opentelemetry/api': 1.4.1 '@opentelemetry/semantic-conventions': 1.5.0 dev: false - /@opentelemetry/exporter-trace-otlp-grpc/0.31.0_@opentelemetry+api@1.1.0: + /@opentelemetry/exporter-trace-otlp-grpc/0.31.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-WapHtHPLOFObRMvtfRJX/EBRZS4YLpRY8E/OtIQmmAqwImDMAnMVF9fAjP6DSE/thOIN3Ot0/PLK5zFZUVV8SA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@grpc/grpc-js': 1.8.12 + '@grpc/grpc-js': 1.8.14 '@grpc/proto-loader': 0.6.13 - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/otlp-grpc-exporter-base': 0.31.0_@opentelemetry+api@1.1.0 - '@opentelemetry/otlp-transformer': 0.31.0_@opentelemetry+api@1.1.0 - '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/otlp-grpc-exporter-base': 0.31.0_@opentelemetry+api@1.4.1 + '@opentelemetry/otlp-transformer': 0.31.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/otlp-exporter-base/0.31.0_@opentelemetry+api@1.1.0: + /@opentelemetry/otlp-exporter-base/0.31.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-MI+LtGo/ZYL/g7ldWTAY9vMjMqlcWMj2undgcnq8Y5BoDLI8oBwGn//Lizjk4NikF+SkcolKB3+U05nCeT5djg==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/otlp-grpc-exporter-base/0.31.0_@opentelemetry+api@1.1.0: + /@opentelemetry/otlp-grpc-exporter-base/0.31.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-TfNZsQhWNd05CAaOwgN2lVthC8mkxvoArV6LfSyKyqSZ6srCnYPuW64yS/9buEhNvTkT3y63dzkVSnnv/1b3ow==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@grpc/grpc-js': 1.8.12 + '@grpc/grpc-js': 1.8.14 '@grpc/proto-loader': 0.6.13 - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/otlp-exporter-base': 0.31.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/otlp-exporter-base': 0.31.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/otlp-transformer/0.31.0_@opentelemetry+api@1.1.0: + /@opentelemetry/otlp-transformer/0.31.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-xCEsB0gTs7s/FMEv8+DWE6awfHJ5oHkFKSGePr6tT5Mh95rd1845WTefvLc++mYpewY8KnQ7tyo/zEfwywCIhw==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.2.0' dependencies: - '@opentelemetry/api': 1.1.0 + '@opentelemetry/api': 1.4.1 '@opentelemetry/api-metrics': 0.31.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-metrics-base': 0.31.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-metrics-base': 0.31.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/propagator-b3/1.5.0_@opentelemetry+api@1.1.0: - resolution: {integrity: sha512-38iGIScgU9OLhoPKAV3p2rEf4RmmQC/Lo4LvpQ6TaSQrRht/oDgnpsPJnmNQLFboklmukKataJO+FhAieOc7mg==} + /@opentelemetry/propagator-b3/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-WFcn98075QPc2zE1obhKydJHUehI5/HuLoelPEVwATj+487hjCwjHj9r2fgmQkWpvuNSB7CJaA0ys6qqq1N6lg==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.2.0' + '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/propagator-jaeger/1.5.0_@opentelemetry+api@1.1.0: - resolution: {integrity: sha512-aSUH5RDEZj+lmy4PbXAJ26E+yJcZloyPUBWgqYX+JBS4NnbriIznCF/tXV5s/RUXeVABibi/+yAZndv+2XBg4w==} + /@opentelemetry/propagator-jaeger/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-ugtWF7GC6X5RIJ0+iMwW2iVAGNs206CAeq8XQ8OkJRg+v0lp4H0/i+gJ4hubTT8NIL5a3IxtIrAENPLIGdLucQ==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.2.0' + '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 dev: false - /@opentelemetry/resources/1.5.0_@opentelemetry+api@1.1.0: + /@opentelemetry/resources/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-gunMKXG0hJrR0LXrqh7BVbziA/+iJBL3ZbXCXO64uY+SrExkwoyJkpiq9l5ismkGF/A20mDEV7tGwh+KyPw00Q==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.5.0' + dependencies: + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/semantic-conventions': 1.12.0 + dev: false + + /@opentelemetry/resources/1.5.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-YeEfC6IY54U3xL3P2+UAiom+r50ZF2jM0J47RV5uTFGF19Xjd5zazSwDPgmxtAd6DwLX0/5S5iqrsH4nEXMYoA==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.2.0' dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 '@opentelemetry/semantic-conventions': 1.5.0 dev: false - /@opentelemetry/sdk-metrics-base/0.31.0_@opentelemetry+api@1.1.0: + /@opentelemetry/sdk-metrics-base/0.31.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-4R2Bjl3wlqIGcq4bCoI9/pD49ld+tEoM9n85UfFzr/aUe+2huY2jTPq/BP9SVB8d2Zfg7mGTIFeapcEvAdKK7g==} engines: {node: '>=14'} deprecated: Please use @opentelemetry/sdk-metrics peerDependencies: '@opentelemetry/api': ^1.0.0 dependencies: - '@opentelemetry/api': 1.1.0 + '@opentelemetry/api': 1.4.1 '@opentelemetry/api-metrics': 0.31.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.4.1 lodash.merge: 4.6.2 dev: false - /@opentelemetry/sdk-trace-base/1.5.0_@opentelemetry+api@1.1.0: + /@opentelemetry/sdk-trace-base/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-pfCOB3tNDlYVoWuz4D7Ji+Jmy9MHnATWHVpkERdCEiwUGEZ+4IvNPXUcPc37wJVmMpjGLeaWgPPrie0KIpWf1A==} + engines: {node: '>=14'} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.5.0' + dependencies: + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/semantic-conventions': 1.12.0 + dev: false + + /@opentelemetry/sdk-trace-base/1.5.0_@opentelemetry+api@1.4.1: resolution: {integrity: sha512-6lx7YDf67HSQYuWnvq3XgSrWikDJLiGCbrpUP6UWJ5Z47HLcJvwZPRH+cQGJu1DFS3dT2cV3GpAR75/OofPNHQ==} engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.2.0' dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.1.0 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.4.1 + '@opentelemetry/resources': 1.5.0_@opentelemetry+api@1.4.1 '@opentelemetry/semantic-conventions': 1.5.0 dev: false - /@opentelemetry/sdk-trace-node/1.5.0_@opentelemetry+api@1.1.0: - resolution: {integrity: sha512-MzS+urf2KufpwgaHbGcUgccHr6paxI98lHFMgJAkK6w76AmPYavsxSwjiVPrchy/24d2J9svDirSgui3NNZo8g==} + /@opentelemetry/sdk-trace-node/1.12.0_@opentelemetry+api@1.4.1: + resolution: {integrity: sha512-PxpDemnNZLLeFNLAu95/K3QubjlaScXVjVQPlwPui65VRxIvxGVysnN7DFfsref+qoh1hI6nlrYSij43vxdm2w==} engines: {node: '>=14'} peerDependencies: - '@opentelemetry/api': '>=1.0.0 <1.2.0' + '@opentelemetry/api': '>=1.0.0 <1.5.0' dependencies: - '@opentelemetry/api': 1.1.0 - '@opentelemetry/context-async-hooks': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/core': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/propagator-b3': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/propagator-jaeger': 1.5.0_@opentelemetry+api@1.1.0 - '@opentelemetry/sdk-trace-base': 1.5.0_@opentelemetry+api@1.1.0 - semver: 7.3.8 + '@opentelemetry/api': 1.4.1 + '@opentelemetry/context-async-hooks': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/core': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/propagator-b3': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/propagator-jaeger': 1.12.0_@opentelemetry+api@1.4.1 + '@opentelemetry/sdk-trace-base': 1.12.0_@opentelemetry+api@1.4.1 + semver: 7.5.0 + dev: false + + /@opentelemetry/semantic-conventions/1.12.0: + resolution: {integrity: sha512-hO+bdeGOlJwqowUBoZF5LyP3ORUFOP1G0GRv8N45W/cztXbT2ZEXaAzfokRS9Xc9FWmYrDj32mF6SzH6wuoIyA==} + engines: {node: '>=14'} dev: false /@opentelemetry/semantic-conventions/1.5.0: @@ -989,15 +1062,15 @@ packages: tslib: 2.5.0 dev: false - /@tailwindcss/line-clamp/0.4.2_tailwindcss@3.2.7: - resolution: {integrity: sha512-HFzAQuqYCjyy/SX9sLGB1lroPzmcnWv1FHkIpmypte10hptf4oPUfucryMKovZh2u0uiS9U5Ty3GghWfEJGwVw==} + /@tailwindcss/line-clamp/0.4.4_tailwindcss@3.3.2: + resolution: {integrity: sha512-5U6SY5z8N42VtrCrKlsTAA35gy2VSyYtHWCsg1H87NU1SXnEfekTVlrga9fzUDrrHcGi2Lb5KenUWb4lRQT5/g==} peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' dependencies: - tailwindcss: 3.2.7_postcss@8.4.21 + tailwindcss: 3.3.2 dev: true - /@tailwindcss/typography/0.5.9_tailwindcss@3.2.7: + /@tailwindcss/typography/0.5.9_tailwindcss@3.3.2: resolution: {integrity: sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' @@ -1006,13 +1079,13 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.2.7_postcss@8.4.21 + tailwindcss: 3.3.2 dev: true /@types/acorn/4.0.6: resolution: {integrity: sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: false /@types/debug/4.1.7: @@ -1024,11 +1097,11 @@ packages: /@types/estree-jsx/1.0.0: resolution: {integrity: sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: false - /@types/estree/1.0.0: - resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==} + /@types/estree/1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: false /@types/hast/2.3.4: @@ -1047,8 +1120,14 @@ packages: '@types/unist': 2.0.6 dev: false - /@types/mdx/2.0.3: - resolution: {integrity: sha512-IgHxcT3RC8LzFLhKwP3gbMPeaK7BM9eBH46OdapPA7yvuIUJ8H6zHZV53J8hGZcTSnt95jANt+rTBNUUc22ACQ==} + /@types/mdast/3.0.11: + resolution: {integrity: sha512-Y/uImid8aAwrEA24/1tcRZwpxX3pIFTSilcNDKSPn+Y2iDywSEachzRuvgAYYLR3wpGXAsMbv5lvKLDZLeYPAw==} + dependencies: + '@types/unist': 2.0.6 + dev: false + + /@types/mdx/2.0.4: + resolution: {integrity: sha512-qCYrNdpKwN6YO6FVnx+ulfqifKlE3lQGsNhvDaW9Oxzyob/cRLBJWow8GHBBD4NxQ7BVvtsATgLsX0vZAWmtrg==} dev: false /@types/ms/0.7.31: @@ -1078,7 +1157,7 @@ packages: dependencies: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 - csstype: 3.1.1 + csstype: 3.1.2 dev: false /@types/resolve/1.20.2: @@ -1093,8 +1172,8 @@ packages: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: false - /@upstash/redis/1.20.1: - resolution: {integrity: sha512-mYwV8uvQROJnq5aOxmQH3KDa0E8+DRdU0zJ/VGQV84HrhQQNy0IsLFFTo97WEhZAlHcJnVbrbwqUK9disWqx/w==} + /@upstash/redis/1.20.4: + resolution: {integrity: sha512-U7j7py+yPvafB5KS7o+F19j2CWzZCwmQ4Tvs+n2lpCWuw/8CeFtWrFWPtQa5dgrVu6tu+Ki9DmhDiAbgMS5fGA==} dependencies: isomorphic-fetch: 3.0.0 transitivePeerDependencies: @@ -1117,25 +1196,6 @@ packages: acorn: 8.8.2 dev: false - /acorn-node/1.8.2: - resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - xtend: 4.0.2 - dev: true - - /acorn-walk/7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn/7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn/8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -1158,6 +1218,10 @@ packages: color-convert: 2.0.1 dev: false + /any-promise/1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + /anymatch/3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1188,7 +1252,7 @@ packages: hasBin: true dev: false - /autoprefixer/10.4.14_postcss@8.4.21: + /autoprefixer/10.4.14_postcss@8.4.23: resolution: {integrity: sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==} engines: {node: ^10 || ^12 || >=14} hasBin: true @@ -1200,7 +1264,7 @@ packages: fraction.js: 4.2.0 normalize-range: 0.1.2 picocolors: 1.0.0 - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 dev: true @@ -1208,10 +1272,21 @@ packages: resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} dev: false + /balanced-match/1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + /binary-extensions/2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + /brace-expansion/1.1.11: + resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + dev: true + /braces/3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} @@ -1247,6 +1322,11 @@ packages: /caniuse-lite/1.0.30001464: resolution: {integrity: sha512-oww27MtUmusatpRpCGSOneQk2/l5czXANDSFvsc7VuOQ86s3ANhZetpwXNf1zY/zdfP63Xvjz325DAdAoES13g==} + dev: true + + /caniuse-lite/1.0.30001481: + resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} + dev: false /ccount/2.0.1: resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} @@ -1311,11 +1391,17 @@ packages: /color-name/1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: false /comma-separated-tokens/2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} dev: false + /commander/4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + /comment-json/4.2.3: resolution: {integrity: sha512-SsxdiOf064DWoZLH799Ata6u7iV658A11PlWtZATDlXPpKGJnbJZ5Z24ybixAi+LUUqJ/GKowAejtC5GFUG7Tw==} engines: {node: '>= 6'} @@ -1327,18 +1413,22 @@ packages: repeat-string: 1.6.1 dev: false - /contentlayer/0.3.0_e24fifms7lyt2dudodzemqbuwu: - resolution: {integrity: sha512-3LEF5HMHjSytlT8SErC3U59Pt2LP80a6Z2f/0mSIPeA4xty0LNChyHqzALySSM0osAEz32RY56Fifk5P+2dCIA==} + /concat-map/0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + dev: true + + /contentlayer/0.3.2_35wdhhshintam6h7xjffma4xfq: + resolution: {integrity: sha512-fQN3l/KvUW+nIvXiaShpOCvXX4alNbvfo56vnVxHVm6vKP10bb/IRhjMXPXZzr+5hmCaeep9wMpCAvOKB6NJHA==} engines: {node: '>=14.18'} hasBin: true requiresBuild: true dependencies: - '@contentlayer/cli': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/client': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/source-files': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/source-remote-files': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/utils': 0.3.0 + '@contentlayer/cli': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/client': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/source-files': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/source-remote-files': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/utils': 0.3.2 transitivePeerDependencies: - '@effect-ts/otel-node' - esbuild @@ -1356,8 +1446,8 @@ packages: hasBin: true dev: true - /csstype/3.1.1: - resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} + /csstype/3.1.2: + resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==} dev: false /data-uri-to-buffer/4.0.1: @@ -1383,25 +1473,11 @@ packages: character-entities: 2.0.2 dev: false - /defined/1.0.1: - resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} - dev: true - /dequal/2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} dev: false - /detective/5.2.1: - resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} - engines: {node: '>=0.8.0'} - hasBin: true - dependencies: - acorn-node: 1.8.2 - defined: 1.0.1 - minimist: 1.2.8 - dev: true - /didyoumean/1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} dev: true @@ -1423,34 +1499,34 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false - /esbuild/0.17.14: - resolution: {integrity: sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw==} + /esbuild/0.17.18: + resolution: {integrity: sha512-z1lix43jBs6UKjcZVKOw2xx69ffE2aG0PygLL5qJ9OS/gy0Ewd1gW/PUQIOIQGXBHWNywSc0floSKoMFF8aK2w==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/android-arm': 0.17.14 - '@esbuild/android-arm64': 0.17.14 - '@esbuild/android-x64': 0.17.14 - '@esbuild/darwin-arm64': 0.17.14 - '@esbuild/darwin-x64': 0.17.14 - '@esbuild/freebsd-arm64': 0.17.14 - '@esbuild/freebsd-x64': 0.17.14 - '@esbuild/linux-arm': 0.17.14 - '@esbuild/linux-arm64': 0.17.14 - '@esbuild/linux-ia32': 0.17.14 - '@esbuild/linux-loong64': 0.17.14 - '@esbuild/linux-mips64el': 0.17.14 - '@esbuild/linux-ppc64': 0.17.14 - '@esbuild/linux-riscv64': 0.17.14 - '@esbuild/linux-s390x': 0.17.14 - '@esbuild/linux-x64': 0.17.14 - '@esbuild/netbsd-x64': 0.17.14 - '@esbuild/openbsd-x64': 0.17.14 - '@esbuild/sunos-x64': 0.17.14 - '@esbuild/win32-arm64': 0.17.14 - '@esbuild/win32-ia32': 0.17.14 - '@esbuild/win32-x64': 0.17.14 + '@esbuild/android-arm': 0.17.18 + '@esbuild/android-arm64': 0.17.18 + '@esbuild/android-x64': 0.17.18 + '@esbuild/darwin-arm64': 0.17.18 + '@esbuild/darwin-x64': 0.17.18 + '@esbuild/freebsd-arm64': 0.17.18 + '@esbuild/freebsd-x64': 0.17.18 + '@esbuild/linux-arm': 0.17.18 + '@esbuild/linux-arm64': 0.17.18 + '@esbuild/linux-ia32': 0.17.18 + '@esbuild/linux-loong64': 0.17.18 + '@esbuild/linux-mips64el': 0.17.18 + '@esbuild/linux-ppc64': 0.17.18 + '@esbuild/linux-riscv64': 0.17.18 + '@esbuild/linux-s390x': 0.17.18 + '@esbuild/linux-x64': 0.17.18 + '@esbuild/netbsd-x64': 0.17.18 + '@esbuild/openbsd-x64': 0.17.18 + '@esbuild/sunos-x64': 0.17.18 + '@esbuild/win32-arm64': 0.17.18 + '@esbuild/win32-ia32': 0.17.18 + '@esbuild/win32-x64': 0.17.18 dev: false /escalade/3.1.1: @@ -1476,7 +1552,7 @@ packages: /estree-util-attach-comments/2.1.1: resolution: {integrity: sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: false /estree-util-build-jsx/2.2.2: @@ -1520,7 +1596,7 @@ packages: /estree-walker/3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: false /extend-shallow/2.0.1: @@ -1585,8 +1661,8 @@ packages: resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} dev: true - /framer-motion/10.9.1_biqbaboplfbrettd7655fr4n2y: - resolution: {integrity: sha512-fuCDRGKOu5n9gN2/R7O22mE+BHMGK5D57S3Oq8n2ITd4aYR7D22QM5I4VPD3CWahNt/lyDUs20u9Aw+6ah9oAQ==} + /framer-motion/10.12.4_biqbaboplfbrettd7655fr4n2y: + resolution: {integrity: sha512-9gLtv8T6dui0tujHROR+VM3kdJyKiFCFiD94IQE+0OuX6LaIyXtdVpviokVdrHSb1giWhmmX4yzoucALMx6mtw==} peerDependencies: react: ^18.0.0 react-dom: ^18.0.0 @@ -1603,6 +1679,14 @@ packages: '@emotion/is-prop-valid': 0.8.8 dev: false + /fs-monkey/1.0.3: + resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==} + dev: false + + /fs.realpath/1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + dev: true + /fsevents/2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1635,6 +1719,17 @@ packages: is-glob: 4.0.3 dev: true + /glob/7.1.6: + resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==} + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + dev: true + /gray-matter/4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -1723,7 +1818,7 @@ packages: /hast-util-to-estree/2.3.2: resolution: {integrity: sha512-YYDwATNdnvZi3Qi84iatPIl1lWpXba1MeNrNbDfJfVzEBZL8uUmtR7mt7bxKBC8kuAuvb0bkojXYZzsNHyHCLg==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.4 '@types/unist': 2.0.6 @@ -1803,6 +1898,17 @@ packages: engines: {node: '>=14.0.0'} dev: false + /inflight/1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + dev: true + + /inherits/2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + dev: true + /inline-style-parser/0.1.1: resolution: {integrity: sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==} dev: false @@ -1829,8 +1935,8 @@ packages: engines: {node: '>=4'} dev: false - /is-core-module/2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} + /is-core-module/2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: has: 1.0.3 @@ -1884,7 +1990,7 @@ packages: /is-reference/3.0.1: resolution: {integrity: sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 dev: false /isomorphic-fetch/3.0.0: @@ -1896,6 +2002,11 @@ packages: - encoding dev: false + /jiti/1.18.2: + resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} + hasBin: true + dev: true + /js-tokens/4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} dev: false @@ -1938,6 +2049,10 @@ packages: engines: {node: '>=10'} dev: true + /lines-and-columns/1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + /lodash.camelcase/4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} dev: false @@ -1957,8 +2072,8 @@ packages: resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} dev: false - /long/5.2.1: - resolution: {integrity: sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A==} + /long/5.2.3: + resolution: {integrity: sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==} dev: false /longest-streak/3.1.0: @@ -2009,7 +2124,7 @@ packages: /mdast-util-definitions/5.1.2: resolution: {integrity: sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA==} dependencies: - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 '@types/unist': 2.0.6 unist-util-visit: 4.1.2 dev: false @@ -2045,9 +2160,9 @@ packages: /mdast-util-frontmatter/1.0.1: resolution: {integrity: sha512-JjA2OjxRqAa8wEG8hloD0uTU0kdn8kbtOWpPP94NBkfAlbxn4S8gCGf/9DwFtEeGPXrDcNXdiDjVaRdUFqYokw==} dependencies: - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-to-markdown: 1.5.0 - micromark-extension-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.0 dev: false /mdast-util-gfm-autolink-literal/1.0.3: @@ -2111,7 +2226,7 @@ packages: dependencies: '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-from-markdown: 1.3.0 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -2123,7 +2238,7 @@ packages: dependencies: '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 '@types/unist': 2.0.6 ccount: 2.0.1 mdast-util-from-markdown: 1.3.0 @@ -2154,7 +2269,7 @@ packages: dependencies: '@types/estree-jsx': 1.0.0 '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-from-markdown: 1.3.0 mdast-util-to-markdown: 1.5.0 transitivePeerDependencies: @@ -2172,7 +2287,7 @@ packages: resolution: {integrity: sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw==} dependencies: '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-definitions: 5.1.2 micromark-util-sanitize-uri: 1.1.0 trim-lines: 3.0.1 @@ -2200,17 +2315,17 @@ packages: '@types/mdast': 3.0.10 dev: false - /mdx-bundler/9.2.1_esbuild@0.17.14: + /mdx-bundler/9.2.1_esbuild@0.17.18: resolution: {integrity: sha512-hWEEip1KU9MCNqeH2rqwzAZ1pdqPPbfkx9OTJjADqGPQz4t9BO85fhI7AP9gVYrpmfArf9/xJZUN0yBErg/G/Q==} engines: {node: '>=14', npm: '>=6'} peerDependencies: esbuild: 0.* dependencies: '@babel/runtime': 7.21.0 - '@esbuild-plugins/node-resolve': 0.1.4_esbuild@0.17.14 + '@esbuild-plugins/node-resolve': 0.1.4_esbuild@0.17.18 '@fal-works/esbuild-plugin-global-externals': 2.1.2 - '@mdx-js/esbuild': 2.3.0_esbuild@0.17.14 - esbuild: 0.17.14 + '@mdx-js/esbuild': 2.3.0_esbuild@0.17.18 + esbuild: 0.17.18 gray-matter: 4.0.3 remark-frontmatter: 4.0.1 remark-mdx-frontmatter: 1.1.1 @@ -2220,6 +2335,13 @@ packages: - supports-color dev: false + /memfs/3.5.1: + resolution: {integrity: sha512-UWbFJKvj5k+nETdteFndTpYxdeTMox/ULeqX5k/dpaQJCCFmj5EeKv3dBcyO2xmkRAx2vppRu5dVG7SOtsGOzA==} + engines: {node: '>= 4.0.0'} + dependencies: + fs-monkey: 1.0.3 + dev: false + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -2245,8 +2367,8 @@ packages: uvu: 0.5.6 dev: false - /micromark-extension-frontmatter/1.0.1: - resolution: {integrity: sha512-9OJhCXkrpj8qIXW5AAgRZGvS8Q4GTMdH5+Ljt98kV4XQVflRGeEhNRYp6O/zCvf8c8lZ+wc4uwmbly27pS/s4Q==} + /micromark-extension-frontmatter/1.1.0: + resolution: {integrity: sha512-0nLelmvXR5aZ+F2IL6/Ed4cDnHLpL/VD/EELKuclsTWHrLI8UgxGHEmeoumeX2FXiM6z2WrBIOEcbKUZR8RYNg==} dependencies: fault: 2.0.1 micromark-util-character: 1.1.0 @@ -2492,7 +2614,7 @@ packages: resolution: {integrity: sha512-mkg3BaWlw6ZTkQORrKVBW4o9ICXPxLtGz51vml5mQpKFdo9vqIX68CAx5JhTOdjQyAHH7JFmm4rh8toSPQZUmg==} dependencies: '@types/acorn': 4.0.6 - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 estree-util-visit: 1.2.1 micromark-util-types: 1.0.2 uvu: 0.5.6 @@ -2572,8 +2694,10 @@ packages: braces: 3.0.2 picomatch: 2.3.1 - /minimist/1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + /minimatch/3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + dependencies: + brace-expansion: 1.1.11 dev: true /mri/1.2.0: @@ -2585,20 +2709,28 @@ packages: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} dev: false - /nanoid/3.3.4: - resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==} + /mz/2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + + /nanoid/3.3.6: + resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true - /next-contentlayer/0.3.0_4jrksbpguxv75tdufwflb7i7k4: - resolution: {integrity: sha512-vt+RaD3nIgZ6oXadtZH19a1mpxvGEoiifdtmXqBSz4rHMRcMA1YZCuSWyj+P9uX7MDmIL6JT6QSp+hvTBMaxiw==} + /next-contentlayer/0.3.2_6hrop2bxgloewk2uhot43fnkcm: + resolution: {integrity: sha512-pihb/VtBq30eV+WpaWakWVtA1DWKzfXeaL7l/vR4MvrTO8UtZaX9H6wY0oSOqrmy674BRjXiQ03PbEOE5D6/iA==} peerDependencies: next: ^12 || ^13 react: '*' react-dom: '*' dependencies: - '@contentlayer/core': 0.3.0_e24fifms7lyt2dudodzemqbuwu - '@contentlayer/utils': 0.3.0 + '@contentlayer/core': 0.3.2_35wdhhshintam6h7xjffma4xfq + '@contentlayer/utils': 0.3.2 next: 13.2.4_756ubwvsgazzkcxtigvs4yqbci react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -2633,7 +2765,7 @@ packages: '@next/env': 13.2.4 '@opentelemetry/api': 1.4.1 '@swc/helpers': 0.4.14 - caniuse-lite: 1.0.30001464 + caniuse-lite: 1.0.30001481 postcss: 8.4.14 react: 18.2.0 react-dom: 18.2.0_react@18.2.0 @@ -2681,8 +2813,8 @@ packages: whatwg-url: 5.0.0 dev: false - /node-fetch/3.3.0: - resolution: {integrity: sha512-BKwRP/O0UvoMKp7GNdwPlObhYGB5DQqwhEDQlNKuoqwVYSxkSZCSbHjnFFmUEtwSKRPU4kNK8PbDYYitwaE3QA==} + /node-fetch/3.3.1: + resolution: {integrity: sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: data-uri-to-buffer: 4.0.1 @@ -2703,13 +2835,24 @@ packages: engines: {node: '>=0.10.0'} dev: true + /object-assign/4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + /object-hash/3.0.0: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} dev: true - /oo-ascii-tree/1.77.0: - resolution: {integrity: sha512-UQXPEVtecK9FDQxlp5WQ9nVBgS0sq96R9LWE1HBmlS3ZLJRqXh3+kdU7Bxs+qqF+cdWmE9uOggwihBffTpqLrA==} + /once/1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + dependencies: + wrappy: 1.0.2 + dev: true + + /oo-ascii-tree/1.80.0: + resolution: {integrity: sha512-jEfsnu53QsI0VcGrbCR9eS8QuuSp6Ddf1oFc3GK9WP6Ao49/dVWwxk4ijk/YyX2HJDluBSM82yez313rzhI7rw==} engines: {node: '>= 14.6.0'} dev: false @@ -2741,13 +2884,18 @@ packages: tslib: 2.5.0 dev: false + /path-is-absolute/1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + dev: true + /path-parse/1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} /periscopic/3.1.0: resolution: {integrity: sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==} dependencies: - '@types/estree': 1.0.0 + '@types/estree': 1.0.1 estree-walker: 3.0.3 is-reference: 3.0.1 dev: false @@ -2764,31 +2912,36 @@ packages: engines: {node: '>=0.10.0'} dev: true - /postcss-import/14.1.0_postcss@8.4.21: - resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} - engines: {node: '>=10.0.0'} + /pirates/4.0.5: + resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} + engines: {node: '>= 6'} + dev: true + + /postcss-import/15.1.0_postcss@8.4.23: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} peerDependencies: postcss: ^8.0.0 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.1 + resolve: 1.22.2 dev: true - /postcss-js/4.0.1_postcss@8.4.21: + /postcss-js/4.0.1_postcss@8.4.23: resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} peerDependencies: postcss: ^8.4.21 dependencies: camelcase-css: 2.0.1 - postcss: 8.4.21 + postcss: 8.4.23 dev: true - /postcss-load-config/3.1.4_postcss@8.4.21: - resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} - engines: {node: '>= 10'} + /postcss-load-config/4.0.1_postcss@8.4.23: + resolution: {integrity: sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==} + engines: {node: '>= 14'} peerDependencies: postcss: '>=8.0.9' ts-node: '>=9.0.0' @@ -2799,28 +2952,28 @@ packages: optional: true dependencies: lilconfig: 2.1.0 - postcss: 8.4.21 - yaml: 1.10.2 + postcss: 8.4.23 + yaml: 2.2.2 dev: true - /postcss-nested/6.0.0_postcss@8.4.21: - resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + /postcss-nested/6.0.1_postcss@8.4.23: + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 dependencies: - postcss: 8.4.21 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: true - /postcss-nesting/11.2.2_postcss@8.4.21: + /postcss-nesting/11.2.2_postcss@8.4.23: resolution: {integrity: sha512-aOTiUniAB1bcPE6GGiynWRa6PZFPhOTAm5q3q5cem6QeSijIHHkWr6gs65ukCZMXeak8yXeZVbBJET3VM+HlhA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss: ^8.4 dependencies: '@csstools/selector-specificity': 2.2.0_laljekdltgzr3kfi7r4exvsr5a - postcss: 8.4.21 + postcss: 8.4.23 postcss-selector-parser: 6.0.11 dev: true @@ -2848,16 +3001,16 @@ packages: resolution: {integrity: sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 dev: false - /postcss/8.4.21: - resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} + /postcss/8.4.23: + resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.4 + nanoid: 3.3.6 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true @@ -2886,8 +3039,8 @@ packages: long: 4.0.0 dev: false - /protobufjs/7.2.2: - resolution: {integrity: sha512-++PrQIjrom+bFDPpfmqXfAGSQs40116JRrqqyf53dymUMvvb5d/LMRyicRoF1AUKoXVS1/IgJXlEgcpr4gTF3Q==} + /protobufjs/7.2.3: + resolution: {integrity: sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==} engines: {node: '>=12.0.0'} requiresBuild: true dependencies: @@ -2902,17 +3055,12 @@ packages: '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 '@types/node': 18.15.10 - long: 5.2.1 + long: 5.2.3 dev: false /queue-microtask/1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - /quick-lru/5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} - dev: true - /react-dom/18.2.0_react@18.2.0: resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} peerDependencies: @@ -2966,8 +3114,8 @@ packages: unist-util-visit: 4.1.2 dev: false - /rehype-pretty-code/0.9.4_shiki@0.14.1: - resolution: {integrity: sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg==} + /rehype-pretty-code/0.9.5_shiki@0.14.1: + resolution: {integrity: sha512-TYA4oDxxn4z/YZ6ZNz7BX5BuyeJzi7D6XxI44T/eqUOBYypwwOd7RZ+IBb1NkERpian/k7sZ1+KsdIbWDRenQw==} engines: {node: ^12.16.0 || >=13.2.0} peerDependencies: shiki: '*' @@ -3000,9 +3148,9 @@ packages: /remark-frontmatter/4.0.1: resolution: {integrity: sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==} dependencies: - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-frontmatter: 1.0.1 - micromark-extension-frontmatter: 1.0.1 + micromark-extension-frontmatter: 1.1.0 unified: 10.1.2 dev: false @@ -3039,7 +3187,7 @@ packages: /remark-parse/10.0.1: resolution: {integrity: sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==} dependencies: - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-from-markdown: 1.3.0 unified: 10.1.2 transitivePeerDependencies: @@ -3050,7 +3198,7 @@ packages: resolution: {integrity: sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==} dependencies: '@types/hast': 2.3.4 - '@types/mdast': 3.0.10 + '@types/mdast': 3.0.11 mdast-util-to-hast: 12.3.0 unified: 10.1.2 dev: false @@ -3065,11 +3213,11 @@ packages: engines: {node: '>=0.10.0'} dev: false - /resolve/1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} + /resolve/1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true dependencies: - is-core-module: 2.11.0 + is-core-module: 2.12.0 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -3117,8 +3265,8 @@ packages: kind-of: 6.0.3 dev: false - /semver/7.3.8: - resolution: {integrity: sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==} + /semver/7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true dependencies: @@ -3221,52 +3369,77 @@ packages: react: 18.2.0 dev: false + /sucrase/3.32.0: + resolution: {integrity: sha512-ydQOU34rpSyj2TGyz4D2p8rbktIOZ8QY9s+DGLvFU1i5pWJE8vkpruCjGCMHsdXwnD7JDcS+noSwM/a7zyNFDQ==} + engines: {node: '>=8'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.3 + commander: 4.1.1 + glob: 7.1.6 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.5 + ts-interface-checker: 0.1.13 + dev: true + /supports-preserve-symlinks-flag/1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /tailwindcss-debug-screens/2.2.1_tailwindcss@3.2.7: + /tailwindcss-debug-screens/2.2.1_tailwindcss@3.3.2: resolution: {integrity: sha512-EMyA0CYBzqcZJHtVDvBfmYzfx3NxuK4qDyVO5wnzcGOrmJsv25D9xPpWefVTORTvhE6pCh90Z1WYnLUKsg3yMw==} peerDependencies: tailwindcss: ^1.0 || ^2.0 || ^3.0.0-alpha.1 || ^3.0 dependencies: - tailwindcss: 3.2.7_postcss@8.4.21 + tailwindcss: 3.3.2 dev: true - /tailwindcss/3.2.7_postcss@8.4.21: - resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} - engines: {node: '>=12.13.0'} + /tailwindcss/3.3.2: + resolution: {integrity: sha512-9jPkMiIBXvPc2KywkraqsUfbfj+dHDb+JPWtSJa9MLFdrPyazI7q6WX2sUrm7R9eVR7qqv3Pas7EvQFzxKnI6w==} + engines: {node: '>=14.0.0'} hasBin: true - peerDependencies: - postcss: ^8.0.9 dependencies: + '@alloc/quick-lru': 5.2.0 arg: 5.0.2 chokidar: 3.5.3 - color-name: 1.1.4 - detective: 5.2.1 didyoumean: 1.2.2 dlv: 1.1.3 fast-glob: 3.2.12 glob-parent: 6.0.2 is-glob: 4.0.3 + jiti: 1.18.2 lilconfig: 2.1.0 micromatch: 4.0.5 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.0.0 - postcss: 8.4.21 - postcss-import: 14.1.0_postcss@8.4.21 - postcss-js: 4.0.1_postcss@8.4.21 - postcss-load-config: 3.1.4_postcss@8.4.21 - postcss-nested: 6.0.0_postcss@8.4.21 + postcss: 8.4.23 + postcss-import: 15.1.0_postcss@8.4.23 + postcss-js: 4.0.1_postcss@8.4.23 + postcss-load-config: 4.0.1_postcss@8.4.23 + postcss-nested: 6.0.1_postcss@8.4.23 postcss-selector-parser: 6.0.11 postcss-value-parser: 4.2.0 - quick-lru: 5.1.1 - resolve: 1.22.1 + resolve: 1.22.2 + sucrase: 3.32.0 transitivePeerDependencies: - ts-node dev: true + /thenify-all/1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify/3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /to-regex-range/5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} @@ -3289,8 +3462,12 @@ packages: resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==} dev: false - /ts-pattern/4.2.1: - resolution: {integrity: sha512-lXCmHZb01QOM9HdCLvisCGUH9ATdKPON9UaUvwe007gJAhuSBhRWIAIowys5QqNxEq6odWctfMIdI96vzjnOMQ==} + /ts-interface-checker/0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /ts-pattern/4.2.2: + resolution: {integrity: sha512-qzJMo2pbkUJWusRH5o8xR+xogn6RmvViyUgwBFTtRENLse470clCGjHDf6haWGZ1AOmk8XkEohUoBW8Uut6Scg==} dev: false /tslib/2.5.0: @@ -3306,8 +3483,8 @@ packages: engines: {node: '>=10'} dev: false - /type-fest/3.6.1: - resolution: {integrity: sha512-htXWckxlT6U4+ilVgweNliPqlsVSSucbxVexRYllyMVJDtf5rTjv6kF/s+qAd4QSL1BZcnJPEJavYBPQiWuZDA==} + /type-fest/3.9.0: + resolution: {integrity: sha512-hR8JP2e8UiH7SME5JZjsobBlEiatFoxpzCP+R3ZeCo7kAaG1jXQE5X/buLzogM6GJu8le9Y4OcfNuIQX0rZskA==} engines: {node: '>=14.16'} dev: false @@ -3474,9 +3651,8 @@ packages: strip-ansi: 6.0.1 dev: false - /xtend/4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + /wrappy/1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} dev: true /y18n/5.0.8: @@ -3491,6 +3667,12 @@ packages: /yaml/1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} + dev: false + + /yaml/2.2.2: + resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} + engines: {node: '>= 14'} + dev: true /yargs-parser/20.2.9: resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} diff --git a/tailwind.config.js b/tailwind.config.js index 4579816..bdbcae4 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -95,7 +95,6 @@ module.exports = { }, }, plugins: [ - require("@tailwindcss/line-clamp"), require("@tailwindcss/typography"), require("tailwindcss-debug-screens"), ], diff --git a/util/mouse.ts b/util/mouse.ts new file mode 100644 index 0000000..31b012c --- /dev/null +++ b/util/mouse.ts @@ -0,0 +1,27 @@ +import { useEffect, useState } from "react"; + +interface MousePosition { + x: number; + y: number; +} + +export function useMousePosition(): MousePosition { + const [mousePosition, setMousePosition] = useState({ + x: 0, + y: 0, + }); + + useEffect(() => { + const handleMouseMove = (event: MouseEvent) => { + setMousePosition({ x: event.clientX, y: event.clientY }); + }; + + window.addEventListener("mousemove", handleMouseMove); + + return () => { + window.removeEventListener("mousemove", handleMouseMove); + }; + }, []); + + return mousePosition; +}