From dbd0de5bcb48dab99fbc8e5083220c7522d01498 Mon Sep 17 00:00:00 2001 From: Dario-Pinzauti Date: Mon, 28 Apr 2025 21:17:49 +0200 Subject: [PATCH 1/4] feat:add event pull request , add sinserbit and human company to sponsor --- src/app/eventi/lib/events-db.ts | 30 ++++++++++++++++++ ...sopravvivere-alle-pull-request15052025.png | Bin 0 -> 173439 bytes .../sponsorship/_components/PastSponsors.tsx | 12 +++++++ .../sponsorship/_components/human-company.png | Bin 0 -> 66371 bytes src/app/sponsorship/_components/sinerbit.png | Bin 0 -> 6440 bytes 5 files changed, 42 insertions(+) create mode 100644 src/app/eventi/lib/images/sopravvivere-alle-pull-request15052025.png create mode 100644 src/app/sponsorship/_components/human-company.png create mode 100644 src/app/sponsorship/_components/sinerbit.png diff --git a/src/app/eventi/lib/events-db.ts b/src/app/eventi/lib/events-db.ts index 81b4a27..b81a0c1 100644 --- a/src/app/eventi/lib/events-db.ts +++ b/src/app/eventi/lib/events-db.ts @@ -40,8 +40,38 @@ import data_revolutionIcon from "./images/thumb/data_Revolution_14_11_06.png"; import typescript_gennastic from "./images/typescript_gennastic20022025.png"; import supercharging_with_rag from "./images/supercharging_your_app_with_rag.png"; import supercharging_with_ragIcon from "./images/thumb/supercharging_your_app_with_rag.png"; +import sopravvivere_alle_pull_request from "./images/sopravvivere-alle-pull-request15052025.png"; export const events: FDevEvent[] = [ + { + title: "Sopravvivere alle Pull Request", + subtitle: + "Come rendere il codice perfetto senza scatenare drammi in ufficio", + icon: sopravvivere_alle_pull_request, + image: sopravvivere_alle_pull_request, + abstract: ` +È una tranquilla giornata di lavoro, +finché improvvisamente arriva una nuova **Pull Request**. +La apri con un click e, in un attimo, ti assale una sensazione di panico. +Ti ritrovi a fissare linee e linee di codice che ti fanno pensare: 'Ma è una PR o una dichiarazione di guerra?' +Dopo il primo momento di shock, ti rimbocchi le maniche e ti butti nel codice: +il tuo obiettivo non è solo riscrivere tutto, ma fare in modo che una cosa del genere non accada mai più. + +In questo talk, vedremo insieme come funziona il processo di revisione: +dall'individuazione dei problemi al refactoring, fino alla chiacchierata con il povero malcapitato che ha scritto il codice. +Guardando un esempio concreto, scopriremo come ogni PR possa diventare un'opportunità per crescere e per migliorare il codice, +continuando a mantenere buoni rapporti con i colleghi (almeno fino al prossimo commit!).`, + current: true, + hideSponsorInNetworking: true, + date: dayjs("2025-05-15 18:30").toDate(), + sponsor: "sinerbit", + place: "Camplus Firenze", + address: "5 Via del Romito #7 50134 Firenze", + eventbriteId: "1330690263399", + eventbriteLink: + "https://www.eventbrite.it/e/biglietti-sopravvivere-alle-pull-request-1330690263399", + type: "meetup", + }, { title: "Supercharging your App with a RAG: a real-world usecase", subtitle: diff --git a/src/app/eventi/lib/images/sopravvivere-alle-pull-request15052025.png b/src/app/eventi/lib/images/sopravvivere-alle-pull-request15052025.png new file mode 100644 index 0000000000000000000000000000000000000000..9a635f8967f19d1bd99ebd718a036b3db58e01c9 GIT binary patch literal 173439 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 literal 0 HcmV?d00001 diff --git a/src/app/sponsorship/_components/PastSponsors.tsx b/src/app/sponsorship/_components/PastSponsors.tsx index 7d92b7e..36f8c73 100644 --- a/src/app/sponsorship/_components/PastSponsors.tsx +++ b/src/app/sponsorship/_components/PastSponsors.tsx @@ -3,6 +3,8 @@ import extendi from "./extendi_logo.svg"; import gucci from "./gucci-logo.png"; import _42firenze from "./42firenze.png"; import seacom from "./seacom.png"; +import sinerbit from "./sinerbit.png"; +import human_company from "./human-company.png"; import frameSchool from "./frame-school-logo.png"; import Image from "next/image"; import { H3 } from "@/components/ui/Heading"; @@ -37,6 +39,16 @@ const sponsors = [ link: "https://seacom.it/", logo: seacom, }, + { + name: "Human Company", + link: "https://humancompany.com/", + logo: human_company, + }, + { + name: "sinerbit", + link: "https://sinerbit.com/", + logo: sinerbit, + }, ]; export default function PastSponsors() { diff --git a/src/app/sponsorship/_components/human-company.png b/src/app/sponsorship/_components/human-company.png new file mode 100644 index 0000000000000000000000000000000000000000..48c5f8718b341cad058da3c473143384fdd57bac GIT binary patch literal 66371 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%0ArHDM#4I3Y^y;s4uZpw@11Yu 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�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 literal 0 HcmV?d00001 diff --git a/src/app/sponsorship/_components/sinerbit.png b/src/app/sponsorship/_components/sinerbit.png new file mode 100644 index 0000000000000000000000000000000000000000..53df80bd55676056f4a690dfbe11ccd50b5f070e GIT binary patch literal 6440 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 v(dd}Cw;|FTXeAtu-#Pwg(tjmO-F`rGA Date: Wed, 30 Apr 2025 19:33:40 +0200 Subject: [PATCH 2/4] feat:add supabase support and migrate evets from json to db --- README.md | 25 + next.config.js | 6 +- package-lock.json | 6231 +++++++++++++++++ package.json | 1 + sql/past_event_migration_init.sql | 447 ++ src/app/event/[id]/_components/Event.tsx | 3 +- .../event/[id]/_components/EventProgram.tsx | 2 +- src/app/event/[id]/page.tsx | 21 +- src/app/eventi/_components/Event.tsx | 3 +- src/app/eventi/_components/EventHero.tsx | 5 +- src/app/eventi/_components/EventIntro.tsx | 5 +- src/app/eventi/_components/NextEvents.tsx | 5 +- src/app/eventi/_components/PastEvents.tsx | 5 +- src/app/eventi/conferma/page.tsx | 5 +- src/app/eventi/lib/EventService.ts | 54 +- src/app/eventi/lib/events-db.ts | 2 +- src/app/eventi/lib/supabase/events.ts | 48 + src/app/eventi/lib/supabase/mappers.ts | 24 + src/app/eventi/lib/supabase/types.ts | 19 + src/app/eventi/lib/types.ts | 31 + src/lib/storage.ts | 7 + src/lib/supabaseClient.js | 6 + supabase/migrations/20250429195333_events.sql | 22 + yarn.lock | 477 +- 24 files changed, 7188 insertions(+), 266 deletions(-) create mode 100644 package-lock.json create mode 100644 sql/past_event_migration_init.sql create mode 100644 src/app/eventi/lib/supabase/events.ts create mode 100644 src/app/eventi/lib/supabase/mappers.ts create mode 100644 src/app/eventi/lib/supabase/types.ts create mode 100644 src/app/eventi/lib/types.ts create mode 100644 src/lib/storage.ts create mode 100644 src/lib/supabaseClient.js create mode 100644 supabase/migrations/20250429195333_events.sql diff --git a/README.md b/README.md index 0d4866c..0967462 100644 --- a/README.md +++ b/README.md @@ -61,5 +61,30 @@ when you open a Pull request, we make a preview deployement. So you can view anc You should use conventional commit messages: https://www.conventionalcommits.org/en/v1.0.0/ +### Supabase +[Supabase cli](https://supabase.com/docs/guides/local-development/cli/getting-started) +Create migration +```bash +supabase migration new migration_name +``` + +Start local db in docker + +```bash +supabase start +``` +Test Migration in local Environment + +```bash +supabase db reset +``` +```bash +supabase migration up +``` +Push change to remote db + +```bash +supabase db push +``` diff --git a/next.config.js b/next.config.js index 767719f..643b9d5 100644 --- a/next.config.js +++ b/next.config.js @@ -1,4 +1,8 @@ /** @type {import('next').NextConfig} */ -const nextConfig = {} +const nextConfig = { + images: { + domains: ['127.0.0.1','hxvpakphgbaqossrckll.supabase.co'], // aggiungi qui l'hostname del tuo bucket locale + }, +}; module.exports = nextConfig diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a10178d --- /dev/null +++ b/package-lock.json @@ -0,0 +1,6231 @@ +{ + "name": "firenze.dev.2", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "firenze.dev.2", + "version": "0.1.0", + "dependencies": { + "@heroicons/react": "^2.0.18", + "@next/third-parties": "^14.0.4", + "@supabase/supabase-js": "^2.49.4", + "dayjs": "^1.11.10", + "next": "14.0.1", + "nprogress": "^0.2.0", + "react": "^18", + "react-dom": "^18", + "react-markdown": "^9.0.0" + }, + "devDependencies": { + "@tailwindcss/typography": "^0.5.10", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "eslint": "^8", + "eslint-config-next": "14.0.1", + "next-sitemap": "^4.2.3", + "postcss": "^8", + "prettier": "^3.0.3", + "sharp": "^0.32.6", + "tailwindcss": "^3.3.0", + "typescript": "^5" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@babel/runtime": { + "version": "7.23.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.23.2.tgz", + "integrity": "sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@corex/deepmerge": { + "version": "4.0.43", + "resolved": "https://registry.npmjs.org/@corex/deepmerge/-/deepmerge-4.0.43.tgz", + "integrity": "sha512-N8uEMrMPL0cu/bdboEWpQYb/0i2K5Qn8eCsxzOmxSggJbbQte7ljMRoXm917AbntqTGOzdTu+vP3KOOzoC70HQ==", + "dev": true + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.2.tgz", + "integrity": "sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/js": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/@heroicons/react": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.1.1.tgz", + "integrity": "sha512-JyyN9Lo66kirbCMuMMRPtJxtKJoIsXKS569ebHGGRKbl8s4CtUfLnyKJxteA+vIKySocO4s1SkTkGS4xtG/yEA==", + "peerDependencies": { + "react": ">= 16" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.1", + "debug": "^4.1.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", + "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.20", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", + "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@next/env": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.0.1.tgz", + "integrity": "sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.1.tgz", + "integrity": "sha512-bLjJMwXdzvhnQOnxvHoTTUh/+PYk6FF/DCgHi4BXwXCINer+o1ZYfL9aVeezj/oI7wqGJOqwGIXrlBvPbAId3w==", + "dev": true, + "dependencies": { + "glob": "7.1.7" + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.1.tgz", + "integrity": "sha512-JyxnGCS4qT67hdOKQ0CkgFTp+PXub5W1wsGvIq98TNbF3YEIN7iDekYhYsZzc8Ov0pWEsghQt+tANdidITCLaw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/third-parties": { + "version": "14.2.23", + "resolved": "https://registry.npmjs.org/@next/third-parties/-/third-parties-14.2.23.tgz", + "integrity": "sha512-6HpKVTnRhr1ueZS0rQfKJTtTbxzGJVgWP8l4TgjJowmIGMJTQs0KQuiaafgOl5RAZimnez5FZuJ0JoyJTMp6vg==", + "dependencies": { + "third-party-capital": "1.0.20" + }, + "peerDependencies": { + "next": "^13.0.0 || ^14.0.0", + "react": "^18.2.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz", + "integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==", + "dev": true + }, + "node_modules/@supabase/auth-js": { + "version": "2.69.1", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.69.1.tgz", + "integrity": "sha512-FILtt5WjCNzmReeRLq5wRs3iShwmnWgBvxHfqapC/VoljJl+W8hDAyFmf1NVw3zH+ZjZ05AKxiKxVeb0HNWRMQ==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/functions-js": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.4.tgz", + "integrity": "sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/node-fetch": { + "version": "2.6.15", + "resolved": "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz", + "integrity": "sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/@supabase/postgrest-js": { + "version": "1.19.4", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz", + "integrity": "sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/realtime-js": { + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.2.tgz", + "integrity": "sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14", + "@types/phoenix": "^1.5.4", + "@types/ws": "^8.5.10", + "ws": "^8.18.0" + } + }, + "node_modules/@supabase/storage-js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz", + "integrity": "sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA==", + "dependencies": { + "@supabase/node-fetch": "^2.6.14" + } + }, + "node_modules/@supabase/supabase-js": { + "version": "2.49.4", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.49.4.tgz", + "integrity": "sha512-jUF0uRUmS8BKt37t01qaZ88H9yV1mbGYnqLeuFWLcdV+x1P4fl0yP9DGtaEhFPZcwSom7u16GkLEH9QJZOqOkw==", + "dependencies": { + "@supabase/auth-js": "2.69.1", + "@supabase/functions-js": "2.4.4", + "@supabase/node-fetch": "2.6.15", + "@supabase/postgrest-js": "1.19.4", + "@supabase/realtime-js": "2.11.2", + "@supabase/storage-js": "2.7.1" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mdast": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + }, + "node_modules/@types/node": { + "version": "20.8.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz", + "integrity": "sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/phoenix": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz", + "integrity": "sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A==" + }, + "node_modules/@types/prop-types": { + "version": "15.7.9", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz", + "integrity": "sha512-n1yyPsugYNSmHgxDFjicaI2+gCNjsBck8UX9kuofAKlc0h1bL+20oSF72KeNaW2DUlesbEVCFgyV2dPGTiY42g==" + }, + "node_modules/@types/react": { + "version": "18.2.33", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz", + "integrity": "sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.14", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.14.tgz", + "integrity": "sha512-V835xgdSVmyQmI1KLV2BEIUgqEuinxp9O4G6g3FqO/SqLac049E53aysv0oEFD2kHfejeKU+ZqL2bcFWj9gLAQ==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.5.tgz", + "integrity": "sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw==" + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/@types/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.9.1.tgz", + "integrity": "sha512-C7AK2wn43GSaCUZ9do6Ksgi2g3mwFkMO3Cis96kzmgudoVaKyt62yNzJOktP0HDLb/iO2O0n2lBOzJgr6Q/cyg==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.9.1", + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/typescript-estree": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.9.1.tgz", + "integrity": "sha512-38IxvKB6NAne3g/+MyXMs2Cda/Sz+CEpmm+KLGEM8hx/CvnSRuw51i8ukfwB/B/sESdeTGet1NH1Wj7I0YXswg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.9.1.tgz", + "integrity": "sha512-BUGslGOb14zUHOUmDB2FfT6SI1CcZEJYfF3qFwBeUrU6srJfzANonwRYHDpLBuzbq3HaoF2XL2hcr01c8f8OaQ==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.9.1.tgz", + "integrity": "sha512-U+mUylTHfcqeO7mLWVQ5W/tMLXqVpRv61wm9ZtfE5egz7gtnmqVIw9ryh0mgIlkKk9rZLY3UHygsBSdB9/ftyw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "@typescript-eslint/visitor-keys": "6.9.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.9.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.9.1.tgz", + "integrity": "sha512-MUaPUe/QRLEffARsmNfmpghuQkW436DvESW+h+M52w0coICHRfD6Np9/K6PdACwnrq1HmuLl+cSPZaJmeVPkSw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.9.1", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/acorn": { + "version": "8.11.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", + "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "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/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", + "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz", + "integrity": "sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "node_modules/asynciterator.prototype": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz", + "integrity": "sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + } + }, + "node_modules/autoprefixer": { + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.21.10", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.8.2", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.8.2.tgz", + "integrity": "sha512-/dlp0fxyM3R8YW7MFzaHWXrf4zzbr0vaYb23VBFCl83R7nWNPg/yaQw2Dc8jzCMmDVLhSdzH8MjrsuIUuvX+6g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/b4a": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz", + "integrity": "sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==", + "dev": true + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/bare-events": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz", + "integrity": "sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg==", + "dev": true, + "optional": true + }, + "node_modules/bare-fs": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.0.tgz", + "integrity": "sha512-+VhW202E9eTVGkX7p+TNXtZC4RTzj9JfJW7PtfIbZ7mIQ/QT9uOafQTx7lx2n9ERmWsXvLHF4hStAFn4gl2mQw==", + "dev": true, + "optional": true, + "dependencies": { + "bare-events": "^2.0.0", + "bare-os": "^2.0.0", + "bare-path": "^2.0.0", + "streamx": "^2.13.0" + } + }, + "node_modules/bare-os": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz", + "integrity": "sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag==", + "dev": true, + "optional": true + }, + "node_modules/bare-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz", + "integrity": "sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw==", + "dev": true, + "optional": true, + "dependencies": { + "bare-os": "^2.1.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "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/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", + "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", + "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.30001541", + "electron-to-chromium": "^1.4.535", + "node-releases": "^2.0.13", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "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" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001559", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", + "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", + "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/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, + "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/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz", + "integrity": "sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==" + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "dev": true, + "dependencies": { + "mimic-response": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.572", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.572.tgz", + "integrity": "sha512-RlFobl4D3ieetbnR+2EpxdzFl9h0RAJkPK3pfiwMug2nhBin2ZCsGIAJWdpNniLz43sgXam/CgipOmvTA+rUiA==", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.15.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz", + "integrity": "sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/es-abstract": { + "version": "1.22.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", + "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.5", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.2", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz", + "integrity": "sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g==", + "dev": true, + "dependencies": { + "asynciterator.prototype": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "es-set-tostringtag": "^2.0.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.0.1" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", + "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "has-tostringtag": "^1.0.0", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.2", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.0.1.tgz", + "integrity": "sha512-QfIFK2WD39H4WOespjgf6PLv9Bpsd7KGGelCtmq4l67nGvnlsGpuvj0hIT+aIy6p5gKH+lAChYILsyDlxP52yg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "14.0.1", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", + "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz", + "integrity": "sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.14.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.7.1.tgz", + "integrity": "sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.7", + "aria-query": "^5.1.3", + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "ast-types-flow": "^0.0.7", + "axe-core": "^4.6.2", + "axobject-query": "^3.1.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "has": "^1.0.3", + "jsx-ast-utils": "^3.3.3", + "language-tags": "=1.0.5", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-jsx-a11y/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.33.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz", + "integrity": "sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flatmap": "^1.3.1", + "array.prototype.tosorted": "^1.1.1", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.12", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.6", + "object.fromentries": "^2.0.6", + "object.hasown": "^1.1.2", + "object.values": "^1.1.6", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.4", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.8" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-template": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz", + "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-fifo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz", + "integrity": "sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", + "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.9", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", + "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz", + "integrity": "sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==", + "dev": true + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + }, + "node_modules/globals": { + "version": "13.23.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", + "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/html-url-attributes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-url-attributes/-/html-url-attributes-3.0.0.tgz", + "integrity": "sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "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/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "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/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/inline-style-parser": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz", + "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", + "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", + "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", + "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", + "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", + "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "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-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.5.tgz", + "integrity": "sha512-qJhlO9cGXi6hBGKoxEG/sKZDAHD5Hnu9Hs4WbOY3pCWXDhw0N8x1NenNzm2EnNLkLkk7J2SdxAkDSbb6ftT+UQ==", + "dev": true, + "dependencies": { + "language-subtag-registry": "~0.3.2" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "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/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.0.tgz", + "integrity": "sha512-A8AJHlR7/wPQ3+Jre1+1rq040fX9A4Q1jG8JxmSNp/PLPHg80A6475wxTp3KzHpApFH6yWxFotHrJQA3dXP6/w==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/napi-build-utils": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz", + "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==", + "dev": true + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/next": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/next/-/next-14.0.1.tgz", + "integrity": "sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA==", + "dependencies": { + "@next/env": "14.0.1", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001406", + "postcss": "8.4.31", + "styled-jsx": "5.1.1", + "watchpack": "2.4.0" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.0.1", + "@next/swc-darwin-x64": "14.0.1", + "@next/swc-linux-arm64-gnu": "14.0.1", + "@next/swc-linux-arm64-musl": "14.0.1", + "@next/swc-linux-x64-gnu": "14.0.1", + "@next/swc-linux-x64-musl": "14.0.1", + "@next/swc-win32-arm64-msvc": "14.0.1", + "@next/swc-win32-ia32-msvc": "14.0.1", + "@next/swc-win32-x64-msvc": "14.0.1" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-sitemap": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/next-sitemap/-/next-sitemap-4.2.3.tgz", + "integrity": "sha512-vjdCxeDuWDzldhCnyFCQipw5bfpl4HmZA7uoo3GAaYGjGgfL4Cxb1CiztPuWGmS+auYs7/8OekRS8C2cjdAsjQ==", + "dev": true, + "funding": [ + { + "url": "https://github.com/iamvishnusankar/next-sitemap.git" + } + ], + "dependencies": { + "@corex/deepmerge": "^4.0.43", + "@next/env": "^13.4.3", + "fast-glob": "^3.2.12", + "minimist": "^1.2.8" + }, + "bin": { + "next-sitemap": "bin/next-sitemap.mjs", + "next-sitemap-cjs": "bin/next-sitemap.cjs" + }, + "engines": { + "node": ">=14.18" + }, + "peerDependencies": { + "next": "*" + } + }, + "node_modules/next-sitemap/node_modules/@next/env": { + "version": "13.5.6", + "resolved": "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz", + "integrity": "sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw==", + "dev": true + }, + "node_modules/node-abi": { + "version": "3.56.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz", + "integrity": "sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q==", + "dev": true, + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, + "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/node-releases": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", + "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "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==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", + "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "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/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", + "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "dev": true, + "dependencies": { + "lilconfig": "^2.0.5", + "yaml": "^2.1.1" + }, + "engines": { + "node": ">= 14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz", + "integrity": "sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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/prebuild-install": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", + "integrity": "sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw==", + "dev": true, + "dependencies": { + "detect-libc": "^2.0.0", + "expand-template": "^2.0.3", + "github-from-package": "0.0.0", + "minimist": "^1.2.3", + "mkdirp-classic": "^0.5.3", + "napi-build-utils": "^1.0.1", + "node-abi": "^3.3.0", + "pump": "^3.0.0", + "rc": "^1.2.7", + "simple-get": "^4.0.0", + "tar-fs": "^2.0.0", + "tunnel-agent": "^0.6.0" + }, + "bin": { + "prebuild-install": "bin.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prebuild-install/node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/prebuild-install/node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "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==", + "dev": true, + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "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/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==", + "dev": true + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "dependencies": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "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==", + "dev": true + }, + "node_modules/react-markdown": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/react-markdown/-/react-markdown-9.0.1.tgz", + "integrity": "sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "html-url-attributes": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "unified": "^11.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=18", + "react": ">=18" + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz", + "integrity": "sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz", + "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", + "dev": true + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "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" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "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/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/sharp": { + "version": "0.32.6", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz", + "integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "node-addon-api": "^6.1.0", + "prebuild-install": "^7.1.1", + "semver": "^7.5.4", + "simple-get": "^4.0.1", + "tar-fs": "^3.0.4", + "tunnel-agent": "^0.6.0" + }, + "engines": { + "node": ">=14.15.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "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/simple-get": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz", + "integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==", + "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" + } + ], + "dependencies": { + "decompress-response": "^6.0.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/streamx": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz", + "integrity": "sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ==", + "dev": true, + "dependencies": { + "fast-fifo": "^1.1.0", + "queue-tick": "^1.0.1" + }, + "optionalDependencies": { + "bare-events": "^2.2.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", + "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-to-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz", + "integrity": "sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==", + "dependencies": { + "inline-style-parser": "0.2.2" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.34.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.34.0.tgz", + "integrity": "sha512-70/LQEZ07TEcxiU2dz51FKaE6hCTWC6vr7FOk3Gr0U60C3shtAN+H+BFr9XlYe5xqf3RA8nrc+VIwzCfnxuXJw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "7.1.6", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/sucrase/node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "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/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tailwindcss": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.19.1", + "lilconfig": "^2.1.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "object-hash": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-fs": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz", + "integrity": "sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg==", + "dev": true, + "dependencies": { + "pump": "^3.0.0", + "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" + } + }, + "node_modules/tar-stream": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", + "dev": true, + "dependencies": { + "b4a": "^1.6.4", + "fast-fifo": "^1.2.0", + "streamx": "^2.15.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/third-party-capital": { + "version": "1.0.20", + "resolved": "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz", + "integrity": "sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA==" + }, + "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/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", + "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "dev": true, + "engines": { + "node": ">=16.13.0" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "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/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", + "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "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.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", + "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", + "dev": true, + "dependencies": { + "is-map": "^2.0.1", + "is-set": "^2.0.1", + "is-weakmap": "^2.0.1", + "is-weakset": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", + "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.4", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.3.tgz", + "integrity": "sha512-zw0VAJxgeZ6+++/su5AFoqBbZbrEakwu+X0M5HmcwUiBL7AzcuPKjj5we4xfQLp78LkEMpD0cOnUhmgOVy3KdQ==", + "dev": true, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.1.tgz", + "integrity": "sha512-625Z7bb5AyIzswF9hvfZWa+HTwFZw+Jn3lOBNZB87lUS0iuCYDHqk3ujuHCkiyPtSC0xFBtYDLcrZ11mF/ap3w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.1.tgz", + "integrity": "sha512-iVpn3KG3DprFXzVHM09kvb//4CNNXBQ9NB/pTm8LO+vnnnaObnzFdS5KM+w1okwa32xH0g8EvZIhoB3fI3mS1g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.1.tgz", + "integrity": "sha512-mVsGyMxTLWZXyD5sen6kGOTYVOO67lZjLApIj/JsTEEohDDt1im2nkspzfV5MvhfS7diDw6Rp/xvAQaWZTv1Ww==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.1.tgz", + "integrity": "sha512-wMqf90uDWN001NqCM/auRl3+qVVeKfjJdT9XW+RMIOf+rhUzadmYJu++tp2y+hUbb6GTRhT+VjQzcgg/QTD9NQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.1.tgz", + "integrity": "sha512-ol1X1e24w4j4QwdeNjfX0f+Nza25n+ymY0T2frTyalVczUmzkVD7QGgPTZMHfR1aLrO69hBs0G3QBYaj22J5GQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.1.tgz", + "integrity": "sha512-WEmTEeWs6yRUEnUlahTgvZteh5RJc4sEjCQIodJlZZ5/VJwVP8p2L7l6VhzQhT4h7KvLx/Ed4UViBdne6zpIsw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.1.tgz", + "integrity": "sha512-oFpHphN4ygAgZUKjzga7SoH2VGbEJXZa/KL8bHCAwCjDWle6R1SpiGOdUdA8EJ9YsG1TYWpzY6FTbUA+iAJeww==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.0.1", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.1.tgz", + "integrity": "sha512-FFp3nOJ/5qSpeWT0BZQ+YE1pSMk4IMpkME/1DwKBwhg4mJLB9L+6EXuJi4JEwaJdl5iN+UUlmUD3IsR1kx5fAg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + } + } +} diff --git a/package.json b/package.json index bc0c244..edca343 100644 --- a/package.json +++ b/package.json @@ -13,6 +13,7 @@ "dependencies": { "@heroicons/react": "^2.0.18", "@next/third-parties": "^14.0.4", + "@supabase/supabase-js": "^2.49.4", "dayjs": "^1.11.10", "next": "14.0.1", "nprogress": "^0.2.0", diff --git a/sql/past_event_migration_init.sql b/sql/past_event_migration_init.sql new file mode 100644 index 0000000..11e9ff9 --- /dev/null +++ b/sql/past_event_migration_init.sql @@ -0,0 +1,447 @@ + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'a4dda7a8-8f9b-44d3-bb42-a8b7f35e1f42', 'Sopravvivere alle Pull Request', 'Come rendere il codice perfetto senza scatenare drammi in ufficio', 'sopravvivere-alle-pull-request15052025.png', 'sopravvivere-alle-pull-request15052025.png', 'È una tranquilla giornata di lavoro, + finché improvvisamente arriva una nuova **Pull Request**. + La apri con un click e, in un attimo, ti assale una sensazione di panico. + Ti ritrovi a fissare linee e linee di codice che ti fanno pensare: ''Ma è una PR o una dichiarazione di guerra?'' + Dopo il primo momento di shock, ti rimbocchi le maniche e ti butti nel codice: + il tuo obiettivo non è solo riscrivere tutto, ma fare in modo che una cosa del genere non accada mai più. + + In questo talk, vedremo insieme come funziona il processo di revisione: + dall''individuazione dei problemi al refactoring, fino alla chiacchierata con il povero malcapitato che ha scritto il codice. + Guardando un esempio concreto, scopriremo come ogni PR possa diventare un''opportunità per crescere e per migliorare il codice, + continuando a mantenere buoni rapporti con i colleghi (almeno fino al prossimo commit!).', '2025-05-15T16:30:00.000Z', 'Camplus Firenze', 'sinerbit', + '5 Via del Romito #7 50134 Firenze', '1330690263399', 'https://www.eventbrite.it/e/biglietti-sopravvivere-alle-pull-request-1330690263399', null, null, 'meetup', + true, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'ad98c8e1-3e97-4409-90c4-533062d38085', 'Supercharging your App with a RAG: a real-world usecase', 'Come sfruttare la potenza dell''intelligenza artificiale per ottenere risultati sempre più accurati e personalizzati', 'supercharging_your_app_with_rag.png', 'supercharging_your_app_with_rag.png', '👉 Ti è mai capitato di usare un LLM che generava risposte affascinanti...ma completamente sbagliate? Oppure di provare a far lavorare un Agent, solo per scoprire che si perdeva in un loop infinito di richieste? + + Nel mondo dello sviluppo, un’AI generativa priva di contesto rischia di essere poco utile. È qui che entrano in gioco i Retrieval-Augmented Generation (RAG), strumenti indispensabili per costruire sistemi intelligenti in grado di elaborare i dati giusti al momento giusto. + + In questo talk, Giuseppe Funicello, nomade digitale e youtuber, ci guiderà oltre i limiti dei modelli generativi tradizionali, ottimizzando i processi di ingestion e retrieval dei dati per ottenere risultati sempre più accurati. Con il supporto del motore Cheshire Cat, un framework open-source per la creazione di Agent di AI, esploreremo casi d’uso concreti e best practice che ci insegneranno come integrare al meglio questi strumenti nei nostri progetti. + + 💡 Se vuoi progettare AI che non solo rispondono, ma ragionano, questo evento è per te.', '2025-04-02T16:30:00.000Z', '42 Firenze', '42 Firenze', + 'Via del Tiratoio, 1, 50124 Firenze', '1273032487439', 'https://www.eventbrite.it/e/biglietti-supercharging-your-app-with-a-rag-a-real-world-usecase-1273032487439', null, null, 'meetup', + true, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '53bfb2ac-2921-4707-8fdf-47d504cdd27d', 'TypeScript Gymnastics: Why Are They So Powerful for You?', 'Scopriremo la flessibilità e la potenza di TypeScript per creare soluzioni sempre più efficaci, versatili e sicure.', 'typescript_gennastic20022025.png', 'typescript_gennastic20022025.png', 'Il sistema di tipi di TypeScript non è solo uno strumento per intercettare errori: + è un potente alleato per risolvere problemi complessi, scrivendo codice pulito e affidabile. + Insieme a Luca Del Puppo, Senior Software Developer @Nearform, esploreremo tecniche + avanzate di TypeScript, come mapped types, conditional types e generics, + che possono aiutarci ad affrontare anche le sfide più difficili legate ai tipi. + Scoprirai come queste tecniche possano aiutarti a estrarre, trasformare e validare i tipi, + mantenendo il tuo codice semplice e facile da manutenere. + Queste tecniche avanzate di TypeScript, infatti, non servono solo a stupire i tuoi amici: + sono competenze pratiche che rendono i tuoi sistemi più robusti e facili da usare. + Al termine di questo talk saprai come sfruttare al massimo la flessibilità e la potenza di TypeScript, + per creare soluzioni sempre più efficaci, versatili e sicure.', '2025-02-20T17:30:00.000Z', 'Palazzo Borghese', 'Human Company', + '110 Via Ghibellina 50122 Firenze', '1218091667969', 'https://www.eventbrite.it/e/biglietti-typescript-gymnastics-why-are-they-so-powerful-for-you-1218091667969', null, null, 'meetup', + 'false', 'false' +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'fde17c27-1e44-41d6-822f-4e0c330dcf2a', 'Data Revolution: next-generation data architectures', 'Siamo sicuri che i tuoi dati stiano bene, lì ammucchiati in un vecchio DB?', 'data_Revolution_14_11_06.png', 'data_Revolution_14_11_06.png', 'Magari finora ha funzionato, ma il mondo della gestione dei dati si sta evolvendo rapidamente. + + In questo incontro Samuele Cucchi e Lorenzo Pasco, Data Engineer @Seacom, ci guideranno nel passaggio dalle architetture tradizionali a soluzioni di nuova generazione. + + Scopriremo i vantaggi di un approccio Data Mesh per snellire la gestione dei dati e come un Data Lakehouse con interazione git-like offra un controllo dinamico, con possibilità di rollback e commit dei dati. + Un''occasione per esplorare nuovi orizzonti e assicurarti che i tuoi dati siano pronti per le sfide future!', '2024-11-06T17:30:00.000Z', 'Murate Idea Park | MIP', 'Seacom', + '8 Piazza della Madonna della Neve 50122 Firenze', '1045371031897', 'https://www.eventbrite.it/e/biglietti-data-revolution-next-generation-data-architectures-1045371031897', null, null, 'meetup', + 'false', true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'c26bf184-f2ab-44fc-9c6d-976fe616a876', 'The unexpected attack: hacking the supply chain', 'Tanto prima o poi capita a tutti: impara a pensare come un hacker per anticipare gli attacchi', 'supply_chain.png', 'supply_cahain.png', 'Che cosa si intende quando parliamo di supply chain? E perché potrebbe rappresentare un pericoloso punto d''ingresso per attaccare il nostro software? + + In questo talk, Edoardo Dusi, Senior Developer Relations Engineer @ Storyblok, ci accompagnerà in un viaggio alla scoperta delle software supply chain, spiegando in modo chiaro come questi concetti influenzino la costruzione e distribuzione delle nostre applicazioni. + + Vedremo come le vulnerabilità della supply chain possano essere sfruttate per condurre alcuni degli attacchi più comuni e discuteremo insieme le strategie per difendere efficacemente il nostro software. + + Parleremo inoltre della Open Source Security Foundation (OpenSSF), un''iniziativa collaborativa che mira a rafforzare la sicurezza del software open source e che può rivelarsi di fondamentale importanza per prevenire questo tipo di attacchi, perché anche se il nostro codice è privato, si basa su progetti e librerie open source. + + Alla fine del talk, avremo una visione nitida e completa di come funziona una supply chain e avremo a disposizione un insieme di best practices e strategie concrete per salvaguardare le nostre applicazioni.', '2024-10-03T16:30:00.000Z', '42 Firenze', '42 Firenze', + 'Via del Tiratoio, 1, 50124 Firenze', '1006661681187', 'https://www.eventbrite.it/e/biglietti-the-unexpected-attack-hacking-the-supply-chain-1006661681187', null, null, 'meetup', + true, 'false' +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '999771eb-cf43-4ff4-ab47-1c25186b0f34', 'Summer Beer Meetup 2024', 'L''estate è finalmente alle porte, cosa c''è di meglio che condividere una birra fresca in compagnia?', 'beerGiugno.png', 'EventBrite_summerbeer.png', 'Ci ritroviamo alle porte dell''estate per una serata informale in cui conoscerci meglio, + condividere idee e discutere insieme delle prossime attività della community, + + il tutto accompagnato da una rinfrescante birretta offerta da noi! + + Ti aspettiamo mercoledì 5 giugno dalle 21:30 al Parc Bistrò, Piazzale delle Cascine, 50144 Firenze FI. + + La partecipazione è aperta a tutti, vieni con chi vuoi 😉', '2024-06-05T19:30:00.000Z', 'Parc Bistrò', null, + 'Piazzale delle Cascine 50144 Firenze', '909339367527', 'https://www.eventbrite.it/e/biglietti-summer-beer-meetup-909339367527?aff=ebdsoporgprofile&_gl=1*193px25*_up*MQ..*_ga*NDczMzI5MjIyLjE3MTYyMzU5MDE.*_ga_TQVES5V6SH*MTcxNjIzNTkwMS4xLjAuMTcxNjIzNTkwMS4wLjAuMA..', null, null, 'beer', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'a5c28fc8-0d72-41c3-b3b8-82299080f3dd', 'Shaping Your Future: carriera e crescita nel mondo Dev', 'Esplora il futuro dello sviluppo con Simone Torrisi di TomorrowDevs! Tecnologie, crescita professionale e aziende di successo ti aspettano!', '9_Maggio_thumb_colors.png', '9_Maggio_EventBrite_colors.png', 'Hai mai immaginato dove potresti trovarti nel tuo percorso professionale tra 10 anni? + Ti sei mai chiesto quali siano le scelte migliori per investire sul tuo futuro e ottenere + il lavoro dei tuoi sogni? Ti piacerebbe saper riconoscere le aziende che saranno + in grado di supportare la tua crescita e soddisfare le tue aspettative? + + A queste e ad altre domande risponderà [**Simone Torrisi**](https://www.linkedin.com/in/storrisi/), + Tech Mentor e Fondatore di **TomorrowDevs**, che, basandosi sulla sua esperienza sul campo, + ci offrirà una panoramica sugli ostacoli e sulle opportunità legate alla definizione + di un solido percorso di carriera per gli sviluppatori. + + Vedremo quali sono le maggiori difficoltà che si incontrano nel + definire una prospettiva a lungo termine, in un contesto che richiede personale tecnico sempre più specializzato, + ma che al tempo stesso è in grado di offrire solamente percorsi di carriera tradizionali e verticali. + Scopriremo quali sono gli aspetti da tenere in considerazione in questo processo di rinnovamento del + sistema e quali sono i punti chiave per consentire agli sviluppatori di percorrere una strada di crescita costante, + senza dover sacrificare i loro obiettivi professionali.', '2024-05-09T16:30:00.000Z', null, null, + 'Camplus, Via del romito 5/7, 50134 Firenze', '880064094397', 'https://www.eventbrite.it/e/biglietti-shaping-your-future-carriera-e-crescita-nel-mondo-dev-880064094397', null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'eadf9d1d-72f4-4189-b04f-7712c37be210', ' Data Analysis con l''IA 🐼', 'Un approccio innovativo all''analisi dei dati con l''IA generativa', '14Marzo_EventBrite_colors_thumb.png', '14Marzo_EventBrite_colors.png', 'Nell''era dei big data, l''analisi dei dati è diventata un pilastro fondamentale per l''innovazione aziendale. + + Tuttavia, il processo tradizionale di estrazione e elaborazione dei dati può essere laborioso e richiedere competenze specialistiche. + È qui che entra in gioco l''intelligenza artificiale (IA). + + In questo talk tecnico **Gabriele Baldi**, Head of Software Development in **Lotrèk**, + ci introdurrà al mondo della data analysis e ci mostrerà come sia possibile integrare l''IA generativa (quella in stile GPT, per capirci) con Pandas 🐼, + uno dei tool di manipolazione e processamento dati più famosi e utilizzati. + + Partendo dalle basi dell''analisi dati, esamineremo come sfruttare le più recenti tecnologie di IA per creare sistemi di analisi dati intelligenti e adattivi. + + Attraverso esempi pratici scopriremo come trasformare l''analisi dati da un compito complesso a un processo fluido e potenziato dall''intelligenza artificiale.', '2024-03-14T17:30:00.000Z', null, null, + 'Impact Hub Firenze, Via Panciatichi, 1, 50141', '851089440427', 'https://www.eventbrite.it/e/biglietti-data-analysis-con-lia-851089440427', null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'fdc7cf76-bc00-4628-b368-c122e0401231', '🚀 Call for Papers: Open Mic Night 🎤', '👩‍💻👨‍💻 Non vediamo l''ora di scoprire le tue idee! Unisciti a noi e fai sentire la tua voce! 💪😎', 'open-mic-night-icon.png', 'open-mic-night.png', 'Firenze.dev crede fortemente nell''aggregazione, nello scambio di idee e nella condivisione, da parte di chiunque sia un appassionato dello sviluppo software e di tutti gli argomenti che orbitano intorno a questo fantastico mondo! 🪐. + + ### 🫵 We want you! + + Ti piacerebbe parlare della tecnologia per cui stai in fissa in questo momento, raccontare un progetto che ti ha appassionato o semplicemente condividere un''esperienza, ma non hai ancora trovato l''occasione giusta per farlo? Bene, Open Mic Night potrebbe proprio fare al caso tuo!💪 + + + La community sta organizzando un evento dedicato a te, che sarà composto da 4/5 speech della durata di circa 15'' ciascuno, l''ambiente ideale per chi si trova a voler fare il suo primo talk. + + + ### 🤩 Perché partecipare? + + Potrai creare delle connessioni con altri appassionati del mondo tech. + + Farai un esperienza di public speaking che ti porterà notevoli vantaggi anche nel mondo professionale + + Ti divertirai! Firenze.dev è una community accogliente e aperta a nuove idee. + + + ### 📝 Come partecipare: + + Compila quest form [https://forms.gle/qqNZGx9BCiAbVXds8](https://forms.gle/qqNZGx9BCiAbVXds8) con un breve abstract (circa 200 parole) e il tuo profilo entro il 20 novembre. I talk selezionati saranno annunciati il 30 novembre. + + + 🚨 Attenzione: Se pensi che preparare un talk sia paragonabile a una delle sette fatiche di Ercole, non ti preoccupare, lo staff di firenze.dev, composto da vecchi lupi di mare 🏴‍☠️ che hanno affrontato le acque impervie di molteplici conferenze , sarà a tua disposizione per darti qualche dritta! + + + 👩‍💻👨‍💻 Non vediamo l''ora di scoprire le tue idee! + + + Unisciti a noi e fai sentire la tua voce! 💪😎', '2023-12-14T17:30:00.000Z', null, null, + null, '746333071307', 'https://www.eventbrite.it/e/biglietti-workshop-sviluppare-una-dapp-su-blockchain-746333071307', null, null, 'cfp', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '1c40f7da-e4e4-4bc0-a8d3-ba9775323b40', 'Workshop: sviluppare una dApp su blockchain', 'Scopriremo insieme come scrivere uno smart contract, effettuare il deploy sulla blockchain e sviluppare una dApp', 'workshop-blockchain-thumb.png', 'workshop-blockchain.png', 'La blockchain è un argomento così vasto che, dopo il nostro ultimo evento, in molti ci avete chiesto di entrare maggiormente nel dettaglio di questa tecnologia. È proprio per passare dalla teoria alla pratica che abbiamo ideato il primo workshop di firenze.dev. In questo evento svilupperemo insieme un''applicazione decentralizzata basata sulla blockchain: partiremo dalla creazione di uno smart contract, vedremo come inviarlo sulla blockchain e infine come invocare le sue funzioni da un comune browser, sviluppando il codice di una dApp. Non è necessario avere conoscenze pregresse: vedremo insieme i concetti fondamentali che ci serviranno per scrivere il codice. + + Si tratterà di un vero e proprio workshop, guidato da Tiziano Pessa e Lorenzo Spinelli, nel quale ognuno sarà attivamente coinvolto e affiancato nello sviluppo della dApp. Al termine, i partecipanti saranno in grado di scrivere uno smart contract, effettuare il deploy sulla blockchain e sviluppare una dApp utilizzabile da un comune browser. + + Per poter garantire un supporto attivo per tutta la durata dell''evento, i posti disponibili saranno molto limitati e solo i primi a prendere il biglietto potranno partecipare. I biglietti saranno gratuiti per i membri della community, ma saranno disponibili anche dei posti per chi non è iscritto, che però per motivi organizzativi dovrà versare una quota di partecipazione. + + # Info + + L''evento si terrà presso Frame School, in via di Scandicci 88/A. Si può raggiungere con i mezzi pubblici (in tramvia fermata T1 Arcipressi oppure con la linea 6 dell''autobus). Per chi viene in auto, è facile trovare parcheggio nelle vie adiacenti, di fronte all''Istituto Meucci o in via del Filarete, davanti al campo di atletica. + + L''evento inizierà alle 18.30 e avrà una durata di circa 2 ore; al termine, con chi vuole, andremo a cena insieme. + + + # FAQ + + **Cosa devo portare?** + + Devi avere con te un laptop, con Node.js e git già installati, oltre al tuo IDE preferito per poter lavorare sul progetto. + + **Quali conoscenze pregresse devo avere per partecipare?** + + E'' sufficiente che tu conosca la sintassi di base del linguaggio JavaScript e che tu sia in grado di utilizzare un progetto Node.js con un package manager (npm o yarn). + + **Come faccio a sapere se sono iscritto alla community e ho diritto al biglietto gratuito?** + + E'' sufficiente che tu ti sia iscritto tramite il form che trovi nella home page del sito di firenze.dev e che di conseguenza ricevi regolarmente la nostra newsletter. Quando prenoti il biglietto, assicurati di utilizzare la stessa email che hai usato per l''iscrizione alla community. + + **Vorrei partecipare ma non sono certo di farcela. Posso prendere lo stesso il biglietto?** + + Il numero di posti disponibili per questo evento è limitatissimo: siamo contenti che tu voglia partecipare e ti consigliamo di prendere il biglietto. Ma ti preghiamo di avvertirci immediatamente se sei sicuro di non riuscire a venire, così potremo assegnare il tuo biglietto a qualcun altro. + + + **Come funziona la lista d''attesa?** + + Le persone in lista d''attesa riceveranno il biglietto in caso qualcuno degli iscritti dovesse rinunciare. In tal caso vi arriverà una comunicazione direttamente da EventBrite, ma attenzione: quello non è il biglietto! Per avere il biglietto dovete seguire le istruzioni e riscattarlo entro 24 ore!', '2023-11-23T17:30:00.000Z', 'Frame School', null, + 'via di Scandicci 88, Firenze, FI', '746333071307', 'https://www.eventbrite.it/e/biglietti-workshop-sviluppare-una-dapp-su-blockchain-746333071307', null, null, 'workshop', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'f776862e-8427-452f-b2a5-3461674e406d', 'Blockchain 101, from zero to developer', 'Un percorso alla scoperta della blockchain, per comprenderne il funzionamento e le potenzialità', 'blockchain101-thumb.webp', 'blockchain101.webp', 'Hai sempre considerato la blockchain un mistero insondabile? Sei ancora incerto sugli ambiti in cui può essere applicata? È ora di svelare i segreti di questa tecnologia rivoluzionaria! + + Dalla crittografia all'' utilizzo dei wallet, dagli smart contract agli NFT, in questo evento Lorenzo Spinelli e Tiziano Pessa ci mostreranno gli aspetti tecnici che ogni programmatore deve conoscere per capire questa tecnologia e sviluppare applicazioni decentralizzate su blockchain. + + Non preoccuparti se è la prima volta che ti avvicini a questo argomento, saranno affrontati in modo chiaro e semplice tutti gli aspetti essenziali, per consentire anche a chi non conosce questa tecnologia, non solo di seguire il talk, ma anche di iniziare a svilupparci fin da subito.', '2023-10-12T16:30:00.000Z', 'Frame School', null, + 'via di Scandicci 88, Firenze, FI', '719618035917', 'https://www.eventbrite.it/e/biglietti-blockchain-101-from-zero-to-developer-719618035917', null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'faf863b7-e590-4ed9-86ce-bc0e69f242d0', 'Summer Beer Meetup', 'L''estate è finalmente alle porte, cosa c''è di meglio che condividere una birra fresca in compagnia?', 'summer-beer-thumb-150x150.png', 'EventBrite_summer.png', 'L''estate è finalmente alle porte, cosa c''è di meglio che condividere una birra fresca in compagnia? + Ci piacerebbe approfittare dell'' occasione per scambiare qualche chiacchiera informale e darvi la possibilità di suggerire gli argomenti che vi piacerebbe trattare nei prossimi eventi che organizzeremo. + Puoi portare con te chi vuoi, per partecipare è sufficiente prenotare un biglietto gratuito per ogni persona, così che possiamo riservare un posto per tutti! + Ti aspettiamo!', '2023-06-08T19:30:00.000Z', 'Fabbrica in Pedavena', null, + 'Via Generale C. A. dalla Chiesa, 1, 50136 Firenze FI', '646533919357', 'https://www.eventbrite.it/e/biglietti-summer-beer-meetup-646533919357', null, null, 'beer', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'e0ebe14f-cc3d-493d-a921-cea5007c627b', 'Dev Florence Meetup', 'La community di developer fiorentina si ritrova a Firenze presso Impact Hub il 24 maggio 2023 per un meetup organizzato da Codemotion, Firenze.dev, Full Stack Florence e Schrodinger Hat', 'meet-up-codemotion-05-2023-thumb.png', 'meet-up-codemotion-05-2023.png', 'Ecco gli interventi della serata: + + Un viaggio alla scoperta di Three.js + Sei appassionat* di videogiochi o semplicemente di animazioni grafiche? + Allora la libreria Three.js è lo strumento che fa per te! Insieme esploreremo questo mondo virtuale, + scopriremo le sue funzioni principali e vedremo quali applicazioni possiamo mettere in pratica per dare sfogo alla nostra creatività nel fantastico mondo della grafica 3D. + + Schrodinger Hat - Angela Busato + + WebGPU, a new dawn for web graphics + WebGPU è una tecnologia emergente che mira a fornire un''API grafica a basso livello per il web, simile a DirectX e Vulkan. + In questo talk verrà fornita un''introduzione all''API WebGPU, i suoi vantaggi, e come iniziare a utilizzarlo. Discuteremo le prestazioni e la portabilità su diverse piattaforme, + e mostreremo alcuni esempi di applicazioni WebGPU. Se sei un sviluppatore web interessato a costruire applicazioni grafiche avanzate, + o un appassionato di GPU alla ricerca delle ultime tendenze in tecnologia grafica, questo talk fa al caso tuo. + + Full Stack Florence - Andrea Gherardi, Chief Technical Officer @ Mirror + + Real world GraphQL subscriptions + Le subscription sono una delle feature più interessanti di GraphQL perché permettono di ricevere dati dal server verso il client in tempo reale, + ma ci sono alcuni aspetti importanti da considerare per poterle utilizzare: come si gestiscono le sessioni persistenti? di quali componenti aggiuntivi avremo bisogno? come funzionano l''autenticazione e l''uso della cache? + In questo talk vedremo quali accorgimenti dobbiamo usare quando si usano le subscription in un vero ambiente di produzione, elencheremo gli errori più comuni nei quali possiamo incorrere e valuteremo in quali casi conviene utilizzarle per sfruttare al meglio le loro potenzialità. + + Firenze.dev - Tiziano Pessa, Co-founder @ firenze.dev', '2023-05-24T16:30:00.000Z', 'Impact Hub - Firenze', 'Codemotion', + 'Via Panciatichi, 16, 50141 Firenze FI', null, null, null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '5aecf629-feba-4877-acc8-84adbd32d168', 'Dal monolite ai microservizi, una storia vera', 'Approcciare il cambiamento e le sue sfide in un sistema business critical di una grande realtà internazionale', 'dal-monolite-ai-microservizi.png', 'dal-monolite-ai-microservizi.png', 'A chi non è capitato di dover mettere in produzione un'applicazione critica per sistemare un piccolo bug, con il rischio di bloccare tutta la produzione? E chi di noi non ha un'applicazione che consuma moltissime risorse, ma ne sfrutta solo una piccola parte? + + Forse è il momento giusto per passare ai microservizi! In questo talk, Luca Lorenzon, senior software engineer di Gucci, ci racconterà il percorso per trasformare un monolite in un'architettura a microservizi scalabile e flessibile. Non sarà solo una storia di successo, ma vedremo tutti i retroscena di un progetto con vari step di complessità. + + Scopriremo come è stato gestito il cambiamento e come una grande realtà internazionale ha affrontato l'adattamento a queste nuove tecnologie, in un contesto di business altamente sfidante.', '2023-04-20T16:30:00.000Z', 'Gucci ArtLab', 'Gucci', + 'via delle nazioni unite 1, Scandicci, 50018', '593998735207', 'https://www.eventbrite.it/e/biglietti-dal-monolite-ai-microservizi-una-storia-vera-593998735207', null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '6f509cec-cd74-462e-ad81-c380e7b46806', 'La Developer Experience nelle Big Tech', 'Cosa dovresti sapere per lavorare in una grande azienda internazionale', 'evento_devex-150x150.png', 'evento_devex.png', 'Ogni developer ha pensato almeno una volta nella propria carriera a come sarebbe lavorare per una Big Company, su un progetto figo e in un contesto internazionale, con tecnologie all''avanguardia e modalità di lavoro innovative. + + Ma come si vive davvero all''interno di queste realtà e come ci si può orientare in una Big Company? + + La Developer Experience è un elemento chiave in queste grandi aziende: ma cos''è in concreto? + + Può davvero migliorare le modalità e la qualità del lavoro degli sviluppatori? + + E possiamo applicarla anche in realtà più piccole? + + Di tutto questo ci parlerà [Francesco Corti](https://www.linkedin.com/in/fcorti/), speaker e autore di libri su temi IT, che partendo dalle sue esperienze come Developer Advocate e Product Manager in aziende come Alfresco e Spotify, ci spiegherà come viene affrontato lo sviluppo software nelle grandi aziende internazionali e cosa è importante sapere per poter lavorare in una Big Tech. + + Vedremo cosa sono e come vengono applicati i modelli di riferimento e andremo alla scoperta di modalità di lavoro e tecnologie differenti, allo scopo di diventare degli sviiluppatori migliori e più felici. + + Dopo il talk ci sarà il consueto aperitivo di networking.', '2023-03-02T17:30:00.000Z', 'Camplus Firenze', null, + 'via del Romito 5-7, 50134, Firenze', '532054077067', 'https://www.eventbrite.com/e/biglietti-la-developer-experience-nelle-big-tech-532054077067', null, null, 'meetup', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'b445f2de-7283-4867-8b21-18952a61665f', 'Christmas beer', 'Brindiamo al primo anno di firenze.dev e discutiamo delle prossime attività', 'christmas-beer-firenze-dev.webp', 'christmas-beer-firenze-dev.png', 'Un evento informale per celebrare il primo anno di firenze.dev, ma anche per conoscerci meglio, bere una birra insieme e gettare uno sguardo al futuro della community. + + Niente speaker, niente talk, solo un gruppo di amici che si incontrano davanti a un bicchiere di birra per parlare di cosa ci piacerebbe fare nell''anno che sta per iniziare e raccontarci le nostre aspettative sulle attività della community per il 2023. + + La serata è aperta a tutti i membri della community di firenze.dev e si svolgerà presso la Manifattura Tabacchi, in via delle Cascine 35 a Firenze. Ci ritroveremo a partire dalle 21.30, avremo un tavolo riservato, quindi è richiesta la prenotazione del biglietto per poterci organizzare meglio.', '2022-12-15T20:30:00.000Z', 'Manifattura Tabacchi', null, + 'Manifattura Tabacchi, Via delle Cascine 35, 50144 Firenze', '482058017507', 'https://www.eventbrite.it/e/biglietti-christmas-beer-482058017507', null, null, 'beer', + null, true +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '0f69aa60-dd8e-428a-8fed-d3e2a022d49a', 'Building a full-text search engine from scratch in TypeScript', 'In questo nuovo evento della community di firenze.dev, Michele Riva ci mostrerà come costruire da zero un motore di ricerca full-text.', '3-150x150.png', 'building-a-full-text-search-engine-= require(-scratch-in-typescript.png', 'In questo nuovo evento della community di firenze.dev, [Michele Riva](https://twitter.com/MicheleRivaCode), Staff Engineer @ NearForm, autore e speaker di fama internazionale oltre che Google Developer Expert e Microsoft MVP, ci mostrerà come costruire da zero un motore di ricerca full-text RESTful, spiegandoci quali siano gli algoritmi e le strutture dati più adatti per questo tipo di applicazioni. + + + Vedremo come mantenere prestazioni incredibilmente elevate pur lavorando con un''enorme quantità di dati e capiremo perché è così importante scegliere i giusti algoritmi e le strutture dati più adeguate per questo tipo di sistemi. + + Dopo il talk ci sarà il consueto aperitivo di networking.', '2022-11-30T17:30:00.000Z', 'Le Murate', 'Extendi', + 'Piazza Madonna della Neve 50122 Firenze', '462656256317', 'https://www.eventbrite.it/e/biglietti-building-a-full-text-search-engine-from-scratch-in-typescript-462656256317', null, null, 'meetup', + null, 'false' +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '70cb9104-0c2b-4321-9b56-79af1f839bd0', 'Rendere scalabili le moderne applicazioni di front-end', 'Scopriremo tecniche e tool per far evolvere le nostre applicazioni di front-end, da una semplice Single Page Application fino a utilizzare la Module Federation.', 'moduleFederationImage.png', 'rendere-applicazioni-front-end-scalabitli.png', 'Come superare le nuove sfide che ci pone lo sviluppo di applicazioni front-end, quali ad esempio performance, SEO e dinamicità? + + Partendo da una piccola app, fino ad arrivare a progetti più grandi con la Module Federation, ti forniremo dei consigli su come orientarti tra la mole di informazioni disponibili sul web. + + Ti aiuteremo ad identificare i giusti tools, i frameworks e le librerie per far scalare il tuo applicativo. + + Tutto questo riportando la nostra esperienza nello sviluppo in React di applicazioni web e native.', '2022-10-25T16:30:00.000Z', 'Le Murate', 'Extendi', + 'Piazza Madonna della Neve 50122 Firenze', '430942198717', 'https://www.eventbrite.it/e/biglietti-rendere-scalabili-le-moderne-applicazioni-di-front-end-430942198717', null, null, 'meetup', + null, null +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '07fbc158-a146-4858-ae2a-43a7835aeb25', 'Applicazioni più semplici, robuste e performanti con RabbitMQ', 'L''evento di firenze.dev per imparare come utilizzare RabbitMQ per semplificare l''architettura dei sistemi e renderli scalabili.', 'rabbit.png', 'Applicazioni-piu-semplici-robuste-e-performanti-con-RabbitMQ-min.png', 'Il tuo nuovissimo servizio in Go non riesce a comunicare con la tua vecchia applicazione Java? Nei tuoi servizi una singola feature si trasforma in un ingestibile groviglio di chiamate? E cosa succede quando una di queste chiamate fallisce? Come è possibile gestire gli errori in un sistema distribuito? + + A queste e ad altre domande risponderà per noi [Gabriele Santomaggio](https://twitter.com/gsantomaggio), Staff Software Engineer nel RabbitMQ team in VMware, speaker e autore di libri e articoli di tecnologia. + + Vedremo insieme come RabbitMQ risolve questi problemi, ma anche come sia possibile sfruttarlo per semplificare l''architettura dei nostri sistemi e in che modo si possano affrontare i temi della scalabilità e della sicurezza nella gestione dei flussi di dati. + + Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.', '2022-06-17T16:30:00.000Z', 'Register.it', 'Register.it', + 'Viale della giovine Italia 17, 50122 Firenze', '347290865327', 'https://www.eventbrite.it/e/biglietti-applicazioni-piu-semplici-robuste-e-performanti-con-rabbitmq-347290865327', null, null, 'meetup', + null, null +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + 'd10413b8-bf65-47b7-8438-663e7e1fa3f5', 'Next level API con GraphQL', 'Cos''è GraphQL, quali sono i suoi vantaggi, come utilizzarlo al meglio e quali sono le cose da evitare assolutamente.', 'graphql.png', 'graphql-2014-min.png', 'Si sente dire in giro che con GraphQL si possono creare API performanti, scalabili e flessibili, che se non lo usi sei un dinosauro e che adesso il REST non serve più. + + Noi, dopo anni che lo utilizziamo in produzione, abbiamo imparato a sfruttarne le potenzialità e ad affrontare le sfide che questa tecnologica ci pone + + In questo talk vedremo che cos''è GraphQL, quali sono i suoi vantaggi, come utilizzarlo al meglio e quali sono le cose da evitare assolutamente. + + Oltre a imparare i concetti di base, affronteremo alcuni scenari più avanzati e concluderemo l''incontro con una sessione interattiva in cui potrete porre agli speaker qualsiasi domanda sull''argomento (anche quelle più scomode!). + + Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.', '2022-05-11T16:30:00.000Z', 'Register.it', 'Register.it', + 'Viale della giovine Italia 17, 50122 Firenze', '324349707707', 'https://www.eventbrite.it/e/biglietti-next-level-api-con-graphql-324349707707', null, null, 'meetup', + null, null +); + + +INSERT INTO "public"."events" ( + "id", "title", "subtitle", "icon", "image", "abstract", "date", "place", "sponsor", "address", + "eventbrite_id", "eventbrite_link", "external_link", "ticket_tailor_id", "type", + "hide_sponsor_in_networking", "current" +) VALUES ( + '415851d5-4f33-4169-8eea-c71da85327c7', 'È solo un altro IF', 'Come scrivere codice migliore nella metà del tempo', 'anotherif.png', 'solo-un-altro-if.png', 'Ti è mai capitato che la cosa più veloce sul momento si sia rivelata un boomerang a lungo termine, facendoti perdere talmente tanto tempo da farti maledire il giorno in cui hai deciso di fare lo sviluppatore? + + È successo anche a noi, ma con l''esperienza abbiamo imparato che basta applicare alcune semplici regole per scrivere un codice migliore e più manutenibile. E vogliamo condividerle con te. + + Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.', '2021-12-01T17:30:00.000Z', 'Register.it', 'Register.it', + 'Viale della giovine Italia 17, 50122 Firenze', '204947703097', 'https://www.eventbrite.it/e/biglietti-e-solo-un-altro-if-204947703097', null, null, 'meetup', + null, null +); + diff --git a/src/app/event/[id]/_components/Event.tsx b/src/app/event/[id]/_components/Event.tsx index 5f39dfa..2a88dd2 100644 --- a/src/app/event/[id]/_components/Event.tsx +++ b/src/app/event/[id]/_components/Event.tsx @@ -7,7 +7,8 @@ import Register from "./Register"; import Script from "next/script"; import EventProgram from "./EventProgram"; import { H1, H3 } from "@/components/ui/Heading"; -import { FDevEvent } from "@/app/eventi/lib/EventService"; +import { FDevEvent } from "@/app/eventi/lib/types"; + dayjs.locale("it"); export default function Event({ event }: Readonly<{ event: FDevEvent }>) { diff --git a/src/app/event/[id]/_components/EventProgram.tsx b/src/app/event/[id]/_components/EventProgram.tsx index 5d81be6..7609c46 100644 --- a/src/app/event/[id]/_components/EventProgram.tsx +++ b/src/app/event/[id]/_components/EventProgram.tsx @@ -1,4 +1,4 @@ -import { FDevEvent } from "@/app/eventi/lib/EventService"; +import { FDevEvent } from "@/app/eventi/lib/types"; import { MegaphoneIcon, MicrophoneIcon, diff --git a/src/app/event/[id]/page.tsx b/src/app/event/[id]/page.tsx index bd3e47a..f846f0b 100644 --- a/src/app/event/[id]/page.tsx +++ b/src/app/event/[id]/page.tsx @@ -1,18 +1,20 @@ -import { FDevEvent, eventService } from "@/app/eventi/lib/EventService"; +import { EventService } from "@/app/eventi/lib/EventService"; +import { FDevEvent } from "@/app/eventi/lib/types"; import Link from "next/link"; import Event from "./_components/Event"; import type { Metadata } from "next"; import dayjs from "dayjs"; import "dayjs/locale/it"; dayjs.locale("it"); -import { StaticImageData } from "next/image"; +import { getPublicImageUrl } from "@/lib/storage"; type Props = { params: { id: string }; }; -export default function EventPage({ params }: Readonly) { - const event = eventService.getEvent(params.id); +export default async function EventPage({ params }: Readonly) { + const eventService = await EventService.init(); + const event = eventService.getEvent(params.id);; return (
{!event && ( @@ -27,19 +29,24 @@ export default function EventPage({ params }: Readonly) { } export async function generateMetadata({ params }: Props): Promise { - const event = eventService.getEvent(params.id); + const eventService = await EventService.init(); + const event = eventService.getEvent(params.id);; if (!event) { return { title: "Non siamo riusciti a trovare questo evento", }; } - const title = event?.title; + const { title, image } = event; const description = eventDescription(event); + const imageUrl = typeof image === "string" && !image.startsWith("http") + ? getPublicImageUrl(image) + : image as string; + return { title, description, openGraph: { - images: [(event?.image as StaticImageData).src], + images: imageUrl, title, description, type: "article", diff --git a/src/app/eventi/_components/Event.tsx b/src/app/eventi/_components/Event.tsx index bf57c2b..2409941 100644 --- a/src/app/eventi/_components/Event.tsx +++ b/src/app/eventi/_components/Event.tsx @@ -1,6 +1,7 @@ import Image from "next/image"; import Link from "next/link"; -import { FDevEvent, toSlug } from "../lib/EventService"; +import { toSlug } from "../lib/EventService"; +import { FDevEvent } from "../lib/types"; import { H4 } from "@/components/ui/Heading"; import { Calendar } from "@/components/ui/Calendar"; import { MiniButton } from "@/components/ui/Button"; diff --git a/src/app/eventi/_components/EventHero.tsx b/src/app/eventi/_components/EventHero.tsx index 9d8004b..ceb1042 100644 --- a/src/app/eventi/_components/EventHero.tsx +++ b/src/app/eventi/_components/EventHero.tsx @@ -2,10 +2,11 @@ import Image from "next/image"; import eventImage from "./images/eventi.webp"; import { H1 } from "@/components/ui/Heading"; import NextEvents from "./NextEvents"; -import { eventService } from "../lib/EventService"; +import { EventService } from "../lib/EventService"; import { IntroText } from "./IntroText"; -export function EventHero() { +export async function EventHero() { + const eventService = await EventService.init(); const nextEvents = eventService.getNextEvents(); return (
diff --git a/src/app/eventi/_components/EventIntro.tsx b/src/app/eventi/_components/EventIntro.tsx index da90945..b5c1f38 100644 --- a/src/app/eventi/_components/EventIntro.tsx +++ b/src/app/eventi/_components/EventIntro.tsx @@ -2,10 +2,11 @@ import Image from "next/image"; import Link from "next/link"; import eventImage from "./images/eventi.webp"; import { H4 } from "@/components/ui/Heading"; -import { eventService } from "../lib/EventService"; +import { EventService } from "../lib/EventService"; import { IntroText } from "./IntroText"; -export default function EventIntro() { +export default async function EventIntro() { + const eventService = await EventService.init(); const nextEvents = eventService.getNextEvents(); return (
diff --git a/src/app/eventi/_components/NextEvents.tsx b/src/app/eventi/_components/NextEvents.tsx index d4f3db8..72f8945 100644 --- a/src/app/eventi/_components/NextEvents.tsx +++ b/src/app/eventi/_components/NextEvents.tsx @@ -1,8 +1,9 @@ import { H3 } from "@/components/ui/Heading"; import Event from "./Event"; -import { eventService } from "../lib/EventService"; +import { EventService } from "../lib/EventService"; -export default function NextEvents(props: { disableBox?: boolean }) { +export default async function NextEvents(props: { disableBox?: boolean }) { + const eventService = await EventService.init(); const nextEvents = eventService.getNextEvents(); if (nextEvents.length === 0) { return null; diff --git a/src/app/eventi/_components/PastEvents.tsx b/src/app/eventi/_components/PastEvents.tsx index 2dd55d2..3b4a58d 100644 --- a/src/app/eventi/_components/PastEvents.tsx +++ b/src/app/eventi/_components/PastEvents.tsx @@ -1,8 +1,9 @@ import { H3 } from "@/components/ui/Heading"; import Event from "./Event"; -import { eventService } from "../lib/EventService"; +import { EventService } from "../lib/EventService"; -export default function PastEvents() { +export default async function PastEvents() { + const eventService = await EventService.init(); const events = eventService.getPastEvents(); return (
diff --git a/src/app/eventi/conferma/page.tsx b/src/app/eventi/conferma/page.tsx index 650ab08..a07c3af 100644 --- a/src/app/eventi/conferma/page.tsx +++ b/src/app/eventi/conferma/page.tsx @@ -1,13 +1,14 @@ "use client"; -import { eventService } from "@/app/eventi/lib/EventService"; +import { EventService } from "@/app/eventi/lib/EventService"; import { H3 } from "@/components/ui/Heading"; import { useSearchParams } from "next/navigation"; -export default function ConfermaPage() { +export default async function ConfermaPage() { const params = useSearchParams(); const confirm = params.get("confirm"); const eventId = params.get("id"); + const eventService = await EventService.init(); const event = eventService.getEvent(eventId || ""); return (
diff --git a/src/app/eventi/lib/EventService.ts b/src/app/eventi/lib/EventService.ts index 3915efc..3471dc3 100644 --- a/src/app/eventi/lib/EventService.ts +++ b/src/app/eventi/lib/EventService.ts @@ -1,49 +1,33 @@ -import { StaticImageData } from "next/image"; import dayjs from "dayjs"; -import { events } from "./events-db"; +import {fetchAllEvents} from "./supabase/events" +import { FDevEvent } from "./types"; -type eventType = "meetup" | "workshop" | "cfp" | "beer"; -export interface FDevEvent { - title: string; - subtitle: string; - icon: string | StaticImageData; - image: string | StaticImageData; - current?: boolean; - abstract: string; - date: Date; - place: string | null; - sponsor?: string; - address: string; - eventbriteId?: string; - eventbriteLink?: string; - externalLink?: string; - ticketTailorId?: number; - type: eventType; - hideSponsorInNetworking?: boolean; -} class EventService { - events: FDevEvent[]; + private events: FDevEvent[] = []; constructor(events: FDevEvent[]) { this.events = events; } + static async init(): Promise { + const events = await fetchAllEvents(); + return new EventService(events); + } + getEvents(): FDevEvent[] { return this.events; } getPastEvents(): FDevEvent[] { - return this.events.filter((event) => - dayjs(event.date).isBefore(new Date()), - ); + return this.events.filter((event) => dayjs(event.date).isBefore(new Date())); } getNextEvents(): FDevEvent[] { - return this.events.filter( - (event) => dayjs(event.date).isAfter(new Date()), - ).sort(byDate); + return this.events + .filter((event) => dayjs(event.date).isAfter(new Date())) + .sort(byDate); } getEvent(slug: string): FDevEvent | undefined { @@ -51,16 +35,16 @@ class EventService { } } -export function toSlug(name: string) { +function toSlug(name: string): string { return name .toLowerCase() - .replace(/[\W_]+/g," ") + .replace(/[\W_]+/g, " ") .trim() - .replaceAll(" ", "-") + .replaceAll(" ", "-"); } -export const eventService = new EventService(events); - -function byDate(a: FDevEvent, b: FDevEvent) { +function byDate(a: FDevEvent, b: FDevEvent): number { return dayjs(a.date).valueOf() - dayjs(b.date).valueOf(); -} \ No newline at end of file +} + +export { EventService, toSlug }; diff --git a/src/app/eventi/lib/events-db.ts b/src/app/eventi/lib/events-db.ts index b81a0c1..29ed179 100644 --- a/src/app/eventi/lib/events-db.ts +++ b/src/app/eventi/lib/events-db.ts @@ -30,7 +30,7 @@ import shapingYourFuture from "./images/9_Maggio_EventBrite_colors.png"; import shapingYourFutureIcon from "./images/thumb/9_Maggio_thumb_colors.png"; import summerBeer2024Icon from "./images/thumb/beerGiugno.png"; import summerBeer2024 from "./images/EventBrite_summerbeer.png"; -import { FDevEvent } from "./EventService"; +import { FDevEvent } from "./types"; import dayjs from "dayjs"; import supply_cahain from "./images/supply_cahain.png"; diff --git a/src/app/eventi/lib/supabase/events.ts b/src/app/eventi/lib/supabase/events.ts new file mode 100644 index 0000000..e1d8419 --- /dev/null +++ b/src/app/eventi/lib/supabase/events.ts @@ -0,0 +1,48 @@ +import { supabase } from '@/lib/supabaseClient' +import { RawEvent } from './types' +import { FDevEvent } from '../types' +import { convertRawEvent, convertRawEvents } from './mappers' + +export async function fetchAllEvents(): Promise { + const { data, error } = await supabase + .from('events') + .select('*') + .order('date', { ascending: false }) + + if (error) { + console.error('Errore nel recupero degli eventi:', error.message) + throw new Error(error.message) + } + + return data ? convertRawEvents(data as RawEvent[]) : [] +} + +export async function fetchCurrentEvents(): Promise { + const { data, error } = await supabase + .from('events') + .select('*') + .eq('current', true) + .order('date', { ascending: true }) + + if (error) { + console.error('Errore nel recupero degli eventi attuali:', error.message) + throw new Error(error.message) + } + + return data ? convertRawEvents(data as RawEvent[]) : [] +} + +export async function fetchEventById(id: string): Promise { + const { data, error } = await supabase + .from('events') + .select('*') + .eq('id', id) + .single() + + if (error) { + console.error(`Errore nel recupero dell'evento con ID ${id}:`, error.message) + throw new Error(error.message) + } + + return data ? convertRawEvent(data as RawEvent) : null +} diff --git a/src/app/eventi/lib/supabase/mappers.ts b/src/app/eventi/lib/supabase/mappers.ts new file mode 100644 index 0000000..5737ece --- /dev/null +++ b/src/app/eventi/lib/supabase/mappers.ts @@ -0,0 +1,24 @@ +import { FDevEvent,parseEventType } from "../types" +import { RawEvent } from './types' +import { getPublicImageUrl } from "@/lib/storage"; + + + + +export function convertRawEvent(raw: RawEvent): FDevEvent { + return { + ...raw, + date: new Date(raw.date), + image: typeof raw.image === "string" && !raw.image.startsWith("http") + ? getPublicImageUrl(raw.image) + : raw.image as string, + icon: typeof raw.icon === "string" && !raw.icon.startsWith("http") + ? getPublicImageUrl(raw.icon) + : raw.icon as string, + type: parseEventType(raw.type) + } +} + +export function convertRawEvents(raws: RawEvent[]): FDevEvent[] { + return raws.map(convertRawEvent) +} \ No newline at end of file diff --git a/src/app/eventi/lib/supabase/types.ts b/src/app/eventi/lib/supabase/types.ts new file mode 100644 index 0000000..1275bc1 --- /dev/null +++ b/src/app/eventi/lib/supabase/types.ts @@ -0,0 +1,19 @@ +export type RawEvent = { + id: string + title: string + subtitle: string + icon: string + image: string + current?: boolean + abstract: string + date: string + place: string | null + sponsor?: string + address: string + eventbriteId?: string + eventbriteLink?: string + externalLink?: string + ticketTailorId?: number + type: string + hideSponsorInNetworking?: boolean + } \ No newline at end of file diff --git a/src/app/eventi/lib/types.ts b/src/app/eventi/lib/types.ts new file mode 100644 index 0000000..83ec9ac --- /dev/null +++ b/src/app/eventi/lib/types.ts @@ -0,0 +1,31 @@ + + +export type eventType = "meetup" | "workshop" | "cfp" | "beer"; + +const validEventTypes: eventType[] = ["meetup", "workshop", "cfp", "beer"]; + +export function parseEventType(value: string): eventType { + if (validEventTypes.includes(value as eventType)) { + return value as eventType; + } + return "meetup"; +} + +export interface FDevEvent { + title: string; + subtitle: string; + icon: string ; + image: string ; + current?: boolean; + abstract: string; + date: Date; + place: string | null; + sponsor?: string; + address: string; + eventbriteId?: string; + eventbriteLink?: string; + externalLink?: string; + ticketTailorId?: number; + type: eventType; + hideSponsorInNetworking?: boolean; + } \ No newline at end of file diff --git a/src/lib/storage.ts b/src/lib/storage.ts new file mode 100644 index 0000000..7b09b74 --- /dev/null +++ b/src/lib/storage.ts @@ -0,0 +1,7 @@ +import { supabase } from "@/lib/supabaseClient"; + + +export function getPublicImageUrl(path: string, bucket = "events"): string { + const { data } = supabase.storage.from(bucket).getPublicUrl(path); + return data.publicUrl; +} \ No newline at end of file diff --git a/src/lib/supabaseClient.js b/src/lib/supabaseClient.js new file mode 100644 index 0000000..d7414da --- /dev/null +++ b/src/lib/supabaseClient.js @@ -0,0 +1,6 @@ +import { createClient } from '@supabase/supabase-js' + +const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL +const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY + +export const supabase = createClient(supabaseUrl, supabaseAnonKey) diff --git a/supabase/migrations/20250429195333_events.sql b/supabase/migrations/20250429195333_events.sql new file mode 100644 index 0000000..7ac86e6 --- /dev/null +++ b/supabase/migrations/20250429195333_events.sql @@ -0,0 +1,22 @@ +-- supabase/migrations/20250429195333_events.sql + + +create table if not exists events ( + id uuid primary key default gen_random_uuid(), + title text not null, + subtitle text, + icon text, + image text, + abstract text, + date timestamptz not null, + place text, + sponsor text, + address text, + eventbrite_id text, + eventbrite_link text, + external_link text, + ticket_tailor_id integer, + type text, + hide_sponsor_in_networking boolean default false, + current boolean default false +); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 5f4e503..c8c08d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -57,9 +57,9 @@ integrity sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA== "@heroicons/react@^2.0.18": - version "2.1.5" - resolved "https://registry.npmjs.org/@heroicons/react/-/react-2.1.5.tgz" - integrity sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA== + version "2.1.1" + resolved "https://registry.npmjs.org/@heroicons/react/-/react-2.1.1.tgz" + integrity sha512-JyyN9Lo66kirbCMuMMRPtJxtKJoIsXKS569ebHGGRKbl8s4CtUfLnyKJxteA+vIKySocO4s1SkTkGS4xtG/yEA== "@humanwhocodes/config-array@^0.11.13": version "0.11.13" @@ -112,16 +112,16 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@next/env@^13.4.3": + version "13.5.6" + resolved "https://registry.npmjs.org/@next/env/-/env-13.5.6.tgz" + integrity sha512-Yac/bV5sBGkkEXmAX5FWPS9Mmo2rthrOPRQQNfycJPkjUAUclomCPH7QFVCDQ4Mp2k2K1SSM6m0zrxYrOwtFQw== + "@next/env@14.0.1": version "14.0.1" resolved "https://registry.npmjs.org/@next/env/-/env-14.0.1.tgz" integrity sha512-Ms8ZswqY65/YfcjrlcIwMPD7Rg/dVjdLapMcSHG26W6O67EJDF435ShW4H4LXi1xKO1oRc97tLXUpx8jpLe86A== -"@next/env@^13.4.3": - version "13.5.7" - resolved "https://registry.npmjs.org/@next/env/-/env-13.5.7.tgz" - integrity sha512-uVuRqoj28Ys/AI/5gVEgRAISd0KWI0HRjOO1CTpNgmX3ZsHb5mdn14Y59yk0IxizXdo7ZjsI2S7qbWnO+GNBcA== - "@next/eslint-plugin-next@14.0.1": version "14.0.1" resolved "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.1.tgz" @@ -134,50 +134,10 @@ resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.1.tgz" integrity sha512-JyxnGCS4qT67hdOKQ0CkgFTp+PXub5W1wsGvIq98TNbF3YEIN7iDekYhYsZzc8Ov0pWEsghQt+tANdidITCLaw== -"@next/swc-darwin-x64@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.1.tgz#7d8498fc680cc8b4d5181bee336818c63779bc5e" - integrity sha512-625Z7bb5AyIzswF9hvfZWa+HTwFZw+Jn3lOBNZB87lUS0iuCYDHqk3ujuHCkiyPtSC0xFBtYDLcrZ11mF/ap3w== - -"@next/swc-linux-arm64-gnu@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.1.tgz#184286794e67bed192de7dbb10d7f040c996f965" - integrity sha512-iVpn3KG3DprFXzVHM09kvb//4CNNXBQ9NB/pTm8LO+vnnnaObnzFdS5KM+w1okwa32xH0g8EvZIhoB3fI3mS1g== - -"@next/swc-linux-arm64-musl@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.1.tgz#e8121b860ebc97a8d2a9113e5a42878430e749d5" - integrity sha512-mVsGyMxTLWZXyD5sen6kGOTYVOO67lZjLApIj/JsTEEohDDt1im2nkspzfV5MvhfS7diDw6Rp/xvAQaWZTv1Ww== - -"@next/swc-linux-x64-gnu@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.1.tgz#cdc4276b11a10c892fd1cb7dd31e024064db9c3b" - integrity sha512-wMqf90uDWN001NqCM/auRl3+qVVeKfjJdT9XW+RMIOf+rhUzadmYJu++tp2y+hUbb6GTRhT+VjQzcgg/QTD9NQ== - -"@next/swc-linux-x64-musl@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.1.tgz#4a194a484ceb34fd370e8d1af571493859fb2542" - integrity sha512-ol1X1e24w4j4QwdeNjfX0f+Nza25n+ymY0T2frTyalVczUmzkVD7QGgPTZMHfR1aLrO69hBs0G3QBYaj22J5GQ== - -"@next/swc-win32-arm64-msvc@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.1.tgz#71923debee50f98ef166b28cdb3ad7e7463e6598" - integrity sha512-WEmTEeWs6yRUEnUlahTgvZteh5RJc4sEjCQIodJlZZ5/VJwVP8p2L7l6VhzQhT4h7KvLx/Ed4UViBdne6zpIsw== - -"@next/swc-win32-ia32-msvc@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.1.tgz#b8f46da899c279fd65db76f0951849290c480ef9" - integrity sha512-oFpHphN4ygAgZUKjzga7SoH2VGbEJXZa/KL8bHCAwCjDWle6R1SpiGOdUdA8EJ9YsG1TYWpzY6FTbUA+iAJeww== - -"@next/swc-win32-x64-msvc@14.0.1": - version "14.0.1" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.1.tgz#be3dd8b3729ec51c99ff04b51e2b235756d02b6e" - integrity sha512-FFp3nOJ/5qSpeWT0BZQ+YE1pSMk4IMpkME/1DwKBwhg4mJLB9L+6EXuJi4JEwaJdl5iN+UUlmUD3IsR1kx5fAg== - "@next/third-parties@^14.0.4": - version "14.0.4" - resolved "https://registry.yarnpkg.com/@next/third-parties/-/third-parties-14.0.4.tgz#9fdb00af692c89a5f3c2c84580d238a656a0d875" - integrity sha512-K17BnacV2QOnI2o5DpeuwW/hnRjIgb8TSSMJC+y36330zh4skERb10FRhdc/0QTVuUc6k8jVJhURxdJu097GOQ== + version "14.2.23" + resolved "https://registry.npmjs.org/@next/third-parties/-/third-parties-14.2.23.tgz" + integrity sha512-6HpKVTnRhr1ueZS0rQfKJTtTbxzGJVgWP8l4TgjJowmIGMJTQs0KQuiaafgOl5RAZimnez5FZuJ0JoyJTMp6vg== dependencies: third-party-capital "1.0.20" @@ -189,7 +149,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": +"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -207,6 +167,63 @@ resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.5.1.tgz" integrity sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA== +"@supabase/auth-js@2.69.1": + version "2.69.1" + resolved "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.69.1.tgz" + integrity sha512-FILtt5WjCNzmReeRLq5wRs3iShwmnWgBvxHfqapC/VoljJl+W8hDAyFmf1NVw3zH+ZjZ05AKxiKxVeb0HNWRMQ== + dependencies: + "@supabase/node-fetch" "^2.6.14" + +"@supabase/functions-js@2.4.4": + version "2.4.4" + resolved "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.4.tgz" + integrity sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA== + dependencies: + "@supabase/node-fetch" "^2.6.14" + +"@supabase/node-fetch@^2.6.14", "@supabase/node-fetch@2.6.15": + version "2.6.15" + resolved "https://registry.npmjs.org/@supabase/node-fetch/-/node-fetch-2.6.15.tgz" + integrity sha512-1ibVeYUacxWYi9i0cf5efil6adJ9WRyZBLivgjs+AUpewx1F3xPi7gLgaASI2SmIQxPoCEjAsLAzKPgMJVgOUQ== + dependencies: + whatwg-url "^5.0.0" + +"@supabase/postgrest-js@1.19.4": + version "1.19.4" + resolved "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.19.4.tgz" + integrity sha512-O4soKqKtZIW3olqmbXXbKugUtByD2jPa8kL2m2c1oozAO11uCcGrRhkZL0kVxjBLrXHE0mdSkFsMj7jDSfyNpw== + dependencies: + "@supabase/node-fetch" "^2.6.14" + +"@supabase/realtime-js@2.11.2": + version "2.11.2" + resolved "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.2.tgz" + integrity sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w== + dependencies: + "@supabase/node-fetch" "^2.6.14" + "@types/phoenix" "^1.5.4" + "@types/ws" "^8.5.10" + ws "^8.18.0" + +"@supabase/storage-js@2.7.1": + version "2.7.1" + resolved "https://registry.npmjs.org/@supabase/storage-js/-/storage-js-2.7.1.tgz" + integrity sha512-asYHcyDR1fKqrMpytAS1zjyEfvxuOIp1CIXX7ji4lHHcJKqyk+sLl/Vxgm4sN6u8zvuUtae9e4kDxQP2qrwWBA== + dependencies: + "@supabase/node-fetch" "^2.6.14" + +"@supabase/supabase-js@^2.49.4": + version "2.49.4" + resolved "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.49.4.tgz" + integrity sha512-jUF0uRUmS8BKt37t01qaZ88H9yV1mbGYnqLeuFWLcdV+x1P4fl0yP9DGtaEhFPZcwSom7u16GkLEH9QJZOqOkw== + dependencies: + "@supabase/auth-js" "2.69.1" + "@supabase/functions-js" "2.4.4" + "@supabase/node-fetch" "2.6.15" + "@supabase/postgrest-js" "1.19.4" + "@supabase/realtime-js" "2.11.2" + "@supabase/storage-js" "2.7.1" + "@swc/helpers@0.5.2": version "0.5.2" resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz" @@ -215,9 +232,9 @@ tslib "^2.4.0" "@tailwindcss/typography@^0.5.10": - version "0.5.15" - resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz" - integrity sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA== + version "0.5.10" + resolved "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz" + integrity sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw== dependencies: lodash.castarray "^4.4.0" lodash.isplainobject "^4.0.6" @@ -239,9 +256,9 @@ "@types/estree" "*" "@types/estree@*", "@types/estree@^1.0.0": - version "1.0.6" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" - integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== "@types/hast@^3.0.0": version "3.0.4" @@ -256,9 +273,9 @@ integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/mdast@^4.0.0": - version "4.0.4" - resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz" - integrity sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA== + version "4.0.3" + resolved "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz" + integrity sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg== dependencies: "@types/unist" "*" @@ -267,13 +284,18 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@^20": +"@types/node@*", "@types/node@^20": version "20.8.10" resolved "https://registry.npmjs.org/@types/node/-/node-20.8.10.tgz" integrity sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w== dependencies: undici-types "~5.26.4" +"@types/phoenix@^1.5.4": + version "1.6.6" + resolved "https://registry.npmjs.org/@types/phoenix/-/phoenix-1.6.6.tgz" + integrity sha512-PIzZZlEppgrpoT2QgbnDU+MMzuR6BbCjllj0bM70lWoejMeNJAxCchxnv7J3XFkI8MpygtRpzXrIlmWUBclP5A== + "@types/prop-types@*": version "15.7.9" resolved "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.9.tgz" @@ -286,7 +308,7 @@ dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18": +"@types/react@*", "@types/react@^18", "@types/react@>=18": version "18.2.33" resolved "https://registry.npmjs.org/@types/react/-/react-18.2.33.tgz" integrity sha512-v+I7S+hu3PIBoVkKGpSYYpiBT1ijqEzWpzQD62/jm4K74hPpSP7FF9BnKG6+fg2+62weJYkkBWDJlZt5JO/9hg== @@ -301,14 +323,21 @@ integrity sha512-s/FPdYRmZR8SjLWGMCuax7r3qCWQw9QKHzXVukAuuIJkXkDRwp+Pu5LMIVFi0Fxbav35WURicYr8u1QsoybnQw== "@types/unist@*", "@types/unist@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz" - integrity sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q== + version "3.0.2" + resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz" + integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== "@types/unist@^2.0.0": - version "2.0.11" - resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz" - integrity sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA== + version "2.0.10" + resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz" + integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== + +"@types/ws@^8.5.10": + version "8.18.1" + resolved "https://registry.npmjs.org/@types/ws/-/ws-8.18.1.tgz" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== + dependencies: + "@types/node" "*" "@typescript-eslint/parser@^5.4.2 || ^6.0.0": version "6.9.1" @@ -365,7 +394,7 @@ acorn-jsx@^5.3.2: resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^8.9.0: +"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0: version "8.11.2" resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz" integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== @@ -542,10 +571,10 @@ axobject-query@^3.1.1: dependencies: dequal "^2.0.3" -b4a@^1.6.4, b4a@^1.6.6: - version "1.6.7" - resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz" - integrity sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg== +b4a@^1.6.4: + version "1.6.6" + resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz" + integrity sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg== bail@^2.0.0: version "2.0.2" @@ -558,39 +587,32 @@ balanced-match@^1.0.0: integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== bare-events@^2.0.0, bare-events@^2.2.0: - version "2.5.0" - resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.5.0.tgz" - integrity sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A== + version "2.2.0" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.0.tgz" + integrity sha512-Yyyqff4PIFfSuthCZqLlPISTWHmnQxoPuAvkmgzsJEmG3CesdIv6Xweayl0JkCZJSB2yYIdJyEz97tpxNhgjbg== bare-fs@^2.1.1: - version "2.3.5" - resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.3.5.tgz" - integrity sha512-SlE9eTxifPDJrT6YgemQ1WGFleevzwY+XAP1Xqgl56HtcrisC2CHCZ2tq6dBpcH2TnNxwUEUGhweo+lrQtYuiw== + version "2.2.0" + resolved "https://registry.npmjs.org/bare-fs/-/bare-fs-2.2.0.tgz" + integrity sha512-+VhW202E9eTVGkX7p+TNXtZC4RTzj9JfJW7PtfIbZ7mIQ/QT9uOafQTx7lx2n9ERmWsXvLHF4hStAFn4gl2mQw== dependencies: bare-events "^2.0.0" + bare-os "^2.0.0" bare-path "^2.0.0" - bare-stream "^2.0.0" + streamx "^2.13.0" -bare-os@^2.1.0: - version "2.4.4" - resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.4.4.tgz" - integrity sha512-z3UiI2yi1mK0sXeRdc4O1Kk8aOa/e+FNWZcTiPB/dfTWyLypuE99LibgRaQki914Jq//yAWylcAt+mknKdixRQ== +bare-os@^2.0.0, bare-os@^2.1.0: + version "2.2.0" + resolved "https://registry.npmjs.org/bare-os/-/bare-os-2.2.0.tgz" + integrity sha512-hD0rOPfYWOMpVirTACt4/nK8mC55La12K5fY1ij8HAdfQakD62M+H4o4tpfKzVGLgRDTuk3vjA4GqGXXCeFbag== bare-path@^2.0.0, bare-path@^2.1.0: - version "2.1.3" - resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.3.tgz" - integrity sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA== + version "2.1.0" + resolved "https://registry.npmjs.org/bare-path/-/bare-path-2.1.0.tgz" + integrity sha512-DIIg7ts8bdRKwJRJrUMy/PICEaQZaPGZ26lsSx9MJSwIhSrcdHn7/C8W+XmnG/rKi6BaRcz+JO00CjZteybDtw== dependencies: bare-os "^2.1.0" -bare-stream@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/bare-stream/-/bare-stream-2.3.0.tgz" - integrity sha512-pVRWciewGUeCyKEuRxwv06M079r+fRjAQjBEK2P6OYGrO43O+Z0LrPZZEjlc4mB6C2RpZ9AxJ1s7NLEtOHO6eA== - dependencies: - b4a "^1.6.6" - streamx "^2.20.0" - base64-js@^1.3.1: version "1.5.1" resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" @@ -625,7 +647,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.21.10: +browserslist@^4.21.10, "browserslist@>= 4.21.0": version "4.22.1" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz" integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== @@ -800,9 +822,9 @@ damerau-levenshtein@^1.0.8: integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== dayjs@^1.11.10: - version "1.11.13" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.13.tgz" - integrity sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg== + version "1.11.10" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz" + integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== debug@^3.2.7: version "3.2.7" @@ -866,9 +888,9 @@ dequal@^2.0.0, dequal@^2.0.3: integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== detect-libc@^2.0.0, detect-libc@^2.0.2: - version "2.0.3" - resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz" - integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw== + version "2.0.2" + resolved "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== devlop@^1.0.0, devlop@^1.1.0: version "1.1.0" @@ -1077,7 +1099,7 @@ eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: dependencies: debug "^3.2.7" -eslint-plugin-import@^2.28.1: +eslint-plugin-import@*, eslint-plugin-import@^2.28.1: version "2.29.0" resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.0.tgz" integrity sha512-QPOO5NO6Odv5lpoTkddtutccQjysJuFxoPS7fAHO+9m9udNHvTCPSAMW9zGAYj8lAIdr40I8yPCdUYrncXtrwg== @@ -1162,7 +1184,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4 resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@^8: +eslint@*, "eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^3 || ^4 || ^5 || ^6 || ^7 || ^8", "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", "eslint@^7.23.0 || ^8.0.0", eslint@^8: version "8.52.0" resolved "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz" integrity sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg== @@ -1259,7 +1281,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-fifo@^1.2.0, fast-fifo@^1.3.2: +fast-fifo@^1.1.0, fast-fifo@^1.2.0: version "1.3.2" resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== @@ -1405,7 +1427,7 @@ github-from-package@0.0.0: resolved "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -glob-parent@^5.1.2, glob-parent@~5.1.2: +glob-parent@^5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== @@ -1419,15 +1441,22 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.6: - version "7.1.6" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== +glob@^7.1.3, glob@7.1.7: + version "7.1.7" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -1436,10 +1465,10 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" -glob@7.1.7, glob@^7.1.3: - version "7.1.7" - resolved "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== +glob@7.1.6: + version "7.1.6" + resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -1601,7 +1630,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.3, inherits@^2.0.4: +inherits@^2.0.3, inherits@^2.0.4, inherits@2: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -1611,10 +1640,10 @@ ini@~1.3.0: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inline-style-parser@0.2.4: - version "0.2.4" - resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz" - integrity sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q== +inline-style-parser@0.2.2: + version "0.2.2" + resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz" + integrity sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ== internal-slot@^1.0.5: version "1.0.6" @@ -1978,9 +2007,9 @@ lru-cache@^6.0.0: yallist "^4.0.0" mdast-util-from-markdown@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.1.tgz" - integrity sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA== + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz" + integrity sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA== dependencies: "@types/mdast" "^4.0.0" "@types/unist" "^3.0.0" @@ -1996,9 +2025,9 @@ mdast-util-from-markdown@^2.0.0: unist-util-stringify-position "^4.0.0" mdast-util-mdx-expression@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz" - integrity sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ== + version "2.0.0" + resolved "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz" + integrity sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw== dependencies: "@types/estree-jsx" "^1.0.0" "@types/hast" "^3.0.0" @@ -2008,9 +2037,9 @@ mdast-util-mdx-expression@^2.0.0: mdast-util-to-markdown "^2.0.0" mdast-util-mdx-jsx@^3.0.0: - version "3.1.3" - resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.3.tgz" - integrity sha512-bfOjvNt+1AcbPLTFMFWY149nJz0OjmewJs3LQQ5pIyVGxP4CdOqNVJL6kTaM5c68p8q82Xv3nCyFfUnuEcH3UQ== + version "3.1.0" + resolved "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.0.tgz" + integrity sha512-A8AJHlR7/wPQ3+Jre1+1rq040fX9A4Q1jG8JxmSNp/PLPHg80A6475wxTp3KzHpApFH6yWxFotHrJQA3dXP6/w== dependencies: "@types/estree-jsx" "^1.0.0" "@types/hast" "^3.0.0" @@ -2022,6 +2051,7 @@ mdast-util-mdx-jsx@^3.0.0: mdast-util-to-markdown "^2.0.0" parse-entities "^4.0.0" stringify-entities "^4.0.0" + unist-util-remove-position "^5.0.0" unist-util-stringify-position "^4.0.0" vfile-message "^4.0.0" @@ -2046,9 +2076,9 @@ mdast-util-phrasing@^4.0.0: unist-util-is "^6.0.0" mdast-util-to-hast@^13.0.0: - version "13.2.0" - resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz" - integrity sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA== + version "13.1.0" + resolved "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz" + integrity sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -2087,9 +2117,9 @@ merge2@^1.3.0, merge2@^1.4.1: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromark-core-commonmark@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.1.tgz" - integrity sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA== + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz" + integrity sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA== dependencies: decode-named-character-reference "^1.0.0" devlop "^1.0.0" @@ -2238,9 +2268,9 @@ micromark-util-sanitize-uri@^2.0.0: micromark-util-symbol "^2.0.0" micromark-util-subtokenize@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.1.tgz" - integrity sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q== + version "2.0.0" + resolved "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz" + integrity sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg== dependencies: devlop "^1.0.0" micromark-util-chunked "^2.0.0" @@ -2310,7 +2340,7 @@ mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: resolved "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -ms@2.1.2, ms@^2.1.1: +ms@^2.1.1, ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== @@ -2349,7 +2379,7 @@ next-sitemap@^4.2.3: fast-glob "^3.2.12" minimist "^1.2.8" -next@14.0.1: +next@*, "next@^13.0.0 || ^14.0.0", next@14.0.1: version "14.0.1" resolved "https://registry.npmjs.org/next/-/next-14.0.1.tgz" integrity sha512-s4YaLpE4b0gmb3ggtmpmV+wt+lPRuGtANzojMQ2+gmBpgX9w5fTbjsy6dXByBuENsdCX5pukZH/GxdFgO62+pA== @@ -2373,9 +2403,9 @@ next@14.0.1: "@next/swc-win32-x64-msvc" "14.0.1" node-abi@^3.3.0: - version "3.68.0" - resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.68.0.tgz" - integrity sha512-7vbj10trelExNjFSBm5kTvZXXa7pZyKWx9RCKIyqe6I9Ev3IzGpQoqBP3a+cOdxY+pWj6VkP28n/2wWysBHD/A== + version "3.56.0" + resolved "https://registry.npmjs.org/node-abi/-/node-abi-3.56.0.tgz" + integrity sha512-fZjdhDOeRcaS+rcpve7XuwHBmktS1nS1gzgghwKUQQ8nTy2FdSDr6ZT8k6YhvlJeHmmQMYiT/IH9hfco5zeW2Q== dependencies: semver "^7.3.5" @@ -2609,14 +2639,6 @@ postcss-nested@^6.0.1: dependencies: postcss-selector-parser "^6.0.11" -postcss-selector-parser@6.0.10: - version "6.0.10" - resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - postcss-selector-parser@^6.0.11: version "6.0.13" resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" @@ -2625,12 +2647,20 @@ postcss-selector-parser@^6.0.11: cssesc "^3.0.0" util-deprecate "^1.0.2" +postcss-selector-parser@6.0.10: + version "6.0.10" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz" + integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.31, postcss@^8, postcss@^8.4.23: +postcss@^8, postcss@^8.0.0, postcss@^8.1.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@>=8.0.9, postcss@8.4.31: version "8.4.31" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -2640,9 +2670,9 @@ postcss@8.4.31, postcss@^8, postcss@^8.4.23: source-map-js "^1.0.2" prebuild-install@^7.1.1: - version "7.1.2" - resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.2.tgz" - integrity sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ== + version "7.1.1" + resolved "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== dependencies: detect-libc "^2.0.0" expand-template "^2.0.3" @@ -2663,9 +2693,9 @@ prelude-ls@^1.2.1: integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.0.3: - version "3.3.3" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz" - integrity sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew== + version "3.2.5" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== prop-types@^15.8.1: version "15.8.1" @@ -2677,14 +2707,14 @@ prop-types@^15.8.1: react-is "^16.13.1" property-information@^6.0.0: - version "6.5.0" - resolved "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz" - integrity sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig== + version "6.4.1" + resolved "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz" + integrity sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w== pump@^3.0.0: - version "3.0.2" - resolved "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz" - integrity sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw== + version "3.0.0" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" @@ -2714,7 +2744,7 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-dom@^18: +react-dom@^18, react-dom@^18.2.0: version "18.2.0" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== @@ -2743,7 +2773,7 @@ react-markdown@^9.0.0: unist-util-visit "^5.0.0" vfile "^6.0.0" -react@^18: +react@^18, react@^18.2.0, "react@>= 16", "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=18: version "18.2.0" resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== @@ -2810,9 +2840,9 @@ remark-parse@^11.0.0: unified "^11.0.0" remark-rehype@^11.0.0: - version "11.1.1" - resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz" - integrity sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ== + version "11.1.0" + resolved "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz" + integrity sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g== dependencies: "@types/hast" "^3.0.0" "@types/mdast" "^4.0.0" @@ -2898,7 +2928,12 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -semver@^6.3.0, semver@^6.3.1: +semver@^6.3.0: + version "6.3.1" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -3005,17 +3040,23 @@ streamsearch@^1.1.0: resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== -streamx@^2.15.0, streamx@^2.20.0: - version "2.20.1" - resolved "https://registry.npmjs.org/streamx/-/streamx-2.20.1.tgz" - integrity sha512-uTa0mU6WUC65iUvzKH4X9hEdvSW7rbPxPtwfWiLMSj3qTdQbAiUboZTxauKfpFuGIGa1C2BYijZ7wgdUXICJhA== +streamx@^2.13.0, streamx@^2.15.0: + version "2.16.1" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== dependencies: - fast-fifo "^1.3.2" + fast-fifo "^1.1.0" queue-tick "^1.0.1" - text-decoder "^1.1.0" optionalDependencies: bare-events "^2.2.0" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string.prototype.matchall@^4.0.8: version "4.0.10" resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz" @@ -3058,17 +3099,10 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - stringify-entities@^4.0.0: - version "4.0.4" - resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" - integrity sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg== + version "4.0.3" + resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== dependencies: character-entities-html4 "^2.0.0" character-entities-legacy "^3.0.0" @@ -3096,11 +3130,11 @@ strip-json-comments@~2.0.1: integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== style-to-object@^1.0.0: - version "1.0.8" - resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz" - integrity sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g== + version "1.0.5" + resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz" + integrity sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ== dependencies: - inline-style-parser "0.2.4" + inline-style-parser "0.2.2" styled-jsx@5.1.1: version "5.1.1" @@ -3134,7 +3168,7 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -tailwindcss@^3.3.0: +tailwindcss@^3.3.0, "tailwindcss@>=3.0.0 || insiders": version "3.3.5" resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz" integrity sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA== @@ -3178,9 +3212,9 @@ tar-fs@^2.0.0: tar-stream "^2.1.4" tar-fs@^3.0.4: - version "3.0.6" - resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz" - integrity sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w== + version "3.0.5" + resolved "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.5.tgz" + integrity sha512-JOgGAmZyMgbqpLwct7ZV8VzkEB6pxXFBVErLtb+XCOqzc6w1xiWKI9GVd6bwk68EX7eJ4DWmfXVmq8K2ziZTGg== dependencies: pump "^3.0.0" tar-stream "^3.1.5" @@ -3208,13 +3242,6 @@ tar-stream@^3.1.5: fast-fifo "^1.2.0" streamx "^2.15.0" -text-decoder@^1.1.0: - version "1.2.0" - resolved "https://registry.npmjs.org/text-decoder/-/text-decoder-1.2.0.tgz" - integrity sha512-n1yg1mOj9DNpk3NeZOx7T6jchTbyJS3i3cucbNN6FcdPriMZx7NsgrGpWWdWZZGxD7ES1XB+3uoqHMgOKaN+fg== - dependencies: - b4a "^1.6.4" - text-table@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" @@ -3236,7 +3263,7 @@ thenify-all@^1.0.0: third-party-capital@1.0.20: version "1.0.20" - resolved "https://registry.yarnpkg.com/third-party-capital/-/third-party-capital-1.0.20.tgz#e218a929a35bf4d2245da9addb8ab978d2f41685" + resolved "https://registry.npmjs.org/third-party-capital/-/third-party-capital-1.0.20.tgz" integrity sha512-oB7yIimd8SuGptespDAZnNkzIz+NWaJCu2RMsbs4Wmp9zSDUM8Nhi3s2OOcqYuv3mN4hitXc8DVx+LyUmbUDiA== to-regex-range@^5.0.1: @@ -3246,6 +3273,11 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + trim-lines@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz" @@ -3339,7 +3371,7 @@ typed-array-length@^1.0.4: for-each "^0.3.3" is-typed-array "^1.1.9" -typescript@^5: +typescript@^5, typescript@>=3.3.1, typescript@>=4.2.0: version "5.2.2" resolved "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== @@ -3360,9 +3392,9 @@ undici-types@~5.26.4: integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== unified@^11.0.0: - version "11.0.5" - resolved "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz" - integrity sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA== + version "11.0.4" + resolved "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz" + integrity sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ== dependencies: "@types/unist" "^3.0.0" bail "^2.0.0" @@ -3386,6 +3418,14 @@ unist-util-position@^5.0.0: dependencies: "@types/unist" "^3.0.0" +unist-util-remove-position@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz" + integrity sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q== + dependencies: + "@types/unist" "^3.0.0" + unist-util-visit "^5.0.0" + unist-util-stringify-position@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz" @@ -3439,11 +3479,12 @@ vfile-message@^4.0.0: unist-util-stringify-position "^4.0.0" vfile@^6.0.0: - version "6.0.3" - resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz" - integrity sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q== + version "6.0.1" + resolved "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz" + integrity sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw== dependencies: "@types/unist" "^3.0.0" + unist-util-stringify-position "^4.0.0" vfile-message "^4.0.0" watchpack@2.4.0: @@ -3454,6 +3495,19 @@ watchpack@2.4.0: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" @@ -3516,6 +3570,11 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +ws@^8.18.0: + version "8.18.1" + resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz" + integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" From 54edaaeb385dc064fed9d2b0cd125989e9411ec0 Mon Sep 17 00:00:00 2001 From: Dario-Pinzauti Date: Wed, 30 Apr 2025 19:35:56 +0200 Subject: [PATCH 3/4] feat:modify gitignore --- .gitignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 7a917f8..dc1eb88 100644 --- a/.gitignore +++ b/.gitignore @@ -35,4 +35,8 @@ yarn-error.log* *.tsbuildinfo next-env.d.ts -.idea/ \ No newline at end of file +.idea/ + +supabase/.temp +supabase/.branches +.env. \ No newline at end of file From c11959a52661ddd59bf174b4887f891f1cc150c6 Mon Sep 17 00:00:00 2001 From: Dario-Pinzauti Date: Mon, 5 May 2025 17:36:38 +0200 Subject: [PATCH 4/4] fix : remove events-db.ts --- src/app/eventi/lib/events-db.ts | 619 -------------------------------- 1 file changed, 619 deletions(-) delete mode 100644 src/app/eventi/lib/events-db.ts diff --git a/src/app/eventi/lib/events-db.ts b/src/app/eventi/lib/events-db.ts deleted file mode 100644 index 29ed179..0000000 --- a/src/app/eventi/lib/events-db.ts +++ /dev/null @@ -1,619 +0,0 @@ -import moduleFederationImage from "./images/thumb/moduleFederationImage.png"; -import rabbitImage from "./images/thumb/rabbit.png"; -import graphqlImage from "./images/thumb/graphql.png"; -import anotherifImage from "./images/thumb/anotherif.png"; -import anotherifImageBig from "./images/solo-un-altro-if.png"; -import nextEventImage from "./images/thumb/3-150x150.png"; -import rabbitImageFull from "./images/Applicazioni-piu-semplici-robuste-e-performanti-con-RabbitMQ-min.png"; -import searchEngine from "./images/building-a-full-text-search-engine-from-scratch-in-typescript.png"; -import fontendApps from "./images/rendere-applicazioni-front-end-scalabitli.png"; -import graphqlImageBig from "./images/graphql-2014-min.png"; -import christmasBeer from "./images/christmas-beer-firenze-dev.png"; -import christmasBeerIcon from "./images/thumb/christmas-beer-firenze-dev.webp"; -import devExpIcon from "./images/thumb/evento_devex-150x150.png"; -import devExp from "./images/evento_devex.png"; -import monolite from "./images/dal-monolite-ai-microservizi.png"; -import monoliteIcon from "./images/thumb/dal-monolite-ai-microservizi.png"; -import meetUpCodemotion from "./images/meet-up-codemotion-05-2023.png"; -import meetUpCodemotionIcon from "./images/thumb/meet-up-codemotion-05-2023-thumb.png"; -import summerBeer from "./images/EventBrite_summer.png"; -import summerBeerIcon from "./images/thumb/summer-beer-thumb-150x150.png"; -import blockchain101Icon from "./images/thumb/blockchain101-thumb.webp"; -import blockchain101 from "./images/blockchain101.webp"; -import workshopBlockchain101 from "./images/workshop-blockchain.png"; -import workshopBlockchain101Icon from "./images/thumb/workshop-blockchain-thumb.png"; -import openMicNightIcon from "./images/thumb/open-mic-night-icon.png"; -import openMicNight from "./images/open-mic-night.png"; -import dataAnalisisConIA from "./images/14Marzo_EventBrite_colors.png"; -import dataAnalisisConIAIcon from "./images/thumb/14Marzo_EventBrite_colors_thumb.png"; -import shapingYourFuture from "./images/9_Maggio_EventBrite_colors.png"; -import shapingYourFutureIcon from "./images/thumb/9_Maggio_thumb_colors.png"; -import summerBeer2024Icon from "./images/thumb/beerGiugno.png"; -import summerBeer2024 from "./images/EventBrite_summerbeer.png"; -import { FDevEvent } from "./types"; -import dayjs from "dayjs"; - -import supply_cahain from "./images/supply_cahain.png"; -import supply_cahainIcon from "./images/thumb/supply_chain.png"; -import data_revolution from "./images/data_Revolution_14_11_06.png"; -import data_revolutionIcon from "./images/thumb/data_Revolution_14_11_06.png"; -import typescript_gennastic from "./images/typescript_gennastic20022025.png"; -import supercharging_with_rag from "./images/supercharging_your_app_with_rag.png"; -import supercharging_with_ragIcon from "./images/thumb/supercharging_your_app_with_rag.png"; -import sopravvivere_alle_pull_request from "./images/sopravvivere-alle-pull-request15052025.png"; - -export const events: FDevEvent[] = [ - { - title: "Sopravvivere alle Pull Request", - subtitle: - "Come rendere il codice perfetto senza scatenare drammi in ufficio", - icon: sopravvivere_alle_pull_request, - image: sopravvivere_alle_pull_request, - abstract: ` -È una tranquilla giornata di lavoro, -finché improvvisamente arriva una nuova **Pull Request**. -La apri con un click e, in un attimo, ti assale una sensazione di panico. -Ti ritrovi a fissare linee e linee di codice che ti fanno pensare: 'Ma è una PR o una dichiarazione di guerra?' -Dopo il primo momento di shock, ti rimbocchi le maniche e ti butti nel codice: -il tuo obiettivo non è solo riscrivere tutto, ma fare in modo che una cosa del genere non accada mai più. - -In questo talk, vedremo insieme come funziona il processo di revisione: -dall'individuazione dei problemi al refactoring, fino alla chiacchierata con il povero malcapitato che ha scritto il codice. -Guardando un esempio concreto, scopriremo come ogni PR possa diventare un'opportunità per crescere e per migliorare il codice, -continuando a mantenere buoni rapporti con i colleghi (almeno fino al prossimo commit!).`, - current: true, - hideSponsorInNetworking: true, - date: dayjs("2025-05-15 18:30").toDate(), - sponsor: "sinerbit", - place: "Camplus Firenze", - address: "5 Via del Romito #7 50134 Firenze", - eventbriteId: "1330690263399", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-sopravvivere-alle-pull-request-1330690263399", - type: "meetup", - }, - { - title: "Supercharging your App with a RAG: a real-world usecase", - subtitle: - "Come sfruttare la potenza dell'intelligenza artificiale per ottenere risultati sempre più accurati e personalizzati", - icon: supercharging_with_ragIcon, - image: supercharging_with_rag, - abstract: ` -👉 Ti è mai capitato di usare un LLM che generava risposte affascinanti...ma completamente sbagliate? Oppure di provare a far lavorare un Agent, solo per scoprire che si perdeva in un loop infinito di richieste? - -Nel mondo dello sviluppo, un’AI generativa priva di contesto rischia di essere poco utile. È qui che entrano in gioco i Retrieval-Augmented Generation (RAG), strumenti indispensabili per costruire sistemi intelligenti in grado di elaborare i dati giusti al momento giusto. - -In questo talk, Giuseppe Funicello, nomade digitale e youtuber, ci guiderà oltre i limiti dei modelli generativi tradizionali, ottimizzando i processi di ingestion e retrieval dei dati per ottenere risultati sempre più accurati. Con il supporto del motore Cheshire Cat, un framework open-source per la creazione di Agent di AI, esploreremo casi d’uso concreti e best practice che ci insegneranno come integrare al meglio questi strumenti nei nostri progetti. - -💡 Se vuoi progettare AI che non solo rispondono, ma ragionano, questo evento è per te.`, - current: true, - hideSponsorInNetworking: true, - date: dayjs("2025-04-02 18:30").toDate(), - sponsor: "42 Firenze", - place: "42 Firenze", - address: "Via del Tiratoio, 1, 50124 Firenze", - eventbriteId: "1273032487439", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-supercharging-your-app-with-a-rag-a-real-world-usecase-1273032487439", - type: "meetup", - }, - { - title: "TypeScript Gymnastics: Why Are They So Powerful for You?", - subtitle: - "Scopriremo la flessibilità e la potenza di TypeScript per creare soluzioni sempre più efficaci, versatili e sicure.", - icon: typescript_gennastic, - image: typescript_gennastic, - abstract: ` -Il sistema di tipi di TypeScript non è solo uno strumento per intercettare errori: -è un potente alleato per risolvere problemi complessi, scrivendo codice pulito e affidabile. -Insieme a Luca Del Puppo, Senior Software Developer @Nearform, esploreremo tecniche -avanzate di TypeScript, come mapped types, conditional types e generics, -che possono aiutarci ad affrontare anche le sfide più difficili legate ai tipi. -Scoprirai come queste tecniche possano aiutarti a estrarre, trasformare e validare i tipi, -mantenendo il tuo codice semplice e facile da manutenere. -Queste tecniche avanzate di TypeScript, infatti, non servono solo a stupire i tuoi amici: -sono competenze pratiche che rendono i tuoi sistemi più robusti e facili da usare. -Al termine di questo talk saprai come sfruttare al massimo la flessibilità e la potenza di TypeScript, -per creare soluzioni sempre più efficaci, versatili e sicure.`, - current: false, - hideSponsorInNetworking: false, - date: dayjs("2025-02-20 18:30").toDate(), - sponsor: "Human Company", - place: "Palazzo Borghese", - address: "110 Via Ghibellina 50122 Firenze", - eventbriteId: "1218091667969", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-typescript-gymnastics-why-are-they-so-powerful-for-you-1218091667969", - type: "meetup", - }, - { - title: "Data Revolution: next-generation data architectures", - subtitle: "Siamo sicuri che i tuoi dati stiano bene, lì ammucchiati in un vecchio DB?", - icon: data_revolutionIcon, - image: data_revolution, - abstract: `Magari finora ha funzionato, ma il mondo della gestione dei dati si sta evolvendo rapidamente. - -In questo incontro Samuele Cucchi e Lorenzo Pasco, Data Engineer @Seacom, ci guideranno nel passaggio dalle architetture tradizionali a soluzioni di nuova generazione. - -Scopriremo i vantaggi di un approccio Data Mesh per snellire la gestione dei dati e come un Data Lakehouse con interazione git-like offra un controllo dinamico, con possibilità di rollback e commit dei dati. -Un'occasione per esplorare nuovi orizzonti e assicurarti che i tuoi dati siano pronti per le sfide future! -`, - current: true, - hideSponsorInNetworking: false, - date: dayjs("2024-11-06 18:30").toDate(), - sponsor: "Seacom", - place: "Murate Idea Park | MIP", - address: "8 Piazza della Madonna della Neve 50122 Firenze", - eventbriteId: "1045371031897", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-data-revolution-next-generation-data-architectures-1045371031897", - type: "meetup", - }, - { - title: "The unexpected attack: hacking the supply chain", - subtitle: "Tanto prima o poi capita a tutti: impara a pensare come un hacker per anticipare gli attacchi", - icon: supply_cahainIcon, - image: supply_cahain, - abstract: `Che cosa si intende quando parliamo di supply chain? E perché potrebbe rappresentare un pericoloso punto d'ingresso per attaccare il nostro software? - -In questo talk, Edoardo Dusi, Senior Developer Relations Engineer @ Storyblok, ci accompagnerà in un viaggio alla scoperta delle software supply chain, spiegando in modo chiaro come questi concetti influenzino la costruzione e distribuzione delle nostre applicazioni. - -Vedremo come le vulnerabilità della supply chain possano essere sfruttate per condurre alcuni degli attacchi più comuni e discuteremo insieme le strategie per difendere efficacemente il nostro software. - -Parleremo inoltre della Open Source Security Foundation (OpenSSF), un'iniziativa collaborativa che mira a rafforzare la sicurezza del software open source e che può rivelarsi di fondamentale importanza per prevenire questo tipo di attacchi, perché anche se il nostro codice è privato, si basa su progetti e librerie open source. - -Alla fine del talk, avremo una visione nitida e completa di come funziona una supply chain e avremo a disposizione un insieme di best practices e strategie concrete per salvaguardare le nostre applicazioni. -`, - current: false, - hideSponsorInNetworking: true, - date: dayjs("2024-10-03 18:30").toDate(), - sponsor: "42 Firenze", - place: "42 Firenze", - address: "Via del Tiratoio, 1, 50124 Firenze", - eventbriteId: "1006661681187", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-the-unexpected-attack-hacking-the-supply-chain-1006661681187", - type: "meetup", - }, - { - title: "Summer Beer Meetup 2024", - subtitle: "L'estate è finalmente alle porte, cosa c'è di meglio che condividere una birra fresca in compagnia?", - - icon: summerBeer2024Icon, - image: summerBeer2024, - abstract: ` -Ci ritroviamo alle porte dell'estate per una serata informale in cui conoscerci meglio, -condividere idee e discutere insieme delle prossime attività della community, - -il tutto accompagnato da una rinfrescante birretta offerta da noi! - -Ti aspettiamo mercoledì 5 giugno dalle 21:30 al Parc Bistrò, Piazzale delle Cascine, 50144 Firenze FI. - -La partecipazione è aperta a tutti, vieni con chi vuoi 😉 -`, - current: true, - date: dayjs("2024-06-5 21:30").toDate(), - sponsor: "", - place: "Parc Bistrò", - address: "Piazzale delle Cascine 50144 Firenze", - eventbriteId: "909339367527", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-summer-beer-meetup-909339367527?aff=ebdsoporgprofile&_gl=1*193px25*_up*MQ..*_ga*NDczMzI5MjIyLjE3MTYyMzU5MDE.*_ga_TQVES5V6SH*MTcxNjIzNTkwMS4xLjAuMTcxNjIzNTkwMS4wLjAuMA..", - type: "beer", - }, - { - title: "Shaping Your Future: carriera e crescita nel mondo Dev", - subtitle: - "Esplora il futuro dello sviluppo con Simone Torrisi di TomorrowDevs! Tecnologie, crescita professionale e aziende di successo ti aspettano!", - icon: shapingYourFutureIcon, - image: shapingYourFuture, - abstract: ` -Hai mai immaginato dove potresti trovarti nel tuo percorso professionale tra 10 anni? -Ti sei mai chiesto quali siano le scelte migliori per investire sul tuo futuro e ottenere -il lavoro dei tuoi sogni? Ti piacerebbe saper riconoscere le aziende che saranno -in grado di supportare la tua crescita e soddisfare le tue aspettative? - -A queste e ad altre domande risponderà [**Simone Torrisi**](https://www.linkedin.com/in/storrisi/), -Tech Mentor e Fondatore di **TomorrowDevs**, che, basandosi sulla sua esperienza sul campo, -ci offrirà una panoramica sugli ostacoli e sulle opportunità legate alla definizione -di un solido percorso di carriera per gli sviluppatori. - -Vedremo quali sono le maggiori difficoltà che si incontrano nel -definire una prospettiva a lungo termine, in un contesto che richiede personale tecnico sempre più specializzato, -ma che al tempo stesso è in grado di offrire solamente percorsi di carriera tradizionali e verticali. -Scopriremo quali sono gli aspetti da tenere in considerazione in questo processo di rinnovamento del -sistema e quali sono i punti chiave per consentire agli sviluppatori di percorrere una strada di crescita costante, -senza dover sacrificare i loro obiettivi professionali. -`, - current: true, - date: dayjs("2024-05-9 18:30").toDate(), - sponsor: "", - place: null, - address: "Camplus, Via del romito 5/7, 50134 Firenze", - eventbriteId: "880064094397", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-shaping-your-future-carriera-e-crescita-nel-mondo-dev-880064094397", - type: "meetup", - }, - { - title: " Data Analysis con l'IA 🐼", - subtitle: "Un approccio innovativo all'analisi dei dati con l'IA generativa", - icon: dataAnalisisConIAIcon, - image: dataAnalisisConIA, - abstract: ` -Nell'era dei big data, l'analisi dei dati è diventata un pilastro fondamentale per l'innovazione aziendale. - -Tuttavia, il processo tradizionale di estrazione e elaborazione dei dati può essere laborioso e richiedere competenze specialistiche. -È qui che entra in gioco l'intelligenza artificiale (IA). - -In questo talk tecnico **Gabriele Baldi**, Head of Software Development in **Lotrèk**, -ci introdurrà al mondo della data analysis e ci mostrerà come sia possibile integrare l'IA generativa (quella in stile GPT, per capirci) con Pandas 🐼, -uno dei tool di manipolazione e processamento dati più famosi e utilizzati. - -Partendo dalle basi dell'analisi dati, esamineremo come sfruttare le più recenti tecnologie di IA per creare sistemi di analisi dati intelligenti e adattivi. - -Attraverso esempi pratici scopriremo come trasformare l'analisi dati da un compito complesso a un processo fluido e potenziato dall'intelligenza artificiale. - -`, - current: true, - date: dayjs("2024-03-14 18:30").toDate(), - sponsor: "", - place: null, - address: "Impact Hub Firenze, Via Panciatichi, 1, 50141", - eventbriteId: "851089440427", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-data-analysis-con-lia-851089440427", - type: "meetup", - }, - { - title: "🚀 Call for Papers: Open Mic Night 🎤", - subtitle: "👩‍💻👨‍💻 Non vediamo l'ora di scoprire le tue idee! Unisciti a noi e fai sentire la tua voce! 💪😎", - icon: openMicNightIcon, - image: openMicNight, - abstract: ` -Firenze.dev crede fortemente nell'aggregazione, nello scambio di idee e nella condivisione, da parte di chiunque sia un appassionato dello sviluppo software e di tutti gli argomenti che orbitano intorno a questo fantastico mondo! 🪐. - -### 🫵 We want you! - -Ti piacerebbe parlare della tecnologia per cui stai in fissa in questo momento, raccontare un progetto che ti ha appassionato o semplicemente condividere un'esperienza, ma non hai ancora trovato l'occasione giusta per farlo? Bene, Open Mic Night potrebbe proprio fare al caso tuo!💪 - - -La community sta organizzando un evento dedicato a te, che sarà composto da 4/5 speech della durata di circa 15' ciascuno, l'ambiente ideale per chi si trova a voler fare il suo primo talk. - - -### 🤩 Perché partecipare? - -Potrai creare delle connessioni con altri appassionati del mondo tech. - -Farai un esperienza di public speaking che ti porterà notevoli vantaggi anche nel mondo professionale - -Ti divertirai! Firenze.dev è una community accogliente e aperta a nuove idee. - - -### 📝 Come partecipare: - -Compila quest form [https://forms.gle/qqNZGx9BCiAbVXds8](https://forms.gle/qqNZGx9BCiAbVXds8) con un breve abstract (circa 200 parole) e il tuo profilo entro il 20 novembre. I talk selezionati saranno annunciati il 30 novembre. - - -🚨 Attenzione: Se pensi che preparare un talk sia paragonabile a una delle sette fatiche di Ercole, non ti preoccupare, lo staff di firenze.dev, composto da vecchi lupi di mare 🏴‍☠️ che hanno affrontato le acque impervie di molteplici conferenze , sarà a tua disposizione per darti qualche dritta! - - -👩‍💻👨‍💻 Non vediamo l'ora di scoprire le tue idee! - - -Unisciti a noi e fai sentire la tua voce! 💪😎 -`, - current: true, - date: dayjs("2023-12-14 18:30").toDate(), - sponsor: "", - place: null, - address: "", - eventbriteId: "746333071307", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-workshop-sviluppare-una-dapp-su-blockchain-746333071307", - type: "cfp", - }, - { - title: "Workshop: sviluppare una dApp su blockchain", - subtitle: - "Scopriremo insieme come scrivere uno smart contract, effettuare il deploy sulla blockchain e sviluppare una dApp", - icon: workshopBlockchain101Icon, - image: workshopBlockchain101, - abstract: `La blockchain è un argomento così vasto che, dopo il nostro ultimo evento, in molti ci avete chiesto di entrare maggiormente nel dettaglio di questa tecnologia. È proprio per passare dalla teoria alla pratica che abbiamo ideato il primo workshop di firenze.dev. In questo evento svilupperemo insieme un'applicazione decentralizzata basata sulla blockchain: partiremo dalla creazione di uno smart contract, vedremo come inviarlo sulla blockchain e infine come invocare le sue funzioni da un comune browser, sviluppando il codice di una dApp. Non è necessario avere conoscenze pregresse: vedremo insieme i concetti fondamentali che ci serviranno per scrivere il codice. - -Si tratterà di un vero e proprio workshop, guidato da Tiziano Pessa e Lorenzo Spinelli, nel quale ognuno sarà attivamente coinvolto e affiancato nello sviluppo della dApp. Al termine, i partecipanti saranno in grado di scrivere uno smart contract, effettuare il deploy sulla blockchain e sviluppare una dApp utilizzabile da un comune browser. - -Per poter garantire un supporto attivo per tutta la durata dell'evento, i posti disponibili saranno molto limitati e solo i primi a prendere il biglietto potranno partecipare. I biglietti saranno gratuiti per i membri della community, ma saranno disponibili anche dei posti per chi non è iscritto, che però per motivi organizzativi dovrà versare una quota di partecipazione. - -# Info - -L'evento si terrà presso Frame School, in via di Scandicci 88/A. Si può raggiungere con i mezzi pubblici (in tramvia fermata T1 Arcipressi oppure con la linea 6 dell'autobus). Per chi viene in auto, è facile trovare parcheggio nelle vie adiacenti, di fronte all'Istituto Meucci o in via del Filarete, davanti al campo di atletica. - -L'evento inizierà alle 18.30 e avrà una durata di circa 2 ore; al termine, con chi vuole, andremo a cena insieme. - - -# FAQ - -**Cosa devo portare?** - -Devi avere con te un laptop, con Node.js e git già installati, oltre al tuo IDE preferito per poter lavorare sul progetto. - -**Quali conoscenze pregresse devo avere per partecipare?** - -E' sufficiente che tu conosca la sintassi di base del linguaggio JavaScript e che tu sia in grado di utilizzare un progetto Node.js con un package manager (npm o yarn). - -**Come faccio a sapere se sono iscritto alla community e ho diritto al biglietto gratuito?** - -E' sufficiente che tu ti sia iscritto tramite il form che trovi nella home page del sito di firenze.dev e che di conseguenza ricevi regolarmente la nostra newsletter. Quando prenoti il biglietto, assicurati di utilizzare la stessa email che hai usato per l'iscrizione alla community. - -**Vorrei partecipare ma non sono certo di farcela. Posso prendere lo stesso il biglietto?** - -Il numero di posti disponibili per questo evento è limitatissimo: siamo contenti che tu voglia partecipare e ti consigliamo di prendere il biglietto. Ma ti preghiamo di avvertirci immediatamente se sei sicuro di non riuscire a venire, così potremo assegnare il tuo biglietto a qualcun altro. - - -**Come funziona la lista d'attesa?** - -Le persone in lista d'attesa riceveranno il biglietto in caso qualcuno degli iscritti dovesse rinunciare. In tal caso vi arriverà una comunicazione direttamente da EventBrite, ma attenzione: quello non è il biglietto! Per avere il biglietto dovete seguire le istruzioni e riscattarlo entro 24 ore! - -`, - current: true, - date: dayjs("2023-11-23 18:30").toDate(), - sponsor: "", - place: "Frame School", - address: "via di Scandicci 88, Firenze, FI", - eventbriteId: "746333071307", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-workshop-sviluppare-una-dapp-su-blockchain-746333071307", - type: "workshop", - }, - { - title: "Blockchain 101, from zero to developer", - subtitle: "Un percorso alla scoperta della blockchain, per comprenderne il funzionamento e le potenzialità", - icon: blockchain101Icon, - image: blockchain101, - abstract: `Hai sempre considerato la blockchain un mistero insondabile? Sei ancora incerto sugli ambiti in cui può essere applicata? È ora di svelare i segreti di questa tecnologia rivoluzionaria! - -Dalla crittografia all' utilizzo dei wallet, dagli smart contract agli NFT, in questo evento Lorenzo Spinelli e Tiziano Pessa ci mostreranno gli aspetti tecnici che ogni programmatore deve conoscere per capire questa tecnologia e sviluppare applicazioni decentralizzate su blockchain. - -Non preoccuparti se è la prima volta che ti avvicini a questo argomento, saranno affrontati in modo chiaro e semplice tutti gli aspetti essenziali, per consentire anche a chi non conosce questa tecnologia, non solo di seguire il talk, ma anche di iniziare a svilupparci fin da subito.`, - current: true, - date: dayjs("2023-10-12 18:30").toDate(), - sponsor: "", - place: "Frame School", - address: "via di Scandicci 88, Firenze, FI", - eventbriteId: "719618035917", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-blockchain-101-from-zero-to-developer-719618035917", - type: "meetup", - }, - { - title: "Summer Beer Meetup", - subtitle: "L'estate è finalmente alle porte, cosa c'è di meglio che condividere una birra fresca in compagnia?", - icon: summerBeerIcon, - image: summerBeer, - abstract: `L'estate è finalmente alle porte, cosa c'è di meglio che condividere una birra fresca in compagnia? - Ci piacerebbe approfittare dell' occasione per scambiare qualche chiacchiera informale e darvi la possibilità di suggerire gli argomenti che vi piacerebbe trattare nei prossimi eventi che organizzeremo. - Puoi portare con te chi vuoi, per partecipare è sufficiente prenotare un biglietto gratuito per ogni persona, così che possiamo riservare un posto per tutti! - Ti aspettiamo!`, - current: true, - date: dayjs("2023-06-08 21:30").toDate(), - sponsor: "", - place: "Fabbrica in Pedavena", - address: "Via Generale C. A. dalla Chiesa, 1, 50136 Firenze FI", - eventbriteId: "646533919357", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-summer-beer-meetup-646533919357", - type: "beer", - }, - { - title: "Dev Florence Meetup", - subtitle: - "La community di developer fiorentina si ritrova a Firenze presso Impact Hub il 24 maggio 2023 per un meetup organizzato da Codemotion, Firenze.dev, Full Stack Florence e Schrodinger Hat", - icon: meetUpCodemotionIcon, - image: meetUpCodemotion, - abstract: ` -Ecco gli interventi della serata: - -Un viaggio alla scoperta di Three.js -Sei appassionat* di videogiochi o semplicemente di animazioni grafiche? -Allora la libreria Three.js è lo strumento che fa per te! Insieme esploreremo questo mondo virtuale, -scopriremo le sue funzioni principali e vedremo quali applicazioni possiamo mettere in pratica per dare sfogo alla nostra creatività nel fantastico mondo della grafica 3D. - -Schrodinger Hat - Angela Busato - -WebGPU, a new dawn for web graphics -WebGPU è una tecnologia emergente che mira a fornire un'API grafica a basso livello per il web, simile a DirectX e Vulkan. -In questo talk verrà fornita un'introduzione all'API WebGPU, i suoi vantaggi, e come iniziare a utilizzarlo. Discuteremo le prestazioni e la portabilità su diverse piattaforme, -e mostreremo alcuni esempi di applicazioni WebGPU. Se sei un sviluppatore web interessato a costruire applicazioni grafiche avanzate, -o un appassionato di GPU alla ricerca delle ultime tendenze in tecnologia grafica, questo talk fa al caso tuo. - -Full Stack Florence - Andrea Gherardi, Chief Technical Officer @ Mirror - -Real world GraphQL subscriptions -Le subscription sono una delle feature più interessanti di GraphQL perché permettono di ricevere dati dal server verso il client in tempo reale, -ma ci sono alcuni aspetti importanti da considerare per poterle utilizzare: come si gestiscono le sessioni persistenti? di quali componenti aggiuntivi avremo bisogno? come funzionano l'autenticazione e l'uso della cache? -In questo talk vedremo quali accorgimenti dobbiamo usare quando si usano le subscription in un vero ambiente di produzione, elencheremo gli errori più comuni nei quali possiamo incorrere e valuteremo in quali casi conviene utilizzarle per sfruttare al meglio le loro potenzialità. - -Firenze.dev - Tiziano Pessa, Co-founder @ firenze.dev - `, - current: true, - date: dayjs("2023-05-24 18:30").toDate(), - sponsor: "Codemotion", - place: "Impact Hub - Firenze", - address: "Via Panciatichi, 16, 50141 Firenze FI", - externalLink: - "https://docs.google.com/forms/d/1xL0EKFvb4jpXfwFU47qSlqBPgZmdtwZa4BOQSqtZEnc/viewform?edit_requested=true#responses", - type: "meetup", - }, - { - title: "Dal monolite ai microservizi, una storia vera", - subtitle: - "Approcciare il cambiamento e le sue sfide in un sistema business critical di una grande realtà internazionale", - icon: monoliteIcon, - image: monolite, - abstract: `A chi non è capitato di dover mettere in produzione un'applicazione critica per sistemare un piccolo bug, con il rischio di bloccare tutta la produzione? E chi di noi non ha un'applicazione che consuma moltissime risorse, ma ne sfrutta solo una piccola parte? - -Forse è il momento giusto per passare ai microservizi! In questo talk, Luca Lorenzon, senior software engineer di Gucci, ci racconterà il percorso per trasformare un monolite in un'architettura a microservizi scalabile e flessibile. Non sarà solo una storia di successo, ma vedremo tutti i retroscena di un progetto con vari step di complessità. - -Scopriremo come è stato gestito il cambiamento e come una grande realtà internazionale ha affrontato l'adattamento a queste nuove tecnologie, in un contesto di business altamente sfidante.`, - current: true, - date: dayjs("2023-04-20 18:30").toDate(), - sponsor: "Gucci", - place: "Gucci ArtLab", - address: "via delle nazioni unite 1, Scandicci, 50018", - eventbriteId: "593998735207", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-dal-monolite-ai-microservizi-una-storia-vera-593998735207", - type: "meetup", - }, - { - title: "La Developer Experience nelle Big Tech", - subtitle: "Cosa dovresti sapere per lavorare in una grande azienda internazionale", - icon: devExpIcon, - image: devExp, - abstract: `Ogni developer ha pensato almeno una volta nella propria carriera a come sarebbe lavorare per una Big Company, su un progetto figo e in un contesto internazionale, con tecnologie all'avanguardia e modalità di lavoro innovative. - -Ma come si vive davvero all'interno di queste realtà e come ci si può orientare in una Big Company? - -La Developer Experience è un elemento chiave in queste grandi aziende: ma cos'è in concreto? - -Può davvero migliorare le modalità e la qualità del lavoro degli sviluppatori? - -E possiamo applicarla anche in realtà più piccole? - -Di tutto questo ci parlerà [Francesco Corti](https://www.linkedin.com/in/fcorti/), speaker e autore di libri su temi IT, che partendo dalle sue esperienze come Developer Advocate e Product Manager in aziende come Alfresco e Spotify, ci spiegherà come viene affrontato lo sviluppo software nelle grandi aziende internazionali e cosa è importante sapere per poter lavorare in una Big Tech. - -Vedremo cosa sono e come vengono applicati i modelli di riferimento e andremo alla scoperta di modalità di lavoro e tecnologie differenti, allo scopo di diventare degli sviiluppatori migliori e più felici. - -Dopo il talk ci sarà il consueto aperitivo di networking.`, - current: true, - date: dayjs("2023-03-02 18:30").toDate(), - sponsor: undefined, - place: "Camplus Firenze", - address: "via del Romito 5-7, 50134, Firenze", - eventbriteId: "532054077067", - eventbriteLink: "https://www.eventbrite.com/e/biglietti-la-developer-experience-nelle-big-tech-532054077067", - type: "meetup", - }, - - { - title: "Christmas beer", - subtitle: "Brindiamo al primo anno di firenze.dev e discutiamo delle prossime attività", - icon: christmasBeerIcon, - image: christmasBeer, - abstract: `Un evento informale per celebrare il primo anno di firenze.dev, ma anche per conoscerci meglio, bere una birra insieme e gettare uno sguardo al futuro della community. - -Niente speaker, niente talk, solo un gruppo di amici che si incontrano davanti a un bicchiere di birra per parlare di cosa ci piacerebbe fare nell'anno che sta per iniziare e raccontarci le nostre aspettative sulle attività della community per il 2023. - -La serata è aperta a tutti i membri della community di firenze.dev e si svolgerà presso la Manifattura Tabacchi, in via delle Cascine 35 a Firenze. Ci ritroveremo a partire dalle 21.30, avremo un tavolo riservato, quindi è richiesta la prenotazione del biglietto per poterci organizzare meglio.`, - current: true, - date: dayjs("2022-12-15 21:30").toDate(), - sponsor: undefined, - place: "Manifattura Tabacchi", - address: "Manifattura Tabacchi, Via delle Cascine 35, 50144 Firenze", - eventbriteId: "482058017507", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-christmas-beer-482058017507", - type: "beer", - }, - { - title: "Building a full-text search engine from scratch in TypeScript", - subtitle: - "In questo nuovo evento della community di firenze.dev, Michele Riva ci mostrerà come costruire da zero un motore di ricerca full-text.", - icon: nextEventImage, - image: searchEngine, - abstract: `In questo nuovo evento della community di firenze.dev, [Michele Riva](https://twitter.com/MicheleRivaCode), Staff Engineer @ NearForm, autore e speaker di fama internazionale oltre che Google Developer Expert e Microsoft MVP, ci mostrerà come costruire da zero un motore di ricerca full-text RESTful, spiegandoci quali siano gli algoritmi e le strutture dati più adatti per questo tipo di applicazioni. - - - Vedremo come mantenere prestazioni incredibilmente elevate pur lavorando con un'enorme quantità di dati e capiremo perché è così importante scegliere i giusti algoritmi e le strutture dati più adeguate per questo tipo di sistemi. - - Dopo il talk ci sarà il consueto aperitivo di networking.`, - current: false, - date: dayjs("2022-11-30 18:30").toDate(), - sponsor: "Extendi", - place: "Le Murate", - address: "Piazza Madonna della Neve 50122 Firenze", - eventbriteId: "462656256317", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-building-a-full-text-search-engine-from-scratch-in-typescript-462656256317", - type: "meetup", - }, - { - title: "Rendere scalabili le moderne applicazioni di front-end", - subtitle: - "Scopriremo tecniche e tool per far evolvere le nostre applicazioni di front-end, da una semplice Single Page Application fino a utilizzare la Module Federation.", - icon: moduleFederationImage, - image: fontendApps, - abstract: `Come superare le nuove sfide che ci pone lo sviluppo di applicazioni front-end, quali ad esempio performance, SEO e dinamicità? - - Partendo da una piccola app, fino ad arrivare a progetti più grandi con la Module Federation, ti forniremo dei consigli su come orientarti tra la mole di informazioni disponibili sul web. - - Ti aiuteremo ad identificare i giusti tools, i frameworks e le librerie per far scalare il tuo applicativo. - - Tutto questo riportando la nostra esperienza nello sviluppo in React di applicazioni web e native.`, - date: dayjs("2022-10-25 18:30").toDate(), - sponsor: "Extendi", - place: "Le Murate", - address: "Piazza Madonna della Neve 50122 Firenze", - eventbriteId: "430942198717", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-rendere-scalabili-le-moderne-applicazioni-di-front-end-430942198717", - type: "meetup", - }, - { - title: "Applicazioni più semplici, robuste e performanti con RabbitMQ", - subtitle: - "L'evento di firenze.dev per imparare come utilizzare RabbitMQ per semplificare l'architettura dei sistemi e renderli scalabili.", - icon: rabbitImage, - image: rabbitImageFull, - abstract: `Il tuo nuovissimo servizio in Go non riesce a comunicare con la tua vecchia applicazione Java? Nei tuoi servizi una singola feature si trasforma in un ingestibile groviglio di chiamate? E cosa succede quando una di queste chiamate fallisce? Come è possibile gestire gli errori in un sistema distribuito? - -A queste e ad altre domande risponderà per noi [Gabriele Santomaggio](https://twitter.com/gsantomaggio), Staff Software Engineer nel RabbitMQ team in VMware, speaker e autore di libri e articoli di tecnologia. - -Vedremo insieme come RabbitMQ risolve questi problemi, ma anche come sia possibile sfruttarlo per semplificare l'architettura dei nostri sistemi e in che modo si possano affrontare i temi della scalabilità e della sicurezza nella gestione dei flussi di dati. - -Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.`, - sponsor: "Register.it", - place: "Register.it", - address: "Viale della giovine Italia 17, 50122 Firenze", - eventbriteId: "347290865327", - eventbriteLink: - "https://www.eventbrite.it/e/biglietti-applicazioni-piu-semplici-robuste-e-performanti-con-rabbitmq-347290865327", - date: dayjs("2022-06-17 18:30").toDate(), - type: "meetup", - }, - { - title: "Next level API con GraphQL", - subtitle: - "Cos'è GraphQL, quali sono i suoi vantaggi, come utilizzarlo al meglio e quali sono le cose da evitare assolutamente.", - icon: graphqlImage, - image: graphqlImageBig, - abstract: `Si sente dire in giro che con GraphQL si possono creare API performanti, scalabili e flessibili, che se non lo usi sei un dinosauro e che adesso il REST non serve più. - - Noi, dopo anni che lo utilizziamo in produzione, abbiamo imparato a sfruttarne le potenzialità e ad affrontare le sfide che questa tecnologica ci pone - - In questo talk vedremo che cos'è GraphQL, quali sono i suoi vantaggi, come utilizzarlo al meglio e quali sono le cose da evitare assolutamente. - - Oltre a imparare i concetti di base, affronteremo alcuni scenari più avanzati e concluderemo l'incontro con una sessione interattiva in cui potrete porre agli speaker qualsiasi domanda sull'argomento (anche quelle più scomode!). - - Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.`, - sponsor: "Register.it", - place: "Register.it", - address: "Viale della giovine Italia 17, 50122 Firenze", - eventbriteId: "324349707707", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-next-level-api-con-graphql-324349707707", - date: dayjs("2022-05-11 18:30").toDate(), - type: "meetup", - }, - { - title: "È solo un altro IF", - subtitle: "Come scrivere codice migliore nella metà del tempo", - icon: anotherifImage, - image: anotherifImageBig, - abstract: `Ti è mai capitato che la cosa più veloce sul momento si sia rivelata un boomerang a lungo termine, facendoti perdere talmente tanto tempo da farti maledire il giorno in cui hai deciso di fare lo sviluppatore? - - È successo anche a noi, ma con l'esperienza abbiamo imparato che basta applicare alcune semplici regole per scrivere un codice migliore e più manutenibile. E vogliamo condividerle con te. - - Dopo il talk ci sarà il consueto aperitivo di networking, offerto da Register.it.`, - sponsor: "Register.it", - place: "Register.it", - address: "Viale della giovine Italia 17, 50122 Firenze", - eventbriteId: "204947703097", - eventbriteLink: "https://www.eventbrite.it/e/biglietti-e-solo-un-altro-if-204947703097", - date: dayjs("2021-12-01 18:30").toDate(), - type: "meetup", - }, -];