From c2b4805792f771dd0c8af96e5fd4caa5729ad494 Mon Sep 17 00:00:00 2001 From: mrcanelas Date: Sat, 1 Feb 2025 14:09:00 -0300 Subject: [PATCH] Update to 3.1.2 --- .dockerignore | 4 + Dockerfile | 40 + {images => addon/images}/background.png | Bin {images => addon/images}/favicon.png | Bin {images => addon/images}/logo.png | Bin index.js => addon/index.js | 8 +- {lib => addon/lib}/getCache.js | 0 {lib => addon/lib}/getCatalog.js | 0 {lib => addon/lib}/getEpisodes.js | 0 {lib => addon/lib}/getGenreList.js | 0 {lib => addon/lib}/getImdbRating.js | 0 {lib => addon/lib}/getLanguages.js | 0 {lib => addon/lib}/getLogo.js | 0 {lib => addon/lib}/getManifest.js | 8 +- {lib => addon/lib}/getMeta.js | 0 {lib => addon/lib}/getPersonalLists.js | 0 {lib => addon/lib}/getSearch.js | 0 {lib => addon/lib}/getSession.js | 0 {lib => addon/lib}/getTmdb.js | 0 {lib => addon/lib}/getTrending.js | 0 server.js => addon/server.js | 0 {static => addon/static}/catalog-types.json | 0 {static => addon/static}/diferentImdbId.json | 0 {static => addon/static}/diferentOrder.json | 0 {static => addon/static}/translations.json | 0 {utils => addon/utils}/parseProps.js | 0 components.json | 20 + configure.html | 12 - configure/public/streaming/apple.webp | Bin 0 -> 720 bytes configure/public/streaming/blu.webp | Bin 0 -> 864 bytes configure/public/streaming/canal-plus.webp | Bin 0 -> 914 bytes configure/public/streaming/claro.webp | Bin 0 -> 2414 bytes configure/public/streaming/crunchyroll.webp | Bin 0 -> 1390 bytes .../public/streaming/curiositystream.webp | Bin 0 -> 1232 bytes .../public/streaming/discovery-plus.webp | Bin 0 -> 1408 bytes configure/public/streaming/disney.webp | Bin 0 -> 1514 bytes configure/public/streaming/favicon.ico | 0 configure/public/streaming/funimation.webp | Bin 0 -> 1542 bytes configure/public/streaming/globo.webp | Bin 0 -> 1862 bytes configure/public/streaming/hayu.webp | Bin 0 -> 848 bytes configure/public/streaming/hbo.webp | Bin 0 -> 1868 bytes configure/public/streaming/hotstar.webp | Bin 0 -> 828 bytes configure/public/streaming/hulu.webp | Bin 0 -> 998 bytes configure/public/streaming/index.html | 25 + configure/public/streaming/magellan.webp | Bin 0 -> 1720 bytes configure/public/streaming/max.webp | Bin 0 -> 1360 bytes configure/public/streaming/netflix.webp | Bin 0 -> 594 bytes configure/public/streaming/netflixkids.webp | Bin 0 -> 2118 bytes configure/public/streaming/nlziet.webp | Bin 0 -> 1278 bytes configure/public/streaming/paramount.webp | Bin 0 -> 1584 bytes configure/public/streaming/peacock.webp | Bin 0 -> 1364 bytes configure/public/streaming/prime.webp | Bin 0 -> 1970 bytes configure/public/streaming/skyshowtime.webp | Bin 0 -> 1872 bytes .../public/streaming/streaming-catalogs.png | Bin 0 -> 185159 bytes configure/public/streaming/stremio.png | Bin 0 -> 19837 bytes configure/public/streaming/videoland.webp | Bin 0 -> 1596 bytes configure/public/streaming/youtube.webp | Bin 0 -> 1280 bytes configure/public/streaming/zee5.webp | Bin 0 -> 2010 bytes configure/src/App.css | 42 + configure/src/App.tsx | 79 + .../src/components/DefaultIntegration.tsx | 9 + configure/src/components/Header.tsx | 45 + configure/src/components/IntegrationCard.tsx | 45 + .../src/components/IntegrationDialog.tsx | 40 + configure/src/components/Sidebar.tsx | 113 + configure/src/components/ui/alert.tsx | 59 + configure/src/components/ui/badge.tsx | 36 + configure/src/components/ui/button.tsx | 56 + configure/src/components/ui/card.tsx | 79 + configure/src/components/ui/dialog.tsx | 120 + configure/src/components/ui/input.tsx | 22 + configure/src/components/ui/label.tsx | 24 + configure/src/components/ui/scroll-area.tsx | 46 + configure/src/components/ui/select.tsx | 158 + configure/src/components/ui/skeleton.tsx | 15 + configure/src/components/ui/sonner.tsx | 29 + configure/src/components/ui/switch.tsx | 27 + configure/src/components/ui/toast.tsx | 127 + configure/src/components/ui/toaster.tsx | 33 + configure/src/components/ui/tooltip.tsx | 28 + configure/src/contexts/ConfigContext.tsx | 105 + configure/src/contexts/config.ts | 29 + configure/src/data/catalogs.ts | 127 + configure/src/data/integrations.ts | 39 + configure/src/data/streamings.ts | 50 + configure/src/hooks/use-mobile.tsx | 19 + configure/src/hooks/use-toast.ts | 191 + configure/src/index.css | 25 + configure/src/integrations/rpdb.tsx | 133 + configure/src/integrations/streaming.tsx | 110 + configure/src/integrations/tmdb.tsx | 106 + configure/src/lib/config.ts | 46 + configure/src/lib/utils.ts | 6 + configure/src/main.tsx | 5 + configure/src/pages/Catalogs.tsx | 205 + configure/src/pages/Home.tsx | 339 + configure/src/pages/Integrations.tsx | 22 + configure/src/pages/NotFound.tsx | 27 + configure/src/pages/Others.tsx | 64 + configure/src/styles/kofi-dialog.css | 4 + configure/src/vite-env.d.ts | 1 + eslint.config.js | 29 + index.html | 18 + now.json | 5 - package-lock.json | 8153 +++++++++++++---- package.json | 75 +- postcss.config.js | 6 + tailwind.config.ts | 46 + tsconfig.app.json | 30 + tsconfig.json | 19 + tsconfig.node.json | 22 + vite.config.ts | 13 + 112 files changed, 9355 insertions(+), 2063 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile rename {images => addon/images}/background.png (100%) rename {images => addon/images}/favicon.png (100%) rename {images => addon/images}/logo.png (100%) rename index.js => addon/index.js (95%) rename {lib => addon/lib}/getCache.js (100%) rename {lib => addon/lib}/getCatalog.js (100%) rename {lib => addon/lib}/getEpisodes.js (100%) rename {lib => addon/lib}/getGenreList.js (100%) rename {lib => addon/lib}/getImdbRating.js (100%) rename {lib => addon/lib}/getLanguages.js (100%) rename {lib => addon/lib}/getLogo.js (100%) rename {lib => addon/lib}/getManifest.js (96%) rename {lib => addon/lib}/getMeta.js (100%) rename {lib => addon/lib}/getPersonalLists.js (100%) rename {lib => addon/lib}/getSearch.js (100%) rename {lib => addon/lib}/getSession.js (100%) rename {lib => addon/lib}/getTmdb.js (100%) rename {lib => addon/lib}/getTrending.js (100%) rename server.js => addon/server.js (100%) rename {static => addon/static}/catalog-types.json (100%) rename {static => addon/static}/diferentImdbId.json (100%) rename {static => addon/static}/diferentOrder.json (100%) rename {static => addon/static}/translations.json (100%) rename {utils => addon/utils}/parseProps.js (100%) create mode 100644 components.json delete mode 100644 configure.html create mode 100644 configure/public/streaming/apple.webp create mode 100644 configure/public/streaming/blu.webp create mode 100644 configure/public/streaming/canal-plus.webp create mode 100644 configure/public/streaming/claro.webp create mode 100644 configure/public/streaming/crunchyroll.webp create mode 100644 configure/public/streaming/curiositystream.webp create mode 100644 configure/public/streaming/discovery-plus.webp create mode 100644 configure/public/streaming/disney.webp create mode 100644 configure/public/streaming/favicon.ico create mode 100644 configure/public/streaming/funimation.webp create mode 100644 configure/public/streaming/globo.webp create mode 100644 configure/public/streaming/hayu.webp create mode 100644 configure/public/streaming/hbo.webp create mode 100644 configure/public/streaming/hotstar.webp create mode 100644 configure/public/streaming/hulu.webp create mode 100644 configure/public/streaming/index.html create mode 100644 configure/public/streaming/magellan.webp create mode 100644 configure/public/streaming/max.webp create mode 100644 configure/public/streaming/netflix.webp create mode 100644 configure/public/streaming/netflixkids.webp create mode 100644 configure/public/streaming/nlziet.webp create mode 100644 configure/public/streaming/paramount.webp create mode 100644 configure/public/streaming/peacock.webp create mode 100644 configure/public/streaming/prime.webp create mode 100644 configure/public/streaming/skyshowtime.webp create mode 100644 configure/public/streaming/streaming-catalogs.png create mode 100644 configure/public/streaming/stremio.png create mode 100644 configure/public/streaming/videoland.webp create mode 100644 configure/public/streaming/youtube.webp create mode 100644 configure/public/streaming/zee5.webp create mode 100644 configure/src/App.css create mode 100644 configure/src/App.tsx create mode 100644 configure/src/components/DefaultIntegration.tsx create mode 100644 configure/src/components/Header.tsx create mode 100644 configure/src/components/IntegrationCard.tsx create mode 100644 configure/src/components/IntegrationDialog.tsx create mode 100644 configure/src/components/Sidebar.tsx create mode 100644 configure/src/components/ui/alert.tsx create mode 100644 configure/src/components/ui/badge.tsx create mode 100644 configure/src/components/ui/button.tsx create mode 100644 configure/src/components/ui/card.tsx create mode 100644 configure/src/components/ui/dialog.tsx create mode 100644 configure/src/components/ui/input.tsx create mode 100644 configure/src/components/ui/label.tsx create mode 100644 configure/src/components/ui/scroll-area.tsx create mode 100644 configure/src/components/ui/select.tsx create mode 100644 configure/src/components/ui/skeleton.tsx create mode 100644 configure/src/components/ui/sonner.tsx create mode 100644 configure/src/components/ui/switch.tsx create mode 100644 configure/src/components/ui/toast.tsx create mode 100644 configure/src/components/ui/toaster.tsx create mode 100644 configure/src/components/ui/tooltip.tsx create mode 100644 configure/src/contexts/ConfigContext.tsx create mode 100644 configure/src/contexts/config.ts create mode 100644 configure/src/data/catalogs.ts create mode 100644 configure/src/data/integrations.ts create mode 100644 configure/src/data/streamings.ts create mode 100644 configure/src/hooks/use-mobile.tsx create mode 100644 configure/src/hooks/use-toast.ts create mode 100644 configure/src/index.css create mode 100644 configure/src/integrations/rpdb.tsx create mode 100644 configure/src/integrations/streaming.tsx create mode 100644 configure/src/integrations/tmdb.tsx create mode 100644 configure/src/lib/config.ts create mode 100644 configure/src/lib/utils.ts create mode 100644 configure/src/main.tsx create mode 100644 configure/src/pages/Catalogs.tsx create mode 100644 configure/src/pages/Home.tsx create mode 100644 configure/src/pages/Integrations.tsx create mode 100644 configure/src/pages/NotFound.tsx create mode 100644 configure/src/pages/Others.tsx create mode 100644 configure/src/styles/kofi-dialog.css create mode 100644 configure/src/vite-env.d.ts create mode 100644 eslint.config.js create mode 100644 index.html delete mode 100644 now.json create mode 100644 postcss.config.js create mode 100644 tailwind.config.ts create mode 100644 tsconfig.app.json create mode 100644 tsconfig.json create mode 100644 tsconfig.node.json create mode 100644 vite.config.ts diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..35250e2 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +pnpm-lock.yaml +dist +.git \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..eddc81c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +# Etapa de construção do frontend +FROM node:18-alpine AS builder + +# Define o diretório de trabalho +WORKDIR /app + +# Copia os arquivos necessários +COPY package.json package-lock.json ./ + +# Instala as dependências +RUN npm install -g pnpm && pnpm install --no-frozen-lockfile + +# Copia o restante do código +COPY . . + +# Compila o frontend +RUN pnpm run build + +# Etapa de execução do backend +FROM node:18-alpine AS runner + +# Define o diretório de trabalho +WORKDIR /app + +# Copia apenas os arquivos necessários para o backend +COPY --from=builder /app/addon /app/addon +COPY --from=builder /app/package.json ./ +COPY --from=builder /app/package-lock.json ./ + +# Instala apenas as dependências de produção +RUN npm install -g pnpm && pnpm install --no-frozen-lockfile + +# Copia os arquivos do frontend para serem servidos pelo backend +COPY --from=builder /app/dist /app/addon/static + +# Exposição da porta do backend +EXPOSE 7000 + +# Inicia o servidor Express +CMD ["node", "addon/server.js"] diff --git a/images/background.png b/addon/images/background.png similarity index 100% rename from images/background.png rename to addon/images/background.png diff --git a/images/favicon.png b/addon/images/favicon.png similarity index 100% rename from images/favicon.png rename to addon/images/favicon.png diff --git a/images/logo.png b/addon/images/logo.png similarity index 100% rename from images/logo.png rename to addon/images/logo.png diff --git a/index.js b/addon/index.js similarity index 95% rename from index.js rename to addon/index.js index 6928bf1..207ce51 100644 --- a/index.js +++ b/addon/index.js @@ -42,7 +42,7 @@ const respond = function (res, data, opts) { res.send(data); }; -addon.get("/", async function (_, res) { +addon.get("/", function (_, res) { res.redirect("/configure"); }); @@ -57,10 +57,10 @@ addon.get("/session_id", async function (req, res) { respond(res, sessionId); }); -addon.use('/configure', express.static(path.join(__dirname, 'configure/dist'))); +addon.use(express.static('../dist')); -addon.get("/:catalogChoices?/configure", async function (req, res) { - res.sendFile(path.join(__dirname + "/configure.html")); +addon.get("/:catalogChoices?/configure", function (req, res) { + res.sendFile(path.join(__dirname, '../dist/index.html')); }); addon.get("/:catalogChoices?/manifest.json", async function (req, res) { diff --git a/lib/getCache.js b/addon/lib/getCache.js similarity index 100% rename from lib/getCache.js rename to addon/lib/getCache.js diff --git a/lib/getCatalog.js b/addon/lib/getCatalog.js similarity index 100% rename from lib/getCatalog.js rename to addon/lib/getCatalog.js diff --git a/lib/getEpisodes.js b/addon/lib/getEpisodes.js similarity index 100% rename from lib/getEpisodes.js rename to addon/lib/getEpisodes.js diff --git a/lib/getGenreList.js b/addon/lib/getGenreList.js similarity index 100% rename from lib/getGenreList.js rename to addon/lib/getGenreList.js diff --git a/lib/getImdbRating.js b/addon/lib/getImdbRating.js similarity index 100% rename from lib/getImdbRating.js rename to addon/lib/getImdbRating.js diff --git a/lib/getLanguages.js b/addon/lib/getLanguages.js similarity index 100% rename from lib/getLanguages.js rename to addon/lib/getLanguages.js diff --git a/lib/getLogo.js b/addon/lib/getLogo.js similarity index 100% rename from lib/getLogo.js rename to addon/lib/getLogo.js diff --git a/lib/getManifest.js b/addon/lib/getManifest.js similarity index 96% rename from lib/getManifest.js rename to addon/lib/getManifest.js index 0e131cb..2e41b7c 100644 --- a/lib/getManifest.js +++ b/addon/lib/getManifest.js @@ -1,7 +1,7 @@ require("dotenv").config(); const { getGenreList } = require("./getGenreList"); const { getLanguages } = require("./getLanguages"); -const package = require("../package.json"); +const packageJson = require("../../package.json"); const catalogsTranslations = require("../static/translations.json"); const CATALOG_TYPES = require("../static/catalog-types.json"); const DEFAULT_LANGUAGE = "en-US"; @@ -154,13 +154,13 @@ async function getManifest(config) { const descriptionSuffix = language && language !== DEFAULT_LANGUAGE ? ` with ${language} language.` : "."; return { - id: package.name, - version: package.version, + id: packageJson.name, + version: packageJson.version, favicon: "https://github.com/mrcanelas/tmdb-addon/raw/main/images/favicon.png", logo: "https://github.com/mrcanelas/tmdb-addon/raw/main/images/logo.png", background: "https://github.com/mrcanelas/tmdb-addon/raw/main/images/background.png", name: "The Movie Database Addon", - description: package.description + descriptionSuffix, + description: packageJson.description + descriptionSuffix, resources: ["catalog", "meta"], types: ["movie", "series"], idPrefixes: provideImdbId ? ["tmdb:", "tt"] : ["tmdb:"], diff --git a/lib/getMeta.js b/addon/lib/getMeta.js similarity index 100% rename from lib/getMeta.js rename to addon/lib/getMeta.js diff --git a/lib/getPersonalLists.js b/addon/lib/getPersonalLists.js similarity index 100% rename from lib/getPersonalLists.js rename to addon/lib/getPersonalLists.js diff --git a/lib/getSearch.js b/addon/lib/getSearch.js similarity index 100% rename from lib/getSearch.js rename to addon/lib/getSearch.js diff --git a/lib/getSession.js b/addon/lib/getSession.js similarity index 100% rename from lib/getSession.js rename to addon/lib/getSession.js diff --git a/lib/getTmdb.js b/addon/lib/getTmdb.js similarity index 100% rename from lib/getTmdb.js rename to addon/lib/getTmdb.js diff --git a/lib/getTrending.js b/addon/lib/getTrending.js similarity index 100% rename from lib/getTrending.js rename to addon/lib/getTrending.js diff --git a/server.js b/addon/server.js similarity index 100% rename from server.js rename to addon/server.js diff --git a/static/catalog-types.json b/addon/static/catalog-types.json similarity index 100% rename from static/catalog-types.json rename to addon/static/catalog-types.json diff --git a/static/diferentImdbId.json b/addon/static/diferentImdbId.json similarity index 100% rename from static/diferentImdbId.json rename to addon/static/diferentImdbId.json diff --git a/static/diferentOrder.json b/addon/static/diferentOrder.json similarity index 100% rename from static/diferentOrder.json rename to addon/static/diferentOrder.json diff --git a/static/translations.json b/addon/static/translations.json similarity index 100% rename from static/translations.json rename to addon/static/translations.json diff --git a/utils/parseProps.js b/addon/utils/parseProps.js similarity index 100% rename from utils/parseProps.js rename to addon/utils/parseProps.js diff --git a/components.json b/components.json new file mode 100644 index 0000000..f29e3f1 --- /dev/null +++ b/components.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://ui.shadcn.com/schema.json", + "style": "default", + "rsc": false, + "tsx": true, + "tailwind": { + "config": "tailwind.config.ts", + "css": "src/index.css", + "baseColor": "slate", + "cssVariables": true, + "prefix": "" + }, + "aliases": { + "components": "@/components", + "utils": "@/lib/utils", + "ui": "@/components/ui", + "lib": "@/lib", + "hooks": "@/hooks" + } +} \ No newline at end of file diff --git a/configure.html b/configure.html deleted file mode 100644 index e8e1719..0000000 --- a/configure.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - The Movie Database Addon - Stremio Addon - - - - \ No newline at end of file diff --git a/configure/public/streaming/apple.webp b/configure/public/streaming/apple.webp new file mode 100644 index 0000000000000000000000000000000000000000..28c16e4c9a40230254c0e821dc4c1e611322698a GIT binary patch literal 720 zcmV;>0x$hiNk&G<0ssJ4MM6+kP&gpG0ssK;5CEM4Dr5j;06uLtmPsTcq9G$wIY@vF ziD>{8;2+6*K>oqXhwOGyU%h7_{|USe=I%Ba%k%5`kIq-qpYr{}zm$Jq>qae*+Y|4d zk7s`_*?HmaDe6E&THXl=N+pK_ox_4+*3OI90pZF09*7tJ%k=r^ma%3ZjvxCCfg|CsxD0rk2a^VAkLD` zCX4l_pW<}apRI3aDeUkf>O1JW6O~-Dj8XsF#2*)@_5It7Xe*{)d?_>tVo1JW6E0gm z2kaw-WVp%9VKja;R$GVMcbMuA4_5H~g51SW@T8{B=mB5;)9{m)nlqBmG~c9Vj+G|o z#uKpQ@EP9LA2ivjOYMv^Le2a%s?O~fHBr?q%k8R&ek5s5NlS~m@nqA%Zw)}Jx*#4P zZ(YsE;?`$2-{?(4mj&o5s#m<=1gdCX*vyM5ye&@Yi6Nt%D0l};633JkZXk$0ME?me zRtlU)Jwq)?e6@&mrKWDld}Hd3(P8ZmpA*NxHggeYC}tcw%s`D7#vwIRDw8hu=s9f} z$4fD2%^%>9nCz*O5feE;&klp;p?qk+Giyc~k5&6j4@miyOLKDsUUi9S+#K5fMmQj~ zE|sYuxp<3n#>0HX$4Qg_;}>(#L;lx*>Z@iB@oK|;Z0VPNCtF#rg=#qS^kc^g zGT2$45#W>$tS-Ivgi5h=yqzYR**r!bfA<>=h&**m6puG)3ZA)r9$mz(?dA^7 zTnOOiJ2`v(La(Pv(L+hUEdtHw_jDmU{$!_jn_q(u7K%gN)5A&lh^+151N8s^0000W CiDX;= literal 0 HcmV?d00001 diff --git a/configure/public/streaming/blu.webp b/configure/public/streaming/blu.webp new file mode 100644 index 0000000000000000000000000000000000000000..2abc0d2fd7218690a967f4ae9688615a79b48359 GIT binary patch literal 864 zcmV-m1E2g-Nk&Fk0{{S5MM6+kP&gn=0{{Rp5&)e6Dr5j;06uLrmPsTcq9G&lxp;sL ziD>{=6h6oIu2+-ge=)+&)j#7mf;jK=5B6F`zwEg8<5$l&IS)*K+xHIsTm7f2aNvY8 z<~PfrnTB-P!XMXm$jr+7SM&?{u9}MYK9IT7^GVzMOe zeDJ=PcsILJ7?fqm8y(#Rf~h=k=}^mt0092@LCf%Ew#7rKoB%qCshDn(|JLXi`(wCb zWOD|8#Y5hhkIi%I_ZW(j>`O+;S^{fiW?%rqF`yyO#J(vpT-t}q-Omyf(%0ev0@|%5 z0yK<2c5L&fwkHOrg9m8(8%y<)^RJzyHwaxG!-f7EeKLZgxaZi0fgETpllp&j;BWXR zWl++@X?*7U+Ny-0zjiopOICoh7of(-j+Y zJlXF5ibYGE?lk`~f5I%iAG{ycCJ0=vA&P%zkJ%{05t8(13gEm;+{%p*d$u4lC@UrOfvKcOB-7|y;(MUb#=Xi8A=d$9mJYD) zQ;ng^R^9E*5)EN#+;p8^H*!$GNq%GE`KoHXe3vP?5Vc^t%Vg+oXPpw)Ic3?f8!KX! z!9q5snU}LZm0gE)=aDlbi!7&*(dXKuiD#3k1INy0LQOR}ZwUFtznRbhbflrGgB!fI z2Ai-<9tS4i_@CoBFw8p}iF@{YWt?X*`I3mVUteRrb-hti)28)(W%_wByBGmSn&XFq zH?Vo?pLQMBERXxAg8#a*5&_E|+UzaZwKg;%!o`4$oJID{>C}zs1KQN&KukW#SyS(G qQnWX|Gtpj5Yd}GfPELQ1iEazr50AK| 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 literal 0 HcmV?d00001 diff --git a/configure/public/streaming/crunchyroll.webp b/configure/public/streaming/crunchyroll.webp new file mode 100644 index 0000000000000000000000000000000000000000..fc7ca189688ac9aa431c4f3e478b4b80a218ab82 GIT binary patch literal 1390 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 OvgL2QJ}(>65C8xH+tJ7X literal 0 HcmV?d00001 diff --git a/configure/public/streaming/disney.webp b/configure/public/streaming/disney.webp new file mode 100644 index 0000000000000000000000000000000000000000..1ce4927807e975de61fc61a411150d3911fbd7d9 GIT binary patch literal 1514 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 s#jnP;ipDg2AHbtQ0000009?Wl)&Kwi literal 0 HcmV?d00001 diff --git a/configure/public/streaming/globo.webp b/configure/public/streaming/globo.webp new file mode 100644 index 0000000000000000000000000000000000000000..d65caabc6d5d888ccfb8b7adb933f8789dce6f71 GIT binary patch literal 1862 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 awVcRj>XgSIpY}=dYWgX>5P$#x0000Z%AeW* literal 0 HcmV?d00001 diff --git a/configure/public/streaming/hbo.webp b/configure/public/streaming/hbo.webp new file mode 100644 index 0000000000000000000000000000000000000000..217dd8ccf56ad838f79b906a57c0ecc0f11934e8 GIT binary patch literal 1868 zcmV-S2ebH6Nk&FQ2LJ$9MM6+kP&gns2LJ%DAOM{KDr5j;06uLnl}Dr^q9djHs%U@> ziDCx$8ng2Vhm`*;_<#M*{kN~o2Scww5AOX-{)K%kKe=_@Ic5E(+m7@f_}AM%%l=Su zXX+!#2Ixot{EPZ;`kv?yLNuoQXU^ZCXZn6zeun?S?hpFA=~e8z_Gj4>_DHHL;*bc> zR5vF8Wc1LEwdj@cneIL<@amC}Ezg_zvkRjMD3AD!8H`-|(si?5@jqLNVXn%m*WR{x z_6FB=rp2qOdX2VVd^(G%V>8{Zbj06yM1jEQ$MsR91XYyqGzT|<)8y4-rs$nyo0Jr*U@%tPuZgx@}X6oFkqFaZAd&E@o$|B|2fTl7P4 z-~TNC^qcehpy0)DSmzd1`_^n9lEQL}OBJ@&vl*ZqJMZmIF%n6CuCmb(%hV_BY>-H9 zMS}O=IbMXwFqBXkG~_yoHX`tfPA}GrlrrEp zC)d}jR=emWjd*w9 ziUu`Qz0L42nd-M0X}DT_eIy7EoLp##B&iVWRo%&qOi9V-2eB(^1acIdKr@y zTdFh5tJMFW`D99?$V=j)aQ}#_lug#pd`RQkkl`|`v0%5sV`Zf$>BOxVJks*jkj9MB z5DSHvsGy<({QuKrfLu%QpFy8|Z7m5VDH~j?!0N3%&-CRtwQF~NSHkh{%ZOVq`!g?0 zr2w5XY~GX=r$c1EOjxKY#)hux0no!}hLPn6vmpm1toy$MFjEFRrKP&g z*noT>d&f8*N5OEipRm@jLC|KS^fyY`w*YWtJKe~{v*t)x>102|_oblw_4;68^j;9O zEYt)bKaM7Mj)FhNA;ly))F6BeRx&D?8gFyd?Bo*P@KKT;F)lPV{E_4xXiz$jqYGdY znjI^b7HnA(5|%GW|L;mxB;3KR#_o`vcE&_xr0>8Sydmr!S;EC>80kOT*L~$|>020JL}ak8f%!8glbyY%B*=$dn}h5w4SV zmk_AWYHmh6?>-XdAsJ>qGx~hCn`V0``EL%_tr=!tIzra|Hc2RyGTff+D9h+>FMwBU6|;IaH4>sh<*IURPblG?V;0` z*Z!{)V9NRuZ2#h8=NWl&l3Bv7N_Hhng?5(td79nC$AEWlwUOZC?Z(ci75*Tn@;^Dc zo?AHTEPbYc$Lnf7!aTLLzdXJM|3(>+O*|`w{tO}c-xlnA z4-6(T>>f;>10j1?fCGc0a?9h`LF=vF?Tscb&oXG$M4REeVnoV@x>yWA=pM4x4*}CC zMFUtmG3Y`VnN)dp;>Q_n(FKYT*hz=;4vjv)*o+e1rMm%=j=Ck6HQnPp1F>w4d&Wpf z9ticIS&RSf#SCHb(%Cw)IChg@)$2f2w{{1*Xn!ct!A^Elkuds>e7@KOTrFtl*&(H% z$9@G1rL;7MJUTzWgnm#4V%$9$n>JI;zp2R|&(WT%3f@mle&&|$-jm#neUxENnY56a z&322kx~lebowZO}{o|4L%I0H}3JV}(Ldk9*>j{tS2TJ@e%d4=2(_gP z2VwStLLI%fYXl9f7Yr&W;LqXH=k7^a} z2HGT+ot@!fHU#E1^k>Y2IK;S|00Y$H?tI9jD&%80}@!!GRGX z4s-hHj9LjuID`LQJ2o@;z%U`eJbjlaW*?^}BDSqSa;A;JH#)sQ6YlIh&0Ny-kb5|; zfcpRP8BmlV-3EfqLQLK(w7Bz0KD`FXT8t_{RBY3lB%L4b;nrWsPSb>-9wC2n(G+6- z^NMPqAdPu~T>ig%BB4tS0fMExuU+cNlovb?`CYp)MYn#SaAnYE7COir(xkT;((U`I z9=%^ZDzjBP=EF8K&q@h55+V9+X0J()lO@lZp~9xY#eXRr5w0e=efkbEtus0?BoumP G62JhX^|vJe literal 0 HcmV?d00001 diff --git a/configure/public/streaming/hotstar.webp b/configure/public/streaming/hotstar.webp new file mode 100644 index 0000000000000000000000000000000000000000..1969fdde72556f3102250b8de0ee2dc35e56f289 GIT binary patch literal 828 zcmV-C1H=4MNk&FA0{{S5MM6+kP&gnc0{{R}6abw8Dr5j;06uLtmq?@|A|WEU37CKl ziD>{9*(|NAAJ_jNGLb#^@*9z#OnyYawQmG*Z{%O?IKcUG^)3Aa{NEc4c6y`#Gvh<( z|NDO7U&{Zdf5hvn=z;qHG9D;fDy&dMu7<=+r$tu1U@)nXN_61$hs3aP#;P`y6OnS< zq1fZOJ@4oJC?TkbzP3-3ddXBKwrv@dlfCTxU)^Y1Dy&epRal{Hk^lhy{7L`|PyFQ6 z0LS^u@tWuIFENr%Fow?;xx-2y2r;1DGBm(}cM05-6-tF!1YeUMd$UKvt7-d=jv1T$ z`8((PPEYrl<;tS*bh4AovlEJJ=Xua3bhmOUti3HI6RdIgB71TX5YmkrukSNJkNPJf z)c-<`9<}xV*kT4HmCKERHqk0MDHB&ASscWGHEI5N2Us+w4vw_n<3{AYDCe;4@~A^# z-I@1;LFuc5mVJI}viwoYfg6rb^J8Ab?c|1ZYu@Y!7Ey<9I!8#fvWNMF4gU2A&^BNC zg#yzTQNj%EcqHKTa~f}Yn%P2O$t;Nlzn;JqhFOtvfuf~k~TlYSFy)NjF>Hfc!J+FB+?TD8ii(^b2?6*?x z9YT}4Bmci9{w3@$|2f7fVoKz{t4+z`^ESUl{o}p` zp?jgfF*K{>Qy>u0UY4)vZZDTCRm^*A8Tfe`L5ShMB06E^zm6L*j4=~W zh4TP7BM!A1=QsbvZ3|R3#rO_w8b8D;51%7F&D7o7(~TaVO7!qFWo@)}M4;!8$lbPe z^SO?W>u>=R=6QlL=4>b@c(}I`1GTXMUm!!f2Nr!fhl%wZ^^w62YS(tlvuujT^`f2p zs(G)a&N1QUJOp8e^uI_*_!vrvm$>jtz|iSQcDHF9-wBbB`D2s9K))-ve3{i3(SC?q zF*Z`lPn1en!75$<)!Q|NyJx!079R3FzsMZ__ykPu9$Hhs>jzETT3f71O*EQR*bU$S G0001PwxE3g literal 0 HcmV?d00001 diff --git a/configure/public/streaming/hulu.webp b/configure/public/streaming/hulu.webp new file mode 100644 index 0000000000000000000000000000000000000000..e6af1b1e3ec25b1bda6c7f1b1f09ad315ca94ac2 GIT binary patch literal 998 zcmV^{@3Ogai8@q6e!tpa+%jvWJs1l!Q)@r_L5{zJiKD0ks>(C0;j<^Xiq~}J%-{TxS#BWsM{~PjOvr*); z;=14qCa&|@aQyRf0*SUX988ZBsw(xLibt#ApW_Rrl%^zr7F>e{Avve` zu@C;t8U2}IXw&=j)amr>9V9L}k57O~So-&?dX}Y;q{5PC>jCg;GwvbJN3sF36^p+L z+bX3zam&#>B-@f{c>l`eWY=f|cNK8jaPP$&VNP0c09`SgsVFwVYu$hsiow z7k;0|CR9a+nSP=b&F*BdA_>fPspTH?H59C&1(i@7DEbE_fG+OtPvez9yw_+W9W`V3 zrUmXjy4FJt|Dw}w5t>8H{qnp&754kRG@o4h9%O78S|To{Mhc$uUR$cD++_Xa=RwZ{ z^5bq&q2p$T;d|E}bE|#$kU|ZCgmNF{_DU`btx*I+#Mu zni++i779@8XK*e|ZvH{5ynz$w3;_#fOqCWI^^)rVK*Byr8W~fm)q6lrY2sjW<`p@^ zy~h0||CuIk1pgAE-6doc_kD&hn7c11hJ}TYTYQWR+$ypoe-D1}a?;RoO{!_k)OiO9 zK|E~mPkQmoAz!i773j9MT)$mYDkqVC@Ox|Uil)@VD?9Qj6%8FA3bik+xpg|mX%_Z( zv8yE!___r{J?Z!1ry&UaL)-l6{Op(ziw^YB(dnZ~0K`W8Bwl!dcG(41brA~*-cIE&Wgnm}i3}6?s7bI^o%J_V? U^1dukqY#tr9Rnpmr2qf`06t#uVgLXD literal 0 HcmV?d00001 diff --git a/configure/public/streaming/index.html b/configure/public/streaming/index.html new file mode 100644 index 0000000..050c115 --- /dev/null +++ b/configure/public/streaming/index.html @@ -0,0 +1,25 @@ + + + + + + + Streaming Catalogs + + + + + + + +
+ + + diff --git a/configure/public/streaming/magellan.webp b/configure/public/streaming/magellan.webp new file mode 100644 index 0000000000000000000000000000000000000000..3e80397e8b4bc8c27164ea97346867eca37e5228 GIT binary patch literal 1720 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 SGsMzG$_*mYFfSUo0001*Q^cVF literal 0 HcmV?d00001 diff --git a/configure/public/streaming/netflix.webp b/configure/public/streaming/netflix.webp new file mode 100644 index 0000000000000000000000000000000000000000..0957fa836ed5c13e95f63d10853c1bd93659e0bb GIT binary patch literal 594 zcmV-Y0m zagyIE^bNKc%89VNk0N*4F?63{iyC=Bb;1O?=N21h%BS4rq?WPrJA4XMV5z5op!dLw z4)Y|*{~|&l_V2>(b9EUXH_tV%aV)|Vt)d_~v;YA9{P>8HZ2-L)AqhYzWp1Wr8oD1* z1AON(+jS`pNduE*2&$Wb$1C{U3~;V?F72KCf06$hUfvOprkA*@(DQ@6_jRC`SQ;53 zabpYw*b@Ux`v2xs4d_rr{Lk6`0JWH2j15}waJ{!|@;rB(eD)o8emTo~?ND1zwHBhG zp5#_Tl}@&_UbHjTi`Br#rsWjetRjgsx9DON?p;=iV){apH+Pk_&h+8}==^@+{dly8 zt*e4c?)?@6uzh!}s@9?L|K&jym)Sl`u7OLNY6WrsNnuk8%Zny<4sAwN@Yu9@{kI5d z%(MP~2HMgjtdGG`-VtHtVD_Cgj;*!dOSkS*n2%Bl|9**nGMuDv905vm;3C3is}#j7_@mhXsRTpd#iH)Z zLA50J`)SHr`tGzI;_KK$e}6Tb`jmW%12?GH#PF8tjpJujvj7GH+8-Wnd{eoJ!g$luIABEA5>QT{Rgclt-} z2Df+s{!9Fm{Fn6K-~S3f+<&isfdBvOV?Yn%ztq3Ye|Y}2&O7Me=zqw23jRy|KmNz| zKW^W}eu4h=>R0oR^dI@Z#{Yx(P5j&YhyDNX-{}AO_P~1}PXPM?`m3EQv=$^knf?HN z%Ib)J5&Sp&fZG860sRB;uW$qThv7!>fAkN;4^S`4{0D!KeV}~+{u%s3`TzA_*w61D z|M=Bv!3GQNKayU?H5csPi8&$)w_X3P`+)i9=vT}G^w<3FQ9m%>vR|&A&%fut#e0|Z z0R1`ZF#U-34E`tm&(jz7d*Lhl=lajs&uLLc61|#m9kGmG<=C-U=am$!Rn3Z9kS-zi zEX6pUiIiE7ZT0U8Q9A$DNcc41I|u*({`}(w?{lbV0T9~iiODvZI4=~+~)WU4kDtL2;HK?l`ePeF*nvE zeDdj){yK;QV&O%=a`<5+dc_Ngd<*i*pLQp-@5Pw94dATa6+$S#zq$Ad)iT z3vgGjHy%gI*wpQiYO|0<nVqLw_$cBQuRL} zBYQ3IpJ!+K4Z!usrR)8@aJt2nf1jC7fCdx`v=D&*$?S4?F=-b3|Qnm{dvvKT;X-Yut;yU5rc2usj^w3b?@E_&|6I)`rDAriwGyBhG-lSmw z{8V!V+hG#;i(7KO767-wjbO{nSEx{R)D*)n;}@WH!RzWZ%VV5}YYd5=56^of ziPwvvng-Qk%X1;yLUMSVm+m?1AF#^18n~f}hmi5i+Bk?d79l&Gqbq36|0MO}V)?IW z8aJ$~UlsUbu;QrpJRB0kp$)>~v*iHsz(G+;abPI}=XLh}P3Du@2~peECX2uXWCcW5 zkzD1h`#X9jK?<|EStr6EfBqv$XlDg&5%+|Q-#>rj7P^$G_H#Cdy|Q z&!%OZ+F8XdZ9bdRzyJOvIGJIk`i!Vgd2o(K#h+^Y??p`PUYV!`HEKbfeCG5On*~woEdGrl;w9 z-T|d(HkfHu2RE{vmKcdET@M^j6TGvq(RBkHylfi?m*d0J#!6>eCO9s88~NU7D)Uny z(KXWs?}#?v`~cNPKTDjppO}p`VyZcrovONf>5ezONG&c17DV z_52pVB6YRfIUHWrXRC~+!L7Jyu=(mK=&gT2S zq#(Pc#%4lq1S+*HeQX{mWnJ=hN;{m5@K|FwMGl|yy7w4yq(}U!Itr*HdBwwPlvq7@ zk(;H1n=nNfrW3?#+q)%+k$i4nHp(6~I>u*bt%RY@-TSkN!bfA@sycF={Mys0Wf#f~ ze}L4)Z9Mnd?k=du@prA^^#k)0t@695kGuVdj5bgg-4JUIP#)Wy@m!kB;M1& literal 0 HcmV?d00001 diff --git a/configure/public/streaming/nlziet.webp b/configure/public/streaming/nlziet.webp new file mode 100644 index 0000000000000000000000000000000000000000..388b991f660932bea44810d1a84ac6cfb1ff91db GIT binary patch literal 1278 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 E04vh)r~m)} literal 0 HcmV?d00001 diff --git a/configure/public/streaming/skyshowtime.webp b/configure/public/streaming/skyshowtime.webp new file mode 100644 index 0000000000000000000000000000000000000000..55d958aa31f84074db8a5fcef939d79b09f7cbf7 GIT binary patch literal 1872 zcmV-W2e0^2Nk&FU2LJ$9MM6+kP&gnw2LJ$YB>-;uko!4E0&J_syT|kL=IB$E45u9+zD}8_3_e-jcVA-KE316ZAnEPhuKe+4s{~nD1KRf*Ze3gIG{yWbv)8F}h!ath- zSnDzSne6h>`AvK&ynhi0b2}SFn4R$_(a8l>O$B4;fjM}h$XZc2n1Yr%CVr4_;&Mcq zZXzRH{V1*3aw}r6sn63`MXNREnGv1u_T>SC=g9yo2K&jGOj9(|VkB1ZB?tYp)v5H7 z+w+FU^hlm#R(QJ`Hv5eZiVY@+F6|_Ydcya5Z-uu*j+CP%g6j7lk|-)Pr2`{t7~Kaf zswh{R|AfaHbjUQ3DWuk@n`u&l%@66xejd znw_WBMi8=a>(+||Po>YRA1##?iAi!y+#tsa69Cod=Uu-jKf|fLR@a+d)JaIiczI~> zVRtXnht|FF(fku^5tFnbcm99fwo*_3*+`T`susTQJvgwC6@PJGg(XHqlKss*tUcHV z8z+73AQqP!LF&s`)`=y#!BL{qm%N7;Fjt-{qHf=VL032tm@TX2sWteBn%ew_8W%e~ zJB~lKA?~pc6k)^3ZsSJ4Yv>J4{tID`kp@mePmK>a69AX}DxHS~h`qgS-Ac$CIBCE3 zO>nzWajq2GICm~hVJ==r`hk*FmOg*3sO~O6g)4xBO=)sTeLHfRgt+n^WN6D&Dn1`q zkdh7h6Q7O?*wM-_AXc`=w>o2a0c>ReMfw7ER0Xu%{E(yl6VBv9PO}>={5$vO&L@>U zN+s zzwT(y{X!t#Q~^)o;?-FD9OJ9-T^w7Cn!!iq)j8O$+fu02V{T5zRV1B6Yn$UO_jX1&i?ij-A8?cAO4+7ltHfb4ya@OU7fK9@62CH3j)=TV8 z9nafP>HTyLz!hVQo>>C0Jb-3;DJlI~hx}SbJSvg@z>NMRzKs3XnneXn(p-U4R<1em z4B>v?8wuey(D9_UqkxnOGdFFz=A%-3bdcWD~pf;zb#AG3^hNCN{eNvBUfL#Pg3DNw}{+eLg zh3przjlgF)r1KQ=&%;W@+_e<_{o6FuQBLWZ%K;$W5DCl|DKma>6XH~@F4?XgYJ-bt z=~K((m$|XRt*=k=oZk9JLc|rWj(%<7cHoZo3j#~G`qJPJbxvo`iR5%O+<#ul$T|dk zx$xUp+0*UR;Q^2uv2UNBdPNqj>o=&NwdV3!dyst>oG)pEb%4SAErUO@enYjd6NJy< z=t3UX3?)T_h$C-RV~+*?Z@9EgPhA<8Mm1v@*^(pR#@3F;qvHHLKKi^Z#Z%z_f}=*u zUKHmUn-W0c6M)|km$ZyRN9a$aG;cH@Sr%1 zmYy8Y5|(B$avOQ2wchGXe{!92jDj^}&0UClR7<&bL#ZjQNC_%d=Y6!}05z0-d5S*j zecyy*9Crdu`@%NbGoja(s1v`}Z}<=_QJP#3^JCk{m>hE4`S<0SQ?ndd;L{!PhsiaZ z)MJXjZm)X3ByD52QS6)*h!w@T@04+LJ-;A{)&R1_$>DM)7fU83dH(KlhPgK8;pw&hY0(@1R=QmQMGnwPeFDd zN$3d%SjW%Ag^`?~9DJhv{to KFe^|10001Xi?Ub% literal 0 HcmV?d00001 diff --git a/configure/public/streaming/streaming-catalogs.png b/configure/public/streaming/streaming-catalogs.png new file mode 100644 index 0000000000000000000000000000000000000000..a8163b7fc0f372dfb973e8d8442eacf7c173d08f GIT binary patch literal 185159 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 A`v3p{ literal 0 HcmV?d00001 diff --git a/configure/public/streaming/stremio.png b/configure/public/streaming/stremio.png new file mode 100644 index 0000000000000000000000000000000000000000..dfad99117d78f72dfb0a482ed414c5f377e562e2 GIT binary patch literal 19837 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 literal 0 HcmV?d00001 diff --git a/configure/public/streaming/zee5.webp b/configure/public/streaming/zee5.webp new file mode 100644 index 0000000000000000000000000000000000000000..3e21ce1bf9a1591ef2a653da9e0617cd0b731f14 GIT binary patch literal 2010 zcmV<02PODYNk&G}2LJ$9MM6+kP&gpQ2LJ$&BmkWODr5j;06uLllSd>XA)zbOdl-NX ziDUrOfF}H>AjclaUDkYs{-e(K`Cnn5ZQkG?ru`!Pz<#cN(0lFr7ynD@0sXuDhgf%@ z$Lt5DpRwodx9tD5hO1|hI}ra3;g68dJ9}-&h9kcr`-S^n5`9bhfqLirkIf$*C;>K>Y`!D?-#9y{v%BSqPeysy-8zwQNeh084*FTq|A!{Ys zIFdU`NjLtJy{v7pWig|)J8n4rMyKYJRWxVOtkHngAeIkH=FEdI(&CL@Cqfp`^_P~t z;2AdLC&%q@%fN9h!%CkcWg0Xv8FjNNR|HAn=QU(x%3Y#kYT9$YUF-!Y5QGxfN2o@@%!n#ztH9o1kjb^aCr|4^S%9*K!W6Nw}+au?OW9?lDif|q6ud(Nw|rbC4<=uBX5Tw!C;`6 zM~M?_TK$tDnwAr8g-B+#lNFIGnI!VAvcSgmOycMl@H}!>3PP7bVOvk9k!e9OROllYoZKNZY-{|H;I zz8g&p9N`CQ@!yN!VcIXG*Kasmk190mT^T#C{sh4tpp5F`g zQ;$EHW-wZT8WV#d;LS6ycG4$P-(fWZ1q8E8hx)4-RGD7B`q4bLMep{xXWj!RBL2NH ziYoZA`)3o%>6h(>RMbo>hRK*R9wZj;@y9Z3+Lmq>fCI9>jJcMw;wNgf=MSQ?Im4F} zzFXjQayvVCG)u+G;XFH`K&yX`;k5U~1Eqc!a-m+$@dn$FW_jJAv$n)V-+4ryYz?Zf zeVX?lM}B|@RAtWC)o`s-k0smQE4^mEL)T={G03Mb;qwWb`UDZ&TEpG`($)TtLsx^L zRpkKjr+`mcPz-t4Mb7*M*`2uQR`a_Rt=tIVCbX`0IVVRiXL7gy-SY3*t_r6rM-kutL;HV?RIQOq*L_?K)XIajx}K+0xCP%k&Oyy&d;Ktu?9n<{hk}A z|M$)%UWNRoXeF0>Uk_g4b+7q1{YSCHC-!gcT#~BGQMz2W$)6$KHDC01&DwYrM!zEF zC5HvywW0*Pv@f;4X~lRBs2NvkIJT_;nOS|00j0EL=c8hnPoveQx>YjYYjWGKhA6$k3|c6)szrd&Aefw=c+#O9@|n-29Z$EU4N-Ibbxs2qy{`_eG1w9}(4d z?m0I7P1;r?`ugk7za7!xd3=mM`}Kgl@?373pY;)BOF;~Pt)X1vVM{gj5O`4#PfGqb z3fBQv!oE01nzc=Uj`D4&g1#E}Y6=C}amQ@;Aah(Uge}`M1O-9dDnZsKg0)gHb;Llc zUhkbD89<|$h1bPb9u$87AB$TAYggxZz@TrsiI)%xs!+w*@E{=Yw^qlHM$Z{QnbX)< zOPMeXpwn}-VxeJ9LS=q45~-ZJiM8I;f^6R8A1XUPAK6c>nt>;gVl}{S<(>*OLZRvL zC+J8}xLzGgO*-!TfZ$fh9f8cLwWF@yfx4=#;dqTRW+HGOy{y?`lg@$4J;yRKy;lCW zZBh!nOMh{3QvJH|b_^9F`dS(sKV$Oh1=jXGedli(BF-x|F85^!7!db!u?Fb*IHFp&D!0 zA7dVqW=%SolM+2x4pUBL7xx&&EDpbq6upKdTn_vJF0D%ODukZi>0HcKV1poj5 literal 0 HcmV?d00001 diff --git a/configure/src/App.css b/configure/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/configure/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/configure/src/App.tsx b/configure/src/App.tsx new file mode 100644 index 0000000..47f8fce --- /dev/null +++ b/configure/src/App.tsx @@ -0,0 +1,79 @@ +import { Toaster } from "@/components/ui/toaster"; +import { Toaster as Sonner } from "@/components/ui/sonner"; +import { TooltipProvider } from "@/components/ui/tooltip"; +import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; +import Home from "./pages/Home"; +import Catalogs from "./pages/Catalogs"; +import Integrations from "./pages/Integrations"; +import Others from "./pages/Others"; +import NotFound from "./pages/NotFound"; +import { Sidebar } from "./components/Sidebar"; +import { Header } from "./components/Header"; +import { useState } from "react"; +import { ScrollArea } from "@/components/ui/scroll-area"; +import { ConfigProvider } from "@/contexts/ConfigContext"; + +const queryClient = new QueryClient(); + +type Page = "home" | "catalogs" | "integrations" | "others"; + +const Layout = ({ children }: { children: React.ReactNode }) => { + const [isOpen, setIsOpen] = useState(false); + const [currentPage, setCurrentPage] = useState("home"); + + const toggleSidebar = () => { + setIsOpen(!isOpen); + }; + + const renderPage = () => { + switch (currentPage) { + case "home": + return ; + case "catalogs": + return ; + case "integrations": + return ; + case "others": + return ; + default: + return ; + } + }; + + const isHome = currentPage === "home"; + + return ( +
+ +
+ {(!isHome || window.innerWidth < 768) && ( +
+ )} + + {renderPage()} + +
+
+ ); +}; + +const App = () => ( + + + + + + + + + + + +); + +export default App; \ No newline at end of file diff --git a/configure/src/components/DefaultIntegration.tsx b/configure/src/components/DefaultIntegration.tsx new file mode 100644 index 0000000..556bf9a --- /dev/null +++ b/configure/src/components/DefaultIntegration.tsx @@ -0,0 +1,9 @@ +export default function DefaultIntegration() { + return ( +
+

+ Configuration options for this integration will be available soon. +

+
+ ); +} \ No newline at end of file diff --git a/configure/src/components/Header.tsx b/configure/src/components/Header.tsx new file mode 100644 index 0000000..1cda398 --- /dev/null +++ b/configure/src/components/Header.tsx @@ -0,0 +1,45 @@ +import { Menu, X } from "lucide-react"; +import { useEffect, useState } from "react"; + +interface HeaderProps { + isOpen: boolean; + toggleSidebar: () => void; + isHome: boolean; +} + +export function Header({ isOpen, toggleSidebar, isHome }: HeaderProps) { + const [isMobile, setIsMobile] = useState(window.innerWidth < 768); + + useEffect(() => { + const handleResize = () => { + setIsMobile(window.innerWidth < 768); + }; + + window.addEventListener('resize', handleResize); + return () => window.removeEventListener('resize', handleResize); + }, []); + + const isTransparent = isHome && isMobile; + + return ( +
+
+ {isMobile && ( + + )} +
+
+ User +
+
+ ); +} \ No newline at end of file diff --git a/configure/src/components/IntegrationCard.tsx b/configure/src/components/IntegrationCard.tsx new file mode 100644 index 0000000..0be8b4d --- /dev/null +++ b/configure/src/components/IntegrationCard.tsx @@ -0,0 +1,45 @@ +import { + Dialog, + DialogContent, + DialogTrigger, +} from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { Card } from "@/components/ui/card"; +import { IntegrationDialog } from "./IntegrationDialog"; + +interface IntegrationCardProps { + id: string; + name: string; + icon: string; + description: string; +} + +export function IntegrationCard({ id, name, icon, description }: IntegrationCardProps) { + return ( + + + +
+
+ {name} +

{name}

+

{description}

+
+
+ +
+
+
+
+ + + + +
+ ); +} \ No newline at end of file diff --git a/configure/src/components/IntegrationDialog.tsx b/configure/src/components/IntegrationDialog.tsx new file mode 100644 index 0000000..a4945ad --- /dev/null +++ b/configure/src/components/IntegrationDialog.tsx @@ -0,0 +1,40 @@ +import { lazy, Suspense } from "react"; +import { DialogHeader, DialogTitle, DialogDescription } from "@/components/ui/dialog"; +import { Skeleton } from "@/components/ui/skeleton"; +import DefaultIntegration from "./DefaultIntegration"; + +interface IntegrationDialogProps { + id: string; + name: string; + icon: string; +} + +export function IntegrationDialog({ id, name, icon }: IntegrationDialogProps) { + const IntegrationComponent = lazy(() => + /* @vite-ignore */ + import(`../integrations/${id}.tsx`).catch(() => { + console.error(`Failed to load integration component for ${id}`); + return import("./DefaultIntegration"); + }) + ); + + return ( + <> + + + {name} + {name} Configuration + + + Configure your {name} integration settings below. + + + +
+ }> + + +
+ + ); +} \ No newline at end of file diff --git a/configure/src/components/Sidebar.tsx b/configure/src/components/Sidebar.tsx new file mode 100644 index 0000000..080388c --- /dev/null +++ b/configure/src/components/Sidebar.tsx @@ -0,0 +1,113 @@ +import { Home, GalleryVerticalEnd, Puzzle, Settings } from "lucide-react"; +import { cn } from "@/lib/utils"; +import { KoFiDialog } from "react-kofi"; +import "react-kofi/dist/styles.css"; +import "@/styles/kofi-dialog.css"; +import { generateAddonUrl } from "@/lib/config"; +import { useConfig } from "@/contexts/ConfigContext"; + +type Page = "home" | "catalogs" | "integrations" | "others"; + +const menuItems = [ + { icon: Home, label: "Home", id: "home" as Page }, + { icon: GalleryVerticalEnd, label: "Catalogs", id: "catalogs" as Page }, + { icon: Puzzle, label: "Integrations", id: "integrations" as Page }, + { icon: Settings, label: "Others", id: "others" as Page }, +]; + +interface SidebarProps { + isOpen: boolean; + setIsOpen: (isOpen: boolean) => void; + currentPage: Page; + setCurrentPage: (page: Page) => void; +} + +export function Sidebar({ isOpen, setIsOpen, currentPage, setCurrentPage }: SidebarProps) { + const config = useConfig(); + + const handleInstall = () => { + const url = generateAddonUrl({ + rpdbkey: config.rpdbkey, + includeAdult: config.includeAdult, + provideImdbId: config.provideImdbId, + tmdbPrefix: config.tmdbPrefix, + language: config.language, + sessionId: config.sessionId, + catalogs: config.catalogs + }); + + const stremioUrl = url.replace(/^https?:\/\//, 'stremio://'); + window.location.href = stremioUrl; + }; + + return ( + <> +
+
+
+ TMDB Logo +
+ + + +
+ + +
+
+
+ + {isOpen && ( +
setIsOpen(false)} + /> + )} + + ); +} diff --git a/configure/src/components/ui/alert.tsx b/configure/src/components/ui/alert.tsx new file mode 100644 index 0000000..41fa7e0 --- /dev/null +++ b/configure/src/components/ui/alert.tsx @@ -0,0 +1,59 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const alertVariants = cva( + "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", + { + variants: { + variant: { + default: "bg-background text-foreground", + destructive: + "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Alert = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes & VariantProps +>(({ className, variant, ...props }, ref) => ( +
+)) +Alert.displayName = "Alert" + +const AlertTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertTitle.displayName = "AlertTitle" + +const AlertDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +AlertDescription.displayName = "AlertDescription" + +export { Alert, AlertTitle, AlertDescription } diff --git a/configure/src/components/ui/badge.tsx b/configure/src/components/ui/badge.tsx new file mode 100644 index 0000000..f000e3e --- /dev/null +++ b/configure/src/components/ui/badge.tsx @@ -0,0 +1,36 @@ +import * as React from "react" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const badgeVariants = cva( + "inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", + { + variants: { + variant: { + default: + "border-transparent bg-primary text-primary-foreground hover:bg-primary/80", + secondary: + "border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80", + destructive: + "border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80", + outline: "text-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +export interface BadgeProps + extends React.HTMLAttributes, + VariantProps {} + +function Badge({ className, variant, ...props }: BadgeProps) { + return ( +
+ ) +} + +export { Badge, badgeVariants } diff --git a/configure/src/components/ui/button.tsx b/configure/src/components/ui/button.tsx new file mode 100644 index 0000000..36496a2 --- /dev/null +++ b/configure/src/components/ui/button.tsx @@ -0,0 +1,56 @@ +import * as React from "react" +import { Slot } from "@radix-ui/react-slot" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const buttonVariants = cva( + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + { + variants: { + variant: { + default: "bg-primary text-primary-foreground hover:bg-primary/90", + destructive: + "bg-destructive text-destructive-foreground hover:bg-destructive/90", + outline: + "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + secondary: + "bg-secondary text-secondary-foreground hover:bg-secondary/80", + ghost: "hover:bg-accent hover:text-accent-foreground", + link: "text-primary underline-offset-4 hover:underline", + }, + size: { + default: "h-10 px-4 py-2", + sm: "h-9 rounded-md px-3", + lg: "h-11 rounded-md px-8", + icon: "h-10 w-10", + }, + }, + defaultVariants: { + variant: "default", + size: "default", + }, + } +) + +export interface ButtonProps + extends React.ButtonHTMLAttributes, + VariantProps { + asChild?: boolean +} + +const Button = React.forwardRef( + ({ className, variant, size, asChild = false, ...props }, ref) => { + const Comp = asChild ? Slot : "button" + return ( + + ) + } +) +Button.displayName = "Button" + +export { Button, buttonVariants } diff --git a/configure/src/components/ui/card.tsx b/configure/src/components/ui/card.tsx new file mode 100644 index 0000000..afa13ec --- /dev/null +++ b/configure/src/components/ui/card.tsx @@ -0,0 +1,79 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Card = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +Card.displayName = "Card" + +const CardHeader = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardHeader.displayName = "CardHeader" + +const CardTitle = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardTitle.displayName = "CardTitle" + +const CardDescription = React.forwardRef< + HTMLParagraphElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardDescription.displayName = "CardDescription" + +const CardContent = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +

+)) +CardContent.displayName = "CardContent" + +const CardFooter = React.forwardRef< + HTMLDivElement, + React.HTMLAttributes +>(({ className, ...props }, ref) => ( +
+)) +CardFooter.displayName = "CardFooter" + +export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } diff --git a/configure/src/components/ui/dialog.tsx b/configure/src/components/ui/dialog.tsx new file mode 100644 index 0000000..c23630e --- /dev/null +++ b/configure/src/components/ui/dialog.tsx @@ -0,0 +1,120 @@ +import * as React from "react" +import * as DialogPrimitive from "@radix-ui/react-dialog" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Dialog = DialogPrimitive.Root + +const DialogTrigger = DialogPrimitive.Trigger + +const DialogPortal = DialogPrimitive.Portal + +const DialogClose = DialogPrimitive.Close + +const DialogOverlay = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogOverlay.displayName = DialogPrimitive.Overlay.displayName + +const DialogContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + {children} + + + Close + + + +)) +DialogContent.displayName = DialogPrimitive.Content.displayName + +const DialogHeader = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogHeader.displayName = "DialogHeader" + +const DialogFooter = ({ + className, + ...props +}: React.HTMLAttributes) => ( +
+) +DialogFooter.displayName = "DialogFooter" + +const DialogTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogTitle.displayName = DialogPrimitive.Title.displayName + +const DialogDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +DialogDescription.displayName = DialogPrimitive.Description.displayName + +export { + Dialog, + DialogPortal, + DialogOverlay, + DialogClose, + DialogTrigger, + DialogContent, + DialogHeader, + DialogFooter, + DialogTitle, + DialogDescription, +} diff --git a/configure/src/components/ui/input.tsx b/configure/src/components/ui/input.tsx new file mode 100644 index 0000000..68551b9 --- /dev/null +++ b/configure/src/components/ui/input.tsx @@ -0,0 +1,22 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +const Input = React.forwardRef>( + ({ className, type, ...props }, ref) => { + return ( + + ) + } +) +Input.displayName = "Input" + +export { Input } diff --git a/configure/src/components/ui/label.tsx b/configure/src/components/ui/label.tsx new file mode 100644 index 0000000..683faa7 --- /dev/null +++ b/configure/src/components/ui/label.tsx @@ -0,0 +1,24 @@ +import * as React from "react" +import * as LabelPrimitive from "@radix-ui/react-label" +import { cva, type VariantProps } from "class-variance-authority" + +import { cn } from "@/lib/utils" + +const labelVariants = cva( + "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70" +) + +const Label = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, ...props }, ref) => ( + +)) +Label.displayName = LabelPrimitive.Root.displayName + +export { Label } diff --git a/configure/src/components/ui/scroll-area.tsx b/configure/src/components/ui/scroll-area.tsx new file mode 100644 index 0000000..cf253cf --- /dev/null +++ b/configure/src/components/ui/scroll-area.tsx @@ -0,0 +1,46 @@ +import * as React from "react" +import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area" + +import { cn } from "@/lib/utils" + +const ScrollArea = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + {children} + + + + +)) +ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName + +const ScrollBar = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, orientation = "vertical", ...props }, ref) => ( + + + +)) +ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName + +export { ScrollArea, ScrollBar } diff --git a/configure/src/components/ui/select.tsx b/configure/src/components/ui/select.tsx new file mode 100644 index 0000000..fe56d4d --- /dev/null +++ b/configure/src/components/ui/select.tsx @@ -0,0 +1,158 @@ +import * as React from "react" +import * as SelectPrimitive from "@radix-ui/react-select" +import { Check, ChevronDown, ChevronUp } from "lucide-react" + +import { cn } from "@/lib/utils" + +const Select = SelectPrimitive.Root + +const SelectGroup = SelectPrimitive.Group + +const SelectValue = SelectPrimitive.Value + +const SelectTrigger = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + span]:line-clamp-1", + className + )} + {...props} + > + {children} + + + + +)) +SelectTrigger.displayName = SelectPrimitive.Trigger.displayName + +const SelectScrollUpButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName + +const SelectScrollDownButton = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +SelectScrollDownButton.displayName = + SelectPrimitive.ScrollDownButton.displayName + +const SelectContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, position = "popper", ...props }, ref) => ( + + + + + {children} + + + + +)) +SelectContent.displayName = SelectPrimitive.Content.displayName + +const SelectLabel = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectLabel.displayName = SelectPrimitive.Label.displayName + +const SelectItem = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, children, ...props }, ref) => ( + + + + + + + + {children} + +)) +SelectItem.displayName = SelectPrimitive.Item.displayName + +const SelectSeparator = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +SelectSeparator.displayName = SelectPrimitive.Separator.displayName + +export { + Select, + SelectGroup, + SelectValue, + SelectTrigger, + SelectContent, + SelectLabel, + SelectItem, + SelectSeparator, + SelectScrollUpButton, + SelectScrollDownButton, +} diff --git a/configure/src/components/ui/skeleton.tsx b/configure/src/components/ui/skeleton.tsx new file mode 100644 index 0000000..01b8b6d --- /dev/null +++ b/configure/src/components/ui/skeleton.tsx @@ -0,0 +1,15 @@ +import { cn } from "@/lib/utils" + +function Skeleton({ + className, + ...props +}: React.HTMLAttributes) { + return ( +
+ ) +} + +export { Skeleton } diff --git a/configure/src/components/ui/sonner.tsx b/configure/src/components/ui/sonner.tsx new file mode 100644 index 0000000..1128edf --- /dev/null +++ b/configure/src/components/ui/sonner.tsx @@ -0,0 +1,29 @@ +import { useTheme } from "next-themes" +import { Toaster as Sonner } from "sonner" + +type ToasterProps = React.ComponentProps + +const Toaster = ({ ...props }: ToasterProps) => { + const { theme = "system" } = useTheme() + + return ( + + ) +} + +export { Toaster } diff --git a/configure/src/components/ui/switch.tsx b/configure/src/components/ui/switch.tsx new file mode 100644 index 0000000..aa58baa --- /dev/null +++ b/configure/src/components/ui/switch.tsx @@ -0,0 +1,27 @@ +import * as React from "react" +import * as SwitchPrimitives from "@radix-ui/react-switch" + +import { cn } from "@/lib/utils" + +const Switch = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +Switch.displayName = SwitchPrimitives.Root.displayName + +export { Switch } diff --git a/configure/src/components/ui/toast.tsx b/configure/src/components/ui/toast.tsx new file mode 100644 index 0000000..a822477 --- /dev/null +++ b/configure/src/components/ui/toast.tsx @@ -0,0 +1,127 @@ +import * as React from "react" +import * as ToastPrimitives from "@radix-ui/react-toast" +import { cva, type VariantProps } from "class-variance-authority" +import { X } from "lucide-react" + +import { cn } from "@/lib/utils" + +const ToastProvider = ToastPrimitives.Provider + +const ToastViewport = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +ToastViewport.displayName = ToastPrimitives.Viewport.displayName + +const toastVariants = cva( + "group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", + { + variants: { + variant: { + default: "border bg-background text-foreground", + destructive: + "destructive group border-destructive bg-destructive text-destructive-foreground", + }, + }, + defaultVariants: { + variant: "default", + }, + } +) + +const Toast = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef & + VariantProps +>(({ className, variant, ...props }, ref) => { + return ( + + ) +}) +Toast.displayName = ToastPrimitives.Root.displayName + +const ToastAction = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +ToastAction.displayName = ToastPrimitives.Action.displayName + +const ToastClose = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + + + +)) +ToastClose.displayName = ToastPrimitives.Close.displayName + +const ToastTitle = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +ToastTitle.displayName = ToastPrimitives.Title.displayName + +const ToastDescription = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, ...props }, ref) => ( + +)) +ToastDescription.displayName = ToastPrimitives.Description.displayName + +type ToastProps = React.ComponentPropsWithoutRef + +type ToastActionElement = React.ReactElement + +export { + type ToastProps, + type ToastActionElement, + ToastProvider, + ToastViewport, + Toast, + ToastTitle, + ToastDescription, + ToastClose, + ToastAction, +} diff --git a/configure/src/components/ui/toaster.tsx b/configure/src/components/ui/toaster.tsx new file mode 100644 index 0000000..6c67edf --- /dev/null +++ b/configure/src/components/ui/toaster.tsx @@ -0,0 +1,33 @@ +import { useToast } from "@/hooks/use-toast" +import { + Toast, + ToastClose, + ToastDescription, + ToastProvider, + ToastTitle, + ToastViewport, +} from "@/components/ui/toast" + +export function Toaster() { + const { toasts } = useToast() + + return ( + + {toasts.map(function ({ id, title, description, action, ...props }) { + return ( + +
+ {title && {title}} + {description && ( + {description} + )} +
+ {action} + +
+ ) + })} + +
+ ) +} diff --git a/configure/src/components/ui/tooltip.tsx b/configure/src/components/ui/tooltip.tsx new file mode 100644 index 0000000..e121f0a --- /dev/null +++ b/configure/src/components/ui/tooltip.tsx @@ -0,0 +1,28 @@ +import * as React from "react" +import * as TooltipPrimitive from "@radix-ui/react-tooltip" + +import { cn } from "@/lib/utils" + +const TooltipProvider = TooltipPrimitive.Provider + +const Tooltip = TooltipPrimitive.Root + +const TooltipTrigger = TooltipPrimitive.Trigger + +const TooltipContent = React.forwardRef< + React.ElementRef, + React.ComponentPropsWithoutRef +>(({ className, sideOffset = 4, ...props }, ref) => ( + +)) +TooltipContent.displayName = TooltipPrimitive.Content.displayName + +export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider } diff --git a/configure/src/contexts/ConfigContext.tsx b/configure/src/contexts/ConfigContext.tsx new file mode 100644 index 0000000..b65b27a --- /dev/null +++ b/configure/src/contexts/ConfigContext.tsx @@ -0,0 +1,105 @@ +import { createContext, useContext, useState, useEffect } from "react"; +import { ConfigContext, type ConfigContextType, type CatalogConfig } from "./config"; + +export function ConfigProvider({ children }: { children: React.ReactNode }) { + const [rpdbkey, setRpdbkey] = useState(() => { + return localStorage.getItem("rpdbkey") || ""; + }); + + const [includeAdult, setIncludeAdult] = useState(() => { + return localStorage.getItem("includeAdult") === "true"; + }); + + const [provideImdbId, setProvideImdbId] = useState(() => { + return localStorage.getItem("provideImdbId") === "true"; + }); + + const [tmdbPrefix, setTmdbPrefix] = useState(() => { + return localStorage.getItem("tmdbPrefix") === "true"; + }); + + const [language, setLanguage] = useState(() => { + return localStorage.getItem("language") || "en-US"; + }); + + const [sessionId, setSessionId] = useState(() => { + return localStorage.getItem("sessionId") || ""; + }); + + const [streaming, setStreaming] = useState(() => { + const saved = localStorage.getItem("streaming"); + return saved ? JSON.parse(saved) : []; + }); + + const [catalogs, setCatalogs] = useState(() => { + const saved = localStorage.getItem("catalogs"); + return saved ? JSON.parse(saved) : []; + }); + + useEffect(() => { + localStorage.setItem("rpdbkey", rpdbkey); + }, [rpdbkey]); + + useEffect(() => { + localStorage.setItem("includeAdult", String(includeAdult)); + }, [includeAdult]); + + useEffect(() => { + localStorage.setItem("provideImdbId", String(provideImdbId)); + }, [provideImdbId]); + + useEffect(() => { + localStorage.setItem("tmdbPrefix", String(tmdbPrefix)); + }, [tmdbPrefix]); + + useEffect(() => { + localStorage.setItem("language", language); + }, [language]); + + useEffect(() => { + localStorage.setItem("sessionId", sessionId); + }, [sessionId]); + + useEffect(() => { + localStorage.setItem("streaming", JSON.stringify(streaming)); + }, [streaming]); + + useEffect(() => { + localStorage.setItem("catalogs", JSON.stringify(catalogs)); + }, [catalogs]); + + return ( + + {children} + + ); +} + +export function useConfig() { + const context = useContext(ConfigContext); + + if (context === undefined) { + throw new Error("useConfig must be used within a ConfigProvider"); + } + + return context; +} \ No newline at end of file diff --git a/configure/src/contexts/config.ts b/configure/src/contexts/config.ts new file mode 100644 index 0000000..855ed43 --- /dev/null +++ b/configure/src/contexts/config.ts @@ -0,0 +1,29 @@ +import { createContext } from 'react'; + +export interface CatalogConfig { + id: string; + type: "movie" | "series"; + enabled: boolean; + showInHome: boolean; +} + +export interface ConfigContextType { + rpdbkey: string; + includeAdult: boolean; + provideImdbId: boolean; + tmdbPrefix: boolean; + language: string; + sessionId: string; + streaming: string[]; + catalogs: CatalogConfig[]; + setRpdbkey: (value: string) => void; + setIncludeAdult: (value: boolean) => void; + setProvideImdbId: (value: boolean) => void; + setTmdbPrefix: (value: boolean) => void; + setLanguage: (value: string) => void; + setSessionId: (value: string) => void; + setStreaming: (value: string[]) => void; + setCatalogs: (value: CatalogConfig[] | ((prev: CatalogConfig[]) => CatalogConfig[])) => void; +} + +export const ConfigContext = createContext(undefined); \ No newline at end of file diff --git a/configure/src/data/catalogs.ts b/configure/src/data/catalogs.ts new file mode 100644 index 0000000..9fa9a01 --- /dev/null +++ b/configure/src/data/catalogs.ts @@ -0,0 +1,127 @@ +export interface ExtraOption { + name: string; + options?: string[]; + isRequired?: boolean; +} + +export interface Catalog { + id: string; + name: string; + type: "movie" | "series"; + extraRequired?: boolean; +} + +// Catálogos base que sempre estarão disponíveis +export const baseCatalogs: Catalog[] = [ + { id: "tmdb.top", name: "Popular", type: "movie" }, + { id: "tmdb.top", name: "Popular", type: "series" }, + { id: "tmdb.year", name: "Year", type: "movie" }, + { id: "tmdb.year", name: "Year", type: "series" }, + { id: "tmdb.language", name: "Language", type: "movie" }, + { id: "tmdb.language", name: "Language", type: "series" }, + { id: "tmdb.trending", name: "Trending", type: "movie" }, + { id: "tmdb.trending", name: "Trending", type: "series" }, +]; + +// Catálogos que requerem autenticação +export const authCatalogs: Catalog[] = [ + { id: "tmdb.favorites", name: "Favorites", type: "movie" }, + { id: "tmdb.favorites", name: "Favorites", type: "series" }, + { id: "tmdb.watchlist", name: "Watchlist", type: "movie" }, + { id: "tmdb.watchlist", name: "Watchlist", type: "series" }, +]; + +// Catálogos de streaming +export const streamingCatalogs: Record = { + nfx: [ + { id: "streaming.nfx", name: "Netflix", type: "movie" }, + { id: "streaming.nfx", name: "Netflix", type: "series" } + ], + nfk: [ + { id: "streaming.nfk", name: "Netflix Kids", type: "movie" }, + { id: "streaming.nfk", name: "Netflix Kids", type: "series" } + ], + hbm: [ + { id: "streaming.hbm", name: "HBO Max", type: "movie" }, + { id: "streaming.hbm", name: "HBO Max", type: "series" } + ], + dnp: [ + { id: "streaming.dnp", name: "Disney+", type: "movie" }, + { id: "streaming.dnp", name: "Disney+", type: "series" } + ], + amp: [ + { id: "streaming.amp", name: "Prime Video", type: "movie" }, + { id: "streaming.amp", name: "Prime Video", type: "series" } + ], + atp: [ + { id: "streaming.atp", name: "Apple TV+", type: "movie" }, + { id: "streaming.atp", name: "Apple TV+", type: "series" } + ], + pmp: [ + { id: "streaming.pmp", name: "Paramount+", type: "movie" }, + { id: "streaming.pmp", name: "Paramount+", type: "series" } + ], + pcp: [ + { id: "streaming.pcp", name: "Peacock Premium", type: "movie" }, + { id: "streaming.pcp", name: "Peacock Premium", type: "series" } + ], + hlu: [ + { id: "streaming.hlu", name: "Hulu", type: "movie" }, + { id: "streaming.hlu", name: "Hulu", type: "series" } + ], + cts: [ + { id: "streaming.cts", name: "Curiosity Stream", type: "movie" }, + { id: "streaming.cts", name: "Curiosity Stream", type: "series" } + ], + mgl: [ + { id: "streaming.mgl", name: "MagellanTV", type: "movie" }, + { id: "streaming.mgl", name: "MagellanTV", type: "series" } + ], + cru: [ + { id: "streaming.cru", name: "Crunchyroll", type: "movie" }, + { id: "streaming.cru", name: "Crunchyroll", type: "series" } + ], + hay: [ + { id: "streaming.hay", name: "Hayu", type: "series" } + ], + clv: [ + { id: "streaming.clv", name: "Clarovideo", type: "movie" }, + { id: "streaming.clv", name: "Clarovideo", type: "series" } + ], + gop: [ + { id: "streaming.gop", name: "Globoplay", type: "movie" }, + { id: "streaming.gop", name: "Globoplay", type: "series" } + ], + hst: [ + { id: "streaming.hst", name: "Hotstar", type: "movie" }, + { id: "streaming.hst", name: "Hotstar", type: "series" } + ], + zee: [ + { id: "streaming.zee", name: "Zee5", type: "movie" }, + { id: "streaming.zee", name: "Zee5", type: "series" } + ], + nlz: [ + { id: "streaming.nlz", name: "NLZIET", type: "movie" }, + { id: "streaming.nlz", name: "NLZIET", type: "series" } + ], + vil: [ + { id: "streaming.vil", name: "Videoland", type: "movie" }, + { id: "streaming.vil", name: "Videoland", type: "series" } + ], + sst: [ + { id: "streaming.sst", name: "SkyShowtime", type: "movie" }, + { id: "streaming.sst", name: "SkyShowtime", type: "series" } + ], + blv: [ + { id: "streaming.blv", name: "BluTV", type: "movie" }, + { id: "streaming.blv", name: "BluTV", type: "series" } + ], + cpd: [ + { id: "streaming.cpd", name: "Canal+", type: "movie" }, + { id: "streaming.cpd", name: "Canal+", type: "series" } + ], + dpe: [ + { id: "streaming.dpe", name: "Discovery+", type: "movie" }, + { id: "streaming.dpe", name: "Discovery+", type: "series" } + ] +}; \ No newline at end of file diff --git a/configure/src/data/integrations.ts b/configure/src/data/integrations.ts new file mode 100644 index 0000000..3630153 --- /dev/null +++ b/configure/src/data/integrations.ts @@ -0,0 +1,39 @@ +interface Integration { + id: string; + name: string; + icon: string; + description: string; +} + +export const integrations: Integration[] = [ + { + id: "tmdb", + name: "TMDB Lists", + icon: "https://www.themoviedb.org/assets/2/v4/logos/v2/blue_square_2-d537fb228cf3ded904ef09b136fe3fec72548ebc1fea3fbbd1ad9e36364db38b.svg", + description: "Sync your TMDB lists to discover new movies and TV shows.", + }, + { + id: "rpdb", + name: "Rating Poster Database", + icon: "https://github.com/RatingPosterDB.png", + description: "Add ratings and scores to your movies and TV shows posters.", + }, + { + id: "streaming", + name: "Streaming Catalogs", + icon: "https://www.svgrepo.com/show/303341/netflix-1-logo.svg", + description: "Set up your streaming services to see content availability. Based on rleroi/Stremio-Streaming-Catalogs-Addon.", + }, + { + id: "mdblist", + name: "MDBList", + icon: "https://mdblist.com/static/mdblist.png", + description: "Integrate your MDBList lists to expand your content library.", + }, + { + id: "trakt", + name: "Trakt", + icon: "https://trakt.tv/assets/logos/logomark.square.gradient-b644b16c38ff775861b4b1f58c1230f6a097a2466ab33ae00445a505c33fcb91.svg", + description: "Track what you watch and sync your progress with Trakt.tv.", + } +]; \ No newline at end of file diff --git a/configure/src/data/streamings.ts b/configure/src/data/streamings.ts new file mode 100644 index 0000000..ddc8e46 --- /dev/null +++ b/configure/src/data/streamings.ts @@ -0,0 +1,50 @@ +export const streamingServices = [ + { id: "nfx", name: "Netflix", icon: "/streaming/netflix.webp" }, + { id: "nfk", name: "Netflix Kids", icon: "/streaming/netflixkids.webp" }, + { id: "hbm", name: "HBO Max", icon: "/streaming/hbo.webp" }, + { id: "dnp", name: "Disney+", icon: "/streaming/disney.webp" }, + { id: "amp", name: "Prime Video", icon: "/streaming/prime.webp" }, + { id: "atp", name: "Apple TV+", icon: "/streaming/apple.webp" }, + { id: "pmp", name: "Paramount+", icon: "/streaming/paramount.webp" }, + { id: "pcp", name: "Peacock Premium", icon: "/streaming/peacock.webp" }, + { id: "hlu", name: "Hulu", icon: "/streaming/hulu.webp" }, + { id: "cts", name: "Curiosity Stream", icon: "/streaming/curiositystream.webp" }, + { id: "mgl", name: "MagellanTV", icon: "/streaming/magellan.webp" }, + { id: "cru", name: "Crunchyroll", icon: "/streaming/crunchyroll.webp" }, + { id: "hay", name: "Hayu", icon: "/streaming/hayu.webp" }, + { id: "clv", name: "Clarovideo", icon: "/streaming/claro.webp" }, + { id: "gop", name: "Globoplay", icon: "/streaming/globo.webp" }, + { id: "hst", name: "Hotstar", icon: "/streaming/hotstar.webp" }, + { id: "zee", name: "Zee5", icon: "/streaming/zee5.webp" }, + { id: "nlz", name: "NLZIET", icon: "/streaming/nlziet.webp" }, + { id: "vil", name: "Videoland", icon: "/streaming/videoland.webp" }, + { id: "sst", name: "SkyShowtime", icon: "/streaming/skyshowtime.webp" }, + { id: "blv", name: "BluTV", icon: "/streaming/blu.webp" }, + { id: "cpd", name: "Canal+", icon: "/streaming/canal-plus.webp" }, + { id: "dpe", name: "Discovery+", icon: "/streaming/discovery-plus.webp" } + ]; + + export const regions = { + 'United States': [ + 'nfx', 'nfk', 'dnp', 'amp', 'atp', 'hbm', 'cru', 'pmp', 'mgl', 'cts', 'hlu', 'pcp', 'dpe' + ], + 'Brazil': [ + 'nfx', 'nfk', 'dnp', 'atp', 'amp', 'pmp', 'hbm', 'cru', 'clv', 'gop', 'mgl', 'cts' + ], + 'India': [ + 'hay', 'nfx', 'nfk', 'atp', 'amp', 'cru', 'zee', 'hst', 'mgl', 'cts', 'dpe' + ], + 'Turkey': [ + 'nfx', 'nfk', 'dnp', 'atp', 'amp', 'cru', 'blv', 'mgl', 'cts' + ], + 'Netherlands': [ + 'nfx', 'nfk', 'dnp', 'amp', 'atp', 'hbm', 'cru', 'hay', 'vil', 'sst', 'mgl', 'cts', 'nlz', 'dpe' + ], + 'France': [ + 'nfx', 'nfk', 'dnp', 'amp', 'atp', 'hbm', 'hay', 'cpd' + ], + 'Any': [ + 'nfx', 'nfk', 'dnp', 'amp', 'atp', 'hbm', 'pmp', 'hlu', 'pcp', 'clv', 'gop', 'blv', + 'zee', 'hst', 'hay', 'vil', 'sst', 'mgl', 'cts', 'cru', 'nlz', 'cpd', 'dpe' + ] + }; \ No newline at end of file diff --git a/configure/src/hooks/use-mobile.tsx b/configure/src/hooks/use-mobile.tsx new file mode 100644 index 0000000..2b0fe1d --- /dev/null +++ b/configure/src/hooks/use-mobile.tsx @@ -0,0 +1,19 @@ +import * as React from "react" + +const MOBILE_BREAKPOINT = 768 + +export function useIsMobile() { + const [isMobile, setIsMobile] = React.useState(undefined) + + React.useEffect(() => { + const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`) + const onChange = () => { + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) + } + mql.addEventListener("change", onChange) + setIsMobile(window.innerWidth < MOBILE_BREAKPOINT) + return () => mql.removeEventListener("change", onChange) + }, []) + + return !!isMobile +} diff --git a/configure/src/hooks/use-toast.ts b/configure/src/hooks/use-toast.ts new file mode 100644 index 0000000..2c14125 --- /dev/null +++ b/configure/src/hooks/use-toast.ts @@ -0,0 +1,191 @@ +import * as React from "react" + +import type { + ToastActionElement, + ToastProps, +} from "@/components/ui/toast" + +const TOAST_LIMIT = 1 +const TOAST_REMOVE_DELAY = 1000000 + +type ToasterToast = ToastProps & { + id: string + title?: React.ReactNode + description?: React.ReactNode + action?: ToastActionElement +} + +const actionTypes = { + ADD_TOAST: "ADD_TOAST", + UPDATE_TOAST: "UPDATE_TOAST", + DISMISS_TOAST: "DISMISS_TOAST", + REMOVE_TOAST: "REMOVE_TOAST", +} as const + +let count = 0 + +function genId() { + count = (count + 1) % Number.MAX_SAFE_INTEGER + return count.toString() +} + +type ActionType = typeof actionTypes + +type Action = + | { + type: ActionType["ADD_TOAST"] + toast: ToasterToast + } + | { + type: ActionType["UPDATE_TOAST"] + toast: Partial + } + | { + type: ActionType["DISMISS_TOAST"] + toastId?: ToasterToast["id"] + } + | { + type: ActionType["REMOVE_TOAST"] + toastId?: ToasterToast["id"] + } + +interface State { + toasts: ToasterToast[] +} + +const toastTimeouts = new Map>() + +const addToRemoveQueue = (toastId: string) => { + if (toastTimeouts.has(toastId)) { + return + } + + const timeout = setTimeout(() => { + toastTimeouts.delete(toastId) + dispatch({ + type: "REMOVE_TOAST", + toastId: toastId, + }) + }, TOAST_REMOVE_DELAY) + + toastTimeouts.set(toastId, timeout) +} + +export const reducer = (state: State, action: Action): State => { + switch (action.type) { + case "ADD_TOAST": + return { + ...state, + toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT), + } + + case "UPDATE_TOAST": + return { + ...state, + toasts: state.toasts.map((t) => + t.id === action.toast.id ? { ...t, ...action.toast } : t + ), + } + + case "DISMISS_TOAST": { + const { toastId } = action + + // ! Side effects ! - This could be extracted into a dismissToast() action, + // but I'll keep it here for simplicity + if (toastId) { + addToRemoveQueue(toastId) + } else { + state.toasts.forEach((toast) => { + addToRemoveQueue(toast.id) + }) + } + + return { + ...state, + toasts: state.toasts.map((t) => + t.id === toastId || toastId === undefined + ? { + ...t, + open: false, + } + : t + ), + } + } + case "REMOVE_TOAST": + if (action.toastId === undefined) { + return { + ...state, + toasts: [], + } + } + return { + ...state, + toasts: state.toasts.filter((t) => t.id !== action.toastId), + } + } +} + +const listeners: Array<(state: State) => void> = [] + +let memoryState: State = { toasts: [] } + +function dispatch(action: Action) { + memoryState = reducer(memoryState, action) + listeners.forEach((listener) => { + listener(memoryState) + }) +} + +type Toast = Omit + +function toast({ ...props }: Toast) { + const id = genId() + + const update = (props: ToasterToast) => + dispatch({ + type: "UPDATE_TOAST", + toast: { ...props, id }, + }) + const dismiss = () => dispatch({ type: "DISMISS_TOAST", toastId: id }) + + dispatch({ + type: "ADD_TOAST", + toast: { + ...props, + id, + open: true, + onOpenChange: (open) => { + if (!open) dismiss() + }, + }, + }) + + return { + id: id, + dismiss, + update, + } +} + +function useToast() { + const [state, setState] = React.useState(memoryState) + + React.useEffect(() => { + listeners.push(setState) + return () => { + const index = listeners.indexOf(setState) + if (index > -1) { + listeners.splice(index, 1) + } + } + }, [state]) + + return { + ...state, + toast, + dismiss: (toastId?: string) => dispatch({ type: "DISMISS_TOAST", toastId }), + } +} + +export { useToast, toast } diff --git a/configure/src/index.css b/configure/src/index.css new file mode 100644 index 0000000..34bb643 --- /dev/null +++ b/configure/src/index.css @@ -0,0 +1,25 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap'); + +@tailwind base; +@tailwind components; +@tailwind utilities; + +@layer base { + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; + --border: 214.3 31.8% 91.4%; + --input: 214.3 31.8% 91.4%; + --ring: 222.2 84% 4.9%; + } + + * { + @apply border-border; + } + + body { + @apply bg-background text-foreground font-['Inter']; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } +} \ No newline at end of file diff --git a/configure/src/integrations/rpdb.tsx b/configure/src/integrations/rpdb.tsx new file mode 100644 index 0000000..01cdece --- /dev/null +++ b/configure/src/integrations/rpdb.tsx @@ -0,0 +1,133 @@ +import { useState, useEffect } from "react"; +import { useConfig } from "@/contexts/ConfigContext"; +import { Input } from "@/components/ui/input"; +import { Label } from "@/components/ui/label"; +import { DialogClose } from "@/components/ui/dialog"; +import { Button } from "@/components/ui/button"; +import { Alert, AlertDescription } from "@/components/ui/alert"; +import { AlertCircle, Loader2 } from "lucide-react"; + +export default function RPDB() { + const { rpdbkey, setRpdbkey } = useConfig(); + const [tempKey, setTempKey] = useState(rpdbkey); + const [error, setError] = useState(""); + const [isValid, setIsValid] = useState(false); + const [isChecking, setIsChecking] = useState(false); + + useEffect(() => { + setTempKey(rpdbkey); + // Se tiver uma chave existente, vamos validá-la + if (rpdbkey) { + validateRPDBKey(rpdbkey); + } + }, [rpdbkey]); + + const validateRPDBKey = async (key: string) => { + if (!key) { + setIsValid(false); + setError(""); + return false; + } + + setIsChecking(true); + try { + const response = await fetch(`https://api.ratingposterdb.com/${key}/isValid`); + const data = await response.json(); + + if (!(data || {}).valid) { + setError("RPDB Key is invalid, please try again"); + setIsValid(false); + return false; + } + setError(""); + setIsValid(true); + return true; + } catch (e) { + console.error(e); + setError("Error validating RPDB key"); + setIsValid(false); + return false; + } finally { + setIsChecking(false); + } + }; + + const handleSave = () => { + if (isValid) { + setRpdbkey(tempKey); + } + }; + + const handleCancel = () => { + setTempKey(rpdbkey); + setError(""); + setIsValid(rpdbkey ? true : false); + }; + + return ( +
+
+
+ + { + setTempKey(e.target.value); + setIsValid(false); + setError(""); + }} + placeholder="Enter your RPDB API key" + /> +
+ + {error && ( + + + {error} + + )} +
+ +
+ + + + {isValid ? ( + + + + ) : ( + + )} +
+
+ ); +} \ No newline at end of file diff --git a/configure/src/integrations/streaming.tsx b/configure/src/integrations/streaming.tsx new file mode 100644 index 0000000..86b6f4f --- /dev/null +++ b/configure/src/integrations/streaming.tsx @@ -0,0 +1,110 @@ +import { Button } from "@/components/ui/button"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { useState, useEffect } from "react"; +import { useConfig } from "@/contexts/ConfigContext"; +import { DialogClose } from "@/components/ui/dialog"; +import { regions, streamingServices } from "@/data/streamings"; + +export default function Streaming() { + const [selectedCountry, setSelectedCountry] = useState("Brazil"); + const { streaming, setStreaming } = useConfig(); + const [tempSelectedServices, setTempSelectedServices] = useState([]); + + useEffect(() => { + setTempSelectedServices(streaming); + }, [streaming]); + + const toggleService = (serviceId: string) => { + setTempSelectedServices(prev => + prev.includes(serviceId) + ? prev.filter(id => id !== serviceId) + : [...prev, serviceId] + ); + }; + + const showProvider = (serviceId: string) => { + return regions[selectedCountry as keyof typeof regions]?.includes(serviceId); + }; + + const handleSave = () => { + setStreaming(tempSelectedServices); + }; + + const handleCancel = () => { + setTempSelectedServices(streaming); + }; + + return ( + +
+

+ Based on rleroi/Stremio-Streaming-Catalogs-Addon +

+
+
+
+

Filter providers by country:

+ +
+ +
+ {streamingServices.map((service) => ( + showProvider(service.id) && ( + + ) + ))} +
+ +
+ + + + + + +
+
+
+
+ ); +} diff --git a/configure/src/integrations/tmdb.tsx b/configure/src/integrations/tmdb.tsx new file mode 100644 index 0000000..824d60e --- /dev/null +++ b/configure/src/integrations/tmdb.tsx @@ -0,0 +1,106 @@ +import { useState, useEffect, useCallback } from "react"; +import { useConfig } from "@/contexts/ConfigContext"; +import { Button } from "@/components/ui/button"; +import { DialogClose } from "@/components/ui/dialog"; +import { Alert, AlertDescription } from "@/components/ui/alert"; +import { AlertCircle, Loader2 } from "lucide-react"; + +export default function TMDB() { + const { sessionId, setSessionId } = useConfig(); + const [error, setError] = useState(""); + const [isLoading, setIsLoading] = useState(false); + + const handleRequestToken = useCallback(async (requestToken: string) => { + setIsLoading(true); + try { + const response = await fetch(`https://94c8cb9f702d-tmdb-addon.baby-beamup.club/session_id?request_token=${requestToken}`); + if (!response.ok) throw new Error('Failed to create session'); + + const sessionId = await response.text(); + setSessionId(sessionId); + + // Limpa os parâmetros da URL sem mudar a página + window.history.replaceState({}, '', window.location.pathname); + } catch (e) { + console.error(e); + setError("Failed to create TMDB session"); + } finally { + setIsLoading(false); + } + }, [setSessionId]); + + useEffect(() => { + const urlParams = new URLSearchParams(window.location.search); + const requestToken = urlParams.get('request_token'); + + if (requestToken) { + handleRequestToken(requestToken); + } + }, [handleRequestToken]); + + const handleLogin = async () => { + setIsLoading(true); + setError(""); + + try { + const uuid = crypto.randomUUID(); + const response = await fetch(`https://94c8cb9f702d-tmdb-addon.baby-beamup.club/request_token?${uuid}`); + if (!response.ok) throw new Error('Failed to get request token'); + + const requestToken = await response.text(); + const tmdbAuthUrl = `https://www.themoviedb.org/authenticate/${requestToken}?redirect_to=${window.location.href}`; + window.location.href = tmdbAuthUrl; + } catch (e) { + console.error(e); + setError("Failed to start TMDB authentication"); + setIsLoading(false); + } + }; + + const handleLogout = () => { + setSessionId(""); + }; + + return ( +
+
+ {error && ( + + + {error} + + )} + + {sessionId ? ( +
+ + + You are logged in to TMDB + + + + + +
+ ) : ( + + )} +
+
+ ); +} \ No newline at end of file diff --git a/configure/src/lib/config.ts b/configure/src/lib/config.ts new file mode 100644 index 0000000..338d814 --- /dev/null +++ b/configure/src/lib/config.ts @@ -0,0 +1,46 @@ +interface AddonConfig { + rpdbkey?: string; + includeAdult?: boolean; + provideImdbId?: boolean; + tmdbPrefix?: boolean; + language?: string; + sessionId?: string; + catalogs?: Array<{ + id: string; + type: string; + enabled: boolean; + showInHome: boolean; + }>; +} + +export function generateAddonUrl(config: AddonConfig): string { + const baseUrl = 'https://94c8cb9f702d-tmdb-addon.baby-beamup.club'; + + // Criar um novo objeto apenas com os valores necessários + const configToEncode = { + ...config, + // Remove os itens se forem nulos/vazios + rpdbkey: config.rpdbkey || undefined, + sessionId: config.sessionId || undefined, + // Filtra apenas catálogos habilitados + catalogs: config.catalogs?.filter(c => c.enabled).map(({ id, type, showInHome }) => ({ + id, + type, + showInHome + })) || undefined, + // Converte booleanos para strings + includeAdult: config.includeAdult === true ? "true" : undefined, + provideImdbId: config.provideImdbId === true ? "true" : undefined, + tmdbPrefix: config.tmdbPrefix === true ? "true" : undefined + }; + + // Remover propriedades undefined/null + const cleanConfig = Object.fromEntries( + Object.entries(configToEncode).filter(([_, value]) => value !== undefined && value !== null) + ); + + // Converter o objeto em string e codificar para URL + const encodedConfig = encodeURIComponent(JSON.stringify(cleanConfig)); + + return `${baseUrl}/${encodedConfig}/manifest.json`; +} \ No newline at end of file diff --git a/configure/src/lib/utils.ts b/configure/src/lib/utils.ts new file mode 100644 index 0000000..bd0c391 --- /dev/null +++ b/configure/src/lib/utils.ts @@ -0,0 +1,6 @@ +import { clsx, type ClassValue } from "clsx" +import { twMerge } from "tailwind-merge" + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)) +} diff --git a/configure/src/main.tsx b/configure/src/main.tsx new file mode 100644 index 0000000..719464e --- /dev/null +++ b/configure/src/main.tsx @@ -0,0 +1,5 @@ +import { createRoot } from 'react-dom/client' +import App from './App.tsx' +import './index.css' + +createRoot(document.getElementById("root")!).render(); diff --git a/configure/src/pages/Catalogs.tsx b/configure/src/pages/Catalogs.tsx new file mode 100644 index 0000000..c0f25f5 --- /dev/null +++ b/configure/src/pages/Catalogs.tsx @@ -0,0 +1,205 @@ +import { Switch } from "@/components/ui/switch"; +import { Card, CardHeader } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { useEffect } from "react"; +import { useConfig } from "@/contexts/ConfigContext"; +import { integrations } from "@/data/integrations"; +import { baseCatalogs, authCatalogs, streamingCatalogs, type Catalog } from "@/data/catalogs"; +import { type CatalogConfig } from "@/contexts/config"; +import { streamingServices } from "@/data/streamings"; + +const getIntegrationInfo = (catalogId: string) => { + const [integrationId] = catalogId.split("."); + const integration = integrations.find(i => i.id === integrationId); + + return integration || { + id: integrationId, + name: integrationId.toUpperCase(), + icon: "/default.svg", + description: "Unknown integration" + }; +}; + +const CatalogCard = ({ catalog, config, onChange }: { + catalog: Catalog; + config?: { enabled: boolean; showInHome: boolean }; + onChange: (enabled: boolean, showInHome: boolean) => void; +}) => { + const isEnabled = config?.enabled ?? true; + const showInHome = config?.showInHome ?? true; + let integration = getIntegrationInfo(catalog.id); + + if (integration.id === "streaming") { + const streamindId = catalog.id.split(".")[1]; + const foundService = streamingServices.find(s => s.id === streamindId); + + integration = { ...integration, icon: foundService?.icon || integration.icon }; + } + + const handleEnableChange = (checked: boolean) => { + onChange(checked, checked ? showInHome : false); + }; + + const handleShowInHomeChange = (checked: boolean) => { + onChange(isEnabled, checked); + }; + + return ( + + +
+
+

+
+ {`${integration.name} +
+ {catalog.name} + + {catalog.type === "movie" ? "Movie" : "Series"} + +

+
+
+ Enable + + Home + +
+
+
+
+ ); +}; + +const CatalogColumn = ({ + title, + catalogs, + catalogConfigs, + onCatalogChange +}: { + title: string; + catalogs: Catalog[]; + catalogConfigs: Record; + onCatalogChange: (catalogId: string, type: "movie" | "series", enabled: boolean, showInHome: boolean) => void; +}) => ( +
+

{title}

+ {catalogs.map((catalog) => ( + onCatalogChange(catalog.id, catalog.type, enabled, showInHome)} + /> + ))} +
+); + +const Catalogs = () => { + const { sessionId, streaming, catalogs, setCatalogs } = useConfig(); + + // Combina todos os catálogos que devem ser mostrados + const getAllCatalogs = () => { + let allCatalogs = [...baseCatalogs]; + + // Adiciona catálogos que requerem autenticação se houver sessionId + if (sessionId) { + allCatalogs = [...allCatalogs, ...authCatalogs]; + } + + // Adiciona catálogos de streaming selecionados + if (streaming?.length) { + const selectedStreamingCatalogs = streaming.flatMap(serviceId => + streamingCatalogs[serviceId] || [] + ); + allCatalogs = [...allCatalogs, ...selectedStreamingCatalogs]; + } + + return allCatalogs; + }; + + // Converte os catálogos para um objeto de configuração + const catalogConfigs = catalogs.reduce((acc, config) => { + acc[`${config.id}-${config.type}`] = { + enabled: config.enabled, + showInHome: config.showInHome + }; + return acc; + }, {} as Record); + + const handleCatalogChange = (catalogId: string, type: "movie" | "series", enabled: boolean, showInHome: boolean) => { + setCatalogs((prev: CatalogConfig[]) => { + // Remove a configuração anterior se existir + const filtered = prev.filter(c => !(c.id === catalogId && c.type === type)); + + // Adiciona a nova configuração + const newConfig: CatalogConfig = { id: catalogId, type, enabled, showInHome }; + return [...filtered, newConfig]; + }); + }; + + const allCatalogs = getAllCatalogs(); + const movieCatalogs = allCatalogs.filter(catalog => catalog.type === "movie"); + const seriesCatalogs = allCatalogs.filter(catalog => catalog.type === "series"); + + // Inicializa as configurações dos catálogos quando necessário + useEffect(() => { + const allCatalogIds = allCatalogs.map(c => `${c.id}-${c.type}`); + const configuredIds = catalogs.map(c => `${c.id}-${c.type}`); + + // Encontra catálogos que não têm configuração + const unconfigured = allCatalogs.filter(c => + !configuredIds.includes(`${c.id}-${c.type}`) + ); + + if (unconfigured.length > 0) { + // Adiciona configurações padrão para catálogos não configurados + setCatalogs((prev: CatalogConfig[]) => [ + ...prev, + ...unconfigured.map(c => ({ + id: c.id, + type: c.type, + enabled: true, + showInHome: true + } as CatalogConfig)) + ]); + } + }, [allCatalogs.length]); + + return ( +
+
+

Catalogs

+

Manage the catalogs available in the addon.

+
+ +
+ + +
+
+ ); +}; + +export default Catalogs; \ No newline at end of file diff --git a/configure/src/pages/Home.tsx b/configure/src/pages/Home.tsx new file mode 100644 index 0000000..972fb48 --- /dev/null +++ b/configure/src/pages/Home.tsx @@ -0,0 +1,339 @@ +import { useConfig } from "@/contexts/ConfigContext"; +import { KoFiDialog } from "react-kofi"; +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select"; +import { motion } from "framer-motion"; +import { useEffect, useState } from "react"; + +const languages = [ + { value: "ab-AB", label: "Abkhazian" }, + { value: "aa-AA", label: "Afar" }, + { value: "af-AF", label: "Afrikaans" }, + { value: "ak-AK", label: "Akan" }, + { value: "sq-AL", label: "Albanian" }, + { value: "am-AM", label: "Amharic" }, + { value: "ar-SA", label: "Arabic (Saudi Arabia)" }, + { value: "ar-AE", label: "Arabic (UAE)" }, + { value: "an-AN", label: "Aragonese" }, + { value: "hy-HY", label: "Armenian" }, + { value: "as-AS", label: "Assamese" }, + { value: "av-AV", label: "Avaric" }, + { value: "ae-AE", label: "Avestan" }, + { value: "ay-AY", label: "Aymara" }, + { value: "az-AZ", label: "Azerbaijani" }, + { value: "bm-BM", label: "Bambara" }, + { value: "ba-BA", label: "Bashkir" }, + { value: "eu-ES", label: "Basque" }, + { value: "be-BY", label: "Belarusian" }, + { value: "bn-BD", label: "Bengali" }, + { value: "bi-BI", label: "Bislama" }, + { value: "nb-NO", label: "Bokmål" }, + { value: "bs-BS", label: "Bosnian" }, + { value: "br-BR", label: "Breton" }, + { value: "bg-BG", label: "Bulgarian" }, + { value: "my-MY", label: "Burmese" }, + { value: "cn-CN", label: "Cantonese" }, + { value: "ca-ES", label: "Catalan" }, + { value: "km-KM", label: "Central Khmer" }, + { value: "ch-GU", label: "Chamorro" }, + { value: "ce-CE", label: "Chechen" }, + { value: "ny-NY", label: "Chichewa" }, + { value: "zh-CN", label: "Chinese (China)" }, + { value: "zh-HK", label: "Chinese (Hong Kong)" }, + { value: "zh-TW", label: "Chinese (Taiwan)" }, + { value: "cu-CU", label: "Church Slavic" }, + { value: "cv-CV", label: "Chuvash" }, + { value: "kw-KW", label: "Cornish" }, + { value: "co-CO", label: "Corsican" }, + { value: "cr-CR", label: "Cree" }, + { value: "hr-HR", label: "Croatian" }, + { value: "cs-CZ", label: "Czech" }, + { value: "da-DK", label: "Danish" }, + { value: "dv-DV", label: "Divehi" }, + { value: "nl-NL", label: "Dutch" }, + { value: "dz-DZ", label: "Dzongkha" }, + { value: "en-US", label: "English (US)" }, + { value: "en-AU", label: "English (Australia)" }, + { value: "en-CA", label: "English (Canada)" }, + { value: "en-GB", label: "English (UK)" }, + { value: "en-IE", label: "English (Ireland)" }, + { value: "en-NZ", label: "English (New Zealand)" }, + { value: "eo-EO", label: "Esperanto" }, + { value: "et-EE", label: "Estonian" }, + { value: "ee-EE", label: "Ewe" }, + { value: "fo-FO", label: "Faroese" }, + { value: "fj-FJ", label: "Fijian" }, + { value: "fi-FI", label: "Finnish" }, + { value: "fr-FR", label: "French (France)" }, + { value: "fr-CA", label: "French (Canada)" }, + { value: "ff-FF", label: "Fulah" }, + { value: "gd-GD", label: "Gaelic" }, + { value: "gl-ES", label: "Galician" }, + { value: "lg-LG", label: "Ganda" }, + { value: "ka-GE", label: "Georgian" }, + { value: "de-DE", label: "German (Germany)" }, + { value: "de-AT", label: "German (Austria)" }, + { value: "de-CH", label: "German (Switzerland)" }, + { value: "el-GR", label: "Greek" }, + { value: "gn-GN", label: "Guarani" }, + { value: "gu-GU", label: "Gujarati" }, + { value: "ht-HT", label: "Haitian" }, + { value: "ha-HA", label: "Hausa" }, + { value: "he-IL", label: "Hebrew" }, + { value: "hz-HZ", label: "Herero" }, + { value: "hi-IN", label: "Hindi" }, + { value: "ho-HO", label: "Hiri Motu" }, + { value: "hu-HU", label: "Hungarian" }, + { value: "is-IS", label: "Icelandic" }, + { value: "io-IO", label: "Ido" }, + { value: "ig-IG", label: "Igbo" }, + { value: "id-ID", label: "Indonesian" }, + { value: "ia-IA", label: "Interlingua" }, + { value: "ie-IE", label: "Interlingue" }, + { value: "iu-IU", label: "Inuktitut" }, + { value: "ik-IK", label: "Inupiaq" }, + { value: "ga-GA", label: "Irish" }, + { value: "it-IT", label: "Italian" }, + { value: "ja-JP", label: "Japanese" }, + { value: "jv-JV", label: "Javanese" }, + { value: "kl-KL", label: "Kalaallisut" }, + { value: "kn-IN", label: "Kannada" }, + { value: "kr-KR", label: "Kanuri" }, + { value: "ks-KS", label: "Kashmiri" }, + { value: "kk-KZ", label: "Kazakh" }, + { value: "ki-KI", label: "Kikuyu" }, + { value: "rw-RW", label: "Kinyarwanda" }, + { value: "ky-KY", label: "Kirghiz" }, + { value: "kv-KV", label: "Komi" }, + { value: "kg-KG", label: "Kongo" }, + { value: "ko-KR", label: "Korean" }, + { value: "kj-KJ", label: "Kuanyama" }, + { value: "ku-KU", label: "Kurdish" }, + { value: "lo-LO", label: "Lao" }, + { value: "la-LA", label: "Latin" }, + { value: "lv-LV", label: "Latvian" }, + { value: "li-LI", label: "Limburgan" }, + { value: "ln-LN", label: "Lingala" }, + { value: "lt-LT", label: "Lithuanian" }, + { value: "lu-LU", label: "Luba-Katanga" }, + { value: "lb-LB", label: "Luxembourgish" }, + { value: "mk-MK", label: "Macedonian" }, + { value: "mg-MG", label: "Malagasy" }, + { value: "ms-MY", label: "Malay (Malaysia)" }, + { value: "ms-SG", label: "Malay (Singapore)" }, + { value: "ml-IN", label: "Malayalam" }, + { value: "mt-MT", label: "Maltese" }, + { value: "gv-GV", label: "Manx" }, + { value: "mi-MI", label: "Maori" }, + { value: "mr-MR", label: "Marathi" }, + { value: "mh-MH", label: "Marshallese" }, + { value: "mo-MO", label: "Moldavian" }, + { value: "mn-MN", label: "Mongolian" }, + { value: "na-NA", label: "Nauru" }, + { value: "nv-NV", label: "Navajo" }, + { value: "nd-ND", label: "North Ndebele" }, + { value: "nr-NR", label: "South Ndebele" }, + { value: "ng-NG", label: "Ndonga" }, + { value: "ne-NE", label: "Nepali" }, + { value: "se-SE", label: "Northern Sami" }, + { value: "no-NO", label: "Norwegian" }, + { value: "nn-NN", label: "Norwegian Nynorsk" }, + { value: "oc-OC", label: "Occitan" }, + { value: "oj-OJ", label: "Ojibwa" }, + { value: "or-OR", label: "Oriya" }, + { value: "om-OM", label: "Oromo" }, + { value: "os-OS", label: "Ossetian" }, + { value: "pi-PI", label: "Pali" }, + { value: "pa-PA", label: "Panjabi" }, + { value: "fa-IR", label: "Persian" }, + { value: "pl-PL", label: "Polish" }, + { value: "pt-PT", label: "Portuguese (Portugal)" }, + { value: "pt-BR", label: "Portuguese (Brazil)" }, + { value: "ps-PS", label: "Pushto" }, + { value: "qu-QU", label: "Quechua" }, + { value: "ro-RO", label: "Romanian" }, + { value: "rm-RM", label: "Romansh" }, + { value: "rn-RN", label: "Rundi" }, + { value: "ru-RU", label: "Russian" }, + { value: "sm-SM", label: "Samoan" }, + { value: "sg-SG", label: "Sango" }, + { value: "sa-SA", label: "Sanskrit" }, + { value: "sc-SC", label: "Sardinian" }, + { value: "sr-RS", label: "Serbian" }, + { value: "sh-SH", label: "Serbo-Croatian" }, + { value: "sn-SN", label: "Shona" }, + { value: "ii-II", label: "Sichuan Yi" }, + { value: "sd-SD", label: "Sindhi" }, + { value: "si-LK", label: "Sinhala" }, + { value: "sk-SK", label: "Slovak" }, + { value: "sl-SI", label: "Slovenian" }, + { value: "so-SO", label: "Somali" }, + { value: "st-ST", label: "Sotho" }, + { value: "es-ES", label: "Spanish (Spain)" }, + { value: "es-MX", label: "Spanish (Mexico)" }, + { value: "su-SU", label: "Sundanese" }, + { value: "sw-SW", label: "Swahili" }, + { value: "ss-SS", label: "Swati" }, + { value: "sv-SE", label: "Swedish" }, + { value: "tl-PH", label: "Tagalog" }, + { value: "ty-TY", label: "Tahitian" }, + { value: "tg-TG", label: "Tajik" }, + { value: "ta-IN", label: "Tamil" }, + { value: "tt-TT", label: "Tatar" }, + { value: "te-IN", label: "Telugu" }, + { value: "th-TH", label: "Thai" }, + { value: "bo-BO", label: "Tibetan" }, + { value: "ti-TI", label: "Tigrinya" }, + { value: "to-TO", label: "Tonga" }, + { value: "ts-TS", label: "Tsonga" }, + { value: "tn-TN", label: "Tswana" }, + { value: "tr-TR", label: "Turkish" }, + { value: "tk-TK", label: "Turkmen" }, + { value: "tw-TW", label: "Twi" }, + { value: "ug-UG", label: "Uighur" }, + { value: "uk-UA", label: "Ukrainian" }, + { value: "ur-UR", label: "Urdu" }, + { value: "uz-UZ", label: "Uzbek" }, + { value: "ve-VE", label: "Venda" }, + { value: "vi-VN", label: "Vietnamese" }, + { value: "vo-VO", label: "Volapük" }, + { value: "wa-WA", label: "Walloon" }, + { value: "cy-CY", label: "Welsh" }, + { value: "fy-FY", label: "Western Frisian" }, + { value: "wo-WO", label: "Wolof" }, + { value: "xh-XH", label: "Xhosa" }, + { value: "yi-YI", label: "Yiddish" }, + { value: "yo-YO", label: "Yoruba" }, + { value: "za-ZA", label: "Zhuang" }, + { value: "zu-ZA", label: "Zulu" } +]; + +interface Movie { + imdb_id: string; + name: string; + description: string; + background: string; +} + +export default function Home() { + const { language, setLanguage } = useConfig(); + const [backgroundUrl, setBackgroundUrl] = useState(""); + + useEffect(() => { + const fetchPopularMovies = async () => { + try { + const response = await fetch('https://cinemeta-catalogs.strem.io/top/catalog/movie/top.json'); + const data = await response.json(); + + const moviesWithId = data.metas.filter(movie => movie.imdb_id); + + if (moviesWithId.length > 0) { + const randomIndex = Math.floor(Math.random() * moviesWithId.length); + const randomMovie = moviesWithId[randomIndex]; + + const highQualityImageUrl = `https://images.metahub.space/background/medium/${randomMovie.imdb_id}/img`; + setBackgroundUrl(highQualityImageUrl); + } + } catch (error) { + console.error('Error fetching popular movies:', error); + setBackgroundUrl('https://images.metahub.space/background/medium/tt0816692/img'); + } + }; + + fetchPopularMovies(); + }, []); + + return ( +
+
+
+
+
+ +
+ + TMDB Logo + +

+ The Movie Database Addon +

+ +

+ Explore a vast catalog of movies and TV shows with metadata provided by TMDB. + Version 3.1.2 +

+ +
+
+ +
+ + +
+ +
+
+

Movies

+

+ Access detailed information about thousands of movies, including synopses, + cast, ratings, and much more. +

+
+
+

TV Shows

+

+ Explore TV series, seasons, episodes, and stay up to date + with your favorite shows. +

+
+
+
+
+
+ ); +} \ No newline at end of file diff --git a/configure/src/pages/Integrations.tsx b/configure/src/pages/Integrations.tsx new file mode 100644 index 0000000..04828a0 --- /dev/null +++ b/configure/src/pages/Integrations.tsx @@ -0,0 +1,22 @@ +import { IntegrationCard } from "@/components/IntegrationCard"; +import { integrations } from "@/data/integrations"; + +const Integrations = () => { + return ( +
+
+ {integrations.map((integration) => ( + + ))} +
+
+ ); +}; + +export default Integrations; \ No newline at end of file diff --git a/configure/src/pages/NotFound.tsx b/configure/src/pages/NotFound.tsx new file mode 100644 index 0000000..cda36da --- /dev/null +++ b/configure/src/pages/NotFound.tsx @@ -0,0 +1,27 @@ +import { useLocation } from "react-router-dom"; +import { useEffect } from "react"; + +const NotFound = () => { + const location = useLocation(); + + useEffect(() => { + console.error( + "404 Error: User attempted to access non-existent route:", + location.pathname + ); + }, [location.pathname]); + + return ( +
+
+

404

+

Oops! Page not found

+ + Return to Home + +
+
+ ); +}; + +export default NotFound; diff --git a/configure/src/pages/Others.tsx b/configure/src/pages/Others.tsx new file mode 100644 index 0000000..5b75e9e --- /dev/null +++ b/configure/src/pages/Others.tsx @@ -0,0 +1,64 @@ +import { Card } from "@/components/ui/card"; +import { Switch } from "@/components/ui/switch"; +import { useConfig } from "@/contexts/ConfigContext"; + +const Others = () => { + const { includeAdult, setIncludeAdult } = useConfig(); + const { provideImdbId, setProvideImdbId } = useConfig(); + const { tmdbPrefix, setTmdbPrefix } = useConfig(); + + return ( +
+
+

Addon Settings

+

+ Customize the addon settings to suit your needs. +

+
+
+ +
+

Enable adult content

+

+ Include adult content in search results. +

+
+ setIncludeAdult(!includeAdult)} + /> +
+ +
+

+ Provide IMDB metadata +

+

+ Include IMDB IDs in metadata for better integration with other addons. +

+
+ setProvideImdbId(!provideImdbId)} + /> +
+ +
+

+ Use TMDB prefix +

+

+ Add "TMDB -" prefix to all catalog names for better organization. +

+
+ setTmdbPrefix(!tmdbPrefix)} + /> +
+
+
+ ); +}; + +export default Others; diff --git a/configure/src/styles/kofi-dialog.css b/configure/src/styles/kofi-dialog.css new file mode 100644 index 0000000..8d5a676 --- /dev/null +++ b/configure/src/styles/kofi-dialog.css @@ -0,0 +1,4 @@ +/* Estilo para o dialog do Ko-fi */ +[role="dialog"]:has(#kofiframe) { + height: 95vh !important; +} \ No newline at end of file diff --git a/configure/src/vite-env.d.ts b/configure/src/vite-env.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/configure/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..e67846f --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,29 @@ +import js from "@eslint/js"; +import globals from "globals"; +import reactHooks from "eslint-plugin-react-hooks"; +import reactRefresh from "eslint-plugin-react-refresh"; +import tseslint from "typescript-eslint"; + +export default tseslint.config( + { ignores: ["dist"] }, + { + extends: [js.configs.recommended, ...tseslint.configs.recommended], + files: ["**/*.{ts,tsx}"], + languageOptions: { + ecmaVersion: 2020, + globals: globals.browser, + }, + plugins: { + "react-hooks": reactHooks, + "react-refresh": reactRefresh, + }, + rules: { + ...reactHooks.configs.recommended.rules, + "react-refresh/only-export-components": [ + "warn", + { allowConstantExport: true }, + ], + "@typescript-eslint/no-unused-vars": "off", + }, + } +); diff --git a/index.html b/index.html new file mode 100644 index 0000000..5c89b47 --- /dev/null +++ b/index.html @@ -0,0 +1,18 @@ + + + + + + The Movie Database Addon - Stremio Addon + + + + + + + +
+ + + + diff --git a/now.json b/now.json deleted file mode 100644 index 94edfe5..0000000 --- a/now.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "version": 2, - "builds": [{ "src": "server.js", "use": "@now/node" }], - "routes": [{ "src": "/.*", "dest": "/server.js" }] -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 6026306..e0501d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,32 +1,2715 @@ { "name": "tmdb-addon", - "version": "3.1.1", - "lockfileVersion": 2, + "version": "3.1.2", + "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "tmdb-addon", - "version": "3.1.1", - "license": "Apache-2.0", + "name": "vite_react_shadcn_ts", + "version": "0.0.0", "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-scroll-area": "^1.1.0", + "@radix-ui/react-select": "^2.1.1", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-switch": "^1.1.0", + "@radix-ui/react-toast": "^1.2.1", + "@radix-ui/react-tooltip": "^1.1.4", + "@tanstack/react-query": "^5.56.2", + "axios": "^1.7.9", "cache-manager": "^3.6.3", "cache-manager-mongodb": "^0.3.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", "dotenv": "^16.4.5", "express": "^4.18.2", "fanart.tv-api": "^2.0.1", + "framer-motion": "^12.0.6", + "lucide-react": "^0.462.0", "moviedb-promise": "^4.0.7", + "next-themes": "^0.3.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-kofi": "^0.0.2", + "react-router-dom": "^6.26.2", + "sonner": "^1.5.0", + "tailwind-merge": "^2.5.2", "transliteration": "^2.3.5", "url-exists": "^1.0.3" }, "devDependencies": { - "nodemon": "^3.1.4" + "@eslint/js": "^9.9.0", + "@tailwindcss/typography": "^0.5.15", + "@types/node": "^22.5.5", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.4", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.9.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "lovable-tagger": "^1.0.19", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.11", + "typescript": "^5.5.3", + "typescript-eslint": "^8.0.1", + "vite": "^5.4.1" } }, - "node_modules/abbrev": { + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.5.tgz", + "integrity": "sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.7.tgz", + "integrity": "sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/helper-compilation-targets": "^7.26.5", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.7", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.26.7", + "@babel/types": "^7.26.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/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/@babel/generator": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.5.tgz", + "integrity": "sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.26.5", + "@babel/types": "^7.26.5", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz", + "integrity": "sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.26.5", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/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/@babel/helper-module-imports": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.26.5", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz", + "integrity": "sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.7.tgz", + "integrity": "sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==", + "dev": true, + "dependencies": { + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.7.tgz", + "integrity": "sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==", + "dev": true, + "dependencies": { + "@babel/types": "^7.26.7" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.25.9.tgz", + "integrity": "sha512-y8quW6p0WHkEhmErnfe58r7x0A70uKphQm8Sp8cV7tjNQwK56sNVK0M73LK3WuYmsuyrftut4xAkjjgU0twaMg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.25.9.tgz", + "integrity": "sha512-+iqjT8xmXhhYv4/uiYd8FNQsraMFZIfxVSqxxVSZP0WbbSAWvBXAul0m/zu+7Vv4O/3WtApy9pmaTMiumEZgfg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.7.tgz", + "integrity": "sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.5", + "@babel/parser": "^7.26.7", + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.26.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.7.tgz", + "integrity": "sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bufbuild/protobuf": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.2.3.tgz", + "integrity": "sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==", + "dev": true, + "optional": true, + "peer": true + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "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, + "license": "MIT", + "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/eslint-utils/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.1.tgz", + "integrity": "sha512-m4DVN9ZqskZoLU5GlWZadwDnYo3vAEydiUayB9widCl9ffWx2IvPnp6n3on5rJmziJSw9Bv+Z3ChDVdMwXCY8Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.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": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.13.0.tgz", + "integrity": "sha512-IFLyoY4d72Z5y/6o/BazFBezupzI/taV8sGumxTAVw3lXG9A6md1Dc34T9s1FoD/an9pJH8RHbAxsaEbBed9lA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.3.tgz", + "integrity": "sha512-2b/g5hRmpbb1o4GnTZax9N9m0FXzz9OV42ZzI4rDDMDuHUqigAiQCEWChBWCY4ztAGVRjoWT19v0yMmc5/L5kA==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.8", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.8.tgz", + "integrity": "sha512-7XJ9cPU+yI2QeLS+FCSlqNFZJq8arvswefkZrYI1yQBbftw6FyrZOxYSh+9S7z7TpeWlRt9zJ5IhM1WIL334jA==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.11", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.11.tgz", + "integrity": "sha512-qkMCxSR24v2vGkhYDo/UzxfJN3D4syqSjyuTFz6C7XcpU1pASPRieNI0Kj5VP3/503mOfYiGY891ugBX1GlABQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.6.0", + "@floating-ui/utils": "^0.2.8" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.1.2.tgz", + "integrity": "sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==", + "license": "MIT", + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.8.tgz", + "integrity": "sha512-kym7SodPp8/wloecOpcmSnWJsK7M0E5Wg8UcFA+uO4B9s5d0ywXOEro/8HM9x0rW+TljRzul/14UYz3TleT3ig==", + "license": "MIT" + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.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, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@radix-ui/number": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/number/-/number-1.1.0.tgz", + "integrity": "sha512-V3gRzhVNU1ldS5XhAPTom1fOIo4ccrjjJgmE+LI2h/WaFpHmx0MQApT+KZHnx8abG6Avtfcz4WoEciMnpFT3HQ==", + "license": "MIT" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "license": "MIT" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", + "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", + "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.1.tgz", + "integrity": "sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", + "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.1.0.tgz", + "integrity": "sha512-BUuBvgThEiAXh2DWu93XsT+a3aWrGqolGlqqw5VU1kG7p/ZH2cuDlM1sRLNnY3QcBS69UIz2mcKhMxDsdewhjg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", + "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-escape-keydown": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.1.1.tgz", + "integrity": "sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", + "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-icons": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-icons/-/react-icons-1.3.2.tgz", + "integrity": "sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==", + "peerDependencies": { + "react": "^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc" + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.1.0.tgz", + "integrity": "sha512-EJUrI8yYh7WOjNOqpoJaf1jlFIH2LvtgAl+YcFqNCa+4hj64ZXmPkAKOFs/ukjz3byN6bdb/AVUqHkI8/uWWMA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-label": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-label/-/react-label-2.1.0.tgz", + "integrity": "sha512-peLblDlFw/ngk3UWq0VnYaOLy6agTZZ+MUO/WhVfm14vJGML+xH4FAl2XQGLqdefjNb7ApRg6Yn7U42ZhmYXdw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", + "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "license": "MIT", + "dependencies": { + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.0", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-rect": "1.1.0", + "@radix-ui/react-use-size": "1.1.0", + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", + "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", + "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", + "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", + "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-scroll-area": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-scroll-area/-/react-scroll-area-1.2.0.tgz", + "integrity": "sha512-q2jMBdsJ9zB7QG6ngQNzNwlvxLQqONyL58QbEGwuyRZZb/ARQwk3uQVbCF7GvQVOtV6EU/pDxAw3zRzJZI3rpQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-select": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-select/-/react-select-2.1.2.tgz", + "integrity": "sha512-rZJtWmorC7dFRi0owDmoijm6nSJH1tVw64QGiNIZ9PNLyBDtG+iAq+XGsya052At4BfarzY/Dhv9wrrUr6IMZA==", + "license": "MIT", + "dependencies": { + "@radix-ui/number": "1.1.0", + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-direction": "1.1.0", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-focus-guards": "1.1.1", + "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.6.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", + "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-compose-refs": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-switch": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-switch/-/react-switch-1.1.1.tgz", + "integrity": "sha512-diPqDDoBcZPSicYoMWdWx+bCPuTRH4QSp9J+65IvtdS0Kuzt67bI6n32vCj8q6NZmYW/ah+2orOtMwcX5eQwIg==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-previous": "1.1.0", + "@radix-ui/react-use-size": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-toast": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-toast/-/react-toast-1.2.2.tgz", + "integrity": "sha512-Z6pqSzmAP/bFJoqMAston4eSNa+ud44NSZTiZUmUen+IOZ5nBY8kzuU5WDBVyFXPtcW6yUalOHsxM/BP6Sv8ww==", + "license": "MIT", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-collection": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-use-callback-ref": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-use-layout-effect": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-tooltip": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz", + "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==", + "dependencies": { + "@radix-ui/primitive": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-id": "1.1.0", + "@radix-ui/react-popper": "1.2.0", + "@radix-ui/react-portal": "1.1.2", + "@radix-ui/react-presence": "1.1.1", + "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-use-controllable-state": "1.1.0", + "@radix-ui/react-visually-hidden": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.1.0.tgz", + "integrity": "sha512-CasTfvsy+frcFkbXtSJ2Zu9JHpN8TYKxkgJGWbjiZhFivxaeW7rMeZt7QELGVLaYVfFMsKHjb7Ak0nMEe+2Vfw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.1.0.tgz", + "integrity": "sha512-MtfMVJiSr2NjzS0Aa90NPTnvTSg6C/JLCV7ma0W6+OMV78vd8OyRpID+Ng9LxzsPbLeuBnWBA1Nq30AtBIDChw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.1.0.tgz", + "integrity": "sha512-L7vwWlR1kTTQ3oh7g1O0CBF3YCyyTj8NmhLR+phShpyA50HCfBFKVJTpshm9PzLiKmehsrQzTYTpX9HvmC9rhw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-callback-ref": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.1.0.tgz", + "integrity": "sha512-+FPE0rOdziWSrH9athwI1R0HDVbWlEhd+FR+aSDk4uWGmSJ9Z54sdZVDQPZAinJhJXwfT+qnj969mCsT2gfm5w==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-previous": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-previous/-/react-use-previous-1.1.0.tgz", + "integrity": "sha512-Z/e78qg2YFnnXcW88A4JmTtm4ADckLno6F7OXotmkQfeuCVaKuYzqAATPhVzl3delXE7CxIV8shofPn3jPc5Og==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.1.0.tgz", + "integrity": "sha512-0Fmkebhr6PiseyZlYAOtLS+nb7jLmpqTrJyv61Pe68MKYW6OWdRE2kI70TaYY27u7H0lajqM3hSMMLFq18Z7nQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/rect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.1.0.tgz", + "integrity": "sha512-XW3/vWuIXHa+2Uwcc2ABSfcCledmXhhQPlGbfcRXbiUQI5Icjcg19BGCZVKKInYbvUCut/ufbbLLPFC5cbb1hw==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-use-layout-effect": "1.1.0" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-visually-hidden": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", + "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.1.0.tgz", + "integrity": "sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==", + "license": "MIT" + }, + "node_modules/@remix-run/router": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/@remix-run/router/-/router-1.20.0.tgz", + "integrity": "sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", + "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", + "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", + "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", + "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", + "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", + "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", + "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", + "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", + "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", + "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", + "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", + "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", + "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", + "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", + "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", + "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@swc/core": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.7.39.tgz", + "integrity": "sha512-jns6VFeOT49uoTKLWIEfiQqJAlyqldNAt80kAr8f7a5YjX0zgnG3RBiLMpksx4Ka4SlK4O6TJ/lumIM3Trp82g==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3", + "@swc/types": "^0.1.13" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/swc" + }, + "optionalDependencies": { + "@swc/core-darwin-arm64": "1.7.39", + "@swc/core-darwin-x64": "1.7.39", + "@swc/core-linux-arm-gnueabihf": "1.7.39", + "@swc/core-linux-arm64-gnu": "1.7.39", + "@swc/core-linux-arm64-musl": "1.7.39", + "@swc/core-linux-x64-gnu": "1.7.39", + "@swc/core-linux-x64-musl": "1.7.39", + "@swc/core-win32-arm64-msvc": "1.7.39", + "@swc/core-win32-ia32-msvc": "1.7.39", + "@swc/core-win32-x64-msvc": "1.7.39" + }, + "peerDependencies": { + "@swc/helpers": "*" + }, + "peerDependenciesMeta": { + "@swc/helpers": { + "optional": true + } + } + }, + "node_modules/@swc/core-darwin-arm64": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.7.39.tgz", + "integrity": "sha512-o2nbEL6scMBMCTvY9OnbyVXtepLuNbdblV9oNJEFia5v5eGj9WMrnRQiylH3Wp/G2NYkW7V1/ZVW+kfvIeYe9A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-darwin-x64": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.7.39.tgz", + "integrity": "sha512-qMlv3XPgtPi/Fe11VhiPDHSLiYYk2dFYl747oGsHZPq+6tIdDQjIhijXPcsUHIXYDyG7lNpODPL8cP/X1sc9MA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm-gnueabihf": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.7.39.tgz", + "integrity": "sha512-NP+JIkBs1ZKnpa3Lk2W1kBJMwHfNOxCUJXuTa2ckjFsuZ8OUu2gwdeLFkTHbR43dxGwH5UzSmuGocXeMowra/Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-gnu": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.7.39.tgz", + "integrity": "sha512-cPc+/HehyHyHcvAsk3ML/9wYcpWVIWax3YBaA+ScecJpSE04l/oBHPfdqKUPslqZ+Gcw0OWnIBGJT/fBZW2ayw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-arm64-musl": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.7.39.tgz", + "integrity": "sha512-8RxgBC6ubFem66bk9XJ0vclu3exJ6eD7x7CwDhp5AD/tulZslTYXM7oNPjEtje3xxabXuj/bEUMNvHZhQRFdqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-gnu": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.7.39.tgz", + "integrity": "sha512-3gtCPEJuXLQEolo9xsXtuPDocmXQx12vewEyFFSMSjOfakuPOBmOQMa0sVL8Wwius8C1eZVeD1fgk0omMqeC+Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-linux-x64-musl": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.7.39.tgz", + "integrity": "sha512-mg39pW5x/eqqpZDdtjZJxrUvQNSvJF4O8wCl37fbuFUqOtXs4TxsjZ0aolt876HXxxhsQl7rS+N4KioEMSgTZw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-arm64-msvc": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.7.39.tgz", + "integrity": "sha512-NZwuS0mNJowH3e9bMttr7B1fB8bW5svW/yyySigv9qmV5VcQRNz1kMlCvrCLYRsa93JnARuiaBI6FazSeG8mpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-ia32-msvc": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.7.39.tgz", + "integrity": "sha512-qFmvv5UExbJPXhhvCVDBnjK5Duqxr048dlVB6ZCgGzbRxuarOlawCzzLK4N172230pzlAWGLgn9CWl3+N6zfHA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/core-win32-x64-msvc": { + "version": "1.7.39", + "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.7.39.tgz", + "integrity": "sha512-o+5IMqgOtj9+BEOp16atTfBgCogVak9svhBpwsbcJQp67bQbxGYhAPPDW/hZ2rpSSF7UdzbY9wudoX9G4trcuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=10" + } + }, + "node_modules/@swc/counter": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", + "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", + "dev": true, + "license": "Apache-2.0" + }, + "node_modules/@swc/types": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.13.tgz", + "integrity": "sha512-JL7eeCk6zWCbiYQg2xQSdLXQJl8Qoc9rXmG2cEKvHe3CKwMHwHGpfOb8frzNLmbycOo6I51qxnLnn9ESf4I20Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@swc/counter": "^0.1.3" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.15", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.15.tgz", + "integrity": "sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==", + "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 || >=4.0.0-alpha.20" + } + }, + "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/@tanstack/query-core": { + "version": "5.59.16", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.59.16.tgz", + "integrity": "sha512-crHn+G3ltqb5JG0oUv6q+PMz1m1YkjpASrXTU+sYWW9pLk0t2GybUHNRqYPZWhxgjPaVGC4yp92gSFEJgYEsPw==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + } + }, + "node_modules/@tanstack/react-query": { + "version": "5.59.16", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.59.16.tgz", + "integrity": "sha512-MuyWheG47h6ERd4PKQ6V8gDyBu3ThNG22e1fRVwvq6ap3EqsFhyuxCAwhNP/03m/mLg+DAb0upgbPaX6VB+CkQ==", + "license": "MIT", + "dependencies": { + "@tanstack/query-core": "5.59.16" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/tannerlinsley" + }, + "peerDependencies": { + "react": "^18 || ^19" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "22.7.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.7.9.tgz", + "integrity": "sha512-jrTfRC7FM6nChvU7X2KqcrgquofrWLFDeYC1hKfwNWomVvrn7JIksqf344WN2X/y8xrgqBd2dJATZV4GbatBfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.2" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.13", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.13.tgz", + "integrity": "sha512-hCZTSvwbzWGvhqxp/RqVqwU999pBf2vp7hzIjiYOsl8wqOmUxkQ6ddw1cV3l8811+kdUFus/q4d1Y3E3SyEifA==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "18.3.12", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.12.tgz", + "integrity": "sha512-D2wOSq/d6Agt28q7rSI3jhU7G6aiuzljDGZ2hTZHIkrTLUI+AF3WMeKkEZ9nN2fkBAlcktT6vcZjDFiIhMYEQw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/prop-types": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.11.0.tgz", + "integrity": "sha512-KhGn2LjW1PJT2A/GfDpiyOfS4a8xHQv2myUagTM5+zsormOmBlYsnQ6pobJ8XxJmh6hnHwa2Mbe3fPrDJoDhbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/type-utils": "8.11.0", + "@typescript-eslint/utils": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.11.0.tgz", + "integrity": "sha512-lmt73NeHdy1Q/2ul295Qy3uninSqi6wQI18XwSpm8w0ZbQXUpjCAWP1Vlv/obudoBiIjJVjlztjQ+d/Md98Yxg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.11.0.tgz", + "integrity": "sha512-Uholz7tWhXmA4r6epo+vaeV7yjdKy5QFCERMjs1kMVsLRKIrSdM6o21W2He9ftp5PP6aWOVpD5zvrvuHZC0bMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.11.0.tgz", + "integrity": "sha512-ItiMfJS6pQU0NIKAaybBKkuVzo6IdnAhPFZA/2Mba/uBjuPQPet/8+zh5GtLHwmuFRShZx+8lhIs7/QeDHflOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.11.0", + "@typescript-eslint/utils": "8.11.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.11.0.tgz", + "integrity": "sha512-tn6sNMHf6EBAYMvmPUaKaVeYvhUsrE6x+bXQTxjQRp360h1giATU0WvgeEys1spbvb5R+VpNOZ+XJmjD8wOUHw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.11.0.tgz", + "integrity": "sha512-yHC3s1z1RCHoCz5t06gf7jH24rr3vns08XXhfEqzYpd6Hll3z/3g23JRi0jM8A47UFKNc3u/y5KIMx8Ynbjohg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/visitor-keys": "8.11.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.11.0.tgz", + "integrity": "sha512-CYiX6WZcbXNJV7UNB4PLDIBtSdRmRI/nb0FMyqHPTQD1rMjA0foPLaPUV39C/MxkTd/QKSeX+Gb34PPsDVC35g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.11.0", + "@typescript-eslint/types": "8.11.0", + "@typescript-eslint/typescript-estree": "8.11.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.11.0.tgz", + "integrity": "sha512-EaewX6lxSjRJnc+99+dqzTeoDZUfyrA52d2/HRrkI830kgovWsmIiTfmr0NZorzqic7ga+1bS60lRBUgR3n/Bw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.11.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/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, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.3.4.tgz", + "integrity": "sha512-SCCPBJtYLdE8PX/7ZQAs1QAZ8Jqwih+0VBLum1EGqmCCQal+MIUqLCzj3ZUy8ufbC0cAM4LRlSTm7IQJwWT4ug==", + "dev": true, + "dependencies": { + "@babel/core": "^7.26.0", + "@babel/plugin-transform-react-jsx-self": "^7.25.9", + "@babel/plugin-transform-react-jsx-source": "^7.25.9", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.14.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0" + } + }, + "node_modules/@vitejs/plugin-react-swc": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-3.7.1.tgz", + "integrity": "sha512-vgWOY0i1EROUK0Ctg1hwhtC3SdcDjZcdit4Ups4aPkDcB1jYhmo+RMYWY87cmXMhvtD5uf8lV89j2w16vkdSVg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@swc/core": "^1.7.26" + }, + "peerDependencies": { + "vite": "^4 || ^5" + } }, "node_modules/accepts": { "version": "1.3.8", @@ -40,10 +2723,34 @@ "node": ">= 0.6" } }, + "node_modules/acorn": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.13.0.tgz", + "integrity": "sha512-8zSiw54Oxrdym50NlZ9sUusyO1Z1ZchgRLWRaK6c86XJFClyCgFKetdowBg5bKxyp/u+CDBJG4Mpp0m3HLZl9w==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT", + "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==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -56,17 +2763,23 @@ } }, "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==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "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==", + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -77,11 +2790,19 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "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, + "license": "MIT" + }, + "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, + "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -90,10 +2811,36 @@ "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, + "license": "MIT" + }, + "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, + "license": "Python-2.0" + }, + "node_modules/aria-hidden": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.4.tgz", + "integrity": "sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/asn1": { "version": "0.2.6", @@ -112,15 +2859,53 @@ } }, "node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", + "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" }, + "node_modules/autoprefixer": { + "version": "10.4.20", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.20.tgz", + "integrity": "sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "browserslist": "^4.23.3", + "caniuse-lite": "^1.0.30001646", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.1", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", @@ -130,38 +2915,26 @@ } }, "node_modules/aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz", + "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==" }, "node_modules/axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", + "version": "1.7.9", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.9.tgz", + "integrity": "sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "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 + "dev": true, + "license": "MIT" }, "node_modules/bcrypt-pbkdf": { "version": "1.0.2", @@ -172,12 +2945,16 @@ } }, "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==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/bl": { @@ -189,10 +2966,15 @@ "safe-buffer": "^5.1.1" } }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -202,7 +2984,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -212,11 +2994,25 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, "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, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -227,6 +3023,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, + "license": "MIT", "dependencies": { "fill-range": "^7.1.1" }, @@ -234,6 +3031,39 @@ "node": ">=8" } }, + "node_modules/browserslist": { + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, "node_modules/bson": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", @@ -242,6 +3072,14 @@ "node": ">=0.6.19" } }, + "node_modules/buffer-builder": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/buffer-builder/-/buffer-builder-0.2.0.tgz", + "integrity": "sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -262,14 +3100,20 @@ }, "node_modules/cache-manager-mongodb": { "version": "0.3.0", - "resolved": "git+ssh://git@github.com/openrm/node-cache-manager-mongodb.git#7fac8e64793ca99490aaad031948a620e02f7621", - "license": "MIT", + "resolved": "https://registry.npmjs.org/cache-manager-mongodb/-/cache-manager-mongodb-0.3.0.tgz", + "integrity": "sha512-r+piWvu8XD8ceBWflZBEQZKemksoaL1V5zSHWyviVTXiGBSVQAf18b4S1v5UwGZMJnrMk8YNFgpBlugF0nuhvg==", "dependencies": { + "bluebird": "^3.5.3", "cache-manager": "^2.9.0", "lodash": "^4.17.15", "mongodb": "^3.6.3" } }, + "node_modules/cache-manager-mongodb/node_modules/async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" + }, "node_modules/cache-manager-mongodb/node_modules/cache-manager": { "version": "2.11.1", "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", @@ -283,27 +3127,52 @@ "node_modules/cache-manager-mongodb/node_modules/lru-cache": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", - "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", + "integrity": "sha512-WKhDkjlLwzE8jAQdQlsxLUQTPXLCKX/4cJk6s5AlRtJkDBk0IKH5O51bVDH61K9N4bhbbyvLM6EiOuE8ovApPA==", "dependencies": { "pseudomap": "^1.0.1", "yallist": "^2.0.0" } }, - "node_modules/cache-manager/node_modules/async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" + "node_modules/cache-manager-mongodb/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" }, - "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "node_modules/cache-manager/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==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cache-manager/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", "dependencies": { - "es-define-property": "^1.0.0", "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -312,22 +3181,75 @@ "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001669", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "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, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], + "license": "MIT", + "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/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "license": "MIT", "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -340,10 +3262,37 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/class-variance-authority": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/class-variance-authority/-/class-variance-authority-0.7.1.tgz", + "integrity": "sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==", + "dependencies": { + "clsx": "^2.1.1" + }, + "funding": { + "url": "https://polar.sh/cva" + } + }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -357,10 +3306,73 @@ "node": ">=12" } }, + "node_modules/cliui/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==", + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/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==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "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==", + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -371,7 +3383,16 @@ "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==" + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colorjs.io": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/colorjs.io/-/colorjs.io-0.5.2.tgz", + "integrity": "sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==", + "dev": true, + "optional": true, + "peer": true }, "node_modules/combined-stream": { "version": "1.0.8", @@ -384,11 +3405,22 @@ "node": ">= 0.8" } }, + "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, + "license": "MIT", + "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 + "dev": true, + "license": "MIT" }, "node_modules/content-disposition": { "version": "0.5.4", @@ -401,25 +3433,6 @@ "node": ">= 0.6" } }, - "node_modules/content-disposition/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==", - "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/content-type": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", @@ -428,10 +3441,16 @@ "node": ">= 0.6" } }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -439,12 +3458,46 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "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, + "license": "MIT", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", + "devOptional": true, + "license": "MIT" }, "node_modules/dashdash": { "version": "1.14.1", @@ -458,11 +3511,21 @@ } }, "node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.0.0" + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, "node_modules/decompress-response": { @@ -476,21 +3539,12 @@ "node": ">=4" } }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } + "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, + "license": "MIT" }, "node_modules/delayed-stream": { "version": "1.0.0", @@ -501,9 +3555,9 @@ } }, "node_modules/denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz", + "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==", "engines": { "node": ">=0.10" } @@ -525,10 +3579,30 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==", + "license": "MIT" + }, + "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, + "license": "Apache-2.0" + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true, + "license": "MIT" + }, "node_modules/dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", "engines": { "node": ">=12" }, @@ -536,11 +3610,31 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer3": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -555,26 +3649,32 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, + "node_modules/electron-to-chromium": { + "version": "1.5.45", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.45.tgz", + "integrity": "sha512-vOzZS6uZwhhbkZbcRyiy99Wg+pYFV5hk+5YaECvx0+Z31NR3Tt5zS6dze2OepT6PCTzVzT0dIJItti+uAW5zmw==", + "dev": true, + "license": "ISC" + }, "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "engines": { "node": ">= 0.4" } @@ -587,10 +3687,61 @@ "node": ">= 0.4" } }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -600,6 +3751,207 @@ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, + "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, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.13.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.13.0.tgz", + "integrity": "sha512-EYZK6SX6zjFHST/HRytOdA/zE72Cq/bfw45LSyuwrdvcclb/gqV8RRQxywOBEWO2+WDpva6UZa4CcDeJKzUCFA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.13.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "5.1.0-rc-fb9a90fa48-20240614", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.1.0-rc-fb9a90fa48-20240614.tgz", + "integrity": "sha512-xsiRwaDNF5wWNC4ZHLut+x/YcAxksUd9Rizt7LaEn3bV8VyYRpXnRJQlLOfYaVy9esk4DFP4zPPnoNVjq5Gc0w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" + } + }, + "node_modules/eslint-plugin-react-refresh": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.14.tgz", + "integrity": "sha512-aXvzCTK7ZBv1e7fahFuR3Z/fyQQSIQ711yPgYRj+Oj64tyTgO4iQIDmYXDBqvSWQ/FA4OSCsXOStlF+noU0/NA==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "eslint": ">=7" + } + }, + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "dev": true, + "license": "BSD-3-Clause", + "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, + "license": "BSD-2-Clause", + "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, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "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, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -609,36 +3961,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", + "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -647,26 +3999,24 @@ }, "engines": { "node": ">= 0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, - "node_modules/express/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==", - "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/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/extend": { "version": "3.0.2", @@ -701,26 +4051,84 @@ "ms": "^2.1.1" } }, - "node_modules/fanart.tv-api/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, "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==" + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "license": "MIT", + "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, + "license": "ISC", + "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==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" + }, + "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, + "license": "MIT" + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -729,12 +4137,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -745,6 +4153,57 @@ "node": ">= 0.8" } }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "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, + "license": "MIT", + "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": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true, + "license": "ISC" + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -764,6 +4223,23 @@ } } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -773,16 +4249,16 @@ } }, "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", + "integrity": "sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/forwarded": { @@ -793,6 +4269,46 @@ "node": ">= 0.6" } }, + "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, + "license": "MIT", + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/framer-motion": { + "version": "12.0.6", + "resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.0.6.tgz", + "integrity": "sha512-LmrXbXF6Vv5WCNmb+O/zn891VPZrH7XbsZgRLBROw6kFiP+iTK49gxTv2Ur3F0Tbw6+sy9BVtSqnWfMUpH+6nA==", + "dependencies": { + "motion-dom": "^12.0.0", + "motion-utils": "^12.0.0", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "@emotion/is-prop-valid": "*", + "react": "^18.0.0 || ^19.0.0", + "react-dom": "^18.0.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "@emotion/is-prop-valid": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + } + } + }, "node_modules/fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -802,11 +4318,12 @@ } }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "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, + "license": "MIT", "optional": true, "os": [ "darwin" @@ -819,10 +4336,20 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -832,15 +4359,20 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", + "integrity": "sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.0", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -849,6 +4381,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", @@ -865,24 +4418,85 @@ "assert-plus": "^1.0.0" } }, - "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==", + "node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, + "license": "ISC", "dependencies": { - "is-glob": "^4.0.1" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "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, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" }, "engines": { - "node": ">= 6" + "node": ">=10.13.0" + } + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "15.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "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==", - "dependencies": { - "get-intrinsic": "^1.1.3" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -912,6 +4526,13 @@ "node": ">=4" } }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -934,34 +4555,13 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/has-symbol-support-x": { @@ -973,9 +4573,9 @@ } }, "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==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "engines": { "node": ">= 0.4" }, @@ -998,6 +4598,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", "dependencies": { "function-bind": "^1.1.2" }, @@ -1045,17 +4646,65 @@ "node": ">=0.10.0" } }, - "node_modules/ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.0.3.tgz", + "integrity": "sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==", + "dev": true, + "optional": true, + "peer": true + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, "node_modules/ipaddr.js": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", @@ -1069,6 +4718,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, + "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" }, @@ -1076,11 +4726,28 @@ "node": ">=8" } }, + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1089,6 +4756,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", "engines": { "node": ">=8" } @@ -1098,6 +4766,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -1110,6 +4779,7 @@ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -1154,7 +4824,14 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" }, "node_modules/isstream": { "version": "0.1.2", @@ -1173,11 +4850,75 @@ "node": ">= 4" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jiti": { + "version": "1.21.6", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.6.tgz", + "integrity": "sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==", + "dev": true, + "license": "MIT", + "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==", + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "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, + "license": "MIT" + }, "node_modules/json-schema": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", @@ -1186,13 +4927,33 @@ "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==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" + }, + "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, + "license": "MIT" }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/jsprim": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", @@ -1207,15 +4968,119 @@ "node": ">=0.6.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, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" }, + "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.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "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, + "license": "MIT" + }, + "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==", + "license": "MIT", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lovable-tagger": { + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/lovable-tagger/-/lovable-tagger-1.0.19.tgz", + "integrity": "sha512-G2Oa2QItJ8X+7hMQcdWL3r4faKBE5DU/aQZEwpVJyVfOs/4gBi4ScGhqVxm7abRrMHj7pf7h+8VQfxBLTiLbLQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.8", + "estree-walker": "^3.0.3", + "magic-string": "^0.30.12" + }, + "peerDependencies": { + "vite": "^5.0.0" + } }, "node_modules/lowercase-keys": { "version": "1.0.1", @@ -1226,20 +5091,37 @@ } }, "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==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/lucide-react": { + "version": "0.462.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.462.0.tgz", + "integrity": "sha512-NTL7EbAao9IFtuSivSZgrAh4fZd09Lr+6MTkqIxuHaH2nnYiYIzXPo06cOxHg9wKLdj6LL8TByG4qpePqwgx/g==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" } }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/magic-string": { + "version": "0.30.12", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", + "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } }, "node_modules/media-typer": { "version": "0.3.0", @@ -1256,18 +5138,45 @@ "optional": true }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 8" + } }, "node_modules/methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "engines": { "node": ">= 0.6" } }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -1311,6 +5220,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -1318,10 +5228,20 @@ "node": "*" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/mongodb": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", - "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz", + "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==", "dependencies": { "bl": "^2.2.1", "bson": "^1.1.4", @@ -1356,6 +5276,19 @@ } } }, + "node_modules/motion-dom": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.0.0.tgz", + "integrity": "sha512-CvYd15OeIR6kHgMdonCc1ihsaUG4MYh/wrkz8gZ3hBX/uamyZCXN9S9qJoYF03GqfTt7thTV/dxnHYX4+55vDg==", + "dependencies": { + "motion-utils": "^12.0.0" + } + }, + "node_modules/motion-utils": { + "version": "12.0.0", + "resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.0.0.tgz", + "integrity": "sha512-MNFiBKbbqnmvOjkPyOKgHUp3Q6oiokLkI1bEwm5QA28cxMZrv0CbbBGDNmhF6DIXsi1pCQBSs0dX8xjeER1tmA==" + }, "node_modules/moviedb-promise": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/moviedb-promise/-/moviedb-promise-4.0.7.tgz", @@ -1367,9 +5300,48 @@ } }, "node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "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, + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "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, + "license": "MIT" }, "node_modules/negotiator": { "version": "0.6.3", @@ -1379,77 +5351,39 @@ "node": ">= 0.6" } }, - "node_modules/nodemon": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", - "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "bin": { - "nodemon": "bin/nodemon.js" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/nodemon" + "node_modules/next-themes": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/next-themes/-/next-themes-0.3.0.tgz", + "integrity": "sha512-/QHIrsYpd6Kfk7xakK4svpDI5mmXP0gfvCoJdGpZQ2TOrQZmsW0QxjaiLn8wbIKjtm4BTSqLoix4lxYYOnLJ/w==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8 || ^17 || ^18", + "react-dom": "^16.8 || ^17 || ^18" } }, - "node_modules/nodemon/node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true, - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/nodemon/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": "*" - } + "license": "MIT" }, "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, + "license": "MIT", + "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, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -1462,10 +5396,30 @@ "node": "*" } }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, "node_modules/object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.3.tgz", + "integrity": "sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==", "engines": { "node": ">= 0.4" }, @@ -1495,6 +5449,24 @@ "node": ">=4" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-cancelable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", @@ -1511,6 +5483,38 @@ "node": ">=4" } }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-timeout": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", @@ -1522,6 +5526,26 @@ "node": ">=4" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "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, + "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -1530,21 +5554,73 @@ "node": ">= 0.8" } }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT" + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", + "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==" }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=8.6" }, @@ -1552,6 +5628,199 @@ "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", + "dev": true, + "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" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", + "integrity": "sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz", + "integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "postcss-selector-parser": "^6.1.1" + }, + "engines": { + "node": ">=12.0" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz", + "integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==", + "dev": true, + "license": "MIT", + "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, + "license": "MIT" + }, + "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, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/prepend-http": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", @@ -1590,33 +5859,34 @@ "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" }, "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "node_modules/pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz", + "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==", + "dependencies": { + "punycode": "^2.3.1" + }, + "funding": { + "url": "https://github.com/sponsors/lupomontero" + } }, "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "license": "MIT", "engines": { "node": ">=6" } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -1625,6 +5895,27 @@ "url": "https://github.com/sponsors/ljharb" } }, + "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" + } + ], + "license": "MIT" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -1647,10 +5938,169 @@ "node": ">= 0.8" } }, + "node_modules/react": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.2" + }, + "peerDependencies": { + "react": "^18.3.1" + } + }, + "node_modules/react-kofi": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/react-kofi/-/react-kofi-0.0.2.tgz", + "integrity": "sha512-grQpvipfR6zjoCsKJR/Q5WiHmjPiE4JC7fkVKtdXorZ+icyDxDlwHCAYKxuU8iDFEhxvq4W49hw1MoJyTOKQ9Q==", + "dependencies": { + "@radix-ui/react-dialog": "^1.1.1", + "@radix-ui/react-icons": "^1.3.0" + }, + "peerDependencies": { + "react": "^18.3.1", + "react-dom": "^18.3.1" + } + }, + "node_modules/react-refresh": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz", + "integrity": "sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-remove-scroll": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", + "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "license": "MIT", + "dependencies": { + "react-remove-scroll-bar": "^2.3.6", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "license": "MIT", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-router": { + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.27.0.tgz", + "integrity": "sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.20.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/react-router-dom": { + "version": "6.27.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.27.0.tgz", + "integrity": "sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==", + "license": "MIT", + "dependencies": { + "@remix-run/router": "1.20.0", + "react-router": "6.27.0" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "react": ">=16.8", + "react-dom": ">=16.8" + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "license": "MIT", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "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, + "license": "MIT", + "dependencies": { + "pify": "^2.3.0" + } + }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dependencies": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -1661,11 +6111,17 @@ "util-deprecate": "~1.0.1" } }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, + "license": "MIT", "dependencies": { "picomatch": "^2.2.1" }, @@ -1704,6 +6160,19 @@ "node": ">= 6" } }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, "node_modules/request/node_modules/qs": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", @@ -1728,10 +6197,134 @@ "node": ">=0.10.0" } }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "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, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.24.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", + "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.6" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.24.0", + "@rollup/rollup-android-arm64": "4.24.0", + "@rollup/rollup-darwin-arm64": "4.24.0", + "@rollup/rollup-darwin-x64": "4.24.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", + "@rollup/rollup-linux-arm-musleabihf": "4.24.0", + "@rollup/rollup-linux-arm64-gnu": "4.24.0", + "@rollup/rollup-linux-arm64-musl": "4.24.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", + "@rollup/rollup-linux-riscv64-gnu": "4.24.0", + "@rollup/rollup-linux-s390x-gnu": "4.24.0", + "@rollup/rollup-linux-x64-gnu": "4.24.0", + "@rollup/rollup-linux-x64-musl": "4.24.0", + "@rollup/rollup-win32-arm64-msvc": "4.24.0", + "@rollup/rollup-win32-ia32-msvc": "4.24.0", + "@rollup/rollup-win32-x64-msvc": "4.24.0", + "fsevents": "~2.3.2" + } + }, + "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" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "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/safer-buffer": { "version": "2.1.2", @@ -1750,14 +6343,424 @@ "node": ">=6" } }, - "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==", + "node_modules/sass-embedded": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded/-/sass-embedded-1.83.4.tgz", + "integrity": "sha512-Hf2burRA/y5PGxsg6jB9UpoK/xZ6g/pgrkOcdl6j+rRg1Zj8XhGKZ1MTysZGtTPUUmiiErqzkP5+Kzp95yv9GQ==", "dev": true, + "optional": true, + "peer": true, "dependencies": { - "lru-cache": "^6.0.0" + "@bufbuild/protobuf": "^2.0.0", + "buffer-builder": "^0.2.0", + "colorjs.io": "^0.5.0", + "immutable": "^5.0.2", + "rxjs": "^7.4.0", + "supports-color": "^8.1.1", + "sync-child-process": "^1.0.2", + "varint": "^6.0.0" }, + "bin": { + "sass": "dist/bin/sass.js" + }, + "engines": { + "node": ">=16.0.0" + }, + "optionalDependencies": { + "sass-embedded-android-arm": "1.83.4", + "sass-embedded-android-arm64": "1.83.4", + "sass-embedded-android-ia32": "1.83.4", + "sass-embedded-android-riscv64": "1.83.4", + "sass-embedded-android-x64": "1.83.4", + "sass-embedded-darwin-arm64": "1.83.4", + "sass-embedded-darwin-x64": "1.83.4", + "sass-embedded-linux-arm": "1.83.4", + "sass-embedded-linux-arm64": "1.83.4", + "sass-embedded-linux-ia32": "1.83.4", + "sass-embedded-linux-musl-arm": "1.83.4", + "sass-embedded-linux-musl-arm64": "1.83.4", + "sass-embedded-linux-musl-ia32": "1.83.4", + "sass-embedded-linux-musl-riscv64": "1.83.4", + "sass-embedded-linux-musl-x64": "1.83.4", + "sass-embedded-linux-riscv64": "1.83.4", + "sass-embedded-linux-x64": "1.83.4", + "sass-embedded-win32-arm64": "1.83.4", + "sass-embedded-win32-ia32": "1.83.4", + "sass-embedded-win32-x64": "1.83.4" + } + }, + "node_modules/sass-embedded-android-arm": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm/-/sass-embedded-android-arm-1.83.4.tgz", + "integrity": "sha512-9Z4pJAOgEkXa3VDY/o+U6l5XvV0mZTJcSl0l/mSPHihjAHSpLYnOW6+KOWeM8dxqrsqTYcd6COzhanI/a++5Gw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-arm64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-android-arm64/-/sass-embedded-android-arm64-1.83.4.tgz", + "integrity": "sha512-tgX4FzmbVqnQmD67ZxQDvI+qFNABrboOQgwsG05E5bA/US42zGajW9AxpECJYiMXVOHmg+d81ICbjb0fsVHskw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-ia32": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-android-ia32/-/sass-embedded-android-ia32-1.83.4.tgz", + "integrity": "sha512-RsFOziFqPcfZXdFRULC4Ayzy9aK6R6FwQ411broCjlOBX+b0gurjRadkue3cfUEUR5mmy0KeCbp7zVKPLTK+5Q==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-riscv64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-android-riscv64/-/sass-embedded-android-riscv64-1.83.4.tgz", + "integrity": "sha512-EHwh0nmQarBBrMRU928eTZkFGx19k/XW2YwbPR4gBVdWLkbTgCA5aGe8hTE6/1zStyx++3nDGvTZ78+b/VvvLg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-android-x64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-android-x64/-/sass-embedded-android-x64-1.83.4.tgz", + "integrity": "sha512-0PgQNuPWYy1jEOEPDVsV89KfqOsMLIp9CSbjBY7jRcwRhyVAcigqrUG6bDeNtojHUYKA1kU+Eh/85WxOHUOgBw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-arm64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-arm64/-/sass-embedded-darwin-arm64-1.83.4.tgz", + "integrity": "sha512-rp2ywymWc3nymnSnAFG5R/8hvxWCsuhK3wOnD10IDlmNB7o4rzKby1c+2ZfpQGowlYGWsWWTgz8FW2qzmZsQRw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-darwin-x64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-darwin-x64/-/sass-embedded-darwin-x64-1.83.4.tgz", + "integrity": "sha512-kLkN2lXz9PCgGfDS8Ev5YVcl/V2173L6379en/CaFuJJi7WiyPgBymW7hOmfCt4uO4R1y7CP2Uc08DRtZsBlAA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm/-/sass-embedded-linux-arm-1.83.4.tgz", + "integrity": "sha512-nL90ryxX2lNmFucr9jYUyHHx21AoAgdCL1O5Ltx2rKg2xTdytAGHYo2MT5S0LIeKLa/yKP/hjuSvrbICYNDvtA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-arm64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-arm64/-/sass-embedded-linux-arm64-1.83.4.tgz", + "integrity": "sha512-E0zjsZX2HgESwyqw31EHtI39DKa7RgK7nvIhIRco1d0QEw227WnoR9pjH3M/ZQy4gQj3GKilOFHM5Krs/omeIA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-ia32": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-ia32/-/sass-embedded-linux-ia32-1.83.4.tgz", + "integrity": "sha512-ew5HpchSzgAYbQoriRh8QhlWn5Kw2nQ2jHoV9YLwGKe3fwwOWA0KDedssvDv7FWnY/FCqXyymhLd6Bxae4Xquw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm/-/sass-embedded-linux-musl-arm-1.83.4.tgz", + "integrity": "sha512-0RrJRwMrmm+gG0VOB5b5Cjs7Sd+lhqpQJa6EJNEaZHljJokEfpE5GejZsGMRMIQLxEvVphZnnxl6sonCGFE/QQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-arm64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-arm64/-/sass-embedded-linux-musl-arm64-1.83.4.tgz", + "integrity": "sha512-IzMgalf6MZOxgp4AVCgsaWAFDP/IVWOrgVXxkyhw29fyAEoSWBJH4k87wyPhEtxSuzVHLxKNbc8k3UzdWmlBFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-ia32": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-ia32/-/sass-embedded-linux-musl-ia32-1.83.4.tgz", + "integrity": "sha512-LLb4lYbcxPzX4UaJymYXC+WwokxUlfTJEFUv5VF0OTuSsHAGNRs/rslPtzVBTvMeG9TtlOQDhku1F7G6iaDotA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-riscv64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-riscv64/-/sass-embedded-linux-musl-riscv64-1.83.4.tgz", + "integrity": "sha512-zoKlPzD5Z13HKin1UGR74QkEy+kZEk2AkGX5RelRG494mi+IWwRuWCppXIovor9+BQb9eDWPYPoMVahwN5F7VA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-musl-x64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-musl-x64/-/sass-embedded-linux-musl-x64-1.83.4.tgz", + "integrity": "sha512-hB8+/PYhfEf2zTIcidO5Bpof9trK6WJjZ4T8g2MrxQh8REVtdPcgIkoxczRynqybf9+fbqbUwzXtiUao2GV+vQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-riscv64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-riscv64/-/sass-embedded-linux-riscv64-1.83.4.tgz", + "integrity": "sha512-83fL4n+oeDJ0Y4KjASmZ9jHS1Vl9ESVQYHMhJE0i4xDi/P3BNarm2rsKljq/QtrwGpbqwn8ujzOu7DsNCMDSHA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-linux-x64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-linux-x64/-/sass-embedded-linux-x64-1.83.4.tgz", + "integrity": "sha512-NlnGdvCmTD5PK+LKXlK3sAuxOgbRIEoZfnHvxd157imCm/s2SYF/R28D0DAAjEViyI8DovIWghgbcqwuertXsA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-arm64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-arm64/-/sass-embedded-win32-arm64-1.83.4.tgz", + "integrity": "sha512-J2BFKrEaeSrVazU2qTjyQdAk+MvbzJeTuCET0uAJEXSKtvQ3AzxvzndS7LqkDPbF32eXAHLw8GVpwcBwKbB3Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-ia32": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-ia32/-/sass-embedded-win32-ia32-1.83.4.tgz", + "integrity": "sha512-uPAe9T/5sANFhJS5dcfAOhOJy8/l2TRYG4r+UO3Wp4yhqbN7bggPvY9c7zMYS0OC8tU/bCvfYUDFHYMCl91FgA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded-win32-x64": { + "version": "1.83.4", + "resolved": "https://registry.npmjs.org/sass-embedded-win32-x64/-/sass-embedded-win32-x64-1.83.4.tgz", + "integrity": "sha512-C9fkDY0jKITdJFij4UbfPFswxoXN9O/Dr79v17fJnstVwtUojzVJWKHUXvF0Zg2LIR7TCc4ju3adejKFxj7ueA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "peer": true, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/sass-embedded/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/scheduler": { + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -1766,9 +6769,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -1788,55 +6791,79 @@ "node": ">= 0.8.0" } }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, - "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -1845,31 +6872,102 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", "dependencies": { - "semver": "^7.5.3" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" }, "engines": { - "node": ">=10" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/sonner": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.5.0.tgz", + "integrity": "sha512-FBjhG/gnnbN6FY0jaNnqZOMmB73R+5IiyYAw8yBj7L54ER7HB3fOSE5OFiQiE2iXWxeXKvg6fIP4LtVppHEdJA==", + "license": "MIT", + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" } }, "node_modules/sparse-bitfield": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", + "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==", "optional": true, "dependencies": { "memory-pager": "^1.0.2" } }, "node_modules/sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz", + "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==", "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -1906,10 +7004,36 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -1919,10 +7043,29 @@ "node": ">=8" } }, - "node_modules/strip-ansi": { + "node_modules/string-width-cjs/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/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, + "license": "MIT", "dependencies": { "ansi-regex": "^5.0.1" }, @@ -1930,16 +7073,209 @@ "node": ">=8" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "ansi-regex": "^6.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "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, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "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": ">=16 || 14 >=14.17" + } + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sync-child-process": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", + "integrity": "sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==", + "dev": true, + "optional": true, + "peer": true, + "dependencies": { + "sync-message-port": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/sync-message-port": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sync-message-port/-/sync-message-port-1.1.3.tgz", + "integrity": "sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==", + "dev": true, + "optional": true, + "peer": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/tailwind-merge": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/tailwind-merge/-/tailwind-merge-2.5.4.tgz", + "integrity": "sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/dcastil" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.14", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.14.tgz", + "integrity": "sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==", + "dev": true, + "license": "MIT", + "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.21.0", + "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/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, + "license": "MIT" + }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" } }, "node_modules/timed-out": { @@ -1955,6 +7291,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -1970,18 +7307,6 @@ "node": ">=0.6" } }, - "node_modules/touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "dependencies": { - "nopt": "~1.0.10" - }, - "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, "node_modules/tough-cookie": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", @@ -2009,6 +7334,32 @@ "node": ">=6.0.0" } }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "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, + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", + "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==", + "license": "0BSD" + }, "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", @@ -2025,6 +7376,19 @@ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, + "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, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -2037,11 +7401,50 @@ "node": ">= 0.6" } }, - "node_modules/undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true + "node_modules/typescript": { + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.11.0.tgz", + "integrity": "sha512-cBRGnW3FSlxaYwU8KfAewxFK5uzeOAp0l2KebIlPDOT5olVi65KDG/yjBooPBG0kGW/HLkoz1c/iuBFehcS3IA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.11.0", + "@typescript-eslint/parser": "8.11.0", + "@typescript-eslint/utils": "8.11.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "dev": true, + "license": "MIT" }, "node_modules/unpipe": { "version": "1.0.0", @@ -2051,10 +7454,42 @@ "node": ">= 0.8" } }, + "node_modules/update-browserslist-db": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", + "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" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.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==", + "license": "BSD-2-Clause", "dependencies": { "punycode": "^2.1.0" } @@ -2086,15 +7521,59 @@ "node": ">= 4" } }, + "node_modules/use-callback-ref": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", + "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "license": "MIT", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" }, "node_modules/utils-merge": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "engines": { "node": ">= 0.4.0" } @@ -2108,10 +7587,18 @@ "uuid": "bin/uuid" } }, + "node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==", + "dev": true, + "optional": true, + "peer": true + }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "engines": { "node": ">= 0.8" } @@ -2129,10 +7616,122 @@ "extsprintf": "^1.2.0" } }, + "node_modules/verror/node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/vite": { + "version": "5.4.10", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.10.tgz", + "integrity": "sha512-1hvaPshuPUtxeQ0hsVH3Mud0ZanOLwVTneA1EgbAM5LhaZEqyPWGRQ7BtaMvUrTDeEaC8pxtj6a6jku3x4z6SQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.43", + "rollup": "^4.20.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "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, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -2145,6 +7744,64 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, + "node_modules/wrap-ansi-cjs/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, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -2154,9 +7811,23 @@ } }, "node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", + "dev": true, + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } }, "node_modules/yargs": { "version": "17.7.2", @@ -2182,1616 +7853,56 @@ "engines": { "node": ">=12" } - } - }, - "dependencies": { - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-regex": { + "node_modules/yargs/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==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" } }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" - }, - "asn1": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==" - }, - "aws4": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz", - "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==" - }, - "axios": { - "version": "1.7.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.7.tgz", - "integrity": "sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q==", - "requires": { - "follow-redirects": "^1.15.6", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - }, - "dependencies": { - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - } - } - }, - "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 - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "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 - }, - "bl": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", - "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", - "requires": { - "readable-stream": "^2.3.5", - "safe-buffer": "^5.1.1" - } - }, - "body-parser": { - "version": "1.20.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.5", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.11.0", - "raw-body": "2.5.2", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - } - }, - "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, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "requires": { - "fill-range": "^7.1.1" - } - }, - "bson": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz", - "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==" - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "cache-manager": { - "version": "3.6.3", - "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-3.6.3.tgz", - "integrity": "sha512-dS4DnV6c6cQcVH5OxzIU1XZaACXwvVIiUPkFytnRmLOACuBGv3GQgRQ1RJGRRw4/9DF14ZK2RFlZu1TUgDniMg==", - "requires": { - "async": "3.2.3", - "lodash.clonedeep": "^4.5.0", - "lru-cache": "6.0.0" - }, - "dependencies": { - "async": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.3.tgz", - "integrity": "sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==" - } - } - }, - "cache-manager-mongodb": { - "version": "git+ssh://git@github.com/openrm/node-cache-manager-mongodb.git#7fac8e64793ca99490aaad031948a620e02f7621", - "from": "cache-manager-mongodb@^0.3.0", - "requires": { - "cache-manager": "^2.9.0", - "lodash": "^4.17.15", - "mongodb": "^3.6.3" - }, - "dependencies": { - "cache-manager": { - "version": "2.11.1", - "resolved": "https://registry.npmjs.org/cache-manager/-/cache-manager-2.11.1.tgz", - "integrity": "sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow==", - "requires": { - "async": "1.5.2", - "lodash.clonedeep": "4.5.0", - "lru-cache": "4.0.0" - } - }, - "lru-cache": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.0.tgz", - "integrity": "sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg=", - "requires": { - "pseudomap": "^1.0.1", - "yallist": "^2.0.0" - } - } - } - }, - "call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.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" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "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==", - "requires": { - "color-name": "~1.1.4" - } - }, - "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==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - }, - "dependencies": { - "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==" - } - } - }, - "content-type": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", - "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" - }, - "cookie": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "requires": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - } - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "denque": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.0.tgz", - "integrity": "sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "dotenv": { - "version": "16.4.5", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", - "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==" - }, - "duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", - "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "emoji-regex": { + "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", - "requires": { - "get-intrinsic": "^1.2.4" - } - }, - "es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" - }, - "escalade": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "express": { - "version": "4.19.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.2", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.6.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.11.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "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==" - } - } - }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" - }, - "fanart.tv-api": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fanart.tv-api/-/fanart.tv-api-2.0.1.tgz", - "integrity": "sha512-Qok9cJqGhGKnW6VO8r0cgaX7o9Wf0Q80l8kmb4K0xjBzHoa9AdXHHwNbpNH+VNh+w2mc7y8Rq1Eo44TNSWdCeQ==", - "requires": { - "debug": "^3.1.0", - "got": "^7.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "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==" - }, - "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==" - }, - "fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - } - }, - "follow-redirects": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", - "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==" - }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==" - }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", - "requires": { - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==" - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", - "requires": { - "assert-plus": "^1.0.0" - } - }, - "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, - "requires": { - "is-glob": "^4.0.1" - } - }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "requires": { - "get-intrinsic": "^1.1.3" - } - }, - "got": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", - "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", - "requires": { - "decompress-response": "^3.2.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "is-plain-obj": "^1.1.0", - "is-retry-allowed": "^1.0.0", - "is-stream": "^1.0.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "p-cancelable": "^0.3.0", - "p-timeout": "^1.1.1", - "safe-buffer": "^5.0.1", - "timed-out": "^4.0.0", - "url-parse-lax": "^1.0.0", - "url-to-options": "^1.0.1" - } - }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==" - }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "requires": { - "es-define-property": "^1.0.0" - } - }, - "has-proto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", - "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==" - }, - "has-symbol-support-x": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", - "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-to-string-tag-x": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", - "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", - "requires": { - "has-symbol-support-x": "^1.4.1" - } - }, - "hasown": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", - "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", - "requires": { - "function-bind": "^1.1.2" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==", - "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "ignore-by-default": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", - "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", - "dev": true - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "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, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "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, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "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 - }, - "is-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", - "integrity": "sha512-2rRIahhZr2UWb45fIOuvZGpFtz0TyOZLf32KxBbSoUCeZR495zCKlWUKKUByk3geS2eAs7ZAABt0Y/Rx0GiQGA==" - }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==" - }, - "is-retry-allowed": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", - "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==" - }, - "is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==" - }, - "isurl": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", - "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", - "requires": { - "has-to-string-tag-x": "^1.2.0", - "is-object": "^1.0.1" - } - }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" - }, - "json-schema": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", - "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" - }, - "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==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "jsprim": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz", - "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==", - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.4.0", - "verror": "1.10.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "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==", - "requires": { - "yallist": "^4.0.0" - }, - "dependencies": { - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - } - } - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "memory-pager": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz", - "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==", - "optional": true - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "mongodb": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.3.tgz", - "integrity": "sha512-Psm+g3/wHXhjBEktkxXsFMZvd3nemI0r3IPsE0bU+4//PnvNWKkzhZcEsbPcYiWqe8XqXJJEg4Tgtr7Raw67Yw==", - "requires": { - "bl": "^2.2.1", - "bson": "^1.1.4", - "denque": "^1.4.1", - "optional-require": "^1.1.8", - "safe-buffer": "^5.1.2", - "saslprep": "^1.0.0" - } - }, - "moviedb-promise": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/moviedb-promise/-/moviedb-promise-4.0.7.tgz", - "integrity": "sha512-BS5EemEcI9cmAG8vmpbmdhPoIHHDv/Ycjq4dikWmer9/4WvQm45r5UibDNuj8ZdsE9q0CObCPlZXbD7uOBHFOQ==", - "requires": { - "axios": "^1.4.0", - "lodash": "^4.17.21", - "promise-throttle": "^1.1.2" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "nodemon": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-3.1.4.tgz", - "integrity": "sha512-wjPBbFhtpJwmIeY2yP7QF+UKzPfltVGtfce1g/bB15/8vCGZj8uxD62b/b9M9/WVgme0NZudpownKN+c0plXlQ==", - "dev": true, - "requires": { - "chokidar": "^3.5.2", - "debug": "^4", - "ignore-by-default": "^1.0.1", - "minimatch": "^3.1.2", - "pstree.remy": "^1.1.8", - "semver": "^7.5.3", - "simple-update-notifier": "^2.0.0", - "supports-color": "^5.5.0", - "touch": "^3.1.0", - "undefsafe": "^2.0.5" - }, - "dependencies": { - "debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", - "dev": true, - "requires": { - "ms": "^2.1.3" - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true - } - } - }, - "nopt": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", - "dev": true, - "requires": { - "abbrev": "1" - } - }, - "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 - }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" - }, - "object-inspect": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz", - "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==" - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "optional-require": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.8.tgz", - "integrity": "sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==", - "requires": { - "require-at": "^1.0.6" - } - }, - "p-cancelable": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", - "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==" - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==" - }, - "p-timeout": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", - "integrity": "sha512-gb0ryzr+K2qFqFv6qi3khoeqMZF/+ajxQipEF6NteZVnvz9tzdsfAVj3lYtn1gAXvH5lfLwfxEII799gt/mRIA==", - "requires": { - "p-finally": "^1.0.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" - }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==" - }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "promise-throttle": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/promise-throttle/-/promise-throttle-1.1.2.tgz", - "integrity": "sha512-dij7vjyXNewuuN/gyr+TX2KRjw48mbV5FEtgyXaIoJjGYAKT0au23/voNvy9eS4UNJjx2KUdEcO5Yyfc1h7vWQ==" - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" - }, - "psl": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, - "pstree.remy": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", - "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", - "dev": true - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==" - }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "dependencies": { - "qs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz", - "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==" - } - } - }, - "require-at": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz", - "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "saslprep": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz", - "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==", - "optional": true, - "requires": { - "sparse-bitfield": "^3.0.3" - } - }, - "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, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "requires": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", - "requires": { - "call-bind": "^1.0.7", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" - } - }, - "simple-update-notifier": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", - "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", - "dev": true, - "requires": { - "semver": "^7.5.3" - } - }, - "sparse-bitfield": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz", - "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=", - "optional": true, - "requires": { - "memory-pager": "^1.0.2" - } - }, - "sshpk": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", - "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", - "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - } - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - }, - "string-width": { + "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { + "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" } }, - "strip-ansi": { + "node_modules/yargs/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==", - "requires": { + "dependencies": { "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "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, - "requires": { - "has-flag": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } - }, - "timed-out": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", - "integrity": "sha512-G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==" - }, - "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, - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "touch": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", - "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", - "dev": true, - "requires": { - "nopt": "~1.0.10" - } - }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - }, - "transliteration": { - "version": "2.3.5", - "resolved": "https://registry.npmjs.org/transliteration/-/transliteration-2.3.5.tgz", - "integrity": "sha512-HAGI4Lq4Q9dZ3Utu2phaWgtm3vB6PkLUFqWAScg/UW+1eZ/Tg6Exo4oC0/3VUol/w4BlefLhUUSVBr/9/ZGQOw==", - "requires": { - "yargs": "^17.5.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "undefsafe": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", - "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "requires": { - "punycode": "^2.1.0" - } - }, - "url-exists": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/url-exists/-/url-exists-1.0.3.tgz", - "integrity": "sha512-oN3lNUMLfIR4tI9ByLtfLThGhFeYWCjWw5lfat/2PLZRA6U/v7wzKb0SbCjhZcEHGYHqi05c2JTVmeMzIAxapw==", - "requires": { - "request": "^2.69.0" - } - }, - "url-parse-lax": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", - "integrity": "sha512-BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==", - "requires": { - "prepend-http": "^1.0.1" - } - }, - "url-to-options": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", - "integrity": "sha512-0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" - }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" - }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", - "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" - }, - "yargs": { - "version": "17.7.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" } } } diff --git a/package.json b/package.json index 218ee0f..6b32c37 100644 --- a/package.json +++ b/package.json @@ -1,22 +1,7 @@ { "name": "tmdb-addon", - "version": "3.1.1", + "version": "3.1.2", "description": "Metadata provided by TMDB", - "main": "server.js", - "dependencies": { - "cache-manager": "^3.6.3", - "cache-manager-mongodb": "^0.3.0", - "dotenv": "^16.4.5", - "express": "^4.18.2", - "fanart.tv-api": "^2.0.1", - "moviedb-promise": "^4.0.7", - "transliteration": "^2.3.5", - "url-exists": "^1.0.3" - }, - "scripts": { - "dev": "nodemon server.js", - "start": "node server.js" - }, "repository": { "type": "git", "url": "git+https://github.com/mrcanelas/tmdb-addon" @@ -32,7 +17,63 @@ "url": "https://github.com/mrcanelas/tmdb-addon/issues" }, "homepage": "https://github.com/mrcanelas/tmdb-addon#readme", + "scripts": { + "dev": "vite", + "build": "vite build", + "build:dev": "vite build --mode development", + "lint": "eslint .", + "preview": "vite preview", + "start": "node addon/server.js" + }, + "dependencies": { + "@radix-ui/react-dialog": "^1.1.2", + "@radix-ui/react-label": "^2.1.0", + "@radix-ui/react-scroll-area": "^1.1.0", + "@radix-ui/react-select": "^2.1.1", + "@radix-ui/react-slot": "^1.1.0", + "@radix-ui/react-switch": "^1.1.0", + "@radix-ui/react-toast": "^1.2.1", + "@radix-ui/react-tooltip": "^1.1.4", + "@tanstack/react-query": "^5.56.2", + "axios": "^1.7.9", + "cache-manager": "^3.6.3", + "cache-manager-mongodb": "^0.3.0", + "class-variance-authority": "^0.7.1", + "clsx": "^2.1.1", + "dotenv": "^16.4.5", + "express": "^4.18.2", + "fanart.tv-api": "^2.0.1", + "framer-motion": "^12.0.6", + "lucide-react": "^0.462.0", + "moviedb-promise": "^4.0.7", + "next-themes": "^0.3.0", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-kofi": "^0.0.2", + "react-router-dom": "^6.26.2", + "sonner": "^1.5.0", + "tailwind-merge": "^2.5.2", + "transliteration": "^2.3.5", + "url-exists": "^1.0.3" + }, "devDependencies": { - "nodemon": "^3.1.4" + "@eslint/js": "^9.9.0", + "@tailwindcss/typography": "^0.5.15", + "@types/node": "^22.5.5", + "@types/react": "^18.3.3", + "@types/react-dom": "^18.3.0", + "@vitejs/plugin-react": "^4.3.4", + "@vitejs/plugin-react-swc": "^3.5.0", + "autoprefixer": "^10.4.20", + "eslint": "^9.9.0", + "eslint-plugin-react-hooks": "^5.1.0-rc.0", + "eslint-plugin-react-refresh": "^0.4.9", + "globals": "^15.9.0", + "lovable-tagger": "^1.0.19", + "postcss": "^8.4.47", + "tailwindcss": "^3.4.11", + "typescript": "^5.5.3", + "typescript-eslint": "^8.0.1", + "vite": "^5.4.1" } } diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/tailwind.config.ts b/tailwind.config.ts new file mode 100644 index 0000000..253c2d1 --- /dev/null +++ b/tailwind.config.ts @@ -0,0 +1,46 @@ +import type { Config } from "tailwindcss"; + +export default { + darkMode: ["class"], + content: [ + "./pages/**/*.{ts,tsx}", + "./components/**/*.{ts,tsx}", + "./app/**/*.{ts,tsx}", + "./configure/src/**/*.{ts,tsx}", + ], + prefix: "", + theme: { + container: { + center: true, + padding: "2rem", + screens: { + "2xl": "1400px", + }, + }, + extend: { + colors: { + border: "hsl(var(--border))", + input: "hsl(var(--input))", + ring: "hsl(var(--ring))", + background: "hsl(var(--background))", + foreground: "hsl(var(--foreground))", + primary: { + DEFAULT: "#01b4e4", + foreground: "#FFFFFF", + }, + sidebar: { + DEFAULT: "#0d253f", + foreground: "#FFFFFF", + accent: "#1a4b8c", + }, + card: { + DEFAULT: "#FFFFFF", + foreground: "#333333", + }, + }, + boxShadow: { + 'card': '0 2px 4px rgba(0, 0, 0, 0.05)', + }, + }, + } +} satisfies Config; \ No newline at end of file diff --git a/tsconfig.app.json b/tsconfig.app.json new file mode 100644 index 0000000..f542891 --- /dev/null +++ b/tsconfig.app.json @@ -0,0 +1,30 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": false, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noImplicitAny": false, + "noFallthroughCasesInSwitch": false, + + "baseUrl": ".", + "paths": { + "@/*": ["./configure/src/*"] + } + }, + "include": ["src"] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..dbf3285 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,19 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ], + "compilerOptions": { + "baseUrl": ".", + "paths": { + "@/*": ["./configure/src/*"] + }, + "noImplicitAny": false, + "noUnusedParameters": false, + "skipLibCheck": true, + "allowJs": true, + "noUnusedLocals": false, + "strictNullChecks": false + } +} diff --git a/tsconfig.node.json b/tsconfig.node.json new file mode 100644 index 0000000..3133162 --- /dev/null +++ b/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": false, + "noUnusedParameters": false, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/vite.config.ts b/vite.config.ts new file mode 100644 index 0000000..de61e10 --- /dev/null +++ b/vite.config.ts @@ -0,0 +1,13 @@ +import { defineConfig } from "vite"; +import react from "@vitejs/plugin-react-swc"; +import path from "path"; + +// https://vitejs.dev/config/ +export default defineConfig(({ mode }) => ({ + plugins: [react()], + resolve: { + alias: { + "@": path.resolve(__dirname, "./configure/src"), + }, + }, +})); \ No newline at end of file