├── .env.example
├── .gitignore
├── .nvmrc
├── LICENSE
├── README.md
├── components
├── button-effect.js
├── code-highlight.js
├── empty-state.js
├── github-icon.js
├── journey-card.js
├── loading-dots.js
├── ne_110m_admin_0_countries.geojson.json.json
├── play-pause-icon.js
└── three-globe.js
├── const
└── index.js
├── hooks
└── use-prefers-reduced-motion.js
├── neon
├── index.js
└── schema.sql
├── next.config.js
├── package.json
├── pages
├── _app.js
├── _document.js
├── analytics.js
├── api
│ ├── create-edge.js
│ ├── read.js
│ └── update-entry.js
└── index.js
├── postcss.config.js
├── static
├── cta-elephant.avif
├── favicon.png
├── logo.svg
└── open-graph-image.jpg
├── styles
└── globals.css
├── tailwind.config.js
├── utils
├── code-block-theme.js
├── format-date.js
├── format-number.js
├── get-edge-distance.js
├── hex-to-rgb.js
├── send-gtag-event.js
└── theme.js
├── vercel.json
└── yarn.lock
/.env.example:
--------------------------------------------------------------------------------
1 | DATABASE_URL=
2 | # For local develoment both of the below need to be defined in your .env files, but they won't need values
3 | NEXT_PUBLIC_REWRITE_PREFIX=
4 | NEXT_PUBLIC_REWRITE_URL=
5 |
6 | # This can safely be ignored if you're not using Google Analytics Tag Manager
7 | NEXT_PUBLIC_GTM=
8 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | lerna-debug.log*
8 | .pnpm-debug.log*
9 |
10 | # Diagnostic reports (https://nodejs.org/api/report.html)
11 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
12 |
13 | # Runtime data
14 | pids
15 | *.pid
16 | *.seed
17 | *.pid.lock
18 |
19 | # Directory for instrumented libs generated by jscoverage/JSCover
20 | lib-cov
21 |
22 | # Coverage directory used by tools like istanbul
23 | coverage
24 | *.lcov
25 |
26 | # nyc test coverage
27 | .nyc_output
28 |
29 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
30 | .grunt
31 |
32 | # Bower dependency directory (https://bower.io/)
33 | bower_components
34 |
35 | # node-waf configuration
36 | .lock-wscript
37 |
38 | # Compiled binary addons (https://nodejs.org/api/addons.html)
39 | build/Release
40 |
41 | # Dependency directories
42 | node_modules/
43 | jspm_packages/
44 |
45 | # Snowpack dependency directory (https://snowpack.dev/)
46 | web_modules/
47 |
48 | # TypeScript cache
49 | *.tsbuildinfo
50 |
51 | # Optional npm cache directory
52 | .npm
53 |
54 | # Optional eslint cache
55 | .eslintcache
56 |
57 | # Optional stylelint cache
58 | .stylelintcache
59 |
60 | # Microbundle cache
61 | .rpt2_cache/
62 | .rts2_cache_cjs/
63 | .rts2_cache_es/
64 | .rts2_cache_umd/
65 |
66 | # Optional REPL history
67 | .node_repl_history
68 |
69 | # Output of 'npm pack'
70 | *.tgz
71 |
72 | # Yarn Integrity file
73 | .yarn-integrity
74 |
75 | # dotenv environment variable files
76 | .env
77 | .env.development.local
78 | .env.test.local
79 | .env.production.local
80 | .env.local
81 |
82 | # parcel-bundler cache (https://parceljs.org/)
83 | .cache
84 | .parcel-cache
85 |
86 | # Next.js build output
87 | .next
88 | out
89 |
90 | # Nuxt.js build / generate output
91 | .nuxt
92 | dist
93 |
94 | # Gatsby files
95 | .cache/
96 | # Comment in the public line in if your project uses Gatsby and not Next.js
97 | # https://nextjs.org/blog/next-9-1#public-directory-support
98 | # public
99 |
100 | # vuepress build output
101 | .vuepress/dist
102 |
103 | # vuepress v2.x temp and cache directory
104 | .temp
105 | .cache
106 |
107 | # Docusaurus cache and generated files
108 | .docusaurus
109 |
110 | # Serverless directories
111 | .serverless/
112 |
113 | # FuseBox cache
114 | .fusebox/
115 |
116 | # DynamoDB Local files
117 | .dynamodb/
118 |
119 | # TernJS port file
120 | .tern-port
121 |
122 | # Stores VSCode versions used for testing VSCode extensions
123 | .vscode-test
124 |
125 | # yarn v2
126 | .yarn/cache
127 | .yarn/unplugged
128 | .yarn/build-state.yml
129 | .yarn/install-state.gz
130 | .pnp.*
131 |
--------------------------------------------------------------------------------
/.nvmrc:
--------------------------------------------------------------------------------
1 | v18.0.0
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Paul Scanlon
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | # Ping Thing
8 |
9 | Ping a Neon Serverless Postgres database using a Vercel Edge Function to see the journey your request makes.
10 |
11 | 🚀 Live Preview: [https://neon.tech/demos/ping-thing](https://neon.tech/demos/ping-thing)
12 |
13 | Read more about how this app was made on the Neon blog: [How to use Postgres at the Edge](https://neon.tech/blog/how-to-use-postgres-at-the-edge)
14 |
15 | ## Getting Started
16 |
17 | - Sign up to [Neon](https://neon.tech/).
18 | - Follow our [Create your first project](https://neon.tech/docs/get-started-with-neon/setting-up-a-project) guide.
19 |
20 | ## Local Development
21 |
22 | Install Dependencies.
23 |
24 | ```
25 | yarn
26 | ```
27 |
28 | Rename `.env.example` to `.env` and add your Neon database connection string.
29 |
30 | ```
31 | DATABASE_URL=
32 | ```
33 |
34 | SQL schema
35 |
36 | ```
37 | CREATE TABLE locations (
38 | id SERIAL PRIMARY KEY,
39 | date TIMESTAMP WITH TIME ZONE NOT NULL,
40 | flag VARCHAR,
41 | country VARCHAR,
42 | city VARCHAR,
43 | lat DECIMAL,
44 | lng DECIMAL,
45 | runtime VARCHAR,
46 | start_time NUMERIC,
47 | end_time NUMERIC,
48 | miles DECIMAL (10,2),
49 | kilometers DECIMAL (10,2)
50 | );
51 | ```
52 |
53 | Start development server.
54 |
55 | ```
56 | yarn dev
57 | ```
58 |
--------------------------------------------------------------------------------
/components/button-effect.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | const ButtonEffect = ({ children, disabled }) => {
5 | return (
6 |
7 |
{children}
8 | {disabled ? null : (
9 |
10 |
14 |
18 |
19 | )}
20 |
21 | );
22 | };
23 |
24 | ButtonEffect.propTypes = {
25 | /** React children */
26 | children: PropTypes.element.isRequired,
27 | /** Determins if lines should be shown */
28 | disabled: PropTypes.bool,
29 | };
30 |
31 | export default ButtonEffect;
32 |
--------------------------------------------------------------------------------
/components/code-highlight.js:
--------------------------------------------------------------------------------
1 | import PropTypes from 'prop-types';
2 | import { CodeBlock } from 'react-code-blocks';
3 | import customTheme from '../utils/code-block-theme';
4 |
5 | const CodeHighlight = ({ text }) => {
6 | return (
7 |
8 |
9 |
15 |
16 |
17 | );
18 | };
19 |
20 | CodeHighlight.propTypes = {
21 | /** the code snippet to display */
22 | text: PropTypes.string.isRequired,
23 | };
24 |
25 | export default CodeHighlight;
26 |
--------------------------------------------------------------------------------
/components/empty-state.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | const EmptyState = ({ animation = 'animate-dark-fade' }) => {
5 | return (
6 |
9 | );
10 | };
11 |
12 | EmptyState.propTypes = {
13 | /** The type of the animation phase */
14 | animation: PropTypes.string,
15 | };
16 |
17 | export default EmptyState;
18 |
--------------------------------------------------------------------------------
/components/github-icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | const GitHubIcon = ({ className = 'h-8 w-8' }) => {
5 | return (
6 |
12 |
17 |
18 | );
19 | };
20 |
21 | GitHubIcon.propTypes = {
22 | /** CSS classes */
23 | className: PropTypes.string,
24 | };
25 |
26 | export default GitHubIcon;
27 |
--------------------------------------------------------------------------------
/components/journey-card.js:
--------------------------------------------------------------------------------
1 | import React, { Fragment } from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | import { formatNumber } from '../utils/format-number';
5 | import EmptyState from '../components/empty-state';
6 |
7 | const JourneyCard = ({ journey }) => {
8 | const {
9 | flag,
10 | country,
11 | city,
12 | diff,
13 | miles,
14 | kilometers,
15 | color,
16 | stroke,
17 | stages,
18 | } = journey;
19 |
20 | return (
21 |
22 |
23 |
Your Request
24 |
25 | Details of your request made to Neon using an{' '}
26 |
32 | Edge Function
33 |
34 | .
35 |
36 |
37 |
42 |
43 |
44 |
56 |
61 |
62 | {stages.map((details, index) => {
63 | const { color, stroke } = details;
64 | return (
65 |
66 |
69 |
80 |
85 |
86 |
87 | );
88 | })}
89 |
90 |
91 |
92 |
93 | Start
94 | {city || }
95 |
96 |
97 |
Country
98 | {country ? (
99 |
100 |
105 | {flag}
106 |
107 | {country}
108 |
109 | ) : (
110 |
111 | )}
112 |
113 |
114 | {stages.map((details, index) => {
115 | const { stop, type, region, flag } = details;
116 | return (
117 |
118 |
119 | {type}
120 | {stop}
121 |
122 |
123 |
Region
124 |
125 |
130 | {flag}
131 |
132 | {region}
133 |
134 |
135 |
136 | );
137 | })}
138 |
139 |
140 |
141 |
142 | Mph
143 |
144 | {diff ? (
145 | formatNumber((miles * 2) / (diff / 1000))
146 | ) : (
147 |
148 | )}
149 |
150 |
151 |
152 | Sec
153 |
154 | {diff ? (diff / 1000).toFixed(2) : }
155 |
156 |
157 |
158 | Mi
159 |
160 | {miles ? formatNumber(miles * 2) : }
161 |
162 |
163 |
164 |
165 | Km
166 |
167 | {kilometers ? formatNumber(kilometers * 2) : }
168 |
169 |
170 |
171 |
172 |
173 | );
174 | };
175 |
176 | JourneyCard.proptypes = {
177 | /** The journey details */
178 | journey: PropTypes.shape({
179 | /** The runtime of the runtime */
180 | runtime: PropTypes.string,
181 | /** The flag of the country */
182 | flag: PropTypes.string.isRquired,
183 | /** The country of the request */
184 | country: PropTypes.string.isRquired,
185 | /** The runtime of the city */
186 | city: PropTypes.string.isRquired,
187 | /** The start_time - end_time */
188 | diff: PropTypes.number.isRquired,
189 | /** The distance in miles */
190 | miles: PropTypes.number.isRquired,
191 | /** The distance in kilometers */
192 | kilometers: PropTypes.number.isRquired,
193 | /** The colour of the current location */
194 | color: PropTypes.string.isRquired,
195 | /** The details of the stops */
196 | stops: PropTypes.shape({
197 | /** The runtime of the stop*/
198 | runtime: PropTypes.string.isRquired,
199 | /** The flag emoji */
200 | flag: PropTypes.string.isRquired,
201 | /** The runtime of the region */
202 | region: PropTypes.string.isRquired,
203 | /** The color of the stop */
204 | color: PropTypes.string.isRquired,
205 | }),
206 | }).isRquired,
207 | };
208 |
209 | export default JourneyCard;
210 |
--------------------------------------------------------------------------------
/components/loading-dots.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | const LoadingDots = ({ className }) => {
5 | const dots = new Array(3).fill('');
6 |
7 | return (
8 |
9 | {dots.map((_, index) => {
10 | return (
11 |
18 | );
19 | })}
20 |
21 | );
22 | };
23 |
24 | LoadingDots.propTypes = {
25 | /** CSS classes */
26 | className: PropTypes.string,
27 | };
28 |
29 | export default LoadingDots;
30 |
--------------------------------------------------------------------------------
/components/play-pause-icon.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | const PlayPauseIcon = ({ isPlaying, className = 'h-12 w-12' }) => {
5 | return (
6 |
12 |
21 |
22 | );
23 | };
24 |
25 | PlayPauseIcon.propTypes = {
26 | /** The animation status of the globe */
27 | isPlaying: PropTypes.bool.isRequired,
28 | /** CSS classes */
29 | className: PropTypes.string,
30 | };
31 |
32 | export default PlayPauseIcon;
33 |
--------------------------------------------------------------------------------
/components/three-globe.js:
--------------------------------------------------------------------------------
1 | import React, { useEffect, useRef, memo } from 'react';
2 | import PropTypes from 'prop-types';
3 |
4 | import Globe from 'react-globe.gl';
5 | import * as THREE from 'three';
6 |
7 | import { theme } from '../utils/theme';
8 | import usePrefersReducedMotion from '../hooks/use-prefers-reduced-motion';
9 |
10 | import goeJson from './ne_110m_admin_0_countries.geojson.json';
11 |
12 | const ThreeGlobe = memo(({ isPlaying, data }) => {
13 | const globeEl = useRef();
14 | const prefersReducedMotion = usePrefersReducedMotion();
15 |
16 | const globeReady = () => {
17 | if (globeEl.current) {
18 | globeEl.current.controls().autoRotate = isPlaying;
19 | globeEl.current.controls().enableZoom = false;
20 |
21 | globeEl.current.pointOfView({
22 | lat: 19.054339351561637,
23 | lng: -50.421161072148465,
24 | altitude: 2,
25 | });
26 | }
27 | };
28 |
29 | useEffect(() => {
30 | if (globeEl.current) {
31 | globeEl.current.controls().autoRotate = isPlaying;
32 | }
33 | }, [isPlaying]);
34 |
35 | useEffect(() => {
36 | if (globeEl.current) {
37 | globeEl.current.controls().autoRotate = !prefersReducedMotion;
38 | }
39 | }, [prefersReducedMotion]);
40 |
41 | return (
42 |
43 |
{
65 | return ['#313131', '#1e1e1e', '#4d4d4d', '#373737'][
66 | geometry.properties.abbrev_len % 4
67 | ];
68 | }}
69 | customLayerData={[...Array(500).keys()].map(() => ({
70 | lat: (Math.random() - 0.5) * 180,
71 | lng: (Math.random() - 0.5) * 360,
72 | alt: Math.random() * 1.4 + 0.1,
73 | }))}
74 | customThreeObject={() =>
75 | new THREE.Mesh(
76 | new THREE.SphereGeometry(0.3),
77 | new THREE.MeshBasicMaterial({
78 | color: '#797979',
79 | opacity: 0.6,
80 | transparent: true,
81 | })
82 | )
83 | }
84 | customThreeObjectUpdate={(obj, d) => {
85 | Object.assign(
86 | obj.position,
87 | globeEl.current?.getCoords(d.lat, d.lng, d.alt)
88 | );
89 | }}
90 | pointColor='color'
91 | pointAltitude='altitude'
92 | pointRadius='radius'
93 | // pointsMerge={true} // this breaks the html markers when they re-render: https://github.com/vasturiano/react-globe.gl/issues/140
94 | arcsData={data.arcs}
95 | arcColor='color'
96 | arcStroke='stroke'
97 | arcDashGap={0.05}
98 | arcDashLength='dash'
99 | arcAltitudeAutoScale={0.3}
100 | arcDashAnimateTime={2000}
101 | ringsData={data.rings}
102 | ringColor={(ring) => (t) => {
103 | return `rgba(${ring.color}, ${Math.sqrt(1 - t)})`;
104 | }}
105 | ringMaxRadius='maxR'
106 | ringPropagationSpeed='propagationSpeed'
107 | ringRepeatPeriod='repeatPeriod'
108 | ringResolution={64}
109 | htmlElementsData={data.points}
110 | htmlAltitude={0.1}
111 | htmlElement={(d) => {
112 | const el = document.createElement('div');
113 | el.innerHTML = `
114 |
115 |
116 |
119 |
120 | ${d.stop}
121 | ${d.region || d.city}
122 |
123 |
124 |
125 | `;
126 | return el;
127 | }}
128 | />
129 |
130 | );
131 | });
132 |
133 | ThreeGlobe.propTypes = {
134 | /** Status of animation */
135 | isPlaying: PropTypes.bool.isRequired,
136 | /** The locations of points and arcs */
137 | data: PropTypes.any.isRequired,
138 | };
139 |
140 | export default ThreeGlobe;
141 |
--------------------------------------------------------------------------------
/const/index.js:
--------------------------------------------------------------------------------
1 | import { theme } from '../utils/theme';
2 | import { hexToRgb } from '../utils/hex-to-rgb';
3 |
4 | export const POINT_RADIUS_LG = 1;
5 | export const POINT_RADIUS_SM = 0.5;
6 | export const POINT_ALTITUDE = 0.02;
7 |
8 | const RING_MAX_RADIUS = 20;
9 | const RING_PROPERGATION_SPEED = 4;
10 | const RING_REPEAT_PERIOD = 800;
11 |
12 | export const EDGE = 'edge';
13 | export const NEON = 'neon';
14 |
15 | export const userPoint = {
16 | stop: 'You',
17 | stroke: theme.colors.brand.secondary,
18 | color: theme.colors.brand.secondary,
19 | };
20 |
21 | export const neonPoint = {
22 | stop: 'Neon Database',
23 | type: 'end',
24 | lat: 38.95329973388636,
25 | lng: -77.45615256400193,
26 | flag: '🇺🇸',
27 | region: 'aws-us-east-1',
28 | stroke: theme.colors.brand.primary,
29 | color: theme.colors.brand.primary,
30 | altitude: POINT_ALTITUDE,
31 | radius: POINT_RADIUS_LG,
32 | size: 200,
33 | };
34 |
35 | export const proxyPoint = {
36 | stop: 'Neon Proxy',
37 | type: 'through',
38 | lat: 38.95329973388636,
39 | lng: -77.45615256400193,
40 | flag: '🇺🇸',
41 | region: 'aws-us-east-1',
42 | stroke: theme.colors.brand['primary-light'],
43 | color: theme.colors.brand.background,
44 | altitude: POINT_ALTITUDE,
45 | radius: POINT_RADIUS_LG,
46 | size: 200,
47 | };
48 |
49 | export const neonRing = {
50 | lat: neonPoint.lat,
51 | lng: neonPoint.lng,
52 | color: hexToRgb(neonPoint.color),
53 | maxR: RING_MAX_RADIUS,
54 | propagationSpeed: RING_PROPERGATION_SPEED,
55 | repeatPeriod: RING_REPEAT_PERIOD,
56 | };
57 |
58 | export const serverlessDriverString = `import { neon } from '@neondatabase/serverless';
59 |
60 | export default async function handler(req, res) {
61 | const sql = neon(process.env.DATABASE_URL);
62 | const response = await sql\`SELECT * FROM table_name\`;
63 |
64 | return Response.json({
65 | message: 'A Ok!',
66 | data: response
67 | });
68 | }
69 |
70 | export const config = {
71 | runtime: 'edge',
72 | };`;
73 |
--------------------------------------------------------------------------------
/hooks/use-prefers-reduced-motion.js:
--------------------------------------------------------------------------------
1 | import { useState, useEffect } from 'react';
2 |
3 | const usePrefersReducedMotion = () => {
4 | const [prefersReducedMotion, setPrefersReducedMotion] = useState(true);
5 |
6 | useEffect(() => {
7 | const query = window.matchMedia('(prefers-reduced-motion: no-preference)');
8 |
9 | setPrefersReducedMotion(!query.matches);
10 |
11 | const setState = (event) => {
12 | setPrefersReducedMotion(!event.matches);
13 | };
14 |
15 | query.addEventListener('change', setState);
16 |
17 | return () => {
18 | query.removeEventListener('change', setState);
19 | };
20 | }, []);
21 |
22 | return prefersReducedMotion;
23 | };
24 |
25 | export default usePrefersReducedMotion;
26 |
--------------------------------------------------------------------------------
/neon/index.js:
--------------------------------------------------------------------------------
1 | const { neon } = require('@neondatabase/serverless');
2 |
3 | module.exports = {
4 | sql: neon(process.env.DATABASE_URL),
5 | };
6 |
--------------------------------------------------------------------------------
/neon/schema.sql:
--------------------------------------------------------------------------------
1 | CREATE TABLE locations (
2 | id SERIAL PRIMARY KEY,
3 | date TIMESTAMP WITH TIME ZONE NOT NULL,
4 | flag VARCHAR,
5 | country VARCHAR,
6 | city VARCHAR,
7 | lat DECIMAL,
8 | lng DECIMAL,
9 | runtime VARCHAR,
10 | start_time NUMERIC,
11 | end_time NUMERIC,
12 | miles DECIMAL (10,2),
13 | kilometers DECIMAL (10,2)
14 | );
15 |
16 |
17 | TRUNCATE TABLE locations;
--------------------------------------------------------------------------------
/next.config.js:
--------------------------------------------------------------------------------
1 | const isProd = process.env.NODE_ENV === 'production';
2 |
3 | module.exports = {
4 | assetPrefix: isProd ? process.env.NEXT_PUBLIC_REWRITE_PREFIX : undefined,
5 | basePath: isProd ? process.env.NEXT_PUBLIC_REWRITE_PREFIX : undefined,
6 | };
7 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ping-thing",
3 | "version": "1.0.0",
4 | "description": "Neon Demo",
5 | "main": "index.js",
6 | "scripts": {
7 | "dev": "next dev",
8 | "build": "next build",
9 | "start": "next start",
10 | "lint": "next lint",
11 | "test": "echo \"Error: no test specified\" && exit 1"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/PaulieScanlon/ping-thing.git"
16 | },
17 | "keywords": [],
18 | "author": "",
19 | "license": "ISC",
20 | "bugs": {
21 | "url": "https://github.com/PaulieScanlon/ping-thing/issues"
22 | },
23 | "homepage": "https://github.com/PaulieScanlon/ping-thing#readme",
24 | "dependencies": {
25 | "@neondatabase/serverless": "^0.5.6",
26 | "@vercel/edge": "^1.1.0",
27 | "geolib": "^3.3.4",
28 | "next": "^13.4.12",
29 | "react": "^18.2.0",
30 | "react-code-blocks": "0.0.9-0",
31 | "react-dom": "^18.2.0",
32 | "react-globe.gl": "^2.24.3",
33 | "react-query": "^3.39.3"
34 | },
35 | "devDependencies": {
36 | "@tailwindcss/typography": "^0.5.9",
37 | "autoprefixer": "^10.4.14",
38 | "postcss": "^8.4.27",
39 | "prop-types": "^15.8.1",
40 | "tailwindcss": "^3.3.3"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/pages/_app.js:
--------------------------------------------------------------------------------
1 | import React, { Fragment } from 'react';
2 | import Head from 'next/head';
3 | import Image from 'next/image';
4 |
5 | import { QueryClient, QueryClientProvider } from 'react-query';
6 | import { IBM_Plex_Sans } from 'next/font/google';
7 |
8 | import logo from '../static/logo.svg';
9 | import GitHubIcon from '../components/github-icon';
10 | import { sendGtagEvent } from '../utils/send-gtag-event';
11 |
12 | import '../styles/globals.css';
13 |
14 | const ibmPlexSans = IBM_Plex_Sans({
15 | subsets: ['latin'],
16 | weight: ['100', '200', '300', '400', '500', '600', '700'],
17 | display: 'swap',
18 | variable: '--font-ibm-plex-sans',
19 | });
20 |
21 | const queryClient = new QueryClient();
22 |
23 | const App = ({ Component, pageProps }) => {
24 | const url = process.env.NEXT_PUBLIC_REWRITE_URL || '';
25 | const title = 'Ping Thing';
26 | const description = 'A @neondatabase/serverless demo';
27 | const image = 'open-graph-image.jpg';
28 |
29 | return (
30 |
31 |
32 | {title}
33 |
34 |
35 | {/* Primary Meta Tags */}
36 |
37 |
38 |
39 |
40 | {/* Open Graph / Facebook */}
41 |
42 |
43 |
44 |
45 |
46 |
47 | {/* Twitter */}
48 |
49 |
50 |
51 |
52 |
53 |
54 | {/* favicon */}
55 |
56 |
57 |
58 |
59 |
88 |
89 |
90 |
91 |
92 |
93 | );
94 | };
95 |
96 | export default App;
97 |
--------------------------------------------------------------------------------
/pages/_document.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Script from 'next/script';
3 | import { Html, Head, Main, NextScript } from 'next/document';
4 |
5 | const Document = () => {
6 | const isProd = process.env.NODE_ENV === 'production';
7 |
8 | return (
9 |
10 |
11 | {isProd ? (
12 |
26 | ) : null}
27 |
28 |
29 |
30 |
31 | {isProd ? (
32 |
36 | ) : null}
37 |
38 |
39 | );
40 | };
41 |
42 | export default Document;
43 |
--------------------------------------------------------------------------------
/pages/analytics.js:
--------------------------------------------------------------------------------
1 | import React, { Fragment } from 'react';
2 | import { useQuery } from 'react-query';
3 |
4 | import { formatNumber } from '../utils/format-number';
5 | import { formatDate } from '../utils/format-date';
6 |
7 | import LoadingDots from '../components/loading-dots';
8 |
9 | const Page = () => {
10 | const query = useQuery({
11 | queryKey: ['read-query'],
12 | queryFn: async () => {
13 | try {
14 | const response = await fetch(
15 | `${process.env.NEXT_PUBLIC_REWRITE_PREFIX}/api/read`,
16 | {
17 | method: 'GET',
18 | }
19 | );
20 |
21 | if (!response.ok) {
22 | throw new Error('!response.ok');
23 | }
24 |
25 | const json = await response.json();
26 |
27 | return json;
28 | } catch (error) {
29 | throw new Error('Error response');
30 | }
31 | },
32 | });
33 |
34 | return (
35 |
36 |
37 | {query.isLoading ? (
38 |
39 |
40 |
41 | ) : (
42 |
43 |
44 |
All Pings
45 |
{`${query.data.response.length} Pings since September 19, 2023.`}
46 |
47 |
48 |
49 |
50 |
51 |
52 | Id
53 | Date
54 | Flag
55 | Country
56 | City
57 | Runtime
58 | Response
59 | Mi ½
60 | Km ½
61 | Mi
62 | Km
63 |
64 |
65 |
66 | {query.data.response.map((d, i) => {
67 | const {
68 | id,
69 | date,
70 | flag,
71 | country,
72 | city,
73 | runtime,
74 | start_time,
75 | end_time,
76 | miles,
77 | kilometers,
78 | } = d;
79 |
80 | const diff = end_time - start_time;
81 |
82 | return (
83 |
87 |
88 | {query.data.response.length - i}
89 |
90 |
91 | {formatDate(date)}
92 |
93 | {flag}
94 | {country}
95 | {city}
96 | {runtime}
97 | {`${formatNumber(
98 | diff / 1000
99 | )}s / ${formatNumber(diff)}ms`}
100 |
101 | {formatNumber(miles)}
102 |
103 |
104 | {formatNumber(kilometers)}
105 |
106 |
107 | {formatNumber(miles * 2)}
108 |
109 |
110 | {formatNumber(kilometers * 2)}
111 |
112 |
113 | );
114 | })}
115 |
116 |
117 |
118 |
119 |
120 | )}
121 |
122 |
123 | );
124 | };
125 |
126 | export default Page;
127 |
--------------------------------------------------------------------------------
/pages/api/create-edge.js:
--------------------------------------------------------------------------------
1 | import { sql } from '../../neon';
2 | import { geolocation } from '@vercel/edge';
3 |
4 | export default async function handler(req) {
5 | // https://github.com/orgs/vercel/discussions/78
6 | const { date } = await new Response(req.body).json();
7 |
8 | const { country, city, latitude, longitude, flag } = geolocation(req);
9 |
10 | const lat = Number(latitude);
11 | const lng = Number(longitude);
12 |
13 | try {
14 | if (!city) {
15 | return Response.json({
16 | message: 'A Ok!',
17 | status: 200,
18 | id: 123,
19 | flag: '🇦🇺',
20 | country: 'AU',
21 | city: 'Uluru',
22 | lat: -25.34449,
23 | lng: 131.0369,
24 | });
25 | } else {
26 | const city_sanitized = city.replace(/[^a-zA-Z ]/g, ' ');
27 |
28 | const response = await sql(
29 | 'INSERT INTO locations(date, flag, country, city, lat, lng, runtime) VALUES($1, $2, $3, $4, $5, $6, $7) RETURNING id',
30 | [date, flag, country, city_sanitized, lat, lng, 'Edge']
31 | );
32 |
33 | return Response.json({
34 | message: 'Ok',
35 | status: 200,
36 | id: response[0].id,
37 | flag: flag,
38 | country: country,
39 | city: city_sanitized,
40 | lat: lat,
41 | lng: lng,
42 | });
43 | }
44 | } catch (error) {
45 | return Response.json({
46 | message: 'Error',
47 | status: 500,
48 | });
49 | }
50 | }
51 |
52 | export const config = {
53 | runtime: 'edge',
54 | };
55 |
--------------------------------------------------------------------------------
/pages/api/read.js:
--------------------------------------------------------------------------------
1 | import { sql } from '../../neon';
2 |
3 | export default async function handler() {
4 | try {
5 | const response = await sql('SELECT * FROM locations ORDER BY id DESC');
6 |
7 | return Response.json({
8 | message: 'A Ok!',
9 | response,
10 | });
11 | } catch (error) {
12 | return Response.json({
13 | message: 'Error',
14 | });
15 | }
16 | }
17 |
18 | export const config = {
19 | runtime: 'edge',
20 | };
21 |
--------------------------------------------------------------------------------
/pages/api/update-entry.js:
--------------------------------------------------------------------------------
1 | import { sql } from '../../neon';
2 |
3 | export default async function handler(req) {
4 | const { id, start_time, end_time, miles, kilometers } = await new Response(
5 | req.body
6 | ).json();
7 |
8 | try {
9 | await sql`UPDATE locations SET start_time = ${start_time}, end_time = ${end_time}, miles = ${miles}, kilometers = ${kilometers} WHERE id = ${id};`;
10 |
11 | return Response.json({
12 | message: 'Ok',
13 | status: 200,
14 | });
15 | } catch (error) {
16 | return Response.json({
17 | message: 'Error',
18 | status: 500,
19 | });
20 | }
21 | }
22 |
23 | export const config = {
24 | runtime: 'edge',
25 | };
26 |
--------------------------------------------------------------------------------
/pages/index.js:
--------------------------------------------------------------------------------
1 | import React, { memo, useState } from 'react';
2 | import Image from 'next/image';
3 | import dynamic from 'next/dynamic';
4 | import { useMutation } from 'react-query';
5 |
6 | import {
7 | EDGE,
8 | POINT_RADIUS_SM,
9 | POINT_ALTITUDE,
10 | userPoint,
11 | proxyPoint,
12 | neonPoint,
13 | neonRing,
14 | serverlessDriverString,
15 | } from '../const';
16 |
17 | import { getEdgeDistance } from '../utils/get-edge-distance';
18 | import { sendGtagEvent } from '../utils/send-gtag-event';
19 |
20 | import JourneyCard from '../components/journey-card';
21 | import LoadingDots from '../components/loading-dots';
22 | import PlayPauseIcon from '../components/play-pause-icon';
23 | import CodeHighlight from '../components/code-highlight';
24 | import ButtonEffect from '../components/button-effect';
25 |
26 | const ThreeGlobe = dynamic(() => import('../components/three-globe'), {
27 | ssr: false,
28 | loading: () => ,
29 | });
30 |
31 | const defaultDetails = {
32 | user: {
33 | ...userPoint,
34 | runtime: EDGE,
35 | city: null,
36 | diff: null,
37 | miles: null,
38 | kilometers: null,
39 | stages: [proxyPoint, neonPoint],
40 | },
41 | points: [neonPoint],
42 | arcs: [],
43 | rings: [neonRing],
44 | };
45 |
46 | const Page = memo(() => {
47 | const [isPlaying, setIsPlaying] = useState(false);
48 | const [details, setDetails] = useState(defaultDetails);
49 |
50 | const mutation = useMutation({
51 | mutationFn: async () => {
52 | setDetails(defaultDetails);
53 | const date = new Date();
54 |
55 | const start_time = performance.now();
56 |
57 | const response = await fetch(
58 | `${process.env.NEXT_PUBLIC_REWRITE_PREFIX}/api/create-edge`,
59 | {
60 | method: 'POST',
61 | body: JSON.stringify({ date: date }),
62 | }
63 | );
64 |
65 | if (!response.ok) {
66 | throw new Error('!response.ok');
67 | }
68 |
69 | const json = await response.json();
70 |
71 | const end_time = performance.now();
72 |
73 | const userCoordinates = { latitude: json.lat, longitude: json.lng };
74 |
75 | const meters = getEdgeDistance(userCoordinates, {
76 | latitude: neonPoint.lat,
77 | longitude: neonPoint.lng,
78 | });
79 |
80 | const miles = meters * 0.000621371192;
81 | const kilometers = meters / 1000;
82 | const diff = end_time - start_time;
83 |
84 | const user = {
85 | id: json.id,
86 | stop: userPoint.stop,
87 | flag: json.flag,
88 | country: json.country,
89 | city: json.city,
90 | runtime: EDGE,
91 | lat: json.lat,
92 | lng: json.lng,
93 | start_time: start_time,
94 | end_time: end_time,
95 | diff: diff,
96 | miles: miles,
97 | kilometers: kilometers,
98 | };
99 |
100 | setDetails((prevState) => ({
101 | ...prevState,
102 | user: {
103 | ...prevState.user,
104 | ...user,
105 | },
106 | points: [
107 | ...prevState.points,
108 | {
109 | ...user,
110 | color: userPoint.color,
111 | altitude: POINT_ALTITUDE,
112 | radius: POINT_RADIUS_SM,
113 | },
114 | ],
115 | arcs: [
116 | {
117 | runtime: user.runtime,
118 | startLat: user.lat,
119 | startLng: user.lng,
120 | endLat: neonPoint.lat,
121 | endLng: neonPoint.lng,
122 | color: [userPoint.color, neonPoint.color],
123 | stroke: 2,
124 | dash: 0.1,
125 | altitude: 0.5,
126 | },
127 | ],
128 | }));
129 |
130 | setIsPlaying(true);
131 | return user;
132 | },
133 | onSuccess: async (data) => {
134 | const { id, start_time, end_time, miles, kilometers } = data;
135 |
136 | await fetch(
137 | `${process.env.NEXT_PUBLIC_REWRITE_PREFIX}/api/update-entry`,
138 | {
139 | method: 'POST',
140 | body: JSON.stringify({ id, start_time, end_time, miles, kilometers }),
141 | }
142 | );
143 | },
144 | onError: async () => {
145 | throw new Error('Error response');
146 | },
147 | });
148 |
149 | const handleIsPlayingToggle = () => {
150 | setIsPlaying(!isPlaying);
151 | };
152 |
153 | return (
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 | Getting Started
162 |
163 |
164 | Ping Thing
165 |
166 |
167 |
168 | Ping a Neon Serverless Postgres database using a Vercel Edge
169 | Function to see the journey your request makes.
170 |
171 |
172 |
173 |
174 |
175 |
180 | {mutation.isLoading ? (
181 |
182 | ) : (
183 | 'Ping'
184 | )}
185 |
186 |
187 | {mutation.error ? (
188 |
189 | Error
190 | Request failed. Please Ping again.
191 |
192 | ) : null}
193 |
194 |
195 |
196 |
197 |
198 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
Postgres at the Edge
219 |
220 |
221 | Edge Functions run closer to the user. This minimizes both the
222 | number, and length of network round-trips to and from the
223 | database, resulting in lower latency response times.
224 |
225 |
226 |
231 | {mutation.isLoading ? (
232 |
233 | ) : (
234 | 'Ping'
235 | )}
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
276 |
277 |
278 |
279 |
310 |
311 |
312 |
313 |
314 |
315 |
316 |
317 |
318 | Get started
319 |
320 | with Neon
321 |
322 |
323 | The fully managed multi-cloud Postgres with a generous free
324 | tier. We separated storage and compute to offer autoscaling,
325 | branching, and bottomless storage.
326 |
327 |
339 |
340 |
341 |
348 |
349 |
350 |
351 |
352 |
353 |
354 | );
355 | });
356 |
357 | export default Page;
358 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/static/cta-elephant.avif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neondatabase/ping-thing/d066011cc81ad94b08677dfdce2eb77a01401ab5/static/cta-elephant.avif
--------------------------------------------------------------------------------
/static/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neondatabase/ping-thing/d066011cc81ad94b08677dfdce2eb77a01401ab5/static/favicon.png
--------------------------------------------------------------------------------
/static/logo.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/open-graph-image.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/neondatabase/ping-thing/d066011cc81ad94b08677dfdce2eb77a01401ab5/static/open-graph-image.jpg
--------------------------------------------------------------------------------
/styles/globals.css:
--------------------------------------------------------------------------------
1 | @tailwind base;
2 | @tailwind components;
3 | @tailwind utilities;
4 |
5 | @layer base {
6 | html,
7 | body {
8 | @apply antialiased bg-brand-background;
9 | }
10 | }
11 | .primary-link {
12 | @apply no-underline border-b border-b-transparent transition-colors duration-500 hover:border-b-brand-primary
13 | }
14 |
15 | /* Special case to style env.DATABASE_URL in code snippet */
16 | span.constant {
17 | @apply !text-brand-tertiary
18 | }
19 |
20 | span.react-syntax-highlighter-line-number {
21 | @apply text-white/70
22 | }
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | const plugin = require('tailwindcss/plugin');
2 |
3 | /** @type {import('tailwindcss').Config} */
4 | module.exports = {
5 | content: [
6 | './app/**/*.{js,ts,jsx,tsx,mdx}',
7 | './pages/**/*.{js,ts,jsx,tsx,mdx}',
8 | './components/**/*.{js,ts,jsx,tsx,mdx}',
9 |
10 | // Or if using `src` directory:
11 | './src/**/*.{js,ts,jsx,tsx,mdx}',
12 | ],
13 | safelist: [
14 | // this is for the journeyCard isActive state
15 | 'shadow-2xl',
16 | // this is for the journeyCard null city state
17 | 'opacity-30',
18 | // these are for the line chart
19 | 'stroke-brand-secondary',
20 | 'stroke-brand-tertiary',
21 | // These are for all empty states
22 | 'animate-primary-phase',
23 | 'animate-dark-fade',
24 | 'animate-light-phase',
25 | ],
26 | theme: {
27 | extend: {
28 | colors: {
29 | brand: {
30 | primary: '#00e599',
31 | 'primary-light': '#00e5bf',
32 | secondary: '#f0f075',
33 | tertiary: '#ff4c79',
34 | highlight: '#aa99ff',
35 | 'light-gray': '#afb1b6',
36 | 'dark-gray': '#131415',
37 | background: '#0c0d0d',
38 | code: '#131415',
39 | globe: '#0c0d0d',
40 | atmosphere: '#135b45',
41 | border: '#242628',
42 | },
43 | },
44 | fontFamily: {
45 | ibmPlexSans: ['var(--font-ibm-plex-sans)'],
46 | },
47 | maxWidth: {
48 | '8xl': '110rem',
49 | },
50 | keyframes: {
51 | bloop: {
52 | '0%, 100%': { transform: 'scale(1.2, 1.2)' },
53 | '50%': { transform: 'scale(0.8,0.8)' },
54 | },
55 | 'dark-fade': {
56 | '0%, 100%': { background: '#474747' },
57 | '50%': { background: '#2f2f2f' },
58 | },
59 | },
60 | animation: {
61 | bloop: 'bloop 1s ease-in-out infinite',
62 | 'dark-fade': 'dark-fade 3s linear infinite',
63 | },
64 | typography: (theme) => ({
65 | DEFAULT: {
66 | css: {
67 | '*:not(code)': {
68 | fontFamily: theme('fontFamily.ibmPlexSans'),
69 | },
70 | 'h1, h2, h3, h4, h5, h6': {
71 | color: theme('colors.white'),
72 | margin: 0,
73 | fontWeight: 500,
74 | },
75 | p: {
76 | color: theme('colors.white'),
77 | margin: 0,
78 | fontWeight: 300,
79 | },
80 | strong: {
81 | lineHeight: '0.8rem',
82 | color: theme('colors.white'),
83 | },
84 | small: {
85 | lineHeight: '0.8rem',
86 | color: theme('colors.brand.light-gray'),
87 | },
88 | a: {
89 | color: theme('colors.brand.primary'),
90 | },
91 |
92 | 'th, td': {
93 | color: theme('colors.black'),
94 | },
95 | pre: {
96 | fontSize: '1em!importa',
97 | },
98 | 'code::before': {
99 | content: '""',
100 | },
101 | 'code::after': {
102 | content: '""',
103 | },
104 | table: {
105 | thead: {
106 | th: {
107 | color: 'white',
108 | fontWeight: 500,
109 | textAlign: 'left',
110 | },
111 | },
112 | tbody: {
113 | td: {
114 | color: 'white',
115 | fontWeight: 400,
116 | textAlign: 'left',
117 | },
118 | },
119 | },
120 | },
121 | },
122 | }),
123 | },
124 | },
125 | plugins: [
126 | require('@tailwindcss/typography'),
127 | plugin(function ({ addUtilities }) {
128 | addUtilities({
129 | '.gradient-mask-t': {
130 | 'mask-image':
131 | 'radial-gradient(50% 90% at 50% 100%, #000, transparent)',
132 | },
133 | '.gradient-mask-b': {
134 | 'mask-image': 'radial-gradient(50% 90% at 50% 0%, #000, transparent)',
135 | },
136 | });
137 | }),
138 | ],
139 | };
140 |
--------------------------------------------------------------------------------
/utils/code-block-theme.js:
--------------------------------------------------------------------------------
1 | export default {
2 | lineNumberColor: `#b3b3b3`,
3 | lineNumberBgColor: `#282a36`,
4 | backgroundColor: `#131415`,
5 | textColor: `#f8f8f2`,
6 | substringColor: `#47d18c`,
7 | keywordColor: `#66a3ff`,
8 | attributeColor: `#66a3ff`,
9 | selectorTagColor: `#8be9fd`,
10 | docTagColor: `#47d18c`,
11 | nameColor: `#66d9ef`,
12 | builtInColor: `#50fa7b`,
13 | literalColor: `#66a3ff`,
14 | bulletColor: `#8BE9FD`,
15 | codeColor: `#66a3ff`,
16 | additionColor: `#47d18c`,
17 | regexpColor: `#47d18c`,
18 | symbolColor: `#47d18c`,
19 | variableColor: `#f6558c`,
20 | templateVariableColor: `#66a3ff`,
21 | linkColor: `#f6558c`,
22 | selectorAttributeColor: `#66a3ff`,
23 | selectorPseudoColor: `#66a3ff`,
24 | typeColor: `#8BE9FD`,
25 | stringColor: `#47d18c`,
26 | selectorIdColor: `#66a3ff`,
27 | selectorClassColor: `#66a3ff`,
28 | quoteColor: `#47d18c`,
29 | templateTagColor: `#66a3ff`,
30 | deletionColor: `#66a3ff`,
31 | titleColor: `#f6558c`,
32 | sectionColor: `#f6558c`,
33 | commentColor: `#6272A4`,
34 | metaKeywordColor: `#66a3ff`,
35 | metaColor: `#66a3ff`,
36 | functionColor: `#47d18c`,
37 | numberColor: `#f6558c`,
38 | };
39 |
--------------------------------------------------------------------------------
/utils/format-date.js:
--------------------------------------------------------------------------------
1 | export const formatDate = (date) => {
2 | const time_stamp = new Date(date).toLocaleTimeString([], {
3 | hour: '2-digit',
4 | minute: '2-digit',
5 | });
6 | const date_stamp = new Date(date).toLocaleString('en-US', {
7 | timeZone: 'UTC',
8 | month: 'short',
9 | day: 'numeric',
10 | year: 'numeric',
11 | });
12 | return `${date_stamp} @${time_stamp}`;
13 | };
14 |
--------------------------------------------------------------------------------
/utils/format-number.js:
--------------------------------------------------------------------------------
1 | export const formatNumber = (number) => {
2 | return new Intl.NumberFormat('en-US', {}).format(number);
3 | };
4 |
--------------------------------------------------------------------------------
/utils/get-edge-distance.js:
--------------------------------------------------------------------------------
1 | import { getDistance } from 'geolib';
2 |
3 | export const getEdgeDistance = (start, end) => {
4 | return getDistance(start, end);
5 | };
6 |
--------------------------------------------------------------------------------
/utils/hex-to-rgb.js:
--------------------------------------------------------------------------------
1 | export const hexToRgb = (hex) => {
2 | const result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
3 | return result
4 | ? `${parseInt(result[1], 16)},${parseInt(result[2], 16)},${parseInt(
5 | result[3],
6 | 16
7 | )}`
8 | : null;
9 | };
10 |
--------------------------------------------------------------------------------
/utils/send-gtag-event.js:
--------------------------------------------------------------------------------
1 | export const sendGtagEvent = (eventName, properties) => {
2 | window.dataLayer = window.dataLayer || [];
3 | window.dataLayer.push({
4 | event: eventName,
5 | ...properties,
6 | });
7 | };
8 |
--------------------------------------------------------------------------------
/utils/theme.js:
--------------------------------------------------------------------------------
1 | import resolveConfig from 'tailwindcss/resolveConfig';
2 | import tailwindConfig from '../tailwind.config';
3 |
4 | export const { theme } = resolveConfig(tailwindConfig);
5 |
--------------------------------------------------------------------------------
/vercel.json:
--------------------------------------------------------------------------------
1 | { "redirects": [{ "source": "/", "destination": "/demos/ping-thing", "permanent": true }] }
2 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@alloc/quick-lru@^5.2.0":
6 | version "5.2.0"
7 | resolved "https://registry.yarnpkg.com/@alloc/quick-lru/-/quick-lru-5.2.0.tgz#7bf68b20c0a350f936915fcae06f58e32007ce30"
8 | integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
9 |
10 | "@babel/code-frame@^7.22.10", "@babel/code-frame@^7.22.5":
11 | version "7.22.13"
12 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e"
13 | integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==
14 | dependencies:
15 | "@babel/highlight" "^7.22.13"
16 | chalk "^2.4.2"
17 |
18 | "@babel/generator@^7.22.10":
19 | version "7.22.10"
20 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.22.10.tgz#c92254361f398e160645ac58831069707382b722"
21 | integrity sha512-79KIf7YiWjjdZ81JnLujDRApWtl7BxTqWD88+FFdQEIOG8LJ0etDOM7CXuIgGJa55sGOwZVwuEsaLEm0PJ5/+A==
22 | dependencies:
23 | "@babel/types" "^7.22.10"
24 | "@jridgewell/gen-mapping" "^0.3.2"
25 | "@jridgewell/trace-mapping" "^0.3.17"
26 | jsesc "^2.5.1"
27 |
28 | "@babel/helper-annotate-as-pure@^7.22.5":
29 | version "7.22.5"
30 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882"
31 | integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==
32 | dependencies:
33 | "@babel/types" "^7.22.5"
34 |
35 | "@babel/helper-environment-visitor@^7.22.5":
36 | version "7.22.5"
37 | resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.5.tgz#f06dd41b7c1f44e1f8da6c4055b41ab3a09a7e98"
38 | integrity sha512-XGmhECfVA/5sAt+H+xpSg0mfrHq6FzNr9Oxh7PSEBBRUb/mL7Kz3NICXb194rCqAEdxkhPT1a88teizAFyvk8Q==
39 |
40 | "@babel/helper-function-name@^7.22.5":
41 | version "7.22.5"
42 | resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.22.5.tgz#ede300828905bb15e582c037162f99d5183af1be"
43 | integrity sha512-wtHSq6jMRE3uF2otvfuD3DIvVhOsSNshQl0Qrd7qC9oQJzHvOL4qQXlQn2916+CXGywIjpGuIkoyZRRxHPiNQQ==
44 | dependencies:
45 | "@babel/template" "^7.22.5"
46 | "@babel/types" "^7.22.5"
47 |
48 | "@babel/helper-hoist-variables@^7.22.5":
49 | version "7.22.5"
50 | resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb"
51 | integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==
52 | dependencies:
53 | "@babel/types" "^7.22.5"
54 |
55 | "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.22.5":
56 | version "7.22.5"
57 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.5.tgz#1a8f4c9f4027d23f520bd76b364d44434a72660c"
58 | integrity sha512-8Dl6+HD/cKifutF5qGd/8ZJi84QeAKh+CEe1sBzz8UayBBGg1dAIJrdHOcOM5b2MpzWL2yuotJTtGjETq0qjXg==
59 | dependencies:
60 | "@babel/types" "^7.22.5"
61 |
62 | "@babel/helper-plugin-utils@^7.22.5":
63 | version "7.22.5"
64 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295"
65 | integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==
66 |
67 | "@babel/helper-split-export-declaration@^7.22.6":
68 | version "7.22.6"
69 | resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c"
70 | integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==
71 | dependencies:
72 | "@babel/types" "^7.22.5"
73 |
74 | "@babel/helper-string-parser@^7.22.5":
75 | version "7.22.5"
76 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f"
77 | integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw==
78 |
79 | "@babel/helper-validator-identifier@^7.22.5":
80 | version "7.22.5"
81 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz#9544ef6a33999343c8740fa51350f30eeaaaf193"
82 | integrity sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==
83 |
84 | "@babel/highlight@^7.22.13":
85 | version "7.22.13"
86 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.13.tgz#9cda839e5d3be9ca9e8c26b6dd69e7548f0cbf16"
87 | integrity sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==
88 | dependencies:
89 | "@babel/helper-validator-identifier" "^7.22.5"
90 | chalk "^2.4.2"
91 | js-tokens "^4.0.0"
92 |
93 | "@babel/parser@^7.22.11", "@babel/parser@^7.22.5":
94 | version "7.22.14"
95 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.22.14.tgz#c7de58e8de106e88efca42ce17f0033209dfd245"
96 | integrity sha512-1KucTHgOvaw/LzCVrEOAyXkr9rQlp0A1HiHRYnSUE9dmb8PvPW7o5sscg+5169r54n3vGlbx6GevTE/Iw/P3AQ==
97 |
98 | "@babel/plugin-syntax-jsx@^7.22.5":
99 | version "7.22.5"
100 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz#a6b68e84fb76e759fc3b93e901876ffabbe1d918"
101 | integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg==
102 | dependencies:
103 | "@babel/helper-plugin-utils" "^7.22.5"
104 |
105 | "@babel/runtime@^7.10.4", "@babel/runtime@^7.3.1":
106 | version "7.22.11"
107 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4"
108 | integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==
109 | dependencies:
110 | regenerator-runtime "^0.14.0"
111 |
112 | "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.8", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.2", "@babel/runtime@^7.7.2":
113 | version "7.22.10"
114 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682"
115 | integrity sha512-21t/fkKLMZI4pqP2wlmsQAWnYW1PDyKyyUV4vCi+B25ydmdaYTKXPwCj0BzSUnZf4seIiYvSA3jcZ3gdsMFkLQ==
116 | dependencies:
117 | regenerator-runtime "^0.14.0"
118 |
119 | "@babel/template@^7.22.5":
120 | version "7.22.5"
121 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.5.tgz#0c8c4d944509875849bd0344ff0050756eefc6ec"
122 | integrity sha512-X7yV7eiwAxdj9k94NEylvbVHLiVG1nvzCV2EAowhxLTwODV1jl9UzZ48leOC0sH7OnuHrIkllaBgneUykIcZaw==
123 | dependencies:
124 | "@babel/code-frame" "^7.22.5"
125 | "@babel/parser" "^7.22.5"
126 | "@babel/types" "^7.22.5"
127 |
128 | "@babel/traverse@^7.4.5":
129 | version "7.22.11"
130 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.22.11.tgz#71ebb3af7a05ff97280b83f05f8865ac94b2027c"
131 | integrity sha512-mzAenteTfomcB7mfPtyi+4oe5BZ6MXxWcn4CX+h4IRJ+OOGXBrWU6jDQavkQI9Vuc5P+donFabBfFCcmWka9lQ==
132 | dependencies:
133 | "@babel/code-frame" "^7.22.10"
134 | "@babel/generator" "^7.22.10"
135 | "@babel/helper-environment-visitor" "^7.22.5"
136 | "@babel/helper-function-name" "^7.22.5"
137 | "@babel/helper-hoist-variables" "^7.22.5"
138 | "@babel/helper-split-export-declaration" "^7.22.6"
139 | "@babel/parser" "^7.22.11"
140 | "@babel/types" "^7.22.11"
141 | debug "^4.1.0"
142 | globals "^11.1.0"
143 |
144 | "@babel/types@^7.22.10", "@babel/types@^7.22.11", "@babel/types@^7.22.5":
145 | version "7.22.11"
146 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.22.11.tgz#0e65a6a1d4d9cbaa892b2213f6159485fe632ea2"
147 | integrity sha512-siazHiGuZRz9aB9NpHy9GOs9xiQPKnMzgdr493iI1M67vRXpnEq8ZOOKzezC5q7zwuQ6sDhdSp4SD9ixKSqKZg==
148 | dependencies:
149 | "@babel/helper-string-parser" "^7.22.5"
150 | "@babel/helper-validator-identifier" "^7.22.5"
151 | to-fast-properties "^2.0.0"
152 |
153 | "@emotion/is-prop-valid@^1.1.0":
154 | version "1.2.1"
155 | resolved "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-1.2.1.tgz#23116cf1ed18bfeac910ec6436561ecb1a3885cc"
156 | integrity sha512-61Mf7Ufx4aDxx1xlDeOm8aFFigGHE4z+0sKCa+IHCeZKiyP9RLD0Mmx7m8b9/Cf37f7NAvQOOJAbQQGVr5uERw==
157 | dependencies:
158 | "@emotion/memoize" "^0.8.1"
159 |
160 | "@emotion/memoize@^0.8.1":
161 | version "0.8.1"
162 | resolved "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.8.1.tgz#c1ddb040429c6d21d38cc945fe75c818cfb68e17"
163 | integrity sha512-W2P2c/VRW1/1tLox0mVUalvnWXxavmv/Oum2aPsRcoDJuob75FC3Y8FbpfLwUegRcxINtGUMPq0tFCvYNTBXNA==
164 |
165 | "@emotion/stylis@^0.8.4":
166 | version "0.8.5"
167 | resolved "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.8.5.tgz#deacb389bd6ee77d1e7fcaccce9e16c5c7e78e04"
168 | integrity sha512-h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==
169 |
170 | "@emotion/unitless@^0.7.4":
171 | version "0.7.5"
172 | resolved "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.7.5.tgz#77211291c1900a700b8a78cfafda3160d76949ed"
173 | integrity sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==
174 |
175 | "@jridgewell/gen-mapping@^0.3.2":
176 | version "0.3.3"
177 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
178 | integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
179 | dependencies:
180 | "@jridgewell/set-array" "^1.0.1"
181 | "@jridgewell/sourcemap-codec" "^1.4.10"
182 | "@jridgewell/trace-mapping" "^0.3.9"
183 |
184 | "@jridgewell/resolve-uri@3.1.0":
185 | version "3.1.0"
186 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78"
187 | integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==
188 |
189 | "@jridgewell/resolve-uri@^3.1.0":
190 | version "3.1.1"
191 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
192 | integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
193 |
194 | "@jridgewell/set-array@^1.0.1":
195 | version "1.1.2"
196 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
197 | integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
198 |
199 | "@jridgewell/sourcemap-codec@1.4.14":
200 | version "1.4.14"
201 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24"
202 | integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
203 |
204 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14":
205 | version "1.4.15"
206 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
207 | integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
208 |
209 | "@jridgewell/trace-mapping@^0.3.17":
210 | version "0.3.19"
211 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
212 | integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
213 | dependencies:
214 | "@jridgewell/resolve-uri" "^3.1.0"
215 | "@jridgewell/sourcemap-codec" "^1.4.14"
216 |
217 | "@jridgewell/trace-mapping@^0.3.9":
218 | version "0.3.18"
219 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz#25783b2086daf6ff1dcb53c9249ae480e4dd4cd6"
220 | integrity sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==
221 | dependencies:
222 | "@jridgewell/resolve-uri" "3.1.0"
223 | "@jridgewell/sourcemap-codec" "1.4.14"
224 |
225 | "@neondatabase/serverless@^0.5.6":
226 | version "0.5.6"
227 | resolved "https://registry.yarnpkg.com/@neondatabase/serverless/-/serverless-0.5.6.tgz#e79b58f8ccd8995e4b6f94d86cbe2622172dd563"
228 | integrity sha512-Ru0lG6W/nQtHRkDFVQFF+1PJYx8wd3jereln0Ep0YkiHey50hjTLVUycQoE4X977605pXMuFWORweuktzph+Xg==
229 | dependencies:
230 | "@types/pg" "8.6.6"
231 |
232 | "@next/env@13.4.12":
233 | version "13.4.12"
234 | resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.12.tgz#0b88115ab817f178bf9dc0c5e7b367277595b58d"
235 | integrity sha512-RmHanbV21saP/6OEPBJ7yJMuys68cIf8OBBWd7+uj40LdpmswVAwe1uzeuFyUsd6SfeITWT3XnQfn6wULeKwDQ==
236 |
237 | "@next/swc-darwin-arm64@13.4.12":
238 | version "13.4.12"
239 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.12.tgz#326c830b111de8a1a51ac0cbc3bcb157c4c4f92c"
240 | integrity sha512-deUrbCXTMZ6ZhbOoloqecnUeNpUOupi8SE2tx4jPfNS9uyUR9zK4iXBvH65opVcA/9F5I/p8vDXSYbUlbmBjZg==
241 |
242 | "@next/swc-darwin-x64@13.4.12":
243 | version "13.4.12"
244 | resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.12.tgz#dd5c49fc092a8ffe4f30b7aa9bf6c5d2e40bbfa1"
245 | integrity sha512-WRvH7RxgRHlC1yb5oG0ZLx8F7uci9AivM5/HGGv9ZyG2Als8Ij64GC3d+mQ5sJhWjusyU6T6V1WKTUoTmOB0zQ==
246 |
247 | "@next/swc-linux-arm64-gnu@13.4.12":
248 | version "13.4.12"
249 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.12.tgz#816cbe9d26ce4670ea99d95b66041e483ed122d6"
250 | integrity sha512-YEKracAWuxp54tKiAvvq73PUs9lok57cc8meYRibTWe/VdPB2vLgkTVWFcw31YDuRXdEhdX0fWS6Q+ESBhnEig==
251 |
252 | "@next/swc-linux-arm64-musl@13.4.12":
253 | version "13.4.12"
254 | resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.12.tgz#670c8aee221628f65e5b299ee84db746e6c778b0"
255 | integrity sha512-LhJR7/RAjdHJ2Isl2pgc/JaoxNk0KtBgkVpiDJPVExVWA1c6gzY57+3zWuxuyWzTG+fhLZo2Y80pLXgIJv7g3g==
256 |
257 | "@next/swc-linux-x64-gnu@13.4.12":
258 | version "13.4.12"
259 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.12.tgz#54c64e689f007ae463698dddc1c6637491c99cb4"
260 | integrity sha512-1DWLL/B9nBNiQRng+1aqs3OaZcxC16Nf+mOnpcrZZSdyKHek3WQh6j/fkbukObgNGwmCoVevLUa/p3UFTTqgqg==
261 |
262 | "@next/swc-linux-x64-musl@13.4.12":
263 | version "13.4.12"
264 | resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.12.tgz#9cbddf4e542ef3d32284e0c36ce102facc015f8b"
265 | integrity sha512-kEAJmgYFhp0VL+eRWmUkVxLVunn7oL9Mdue/FS8yzRBVj7Z0AnIrHpTIeIUl1bbdQq1VaoOztnKicAjfkLTRCQ==
266 |
267 | "@next/swc-win32-arm64-msvc@13.4.12":
268 | version "13.4.12"
269 | resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.12.tgz#3467a4b25429ccf49fd416388c9d19c80a4f6465"
270 | integrity sha512-GMLuL/loR6yIIRTnPRY6UGbLL9MBdw2anxkOnANxvLvsml4F0HNIgvnU3Ej4BjbqMTNjD4hcPFdlEow4XHPdZA==
271 |
272 | "@next/swc-win32-ia32-msvc@13.4.12":
273 | version "13.4.12"
274 | resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.12.tgz#73494cd167191946833c680b28d6a42435d383a8"
275 | integrity sha512-PhgNqN2Vnkm7XaMdRmmX0ZSwZXQAtamBVSa9A/V1dfKQCV1rjIZeiy/dbBnVYGdj63ANfsOR/30XpxP71W0eww==
276 |
277 | "@next/swc-win32-x64-msvc@13.4.12":
278 | version "13.4.12"
279 | resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.12.tgz#4a497edc4e8c5ee3c3eb27cf0eb39dfadff70874"
280 | integrity sha512-Z+56e/Ljt0bUs+T+jPjhFyxYBcdY2RIq9ELFU+qAMQMteHo7ymbV7CKmlcX59RI9C4YzN8PgMgLyAoi916b5HA==
281 |
282 | "@nodelib/fs.scandir@2.1.5":
283 | version "2.1.5"
284 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
285 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
286 | dependencies:
287 | "@nodelib/fs.stat" "2.0.5"
288 | run-parallel "^1.1.9"
289 |
290 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
291 | version "2.0.5"
292 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
293 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
294 |
295 | "@nodelib/fs.walk@^1.2.3":
296 | version "1.2.8"
297 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
298 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
299 | dependencies:
300 | "@nodelib/fs.scandir" "2.1.5"
301 | fastq "^1.6.0"
302 |
303 | "@swc/helpers@0.5.1":
304 | version "0.5.1"
305 | resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a"
306 | integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==
307 | dependencies:
308 | tslib "^2.4.0"
309 |
310 | "@tailwindcss/typography@^0.5.9":
311 | version "0.5.9"
312 | resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.9.tgz#027e4b0674929daaf7c921c900beee80dbad93e8"
313 | integrity sha512-t8Sg3DyynFysV9f4JDOVISGsjazNb48AeIYQwcL+Bsq5uf4RYL75C1giZ43KISjeDGBaTN3Kxh7Xj/vRSMJUUg==
314 | dependencies:
315 | lodash.castarray "^4.4.0"
316 | lodash.isplainobject "^4.0.6"
317 | lodash.merge "^4.6.2"
318 | postcss-selector-parser "6.0.10"
319 |
320 | "@turf/boolean-point-in-polygon@^6.5":
321 | version "6.5.0"
322 | resolved "https://registry.yarnpkg.com/@turf/boolean-point-in-polygon/-/boolean-point-in-polygon-6.5.0.tgz#6d2e9c89de4cd2e4365004c1e51490b7795a63cf"
323 | integrity sha512-DtSuVFB26SI+hj0SjrvXowGTUCHlgevPAIsukssW6BG5MlNSBQAo70wpICBNJL6RjukXg8d2eXaAWuD/CqL00A==
324 | dependencies:
325 | "@turf/helpers" "^6.5.0"
326 | "@turf/invariant" "^6.5.0"
327 |
328 | "@turf/helpers@^6.5.0":
329 | version "6.5.0"
330 | resolved "https://registry.yarnpkg.com/@turf/helpers/-/helpers-6.5.0.tgz#f79af094bd6b8ce7ed2bd3e089a8493ee6cae82e"
331 | integrity sha512-VbI1dV5bLFzohYYdgqwikdMVpe7pJ9X3E+dlr425wa2/sMJqYDhTO++ec38/pcPvPE6oD9WEEeU3Xu3gza+VPw==
332 |
333 | "@turf/invariant@^6.5.0":
334 | version "6.5.0"
335 | resolved "https://registry.yarnpkg.com/@turf/invariant/-/invariant-6.5.0.tgz#970afc988023e39c7ccab2341bd06979ddc7463f"
336 | integrity sha512-Wv8PRNCtPD31UVbdJE/KVAWKe7l6US+lJItRR/HOEW3eh+U/JwRCSUl/KZ7bmjM/C+zLNoreM2TU6OoLACs4eg==
337 | dependencies:
338 | "@turf/helpers" "^6.5.0"
339 |
340 | "@tweenjs/tween.js@18 - 21":
341 | version "21.0.0"
342 | resolved "https://registry.yarnpkg.com/@tweenjs/tween.js/-/tween.js-21.0.0.tgz#73f993c2d1de37b78b4c1246163e20bc6ae3b75e"
343 | integrity sha512-qVfOiFh0U8ZSkLgA6tf7kj2MciqRbSCWaJZRwftVO7UbtVDNsZAXpWXqvCDtIefvjC83UJB+vHTDOGm5ibXjEA==
344 |
345 | "@types/node@*":
346 | version "20.4.5"
347 | resolved "https://registry.yarnpkg.com/@types/node/-/node-20.4.5.tgz#9dc0a5cb1ccce4f7a731660935ab70b9c00a5d69"
348 | integrity sha512-rt40Nk13II9JwQBdeYqmbn2Q6IVTA5uPhvSO+JVqdXw/6/4glI6oR9ezty/A9Hg5u7JH4OmYmuQ+XvjKm0Datg==
349 |
350 | "@types/pg@8.6.6":
351 | version "8.6.6"
352 | resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.6.tgz#21cdf873a3e345a6e78f394677e3b3b1b543cb80"
353 | integrity sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==
354 | dependencies:
355 | "@types/node" "*"
356 | pg-protocol "*"
357 | pg-types "^2.2.0"
358 |
359 | "@vercel/edge@^1.1.0":
360 | version "1.1.0"
361 | resolved "https://registry.yarnpkg.com/@vercel/edge/-/edge-1.1.0.tgz#1a0cf6487d45b89a26d70d91e8f34c95a06e7df3"
362 | integrity sha512-84H2EavY5Kul9Ef1DnTH0XEG5vChqcXjyqoRLVPjjZjLWw47sMapzXXQH09pybcshR+8AKqULGvFqPTWuRh3Rw==
363 |
364 | accessor-fn@1:
365 | version "1.5.0"
366 | resolved "https://registry.yarnpkg.com/accessor-fn/-/accessor-fn-1.5.0.tgz#9353e10194da404366657f47177cd9bcb4463ee7"
367 | integrity sha512-dml7D96DY/K5lt4Ra2jMnpL9Bhw5HEGws4p1OAIxFFj9Utd/RxNfEO3T3f0QIWFNwQU7gNxH9snUfqF/zNkP/w==
368 |
369 | ansi-styles@^3.2.1:
370 | version "3.2.1"
371 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
372 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
373 | dependencies:
374 | color-convert "^1.9.0"
375 |
376 | any-promise@^1.0.0:
377 | version "1.3.0"
378 | resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f"
379 | integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==
380 |
381 | anymatch@~3.1.2:
382 | version "3.1.3"
383 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
384 | integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
385 | dependencies:
386 | normalize-path "^3.0.0"
387 | picomatch "^2.0.4"
388 |
389 | arg@^5.0.2:
390 | version "5.0.2"
391 | resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c"
392 | integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==
393 |
394 | autoprefixer@^10.4.14:
395 | version "10.4.14"
396 | resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.14.tgz#e28d49902f8e759dd25b153264e862df2705f79d"
397 | integrity sha512-FQzyfOsTlwVzjHxKEqRIAdJx9niO6VCBCoEwax/VLSoQF29ggECcPuBqUMZ+u8jCZOPSy8b8/8KnuFbp0SaFZQ==
398 | dependencies:
399 | browserslist "^4.21.5"
400 | caniuse-lite "^1.0.30001464"
401 | fraction.js "^4.2.0"
402 | normalize-range "^0.1.2"
403 | picocolors "^1.0.0"
404 | postcss-value-parser "^4.2.0"
405 |
406 | "babel-plugin-styled-components@>= 1.12.0":
407 | version "2.1.4"
408 | resolved "https://registry.yarnpkg.com/babel-plugin-styled-components/-/babel-plugin-styled-components-2.1.4.tgz#9a1f37c7f32ef927b4b008b529feb4a2c82b1092"
409 | integrity sha512-Xgp9g+A/cG47sUyRwwYxGM4bR/jDRg5N6it/8+HxCnbT5XNKSKDT9xm4oag/osgqjC2It/vH0yXsomOG6k558g==
410 | dependencies:
411 | "@babel/helper-annotate-as-pure" "^7.22.5"
412 | "@babel/helper-module-imports" "^7.22.5"
413 | "@babel/plugin-syntax-jsx" "^7.22.5"
414 | lodash "^4.17.21"
415 | picomatch "^2.3.1"
416 |
417 | balanced-match@^1.0.0:
418 | version "1.0.2"
419 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
420 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
421 |
422 | big-integer@^1.6.16:
423 | version "1.6.51"
424 | resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.51.tgz#0df92a5d9880560d3ff2d5fd20245c889d130686"
425 | integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
426 |
427 | binary-extensions@^2.0.0:
428 | version "2.2.0"
429 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
430 | integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
431 |
432 | brace-expansion@^1.1.7:
433 | version "1.1.11"
434 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
435 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
436 | dependencies:
437 | balanced-match "^1.0.0"
438 | concat-map "0.0.1"
439 |
440 | braces@^3.0.2, braces@~3.0.2:
441 | version "3.0.2"
442 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
443 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
444 | dependencies:
445 | fill-range "^7.0.1"
446 |
447 | broadcast-channel@^3.4.1:
448 | version "3.7.0"
449 | resolved "https://registry.yarnpkg.com/broadcast-channel/-/broadcast-channel-3.7.0.tgz#2dfa5c7b4289547ac3f6705f9c00af8723889937"
450 | integrity sha512-cIAKJXAxGJceNZGTZSBzMxzyOn72cVgPnKx4dc6LRjQgbaJUQqhy5rzL3zbMxkMWsGKkv2hSFkPRMEXfoMZ2Mg==
451 | dependencies:
452 | "@babel/runtime" "^7.7.2"
453 | detect-node "^2.1.0"
454 | js-sha3 "0.8.0"
455 | microseconds "0.2.0"
456 | nano-time "1.0.0"
457 | oblivious-set "1.0.0"
458 | rimraf "3.0.2"
459 | unload "2.2.0"
460 |
461 | browserslist@^4.21.5:
462 | version "4.21.9"
463 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.9.tgz#e11bdd3c313d7e2a9e87e8b4b0c7872b13897635"
464 | integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==
465 | dependencies:
466 | caniuse-lite "^1.0.30001503"
467 | electron-to-chromium "^1.4.431"
468 | node-releases "^2.0.12"
469 | update-browserslist-db "^1.0.11"
470 |
471 | busboy@1.6.0:
472 | version "1.6.0"
473 | resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893"
474 | integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==
475 | dependencies:
476 | streamsearch "^1.1.0"
477 |
478 | camelcase-css@^2.0.1:
479 | version "2.0.1"
480 | resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
481 | integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
482 |
483 | camelize@^1.0.0:
484 | version "1.0.1"
485 | resolved "https://registry.yarnpkg.com/camelize/-/camelize-1.0.1.tgz#89b7e16884056331a35d6b5ad064332c91daa6c3"
486 | integrity sha512-dU+Tx2fsypxTgtLoE36npi3UqcjSSMNYfkqgmoEhtZrraP5VWq0K7FkWVTYa8eMPtnU/G2txVsfdCJTn9uzpuQ==
487 |
488 | caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503:
489 | version "1.0.30001517"
490 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001517.tgz#90fabae294215c3495807eb24fc809e11dc2f0a8"
491 | integrity sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==
492 |
493 | chalk@^2.4.2:
494 | version "2.4.2"
495 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
496 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
497 | dependencies:
498 | ansi-styles "^3.2.1"
499 | escape-string-regexp "^1.0.5"
500 | supports-color "^5.3.0"
501 |
502 | character-entities-legacy@^1.0.0:
503 | version "1.1.4"
504 | resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1"
505 | integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==
506 |
507 | character-entities@^1.0.0:
508 | version "1.2.4"
509 | resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b"
510 | integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==
511 |
512 | character-reference-invalid@^1.0.0:
513 | version "1.1.4"
514 | resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560"
515 | integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==
516 |
517 | chokidar@^3.5.3:
518 | version "3.5.3"
519 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd"
520 | integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==
521 | dependencies:
522 | anymatch "~3.1.2"
523 | braces "~3.0.2"
524 | glob-parent "~5.1.2"
525 | is-binary-path "~2.1.0"
526 | is-glob "~4.0.1"
527 | normalize-path "~3.0.0"
528 | readdirp "~3.6.0"
529 | optionalDependencies:
530 | fsevents "~2.3.2"
531 |
532 | client-only@0.0.1:
533 | version "0.0.1"
534 | resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1"
535 | integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==
536 |
537 | clipboard@^2.0.0:
538 | version "2.0.11"
539 | resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.11.tgz#62180360b97dd668b6b3a84ec226975762a70be5"
540 | integrity sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==
541 | dependencies:
542 | good-listener "^1.2.2"
543 | select "^1.1.2"
544 | tiny-emitter "^2.0.0"
545 |
546 | color-convert@^1.9.0:
547 | version "1.9.3"
548 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
549 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
550 | dependencies:
551 | color-name "1.1.3"
552 |
553 | color-name@1.1.3:
554 | version "1.1.3"
555 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
556 | integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
557 |
558 | comma-separated-tokens@^1.0.0:
559 | version "1.0.8"
560 | resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea"
561 | integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw==
562 |
563 | commander@^4.0.0:
564 | version "4.1.1"
565 | resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
566 | integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
567 |
568 | concat-map@0.0.1:
569 | version "0.0.1"
570 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
571 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
572 |
573 | css-color-keywords@^1.0.0:
574 | version "1.0.0"
575 | resolved "https://registry.yarnpkg.com/css-color-keywords/-/css-color-keywords-1.0.0.tgz#fea2616dc676b2962686b3af8dbdbe180b244e05"
576 | integrity sha512-FyyrDHZKEjXDpNJYvVsV960FiqQyXc/LlYmsxl2BcdMb2WPx0OGRVgTg55rPSyLSNMqP52R9r8geSp7apN3Ofg==
577 |
578 | css-to-react-native@^3.0.0:
579 | version "3.2.0"
580 | resolved "https://registry.yarnpkg.com/css-to-react-native/-/css-to-react-native-3.2.0.tgz#cdd8099f71024e149e4f6fe17a7d46ecd55f1e32"
581 | integrity sha512-e8RKaLXMOFii+02mOlqwjbD00KSEKqblnpO9e++1aXS1fPQOpS1YoqdVHBqPjHNoxeF2mimzVqawm2KCbEdtHQ==
582 | dependencies:
583 | camelize "^1.0.0"
584 | css-color-keywords "^1.0.0"
585 | postcss-value-parser "^4.0.2"
586 |
587 | cssesc@^3.0.0:
588 | version "3.0.0"
589 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
590 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
591 |
592 | "d3-array@1 - 3", "d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3:
593 | version "3.2.4"
594 | resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5"
595 | integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==
596 | dependencies:
597 | internmap "1 - 2"
598 |
599 | "d3-color@1 - 3":
600 | version "3.1.0"
601 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2"
602 | integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==
603 |
604 | d3-delaunay@6:
605 | version "6.0.4"
606 | resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b"
607 | integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==
608 | dependencies:
609 | delaunator "5"
610 |
611 | "d3-format@1 - 3":
612 | version "3.1.0"
613 | resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641"
614 | integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==
615 |
616 | d3-geo-voronoi@^2.0:
617 | version "2.0.1"
618 | resolved "https://registry.yarnpkg.com/d3-geo-voronoi/-/d3-geo-voronoi-2.0.1.tgz#c80cf467f55799d82b8ad0d863711d06660785df"
619 | integrity sha512-KeBrhSLyN6fdcjGxpmil9I7JNsRQIbp58PybKFnebG1qpbwon5ia43epUpYgjgZZxfrhjb+3up0f6IwkQuPkwg==
620 | dependencies:
621 | d3-array "3"
622 | d3-delaunay "6"
623 | d3-geo "3"
624 | d3-tricontour "1"
625 |
626 | "d3-geo@1 - 3", d3-geo@3:
627 | version "3.1.0"
628 | resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e"
629 | integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==
630 | dependencies:
631 | d3-array "2.5.0 - 3"
632 |
633 | "d3-interpolate@1.2.0 - 3", d3-interpolate@3:
634 | version "3.0.1"
635 | resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d"
636 | integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==
637 | dependencies:
638 | d3-color "1 - 3"
639 |
640 | "d3-scale@1 - 4", d3-scale@4:
641 | version "4.0.2"
642 | resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396"
643 | integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==
644 | dependencies:
645 | d3-array "2.10.0 - 3"
646 | d3-format "1 - 3"
647 | d3-interpolate "1.2.0 - 3"
648 | d3-time "2.1.1 - 3"
649 | d3-time-format "2 - 4"
650 |
651 | "d3-time-format@2 - 4":
652 | version "4.1.0"
653 | resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a"
654 | integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==
655 | dependencies:
656 | d3-time "1 - 3"
657 |
658 | "d3-time@1 - 3", "d3-time@2.1.1 - 3":
659 | version "3.1.0"
660 | resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7"
661 | integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==
662 | dependencies:
663 | d3-array "2 - 3"
664 |
665 | d3-tricontour@1:
666 | version "1.0.2"
667 | resolved "https://registry.yarnpkg.com/d3-tricontour/-/d3-tricontour-1.0.2.tgz#2dbc1f2ae667d3586e50b01d4f335644a2472e75"
668 | integrity sha512-HIRxHzHagPtUPNabjOlfcyismJYIsc+Xlq4mlsts4e8eAcwyq9Tgk/sYdyhlBpQ0MHwVquc/8j+e29YjXnmxeA==
669 | dependencies:
670 | d3-delaunay "6"
671 | d3-scale "4"
672 |
673 | data-joint@1:
674 | version "1.3.1"
675 | resolved "https://registry.yarnpkg.com/data-joint/-/data-joint-1.3.1.tgz#d134950322c90f531e81bbbe8454277549031466"
676 | integrity sha512-tMK0m4OVGqiA3zkn8JmO6YAqD8UwJqIAx4AAwFl1SKTtKAqcXePuT+n2aayiX9uITtlN3DFtKKTOxJRUc2+HvQ==
677 | dependencies:
678 | index-array-by "^1.4.0"
679 |
680 | debug@^4.1.0:
681 | version "4.3.4"
682 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
683 | integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
684 | dependencies:
685 | ms "2.1.2"
686 |
687 | delaunator@5:
688 | version "5.0.0"
689 | resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b"
690 | integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==
691 | dependencies:
692 | robust-predicates "^3.0.0"
693 |
694 | delegate@^3.1.2:
695 | version "3.2.0"
696 | resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
697 | integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
698 |
699 | detect-node@^2.0.4, detect-node@^2.1.0:
700 | version "2.1.0"
701 | resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1"
702 | integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==
703 |
704 | didyoumean@^1.2.2:
705 | version "1.2.2"
706 | resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037"
707 | integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==
708 |
709 | dlv@^1.1.3:
710 | version "1.1.3"
711 | resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79"
712 | integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==
713 |
714 | earcut@2:
715 | version "2.2.4"
716 | resolved "https://registry.yarnpkg.com/earcut/-/earcut-2.2.4.tgz#6d02fd4d68160c114825d06890a92ecaae60343a"
717 | integrity sha512-/pjZsA1b4RPHbeWZQn66SWS8nZZWLQQ23oE3Eam7aroEFGEvwKAsJfZ9ytiEMycfzXWpca4FA9QIOehf7PocBQ==
718 |
719 | electron-to-chromium@^1.4.431:
720 | version "1.4.476"
721 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.476.tgz#693df619ce1785ada6d5aec71fd3ce7ace71adc3"
722 | integrity sha512-gzWl1m8pNy+5Kj17XcziNcbOhripjTqR2wAQmtdlFUngPYuFy7zUpJScVQAvCvQSFHNk3mS5fetNKW6BSpytFg==
723 |
724 | escalade@^3.1.1:
725 | version "3.1.1"
726 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
727 | integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
728 |
729 | escape-string-regexp@^1.0.5:
730 | version "1.0.5"
731 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
732 | integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
733 |
734 | fast-glob@^3.2.12:
735 | version "3.3.1"
736 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4"
737 | integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==
738 | dependencies:
739 | "@nodelib/fs.stat" "^2.0.2"
740 | "@nodelib/fs.walk" "^1.2.3"
741 | glob-parent "^5.1.2"
742 | merge2 "^1.3.0"
743 | micromatch "^4.0.4"
744 |
745 | fastq@^1.6.0:
746 | version "1.15.0"
747 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a"
748 | integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==
749 | dependencies:
750 | reusify "^1.0.4"
751 |
752 | fault@^1.0.2:
753 | version "1.0.4"
754 | resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.4.tgz#eafcfc0a6d214fc94601e170df29954a4f842f13"
755 | integrity sha512-CJ0HCB5tL5fYTEA7ToAq5+kTwd++Borf1/bifxd9iT70QcXr4MRrO3Llf8Ifs70q+SJcGHFtnIE/Nw6giCtECA==
756 | dependencies:
757 | format "^0.2.0"
758 |
759 | fill-range@^7.0.1:
760 | version "7.0.1"
761 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
762 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
763 | dependencies:
764 | to-regex-range "^5.0.1"
765 |
766 | format@^0.2.0:
767 | version "0.2.2"
768 | resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
769 | integrity sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==
770 |
771 | fraction.js@^4.2.0:
772 | version "4.2.0"
773 | resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950"
774 | integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==
775 |
776 | frame-ticker@1:
777 | version "1.0.3"
778 | resolved "https://registry.yarnpkg.com/frame-ticker/-/frame-ticker-1.0.3.tgz#2c99d3febb493fd1d3621351cd003189794a1245"
779 | integrity sha512-E0X2u2JIvbEMrqEg5+4BpTqaD22OwojJI63K7MdKHdncjtAhGRbCR8nJCr2vwEt9NWBPCPcu70X9smPviEBy8Q==
780 | dependencies:
781 | simplesignal "^2.1.6"
782 |
783 | fromentries@^1.3.2:
784 | version "1.3.2"
785 | resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a"
786 | integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==
787 |
788 | fs.realpath@^1.0.0:
789 | version "1.0.0"
790 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
791 | integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
792 |
793 | fsevents@~2.3.2:
794 | version "2.3.2"
795 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
796 | integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
797 |
798 | function-bind@^1.1.1:
799 | version "1.1.1"
800 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
801 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
802 |
803 | geolib@^3.3.4:
804 | version "3.3.4"
805 | resolved "https://registry.yarnpkg.com/geolib/-/geolib-3.3.4.tgz#09883ba2fdab84d2764cf3615dbafb9bce3c54d0"
806 | integrity sha512-EicrlLLL3S42gE9/wde+11uiaYAaeSVDwCUIv2uMIoRBfNJCn8EsSI+6nS3r4TCKDO6+RQNM9ayLq2at+oZQWQ==
807 |
808 | glob-parent@^5.1.2, glob-parent@~5.1.2:
809 | version "5.1.2"
810 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
811 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
812 | dependencies:
813 | is-glob "^4.0.1"
814 |
815 | glob-parent@^6.0.2:
816 | version "6.0.2"
817 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
818 | integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
819 | dependencies:
820 | is-glob "^4.0.3"
821 |
822 | glob-to-regexp@^0.4.1:
823 | version "0.4.1"
824 | resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e"
825 | integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==
826 |
827 | glob@7.1.6:
828 | version "7.1.6"
829 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
830 | integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
831 | dependencies:
832 | fs.realpath "^1.0.0"
833 | inflight "^1.0.4"
834 | inherits "2"
835 | minimatch "^3.0.4"
836 | once "^1.3.0"
837 | path-is-absolute "^1.0.0"
838 |
839 | glob@^7.1.3:
840 | version "7.2.3"
841 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
842 | integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
843 | dependencies:
844 | fs.realpath "^1.0.0"
845 | inflight "^1.0.4"
846 | inherits "2"
847 | minimatch "^3.1.1"
848 | once "^1.3.0"
849 | path-is-absolute "^1.0.0"
850 |
851 | globals@^11.1.0:
852 | version "11.12.0"
853 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
854 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
855 |
856 | globe.gl@^2.29:
857 | version "2.29.2"
858 | resolved "https://registry.yarnpkg.com/globe.gl/-/globe.gl-2.29.2.tgz#23e4a78321bf468c1765ce71656010bfc69268fc"
859 | integrity sha512-vH0X+tVaMJPhGnNJmj8r7rzqff3E3I6rRwULsrOleJF+Vc6izj94fjkAwiZL0y8fB4uyIGurW1qx4F48blqRTg==
860 | dependencies:
861 | "@tweenjs/tween.js" "18 - 21"
862 | accessor-fn "1"
863 | kapsule "1"
864 | three ">=0.118 <1"
865 | three-globe "^2.28"
866 | three-render-objects "^1.28"
867 |
868 | good-listener@^1.2.2:
869 | version "1.2.2"
870 | resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
871 | integrity sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==
872 | dependencies:
873 | delegate "^3.1.2"
874 |
875 | graceful-fs@^4.1.2:
876 | version "4.2.11"
877 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3"
878 | integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==
879 |
880 | h3-js@4:
881 | version "4.1.0"
882 | resolved "https://registry.yarnpkg.com/h3-js/-/h3-js-4.1.0.tgz#f8c4a8ad36612489a954f1a0bb3f4b7657d364e5"
883 | integrity sha512-LQhmMl1dRQQjMXPzJc7MpZ/CqPOWWuAvVEoVJM9n/s7vHypj+c3Pd5rLQCkAsOgAoAYKbNCsYFE++LF7MvSfCQ==
884 |
885 | has-flag@^3.0.0:
886 | version "3.0.0"
887 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
888 | integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
889 |
890 | has@^1.0.3:
891 | version "1.0.3"
892 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
893 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
894 | dependencies:
895 | function-bind "^1.1.1"
896 |
897 | hast-util-parse-selector@^2.0.0:
898 | version "2.2.5"
899 | resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.5.tgz#d57c23f4da16ae3c63b3b6ca4616683313499c3a"
900 | integrity sha512-7j6mrk/qqkSehsM92wQjdIgWM2/BW61u/53G6xmC8i1OmEdKLHbk419QKQUjz6LglWsfqoiHmyMRkP1BGjecNQ==
901 |
902 | hastscript@^5.0.0:
903 | version "5.1.2"
904 | resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a"
905 | integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==
906 | dependencies:
907 | comma-separated-tokens "^1.0.0"
908 | hast-util-parse-selector "^2.0.0"
909 | property-information "^5.0.0"
910 | space-separated-tokens "^1.0.0"
911 |
912 | highlight.js@~9.15.0, highlight.js@~9.15.1:
913 | version "9.15.10"
914 | resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-9.15.10.tgz#7b18ed75c90348c045eef9ed08ca1319a2219ad2"
915 | integrity sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==
916 |
917 | hoist-non-react-statics@^3.0.0:
918 | version "3.3.2"
919 | resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
920 | integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
921 | dependencies:
922 | react-is "^16.7.0"
923 |
924 | index-array-by@1, index-array-by@^1.4.0:
925 | version "1.4.1"
926 | resolved "https://registry.yarnpkg.com/index-array-by/-/index-array-by-1.4.1.tgz#425f26cf0c744a47ebadf47366692e52043cf17b"
927 | integrity sha512-Zu6THdrxQdyTuT2uA5FjUoBEsFHPzHcPIj18FszN6yXKHxSfGcR4TPLabfuT//E25q1Igyx9xta2WMvD/x9P/g==
928 |
929 | inflight@^1.0.4:
930 | version "1.0.6"
931 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
932 | integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
933 | dependencies:
934 | once "^1.3.0"
935 | wrappy "1"
936 |
937 | inherits@2:
938 | version "2.0.4"
939 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
940 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
941 |
942 | "internmap@1 - 2":
943 | version "2.0.3"
944 | resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009"
945 | integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==
946 |
947 | is-alphabetical@^1.0.0:
948 | version "1.0.4"
949 | resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d"
950 | integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==
951 |
952 | is-alphanumerical@^1.0.0:
953 | version "1.0.4"
954 | resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf"
955 | integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==
956 | dependencies:
957 | is-alphabetical "^1.0.0"
958 | is-decimal "^1.0.0"
959 |
960 | is-binary-path@~2.1.0:
961 | version "2.1.0"
962 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09"
963 | integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==
964 | dependencies:
965 | binary-extensions "^2.0.0"
966 |
967 | is-core-module@^2.11.0:
968 | version "2.12.1"
969 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd"
970 | integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==
971 | dependencies:
972 | has "^1.0.3"
973 |
974 | is-decimal@^1.0.0:
975 | version "1.0.4"
976 | resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5"
977 | integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==
978 |
979 | is-extglob@^2.1.1:
980 | version "2.1.1"
981 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
982 | integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
983 |
984 | is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
985 | version "4.0.3"
986 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
987 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
988 | dependencies:
989 | is-extglob "^2.1.1"
990 |
991 | is-hexadecimal@^1.0.0:
992 | version "1.0.4"
993 | resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7"
994 | integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==
995 |
996 | is-number@^7.0.0:
997 | version "7.0.0"
998 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
999 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
1000 |
1001 | jerrypick@^1.1.1:
1002 | version "1.1.1"
1003 | resolved "https://registry.yarnpkg.com/jerrypick/-/jerrypick-1.1.1.tgz#db0b15841a53cfe492de2db9544eecf8de73203c"
1004 | integrity sha512-XTtedPYEyVp4t6hJrXuRKr/jHj8SC4z+4K0b396PMkov6muL+i8IIamJIvZWe3jUspgIJak0P+BaWKawMYNBLg==
1005 |
1006 | jiti@^1.18.2:
1007 | version "1.19.1"
1008 | resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.19.1.tgz#fa99e4b76a23053e0e7cde098efe1704a14c16f1"
1009 | integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==
1010 |
1011 | js-sha3@0.8.0:
1012 | version "0.8.0"
1013 | resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840"
1014 | integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
1015 |
1016 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
1017 | version "4.0.0"
1018 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
1019 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
1020 |
1021 | jsesc@^2.5.1:
1022 | version "2.5.2"
1023 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
1024 | integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
1025 |
1026 | kapsule@1:
1027 | version "1.14.4"
1028 | resolved "https://registry.yarnpkg.com/kapsule/-/kapsule-1.14.4.tgz#55f19fe7a04dfe111e9efc7d85a895e6440ef828"
1029 | integrity sha512-Ro1US5B5mtyZMM+NqW/0fqcBf9oEO7fG0gYY9FY+BVGo4KaonVsplFfuYx3pZ/GLCQfYE5cONduILLktsYjUpQ==
1030 | dependencies:
1031 | lodash-es "4"
1032 |
1033 | lilconfig@^2.0.5, lilconfig@^2.1.0:
1034 | version "2.1.0"
1035 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52"
1036 | integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==
1037 |
1038 | lines-and-columns@^1.1.6:
1039 | version "1.2.4"
1040 | resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632"
1041 | integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
1042 |
1043 | lodash-es@4:
1044 | version "4.17.21"
1045 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee"
1046 | integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==
1047 |
1048 | lodash.castarray@^4.4.0:
1049 | version "4.4.0"
1050 | resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115"
1051 | integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==
1052 |
1053 | lodash.isplainobject@^4.0.6:
1054 | version "4.0.6"
1055 | resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb"
1056 | integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==
1057 |
1058 | lodash.merge@^4.6.2:
1059 | version "4.6.2"
1060 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
1061 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
1062 |
1063 | lodash@^4.17.21:
1064 | version "4.17.21"
1065 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
1066 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
1067 |
1068 | loose-envify@^1.1.0, loose-envify@^1.4.0:
1069 | version "1.4.0"
1070 | resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
1071 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
1072 | dependencies:
1073 | js-tokens "^3.0.0 || ^4.0.0"
1074 |
1075 | lowlight@1.12.1:
1076 | version "1.12.1"
1077 | resolved "https://registry.yarnpkg.com/lowlight/-/lowlight-1.12.1.tgz#014acf8dd73a370e02ff1cc61debcde3bb1681eb"
1078 | integrity sha512-OqaVxMGIESnawn+TU/QMV5BJLbUghUfjDWPAtFqDYDmDtr4FnB+op8xM+pR7nKlauHNUHXGt0VgWatFB8voS5w==
1079 | dependencies:
1080 | fault "^1.0.2"
1081 | highlight.js "~9.15.0"
1082 |
1083 | match-sorter@^6.0.2:
1084 | version "6.3.1"
1085 | resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda"
1086 | integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw==
1087 | dependencies:
1088 | "@babel/runtime" "^7.12.5"
1089 | remove-accents "0.4.2"
1090 |
1091 | merge2@^1.3.0:
1092 | version "1.4.1"
1093 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
1094 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
1095 |
1096 | micromatch@^4.0.4, micromatch@^4.0.5:
1097 | version "4.0.5"
1098 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
1099 | integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
1100 | dependencies:
1101 | braces "^3.0.2"
1102 | picomatch "^2.3.1"
1103 |
1104 | microseconds@0.2.0:
1105 | version "0.2.0"
1106 | resolved "https://registry.yarnpkg.com/microseconds/-/microseconds-0.2.0.tgz#233b25f50c62a65d861f978a4a4f8ec18797dc39"
1107 | integrity sha512-n7DHHMjR1avBbSpsTBj6fmMGh2AGrifVV4e+WYc3Q9lO+xnSZ3NyhcBND3vzzatt05LFhoKFRxrIyklmLlUtyA==
1108 |
1109 | minimatch@^3.0.4, minimatch@^3.1.1:
1110 | version "3.1.2"
1111 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1112 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
1113 | dependencies:
1114 | brace-expansion "^1.1.7"
1115 |
1116 | ms@2.1.2:
1117 | version "2.1.2"
1118 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
1119 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
1120 |
1121 | mz@^2.7.0:
1122 | version "2.7.0"
1123 | resolved "https://registry.yarnpkg.com/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
1124 | integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==
1125 | dependencies:
1126 | any-promise "^1.0.0"
1127 | object-assign "^4.0.1"
1128 | thenify-all "^1.0.0"
1129 |
1130 | nano-time@1.0.0:
1131 | version "1.0.0"
1132 | resolved "https://registry.yarnpkg.com/nano-time/-/nano-time-1.0.0.tgz#b0554f69ad89e22d0907f7a12b0993a5d96137ef"
1133 | integrity sha512-flnngywOoQ0lLQOTRNexn2gGSNuM9bKj9RZAWSzhQ+UJYaAFG9bac4DW9VHjUAzrOaIcajHybCTHe/bkvozQqA==
1134 | dependencies:
1135 | big-integer "^1.6.16"
1136 |
1137 | nanoid@^3.3.4, nanoid@^3.3.6:
1138 | version "3.3.6"
1139 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c"
1140 | integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==
1141 |
1142 | next@^13.4.12:
1143 | version "13.4.12"
1144 | resolved "https://registry.yarnpkg.com/next/-/next-13.4.12.tgz#809b21ea0aabbe88ced53252c88c4a5bd5af95df"
1145 | integrity sha512-eHfnru9x6NRmTMcjQp6Nz0J4XH9OubmzOa7CkWL+AUrUxpibub3vWwttjduu9No16dug1kq04hiUUpo7J3m3Xw==
1146 | dependencies:
1147 | "@next/env" "13.4.12"
1148 | "@swc/helpers" "0.5.1"
1149 | busboy "1.6.0"
1150 | caniuse-lite "^1.0.30001406"
1151 | postcss "8.4.14"
1152 | styled-jsx "5.1.1"
1153 | watchpack "2.4.0"
1154 | zod "3.21.4"
1155 | optionalDependencies:
1156 | "@next/swc-darwin-arm64" "13.4.12"
1157 | "@next/swc-darwin-x64" "13.4.12"
1158 | "@next/swc-linux-arm64-gnu" "13.4.12"
1159 | "@next/swc-linux-arm64-musl" "13.4.12"
1160 | "@next/swc-linux-x64-gnu" "13.4.12"
1161 | "@next/swc-linux-x64-musl" "13.4.12"
1162 | "@next/swc-win32-arm64-msvc" "13.4.12"
1163 | "@next/swc-win32-ia32-msvc" "13.4.12"
1164 | "@next/swc-win32-x64-msvc" "13.4.12"
1165 |
1166 | node-releases@^2.0.12:
1167 | version "2.0.13"
1168 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d"
1169 | integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==
1170 |
1171 | normalize-path@^3.0.0, normalize-path@~3.0.0:
1172 | version "3.0.0"
1173 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
1174 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
1175 |
1176 | normalize-range@^0.1.2:
1177 | version "0.1.2"
1178 | resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
1179 | integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
1180 |
1181 | object-assign@^4.0.1, object-assign@^4.1.1:
1182 | version "4.1.1"
1183 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1184 | integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1185 |
1186 | object-hash@^3.0.0:
1187 | version "3.0.0"
1188 | resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9"
1189 | integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==
1190 |
1191 | oblivious-set@1.0.0:
1192 | version "1.0.0"
1193 | resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.0.0.tgz#c8316f2c2fb6ff7b11b6158db3234c49f733c566"
1194 | integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==
1195 |
1196 | once@^1.3.0:
1197 | version "1.4.0"
1198 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1199 | integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1200 | dependencies:
1201 | wrappy "1"
1202 |
1203 | parse-entities@^1.1.2:
1204 | version "1.2.2"
1205 | resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-1.2.2.tgz#c31bf0f653b6661354f8973559cb86dd1d5edf50"
1206 | integrity sha512-NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==
1207 | dependencies:
1208 | character-entities "^1.0.0"
1209 | character-entities-legacy "^1.0.0"
1210 | character-reference-invalid "^1.0.0"
1211 | is-alphanumerical "^1.0.0"
1212 | is-decimal "^1.0.0"
1213 | is-hexadecimal "^1.0.0"
1214 |
1215 | path-is-absolute@^1.0.0:
1216 | version "1.0.1"
1217 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1218 | integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1219 |
1220 | path-parse@^1.0.7:
1221 | version "1.0.7"
1222 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1223 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1224 |
1225 | pg-int8@1.0.1:
1226 | version "1.0.1"
1227 | resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c"
1228 | integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==
1229 |
1230 | pg-protocol@*:
1231 | version "1.6.0"
1232 | resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.6.0.tgz#4c91613c0315349363af2084608db843502f8833"
1233 | integrity sha512-M+PDm637OY5WM307051+bsDia5Xej6d9IR4GwJse1qA1DIhiKlksvrneZOYQq42OM+spubpcNYEo2FcKQrDk+Q==
1234 |
1235 | pg-types@^2.2.0:
1236 | version "2.2.0"
1237 | resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3"
1238 | integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==
1239 | dependencies:
1240 | pg-int8 "1.0.1"
1241 | postgres-array "~2.0.0"
1242 | postgres-bytea "~1.0.0"
1243 | postgres-date "~1.0.4"
1244 | postgres-interval "^1.1.0"
1245 |
1246 | picocolors@^1.0.0:
1247 | version "1.0.0"
1248 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
1249 | integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==
1250 |
1251 | picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1:
1252 | version "2.3.1"
1253 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
1254 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
1255 |
1256 | pify@^2.3.0:
1257 | version "2.3.0"
1258 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
1259 | integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==
1260 |
1261 | pirates@^4.0.1:
1262 | version "4.0.6"
1263 | resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9"
1264 | integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
1265 |
1266 | polished@4:
1267 | version "4.2.2"
1268 | resolved "https://registry.yarnpkg.com/polished/-/polished-4.2.2.tgz#2529bb7c3198945373c52e34618c8fe7b1aa84d1"
1269 | integrity sha512-Sz2Lkdxz6F2Pgnpi9U5Ng/WdWAUZxmHrNPoVlm3aAemxoy2Qy7LGjQg4uf8qKelDAUW94F4np3iH2YPf2qefcQ==
1270 | dependencies:
1271 | "@babel/runtime" "^7.17.8"
1272 |
1273 | postcss-import@^15.1.0:
1274 | version "15.1.0"
1275 | resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70"
1276 | integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==
1277 | dependencies:
1278 | postcss-value-parser "^4.0.0"
1279 | read-cache "^1.0.0"
1280 | resolve "^1.1.7"
1281 |
1282 | postcss-js@^4.0.1:
1283 | version "4.0.1"
1284 | resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2"
1285 | integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==
1286 | dependencies:
1287 | camelcase-css "^2.0.1"
1288 |
1289 | postcss-load-config@^4.0.1:
1290 | version "4.0.1"
1291 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-4.0.1.tgz#152383f481c2758274404e4962743191d73875bd"
1292 | integrity sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==
1293 | dependencies:
1294 | lilconfig "^2.0.5"
1295 | yaml "^2.1.1"
1296 |
1297 | postcss-nested@^6.0.1:
1298 | version "6.0.1"
1299 | resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c"
1300 | integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==
1301 | dependencies:
1302 | postcss-selector-parser "^6.0.11"
1303 |
1304 | postcss-selector-parser@6.0.10:
1305 | version "6.0.10"
1306 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
1307 | integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
1308 | dependencies:
1309 | cssesc "^3.0.0"
1310 | util-deprecate "^1.0.2"
1311 |
1312 | postcss-selector-parser@^6.0.11:
1313 | version "6.0.13"
1314 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b"
1315 | integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==
1316 | dependencies:
1317 | cssesc "^3.0.0"
1318 | util-deprecate "^1.0.2"
1319 |
1320 | postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.2.0:
1321 | version "4.2.0"
1322 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
1323 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
1324 |
1325 | postcss@8.4.14:
1326 | version "8.4.14"
1327 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
1328 | integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
1329 | dependencies:
1330 | nanoid "^3.3.4"
1331 | picocolors "^1.0.0"
1332 | source-map-js "^1.0.2"
1333 |
1334 | postcss@^8.4.23, postcss@^8.4.27:
1335 | version "8.4.27"
1336 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.27.tgz#234d7e4b72e34ba5a92c29636734349e0d9c3057"
1337 | integrity sha512-gY/ACJtJPSmUFPDCHtX78+01fHa64FaU4zaaWfuh1MhGJISufJAH4cun6k/8fwsHYeK4UQmENQK+tRLCFJE8JQ==
1338 | dependencies:
1339 | nanoid "^3.3.6"
1340 | picocolors "^1.0.0"
1341 | source-map-js "^1.0.2"
1342 |
1343 | postgres-array@~2.0.0:
1344 | version "2.0.0"
1345 | resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e"
1346 | integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==
1347 |
1348 | postgres-bytea@~1.0.0:
1349 | version "1.0.0"
1350 | resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35"
1351 | integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==
1352 |
1353 | postgres-date@~1.0.4:
1354 | version "1.0.7"
1355 | resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8"
1356 | integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==
1357 |
1358 | postgres-interval@^1.1.0:
1359 | version "1.2.0"
1360 | resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695"
1361 | integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==
1362 | dependencies:
1363 | xtend "^4.0.0"
1364 |
1365 | prismjs@^1.8.4:
1366 | version "1.29.0"
1367 | resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
1368 | integrity sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==
1369 |
1370 | prismjs@~1.17.0:
1371 | version "1.17.1"
1372 | resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be"
1373 | integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==
1374 | optionalDependencies:
1375 | clipboard "^2.0.0"
1376 |
1377 | prop-types@15, prop-types@^15.8.1:
1378 | version "15.8.1"
1379 | resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
1380 | integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
1381 | dependencies:
1382 | loose-envify "^1.4.0"
1383 | object-assign "^4.1.1"
1384 | react-is "^16.13.1"
1385 |
1386 | property-information@^5.0.0:
1387 | version "5.6.0"
1388 | resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.6.0.tgz#61675545fb23002f245c6540ec46077d4da3ed69"
1389 | integrity sha512-YUHSPk+A30YPv+0Qf8i9Mbfe/C0hdPXk1s1jPVToV8pk8BQtpw10ct89Eo7OWkutrwqvT0eicAxlOg3dOAu8JA==
1390 | dependencies:
1391 | xtend "^4.0.0"
1392 |
1393 | queue-microtask@^1.2.2:
1394 | version "1.2.3"
1395 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
1396 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
1397 |
1398 | react-code-blocks@0.0.9-0:
1399 | version "0.0.9-0"
1400 | resolved "https://registry.yarnpkg.com/react-code-blocks/-/react-code-blocks-0.0.9-0.tgz#0c6d04d8a40b74cffe95f24f1a8e62a0fda8c014"
1401 | integrity sha512-jdYJVZwGtsr6WIUaqILy5fkF1acf57YV5s0V3+w5o9v3omYnqBeO6EuZi1Vf2x1hahkYGEedsp46+ofdkYlqyw==
1402 | dependencies:
1403 | "@babel/runtime" "^7.10.4"
1404 | react-syntax-highlighter "^12.2.1"
1405 | styled-components "^5.1.1"
1406 | tslib "^2.0.0"
1407 |
1408 | react-dom@^18.2.0:
1409 | version "18.2.0"
1410 | resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
1411 | integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
1412 | dependencies:
1413 | loose-envify "^1.1.0"
1414 | scheduler "^0.23.0"
1415 |
1416 | react-globe.gl@^2.24.3:
1417 | version "2.24.3"
1418 | resolved "https://registry.yarnpkg.com/react-globe.gl/-/react-globe.gl-2.24.3.tgz#16db22b0b0208b6496a35d2ebd090595ecd5b80d"
1419 | integrity sha512-YdgW+PTErFs7ouR0ukK2A/i0U+NpqyAcQxhKUCrS/tSBPxFkpLv2k66D8hPIgW9fHlE3mk1X5TmOiwKGFY3lzA==
1420 | dependencies:
1421 | globe.gl "^2.29"
1422 | prop-types "15"
1423 | react-kapsule "2"
1424 |
1425 | react-is@^16.13.1, react-is@^16.7.0:
1426 | version "16.13.1"
1427 | resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
1428 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
1429 |
1430 | react-kapsule@2:
1431 | version "2.4.0"
1432 | resolved "https://registry.yarnpkg.com/react-kapsule/-/react-kapsule-2.4.0.tgz#50d296ed2872a6db89f2de176eebb1a4ce2cccb8"
1433 | integrity sha512-w4Yv9CgWdj8kWGQEPNWFGJJ08dYEZHZpiaFR/DgZjCMBNqv9wus2Gy1qvHVJmJbzvAZbq6jdvFC+NYzEqAlNhQ==
1434 | dependencies:
1435 | fromentries "^1.3.2"
1436 | jerrypick "^1.1.1"
1437 |
1438 | react-query@^3.39.3:
1439 | version "3.39.3"
1440 | resolved "https://registry.yarnpkg.com/react-query/-/react-query-3.39.3.tgz#4cea7127c6c26bdea2de5fb63e51044330b03f35"
1441 | integrity sha512-nLfLz7GiohKTJDuT4us4X3h/8unOh+00MLb2yJoGTPjxKs2bc1iDhkNx2bd5MKklXnOD3NrVZ+J2UXujA5In4g==
1442 | dependencies:
1443 | "@babel/runtime" "^7.5.5"
1444 | broadcast-channel "^3.4.1"
1445 | match-sorter "^6.0.2"
1446 |
1447 | react-syntax-highlighter@^12.2.1:
1448 | version "12.2.1"
1449 | resolved "https://registry.yarnpkg.com/react-syntax-highlighter/-/react-syntax-highlighter-12.2.1.tgz#14d78352da1c1c3f93c6698b70ec7c706b83493e"
1450 | integrity sha512-CTsp0ZWijwKRYFg9xhkWD4DSpQqE4vb2NKVMdPAkomnILSmsNBHE0n5GuI5zB+PU3ySVvXvdt9jo+ViD9XibCA==
1451 | dependencies:
1452 | "@babel/runtime" "^7.3.1"
1453 | highlight.js "~9.15.1"
1454 | lowlight "1.12.1"
1455 | prismjs "^1.8.4"
1456 | refractor "^2.4.1"
1457 |
1458 | react@^18.2.0:
1459 | version "18.2.0"
1460 | resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
1461 | integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
1462 | dependencies:
1463 | loose-envify "^1.1.0"
1464 |
1465 | read-cache@^1.0.0:
1466 | version "1.0.0"
1467 | resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774"
1468 | integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==
1469 | dependencies:
1470 | pify "^2.3.0"
1471 |
1472 | readdirp@~3.6.0:
1473 | version "3.6.0"
1474 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7"
1475 | integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==
1476 | dependencies:
1477 | picomatch "^2.2.1"
1478 |
1479 | refractor@^2.4.1:
1480 | version "2.10.1"
1481 | resolved "https://registry.yarnpkg.com/refractor/-/refractor-2.10.1.tgz#166c32f114ed16fd96190ad21d5193d3afc7d34e"
1482 | integrity sha512-Xh9o7hQiQlDbxo5/XkOX6H+x/q8rmlmZKr97Ie1Q8ZM32IRRd3B/UxuA/yXDW79DBSXGWxm2yRTbcTVmAciJRw==
1483 | dependencies:
1484 | hastscript "^5.0.0"
1485 | parse-entities "^1.1.2"
1486 | prismjs "~1.17.0"
1487 |
1488 | regenerator-runtime@^0.14.0:
1489 | version "0.14.0"
1490 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
1491 | integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
1492 |
1493 | remove-accents@0.4.2:
1494 | version "0.4.2"
1495 | resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5"
1496 | integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA==
1497 |
1498 | resolve@^1.1.7, resolve@^1.22.2:
1499 | version "1.22.2"
1500 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f"
1501 | integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==
1502 | dependencies:
1503 | is-core-module "^2.11.0"
1504 | path-parse "^1.0.7"
1505 | supports-preserve-symlinks-flag "^1.0.0"
1506 |
1507 | reusify@^1.0.4:
1508 | version "1.0.4"
1509 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
1510 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
1511 |
1512 | rimraf@3.0.2:
1513 | version "3.0.2"
1514 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
1515 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
1516 | dependencies:
1517 | glob "^7.1.3"
1518 |
1519 | robust-predicates@^3.0.0:
1520 | version "3.0.2"
1521 | resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771"
1522 | integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==
1523 |
1524 | run-parallel@^1.1.9:
1525 | version "1.2.0"
1526 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
1527 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
1528 | dependencies:
1529 | queue-microtask "^1.2.2"
1530 |
1531 | scheduler@^0.23.0:
1532 | version "0.23.0"
1533 | resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe"
1534 | integrity sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==
1535 | dependencies:
1536 | loose-envify "^1.1.0"
1537 |
1538 | select@^1.1.2:
1539 | version "1.1.2"
1540 | resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
1541 | integrity sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==
1542 |
1543 | shallowequal@^1.1.0:
1544 | version "1.1.0"
1545 | resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
1546 | integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==
1547 |
1548 | simplesignal@^2.1.6:
1549 | version "2.1.7"
1550 | resolved "https://registry.yarnpkg.com/simplesignal/-/simplesignal-2.1.7.tgz#8e15978b1f8b44d55bd7d7081dc37b7147cf129f"
1551 | integrity sha512-PEo2qWpUke7IMhlqiBxrulIFvhJRLkl1ih52Rwa+bPjzhJepcd4GIjn2RiQmFSx3dQvsEAgF0/lXMwMN7vODaA==
1552 |
1553 | source-map-js@^1.0.2:
1554 | version "1.0.2"
1555 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
1556 | integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
1557 |
1558 | space-separated-tokens@^1.0.0:
1559 | version "1.1.5"
1560 | resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899"
1561 | integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==
1562 |
1563 | streamsearch@^1.1.0:
1564 | version "1.1.0"
1565 | resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764"
1566 | integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==
1567 |
1568 | styled-components@^5.1.1:
1569 | version "5.3.11"
1570 | resolved "https://registry.yarnpkg.com/styled-components/-/styled-components-5.3.11.tgz#9fda7bf1108e39bf3f3e612fcc18170dedcd57a8"
1571 | integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==
1572 | dependencies:
1573 | "@babel/helper-module-imports" "^7.0.0"
1574 | "@babel/traverse" "^7.4.5"
1575 | "@emotion/is-prop-valid" "^1.1.0"
1576 | "@emotion/stylis" "^0.8.4"
1577 | "@emotion/unitless" "^0.7.4"
1578 | babel-plugin-styled-components ">= 1.12.0"
1579 | css-to-react-native "^3.0.0"
1580 | hoist-non-react-statics "^3.0.0"
1581 | shallowequal "^1.1.0"
1582 | supports-color "^5.5.0"
1583 |
1584 | styled-jsx@5.1.1:
1585 | version "5.1.1"
1586 | resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f"
1587 | integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==
1588 | dependencies:
1589 | client-only "0.0.1"
1590 |
1591 | sucrase@^3.32.0:
1592 | version "3.34.0"
1593 | resolved "https://registry.yarnpkg.com/sucrase/-/sucrase-3.34.0.tgz#1e0e2d8fcf07f8b9c3569067d92fbd8690fb576f"
1594 | integrity sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==
1595 | dependencies:
1596 | "@jridgewell/gen-mapping" "^0.3.2"
1597 | commander "^4.0.0"
1598 | glob "7.1.6"
1599 | lines-and-columns "^1.1.6"
1600 | mz "^2.7.0"
1601 | pirates "^4.0.1"
1602 | ts-interface-checker "^0.1.9"
1603 |
1604 | supports-color@^5.3.0, supports-color@^5.5.0:
1605 | version "5.5.0"
1606 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
1607 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
1608 | dependencies:
1609 | has-flag "^3.0.0"
1610 |
1611 | supports-preserve-symlinks-flag@^1.0.0:
1612 | version "1.0.0"
1613 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
1614 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
1615 |
1616 | tailwindcss@^3.3.3:
1617 | version "3.3.3"
1618 | resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.3.3.tgz#90da807393a2859189e48e9e7000e6880a736daf"
1619 | integrity sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==
1620 | dependencies:
1621 | "@alloc/quick-lru" "^5.2.0"
1622 | arg "^5.0.2"
1623 | chokidar "^3.5.3"
1624 | didyoumean "^1.2.2"
1625 | dlv "^1.1.3"
1626 | fast-glob "^3.2.12"
1627 | glob-parent "^6.0.2"
1628 | is-glob "^4.0.3"
1629 | jiti "^1.18.2"
1630 | lilconfig "^2.1.0"
1631 | micromatch "^4.0.5"
1632 | normalize-path "^3.0.0"
1633 | object-hash "^3.0.0"
1634 | picocolors "^1.0.0"
1635 | postcss "^8.4.23"
1636 | postcss-import "^15.1.0"
1637 | postcss-js "^4.0.1"
1638 | postcss-load-config "^4.0.1"
1639 | postcss-nested "^6.0.1"
1640 | postcss-selector-parser "^6.0.11"
1641 | resolve "^1.22.2"
1642 | sucrase "^3.32.0"
1643 |
1644 | thenify-all@^1.0.0:
1645 | version "1.6.0"
1646 | resolved "https://registry.yarnpkg.com/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726"
1647 | integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==
1648 | dependencies:
1649 | thenify ">= 3.1.0 < 4"
1650 |
1651 | "thenify@>= 3.1.0 < 4":
1652 | version "3.3.1"
1653 | resolved "https://registry.yarnpkg.com/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f"
1654 | integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==
1655 | dependencies:
1656 | any-promise "^1.0.0"
1657 |
1658 | three-conic-polygon-geometry@1:
1659 | version "1.6.1"
1660 | resolved "https://registry.yarnpkg.com/three-conic-polygon-geometry/-/three-conic-polygon-geometry-1.6.1.tgz#72279973322de2eb1781844cb1624b71c883c604"
1661 | integrity sha512-nycXmeeKBiSKWsae/77Z4IjOWnRKuIphFVtJT1Y6yqO0gSwtVVnNcdkMh8wMVlV26zafU4aazHkOSZVPWfpbGA==
1662 | dependencies:
1663 | "@turf/boolean-point-in-polygon" "^6.5"
1664 | d3-array "1 - 3"
1665 | d3-geo "1 - 3"
1666 | d3-geo-voronoi "^2.0"
1667 | d3-scale "1 - 4"
1668 | delaunator "5"
1669 | earcut "2"
1670 |
1671 | three-fatline@^0.6:
1672 | version "0.6.1"
1673 | resolved "https://registry.yarnpkg.com/three-fatline/-/three-fatline-0.6.1.tgz#6593d93939b8c38f2c1d8276e7e4b77df06a265d"
1674 | integrity sha512-H0XwIRNTshpD5zS7iBiatCB5CVaBA4D6+vzpws4R+Wg2d2k49xWpRLA/ayzFeoCa67upRnXCFrHWIIGHyJEIqQ==
1675 |
1676 | three-geojson-geometry@1:
1677 | version "1.3.1"
1678 | resolved "https://registry.yarnpkg.com/three-geojson-geometry/-/three-geojson-geometry-1.3.1.tgz#0e0aa4ffacba9f491024e053875fc1fdeaa127fc"
1679 | integrity sha512-dUBA0R5Xn43JcIr3n0RjBIxMb+zGUoKODAkJfcbL6Am9qZF0PE11+T3ZSQBnlElOpKdwfox9x6cQ59J1Kh7qFQ==
1680 | dependencies:
1681 | d3-geo "1 - 3"
1682 | earcut "2"
1683 |
1684 | three-globe@^2.28:
1685 | version "2.28.0"
1686 | resolved "https://registry.yarnpkg.com/three-globe/-/three-globe-2.28.0.tgz#384935e39f6b8e3cbd1afce0d62f3c337ad7fcdd"
1687 | integrity sha512-p/51NNPfu1N0ReSqtwNVICcNn0H96AsgXt2X/DLWyjKbcKMSWZLYIzA9Px9m1hoYEq1wPscHiHbMPWsv2huUcg==
1688 | dependencies:
1689 | "@tweenjs/tween.js" "18 - 21"
1690 | accessor-fn "1"
1691 | d3-geo "3"
1692 | d3-interpolate "3"
1693 | d3-scale "4"
1694 | data-joint "1"
1695 | earcut "2"
1696 | frame-ticker "1"
1697 | h3-js "4"
1698 | index-array-by "1"
1699 | kapsule "1"
1700 | three-conic-polygon-geometry "1"
1701 | three-fatline "^0.6"
1702 | three-geojson-geometry "1"
1703 | tinycolor2 "1"
1704 |
1705 | three-render-objects@^1.28:
1706 | version "1.28.6"
1707 | resolved "https://registry.yarnpkg.com/three-render-objects/-/three-render-objects-1.28.6.tgz#96386dcafd270e509606691139018c4a093ff495"
1708 | integrity sha512-e1Dls7NbT9XvKByueLRFRFKIAnNRL9sz7Ul318uXkP/f9uZjUFmelgloBAK3PSQ5xJd++FsKCf7ZIteSWNzTpA==
1709 | dependencies:
1710 | "@tweenjs/tween.js" "18 - 21"
1711 | accessor-fn "1"
1712 | kapsule "1"
1713 | polished "4"
1714 |
1715 | "three@>=0.118 <1":
1716 | version "0.155.0"
1717 | resolved "https://registry.yarnpkg.com/three/-/three-0.155.0.tgz#cca9b8ad817830c8b4fdd8f0d9a12a2e413a2672"
1718 | integrity sha512-sNgCYmDijnIqkD/bMfk+1pHg3YzsxW7V2ChpuP6HCQ8NiZr3RufsXQr8M3SSUMjW4hG+sUk7YbyuY0DncaDTJQ==
1719 |
1720 | tiny-emitter@^2.0.0:
1721 | version "2.1.0"
1722 | resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
1723 | integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
1724 |
1725 | tinycolor2@1:
1726 | version "1.6.0"
1727 | resolved "https://registry.yarnpkg.com/tinycolor2/-/tinycolor2-1.6.0.tgz#f98007460169b0263b97072c5ae92484ce02d09e"
1728 | integrity sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==
1729 |
1730 | to-fast-properties@^2.0.0:
1731 | version "2.0.0"
1732 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
1733 | integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==
1734 |
1735 | to-regex-range@^5.0.1:
1736 | version "5.0.1"
1737 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
1738 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
1739 | dependencies:
1740 | is-number "^7.0.0"
1741 |
1742 | ts-interface-checker@^0.1.9:
1743 | version "0.1.13"
1744 | resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699"
1745 | integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==
1746 |
1747 | tslib@^2.0.0:
1748 | version "2.6.2"
1749 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
1750 | integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
1751 |
1752 | tslib@^2.4.0:
1753 | version "2.6.1"
1754 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.1.tgz#fd8c9a0ff42590b25703c0acb3de3d3f4ede0410"
1755 | integrity sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==
1756 |
1757 | unload@2.2.0:
1758 | version "2.2.0"
1759 | resolved "https://registry.yarnpkg.com/unload/-/unload-2.2.0.tgz#ccc88fdcad345faa06a92039ec0f80b488880ef7"
1760 | integrity sha512-B60uB5TNBLtN6/LsgAf3udH9saB5p7gqJwcFfbOEZ8BcBHnGwCf6G/TGiEqkRAxX7zAFIUtzdrXQSdL3Q/wqNA==
1761 | dependencies:
1762 | "@babel/runtime" "^7.6.2"
1763 | detect-node "^2.0.4"
1764 |
1765 | update-browserslist-db@^1.0.11:
1766 | version "1.0.11"
1767 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940"
1768 | integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==
1769 | dependencies:
1770 | escalade "^3.1.1"
1771 | picocolors "^1.0.0"
1772 |
1773 | util-deprecate@^1.0.2:
1774 | version "1.0.2"
1775 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
1776 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
1777 |
1778 | watchpack@2.4.0:
1779 | version "2.4.0"
1780 | resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d"
1781 | integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==
1782 | dependencies:
1783 | glob-to-regexp "^0.4.1"
1784 | graceful-fs "^4.1.2"
1785 |
1786 | wrappy@1:
1787 | version "1.0.2"
1788 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1789 | integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1790 |
1791 | xtend@^4.0.0:
1792 | version "4.0.2"
1793 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
1794 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
1795 |
1796 | yaml@^2.1.1:
1797 | version "2.3.1"
1798 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.1.tgz#02fe0975d23cd441242aa7204e09fc28ac2ac33b"
1799 | integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==
1800 |
1801 | zod@3.21.4:
1802 | version "3.21.4"
1803 | resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db"
1804 | integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw==
1805 |
--------------------------------------------------------------------------------