diff --git a/App.js b/App.js new file mode 100644 index 000000000..93571776d --- /dev/null +++ b/App.js @@ -0,0 +1,28 @@ +import React from "react"; +import ReactDOM from "react-dom/client"; +import styles from "./App.module.css"; +import Table from "./Assignment/Table"; +import { api } from "./Assignment/constants"; + +const colDefs = [ + { headerName: "S.No.", field: "s.no" }, + { + headerName: "Percentage funded", + field: "percentage.funded", + }, + { + headerName: "Amount pledged", + field: "amt.pledged", + }, +]; + +const App = () => { + return ( +
+ + + ); +}; + +const root = ReactDOM.createRoot(document.getElementById("root")); +root.render(); diff --git a/App.module.css b/App.module.css new file mode 100644 index 000000000..544e3200b --- /dev/null +++ b/App.module.css @@ -0,0 +1,7 @@ + + +.app { + display: flex; + align-items: center; + justify-content: center; +} \ No newline at end of file diff --git a/Assignment/Components/Header.js b/Assignment/Components/Header.js new file mode 100644 index 000000000..da9c906ff --- /dev/null +++ b/Assignment/Components/Header.js @@ -0,0 +1,27 @@ +import React from "react"; +import PropTypes from "prop-types"; +import styles from "./Header.module.css"; + +const Header = ({ colDefs }) => { + return ( + + + {colDefs.map((def) => ( + + ))} + + + ); +}; + +Header.propTypes = { + colDefs: PropTypes.arrayOf( + PropTypes.shape({ + headerName: PropTypes.string.isRequired, + }) + ).isRequired, +}; + +export default React.memo(Header); diff --git a/Assignment/Components/Header.module.css b/Assignment/Components/Header.module.css new file mode 100644 index 000000000..40b4f4887 --- /dev/null +++ b/Assignment/Components/Header.module.css @@ -0,0 +1,3 @@ +.th { + border: 1px solid; +} \ No newline at end of file diff --git a/Assignment/Table.js b/Assignment/Table.js new file mode 100644 index 000000000..b035d37b9 --- /dev/null +++ b/Assignment/Table.js @@ -0,0 +1,118 @@ +import React, { useMemo, useState } from "react"; +import PropTypes from "prop-types"; +import styles from "./Table.module.css"; +import { useFetch } from "./hooks/useFetch"; +import Header from "./Components/Header"; +import { NEXT, PREV } from "./constants"; + +const Table = ({ colDefs, api, rowsPerPage, title }) => { + const totalButtons = 5; + const { data, error, loading } = useFetch(api); + const [currentPage, setCurrentPage] = useState(0); + const _ = useMemo(() => new Array(totalButtons).fill(0), []); + + if (loading) { + return
Loading...
; + } + if (error) { + return
something went wrong please try again...
; + } + if (!data) { + return
No data available
; + } + + const renderData = data.slice( + currentPage * rowsPerPage, + (currentPage + 1) * rowsPerPage + ); + + const isNextDisabled = (currentPage + 1) * rowsPerPage >= data.length; + const isPrevDisabled = currentPage === 0; + const totalPages = Math.floor(data.length / rowsPerPage); + + const nextPage = () => { + if (!isNextDisabled) { + setCurrentPage(currentPage + 1); + } + }; + + const prevPage = () => { + if (!isPrevDisabled) { + setCurrentPage(currentPage - 1); + } + }; + + return ( +
+

{title}

+
+
+ {def.headerName} +
+
+
+ {renderData.map((item) => ( + + {colDefs.map((col, index) => ( + + ))} + + ))} + +
+ {item[col.field]} +
+
+
+ + + {_.map((_, index) => { + let iterator; + if (currentPage < 3) { + iterator = -1 * currentPage; + } else if (currentPage + 1 === totalPages) { + iterator = -1 * totalButtons + totalPages - currentPage + 1; + } else if (currentPage === totalPages) { + iterator = -1 * totalButtons + 1; + } else { + iterator = -1 * Math.floor(totalButtons / 2); + } + if (index + currentPage + iterator > totalPages) { + return null; + } + return ( + + ); + })} + + +
+ + ); +}; + +Table.propTypes = { + colDefs: PropTypes.arrayOf( + PropTypes.shape({ + field: PropTypes.string.isRequired, + headerName: PropTypes.string.isRequired, + }) + ).isRequired, + api: PropTypes.string.isRequired, + rowsPerPage: PropTypes.number.isRequired, + title: PropTypes.string.isRequired, +}; + +export default React.memo(Table); diff --git a/Assignment/Table.module.css b/Assignment/Table.module.css new file mode 100644 index 000000000..2dc63bacf --- /dev/null +++ b/Assignment/Table.module.css @@ -0,0 +1,26 @@ +.table { + border-collapse: collapse; + border: 1px solid; + margin-bottom: 10px; +} + +.tableContainer { + min-height: 135px; +} + +.buttonContainer{ + display: flex; + justify-content: space-around; +} + +.td { + border: 1px solid; +} + +.header { + text-align: center; +} + +.currentPage { + background-color: aquamarine; +} diff --git a/Assignment/constants.js b/Assignment/constants.js new file mode 100644 index 000000000..74a2f954f --- /dev/null +++ b/Assignment/constants.js @@ -0,0 +1,6 @@ +export const api = + "https://raw.githubusercontent.com/saaslabsco/frontend-assignment/refs/heads/master/frontend-assignment.json"; + + +export const PREV = "Prev"; +export const NEXT = "Next"; diff --git a/Assignment/hooks/useFetch.js b/Assignment/hooks/useFetch.js new file mode 100644 index 000000000..bd0ef1844 --- /dev/null +++ b/Assignment/hooks/useFetch.js @@ -0,0 +1,26 @@ +import { useState, useEffect } from "react"; + +export const useFetch = (api) => { + const [data, setData] = useState(null); + const [error, setError] = useState(false); + const [loading, setLoading] = useState(false); + + useEffect(() => { + const getData = async () => { + try { + setLoading(true); + const jsonResponse = await fetch(api); + const result = await jsonResponse.json(); + setData(result); + } catch (e) { + setError(true); + } finally { + setLoading(false); + } + }; + + getData(); + }, [api]); + + return { data, error, loading }; +}; diff --git a/Readme.md b/Readme.md index dfae955b0..eccc6c1b7 100644 --- a/Readme.md +++ b/Readme.md @@ -1,51 +1,5 @@ -# Frontend Assignment +# how to run the project? +# run "npm install" -## Assignment - -You are required to fetch the details of the highly-rated kickstarter projects by implementing an AJAX call to their APIs. - -Use the web API (link : https://raw.githubusercontent.com/saaslabsco/frontend-assignment/refs/heads/master/frontend-assignment.json) ) to fetch the details of specific projects. - -## Minimum Requirements - -1. Create a table and list the following three attributes for all the projects: - * S.No. - * Percentage funded - * Amount pledged - -1. Ensure that the UI is aesthetically pleasing to gain extra points. -1. Implement pagination with maximum 5 records per page. -1. UX should remain like you would see on an ecommerce website (Amazon, Flipkart, etc.) and edge cases should not break. -1. Take care of last page. - -### Expected Output format - -| **S.No.** | **Percentage funded** | **Amount pledged** | -|-----------|-----------------------|--------------------| -| 0 | 186 | 15283 | - - -## Good to have - -1. Unit tests. -1. Accessibility. - - -## Steps for submission - -1. Fork this repo. -1. Do changes to the above assignment. -1. Email the assignment back to us with: - 1. Link of the open source repo. - 1. Link of the assignment hosted online. (You can use any free tools to host this assignment, eg. vercel, netlify or heroku). It should be accessible online for atleast 7 days. - - -## Frameworks Allowed -1. React/Vanilla JS for JavaScript -1. No framework for CSS. Only Raw CSS is allowed. - -## Note - -1. Result on platforms like codesandbox, replit are not accepted. -1. Private unaccessible links will lead to rejection. \ No newline at end of file +# run "npm start" \ No newline at end of file diff --git a/frontend-assignment.json b/frontend-assignment.json deleted file mode 100644 index b2a0722b0..000000000 --- a/frontend-assignment.json +++ /dev/null @@ -1,1618 +0,0 @@ -[ - { - "s.no": 0, - "amt.pledged": 15823, - "blurb": "'Catalysts, Explorers & Secret Keepers: Women of Science Fiction' is a take-home exhibit & anthology by the Museum of Science Fiction.", - "by": "Museum of Science Fiction", - "country": "US", - "currency": "usd", - "end.time": "2016-11-01T23:59:00-04:00", - "location": "Washington, DC", - "percentage.funded": 186, - "num.backers": "219382", - "state": "DC", - "title": "Catalysts, Explorers & Secret Keepers: Women of SF", - "type": "Town", - "url": "/projects/1608905146/catalysts-explorers-and-secret-keepers-women-of-sf?ref=discovery" - }, - { - "s.no": 1, - "amt.pledged": 6859, - "blurb": "A unique handmade picture book for kids & art lovers about a nervous monster who finds his courage with the help of a brave little girl", - "by": "Tyrone Wells & Broken Eagle, LLC", - "country": "US", - "currency": "usd", - "end.time": "2016-11-25T01:13:33-05:00", - "location": "Portland, OR", - "percentage.funded": 8, - "num.backers": "154926", - "state": "OR", - "title": "The Whatamagump (a hand-crafted story picture book)", - "type": "Town", - "url": "/projects/thewhatamagump/the-whatamagump-a-hand-crafted-story-picture-book?ref=discovery" - }, - { - "s.no": 2, - "amt.pledged": 17906, - "blurb": "A horror comedy about a repairman who was in the wrong place at the wrong time thanks to mad scientists and monsters.", - "by": "Tessa Stone", - "country": "US", - "currency": "usd", - "end.time": "2016-11-23T23:00:00-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 102, - "num.backers": "105857", - "state": "CA", - "title": "Not Drunk Enough Volume 1!", - "type": "Town", - "url": "/projects/1890925998/not-drunk-enough-volume-1?ref=discovery" - }, - { - "s.no": 3, - "amt.pledged": 67081, - "blurb": "The Johnny Wander autobio omnibus you've all been asking for! Over 400 pages of comics and extras over the years!", - "by": "Johnny Wander", - "country": "US", - "currency": "usd", - "end.time": "2016-11-01T23:50:00-04:00", - "location": "Brooklyn, NY", - "percentage.funded": 191, - "num.backers": "91585", - "state": "NY", - "title": "Our Cats Are More Famous Than Us: A Johnny Wander Omnibus", - "type": "County", - "url": "/projects/746734715/our-cats-are-more-famous-than-us-a-johnny-wander-o?ref=discovery" - }, - { - "s.no": 4, - "amt.pledged": 32772, - "blurb": "The vision for this project is the establishment of a women-owned craft brewery in Rwanda.", - "by": "Beau's All Natural Brewing Company", - "country": "RW", - "currency": "cad", - "end.time": "2016-11-18T23:05:48-05:00", - "location": "Kigali, Rwanda", - "percentage.funded": 34, - "num.backers": "87142", - "state": "Kigali Province", - "title": "The Rwanda Craft Brewery Project", - "type": "Town", - "url": "/projects/beaus/the-rwanda-craft-brewery-project?ref=discovery" - }, - { - "s.no": 5, - "amt.pledged": 2065, - "blurb": "In Shiraz, traditional and modern family recipes tell a story of inherited love through delicious Persian comfort food", - "by": "Shireen Rahimi", - "country": "US", - "currency": "usd", - "end.time": "2016-11-28T00:00:00-05:00", - "location": "Miami, FL", - "percentage.funded": 114, - "num.backers": "78471", - "state": "FL", - "title": "Shiraz the Cookbook", - "type": "Town", - "url": "/projects/844448164/shiraz-the-cookbook?ref=discovery" - }, - { - "s.no": 6, - "amt.pledged": 577844, - "blurb": "Polygons is the origami-like measuring spoon that lays flat and folds to 4 different sizes to fit your cooking and baking needs ", - "by": "Polygons Design", - "country": "US", - "currency": "usd", - "end.time": "2016-11-20T11:57:34-05:00", - "location": "Wilmington, DE", - "percentage.funded": 5778, - "num.backers": "74405", - "state": "DE", - "title": "Polygons | The Flat 4-in-1 Measuring Spoon", - "type": "Town", - "url": "/projects/stillalive/polygons-the-flat-4-in-1-measuring-spoon?ref=discovery" - }, - { - "s.no": 7, - "amt.pledged": 4952, - "blurb": "This hardcover coffee table book showcases all the whimsical illustrations from professional book illustrator Lee White.", - "by": "Lee White", - "country": "US", - "currency": "usd", - "end.time": "2016-11-28T15:00:00-05:00", - "location": "Portland, OR", - "percentage.funded": 42, - "num.backers": "73986", - "state": "OR", - "title": "Illumination: The Art of Lee White", - "type": "Town", - "url": "/projects/987803560/illumination-the-art-of-lee-white?ref=discovery" - }, - { - "s.no": 8, - "amt.pledged": 45959, - "blurb": "A heartfelt film exploring families and relationships between Korean and African American communities set during the LA Riots", - "by": "Justin Chon", - "country": "US", - "currency": "usd", - "end.time": "2016-11-09T19:27:32-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 153, - "num.backers": "73206", - "state": "CA", - "title": "GOOK - A Korean American LA Riots Film", - "type": "Town", - "url": "/projects/2084768431/gook-a-korean-american-la-riots-film?ref=discovery" - }, - { - "s.no": 9, - "amt.pledged": 214035, - "blurb": "A Smartphone Mount That Helps You Capture The Moment With Facial Tracking, Automated Videos and Pictures, Timelapse and Panoramas", - "by": "Stacked", - "country": "US", - "currency": "usd", - "end.time": "2016-10-30T06:21:30-04:00", - "location": "Los Angeles, CA", - "percentage.funded": 611, - "num.backers": "70122", - "state": "CA", - "title": "Picbot - An Automated Motorized Picture And Video Bot", - "type": "Town", - "url": "/projects/1597931194/picbot-an-automated-motorized-picture-and-video-bo?ref=discovery" - }, - { - "s.no": 10, - "amt.pledged": 41025, - "blurb": "Who's watching when a fracked oil pipeline sparks the Standing Rock Sioux Nation to lead the biggest indigenous protest in 100 years?", - "by": "Raviv Ullman", - "country": "US", - "currency": "usd", - "end.time": "2016-11-22T23:30:00-05:00", - "location": "Cannon Ball, ND", - "percentage.funded": 54, - "num.backers": "69320", - "state": "ND", - "title": "Standing Ground - A Documentary Film", - "type": "Town", - "url": "/projects/345639715/standing-ground-a-documentary-film?ref=discovery" - }, - { - "s.no": 11, - "amt.pledged": 45396, - "blurb": "Master your time with a hybrid paper-digital planning system powered by augmented reality. ", - "by": "Evopaper", - "country": "US", - "currency": "usd", - "end.time": "2016-11-26T02:55:00-05:00", - "location": "San Francisco, CA", - "percentage.funded": 129, - "num.backers": "68929", - "state": "CA", - "title": "Slice Planner: First Notebook Connected to Digital Calendars", - "type": "Town", - "url": "/projects/sliceplanner/slice-planner-first-notebook-connected-to-digital?ref=discovery" - }, - { - "s.no": 12, - "amt.pledged": 4621, - "blurb": "Thrills! Chills! The daring show you cannot miss! Step right up and dare to witness a new spin on classic horror...", - "by": "ThunderCrab Studios", - "country": "US", - "currency": "usd", - "end.time": "2016-11-16T00:00:46-05:00", - "location": "Columbus, OH", - "percentage.funded": 30, - "num.backers": "67226", - "state": "OH", - "title": "The Mechanical Dancer - an animated short film", - "type": "Town", - "url": "/projects/23022585/the-mechanical-dancer-an-animated-short-film?ref=discovery" - }, - { - "s.no": 13, - "amt.pledged": 30170, - "blurb": "A collection of landmark American films directed by women, digitally restored from archive film elements, loaded with bonus content.", - "by": "Kino Lorber", - "country": "US", - "currency": "usd", - "end.time": "2016-11-18T16:22:53-05:00", - "location": "New York, NY", - "percentage.funded": 68, - "num.backers": "66673", - "state": "NY", - "title": "PIONEERS: FIRST WOMEN FILMMAKERS", - "type": "Town", - "url": "/projects/kinolorber/pioneers-first-women-filmmakers?ref=discovery" - }, - { - "s.no": 14, - "amt.pledged": 13138, - "blurb": "A graphic novel about two magical ladies in love.", - "by": "Pat Shand", - "country": "US", - "currency": "usd", - "end.time": "2016-11-02T20:00:00-04:00", - "location": "New York, NY", - "percentage.funded": 65, - "num.backers": "64867", - "state": "NY", - "title": "Destiny, NY", - "type": "Town", - "url": "/projects/248241887/destiny-ny-a-graphic-novel?ref=discovery" - }, - { - "s.no": 15, - "amt.pledged": 1751, - "blurb": "In this dance film, a teenage girl must convince herself and her mother she has what it takes to make it as a professional ballerina.", - "by": "Tati & Anthony Vogt", - "country": "US", - "currency": "usd", - "end.time": "2016-11-25T08:25:18-05:00", - "location": "Phoenix, AZ", - "percentage.funded": 11, - "num.backers": "63758", - "state": "AZ", - "title": "On Pointe", - "type": "Town", - "url": "/projects/onpointefilm/on-pointe?ref=discovery" - }, - { - "s.no": 16, - "amt.pledged": 37857, - "blurb": "This ain't cherry chapstick. It's lip balm... for men. Handmade by the fellas that started it.", - "by": "Chad Lieske", - "country": "US", - "currency": "usd", - "end.time": "2016-11-10T10:03:09-05:00", - "location": "Venice, Los Angeles, CA", - "percentage.funded": 135, - "num.backers": "63416", - "state": "CA", - "title": "Lucky Bastard Co. Original Handmade Gentlemen's Lip Balm", - "type": "Suburb", - "url": "/projects/1433655996/lucky-bastard-co-original-handmade-gentlemens-lip?ref=discovery" - }, - { - "s.no": 17, - "amt.pledged": 30191, - "blurb": "Ready, set, fold ! A new way to do papercraft in instant. Using colorful high quality, super solid and water drop resistant paper.", - "by": "DT WORKSHOP", - "country": "FR", - "currency": "eur", - "end.time": "2016-11-02T18:59:00-04:00", - "location": "Paris, France", - "percentage.funded": 150, - "num.backers": "62642", - "state": "Ile-de-France", - "title": "Introducing 3 DIY papercraft kits no need glue or scissors", - "type": "Town", - "url": "/projects/dtworkshop/introducing-3-diy-papercraft-kits-without-glue-or?ref=discovery" - }, - { - "s.no": 18, - "amt.pledged": 110431, - "blurb": "One of the Most Successful Shoes on Kickstarter introduces its Newest & Best Collection for MEN & WOMEN. Handmade in Italy.", - "by": "Kabaccha Shoes", - "country": "US", - "currency": "usd", - "end.time": "2016-11-30T22:00:00-05:00", - "location": "Miami Beach, FL", - "percentage.funded": 441, - "num.backers": "61290", - "state": "FL", - "title": "Beautiful Italian Shoes for Men & Women", - "type": "Town", - "url": "/projects/1798878014/beautiful-italian-shoes-for-men-and-women?ref=discovery" - }, - { - "s.no": 19, - "amt.pledged": 10018, - "blurb": "Map T-shirts and map posters showing detailed cities all over the world – now with over 230 locations.", - "by": "Alex Szabo-Haslam", - "country": "GB", - "currency": "gbp", - "end.time": "2016-11-09T08:56:57-05:00", - "location": "Sheffield, UK", - "percentage.funded": 1001, - "num.backers": "48270", - "state": "England", - "title": "Citee: map T-shirts and map posters", - "type": "Town", - "url": "/projects/szabohaslam/citee-map-t-shirts-and-map-posters?ref=discovery" - }, - { - "s.no": 20, - "amt.pledged": 192915, - "blurb": "Vue is the world's first pair of smart glasses that are designed for everyday use. Offered in prescription, plano, and sunglasses.", - "by": "Vue", - "country": "US", - "currency": "usd", - "end.time": "2016-12-09T20:00:00-05:00", - "location": "San Francisco, CA", - "percentage.funded": 385, - "num.backers": "46520", - "state": "CA", - "title": "Vue: Your Everyday Smart Glasses", - "type": "Town", - "url": "/projects/1093823090/vue-your-everyday-smart-glasses?ref=discovery" - }, - { - "s.no": 21, - "amt.pledged": 2111, - "blurb": "When a naive wish comes true, five misfits must battle real-life movie monsters. A comedy-horror fundraising for a feature film!", - "by": "Cartridge Thunder", - "country": "US", - "currency": "usd", - "end.time": "2016-11-26T11:41:44-05:00", - "location": "Chicago, IL", - "percentage.funded": 2, - "num.backers": "44949", - "state": "IL", - "title": "Journey to Burger Town", - "type": "Town", - "url": "/projects/cartridgethunder/journey-to-burger-town?ref=discovery" - }, - { - "s.no": 22, - "amt.pledged": 7728, - "blurb": "Deep-space oil paintings & fine art prints, featuring breathtaking galaxies, nebulae, and black holes. Art for awesome nerdy people.", - "by": "Cathrin Machin", - "country": "AU", - "currency": "aud", - "end.time": "2016-11-27T22:18:49-05:00", - "location": "Sydney, AU", - "percentage.funded": 193, - "num.backers": "44162", - "state": "NSW", - "title": "Beautifully Nerdy Deep Space Paintings & Prints - FQTQ", - "type": "Town", - "url": "/projects/cathrin/beautifully-nerdy-deep-space-paintings-and-prints?ref=discovery" - }, - { - "s.no": 23, - "amt.pledged": 11590, - "blurb": "Photography book documenting the locations of forty-two reggae record covers photographed in London between 1967 and 1987.", - "by": "Alex Bartsch", - "country": "GB", - "currency": "gbp", - "end.time": "2016-12-06T16:00:00-05:00", - "location": "London, UK", - "percentage.funded": 77, - "num.backers": "42713", - "state": "England", - "title": "Covers: Retracing Reggae Record Sleeves in London", - "type": "Town", - "url": "/projects/1060504029/covers-retracing-reggae-record-sleeves-in-london?ref=discovery" - }, - { - "s.no": 24, - "amt.pledged": 12856, - "blurb": "A guidebook of curious and creative activities to cultivate joy, wonder, and discovery in you and your garden.", - "by": "Gayla Trail of You Grow Girl", - "country": "CA", - "currency": "cad", - "end.time": "2016-11-03T22:00:00-04:00", - "location": "Toronto, Canada", - "percentage.funded": 64, - "num.backers": "41733", - "state": "ON", - "title": "Grow Curious: A Gardener's Creative Activity Book", - "type": "Town", - "url": "/projects/yougrowgirl/grow-curious-a-gardeners-creative-activity-book?ref=discovery" - }, - { - "s.no": 25, - "amt.pledged": 21625, - "blurb": "Let's enable movement while upholding cultural beliefs, because all girls deserve to play. #MuslimsPlayStuff", - "by": "ASIYA™ Modest Activewear", - "country": "US", - "currency": "usd", - "end.time": "2016-11-17T11:05:44-05:00", - "location": "Minneapolis, MN", - "percentage.funded": 86, - "num.backers": "39560", - "state": "MN", - "title": "ASIYA™: Activewear Designed to Enable Muslim Athletes", - "type": "Town", - "url": "/projects/1913748268/asiyatm-activewear-designed-to-enable-muslim-athle?ref=discovery" - }, - { - "s.no": 26, - "amt.pledged": 50706, - "blurb": "The story of an international anti-cultwhose radical search for personal liberation incurred the wrath of British authorities.", - "by": "Unclean Pictures", - "country": "US", - "currency": "usd", - "end.time": "2016-11-03T23:00:00-04:00", - "location": "New York, NY", - "percentage.funded": 101, - "num.backers": "36781", - "state": "NY", - "title": "A MESSAGE FROM THE TEMPLE", - "type": "Town", - "url": "/projects/uncleanpictures/a-message-from-the-temple?ref=discovery" - }, - { - "s.no": 27, - "amt.pledged": 9851, - "blurb": "Gang tattoos are digitally removed from portraits of ex-gang members. Powerful and emotionally charged interviews follow.", - "by": "Steven Burton", - "country": "US", - "currency": "usd", - "end.time": "2016-11-12T13:11:32-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 39, - "num.backers": "36276", - "state": "CA", - "title": "Skin deep, ex-gang members looking beyond the tattoos", - "type": "Town", - "url": "/projects/1657996647/skin-deep-ex-gang-members-looking-beyond-the-tatto?ref=discovery" - }, - { - "s.no": 28, - "amt.pledged": 70642, - "blurb": "Fire, blood & Vikings! Stories from a time when kingdoms were forged in battle & the old ways still survived.", - "by": "Ben Templesmith", - "country": "US", - "currency": "usd", - "end.time": "2016-11-02T09:58:00-04:00", - "location": "Seattle, WA", - "percentage.funded": 743, - "num.backers": "35384", - "state": "WA", - "title": "BLOOD SONGS", - "type": "Town", - "url": "/projects/templesmith/blood-songs?ref=discovery" - }, - { - "s.no": 29, - "amt.pledged": 123660, - "blurb": "A Small, Portable Hardware Password Keeper to Keep Your Passwords Safe Wherever You Are", - "by": "Stephan Electronics", - "country": "CH", - "currency": "chf", - "end.time": "2016-11-07T10:16:51-05:00", - "location": "Lausanne, Switzerland", - "percentage.funded": 247, - "num.backers": "34565", - "state": "Canton of Vaud", - "title": "Mooltipass Mini - Your Passwords On The Go!", - "type": "Town", - "url": "/projects/limpkin/mooltipass-mini-your-passwords-on-the-go?ref=discovery" - }, - { - "s.no": 30, - "amt.pledged": 8544, - "blurb": "The perfect bra at the click of a button.", - "by": "Founder Danai L. Pointer", - "country": "US", - "currency": "usd", - "end.time": "2016-11-26T22:00:00-05:00", - "location": "New York, NY", - "percentage.funded": 42, - "num.backers": "34397", - "state": "NY", - "title": "TruNude™", - "type": "Town", - "url": "/projects/875623672/trunudetm?ref=discovery" - }, - { - "s.no": 31, - "amt.pledged": 26107, - "blurb": "Art print and coloring book of a massive 6-foot-wide hand-drawn school loaded with clever gags, secret surprises and pink donuts", - "by": "scott teplin", - "country": "US", - "currency": "usd", - "end.time": "2016-11-04T21:00:00-04:00", - "location": "Brooklyn, NY", - "percentage.funded": 274, - "num.backers": "33741", - "state": "NY", - "title": "BIG SCHOOL: Huge, maniacal drawing for print & coloring book", - "type": "County", - "url": "/projects/teplin/big-school-huge-maniacal-drawing-for-print-and-col?ref=discovery" - }, - { - "s.no": 32, - "amt.pledged": 11330, - "blurb": "Deluxe Mac&Cheese Kits that are as good as homemade. Our recipe creates an authentic bechamel-cheese sauce & includes a crouton topping", - "by": "Chris McMurray", - "country": "US", - "currency": "usd", - "end.time": "2016-11-20T16:55:44-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 566, - "num.backers": "31774", - "state": "NY", - "title": "Mac & Son - Mac & Cheese made better", - "type": "County", - "url": "/projects/1588077822/mac-and-son-mac-and-cheese-made-better?ref=discovery" - }, - { - "s.no": 33, - "amt.pledged": 5908, - "blurb": "A photography book filled with amazing pictures showcasing the diversity in colors and the life of street vendors in Hanoi.", - "by": "Loes Heerink", - "country": "VN", - "currency": "eur", - "end.time": "2016-11-14T09:33:39-05:00", - "location": "Hanoi, Viet Nam", - "percentage.funded": 159, - "num.backers": "31497", - "state": "Ha Noi", - "title": "Unique photo book highlighting the beauty of street vendors", - "type": "Town", - "url": "/projects/125851434/vendors?ref=discovery" - }, - { - "s.no": 34, - "amt.pledged": 21390, - "blurb": "A colourful illustrated guide to the mythical creatures from Celtic myth, believed to inhabit the dramatic landscapes of Wales", - "by": "Collette June Ellis", - "country": "GB", - "currency": "gbp", - "end.time": "2016-11-06T10:59:53-05:00", - "location": "Wales, UK", - "percentage.funded": 1069, - "num.backers": "31178", - "state": "England", - "title": "An Illustrated Guide to Welsh Monsters & Mythical Beasts", - "type": "Town", - "url": "/projects/collettejellis/an-illustrated-guide-to-welsh-monsters-and-mythica?ref=discovery" - }, - { - "s.no": 35, - "amt.pledged": 194009, - "blurb": "Next level competitive miniature Board Game for 1-4 players from creator of Neuroshima Hex and Cry Havoc.", - "by": "Awaken Realms", - "country": "PL", - "currency": "gbp", - "end.time": "2016-11-14T12:12:22-05:00", - "location": "Wroclaw, Poland", - "percentage.funded": 485, - "num.backers": "30546", - "state": "Lower Silesia", - "title": "The Edge: Dawnfall", - "type": "Town", - "url": "/projects/awakenrealms/the-edge-dawnfall?ref=discovery" - }, - { - "s.no": 36, - "amt.pledged": 35313, - "blurb": "We need your help to Prove Love Is Real and make a FREE Chuck Tingle Adventure Game for all True Buckaroos Who Kiss.", - "by": "Zoë Quinn", - "country": "US", - "currency": "usd", - "end.time": "2016-11-16T11:40:11-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 50, - "num.backers": "28818", - "state": "CA", - "title": "Kickstarted in the Butt: A Chuck Tingle Digital Adventure", - "type": "Town", - "url": "/projects/703752115/kickstarted-in-the-butt-a-chuck-tingle-digital-adv?ref=discovery" - }, - { - "s.no": 37, - "amt.pledged": 52349, - "blurb": "Andy Irons, 3-time world champion surfer who lived at the extremes of emotion, chased success only to be faced with challenges on shore", - "by": "Teton Gravity Research", - "country": "US", - "currency": "usd", - "end.time": "2016-11-12T12:54:52-05:00", - "location": "Jackson, WY", - "percentage.funded": 34, - "num.backers": "28274", - "state": "WY", - "title": "ANDY: The Untold Story of Andy Irons", - "type": "Town", - "url": "/projects/tetongravity/the-untold-story-of-andy-irons?ref=discovery" - }, - { - "s.no": 38, - "amt.pledged": 14442, - "blurb": "Tired of getting your news from sources funded by mega-corporations? Newsbud—100% people-funded media. Where media integrity matters.", - "by": "Sibel Edmonds", - "country": "US", - "currency": "usd", - "end.time": "2016-11-27T02:04:46-05:00", - "location": "Bend, OR", - "percentage.funded": 11, - "num.backers": "27060", - "state": "OR", - "title": "Support a 100% People-Funded Media—Newsbud, Phase 2", - "type": "Town", - "url": "/projects/141490519/support-a-100-people-funded-medianewsbud-phase-2?ref=discovery" - }, - { - "s.no": 39, - "amt.pledged": 334324, - "blurb": "Join us on our journey to preserve an American icon #KeepThemRuby", - "by": "Smithsonian Institution", - "country": "US", - "currency": "usd", - "end.time": "2016-11-16T23:59:00-05:00", - "location": "Washington, DC", - "percentage.funded": 111, - "num.backers": "26457", - "state": "DC", - "title": "Conserve Dorothy's RUBY SLIPPERS", - "type": "Town", - "url": "/projects/smithsonian/conserve-dorothys-ruby-slippers?ref=discovery" - }, - { - "s.no": 40, - "amt.pledged": 43926, - "blurb": "comp is a redesign of the classic composition notebook––made for the 21st century. ", - "by": "Aron Fay", - "country": "US", - "currency": "usd", - "end.time": "2016-11-23T18:00:00-05:00", - "location": "Manhattan, NY", - "percentage.funded": 55, - "num.backers": "26359", - "state": "NY", - "title": "comp", - "type": "County", - "url": "/projects/comp/comp?ref=discovery" - }, - { - "s.no": 41, - "amt.pledged": 8445, - "blurb": "We are two best friends/sisters whose dream is to share our buttery, smooth, melt-in-your-mouth caramels with you!", - "by": "Alysia and Tammy Lok", - "country": "CA", - "currency": "cad", - "end.time": "2016-11-25T09:30:49-05:00", - "location": "Edmonton, Canada", - "percentage.funded": 64, - "num.backers": "25681", - "state": "AB", - "title": "Caramia Caramels", - "type": "Town", - "url": "/projects/1746625989/caramia-caramels?ref=discovery" - }, - { - "s.no": 42, - "amt.pledged": 20537, - "blurb": "I've been living on the road, writing the songs, and now I'm ready to head in to the studio- with your help! Let's make this album!", - "by": "Chelsea Berry", - "country": "US", - "currency": "usd", - "end.time": "2016-10-30T15:38:36-04:00", - "location": "Gloucester, MA", - "percentage.funded": 114, - "num.backers": "24883", - "state": "MA", - "title": "You and Chelsea Berry making a new album!", - "type": "Town", - "url": "/projects/chelseaberry/you-and-chelsea-berry-making-a-new-album?ref=discovery" - }, - { - "s.no": 43, - "amt.pledged": 19852, - "blurb": "Localizing and publishing Osamu Tezuka’s dark anthology works. Prepare yourself! And a special reintroduction to: The Crater !!!", - "by": "digitalmanga", - "country": "US", - "currency": "usd", - "end.time": "2016-11-26T13:59:52-05:00", - "location": "Gardena, CA", - "percentage.funded": 79, - "num.backers": "24346", - "state": "CA", - "title": "Re-Launch of Tezuka's - Under the Air (Classic Manga)", - "type": "Town", - "url": "/projects/digitalmanga/re-launch-of-tezukas-under-the-air-classic-manga?ref=discovery" - }, - { - "s.no": 44, - "amt.pledged": 20225, - "blurb": "A 36 card Lenormand divination deck of surreal symbolism, and the final companion deck to The Wooden Tarot and Earthbound Oracle.", - "by": "Andy Swartz", - "country": "US", - "currency": "usd", - "end.time": "2016-10-31T19:00:00-04:00", - "location": "Atlanta, GA", - "percentage.funded": 518, - "num.backers": "24150", - "state": "GA", - "title": "The Seeker's Lenormand Deck", - "type": "Town", - "url": "/projects/skullgarden/the-seekers-lenormand-deck?ref=discovery" - }, - { - "s.no": 45, - "amt.pledged": 16297, - "blurb": "Villains are bad tempered guys, what if we try to change that by giving them some love?", - "by": "Nacho Diaz", - "country": "ES", - "currency": "eur", - "end.time": "2016-11-09T13:03:47-05:00", - "location": "Barcelona, Spain", - "percentage.funded": 325, - "num.backers": "23999", - "state": "Catalonia", - "title": "Villains Need Love - Art Book", - "type": "Town", - "url": "/projects/naolito/villains-need-love-art-book?ref=discovery" - }, - { - "s.no": 46, - "amt.pledged": 7152, - "blurb": "Planned to make an album. Didn't plan to have a coma. Had a coma. Now I'm back to making an album with your help. Let's do this!", - "by": "Julia Weldon", - "country": "US", - "currency": "usd", - "end.time": "2016-11-24T08:28:09-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 47, - "num.backers": "23626", - "state": "NY", - "title": "Julia Weldon: Alive! and Making a New Album", - "type": "County", - "url": "/projects/2146098307/julia-weldon-alive-and-making-a-new-album?ref=discovery" - }, - { - "s.no": 47, - "amt.pledged": 14322, - "blurb": "When an aged mortal man and immortal vampire fall in love, painful realities about death—and the deathless—interfere.", - "by": "IronSpike", - "country": "US", - "currency": "usd", - "end.time": "2016-11-23T16:00:30-05:00", - "location": "Chicago, IL", - "percentage.funded": 179, - "num.backers": "23331", - "state": "IL", - "title": "Letters for Lucardo: An Erotic Graphic Novel", - "type": "Town", - "url": "/projects/ironspike/letters-for-lucardo-an-erotic-graphic-novel?ref=discovery" - }, - { - "s.no": 48, - "amt.pledged": 40070, - "blurb": "A picture book adaptation of the classical On The Origin Of Species. Great for children and grownups!", - "by": "Sabina Radeva", - "country": "GB", - "currency": "gbp", - "end.time": "2016-11-09T09:41:26-05:00", - "location": "Oxford, UK", - "percentage.funded": 2108, - "num.backers": "22844", - "state": "England", - "title": "Darwin’s On the Origin of Species: A Picture Book Adaptation", - "type": "Town", - "url": "/projects/1128391174/darwins-on-the-origin-of-species-a-picture-book-ad?ref=discovery" - }, - { - "s.no": 49, - "amt.pledged": 36662, - "blurb": "Once again, show us your love and support. Make a generous donation for the Season 8 of the Invisible Dog!", - "by": "Lucien Zayan", - "country": "US", - "currency": "usd", - "end.time": "2016-11-09T18:30:00-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 146, - "num.backers": "22361", - "state": "NY", - "title": "THE INVISIBLE DOG - SEASON 8", - "type": "County", - "url": "/projects/183275255/the-invisible-dog-season-8?ref=discovery" - }, - { - "s.no": 50, - "amt.pledged": 4111, - "blurb": "Help make room in the Kill Rock Stars office by purchasing CDs, LPs, and cassettes at a serious discount!", - "by": "kill rock stars", - "country": "US", - "currency": "usd", - "end.time": "2016-11-24T14:13:33-05:00", - "location": "Portland, OR", - "percentage.funded": 411, - "num.backers": "22322", - "state": "OR", - "title": "Help Kill Rock Stars make room in the office for 2017!", - "type": "Town", - "url": "/projects/killrockstars/help-kill-rock-stars-make-room-in-the-office-for-2?ref=discovery" - }, - { - "s.no": 51, - "amt.pledged": 38678, - "blurb": "Build a language, build a world. Who were the Isolation, and how were they lost? In this game, your language is the story.", - "by": "Thorny Games", - "country": "US", - "currency": "usd", - "end.time": "2016-12-09T02:00:00-05:00", - "location": "San Francisco, CA", - "percentage.funded": 1289, - "num.backers": "22195", - "state": "CA", - "title": "Dialect: A Game about Language and How it Dies", - "type": "Town", - "url": "/projects/347698129/dialect-a-game-about-language-and-how-it-dies?ref=discovery" - }, - { - "s.no": 52, - "amt.pledged": 5103, - "blurb": "Your favorite giraffestronaut and robot are back, and this time they're forming a rescue party to search for a missing Mars rover.", - "by": "Andrew Rader", - "country": "US", - "currency": "usd", - "end.time": "2016-12-01T02:59:00-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 51, - "num.backers": "21975", - "state": "CA", - "title": "Mars Rover Rescue", - "type": "Town", - "url": "/projects/1734237858/mars-rover-rescue?ref=discovery" - }, - { - "s.no": 53, - "amt.pledged": 10658, - "blurb": "Help Copper Canyon Press publish the definitive collection of W.S. Merwin’s poetry.", - "by": "Copper Canyon Press", - "country": "US", - "currency": "usd", - "end.time": "2016-12-01T20:00:00-05:00", - "location": "Seattle, WA", - "percentage.funded": 21, - "num.backers": "21858", - "state": "WA", - "title": "The Essential W.S. Merwin", - "type": "Town", - "url": "/projects/896286441/the-essential-ws-merwin?ref=discovery" - }, - { - "s.no": 54, - "amt.pledged": 5811, - "blurb": "Make your holidays a little stranger with these 4 King in Yellow inspired Christmas cards beautifully illustrated by Heather Hudson.", - "by": "Studio WonderCabinet", - "country": "US", - "currency": "usd", - "end.time": "2016-11-15T23:00:00-05:00", - "location": "Seattle, WA", - "percentage.funded": 290, - "num.backers": "Cambridge, MA", - "state": "WA", - "title": "The King in Yellow Christmas Cards", - "type": "Town", - "url": "/projects/1464564021/the-king-in-yellow-christmas-cards?ref=discovery" - }, - { - "s.no": 55, - "amt.pledged": 5184, - "blurb": "JazzNESs: A NES Classic Jazz Tributeis a jazz cover CD which encompasses Jazz Piano Trio arrangements of NES Classics.", - "by": "Brian Ibbott", - "country": "US", - "currency": "usd", - "end.time": "2016-11-22T15:47:33-05:00", - "location": "Arvada, CO", - "percentage.funded": 60, - "num.backers": "21625", - "state": "CO", - "title": "JazzNESs: A Nintendo Classic Jazz Tribute", - "type": "Town", - "url": "/projects/coverville/jazzness-a-nintendo-classic-jazz-tribute?ref=discovery" - }, - { - "s.no": 56, - "amt.pledged": 7580, - "blurb": "My Name Is Stardust was inspired by what Neil DeGrasse Tyson called “the most astounding fact”- that we are literally made of stardust.", - "by": "Douglas Harris", - "country": "US", - "currency": "usd", - "end.time": "2016-11-17T08:01:11-05:00", - "location": "Salt Lake City, UT", - "percentage.funded": 59, - "num.backers": "21455", - "state": "UT", - "title": "My Name Is Stardust: Children's Book About Science", - "type": "Town", - "url": "/projects/doughded/childrens-book-my-name-is-stardust?ref=discovery" - }, - { - "s.no": 57, - "amt.pledged": 218565, - "blurb": "Carcel is a fashion label from Copenhagen produced by women in prison and made from 100% natural materials.", - "by": "Carcel", - "country": "DK", - "currency": "dkk", - "end.time": "2016-11-24T05:10:23-05:00", - "location": "Copenhagen, Denmark", - "percentage.funded": 145, - "num.backers": "21412", - "state": "Hovedstaden", - "title": "Danish Designer Wear - Made by Women in Prison", - "type": "Town", - "url": "/projects/1944171683/danish-designer-wear-made-by-women-in-prison?ref=discovery" - }, - { - "s.no": 58, - "amt.pledged": 4522, - "blurb": "Immortal Prosperity is a premium, highly-detailed coloring book featuring dragons and phoenixes. It is designed for people of all ages.", - "by": "Art The Culture", - "country": "US", - "currency": "usd", - "end.time": "2016-11-25T18:55:24-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 116, - "num.backers": "20915", - "state": "NY", - "title": "Immortal Prosperity: First Dragon & Phoenix Coloring Book", - "type": "County", - "url": "/projects/2066577066/immortal-prosperity-first-dragon-and-phoenix-color?ref=discovery" - }, - { - "s.no": 59, - "amt.pledged": 6354, - "blurb": "The Printed Walk is a letterpress-printed chronicle of an artist's 2017 thru-hike of the Appalachian Trail.", - "by": "Lindsay Schmittle", - "country": "US", - "currency": "usd", - "end.time": "2016-12-04T12:48:48-05:00", - "location": "Landenberg, PA", - "percentage.funded": 44, - "num.backers": "20787", - "state": "PA", - "title": "The Printed Walk: Georgia to Maine", - "type": "Town", - "url": "/projects/185016739/the-printed-walk-georgia-to-maine?ref=discovery" - }, - { - "s.no": 60, - "amt.pledged": 15014, - "blurb": "A story of a girl that marches to the beat of her own imagination.", - "by": "Katie Newell", - "country": "US", - "currency": "usd", - "end.time": "2016-11-01T15:06:16-04:00", - "location": "Grand Rapids, MI", - "percentage.funded": 333, - "num.backers": "New York, NY", - "state": "MI", - "title": "I'd Rather Be A Dragon", - "type": "Town", - "url": "/projects/1226138705/id-rather-be-a-dragon?ref=discovery" - }, - { - "s.no": 61, - "amt.pledged": 10897, - "blurb": "Playing cards that offer beer information and casual tasting guidance for the many conversations that happen over beer.", - "by": "Dave Shea", - "country": "CA", - "currency": "cad", - "end.time": "2016-11-18T17:00:00-05:00", - "location": "Vancouver, Canada", - "percentage.funded": 27, - "num.backers": "20042", - "state": "BC", - "title": "The Palate Deck: Playing Cards for Beer Tasting", - "type": "Town", - "url": "/projects/mezzoblue/the-palate-deck-playing-cards-for-beer-tasting?ref=discovery" - }, - { - "s.no": 62, - "amt.pledged": 272841, - "blurb": "A 45 min sandbox adventure for 1-4 players w/ limited action selection, grid movement, press-your-luck & Item-Holding Meeples!", - "by": "Gamelyn Games", - "country": "US", - "currency": "usd", - "end.time": "2016-11-27T01:59:00-05:00", - "location": "Phoenix, AZ", - "percentage.funded": 1818, - "num.backers": "19829", - "state": "AZ", - "title": "Tiny Epic Quest - Introducing ITEMeeples™", - "type": "Town", - "url": "/projects/coe/tiny-epic-quest-introducing-itemeeplestm?ref=discovery" - }, - { - "s.no": 63, - "amt.pledged": 32475, - "blurb": "Geeky inside, gorgeous outside. These bike lights, speaker, lantern and head torch all use the same power bank as a universal battery.", - "by": "Knog", - "country": "AU", - "currency": "aud", - "end.time": "2016-11-26T07:42:38-05:00", - "location": "Melbourne, AU", - "percentage.funded": 43, - "num.backers": "19611", - "state": "VIC", - "title": "PWR: an ecosystem of outdoor products using one power source", - "type": "Town", - "url": "/projects/1951570531/pwr-an-ecosystem-of-outdoor-products-using-one-pow?ref=discovery" - }, - { - "s.no": 64, - "amt.pledged": 9884, - "blurb": "The definitive documentary about the legendary Native Tongue Posse", - "by": "Omar Akil", - "country": "US", - "currency": "usd", - "end.time": "2016-11-18T16:29:31-05:00", - "location": "New York, NY", - "percentage.funded": 20, - "num.backers": "19541", - "state": "NY", - "title": "The Native Tongue Posse Documentary", - "type": "Town", - "url": "/projects/589799990/the-native-tongue-posse-documentary?ref=discovery" - }, - { - "s.no": 65, - "amt.pledged": 26817, - "blurb": "Our design philosophy embraces simplicity, enabling us to build a safe, high performance, and cost effective Hyperloop pod.", - "by": "Waterloop", - "country": "CA", - "currency": "cad", - "end.time": "2016-11-18T19:39:52-05:00", - "location": "Waterloo, Canada", - "percentage.funded": 134, - "num.backers": "19349", - "state": "ON", - "title": "Waterloop: The Canadian SpaceX Hyperloop Competition Team", - "type": "Town", - "url": "/projects/1629380361/waterloop-the-canadian-spacex-hyperloop-competitio?ref=discovery" - }, - { - "s.no": 66, - "amt.pledged": 933349, - "blurb": "Sound waves convert the beer’s carbonation into densely compacted, uniform Micro-Foam™ bubbles unlocking that fresh-from-the-tap taste.", - "by": "Fizzics Home Beer Draft System", - "country": "US", - "currency": "usd", - "end.time": "2016-11-04T09:01:25-04:00", - "location": "San Francisco, CA", - "percentage.funded": 1866, - "num.backers": "18604", - "state": "CA", - "title": "Fizzics Waytap | Untap the full taste of beer with science", - "type": "Town", - "url": "/projects/161302347/fizzics-waytap-untap-the-full-taste-of-beer-with-s?ref=discovery" - }, - { - "s.no": 67, - "amt.pledged": 45469, - "blurb": "Inspired by a true robbery.", - "by": "LudiCreations", - "country": "DE", - "currency": "usd", - "end.time": "2016-10-30T23:55:00-04:00", - "location": "Dusseldorf, Germany", - "percentage.funded": 4546, - "num.backers": "18558", - "state": "North Rhine-Westphalia", - "title": "Steal This Game", - "type": "Town", - "url": "/projects/ludicreations/steal-this-game?ref=discovery" - }, - { - "s.no": 68, - "amt.pledged": 16653, - "blurb": "Jailed for comics?! The true story of the only US artist convicted of obscenity, directed by cult filmmaker Frank Henenlotter.", - "by": "Anthony Sneed", - "country": "US", - "currency": "usd", - "end.time": "2016-11-17T21:00:00-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 41, - "num.backers": "18220", - "state": "NY", - "title": "The Trial of Mike Diana", - "type": "Zip", - "url": "/projects/1300283850/the-trial-of-mike-diana?ref=discovery" - }, - { - "s.no": 69, - "amt.pledged": 13447, - "blurb": "Pseudopod the weekly short horror fiction podcast is celebrating its 10th Halloween and is raising funds to pay their narrators.", - "by": "Escape Artists Inc.", - "country": "US", - "currency": "usd", - "end.time": "2016-11-22T22:00:00-05:00", - "location": "Atlanta, GA", - "percentage.funded": 43, - "num.backers": "18209", - "state": "GA", - "title": "Pseudopod: Year 10", - "type": "Town", - "url": "/projects/1013714773/pseudopod-year-10?ref=discovery" - }, - { - "s.no": 70, - "amt.pledged": 238114, - "blurb": "The first smart coffee instrument with a built-in scale and an app enables you to brew coffee with pour-over, immersion and cold drip.", - "by": "Anze Miklavec", - "country": "SI", - "currency": "usd", - "end.time": "2016-12-17T08:00:50-05:00", - "location": "Ljubljana, Slovenia", - "percentage.funded": 476, - "num.backers": "18126", - "state": "Ljubljana", - "title": "GINA: Smart coffee instrument / by GOAT STORY", - "type": "Town", - "url": "/projects/goat-mug/gina-smart-coffee-instrument-by-goat-story?ref=discovery" - }, - { - "s.no": 71, - "amt.pledged": 21227, - "blurb": "Pocket-size weekly planner full of tiny jokes, activities and nagging to (maybe???) help you keep your s*** together in the new year.", - "by": "Adam J. Kurtz", - "country": "US", - "currency": "usd", - "end.time": "2016-11-17T07:35:14-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 816, - "num.backers": "17765", - "state": "NY", - "title": "Unsolicited Advice: 2017 Weekly Planner", - "type": "County", - "url": "/projects/adamjk/unsolicited-advice-2017-weekly-planner?ref=discovery" - }, - { - "s.no": 72, - "amt.pledged": 236963, - "blurb": "Banish messy cables and slow charging forever with ECLIPSE – the new, neater way to charge your daily devices.", - "by": "Native Union", - "country": "US", - "currency": "usd", - "end.time": "2016-11-18T12:00:00-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 473, - "num.backers": "17744", - "state": "CA", - "title": "ECLIPSE - Say Goodbye to Messy Cables", - "type": "Town", - "url": "/projects/nativeunion/eclipse-say-goodbye-to-messy-cables?ref=discovery" - }, - { - "s.no": 73, - "amt.pledged": 206691, - "blurb": "A casual card game for grownups who feel like they're pretending.", - "by": "Jason Anarchy", - "country": "CA", - "currency": "cad", - "end.time": "2016-10-31T10:06:02-04:00", - "location": "Toronto, Canada", - "percentage.funded": 3444, - "num.backers": "17739", - "state": "ON", - "title": "Pretending to Grownup", - "type": "Town", - "url": "/projects/drinkingquest/pretending-to-grownup?ref=discovery" - }, - { - "s.no": 74, - "amt.pledged": 1731, - "blurb": "A new kind of interactive publication that encourages girls to be girls; independent, strong, smart, and proud of who they are.", - "by": "Bright Lite", - "country": "US", - "currency": "usd", - "end.time": "2016-11-26T13:44:49-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 17, - "num.backers": "17733", - "state": "CA", - "title": "Bright Lite Magazine: For Girls, By Girls", - "type": "Town", - "url": "/projects/71736074/bright-lite-magazine-for-girls-by-girls?ref=discovery" - }, - { - "s.no": 75, - "amt.pledged": 368580, - "blurb": "Font Awesome makes it easy to add vector icons and social logos to your website. And Pro gives 1,000+ more icons and SVG support!", - "by": "Dave Gandy", - "country": "US", - "currency": "usd", - "end.time": "2016-12-01T12:01:00-05:00", - "location": "Cambridge, MA", - "percentage.funded": 1228, - "num.backers": "17713", - "state": "MA", - "title": "Font Awesome 5", - "type": "Town", - "url": "/projects/232193852/font-awesome-5?ref=discovery" - }, - { - "s.no": 76, - "amt.pledged": 12091, - "blurb": "Bowie's world debuts of Hunky Dory & Ziggy Stardust were at Friars Aylesbury. We are creating a stunning statue in the Market Square.", - "by": "David Stopps for Friars Aylesbury", - "country": "GB", - "currency": "gbp", - "end.time": "2016-12-06T06:38:11-05:00", - "location": "Aylesbury, UK", - "percentage.funded": 12, - "num.backers": "17614", - "state": "England", - "title": "David Bowie Statue - Aylesbury Market Square UK", - "type": "Town", - "url": "/projects/1980358464/david-bowie-statue-aylesbury-market-square-uk?ref=discovery" - }, - { - "s.no": 77, - "amt.pledged": 6344, - "blurb": "A photography book exploring a family's journey through the hallucinatory wake of Hurricane Sandy’s devastation.", - "by": "Michael Marcelle", - "country": "US", - "currency": "usd", - "end.time": "2016-11-27T08:20:56-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 31, - "num.backers": "17218", - "state": "NY", - "title": "Kokomo, A Photography Book", - "type": "County", - "url": "/projects/1869229839/kokomo-a-photography-book?ref=discovery" - }, - { - "s.no": 78, - "amt.pledged": 83860, - "blurb": "Meet the stylus that works like the pencil you grew up with. Flip has the features of an active stylus without Bluetooth or batteries!", - "by": "Lynktec", - "country": "US", - "currency": "usd", - "end.time": "2016-11-14T08:57:37-05:00", - "location": "Chicago, IL", - "percentage.funded": 1118, - "num.backers": "17184", - "state": "IL", - "title": "Flip! The World’s Most Intuitive Smart Stylus", - "type": "Town", - "url": "/projects/lynktec/flip-the-worlds-most-intuitive-smart-stylus?ref=discovery" - }, - { - "s.no": 79, - "amt.pledged": 70593, - "blurb": "An oversized archival art book collecting the unforgettable-yet-forgotten work of Herbert Crowley, and telling his remarkable story.", - "by": "Beehive Books", - "country": "US", - "currency": "usd", - "end.time": "2016-11-11T23:59:00-05:00", - "location": "Philadelphia, PA", - "percentage.funded": 141, - "num.backers": "17029", - "state": "PA", - "title": "The Temple of Silence: Forgotten Worlds of Herbert Crowley", - "type": "Town", - "url": "/projects/beehivebooks/the-temple-of-silence-forgotten-worlds-of-herbert?ref=discovery" - }, - { - "s.no": 80, - "amt.pledged": 92350, - "blurb": "Root is more than just a robot that drives on walls. It turns paper or whiteboards into an intuitive and interactive coding experience.", - "by": "Scansorial", - "country": "US", - "currency": "usd", - "end.time": "2016-11-29T22:00:00-05:00", - "location": "Cambridge, MA", - "percentage.funded": 36, - "num.backers": "16936", - "state": "MA", - "title": "Root - A robot to teach coding", - "type": "Town", - "url": "/projects/1509453982/root-a-robot-to-teach-coding?ref=discovery" - }, - { - "s.no": 81, - "amt.pledged": 24940, - "blurb": "The world's fastest and most affordable gel manicure kits! DIY gel nails (with a cute macaron lamp) when you want, where you want!", - "by": "Christina Kao", - "country": "US", - "currency": "usd", - "end.time": "2016-11-22T00:00:00-05:00", - "location": "Birmingham, AL", - "percentage.funded": 249, - "num.backers": "16850", - "state": "AL", - "title": "LE MINI MACARON | Best 15Min Gel Nail Kit | The Perfect Gift", - "type": "Town", - "url": "/projects/1643301879/le-mini-macaron-best-15min-gel-nail-kit-the-perfec?ref=discovery" - }, - { - "s.no": 82, - "amt.pledged": 61377, - "blurb": "A Fluid Smart-Home and Apps controller, Bixi senses your in-air gestures and commands the smart devices for a touch-free use!", - "by": "Bixi", - "country": "US", - "currency": "usd", - "end.time": "2016-12-03T11:35:07-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 245, - "num.backers": "16732", - "state": "CA", - "title": "Bixi: Control Any Smart Device by Simply Waving Your Hand!", - "type": "Town", - "url": "/projects/1860920533/bixi-control-any-smart-device-by-simply-waving-you?ref=discovery" - }, - { - "s.no": 83, - "amt.pledged": 91680, - "blurb": "The multi-award winning dark fantasy RPG from France, between Ravenloft, Game of Thrones and Call of Cthulhu.", - "by": "Jim Searcy", - "country": "FR", - "currency": "usd", - "end.time": "2016-11-18T04:00:00-05:00", - "location": "Paris, France", - "percentage.funded": 458, - "num.backers": "16538", - "state": "Ile-de-France", - "title": "Shadows of Esteren - A Medieval Horror RPG: Dearg", - "type": "Town", - "url": "/projects/1176616619/shadows-of-esteren-a-medieval-horror-rpg-dearg?ref=discovery" - }, - { - "s.no": 84, - "amt.pledged": 27997, - "blurb": "3D printed solar system of your personal date, custom made with NASA's data. pendant / keyring ideal for Astronomy & Science lovers.", - "by": "govy", - "country": "US", - "currency": "usd", - "end.time": "2016-11-15T06:00:00-05:00", - "location": "New York, NY", - "percentage.funded": 27997, - "num.backers": "16537", - "state": "NY", - "title": "SpaceTime Coordinates Memento ~ your personal place in space", - "type": "Town", - "url": "/projects/govy/spacetime-coordinates-memento?ref=discovery" - }, - { - "s.no": 85, - "amt.pledged": 296979, - "blurb": "Life's hard when you're a Lich. Join Steve and his friends during their everyday lives down in the dungeon. (Hardcover, 400 pages)", - "by": "Acceptable Comics", - "country": "US", - "currency": "usd", - "end.time": "2016-10-31T23:59:00-04:00", - "location": "Bristol, RI", - "percentage.funded": 1649, - "num.backers": "16459", - "state": "RI", - "title": "Steve Lichman - Volume 2", - "type": "Town", - "url": "/projects/stevelichman/steve-lichman-volume-2?ref=discovery" - }, - { - "s.no": 86, - "amt.pledged": 5384, - "blurb": "'Gaelic Americana' singer-songwriter Kyle Carey is making a new album! Will you join her on the journey?", - "by": "Kyle Carey", - "country": "US", - "currency": "usd", - "end.time": "2016-11-30T13:24:51-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 19, - "num.backers": "16408", - "state": "NY", - "title": "The Art of Forgetting' - Kyle Carey's New Album", - "type": "County", - "url": "/projects/kylecarey/the-art-of-forgetting-kyle-careys-new-album?ref=discovery" - }, - { - "s.no": 87, - "amt.pledged": 104316, - "blurb": "Caitlin Moran makes an indecent proposal to Della to save RAISED BY WOLVES & give the world more 'Ripley-from-Alien'-style parenting.", - "by": "Caitlin Moran and Caroline Moran", - "country": "GB", - "currency": "gbp", - "end.time": "2016-11-20T18:00:00-05:00", - "location": "Wolverhampton, UK", - "percentage.funded": 32, - "num.backers": "16335", - "state": "England", - "title": "Save The Wolves!", - "type": "Town", - "url": "/projects/raisedbywolves/save-the-wolves?ref=discovery" - }, - { - "s.no": 88, - "amt.pledged": 21541, - "blurb": "An authentic Jewish delicatessen open seven days a week, where traditional recipes are made expertly in house with great love and care.", - "by": "Monty's Deli", - "country": "GB", - "currency": "gbp", - "end.time": "2016-11-13T04:34:05-05:00", - "location": "London, UK", - "percentage.funded": 43, - "num.backers": "16180", - "state": "England", - "title": "Monty's Deli - A real Jewish deli", - "type": "Town", - "url": "/projects/1061292574/montys-deli-a-real-jewish-deli?ref=discovery" - }, - { - "s.no": 89, - "amt.pledged": 12959, - "blurb": "A highly-produced storytelling podcast about Apple and the community around it. 8 brand new episodes, coming Summer 2017.", - "by": "Mark Bramhill", - "country": "US", - "currency": "usd", - "end.time": "2016-11-17T20:00:00-05:00", - "location": "Houston, TX", - "percentage.funded": 129, - "num.backers": "16038", - "state": "TX", - "title": "Welcome to Macintosh: Season 3", - "type": "Town", - "url": "/projects/bramhill/welcome-to-macintosh-season-3?ref=discovery" - }, - { - "s.no": 90, - "amt.pledged": 198896, - "blurb": "Your alarm clock is now a personal assistant. By learning about your agenda and hobbies, Bonjour helps make the most of each day.", - "by": "BONJOUR", - "country": "US", - "currency": "usd", - "end.time": "2016-12-05T10:59:46-05:00", - "location": "Los Angeles, CA", - "percentage.funded": 397, - "num.backers": "15998", - "state": "CA", - "title": "Bonjour | Smart Alarm Clock with Artificial Intelligence", - "type": "Town", - "url": "/projects/1450781303/bonjour-smart-alarm-clock-with-artificial-intellig?ref=discovery" - }, - { - "s.no": 91, - "amt.pledged": 55522, - "blurb": "A 10-minute social deduction game for 4-8 monsters. Featuring gorgeous, thematic art and 12 roles with unique abilities!", - "by": "Blue Beard Entertainment", - "country": "US", - "currency": "usd", - "end.time": "2016-11-11T20:00:00-05:00", - "location": "St. Louis, MO", - "percentage.funded": 694, - "num.backers": "15824", - "state": "MO", - "title": "Dracula’s Feast: A monstrous game of secrets and deduction", - "type": "Town", - "url": "/projects/peterchayward/draculas-feast-a-monstrous-game-of-secrets-and-ded?ref=discovery" - }, - { - "s.no": 92, - "amt.pledged": 11621, - "blurb": "A new documentary exploring the growing privatization of public schools, and the impact on America's most vulnerable children.", - "by": "Sarah Mondale", - "country": "US", - "currency": "usd", - "end.time": "2016-11-18T21:16:05-05:00", - "location": "Suffern, NY", - "percentage.funded": 36, - "num.backers": "15802", - "state": "NY", - "title": "BACKPACK FULL OF CASH: a new film, narrated by Matt Damon", - "type": "Town", - "url": "/projects/1974989045/backpack-full-of-cash-a-new-film-narrated-by-matt?ref=discovery" - }, - { - "s.no": 93, - "amt.pledged": 7542, - "blurb": "The Real Story of Ruth the Tooth is an adventurous children's book that is a special kind of 3D and comes with a read along record.", - "by": "Tripper Dungan", - "country": "US", - "currency": "usd", - "end.time": "2016-10-31T19:06:38-04:00", - "location": "Portland, OR", - "percentage.funded": 91, - "num.backers": "15736", - "state": "OR", - "title": "The Real Story of Ruth the Tooth, 3D Book and Record", - "type": "Town", - "url": "/projects/tripperdungan/the-real-story-of-ruth-the-tooth-3d-book-and-recor?ref=discovery" - }, - { - "s.no": 94, - "amt.pledged": 41168, - "blurb": "Strange Matter Coffee is opening a scratch bakery featuring craft doughnuts with vegan and gluten free options!", - "by": "Cara Nader", - "country": "US", - "currency": "usd", - "end.time": "2016-10-30T11:25:38-04:00", - "location": "Lansing, MI", - "percentage.funded": 102, - "num.backers": "15623", - "state": "MI", - "title": "Doughnuts with love by Strange Matter Coffee", - "type": "Town", - "url": "/projects/1174317590/doughnuts-with-love-by-strange-matter-coffee?ref=discovery" - }, - { - "s.no": 95, - "amt.pledged": 180642, - "blurb": "Knit with ultrasoft, naturally insulating llama fiber, the Libre is engineered for the city, the summit, and everything in between.", - "by": "Cotopaxi", - "country": "US", - "currency": "usd", - "end.time": "2016-11-16T15:27:10-05:00", - "location": "Salt Lake City, UT", - "percentage.funded": 903, - "num.backers": "15352", - "state": "UT", - "title": "The Libre Sweater: Insulator. Outer layer. Epic enabler.", - "type": "Town", - "url": "/projects/cotopaxi/the-libre-sweater-insulator-outer-layer-epic-enabl?ref=discovery" - }, - { - "s.no": 96, - "amt.pledged": 439909, - "blurb": "An Android Nougat-powered device exclusive on Kickstarter for $99. Engineered to be a 4K TV set-top box, gaming console, and PC in one.", - "by": "Jide Tech", - "country": "CN", - "currency": "usd", - "end.time": "2016-11-19T10:57:37-05:00", - "location": "Beijing, China", - "percentage.funded": 175, - "num.backers": "15251", - "state": "Beijing", - "title": "Remix IO - A 4K, Nougat-powered, All-in-One device", - "type": "Town", - "url": "/projects/jidetech/remix-io-a-4k-nougat-powered-all-in-one-device?ref=discovery" - }, - { - "s.no": 97, - "amt.pledged": 318367, - "blurb": "Build it. Code it. Fly it. The First Modular Drone Transforms into Whatever You Want", - "by": "Makeblock", - "country": "US", - "currency": "usd", - "end.time": "2016-12-14T08:00:00-05:00", - "location": "San Francisco, CA", - "percentage.funded": 318, - "num.backers": "15129", - "state": "CA", - "title": "Airblock: The Modular and Programmable Starter Drone", - "type": "Town", - "url": "/projects/1818505613/airblock-the-modular-and-programmable-starter-dron?ref=discovery" - }, - { - "s.no": 98, - "amt.pledged": 1416, - "blurb": "The premier of Triangle Theory, a dance about triangles in three parts, at Roulette Intermedium November 28-30, 2016.", - "by": "Kyli Kleven", - "country": "US", - "currency": "usd", - "end.time": "2016-11-13T23:59:00-05:00", - "location": "Brooklyn, NY", - "percentage.funded": 31, - "num.backers": "15029", - "state": "NY", - "title": "Triangle Theory", - "type": "County", - "url": "/projects/872122110/triangle-theory?ref=discovery" - }, - { - "s.no": 99, - "amt.pledged": 130010, - "blurb": "Help us publish the first exact copy of Fortunato Depero’s 1927 iconic work of avant-garde graphic design and book-making.", - "by": "Designers & Books", - "country": "US", - "currency": "usd", - "end.time": "2016-12-01T23:59:00-05:00", - "location": "Manhattan, NY", - "percentage.funded": 52, - "num.backers": "14964", - "state": "NY", - "title": "The Bolted Book Facsimile: An Exact Copy of Depero Futurista", - "type": "County", - "url": "/projects/1204158310/the-bolted-book-facsimile-an-exact-copy-of-depero?ref=discovery" - }, - { - "s.no": 100, - "amt.pledged": 10573, - "blurb": "Helios is a modular touch screen wall light that turns walls into a canvas for illumination, using your hand as the brush.", - "by": "Dyena", - "country": "GB", - "currency": "gbp", - "end.time": "2016-12-17T09:44:39-05:00", - "location": "Southampton, UK", - "percentage.funded": 10, - "num.backers": "14952", - "state": "England", - "title": "Helios Touch Modular Lighting", - "type": "Town", - "url": "/projects/1987956413/helios-touch-modular-lighting?ref=discovery" - } -] \ No newline at end of file diff --git a/index.css b/index.css new file mode 100644 index 000000000..e69de29bb diff --git a/index.html b/index.html new file mode 100644 index 000000000..995c57c51 --- /dev/null +++ b/index.html @@ -0,0 +1,17 @@ + + + + + + + + SaaS labs + + + +
+ + + + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..c892e1bc2 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3255 @@ +{ + "name": "saas-labs", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "saas-labs", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "parcel": "^2.10.2", + "process": "^0.11.10" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@lezer/common": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.3.tgz", + "integrity": "sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==", + "dev": true + }, + "node_modules/@lezer/lr": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.2.tgz", + "integrity": "sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lmdb/lmdb-darwin-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.8.5.tgz", + "integrity": "sha512-KPDeVScZgA1oq0CiPBcOa3kHIqU+pTOwRFDIhxvmf8CTNvqdZQYp5cCKW0bUk69VygB2PuTiINFWbY78aR2pQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-darwin-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.8.5.tgz", + "integrity": "sha512-w/sLhN4T7MW1nB3R/U8WK5BgQLz904wh+/SmA2jD8NnF7BLLoUgflCNxOeSPOWp8geP6nP/+VjWzZVip7rZ1ug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.8.5.tgz", + "integrity": "sha512-c0TGMbm2M55pwTDIfkDLB6BpIsgxV4PjYck2HiOX+cy/JWiBXz32lYbarPqejKs9Flm7YVAKSILUducU9g2RVg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-arm64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.8.5.tgz", + "integrity": "sha512-vtbZRHH5UDlL01TT5jB576Zox3+hdyogvpcbvVJlmU5PdL3c5V7cj1EODdh1CHPksRl+cws/58ugEHi8bcj4Ww==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-linux-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.8.5.tgz", + "integrity": "sha512-Xkc8IUx9aEhP0zvgeKy7IQ3ReX2N8N1L0WPcQwnZweWmOuKfwpS3GRIYqLtK5za/w3E60zhFfNdS+3pBZPytqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@lmdb/lmdb-win32-x64": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.8.5.tgz", + "integrity": "sha512-4wvrf5BgnR8RpogHhtpCPJMKBmvyZPhhUtEwMJbXh0ni2BucpfF07jlmyM11zRqQ2XIq6PbC2j7W7UCCcm1rRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@mischnic/json-sourcemap": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@mischnic/json-sourcemap/-/json-sourcemap-0.1.1.tgz", + "integrity": "sha512-iA7+tyVqfrATAIsIRWQG+a7ZLLD0VaOCKV2Wd/v4mqIU3J9c4jx9p7S0nw1XH3gJCKNBOOwACOPYYSUu9pgT+w==", + "dev": true, + "dependencies": { + "@lezer/common": "^1.0.0", + "@lezer/lr": "^1.0.0", + "json5": "^2.2.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", + "integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz", + "integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz", + "integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz", + "integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz", + "integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz", + "integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@parcel/bundler-default": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.13.3.tgz", + "integrity": "sha512-mOuWeth0bZzRv1b9Lrvydis/hAzJyePy0gwa0tix3/zyYBvw0JY+xkXVR4qKyD/blc1Ra2qOlfI2uD3ucnsdXA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/graph": "3.3.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/cache": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/cache/-/cache-2.13.3.tgz", + "integrity": "sha512-Vz5+K5uCt9mcuQAMDo0JdbPYDmVdB8Nvu/A2vTEK2rqZPxvoOTczKeMBA4JqzKqGURHPRLaJCvuR8nDG+jhK9A==", + "dev": true, + "dependencies": { + "@parcel/fs": "2.13.3", + "@parcel/logger": "2.13.3", + "@parcel/utils": "2.13.3", + "lmdb": "2.8.5" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/codeframe": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.13.3.tgz", + "integrity": "sha512-L/PQf+PT0xM8k9nc0B+PxxOYO2phQYnbuifu9o4pFRiqVmCtHztP+XMIvRJ2gOEXy3pgAImSPFVJ3xGxMFky4g==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/compressor-raw": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.13.3.tgz", + "integrity": "sha512-C6vjDlgTLjYc358i7LA/dqcL0XDQZ1IHXFw6hBaHHOfxPKW2T4bzUI6RURyToEK9Q1X7+ggDKqgdLxwp4veCFg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/config-default": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.13.3.tgz", + "integrity": "sha512-WUsx83ic8DgLwwnL1Bua4lRgQqYjxiTT+DBxESGk1paNm1juWzyfPXEQDLXwiCTcWMQGiXQFQ8OuSISauVQ8dQ==", + "dev": true, + "dependencies": { + "@parcel/bundler-default": "2.13.3", + "@parcel/compressor-raw": "2.13.3", + "@parcel/namer-default": "2.13.3", + "@parcel/optimizer-css": "2.13.3", + "@parcel/optimizer-htmlnano": "2.13.3", + "@parcel/optimizer-image": "2.13.3", + "@parcel/optimizer-svgo": "2.13.3", + "@parcel/optimizer-swc": "2.13.3", + "@parcel/packager-css": "2.13.3", + "@parcel/packager-html": "2.13.3", + "@parcel/packager-js": "2.13.3", + "@parcel/packager-raw": "2.13.3", + "@parcel/packager-svg": "2.13.3", + "@parcel/packager-wasm": "2.13.3", + "@parcel/reporter-dev-server": "2.13.3", + "@parcel/resolver-default": "2.13.3", + "@parcel/runtime-browser-hmr": "2.13.3", + "@parcel/runtime-js": "2.13.3", + "@parcel/runtime-react-refresh": "2.13.3", + "@parcel/runtime-service-worker": "2.13.3", + "@parcel/transformer-babel": "2.13.3", + "@parcel/transformer-css": "2.13.3", + "@parcel/transformer-html": "2.13.3", + "@parcel/transformer-image": "2.13.3", + "@parcel/transformer-js": "2.13.3", + "@parcel/transformer-json": "2.13.3", + "@parcel/transformer-postcss": "2.13.3", + "@parcel/transformer-posthtml": "2.13.3", + "@parcel/transformer-raw": "2.13.3", + "@parcel/transformer-react-refresh-wrap": "2.13.3", + "@parcel/transformer-svg": "2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/core": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/core/-/core-2.13.3.tgz", + "integrity": "sha512-SRZFtqGiaKHlZ2YAvf+NHvBFWS3GnkBvJMfOJM7kxJRK3M1bhbwJa/GgSdzqro5UVf9Bfj6E+pkdrRQIOZ7jMQ==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/cache": "2.13.3", + "@parcel/diagnostic": "2.13.3", + "@parcel/events": "2.13.3", + "@parcel/feature-flags": "2.13.3", + "@parcel/fs": "2.13.3", + "@parcel/graph": "3.3.3", + "@parcel/logger": "2.13.3", + "@parcel/package-manager": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/profiler": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "@parcel/workers": "2.13.3", + "base-x": "^3.0.8", + "browserslist": "^4.6.6", + "clone": "^2.1.1", + "dotenv": "^16.4.5", + "dotenv-expand": "^11.0.6", + "json5": "^2.2.0", + "msgpackr": "^1.9.9", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/diagnostic": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.13.3.tgz", + "integrity": "sha512-C70KXLBaXLJvr7XCEVu8m6TqNdw1gQLxqg5BQ8roR62R4vWWDnOq8PEksxDi4Y8Z/FF4i3Sapv6tRx9iBNxDEg==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/events": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/events/-/events-2.13.3.tgz", + "integrity": "sha512-ZkSHTTbD/E+53AjUzhAWTnMLnxLEU5yRw0H614CaruGh+GjgOIKyukGeToF5Gf/lvZ159VrJCGE0Z5EpgHVkuQ==", + "dev": true, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/feature-flags": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/feature-flags/-/feature-flags-2.13.3.tgz", + "integrity": "sha512-UZm14QpamDFoUut9YtCZSpG1HxPs07lUwUCpsAYL0PpxASD3oWJQxIJGfDZPa2272DarXDG9adTKrNXvkHZblw==", + "dev": true, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/fs": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/fs/-/fs-2.13.3.tgz", + "integrity": "sha512-+MPWAt0zr+TCDSlj1LvkORTjfB/BSffsE99A9AvScKytDSYYpY2s0t4vtV9unSh0FHMS2aBCZNJ4t7KL+DcPIg==", + "dev": true, + "dependencies": { + "@parcel/feature-flags": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/types-internal": "2.13.3", + "@parcel/utils": "2.13.3", + "@parcel/watcher": "^2.0.7", + "@parcel/workers": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/graph": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@parcel/graph/-/graph-3.3.3.tgz", + "integrity": "sha512-pxs4GauEdvCN8nRd6wG3st6LvpHske3GfqGwUSR0P0X0pBPI1/NicvXz6xzp3rgb9gPWfbKXeI/2IOTfIxxVfg==", + "dev": true, + "dependencies": { + "@parcel/feature-flags": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/logger": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/logger/-/logger-2.13.3.tgz", + "integrity": "sha512-8YF/ZhsQgd7ohQ2vEqcMD1Ag9JlJULROWRPGgGYLGD+twuxAiSdiFBpN3f+j4gQN4PYaLaIS/SwUFx11J243fQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/events": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/markdown-ansi": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.13.3.tgz", + "integrity": "sha512-B4rUdlNUulJs2xOQuDbN7Hq5a9roq8IZUcJ1vQ8PAv+zMGb7KCfqIIr/BSCDYGhayfAGBVWW8x55Kvrl1zrDYw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/namer-default": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.13.3.tgz", + "integrity": "sha512-A2a5A5fuyNcjSGOS0hPcdQmOE2kszZnLIXof7UMGNkNkeC62KAG8WcFZH5RNOY3LT5H773hq51zmc2Y2gE5Rnw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/node-resolver-core": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-3.4.3.tgz", + "integrity": "sha512-IEnMks49egEic1ITBp59VQyHzkSQUXqpU9hOHwqN3KoSTdZ6rEgrXcS3pa6tdXay4NYGlcZ88kFCE8i/xYoVCg==", + "dev": true, + "dependencies": { + "@mischnic/json-sourcemap": "^0.1.0", + "@parcel/diagnostic": "2.13.3", + "@parcel/fs": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-css": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.13.3.tgz", + "integrity": "sha512-A8o9IVCv919vhv69SkLmyW2WjJR5WZgcMqV6L1uiGF8i8z18myrMhrp2JuSHx29PRT9uNyzNC4Xrd4StYjIhJg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-htmlnano": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.13.3.tgz", + "integrity": "sha512-K4Uvg0Sy2pECP7pdvvbud++F0pfcbNkq+IxTrgqBX5HJnLEmRZwgdvZEKF43oMEolclMnURMQRGjRplRaPdbXg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "htmlnano": "^2.0.0", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-image": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.13.3.tgz", + "integrity": "sha512-wlDUICA29J4UnqkKrWiyt68g1e85qfYhp4zJFcFJL0LX1qqh1QwsLUz3YJ+KlruoqPxJSFEC8ncBEKiVCsqhEQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/utils": "2.13.3", + "@parcel/workers": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/optimizer-svgo": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.13.3.tgz", + "integrity": "sha512-piIKxQKzhZK54dJR6yqIcq+urZmpsfgUpLCZT3cnWlX4ux5+S2iN66qqZBs0zVn+a58LcWcoP4Z9ieiJmpiu2w==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/optimizer-swc": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/optimizer-swc/-/optimizer-swc-2.13.3.tgz", + "integrity": "sha512-zNSq6oWqLlW8ksPIDjM0VgrK6ZAJbPQCDvs1V+p0oX3CzEe85lT5VkRpnfrN1+/vvEJNGL8e60efHKpI+rXGTA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "@swc/core": "^1.7.26", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/package-manager": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.13.3.tgz", + "integrity": "sha512-FLNI5OrZxymGf/Yln0E/kjnGn5sdkQAxW7pQVdtuM+5VeN75yibJRjsSGv88PvJ+KvpD2ANgiIJo1RufmoPcww==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/fs": "2.13.3", + "@parcel/logger": "2.13.3", + "@parcel/node-resolver-core": "3.4.3", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "@parcel/workers": "2.13.3", + "@swc/core": "^1.7.26", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/packager-css": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.13.3.tgz", + "integrity": "sha512-ghDqRMtrUwaDERzFm9le0uz2PTeqqsjsW0ihQSZPSAptElRl9o5BR+XtMPv3r7Ui0evo+w35gD55oQCJ28vCig==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-html": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.13.3.tgz", + "integrity": "sha512-jDLnKSA/EzVEZ3/aegXO3QJ/Ij732AgBBkIQfeC8tUoxwVz5b3HiPBAjVjcUSfZs7mdBSHO+ELWC3UD+HbsIrQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-js": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.13.3.tgz", + "integrity": "sha512-0pMHHf2zOn7EOJe88QJw5h/wcV1bFfj6cXVcE55Wa8GX3V+SdCgolnlvNuBcRQ1Tlx0Xkpo+9hMFVIQbNQY6zw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "globals": "^13.2.0", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-raw": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.13.3.tgz", + "integrity": "sha512-AWu4UB+akBdskzvT3KGVHIdacU9f7cI678DQQ1jKQuc9yZz5D0VFt3ocFBOmvDfEQDF0uH3jjtJR7fnuvX7Biw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-svg": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.13.3.tgz", + "integrity": "sha512-tKGRiFq/4jh5u2xpTstNQ7gu+RuZWzlWqpw5NaFmcKe6VQe5CMcS499xTFoREAGnRvevSeIgC38X1a+VOo+/AA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "posthtml": "^0.16.4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/packager-wasm": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/packager-wasm/-/packager-wasm-2.13.3.tgz", + "integrity": "sha512-SZB56/b230vFrSehVXaUAWjJmWYc89gzb8OTLkBm7uvtFtov2J1R8Ig9TTJwinyXE3h84MCFP/YpQElSfoLkJw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3" + }, + "engines": { + "node": ">=16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/plugin": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.13.3.tgz", + "integrity": "sha512-cterKHHcwg6q11Gpif/aqvHo056TR+yDVJ3fSdiG2xr5KD1VZ2B3hmofWERNNwjMcnR1h9Xq40B7jCKUhOyNFA==", + "dev": true, + "dependencies": { + "@parcel/types": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/profiler": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/profiler/-/profiler-2.13.3.tgz", + "integrity": "sha512-ok6BwWSLvyHe5TuSXjSacYnDStFgP5Y30tA9mbtWSm0INDsYf+m5DqzpYPx8U54OaywWMK8w3MXUClosJX3aPA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/events": "2.13.3", + "@parcel/types-internal": "2.13.3", + "chrome-trace-event": "^1.0.2" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-cli": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.13.3.tgz", + "integrity": "sha512-EA5tKt/6bXYNMEavSs35qHlFdx6cZmRazlZxPBgxPePQYoouNAPMNLUOEQozaPhz9f5fvNDN7EHOFaAWcdO2LA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/types": "2.13.3", + "@parcel/utils": "2.13.3", + "chalk": "^4.1.2", + "term-size": "^2.2.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-dev-server": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.13.3.tgz", + "integrity": "sha512-ZNeFp6AOIQFv7mZIv2P5O188dnZHNg0ymeDVcakfZomwhpSva2dFNS3AnvWo4eyWBlUxkmQO8BtaxeWTs7jAuA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/reporter-tracer": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/reporter-tracer/-/reporter-tracer-2.13.3.tgz", + "integrity": "sha512-aBsVPI8jLZTDkFYrI69GxnsdvZKEYerkPsu935LcX9rfUYssOnmmUP+3oI+8fbg+qNjJuk9BgoQ4hCp9FOphMQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "chrome-trace-event": "^1.0.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/resolver-default": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.13.3.tgz", + "integrity": "sha512-urBZuRALWT9pFMeWQ8JirchLmsQEyI9lrJptiwLbJWrwvmlwSUGkcstmPwoNRf/aAQjICB7ser/247Vny0pFxA==", + "dev": true, + "dependencies": { + "@parcel/node-resolver-core": "3.4.3", + "@parcel/plugin": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-browser-hmr": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.13.3.tgz", + "integrity": "sha512-EAcPojQFUNUGUrDk66cu3ySPO0NXRVS5CKPd4QrxPCVVbGzde4koKu8krC/TaGsoyUqhie8HMnS70qBP0GFfcQ==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-js": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.13.3.tgz", + "integrity": "sha512-62OucNAnxb2Q0uyTFWW/0Hvv2DJ4b5H6neh/YFu2/wmxaZ37xTpEuEcG2do7KW54xE5DeLP+RliHLwi4NvR3ww==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-react-refresh": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.13.3.tgz", + "integrity": "sha512-PYZ1klpJVwqE3WuifILjtF1dugtesHEuJcXYZI85T6UoRSD5ctS1nAIpZzT14Ga1lRt/jd+eAmhWL1l3m/Vk1Q==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "react-error-overlay": "6.0.9", + "react-refresh": ">=0.9 <=0.14" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/runtime-service-worker": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.13.3.tgz", + "integrity": "sha512-BjMhPuT7Us1+YIo31exPRwomPiL+jrZZS5UUAwlEW2XGHDceEotzRM94LwxeFliCScT4IOokGoxixm19qRuzWg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/rust": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/rust/-/rust-2.13.3.tgz", + "integrity": "sha512-dLq85xDAtzr3P5200cvxk+8WXSWauYbxuev9LCPdwfhlaWo/JEj6cu9seVdWlkagjGwkoV1kXC+GGntgUXOLAQ==", + "dev": true, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/source-map": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@parcel/source-map/-/source-map-2.1.1.tgz", + "integrity": "sha512-Ejx1P/mj+kMjQb8/y5XxDUn4reGdr+WyKYloBljpppUy8gs42T+BNoEOuRYqDVdgPc6NxduzIDoJS9pOFfV5Ew==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": "^12.18.3 || >=14" + } + }, + "node_modules/@parcel/transformer-babel": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.13.3.tgz", + "integrity": "sha512-ikzK9f5WTFrdQsPitQgjCPH6HmVU8AQPRemIJ2BndYhtodn5PQut5cnSvTrqax8RjYvheEKCQk/Zb/uR7qgS3g==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "browserslist": "^4.6.6", + "json5": "^2.2.0", + "nullthrows": "^1.1.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-css": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.13.3.tgz", + "integrity": "sha512-zbrNURGph6JeVADbGydyZ7lcu/izj41kDxQ9xw4RPRW/3rofQiTU0OTREi+uBWiMENQySXVivEdzHA9cA+aLAA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "browserslist": "^4.6.6", + "lightningcss": "^1.22.1", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-html": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.13.3.tgz", + "integrity": "sha512-Yf74FkL9RCCB4+hxQRVMNQThH9+fZ5w0NLiQPpWUOcgDEEyxTi4FWPQgEBsKl/XK2ehdydbQB9fBgPQLuQxwPg==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2", + "srcset": "4" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-html/node_modules/srcset": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz", + "integrity": "sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@parcel/transformer-image": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.13.3.tgz", + "integrity": "sha512-wL1CXyeFAqbp2wcEq/JD3a/tbAyVIDMTC6laQxlIwnVV7dsENhK1qRuJZuoBdixESeUpFQSmmQvDIhcfT/cUUg==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "@parcel/workers": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/transformer-js": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.13.3.tgz", + "integrity": "sha512-KqfNGn1IHzDoN2aPqt4nDksgb50Xzcny777C7A7hjlQ3cmkjyJrixYjzzsPaPSGJ+kJpknh3KE8unkQ9mhFvRQ==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/source-map": "^2.1.1", + "@parcel/utils": "2.13.3", + "@parcel/workers": "2.13.3", + "@swc/helpers": "^0.5.0", + "browserslist": "^4.6.6", + "nullthrows": "^1.1.1", + "regenerator-runtime": "^0.14.1", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@parcel/transformer-json": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.13.3.tgz", + "integrity": "sha512-rrq0ab6J0w9ePtsxi0kAvpCmrUYXXAx1Z5PATZakv89rSYbHBKEdXxyCoKFui/UPVCUEGVs5r0iOFepdHpIyeA==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "json5": "^2.2.0" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-postcss": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.13.3.tgz", + "integrity": "sha512-AIiWpU0QSFBrPcYIqAnhqB8RGE6yHFznnxztfg1t2zMSOnK3xoU6xqYKv8H/MduShGGrC3qVOeDfM8MUwzL3cw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/utils": "2.13.3", + "clone": "^2.1.1", + "nullthrows": "^1.1.1", + "postcss-value-parser": "^4.2.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-posthtml": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.13.3.tgz", + "integrity": "sha512-5GSLyccpHASwFAu3uJ83gDIBSvfsGdVmhJvy0Vxe+K1Fklk2ibhvvtUHMhB7mg6SPHC+R9jsNc3ZqY04ZLeGjw==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-raw": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.13.3.tgz", + "integrity": "sha512-BFsAbdQF0l8/Pdb7dSLJeYcd8jgwvAUbHgMink2MNXJuRUvDl19Gns8jVokU+uraFHulJMBj40+K/RTd33in4g==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-react-refresh-wrap": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.13.3.tgz", + "integrity": "sha512-mOof4cRyxsZRdg8kkWaFtaX98mHpxUhcGPU+nF9RQVa9q737ItxrorsPNR9hpZAyE2TtFNflNW7RoYsgvlLw8w==", + "dev": true, + "dependencies": { + "@parcel/plugin": "2.13.3", + "@parcel/utils": "2.13.3", + "react-refresh": ">=0.9 <=0.14" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/transformer-svg": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.13.3.tgz", + "integrity": "sha512-9jm7ZF4KHIrGLWlw/SFUz5KKJ20nxHvjFAmzde34R9Wu+F1BOjLZxae7w4ZRwvIc+UVOUcBBQFmhSVwVDZg6Dw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/plugin": "2.13.3", + "@parcel/rust": "2.13.3", + "nullthrows": "^1.1.1", + "posthtml": "^0.16.5", + "posthtml-parser": "^0.12.1", + "posthtml-render": "^3.0.0", + "semver": "^7.5.2" + }, + "engines": { + "node": ">= 16.0.0", + "parcel": "^2.13.3" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/types": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/types/-/types-2.13.3.tgz", + "integrity": "sha512-+RpFHxx8fy8/dpuehHUw/ja9PRExC3wJoIlIIF42E7SLu2SvlTHtKm6EfICZzxCXNEBzjoDbamCRcN0nmTPlhw==", + "dev": true, + "dependencies": { + "@parcel/types-internal": "2.13.3", + "@parcel/workers": "2.13.3" + } + }, + "node_modules/@parcel/types-internal": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/types-internal/-/types-internal-2.13.3.tgz", + "integrity": "sha512-Lhx0n+9RCp+Ipktf/I+CLm3zE9Iq9NtDd8b2Vr5lVWyoT8AbzBKIHIpTbhLS4kjZ80L3I6o93OYjqAaIjsqoZw==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/feature-flags": "2.13.3", + "@parcel/source-map": "^2.1.1", + "utility-types": "^3.10.0" + } + }, + "node_modules/@parcel/utils": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/utils/-/utils-2.13.3.tgz", + "integrity": "sha512-yxY9xw2wOUlJaScOXYZmMGoZ4Ck4Kqj+p6Koe5kLkkWM1j98Q0Dj2tf/mNvZi4yrdnlm+dclCwNRnuE8Q9D+pw==", + "dev": true, + "dependencies": { + "@parcel/codeframe": "2.13.3", + "@parcel/diagnostic": "2.13.3", + "@parcel/logger": "2.13.3", + "@parcel/markdown-ansi": "2.13.3", + "@parcel/rust": "2.13.3", + "@parcel/source-map": "^2.1.1", + "chalk": "^4.1.2", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", + "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.0", + "@parcel/watcher-darwin-arm64": "2.5.0", + "@parcel/watcher-darwin-x64": "2.5.0", + "@parcel/watcher-freebsd-x64": "2.5.0", + "@parcel/watcher-linux-arm-glibc": "2.5.0", + "@parcel/watcher-linux-arm-musl": "2.5.0", + "@parcel/watcher-linux-arm64-glibc": "2.5.0", + "@parcel/watcher-linux-arm64-musl": "2.5.0", + "@parcel/watcher-linux-x64-glibc": "2.5.0", + "@parcel/watcher-linux-x64-musl": "2.5.0", + "@parcel/watcher-win32-arm64": "2.5.0", + "@parcel/watcher-win32-ia32": "2.5.0", + "@parcel/watcher-win32-x64": "2.5.0" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", + "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", + "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", + "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", + "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", + "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", + "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", + "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", + "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", + "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", + "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", + "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", + "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", + "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/workers": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/@parcel/workers/-/workers-2.13.3.tgz", + "integrity": "sha512-oAHmdniWTRwwwsKbcF4t3VjOtKN+/W17Wj5laiYB+HLkfsjGTfIQPj3sdXmrlBAGpI4omIcvR70PHHXnfdTfwA==", + "dev": true, + "dependencies": { + "@parcel/diagnostic": "2.13.3", + "@parcel/logger": "2.13.3", + "@parcel/profiler": "2.13.3", + "@parcel/types-internal": "2.13.3", + "@parcel/utils": "2.13.3", + "nullthrows": "^1.1.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "peerDependencies": { + "@parcel/core": "^2.13.3" + } + }, + "node_modules/@swc/core": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.10.7.tgz", + "integrity": "sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.17" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.10.7", + "@swc/core-darwin-x64": "1.10.7", + "@swc/core-linux-arm-gnueabihf": "1.10.7", + "@swc/core-linux-arm64-gnu": "1.10.7", + "@swc/core-linux-arm64-musl": "1.10.7", + "@swc/core-linux-x64-gnu": "1.10.7", + "@swc/core-linux-x64-musl": "1.10.7", + "@swc/core-win32-arm64-msvc": "1.10.7", + "@swc/core-win32-ia32-msvc": "1.10.7", + "@swc/core-win32-x64-msvc": "1.10.7" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.10.7.tgz", + "integrity": "sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.10.7.tgz", + "integrity": "sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.10.7.tgz", + "integrity": "sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.10.7.tgz", + "integrity": "sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.10.7.tgz", + "integrity": "sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.10.7.tgz", + "integrity": "sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.10.7.tgz", + "integrity": "sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.10.7.tgz", + "integrity": "sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.10.7.tgz", + "integrity": "sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.10.7.tgz", + "integrity": "sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true + }, + "node_modules/@swc/helpers": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", + "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", + "dev": true, + "dependencies": { + "tslib": "^2.8.0" + } + }, + "node_modules/@swc/types": { + "version": "0.1.17", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.17.tgz", + "integrity": "sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==", + "dev": true, + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/base-x": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", + "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.24.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz", + "integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001692", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001692.tgz", + "integrity": "sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz", + "integrity": "sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==", + "dev": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", + "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/cosmiconfig": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-9.0.0.tgz", + "integrity": "sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==", + "dev": true, + "dependencies": { + "env-paths": "^2.2.1", + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.2.2.tgz", + "integrity": "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/dotenv-expand": { + "version": "11.0.7", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-11.0.7.tgz", + "integrity": "sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==", + "dev": true, + "dependencies": { + "dotenv": "^16.4.5" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.83", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.83.tgz", + "integrity": "sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==", + "dev": true + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/get-port": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-4.2.0.tgz", + "integrity": "sha512-/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/htmlnano": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/htmlnano/-/htmlnano-2.1.1.tgz", + "integrity": "sha512-kAERyg/LuNZYmdqgCdYvugyLWNFAm8MWXpQMz1pLpetmCbFwoMxvkSoaAMlFrOC4OKTWI4KlZGT/RsNxg4ghOw==", + "dev": true, + "dependencies": { + "cosmiconfig": "^9.0.0", + "posthtml": "^0.16.5", + "timsort": "^0.3.0" + }, + "peerDependencies": { + "cssnano": "^7.0.0", + "postcss": "^8.3.11", + "purgecss": "^6.0.0", + "relateurl": "^0.2.7", + "srcset": "5.0.1", + "svgo": "^3.0.2", + "terser": "^5.10.0", + "uncss": "^0.17.3" + }, + "peerDependenciesMeta": { + "cssnano": { + "optional": true + }, + "postcss": { + "optional": true + }, + "purgecss": { + "optional": true + }, + "relateurl": { + "optional": true + }, + "srcset": { + "optional": true + }, + "svgo": { + "optional": true + }, + "terser": { + "optional": true + }, + "uncss": { + "optional": true + } + } + }, + "node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-json": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", + "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lightningcss": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.29.1.tgz", + "integrity": "sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==", + "dev": true, + "dependencies": { + "detect-libc": "^1.0.3" + }, + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "lightningcss-darwin-arm64": "1.29.1", + "lightningcss-darwin-x64": "1.29.1", + "lightningcss-freebsd-x64": "1.29.1", + "lightningcss-linux-arm-gnueabihf": "1.29.1", + "lightningcss-linux-arm64-gnu": "1.29.1", + "lightningcss-linux-arm64-musl": "1.29.1", + "lightningcss-linux-x64-gnu": "1.29.1", + "lightningcss-linux-x64-musl": "1.29.1", + "lightningcss-win32-arm64-msvc": "1.29.1", + "lightningcss-win32-x64-msvc": "1.29.1" + } + }, + "node_modules/lightningcss-darwin-arm64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.29.1.tgz", + "integrity": "sha512-HtR5XJ5A0lvCqYAoSv2QdZZyoHNttBpa5EP9aNuzBQeKGfbyH5+UipLWvVzpP4Uml5ej4BYs5I9Lco9u1fECqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-darwin-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.29.1.tgz", + "integrity": "sha512-k33G9IzKUpHy/J/3+9MCO4e+PzaFblsgBjSGlpAaFikeBFm8B/CkO3cKU9oI4g+fjS2KlkLM/Bza9K/aw8wsNA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-freebsd-x64": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.29.1.tgz", + "integrity": "sha512-0SUW22fv/8kln2LnIdOCmSuXnxgxVC276W5KLTwoehiO0hxkacBxjHOL5EtHD8BAXg2BvuhsJPmVMasvby3LiQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm-gnueabihf": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.29.1.tgz", + "integrity": "sha512-sD32pFvlR0kDlqsOZmYqH/68SqUMPNj+0pucGxToXZi4XZgZmqeX/NkxNKCPsswAXU3UeYgDSpGhu05eAufjDg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-gnu": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.29.1.tgz", + "integrity": "sha512-0+vClRIZ6mmJl/dxGuRsE197o1HDEeeRk6nzycSy2GofC2JsY4ifCRnvUWf/CUBQmlrvMzt6SMQNMSEu22csWQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-arm64-musl": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.29.1.tgz", + "integrity": "sha512-UKMFrG4rL/uHNgelBsDwJcBqVpzNJbzsKkbI3Ja5fg00sgQnHw/VrzUTEc4jhZ+AN2BvQYz/tkHu4vt1kLuJyw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-gnu": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.29.1.tgz", + "integrity": "sha512-u1S+xdODy/eEtjADqirA774y3jLcm8RPtYztwReEXoZKdzgsHYPl0s5V52Tst+GKzqjebkULT86XMSxejzfISw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-linux-x64-musl": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.29.1.tgz", + "integrity": "sha512-L0Tx0DtaNUTzXv0lbGCLB/c/qEADanHbu4QdcNOXLIe1i8i22rZRpbT3gpWYsCh9aSL9zFujY/WmEXIatWvXbw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-arm64-msvc": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.29.1.tgz", + "integrity": "sha512-QoOVnkIEFfbW4xPi+dpdft/zAKmgLgsRHfJalEPYuJDOWf7cLQzYg0DEh8/sn737FaeMJxHZRc1oBreiwZCjog==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lightningcss-win32-x64-msvc": { + "version": "1.29.1", + "resolved": "https://registry.npmjs.org/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.29.1.tgz", + "integrity": "sha512-NygcbThNBe4JElP+olyTI/doBNGJvLs3bFCRPdvuCcxZCcCZ71B858IHpdm7L1btZex0FvCmM17FK98Y9MRy1Q==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 12.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/lmdb": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/lmdb/-/lmdb-2.8.5.tgz", + "integrity": "sha512-9bMdFfc80S+vSldBmG3HOuLVHnxRdNTlpzR6QDnzqCQtCzGUEAGTzBKYMeIM+I/sU4oZfgbcbS7X7F65/z/oxQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "msgpackr": "^1.9.5", + "node-addon-api": "^6.1.0", + "node-gyp-build-optional-packages": "5.1.1", + "ordered-binary": "^1.4.1", + "weak-lru-cache": "^1.2.2" + }, + "bin": { + "download-lmdb-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@lmdb/lmdb-darwin-arm64": "2.8.5", + "@lmdb/lmdb-darwin-x64": "2.8.5", + "@lmdb/lmdb-linux-arm": "2.8.5", + "@lmdb/lmdb-linux-arm64": "2.8.5", + "@lmdb/lmdb-linux-x64": "2.8.5", + "@lmdb/lmdb-win32-x64": "2.8.5" + } + }, + "node_modules/lmdb/node_modules/node-addon-api": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz", + "integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/msgpackr": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.2.tgz", + "integrity": "sha512-F9UngXRlPyWCDEASDpTf6c9uNhGPTqnTeLVt7bN+bU1eajoR/8V9ys2BRaV5C/e5ihE6sJ9uPIKaYt6bFuO32g==", + "dev": true, + "optionalDependencies": { + "msgpackr-extract": "^3.0.2" + } + }, + "node_modules/msgpackr-extract": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz", + "integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build-optional-packages": "5.2.2" + }, + "bin": { + "download-msgpackr-prebuilds": "bin/download-prebuilds.js" + }, + "optionalDependencies": { + "@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3", + "@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3" + } + }, + "node_modules/msgpackr-extract/node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/msgpackr-extract/node_modules/node-gyp-build-optional-packages": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz", + "integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==", + "dev": true, + "optional": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true + }, + "node_modules/node-gyp-build-optional-packages": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.1.1.tgz", + "integrity": "sha512-+P72GAjVAbTxjjwUmwjVrqrdZROD4nf8KgpBoDxqXXTiYZZt/ud60dE5yvCSr9lRO8e8yv6kgJIC0K0PfZFVQw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.1" + }, + "bin": { + "node-gyp-build-optional-packages": "bin.js", + "node-gyp-build-optional-packages-optional": "optional.js", + "node-gyp-build-optional-packages-test": "build-test.js" + } + }, + "node_modules/node-gyp-build-optional-packages/node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/node-releases": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "dev": true + }, + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", + "dev": true + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ordered-binary": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ordered-binary/-/ordered-binary-1.5.3.tgz", + "integrity": "sha512-oGFr3T+pYdTGJ+YFEILMpS3es+GiIbs9h/XQrclBXUtd44ey7XwfsMzM31f64I1SQOawDoDr/D823kNCADI8TA==", + "dev": true + }, + "node_modules/parcel": { + "version": "2.13.3", + "resolved": "https://registry.npmjs.org/parcel/-/parcel-2.13.3.tgz", + "integrity": "sha512-8GrC8C7J8mwRpAlk7EJ7lwdFTbCN+dcXH2gy5AsEs9pLfzo9wvxOTx6W0fzSlvCOvZOita+8GdfYlGfEt0tRgA==", + "dev": true, + "dependencies": { + "@parcel/config-default": "2.13.3", + "@parcel/core": "2.13.3", + "@parcel/diagnostic": "2.13.3", + "@parcel/events": "2.13.3", + "@parcel/feature-flags": "2.13.3", + "@parcel/fs": "2.13.3", + "@parcel/logger": "2.13.3", + "@parcel/package-manager": "2.13.3", + "@parcel/reporter-cli": "2.13.3", + "@parcel/reporter-dev-server": "2.13.3", + "@parcel/reporter-tracer": "2.13.3", + "@parcel/utils": "2.13.3", + "chalk": "^4.1.2", + "commander": "^12.1.0", + "get-port": "^4.2.0" + }, + "bin": { + "parcel": "lib/bin.js" + }, + "engines": { + "node": ">= 16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/posthtml": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", + "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", + "dev": true, + "dependencies": { + "posthtml-parser": "^0.11.0", + "posthtml-render": "^3.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/posthtml-parser": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.12.1.tgz", + "integrity": "sha512-rYFmsDLfYm+4Ts2Oh4DCDSZPtdC1BLnRXAobypVzX9alj28KGl65dIFtgDY9zB57D0TC4Qxqrawuq/2et1P0GA==", + "dev": true, + "dependencies": { + "htmlparser2": "^9.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/posthtml-render": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", + "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", + "dev": true, + "dependencies": { + "is-json": "^2.0.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/posthtml/node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/dom-serializer/node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dev": true, + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dev": true, + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, + "node_modules/posthtml/node_modules/posthtml-parser": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", + "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", + "dev": true, + "dependencies": { + "htmlparser2": "^7.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-error-overlay": { + "version": "6.0.9", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz", + "integrity": "sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==", + "dev": true + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "dev": true + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/srcset": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/srcset/-/srcset-5.0.1.tgz", + "integrity": "sha512-/P1UYbGfJVlxZag7aABNRrulEXAwCSDo7fklafOQrantuPTDmYgijJMks2zusPCVzgW9+4P69mq7w6pYuZpgxw==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha512-qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==", + "dev": true + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.2.tgz", + "integrity": "sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/utility-types": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/weak-lru-cache": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/weak-lru-cache/-/weak-lru-cache-1.2.2.tgz", + "integrity": "sha512-DEAoo25RfSYMuTGc9vPJzZcZullwIqRDSI9LOy+fkCJPi6hykCnfKaXTuPBDuXAUcqHXyOgFtHNp/kB2FjYHbw==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 000000000..1bb0a6a1b --- /dev/null +++ b/package.json @@ -0,0 +1,23 @@ +{ + "name": "saas-labs", + "version": "1.0.0", + "description": "This is saas labs assignment", + "scripts": { + "start": "parcel index.html", + "build": "parcel build index.html" + }, + "author": "prikshit8", + "license": "ISC", + "devDependencies": { + "parcel": "^2.10.2", + "process": "^0.11.10" + }, + "dependencies": { + "prop-types": "^15.8.1", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "browsersList": [ + "last 2 version" + ] +}