From d8bfe1b71ac7d267f510cb81def3ee9041045b58 Mon Sep 17 00:00:00 2001 From: Liam Arbuckle Date: Wed, 8 May 2024 12:44:01 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=AA=AD=F0=9F=8F=8B=F0=9F=8F=BD=20?= =?UTF-8?q?=E2=86=9D=20[CPW-12=20GP-18]:=20Working=20on=20packages=20&=20p?= =?UTF-8?q?utting=20stuff=20into=20the=20api=20repo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 14340 -> 14340 bytes database/app.py | 4 +- galaxy/app.py | 34 +++ galaxy/docker-compose.yml | 10 + galaxy/dockerfile | 21 ++ galaxy/lightkurve.py | 39 +++ galaxy/requirements.txt | 5 + packages/classifydata/.gitignore | 2 + packages/classifydata/.npmignore | 2 + packages/classifydata/package.json | 25 ++ packages/classifydata/src/index.ts | 51 ++++ .../classifydata/ssailors-data-v1.0.0.tgz | Bin 0 -> 1611 bytes packages/classifydata/yarn.lock | 233 ++++++++++++++++++ 13 files changed, 424 insertions(+), 2 deletions(-) create mode 100644 galaxy/app.py create mode 100644 galaxy/docker-compose.yml create mode 100644 galaxy/dockerfile create mode 100644 galaxy/lightkurve.py create mode 100644 galaxy/requirements.txt create mode 100644 packages/classifydata/.gitignore create mode 100644 packages/classifydata/.npmignore create mode 100644 packages/classifydata/package.json create mode 100644 packages/classifydata/src/index.ts create mode 100644 packages/classifydata/ssailors-data-v1.0.0.tgz create mode 100644 packages/classifydata/yarn.lock diff --git a/.DS_Store b/.DS_Store index a73eb4094fc86c2a938f486011e59a61dac2d04c..c2d39d9e71f45c5008e420fe9206b407ba174a75 100644 GIT binary patch delta 438 zcmZoEXepTBFB-wXz`)GFAi%(o!;r{O!BFX$lb<~CqVi+|6Bc7epd) z<>V&;#euq*t}-w%^8E(`ph)J%eZKs%s_1%>%8Lu2dUj5hRw?9`tgbe*G}2KpwX~T0 zUQmXydoquZylfA;zOvw=yqx^Jbf7rn45vm}$&ka4>X|d~qVi+|6BbrRpd`y=E@AzR`+fKs zr8ip$U*_5PK!=&pbTf~_X~xaGO3qA-yCxe76>>{eR~wm`8S5w*8cbdzB+J+{`JjM2 zWA9`}6_L$ysvOLd{|Y?c%p$|ivhjfi^JaE~Z!DXQRKG9@18opw$Y4lhC}Kzf(') +def get_user_inventory(user_id): + # Query user inventory from inventoryUSERS table + user_inventory = supabase.table('inventoryUSERS').select('*').eq('owner', user_id).execute() + return jsonify(user_inventory['data']) + +# Main function to run the Flask app +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/galaxy/docker-compose.yml b/galaxy/docker-compose.yml new file mode 100644 index 00000000..899ae582 --- /dev/null +++ b/galaxy/docker-compose.yml @@ -0,0 +1,10 @@ +version: '3.8' + +services: + web: + build: . + ports: + - "5001:5000" + environment: + - SUPABASE_URL=https://qwbufbmxkjfaikoloudl.supabase.co + - SUPABASE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InF3YnVmYm14a2pmYWlrb2xvdWRsIiwicm9sZSI6ImFub24iLCJpYXQiOjE2Njk5NDE3NTksImV4cCI6MTk4NTUxNzc1OX0.RNz5bvsVwLvfYpZtUjy0vBPcho53_VS2AIVzT8Fm-lk diff --git a/galaxy/dockerfile b/galaxy/dockerfile new file mode 100644 index 00000000..a1fecc58 --- /dev/null +++ b/galaxy/dockerfile @@ -0,0 +1,21 @@ +# Use an official Python runtime as a parent image +FROM python:3.9-slim + +# Set the working directory in the container +WORKDIR /app + +# Add the current directory contents into the container at /app +ADD . /app + +# Install any needed packages specified in requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +# Make port 5000 available to the world outside this container +EXPOSE 5000 + +# Define environment variable +ENV FLASK_APP=app.py +ENV FLASK_RUN_HOST=0.0.0.0 + +# Run app.py when the container launches +CMD ["flask", "run"] diff --git a/galaxy/lightkurve.py b/galaxy/lightkurve.py new file mode 100644 index 00000000..2223502a --- /dev/null +++ b/galaxy/lightkurve.py @@ -0,0 +1,39 @@ +from flask import Flask, request, jsonify +import lightkurve as lk +import logging +import numpy as np + +app = Flask(__name__) + +@app.route('/lightcurve/summary', methods=['POST']) +def get_lightcurve_summary(): + try: + request_data = request.get_json() + if not request_data or 'tic_id' not in request_data: + return jsonify({'error': 'Missing required field "tic_id"'}), 400 + + tic_id = request_data['tic_id'] + if not tic_id.startswith("TIC "): + return jsonify({'error': 'Invalid TIC ID format'}), 400 + + lightcurve_data = lk.search_lightcurve(tic_id).download() + if lightcurve_data is None: + return jsonify({'error': 'No light curve found'}), 404 + + flux_values = lightcurve_data.flux.value + statistics_summary = { + 'mean': float(np.mean(flux_values)), + 'median': float(np.median(flux_values)), + 'standard_deviation': float(np.std(flux_values)), + 'peak_to_peak': float(np.ptp(flux_values)), + 'interquartile_range': float(np.percentile(flux_values, 75) - np.percentile(flux_values, 25)), + } + + return jsonify(statistics_summary) + + except Exception as e: + logging.error(f"Error processing request: {str(e)}") + return jsonify({'error': str(e)}), 500 + +if __name__ == '__main__': + app.run(debug=True) \ No newline at end of file diff --git a/galaxy/requirements.txt b/galaxy/requirements.txt new file mode 100644 index 00000000..10bfddc4 --- /dev/null +++ b/galaxy/requirements.txt @@ -0,0 +1,5 @@ +flask +psycopg2-binary +Flask-SQLAlchemy +Flask-CORS +supabase-py \ No newline at end of file diff --git a/packages/classifydata/.gitignore b/packages/classifydata/.gitignore new file mode 100644 index 00000000..76bf3046 --- /dev/null +++ b/packages/classifydata/.gitignore @@ -0,0 +1,2 @@ +/node_modules +.git diff --git a/packages/classifydata/.npmignore b/packages/classifydata/.npmignore new file mode 100644 index 00000000..76bf3046 --- /dev/null +++ b/packages/classifydata/.npmignore @@ -0,0 +1,2 @@ +/node_modules +.git diff --git a/packages/classifydata/package.json b/packages/classifydata/package.json new file mode 100644 index 00000000..cefb03de --- /dev/null +++ b/packages/classifydata/package.json @@ -0,0 +1,25 @@ +{ + "name": "ssailors-data", + "version": "1.0.0", + "description": "Fetch citizen science data for use in your own tools, formulated & populated the Star Sailors way", + "main": "index.js", + "scripts": { + "build": "next build", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/signal-k/sytizen.git" + }, + "author": "Signal Kinetics PTY LTD, Copernic Space Inc, Liam Arbuckle, Rhys Campbell, Manu Olariu", + "license": "MIT", + "bugs": { + "url": "https://github.com/signal-k/sytizen/issues" + }, + "homepage": "https://github.com/signal-k/sytizen#readme", + "dependencies": { + "@supabase/auth-helpers-react": "^0.5.0", + "axios": "^1.6.8", + "react": "^18.3.1" + } +} diff --git a/packages/classifydata/src/index.ts b/packages/classifydata/src/index.ts new file mode 100644 index 00000000..269da8b9 --- /dev/null +++ b/packages/classifydata/src/index.ts @@ -0,0 +1,51 @@ +import React, { useState, useEffect } from "react"; +import axios from "axios"; + +export const RoverImage = ({ date, rover, onImageMetadataChange }: { date: string; rover: string; onImageMetadataChange: string; }) => { + const [imageUrl, setImageUrl] = useState(''); + const apiKey = 'iT0FQTZKpvadCGPzerqXdO5F4b62arNBOP0dtkXE'; + + const [imageMetadata, setImageMetadata] = useState(''); + const [metadata, setMetadata] = useState(''); + + useEffect(() => { + const apiUrl = `https://api.nasa.gov/mars-photos/api/v1/rovers/${rover}/photos?sol=${date}&api_key=${apiKey}`; + + axios.get(apiUrl) + .then((response) => { + if (response.data.photos && response.data.photos.length > 0) { + const firstImageMetadata = response.data.photos[0]; + // setImageUrl(firstImageMetadata.img_src || ''); + const firstImage = response.data.photos[0].img_src; + setImageUrl(firstImage); + const metadataText = JSON.stringify(firstImageMetadata, null, 2); + setImageMetadata(metadataText); + setMetadata(metadataText) + // onImageMetadataChange(metadataText); + } else { + setImageUrl('No images found for the given date & rover.'); + setImageMetadata('No images found for the given date & rover' + JSON.stringify(response)); + } + }) + .catch((error) => { + setImageUrl('An error occurred while fetching the image'); + setImageMetadata('Error fetching image'); + console.error(error); + }); + }, [date, rover, onImageMetadataChange]); +}; + +/* + {/*

Your Rover Photo

+

Date: {date}

+

Rover model: {rover}

+ {imageUrl ? ( + <> + Rover image + {/* + {/*
{imageUrl}
+ + ) : ( +

Loading...

+ )} +*/ \ No newline at end of file diff --git a/packages/classifydata/ssailors-data-v1.0.0.tgz b/packages/classifydata/ssailors-data-v1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..424c2181dcee6509ad01758f46c3ddc7ab61e143 GIT binary patch literal 1611 zcmV-R2DJGfiwFP!000006YUslbK5qopYtnl+AeWAMGsrH^X|H=-DQ1cO?I~}>pEJZ zZ7!0ikyIMj)qfvI$`%nd+l4*s)Af9B2bn8y3Vq3{}af{_`6O@uhcEc_>lMqCjNfM^Y7yS zDPR)+>g)U^dHS(spg%f6urmIBFdzR`7vtaZy)NQEwjy=#g~xxq24JNmq1G-~QW6$( zA-5u;h-GWkB^8qKRAYU|bG&jkqB0aLQx)bhRpAgqrr2AWf(#i=LkfBk=yL(Nq`*=b z@mv6ZlY-(rmbOMEc}x_IU>!1^RsU*8;S^&6r=>FRhKx$731LPYOCx%PJGGoGHIazW zw%|lBXK|$IbV`GAWS1yKrP3H04mtd8JraV8T}U}-1jvkrtj}oly9Mj(K(Ckr-$Ks9 z2of~ok|{1mGg)es8P5%vn#jmST+MtlR4S9Zu8aS}yyt{GaU~n1B;LAk<;Zx;(VSBe zBv(T&H2bNcgC{JdiiHwR&VGfbXW!d!#4{>V7Q!hWSqjH#Xv0%R5_l+jd3X_18(t1a z5{^ic^=KU1@QkE6yoiZldFip3g*25$?`Own-DZ{!}tbOkD_qkz`|D_0TO~wcHf32pj|1JF7)&EZb3;my~1m={F zF5{;9?=_oC{a>@w4esjyr-1WuRsF32O{u^Nyk#mT!KF$;5))le#)WNZ2dguth4@{+?FY@BR^W9tjoxmW z-fDU@+9px2Pif#acZgNkQ^jIVqOB0)#FH(-b1c=1s7I5 zDd=DuyHlf83)9=SS86p=r0iIp@klQj(LTvz>?SNG&vMb@-<9o*)h995Y1V@Q zz8SjMgoDHC>QHKN&NThc0Lfr-HQ`1QWw8G+CbBnB~CP)iJi>6Pxg5-&$gPwuuNmr zXv~?tU;uW;gRjRr zF2y=hzP_L%9G8A7{;agoU^ap?psG>I-kf4IIC!~F8x28ahWgPZohQKhFeP!c^-igU zzLeL^J26cMY6yqmZPqL|b4Q;Exfls_P2Gy;-mAUZbzFCT4>hhY=&)q)8j~r!dk53V z-lWZHEhfv=uT!tedxcJR*O`7BIe;HeUp#lpqr>{68hdO=bNz_WT(Ro%)^5xTSj|&U zzRKmbNB$;B1yF2+R_up)&uu*CU=A!MGoGiBd9%{5Py=>JQ{^&9mJV1*R5)xjsD9a6al966f0%-y1s;aE5Hx}}Ll#r$>nA~-CMG(92Yj6-&{CeA$5Uy$i2U?$k@FP`@`npulnuL zlp{FNXKUZZ$py;&?C^V2cFHWb?`GHVC4Yi_dW>Xcg4A@dC~{J6-~lwQ*}Z>QyMOla zoCBWogDH0bBvuDjDbq|^;MOx6BMspZPZi#CPPkN$xk#p`{a`%#E6TN=vh-qJmb+xc z!qSwFZ5C_y-Ot?<-N7B)!5w@F@DCzb J0gnJ8008U!H?;r& literal 0 HcmV?d00001 diff --git a/packages/classifydata/yarn.lock b/packages/classifydata/yarn.lock new file mode 100644 index 00000000..989d2ced --- /dev/null +++ b/packages/classifydata/yarn.lock @@ -0,0 +1,233 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@next/env@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.2.3.tgz#d6def29d1c763c0afb397343a15a82e7d92353a0" + integrity sha512-W7fd7IbkfmeeY2gXrzJYDx8D2lWKbVoTIj1o1ScPHNzvp30s1AuoEFSdr39bC5sjxJaxTtq3OTCZboNp0lNWHA== + +"@next/swc-darwin-arm64@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.3.tgz#db1a05eb88c0224089b815ad10ac128ec79c2cdb" + integrity sha512-3pEYo/RaGqPP0YzwnlmPN2puaF2WMLM3apt5jLW2fFdXD9+pqcoTzRk+iZsf8ta7+quAe4Q6Ms0nR0SFGFdS1A== + +"@next/swc-darwin-x64@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.3.tgz#a3f8af05b5f9a52ac3082e66ac29e125ab1d7b9c" + integrity sha512-6adp7waE6P1TYFSXpY366xwsOnEXM+y1kgRpjSRVI2CBDOcbRjsJ67Z6EgKIqWIue52d2q/Mx8g9MszARj8IEA== + +"@next/swc-linux-arm64-gnu@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.3.tgz#4e63f43879285b52554bfd39e6e0cc78a9b27bbf" + integrity sha512-cuzCE/1G0ZSnTAHJPUT1rPgQx1w5tzSX7POXSLaS7w2nIUJUD+e25QoXD/hMfxbsT9rslEXugWypJMILBj/QsA== + +"@next/swc-linux-arm64-musl@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.3.tgz#ebdaed26214448b1e6f2c3e8b3cd29bfba387990" + integrity sha512-0D4/oMM2Y9Ta3nGuCcQN8jjJjmDPYpHX9OJzqk42NZGJocU2MqhBq5tWkJrUQOQY9N+In9xOdymzapM09GeiZw== + +"@next/swc-linux-x64-gnu@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.3.tgz#19e3bcc137c3b582a1ab867106817e5c90a20593" + integrity sha512-ENPiNnBNDInBLyUU5ii8PMQh+4XLr4pG51tOp6aJ9xqFQ2iRI6IH0Ds2yJkAzNV1CfyagcyzPfROMViS2wOZ9w== + +"@next/swc-linux-x64-musl@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.3.tgz#794a539b98e064169cf0ff7741b2a4fb16adec7d" + integrity sha512-BTAbq0LnCbF5MtoM7I/9UeUu/8ZBY0i8SFjUMCbPDOLv+un67e2JgyN4pmgfXBwy/I+RHu8q+k+MCkDN6P9ViQ== + +"@next/swc-win32-arm64-msvc@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.3.tgz#eda9fa0fbf1ff9113e87ac2668ee67ce9e5add5a" + integrity sha512-AEHIw/dhAMLNFJFJIJIyOFDzrzI5bAjI9J26gbO5xhAKHYTZ9Or04BesFPXiAYXDNdrwTP2dQceYA4dL1geu8A== + +"@next/swc-win32-ia32-msvc@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.3.tgz#7c1190e3f640ab16580c6bdbd7d0e766b9920457" + integrity sha512-vga40n1q6aYb0CLrM+eEmisfKCR45ixQYXuBXxOOmmoV8sYST9k7E3US32FsY+CkkF7NtzdcebiFT4CHuMSyZw== + +"@next/swc-win32-x64-msvc@14.2.3": + version "14.2.3" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.3.tgz#2be4e39ee25bfbd85be78eea17c0e7751dc4323c" + integrity sha512-Q1/zm43RWynxrO7lW4ehciQVj+5ePBhOK+/K2P7pLFX3JaJ/IZVC69SHidrmZSOkqz7ECIOhhy7XhAFG4JYyHA== + +"@supabase/auth-helpers-react@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@supabase/auth-helpers-react/-/auth-helpers-react-0.5.0.tgz#c75f07df578ed06b6d7d66bb12c43e46501e60ed" + integrity sha512-5QSaV2CGuhDhd7RlQCoviVEAYsP7XnrFMReOcBazDvVmqSIyjKcDwhLhWvnrxMOq5qjOaA44MHo7wXqDiF0puQ== + +"@swc/counter@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.3.tgz#cc7463bd02949611c6329596fccd2b0ec782b0e9" + integrity sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ== + +"@swc/helpers@0.5.5": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.5.tgz#12689df71bfc9b21c4f4ca00ae55f2f16c8b77c0" + integrity sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A== + dependencies: + "@swc/counter" "^0.1.3" + tslib "^2.4.0" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios@^1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66" + integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +busboy@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== + dependencies: + streamsearch "^1.1.0" + +caniuse-lite@^1.0.30001579: + version "1.0.30001616" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001616.tgz#4342712750d35f71ebba9fcac65e2cf8870013c3" + integrity sha512-RHVYKov7IcdNjVHJFNY/78RdG4oGVjbayxv8u5IO74Wv7Hlq4PnJE6mo/OjFijjVFNy5ijnCt6H3IIo4t+wfEw== + +client-only@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +follow-redirects@^1.15.6: + version "1.15.6" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" + integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== + +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +graceful-fs@^4.2.11: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +loose-envify@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +nanoid@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + +next@^14.2.3: + version "14.2.3" + resolved "https://registry.yarnpkg.com/next/-/next-14.2.3.tgz#f117dd5d5f20c307e7b8e4f9c1c97d961008925d" + integrity sha512-dowFkFTR8v79NPJO4QsBUtxv0g9BrS/phluVpMAt2ku7H+cbcBJlopXjkWlwxrk/xGqMemr7JkGPGemPrLLX7A== + dependencies: + "@next/env" "14.2.3" + "@swc/helpers" "0.5.5" + busboy "1.6.0" + caniuse-lite "^1.0.30001579" + graceful-fs "^4.2.11" + postcss "8.4.31" + styled-jsx "5.1.1" + optionalDependencies: + "@next/swc-darwin-arm64" "14.2.3" + "@next/swc-darwin-x64" "14.2.3" + "@next/swc-linux-arm64-gnu" "14.2.3" + "@next/swc-linux-arm64-musl" "14.2.3" + "@next/swc-linux-x64-gnu" "14.2.3" + "@next/swc-linux-x64-musl" "14.2.3" + "@next/swc-win32-arm64-msvc" "14.2.3" + "@next/swc-win32-ia32-msvc" "14.2.3" + "@next/swc-win32-x64-msvc" "14.2.3" + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +react@^18.3.1: + version "18.3.1" + resolved "https://registry.yarnpkg.com/react/-/react-18.3.1.tgz#49ab892009c53933625bd16b2533fc754cab2891" + integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== + dependencies: + loose-envify "^1.1.0" + +source-map-js@^1.0.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" + integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== + +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + +tslib@^2.4.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==