From c8f9daca98cad36cde2ebcb2b29d49985b1a5253 Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Thu, 30 Jan 2025 15:59:24 -0600 Subject: [PATCH 01/14] added Simplified Chinese translation --- apps/web/src/locales/index.ts | 1 + apps/web/src/locales/zh_cn.ts | 188 ++++++++++++++++++++++++++++++++++ 2 files changed, 189 insertions(+) create mode 100644 apps/web/src/locales/zh_cn.ts diff --git a/apps/web/src/locales/index.ts b/apps/web/src/locales/index.ts index 35d22cf2..e561362f 100644 --- a/apps/web/src/locales/index.ts +++ b/apps/web/src/locales/index.ts @@ -10,4 +10,5 @@ export const { en: () => import("./en"), de: () => import("./de"), id: () => import("./id"), + zh_cn: () => import("./zh_cn"), }); diff --git a/apps/web/src/locales/zh_cn.ts b/apps/web/src/locales/zh_cn.ts new file mode 100644 index 00000000..0c10e0f3 --- /dev/null +++ b/apps/web/src/locales/zh_cn.ts @@ -0,0 +1,188 @@ +export default { + // 404 page translations + "404.title": "404 - 页面未找到", + + // common translations + "common.title": "Weather.io", + "common.location": "全球", + + "common.start button": "查找您的位置", + "common.share button": "分享", + "common.menu home": "主页", + "common.menu locations": "地点", + "common.menu settings": "设置", + "common.menu contact": "联系方式", + "common.footer legal": "法律声明", + "common.footer contributors": "贡献者", + + "common.search page title": "搜索 - Weather.io", + + "common.miles per hour": "英里每小时", + "common.kilometers per hour": "千米每小时", + "common.knots": "节", + "common.meters per second": "米每秒", + "common.beaufort": "风级", + "common.hectopascals": "百帕", + + "common.share text": "查看此页面: ", + + "common.title 404 page": "404: 页面未找到", + "common.title offline page": "您已离线", + + // settings page translations + "settings.temperature units": "温度单位", + "settings.wind speed units": "风速单位", + "settings.language": "语言", + + "settings.english": "English", + "settings.german": "German", + "settings.indonesian": "Indonesian", + "settings.chinese": "Chinese", + + // locationsettings page translations + "locationsettings.add new location": "添加新位置", + "locationsettings.add new location button": "添加新位置", + "locationsettings.search input placeholder": "搜索城市", + + "locationsettings.at least one city toast": "至少需要一个城市!", + "locationsettings.switched to city toast": "切换到城市!", + "locationsettings.added city toast": "添加城市!", + "locationsettings.city not found toast": "城市未找到!", + "locationsettings.try again toast": "请再试一次!", + + "locationsettings.my location button": "设定我的位置", + + // offline page translations + "offline.title": "您已离线", + "offline.message": "请检查您的网络连接", + + // search page translations + "search.search input placeholder": "搜索城市", + "search.continue button": "下一步 -->", + + "search.my location button": "设定我的位置", + + // legal page translations + "legal.main text":"本网站的内容已经过仔细审核和制作。然而,我们无法保证所提供信息的准确性、完整性和时效性。我们不对因使用本网站而造成的任何损害或损失承担责任。链接页面的运营者对其内容负有完全责任。对于外部内容,我们明确排除任何责任。", + "legal.germany": "德文", + "legal.information disclaimer": "根据《德国电信和信息服务法》第5条的规定", + + // home page translations + "home.today": "今天", + "home.9 day forecast": "未来9天预报", + "home.precipitation": "降水", + "home.feels like": "体感温度", + "home.visibility": "能见度", + "home.wind pressure": "风速 & 气压", + "home.air quality": "空气质量", + "home.pressure": "气压", + "home.speed": "风速", + "home.moon phase": "月相", + + "home.early morning": "凌晨", + "home.morning": "上午", + "home.noon": "中午", + "home.afternoon": "下午", + "home.night": "晚上", + + "home.feels like phrase extremely warm": "今天天气非常炎热!", + "home.feels like phrase very warm": "今天太阳也似乎想降温了!", + "home.feels like phrase warm": "连冰淇淋都觉得太热了!", + "home.feels like phrase slightly more warm": "今天真是个暖洋洋的日子!", + "home.feels like phrase slightly warm": "是去野餐的好天气!", + "home.feels like phrase neutral": + "温度刚刚好,既不热也不冷。", + "home.feels like phrase slightly cold": "可能需要穿件薄外套。", + "home.feels like phrase slightly more cold": "今天是个寒冷的日子!", + "home.feels like phrase cold": + "企鹅们都因为寒冷去喝热巧克力了!", + "home.feels like phrase very cold": + "今天的寒冷天气连雪人都冻得发抖!", + "home.feels like phrase extremely cold": + "冷得连北极熊都懒得出门了!", + + "home.air quality text very poor": "非常差", + "home.air quality text poor": "差", + "home.air quality text fair": "一般", + "home.air quality text moderate": "适中", + "home.air quality text good": "好", + "home.air quality text excellent": "优秀", + + "home.sunset": "日落", + "home.sunrise": "日出", + + "home.moonset": "月落", + "home.moonrise": "月升", + + "home.weather state stormy": "暴风雨", + "home.weather state snowy": "雪天", + "home.weather state rainy": "雨天", + "home.weather state very cloudy": "多云", + "home.weather state cloudy": "阴天", + + "home.weather state windy": "有风", + "home.weather state sunny": "晴天", + + "home.this hour": "此时", + "home.early hour time ending": "上午", + "home.late hour time ending": "下午", + + "home.9 day forecast card content": + "未来9天的天气预报。
温度 为每日的平均温度,分别代表白天和夜晚的温度。", + + "home.precipitation card title": "当前降水", + + "home.feels like card content": + "这个温度参数考虑了人类对天气的感知。", + + "home.visibility card title": "当前能见度", + + "home.wind pressure card title": "当前风力与气压", + "home.wind pressure card content": + "海平面气压。
在海平面,气压是由上方空气的重量所施加的力,平均值约为1013.25 hPa。", + + "home.not available": "不可用", + + "home.moon phase card title": "当前月相", + "home.moon phase card content": + "月相是从地球上看到的月球被阳光直接照射部分的形状。", + + "home.moon phase new moon": "新月", + "home.moon phase waxing crescent": "蛾眉月", + "home.moon phase first quarter": "上弦月", + "home.moon phase waxing gibbous": "盈凸月", + "home.moon phase full moon": "满月", + "home.moon phase waning gibbous": "亏凸月", + "home.moon phase last quarter": "下弦月", + "home.moon phase waning crescent": "残月", + + "home.more information": "更多信息", + "home.less information": "更少信息", + + "home.sun hours": "日照时数", + + "home.from": "来自", + + // contact page translations + "contact.send button": "发送", + "contact.sent button": "已发送", + "contact.first name": "名字", + "contact.last name": "姓氏", + "contact.email": "邮箱", + "contact.message": "留言", + + "contact.sent toast": "消息已发送!", + "contact.sending email loading toast": "正在发送邮件...", + + "contact.invalid email": "无效的邮箱地址", + "contact.at least 2 characters": "此字段必须包含至少2个字符", + "contact.at least 10 characters": "此字段必须包含至少10个字符", + + // contributors page translations + "contributors.made with love text": + '由以下人员♥\uFE0F 精心制作: ', + "contributors.founder": "创始人", + "contributors.engineer": "工程师", + "contributors.designer": "设计师", + "contributors.translator": "翻译员", +} as const; From 25846ce80970a4472c81787add229e49e265f868 Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Thu, 30 Jan 2025 16:55:15 -0600 Subject: [PATCH 02/14] Modifed locale name to meet ISO 639-1 --- apps/web/src/locales/index.ts | 2 +- apps/web/src/locales/{zh_cn.ts => zh-CN.ts} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename apps/web/src/locales/{zh_cn.ts => zh-CN.ts} (100%) diff --git a/apps/web/src/locales/index.ts b/apps/web/src/locales/index.ts index e561362f..3872c070 100644 --- a/apps/web/src/locales/index.ts +++ b/apps/web/src/locales/index.ts @@ -10,5 +10,5 @@ export const { en: () => import("./en"), de: () => import("./de"), id: () => import("./id"), - zh_cn: () => import("./zh_cn"), + "zh-CN": () => import("./zh-CN"), }); diff --git a/apps/web/src/locales/zh_cn.ts b/apps/web/src/locales/zh-CN.ts similarity index 100% rename from apps/web/src/locales/zh_cn.ts rename to apps/web/src/locales/zh-CN.ts From 1f1c47e96890e132248b28f401dcb5e85f968051 Mon Sep 17 00:00:00 2001 From: Nico <38353910+NicoCanada@users.noreply.github.com> Date: Fri, 31 Jan 2025 18:49:31 -0600 Subject: [PATCH 03/14] Update apps/web/src/locales/zh-CN.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- apps/web/src/locales/zh-CN.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/src/locales/zh-CN.ts b/apps/web/src/locales/zh-CN.ts index 0c10e0f3..8491b7fe 100644 --- a/apps/web/src/locales/zh-CN.ts +++ b/apps/web/src/locales/zh-CN.ts @@ -35,9 +35,9 @@ export default { "settings.language": "语言", "settings.english": "English", - "settings.german": "German", - "settings.indonesian": "Indonesian", - "settings.chinese": "Chinese", + "settings.german": "Deutsch", + "settings.indonesian": "Bahasa Indonesia", + "settings.chinese": "中文", // locationsettings page translations "locationsettings.add new location": "添加新位置", From 28a9138bc2399375fb1ecd03540a8f15bdf515dd Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Sun, 2 Feb 2025 14:53:44 -0600 Subject: [PATCH 04/14] added Chinese option in settings --- apps/web/src/pages/settings/index.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index 430a3ce6..e432ab86 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -188,7 +188,7 @@ const Settings = observer(() => { > Flag of the Netherladns @@ -199,6 +199,25 @@ const Settings = observer(() => { )} + From 08d6e85c0d5153d91ac1e2a4e12549267e525d59 Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Mon, 3 Feb 2025 00:53:56 -0600 Subject: [PATCH 05/14] added Chinese flag --- apps/web/src/assets/chinese-flag.png | Bin 0 -> 12673 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 apps/web/src/assets/chinese-flag.png diff --git a/apps/web/src/assets/chinese-flag.png b/apps/web/src/assets/chinese-flag.png new file mode 100644 index 0000000000000000000000000000000000000000..f9f2ecb02e8e810fd06f29bab0d09b01608b8bdf GIT binary patch literal 12673 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�!a_M zXqzkO9k4ti3veH8e?7H(#{Oq$?$4Qa{#L0*-NOqK1SG?(yH5h)A_qbSo(9Z_|HZFa zh63S%P7tQcu|exRFcS)ZZ2Z};m<0ZsDM%3+&y}eZVX1Iow$RD5Z1&q;UGG^8Gb|eY zhX42>f4?AWK+jw3u1(Lt7;?mH?9W4KMUGg=quTOCLR&=kbQI}u5q^O&3MYt{I9VR0 z&cY{6xz25iSG=daZ#Sr}`Jr`GdA`d$$Ue$TYX88#n%c)BO3d%sMI?PS+7X~=tOWs z8FT#>luyY{zYS+!Z`j`uwR>D#B@TP3*qqhUr8nf}Jv@ z>lzOTw}jNxjzjF#H2}Xei|p3>{0&ZXEGIi)Ge34Rrv^Aw>$X)j*Xh~>q z4(AU3_wJ>lRBO8mi{0>uk~}$34Xa2Eb6te9o(7)6@RQw8IKQ`GT>93lP8;8!WD0oP zGTicn9GAA%!5llVA;_3xA~9iN`f2>jjw?!b$8DfZ0wtZ?#zwLs7XKWA8u2=eax&Z<}T8waBnM|FOQ|C6TveDKDs}o-6hN6ro3^V*YY? z5CW><28?}2Erzu#X}fDsLtG6*0$b3<;bAg2llptp%Z=S-2L!3*nQGh-_O*1YOvf|5 z4y3Oi43_QOn|mmkio|?yplHiA333RSV> zuBxYQ4yew14)roZUE@?;U8EV{TYx%FM{=`ROw;GZmw?ur=mGiZd2`eof+rz9m)%vM zh#UpzSLUs5hmrb(D7t~hc3trj(*#h=$v8igTMWI2yq1QZ7rBTgYxsN{kab6fz*>B_ zLx5z8ULxc@BV<(jiKK7@Nlls7rpS9dAlUPy3)6fZ_HBS=&W2gh*+8sqG1>c1_?%V$b`4k=LTW6&jb1Npe#IW3#kZt1K?m(52-!2~Nz z&&*fcszlaNy&XcrXIH4&{z(AIpp?aQ3_dZQHZ5>BwU+)vfY-h0Lqf$3haFV6Ia;x$ z@m_sGi(flOD6PYTYgr*>^>_2cKA@BE6DRn2KzxQ5Q_#Vwyoi(gP9_z$IayH)fazW* z1I>Qf?)|wAUiqu_^1~h+;m3ZLW1*NZ1mH_|+891V10 z^&bA^2?6eQEdD&AM#a@U1G{YjT5i@SFEY59r}I^I^VOHbv^L?*YtQfHh-rlG9k%=o z_yw9n!H~0aJE{Kc!3(c`sB6yTNjvNj9j?jGr2YrT#Q8hFSt5uPXUJ!w=s@65n=Lmg zLTC_NR4Iqmkr(_vF_?JYA&=HhMSqx8>c^q`gVp#Msl87k(&y+`EYO@ux6I@@&x+>! z*X3H|r3%w1HP_AtWGFGG1ds}P)rN+SM368IolH)akSDo*)lo-`c?ji?Sxel{b8fW& zOk{9PMz#Iay^ff%=-NyR`1dYRWB%q15S+6mNN|>zLtx%7UhM4_6`+^X!BI1 zj)TH#qL%6+%>W2I!mi|~{;rE`CcSJICGqEl0&2+)Cf6vF^o;dPV;AFLAmE@`cs>!4 z`Pqf!7KBGq>&lIT`5s#2GX_{(k+^*An=WmQ4I0ppsRg*=h=l%B_1|@*FxpGa{zIBb zQFrL5?O{JTfbavi{Se}#`@lzo z4R$^6b6#3BAQx{C9}y5&%o=K}cLfAyF%(|GhnOQmL&j0TwdYj6;y=f)-+~nN#1fKJ zJRuBjW(Cd|SeXuGJJbKIFBdp%2wvadLHJ+k=lu`k{?+*V|Ii2ge;g+XbcWv%5CU&G z|J%p^j$r@w2Ic>wVE^+CJ%k|f+xnN5|D~<}+BW~Y>a_9f^ z4gJ>?_@D3m|8MBuJ;1+? Date: Mon, 3 Feb 2025 01:17:00 -0600 Subject: [PATCH 06/14] added Chinese translation --- apps/web/next.config.mjs | 2 +- apps/web/src/locales/de.ts | 1 + apps/web/src/locales/en.ts | 1 + apps/web/src/locales/id.ts | 1 + apps/web/src/locales/zh-CN.ts | 2 +- apps/web/src/pages/settings/index.tsx | 1 + 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index cf0c818d..c5ae3c8f 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -35,7 +35,7 @@ const config = withMyBundleAnalyzer(withPWA( transpilePackages: ['@weatherio/api', '@weatherio/ui', '@weatherio/types', '@weatherio/city-data'], i18n: { defaultLocale: 'en', - locales: ['en', 'de', 'id'] + locales: ['en', 'de', 'id', 'zh-CN'], } })) ) diff --git a/apps/web/src/locales/de.ts b/apps/web/src/locales/de.ts index d3050fb4..c46795ad 100644 --- a/apps/web/src/locales/de.ts +++ b/apps/web/src/locales/de.ts @@ -37,6 +37,7 @@ export default { "settings.english": "Englisch", "settings.german": "Deutsch", "settings.indonesian": "Indonesisch", + "settings.chinese": "中文", // locationsettings page translations "locationsettings.add new location": "Füge einen Ort hinzu", diff --git a/apps/web/src/locales/en.ts b/apps/web/src/locales/en.ts index 9024cfdb..e93d9d14 100644 --- a/apps/web/src/locales/en.ts +++ b/apps/web/src/locales/en.ts @@ -37,6 +37,7 @@ export default { "settings.english": "English", "settings.german": "German", "settings.indonesian": "Indonesian", + "settings.chinese": "中文", // locationsettings page translations "locationsettings.add new location": "Add new location", diff --git a/apps/web/src/locales/id.ts b/apps/web/src/locales/id.ts index 0910bacc..9b6a36a8 100644 --- a/apps/web/src/locales/id.ts +++ b/apps/web/src/locales/id.ts @@ -37,6 +37,7 @@ export default { "settings.english": "Inggris", "settings.german": "Jerman", "settings.indonesian": "Indonesia", + "settings.chinese": "中文", // locationsettings page translations "locationsettings.add new location": "Tambah lokasi baru", diff --git a/apps/web/src/locales/zh-CN.ts b/apps/web/src/locales/zh-CN.ts index 8491b7fe..e1df9fdb 100644 --- a/apps/web/src/locales/zh-CN.ts +++ b/apps/web/src/locales/zh-CN.ts @@ -4,7 +4,7 @@ export default { // common translations "common.title": "Weather.io", - "common.location": "全球", + "common.location": "中文", "common.start button": "查找您的位置", "common.share button": "分享", diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index e432ab86..1f15ae68 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -7,6 +7,7 @@ import type { TemperatureUnitType, WindSpeedUnitType } from "~/states"; import germanFlag from "~/assets/german-flag.png"; import indonesianFlag from "~/assets/indonesian-flag.png"; import usaFlag from "~/assets/usa-flag.png"; +import chineseFlag from "~/assets/chinese-flag.png"; import Layout from "~/components/Layout"; import { getLocaleProps, From 209554ea800c90f8ad5248483ca9371b70e8a5e9 Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Mon, 3 Feb 2025 01:39:12 -0600 Subject: [PATCH 07/14] changed translation setting for chinese --- apps/web/src/pages/settings/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index 1f15ae68..7dac6c97 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -213,7 +213,7 @@ const Settings = observer(() => { height={20} />

- {translationSettings("简体中文")} + {translationSettings("chinese")}

{locale === "zh-CN" && ( From 654d220cb2e19356ad1c87f361455e01cf11d77d Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Mon, 3 Feb 2025 13:32:00 -0600 Subject: [PATCH 08/14] merge chinese_translation with master branch --- .env.example | 1 - .github/workflows/ci.yml | 3 + .github/workflows/playwright.yml | 1 - .gitignore | 3 +- apps/web/next-env.d.ts | 5 + apps/web/next.config.mjs | 37 +- apps/web/package.json | 4 +- apps/web/postcss.config.cjs | 6 +- apps/web/public/manifest.json | 8 +- .../src/pages/settings/settings.module.css | 2 +- apps/web/src/styles/globals.css | 124 +- apps/web/tsconfig.json | 22 +- package.json | 1 + packages/api/env.ts | 21 +- packages/api/tsconfig.json | 2 +- packages/city-data/.prettierignore | 2 +- packages/city-data/package.json | 3 +- packages/e2e-web-tests/tsconfig.json | 9 +- packages/types/tsconfig.json | 2 +- packages/ui/src/collapsible.tsx | 10 +- packages/ui/src/sonner.tsx | 14 +- packages/ui/tsconfig.json | 2 +- pnpm-lock.yaml | 1645 +++++++++-------- tooling/eslint/base.js | 56 +- tooling/eslint/react.js | 22 +- tooling/eslint/tsconfig.json | 2 +- tooling/prettier/index.js | 42 +- tooling/prettier/tsconfig.json | 2 +- tooling/tailwind/package.json | 2 +- tooling/tailwind/tsconfig.json | 2 +- turbo.json | 41 +- 31 files changed, 1055 insertions(+), 1041 deletions(-) create mode 100644 apps/web/next-env.d.ts diff --git a/.env.example b/.env.example index a7d115f2..41d92fe3 100644 --- a/.env.example +++ b/.env.example @@ -17,5 +17,4 @@ UPSTASH_RATELIMITER_TIME_INTERVAL="..." // e.g. 1s, 1m, 1h, 1d UPSTASH_RATELIMITER_EXCLUDED_IPS="..." // List of IPs separated by comma RESEND_API_KEY="re_..." QWEATHER_API_KEY="..." -API_NINJA_API_KEY="..." NEXT_PUBLIC_CONVEX_URL="https://..." // The Convex Dev / Prod (if you want to test against prod) public convex URL diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 45e6be31..510d328e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,5 +49,8 @@ jobs: - name: Setup uses: ./tooling/github/setup + - name: Add city data + run: pnpm update:city-data-ci + - name: Typecheck run: pnpm typecheck diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 4df5fd6b..bf145c22 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -13,7 +13,6 @@ env: UPSTASH_RATELIMITER_TIME_INTERVAL: ${{ secrets.UPSTASH_RATELIMITER_TIME_INTERVAL }} RESEND_API_KEY: ${{ secrets.RESEND_API_KEY }} QWEATHER_API_KEY: ${{ secrets.QWEATHER_API_KEY }} - API_NINJA_API_KEY: ${{ secrets.API_NINJA_API_KEY }} NEXT_PUBLIC_CONVEX_URL: ${{ secrets.NEXT_PUBLIC_CONVEX_URL_PROD }} jobs: diff --git a/.gitignore b/.gitignore index 07f47347..1c4b364d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,6 @@ coverage # next.js .next/ out/ -next-env.d.ts # production build @@ -68,4 +67,4 @@ blob-report playwright/.cache # Microsoft -%SystemDrive% \ No newline at end of file +%SystemDrive% diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts new file mode 100644 index 00000000..4f11a03d --- /dev/null +++ b/apps/web/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index c5ae3c8f..d7df04d7 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,35 +1,36 @@ -import createJiti from 'jiti' -import {fileURLToPath} from 'node:url' -import withBundleAnalyzer from '@next/bundle-analyzer' -import withPWAInit from '@ducanh2912/next-pwa' -import {withAxiomNextConfig} from 'next-axiom' +import { fileURLToPath } from "node:url"; +import withPWAInit from "@ducanh2912/next-pwa"; +import withBundleAnalyzer from "@next/bundle-analyzer"; +import createJiti from "jiti"; +import { withAxiomNextConfig } from "next-axiom"; const withPWA = withPWAInit({ - dest: 'public', + dest: "public", fallbacks: { - document: '/_offline' - } -}) + document: "/_offline", + }, +}); // create the bundle analyzer config const withMyBundleAnalyzer = withBundleAnalyzer({ - enabled: process.env.ANALYZE === 'true' -}) + enabled: process.env.ANALYZE === "true", +}); -const jiti = createJiti(fileURLToPath(import.meta.url)) +const jiti = createJiti(fileURLToPath(import.meta.url)); /** * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful * for Docker builds. * Importing env files here to validate on build */ -jiti('./src/env.ts') -jiti('@weatherio/api/env') +jiti("./src/env.ts"); +jiti("@weatherio/api/env"); /** @type {import("next").NextConfig} */ -const config = withMyBundleAnalyzer(withPWA( - withAxiomNextConfig({ - reactStrictMode: true, +const config = withMyBundleAnalyzer( + withPWA( + withAxiomNextConfig({ + reactStrictMode: true, /** Enables hot reloading for local packages without a build step */ transpilePackages: ['@weatherio/api', '@weatherio/ui', '@weatherio/types', '@weatherio/city-data'], @@ -40,4 +41,4 @@ const config = withMyBundleAnalyzer(withPWA( })) ) -export default config +export default config; diff --git a/apps/web/package.json b/apps/web/package.json index ed16bb19..6d5c8995 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -13,9 +13,9 @@ "with-env": "dotenv -e ../../.env --" }, "dependencies": { - "@ducanh2912/next-pwa": "^10.2.5", + "@ducanh2912/next-pwa": "^10.2.9", "@hookform/resolvers": "^3.3.4", - "@legendapp/state": "^2.1.8", + "@legendapp/state": "^2.1.15", "@next/bundle-analyzer": "^14.1.3", "@t3-oss/env-nextjs": "^0.9.2", "@tanstack/react-query": "^5.28.6", diff --git a/apps/web/postcss.config.cjs b/apps/web/postcss.config.cjs index 85f717cc..12a703d9 100644 --- a/apps/web/postcss.config.cjs +++ b/apps/web/postcss.config.cjs @@ -1,6 +1,6 @@ module.exports = { plugins: { tailwindcss: {}, - autoprefixer: {} - } -} + autoprefixer: {}, + }, +}; diff --git a/apps/web/public/manifest.json b/apps/web/public/manifest.json index c1573104..81613b5b 100644 --- a/apps/web/public/manifest.json +++ b/apps/web/public/manifest.json @@ -9,9 +9,9 @@ "icons": [ { "src": "/icons/icon-512x-512-any.png", - "sizes": "512x512", - "type": "image/png", - "purpose": "any maskable" + "sizes": "512x512", + "type": "image/png", + "purpose": "any maskable" } ] -} \ No newline at end of file +} diff --git a/apps/web/src/pages/settings/settings.module.css b/apps/web/src/pages/settings/settings.module.css index ea9e7481..ffa82a89 100644 --- a/apps/web/src/pages/settings/settings.module.css +++ b/apps/web/src/pages/settings/settings.module.css @@ -1,5 +1,5 @@ .normalbutton { - @apply mt-3 flex h-10 w-64 md:w-96 items-center border-gray-700 bg-[#d8d5db] md:text-base text-sm whitespace-nowrap pr-2 pl-2; + @apply mt-3 flex h-10 w-64 items-center whitespace-nowrap border-gray-700 bg-[#d8d5db] pl-2 pr-2 text-sm md:w-96 md:text-base; } .buttontext { diff --git a/apps/web/src/styles/globals.css b/apps/web/src/styles/globals.css index bb505a71..86ed5e65 100644 --- a/apps/web/src/styles/globals.css +++ b/apps/web/src/styles/globals.css @@ -3,89 +3,89 @@ @tailwind utilities; @layer base { - :root { - --background: 0 0% 100%; - --foreground: 222.2 84% 4.9%; + :root { + --background: 0 0% 100%; + --foreground: 222.2 84% 4.9%; - --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; + --card: 0 0% 100%; + --card-foreground: 222.2 84% 4.9%; - --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; + --popover: 0 0% 100%; + --popover-foreground: 222.2 84% 4.9%; - --primary: 222.2 47.4% 11.2%; - --primary-foreground: 210 40% 98%; + --primary: 222.2 47.4% 11.2%; + --primary-foreground: 210 40% 98%; - --secondary: 210 40% 96.1%; - --secondary-foreground: 222.2 47.4% 11.2%; + --secondary: 210 40% 96.1%; + --secondary-foreground: 222.2 47.4% 11.2%; - --muted: 210 40% 96.1%; - --muted-foreground: 215.4 16.3% 46.9%; + --muted: 210 40% 96.1%; + --muted-foreground: 215.4 16.3% 46.9%; - --accent: 210 40% 96.1%; - --accent-foreground: 222.2 47.4% 11.2%; + --accent: 210 40% 96.1%; + --accent-foreground: 222.2 47.4% 11.2%; - --destructive: 0 84.2% 60.2%; - --destructive-foreground: 210 40% 98%; + --destructive: 0 84.2% 60.2%; + --destructive-foreground: 210 40% 98%; - --border: 214.3 31.8% 91.4%; - --input: 214.3 31.8% 91.4%; - --ring: 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%; - --radius: 0.5rem; - } + --radius: 0.5rem; + } - .dark { - --background: 222.2 84% 4.9%; - --foreground: 210 40% 98%; + .dark { + --background: 222.2 84% 4.9%; + --foreground: 210 40% 98%; - --card: 222.2 84% 4.9%; - --card-foreground: 210 40% 98%; + --card: 222.2 84% 4.9%; + --card-foreground: 210 40% 98%; - --popover: 222.2 84% 4.9%; - --popover-foreground: 210 40% 98%; + --popover: 222.2 84% 4.9%; + --popover-foreground: 210 40% 98%; - --primary: 210 40% 98%; - --primary-foreground: 222.2 47.4% 11.2%; + --primary: 210 40% 98%; + --primary-foreground: 222.2 47.4% 11.2%; - --secondary: 217.2 32.6% 17.5%; - --secondary-foreground: 210 40% 98%; + --secondary: 217.2 32.6% 17.5%; + --secondary-foreground: 210 40% 98%; - --muted: 217.2 32.6% 17.5%; - --muted-foreground: 215 20.2% 65.1%; + --muted: 217.2 32.6% 17.5%; + --muted-foreground: 215 20.2% 65.1%; - --accent: 217.2 32.6% 17.5%; - --accent-foreground: 210 40% 98%; + --accent: 217.2 32.6% 17.5%; + --accent-foreground: 210 40% 98%; - --destructive: 0 62.8% 30.6%; - --destructive-foreground: 210 40% 98%; + --destructive: 0 62.8% 30.6%; + --destructive-foreground: 210 40% 98%; - --border: 217.2 32.6% 17.5%; - --input: 217.2 32.6% 17.5%; - --ring: 212.7 26.8% 83.9%; - } + --border: 217.2 32.6% 17.5%; + --input: 217.2 32.6% 17.5%; + --ring: 212.7 26.8% 83.9%; + } } @layer base { - * { - @apply border-border; - } - body { - @apply bg-background text-foreground; - } + * { + @apply border-border; + } + body { + @apply bg-background text-foreground; + } } .fade-effect::after { - content: ""; - position: absolute; - top: 0; - right: 0; - bottom: 0.8rem; - width: 80px; - background: linear-gradient( - to right, - rgba(255, 255, 255, 0), - rgb(156, 163, 175) 100% - ); - pointer-events: none; -} \ No newline at end of file + content: ""; + position: absolute; + top: 0; + right: 0; + bottom: 0.8rem; + width: 80px; + background: linear-gradient( + to right, + rgba(255, 255, 255, 0), + rgb(156, 163, 175) 100% + ); + pointer-events: none; +} diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index ddef8e7a..4be98731 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -3,12 +3,8 @@ "compilerOptions": { "baseUrl": ".", "paths": { - "~/*": [ - "./src/*" - ], - "@weatherio/api": [ - "node_modules/@weatherio/api/*" - ], + "~/*": ["./src/*"], + "@weatherio/api": ["node_modules/@weatherio/api/*"] }, "plugins": [ { @@ -16,17 +12,9 @@ } ], "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json", - "types": [ - "@ducanh2912/next-pwa/workbox" - ], + "types": ["@ducanh2912/next-pwa/workbox"], "strictNullChecks": true }, - "include": [ - ".", - ".next/types/**/*.ts", - "../../reset.d.ts" - ], - "exclude": [ - "node_modules" - ] + "include": [".", ".next/types/**/*.ts", "../../reset.d.ts"], + "exclude": ["node_modules"] } diff --git a/package.json b/package.json index 0fb63a40..d706bdd4 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "typecheck": "turbo typecheck", "update:city-data-prod": "cd packages/city-data && pnpm update:city-data-prod", "update:city-data-dev": "cd packages/city-data && pnpm update:city-data-dev", + "update:city-data-ci": "cd packages/city-data && pnpm update:city-data-ci", "convex:deploy": "cd packages/city-data && pnpm convex:deploy", "e2e:test": "turbo e2e:test" }, diff --git a/packages/api/env.ts b/packages/api/env.ts index 07bbca0f..693e9fec 100644 --- a/packages/api/env.ts +++ b/packages/api/env.ts @@ -1,9 +1,9 @@ -import { createEnv } from '@t3-oss/env-nextjs' -import { z } from 'zod' +import { createEnv } from "@t3-oss/env-nextjs"; +import { z } from "zod"; export const env = createEnv({ server: { - NODE_ENV: z.enum(['development', 'test', 'production']), + NODE_ENV: z.enum(["development", "test", "production"]), OPEN_WEATHER_API_KEY: z.string().min(1), UPSTASH_REDIS_REST_URL: z.string().min(1).url(), UPSTASH_REDIS_REST_TOKEN: z.string().min(1), @@ -12,7 +12,6 @@ export const env = createEnv({ UPSTASH_RATELIMITER_EXCLUDED_IPS: z.string().default(""), RESEND_API_KEY: z.string().min(1), QWEATHER_API_KEY: z.string().min(1), - API_NINJA_API_KEY: z.string().min(1), }, client: {}, runtimeEnv: { @@ -20,12 +19,14 @@ export const env = createEnv({ OPEN_WEATHER_API_KEY: process.env.OPEN_WEATHER_API_KEY, UPSTASH_REDIS_REST_URL: process.env.UPSTASH_REDIS_REST_URL, UPSTASH_REDIS_REST_TOKEN: process.env.UPSTASH_REDIS_REST_TOKEN, - UPSTASH_RATELIMITER_TOKENS_PER_TIME: process.env.UPSTASH_RATELIMITER_TOKENS_PER_TIME, - UPSTASH_RATELIMITER_TIME_INTERVAL: process.env.UPSTASH_RATELIMITER_TIME_INTERVAL, - UPSTASH_RATELIMITER_EXCLUDED_IPS: process.env.UPSTASH_RATELIMITER_EXCLUDED_IPS, + UPSTASH_RATELIMITER_TOKENS_PER_TIME: + process.env.UPSTASH_RATELIMITER_TOKENS_PER_TIME, + UPSTASH_RATELIMITER_TIME_INTERVAL: + process.env.UPSTASH_RATELIMITER_TIME_INTERVAL, + UPSTASH_RATELIMITER_EXCLUDED_IPS: + process.env.UPSTASH_RATELIMITER_EXCLUDED_IPS, RESEND_API_KEY: process.env.RESEND_API_KEY, QWEATHER_API_KEY: process.env.QWEATHER_API_KEY, - API_NINJA_API_KEY: process.env.API_NINJA_API_KEY }, - skipValidation: !!process.env.CI || !!process.env.SKIP_ENV_VALIDATION -}) + skipValidation: !!process.env.CI || !!process.env.SKIP_ENV_VALIDATION, +}); diff --git a/packages/api/tsconfig.json b/packages/api/tsconfig.json index 197d7e0d..d6352e75 100644 --- a/packages/api/tsconfig.json +++ b/packages/api/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": ["src", "../../reset.d.ts", "**/*.mjs", "."], + "include": ["src", "../../reset.d.ts", "**/*.mjs", "."], "exclude": ["node_modules"] } diff --git a/packages/city-data/.prettierignore b/packages/city-data/.prettierignore index 92973df9..b510c817 100644 --- a/packages/city-data/.prettierignore +++ b/packages/city-data/.prettierignore @@ -1 +1 @@ -'convex/_generated' \ No newline at end of file +convex/_generated diff --git a/packages/city-data/package.json b/packages/city-data/package.json index 187d6200..a6529f33 100644 --- a/packages/city-data/package.json +++ b/packages/city-data/package.json @@ -12,10 +12,11 @@ "scripts": { "dev": "convex dev", "clean": "rm -rf .turbo node_modules", - "format": "prettier --check . --ignore-path ../../.gitignore", + "format": "prettier --check . --ignore-path ../../.gitignore --ignore-path ./.gitignore --ignore-path ./.prettierignore --ignore-path ./src/.gitignore", "lint": "eslint .", "typecheck": "tsc --noEmit", "update:city-data-dev": "cd src && cross-env DEV_MODE=true tsx download.ts && cross-env DEV_MODE=true tsx convert.ts && cross-env DEV_MODE=true tsx optimize-json.ts && cd .. && convex import --table search src/cities.jsonl --replace", + "update:city-data-ci": "cd src && cross-env DEV_MODE=true tsx download.ts && cross-env DEV_MODE=true tsx convert.ts && cross-env DEV_MODE=true tsx optimize-json.ts", "update:city-data-prod": "cd src && tsx download.ts && tsx convert.ts && tsx optimize-json.ts && cd .. && convex import --table search src/cities.jsonl --replace --prod", "convex:deploy": "convex deploy" }, diff --git a/packages/e2e-web-tests/tsconfig.json b/packages/e2e-web-tests/tsconfig.json index 10cfa949..3192a579 100644 --- a/packages/e2e-web-tests/tsconfig.json +++ b/packages/e2e-web-tests/tsconfig.json @@ -7,6 +7,13 @@ "@weatherio/*": ["node_modules/@weatherio/*"] } }, - "include": ["tests", "**/*.mjs", "../../reset.d.ts", "**/*.ts", "**/*.tsx", "playwright.config.ts"], + "include": [ + "tests", + "**/*.mjs", + "../../reset.d.ts", + "**/*.ts", + "**/*.tsx", + "playwright.config.ts" + ], "exclude": ["node_modules"] } diff --git a/packages/types/tsconfig.json b/packages/types/tsconfig.json index a9dc34e7..b97cd3e8 100644 --- a/packages/types/tsconfig.json +++ b/packages/types/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": ["src", "../../reset.d.ts"], + "include": ["src", "../../reset.d.ts"], "exclude": ["node_modules"] } diff --git a/packages/ui/src/collapsible.tsx b/packages/ui/src/collapsible.tsx index a23e7a28..5c28cbcc 100644 --- a/packages/ui/src/collapsible.tsx +++ b/packages/ui/src/collapsible.tsx @@ -1,9 +1,9 @@ -import * as CollapsiblePrimitive from "@radix-ui/react-collapsible" +import * as CollapsiblePrimitive from "@radix-ui/react-collapsible"; -const Collapsible = CollapsiblePrimitive.Root +const Collapsible = CollapsiblePrimitive.Root; -const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger +const CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger; -const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent +const CollapsibleContent = CollapsiblePrimitive.CollapsibleContent; -export { Collapsible, CollapsibleTrigger, CollapsibleContent } +export { Collapsible, CollapsibleTrigger, CollapsibleContent }; diff --git a/packages/ui/src/sonner.tsx b/packages/ui/src/sonner.tsx index 1128edfc..5b637acf 100644 --- a/packages/ui/src/sonner.tsx +++ b/packages/ui/src/sonner.tsx @@ -1,10 +1,10 @@ -import { useTheme } from "next-themes" -import { Toaster as Sonner } from "sonner" +import { useTheme } from "next-themes"; +import { Toaster as Sonner } from "sonner"; -type ToasterProps = React.ComponentProps +type ToasterProps = React.ComponentProps; const Toaster = ({ ...props }: ToasterProps) => { - const { theme = "system" } = useTheme() + const { theme = "system" } = useTheme(); return ( { }} {...props} /> - ) -} + ); +}; -export { Toaster } +export { Toaster }; diff --git a/packages/ui/tsconfig.json b/packages/ui/tsconfig.json index d8c35f7d..c72d7c37 100644 --- a/packages/ui/tsconfig.json +++ b/packages/ui/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": ["*.ts", "src", "../../reset.d.ts"], + "include": ["*.ts", "src", "../../reset.d.ts"], "exclude": ["node_modules"] } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f62c58b6..92c3ba3d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -33,14 +33,14 @@ importers: apps/web: dependencies: '@ducanh2912/next-pwa': - specifier: ^10.2.5 - version: 10.2.5(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(webpack@5.89.0) + specifier: ^10.2.9 + version: 10.2.9(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(webpack@5.89.0) '@hookform/resolvers': specifier: ^3.3.4 version: 3.3.4(react-hook-form@7.51.0(react@18.2.0)) '@legendapp/state': - specifier: ^2.1.8 - version: 2.1.8(react@18.2.0) + specifier: ^2.1.15 + version: 2.1.15(react@18.2.0) '@next/bundle-analyzer': specifier: ^14.1.3 version: 14.1.3 @@ -58,7 +58,7 @@ importers: version: 11.0.0-rc.403(@trpc/server@11.0.0-rc.403) '@trpc/next': specifier: ^11.0.0-rc.403 - version: 11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/react-query@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/server@11.0.0-rc.403)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@11.0.0-rc.403)(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/react-query@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/server@11.0.0-rc.403)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@11.0.0-rc.403)(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@trpc/react-query': specifier: ^11.0.0-rc.403 version: 11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/server@11.0.0-rc.403)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) @@ -67,10 +67,10 @@ importers: version: 11.0.0-rc.403 '@vercel/analytics': specifier: ^1.2.2 - version: 1.2.2(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 1.2.2(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@vercel/speed-insights': specifier: ^1.0.10 - version: 1.0.10(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + version: 1.0.10(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@weatherio/api': specifier: workspace:^0.1.0 version: link:../../packages/api @@ -97,10 +97,10 @@ importers: version: 1.21.0 next: specifier: ^14.1.3 - version: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-axiom: specifier: ^1.3.0 - version: 1.3.0(@types/node@20.11.28)(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0) + version: 1.3.0(@types/node@20.11.28)(next@14.2.21(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0) next-international: specifier: ^1.2.4 version: 1.2.4 @@ -200,10 +200,10 @@ importers: version: 1.11.10 next: specifier: ^14.1.3 - version: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + version: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) next-axiom: specifier: ^1.3.0 - version: 1.3.0(@types/node@20.11.28)(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0) + version: 1.3.0(@types/node@20.11.28)(next@14.2.21(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0) resend: specifier: ^3.2.0 version: 3.2.0 @@ -486,8 +486,8 @@ importers: tooling/tailwind: dependencies: autoprefixer: - specifier: ^10.4.18 - version: 10.4.18(postcss@8.4.35) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.4.35) postcss: specifier: ^8.4.35 version: 8.4.35 @@ -546,22 +546,34 @@ packages: resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} engines: {node: '>=6.9.0'} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} + engines: {node: '>=6.9.0'} + '@babel/compat-data@7.23.5': resolution: {integrity: sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==} engines: {node: '>=6.9.0'} - '@babel/core@7.23.7': - resolution: {integrity: sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw==} + '@babel/compat-data@7.26.5': + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} '@babel/core@7.24.0': resolution: {integrity: sha512-fQfkg0Gjkza3nf0c7/w6Xf34BW4YvzNfACRLmmb7XRLa6XHdR+K9AlJlxneFfWYf6uhOzuzZVTjF/8KfndZANw==} engines: {node: '>=6.9.0'} + '@babel/core@7.26.7': + resolution: {integrity: sha512-SRijHmF0PSPgLIBYlWnG0hyeJLwXE2CgpsXaMOrtt2yp9/86ALw6oUlj9KYuZ0JN07T4eBMVIW4li/9S1j2BGA==} + engines: {node: '>=6.9.0'} + '@babel/generator@7.23.6': resolution: {integrity: sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==} engines: {node: '>=6.9.0'} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} + engines: {node: '>=6.9.0'} + '@babel/helper-annotate-as-pure@7.22.5': resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} @@ -574,6 +586,10 @@ packages: resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} engines: {node: '>=6.9.0'} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} + engines: {node: '>=6.9.0'} + '@babel/helper-create-class-features-plugin@7.23.7': resolution: {integrity: sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g==} engines: {node: '>=6.9.0'} @@ -611,12 +627,22 @@ packages: resolution: {integrity: sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==} engines: {node: '>=6.9.0'} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} + engines: {node: '>=6.9.0'} + '@babel/helper-module-transforms@7.23.3': resolution: {integrity: sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0 + '@babel/helper-optimise-call-expression@7.22.5': resolution: {integrity: sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw==} engines: {node: '>=6.9.0'} @@ -653,26 +679,38 @@ packages: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.22.20': resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} engines: {node: '>=6.9.0'} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} + engines: {node: '>=6.9.0'} + '@babel/helper-validator-option@7.23.5': resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} engines: {node: '>=6.9.0'} - '@babel/helper-wrap-function@7.22.20': - resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.23.7': - resolution: {integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==} + '@babel/helper-wrap-function@7.22.20': + resolution: {integrity: sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw==} engines: {node: '>=6.9.0'} '@babel/helpers@7.24.0': resolution: {integrity: sha512-ulDZdc0Aj5uLc5nETsa7EPx2L7rM0YJM8r7ck7U73AXi7qOV44IHHRAYZHY6iU1rr3C5N4NtTmMRUJP6kwCWeA==} engines: {node: '>=6.9.0'} + '@babel/helpers@7.26.7': + resolution: {integrity: sha512-8NHiL98vsi0mbPQmYAGWwfcFaOy4j2HY49fXJCfuDcdE7fMIsH9a7GdaeXpIBsbT7307WU8KCMp5pUVDNL4f9A==} + engines: {node: '>=6.9.0'} + '@babel/highlight@7.23.4': resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} engines: {node: '>=6.9.0'} @@ -687,6 +725,11 @@ packages: engines: {node: '>=6.0.0'} hasBin: true + '@babel/parser@7.26.7': + resolution: {integrity: sha512-kEvgGGgEjRUutvdVvZhbn/BxVt+5VSpwXz1j3WYXQbXDo8KzFOPNG2GQbdAiNq8g6wn1yKk7C/qrke03a84V+w==} + engines: {node: '>=6.0.0'} + hasBin: true + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3': resolution: {integrity: sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ==} engines: {node: '>=6.9.0'} @@ -1125,14 +1168,18 @@ packages: resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} engines: {node: '>=6.9.0'} - '@babel/traverse@7.23.7': - resolution: {integrity: sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} '@babel/traverse@7.24.0': resolution: {integrity: sha512-HfuJlI8qq3dEDmNU5ChzzpZRWq+oxCZQyMzIMEqLho+AQnhMnKQUzH6ydo3RBl/YjPCuk68Y6s0Gx0AeyULiWw==} engines: {node: '>=6.9.0'} + '@babel/traverse@7.26.7': + resolution: {integrity: sha512-1x1sgeyRLC3r5fQOM0/xtQKsYjyxmFjaOrLJNtZ81inNjyJHGIolTULPiSc/2qe1/qfpFLisLQYFnnZl7QoedA==} + engines: {node: '>=6.9.0'} + '@babel/types@7.23.6': resolution: {integrity: sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==} engines: {node: '>=6.9.0'} @@ -1141,6 +1188,10 @@ packages: resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} + '@babel/types@7.26.7': + resolution: {integrity: sha512-t8kDRGrKXyp6+tjUh7hw2RLyclsW4TRoRvRHtSyAX9Bb5ldlFh+90YAYY6awRXrlB4G5G2izNeGySpATlFzmOg==} + engines: {node: '>=6.9.0'} + '@cspotcode/source-map-support@0.8.1': resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} @@ -1149,8 +1200,8 @@ packages: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} - '@ducanh2912/next-pwa@10.2.5': - resolution: {integrity: sha512-DkF0IUNBjJ2eOQ/lxDuEtT7oIfLIcOE6HthM5ESkZBLq9P05O2PEhaIpOLARPF9RNXlvBBJxX0sJNUeVehMTIw==} + '@ducanh2912/next-pwa@10.2.9': + resolution: {integrity: sha512-Wtu823+0Ga1owqSu1I4HqKgeRYarduCCKwsh1EJmJiJqgbt+gvVf5cFwFH8NigxYyyEvriAro4hzm0pMSrXdRQ==} peerDependencies: next: '>=14.0.0' webpack: '>=5.9.0' @@ -1777,9 +1828,6 @@ packages: resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} - '@jridgewell/source-map@0.3.5': - resolution: {integrity: sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==} - '@jridgewell/source-map@0.3.6': resolution: {integrity: sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==} @@ -1798,8 +1846,8 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@legendapp/state@2.1.8': - resolution: {integrity: sha512-SysgM/9sUg/PlsjnfsUtaL5eesiQ5UMYZ0XFmu+Yn3e1PJMDWuYbdr+uNtjQJnLV/agg44BpQHjNYtBSBolqmw==} + '@legendapp/state@2.1.15': + resolution: {integrity: sha512-7/8Rgg7m38eznupr36QJeSkrtbhVxaRtQvRMjdBigSm+HW3ZIFgMtUX1DqZ2hJxbPqqAJamw5s+TLs8dRstUNw==} peerDependencies: react: '>=16.8.0' peerDependenciesMeta: @@ -1809,62 +1857,62 @@ packages: '@next/bundle-analyzer@14.1.3': resolution: {integrity: sha512-QjMT5RGqvaObprL4Oim4SsjWUW6DxxfG+Fhq9arGw4CHbPBsjQkNWgUtW3WWW/Bjh4VhT+YBsJfxTyBVPHIlVw==} - '@next/env@14.1.3': - resolution: {integrity: sha512-VhgXTvrgeBRxNPjyfBsDIMvgsKDxjlpw4IAUsHCX8Gjl1vtHUYRT3+xfQ/wwvLPDd/6kqfLqk9Pt4+7gysuCKQ==} + '@next/env@14.2.21': + resolution: {integrity: sha512-lXcwcJd5oR01tggjWJ6SrNNYFGuOOMB9c251wUNkjCpkoXOPkDeF/15c3mnVlBqrW4JJXb2kVxDFhC4GduJt2A==} '@next/eslint-plugin-next@14.1.3': resolution: {integrity: sha512-VCnZI2cy77Yaj3L7Uhs3+44ikMM1VD/fBMwvTBb3hIaTIuqa+DmG4dhUDq+MASu3yx97KhgsVJbsas0XuiKyww==} - '@next/swc-darwin-arm64@14.1.3': - resolution: {integrity: sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==} + '@next/swc-darwin-arm64@14.2.21': + resolution: {integrity: sha512-HwEjcKsXtvszXz5q5Z7wCtrHeTTDSTgAbocz45PHMUjU3fBYInfvhR+ZhavDRUYLonm53aHZbB09QtJVJj8T7g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.1.3': - resolution: {integrity: sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==} + '@next/swc-darwin-x64@14.2.21': + resolution: {integrity: sha512-TSAA2ROgNzm4FhKbTbyJOBrsREOMVdDIltZ6aZiKvCi/v0UwFmwigBGeqXDA97TFMpR3LNNpw52CbVelkoQBxA==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.1.3': - resolution: {integrity: sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==} + '@next/swc-linux-arm64-gnu@14.2.21': + resolution: {integrity: sha512-0Dqjn0pEUz3JG+AImpnMMW/m8hRtl1GQCNbO66V1yp6RswSTiKmnHf3pTX6xMdJYSemf3O4Q9ykiL0jymu0TuA==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.1.3': - resolution: {integrity: sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==} + '@next/swc-linux-arm64-musl@14.2.21': + resolution: {integrity: sha512-Ggfw5qnMXldscVntwnjfaQs5GbBbjioV4B4loP+bjqNEb42fzZlAaK+ldL0jm2CTJga9LynBMhekNfV8W4+HBw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.1.3': - resolution: {integrity: sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==} + '@next/swc-linux-x64-gnu@14.2.21': + resolution: {integrity: sha512-uokj0lubN1WoSa5KKdThVPRffGyiWlm/vCc/cMkWOQHw69Qt0X1o3b2PyLLx8ANqlefILZh1EdfLRz9gVpG6tg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.1.3': - resolution: {integrity: sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==} + '@next/swc-linux-x64-musl@14.2.21': + resolution: {integrity: sha512-iAEBPzWNbciah4+0yI4s7Pce6BIoxTQ0AGCkxn/UBuzJFkYyJt71MadYQkjPqCQCJAFQ26sYh7MOKdU+VQFgPg==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.1.3': - resolution: {integrity: sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==} + '@next/swc-win32-arm64-msvc@14.2.21': + resolution: {integrity: sha512-plykgB3vL2hB4Z32W3ktsfqyuyGAPxqwiyrAi2Mr8LlEUhNn9VgkiAl5hODSBpzIfWweX3er1f5uNpGDygfQVQ==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.1.3': - resolution: {integrity: sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==} + '@next/swc-win32-ia32-msvc@14.2.21': + resolution: {integrity: sha512-w5bacz4Vxqrh06BjWgua3Yf7EMDb8iMcVhNrNx8KnJXt8t+Uu0Zg4JHLDL/T7DkTCEEfKXO/Er1fcfWxn2xfPA==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.1.3': - resolution: {integrity: sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==} + '@next/swc-win32-x64-msvc@14.2.21': + resolution: {integrity: sha512-sT6+llIkzpsexGYZq8cjjthRyRGe5cJVhqh12FmlbxHqna6zsDDK8UNaV7g41T6atFHCJUPeLb3uyAwrBwy0NA==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -2143,23 +2191,44 @@ packages: '@types/babel__core': optional: true - '@rollup/plugin-node-resolve@11.2.1': - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} + '@rollup/plugin-node-resolve@15.3.1': + resolution: {integrity: sha512-tgg6b91pAybXHJQMAAwW9VuWBO6Thi+q7BCNARLwSqlmsHz0XYURtGvh/AuwSADXSI4h/2uHbs7s4FzlZDGSGA==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0||^2.0.0 + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true '@rollup/plugin-replace@2.4.2': resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 + '@rollup/plugin-terser@0.4.4': + resolution: {integrity: sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/pluginutils@3.1.0': resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + '@rollup/rollup-android-arm-eabi@4.18.0': resolution: {integrity: sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==} cpu: [arm] @@ -2258,8 +2327,11 @@ packages: '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@swc/helpers@0.5.2': - resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==} + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + + '@swc/helpers@0.5.5': + resolution: {integrity: sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==} '@t3-oss/env-core@0.9.2': resolution: {integrity: sha512-KgWXljUTHgO3o7GMZQPAD5+P+HqpauMNNHowlm7V2b9IeMitSUpNKwG6xQrup/xARWHTdxRVIl0mSI4wCevQhQ==} @@ -2367,9 +2439,6 @@ packages: '@types/eslint@8.56.5': resolution: {integrity: sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==} - '@types/eslint@9.6.1': - resolution: {integrity: sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==} - '@types/estree@0.0.39': resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} @@ -2427,8 +2496,8 @@ packages: '@types/react@18.2.66': resolution: {integrity: sha512-OYTmMI4UigXeFMF/j4uv0lBBEbongSgptPrHBxqME44h9+yNov+oL6Z3ocJKo0WyXR84sQUNeyIp9MRfckvZpg==} - '@types/resolve@1.17.1': - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + '@types/resolve@1.20.2': + resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==} '@types/scheduler@0.16.3': resolution: {integrity: sha512-5cJ8CB4yAx7BH1oMvdU0Jh9lrEXyPkar6F9G/ERswkCuvP4KQZfZkSjcMbAICCpQTN4OuZn8tz0HiKv9TGZgrQ==} @@ -2686,9 +2755,6 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} @@ -2747,18 +2813,10 @@ packages: resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} engines: {node: '>= 0.4'} - array-union@1.0.2: - resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==} - engines: {node: '>=0.10.0'} - array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array-uniq@1.0.3: - resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==} - engines: {node: '>=0.10.0'} - array.prototype.findlast@1.2.4: resolution: {integrity: sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==} engines: {node: '>= 0.4'} @@ -2808,8 +2866,8 @@ packages: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} - autoprefixer@10.4.18: - resolution: {integrity: sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -2879,8 +2937,8 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -2893,10 +2951,6 @@ packages: buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} - builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} - builtins@5.0.1: resolution: {integrity: sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==} @@ -2923,8 +2977,8 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - caniuse-lite@1.0.30001593: - resolution: {integrity: sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==} + caniuse-lite@1.0.30001696: + resolution: {integrity: sha512-pDCPkvzfa39ehJtJ+OwGT/2yvT2SbjfHhiIW2LWOAcMQ7BzwxT/XuyUp4OTOd0XFWA6BKw0JalnBHgSi5DGJBQ==} chai@4.4.1: resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} @@ -2970,12 +3024,6 @@ packages: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} - clean-webpack-plugin@4.0.0: - resolution: {integrity: sha512-WuWE1nyTNAyW5T7oNyys2EN0cfP2fdRxhxnIQWiAp0bMabPdHhoGxM8A6YL2GhqwgrPnnaemVE7nv5XJ2Fhh2w==} - engines: {node: '>=10.0.0'} - peerDependencies: - webpack: '>=4.0.0 <6.0.0' - cli-cursor@3.1.0: resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} engines: {node: '>=8'} @@ -3181,10 +3229,6 @@ packages: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} - del@4.1.1: - resolution: {integrity: sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==} - engines: {node: '>=6'} - del@5.1.0: resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} engines: {node: '>=8'} @@ -3290,8 +3334,8 @@ packages: electron-to-chromium@1.4.616: resolution: {integrity: sha512-1n7zWYh8eS0L9Uy+GskE0lkBUNK83cXTVJI0pU3mGprFsbfSdAc15VTFbo+A+Bq4pwstmL30AVcEU3Fo463lNg==} - electron-to-chromium@1.4.690: - resolution: {integrity: sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==} + electron-to-chromium@1.5.90: + resolution: {integrity: sha512-C3PN4aydfW91Natdyd449Kw+BzhLmof6tzy5W1pFC5SpQxVXT+oyiyOG9AgYYSN9OdA/ik3YkCrpwqI8ug5Tug==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -3361,8 +3405,8 @@ packages: engines: {node: '>=12'} hasBin: true - escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} escape-string-regexp@1.0.5: @@ -3494,6 +3538,9 @@ packages: estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} @@ -3703,10 +3750,6 @@ packages: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@6.1.0: - resolution: {integrity: sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==} - engines: {node: '>=0.10.0'} - gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} @@ -3937,14 +3980,6 @@ packages: resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} engines: {node: '>=6'} - is-path-in-cwd@2.1.0: - resolution: {integrity: sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==} - engines: {node: '>=6'} - - is-path-inside@2.1.0: - resolution: {integrity: sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==} - engines: {node: '>=6'} - is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} @@ -4030,10 +4065,6 @@ packages: engines: {node: '>=10'} hasBin: true - jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} - jest-worker@27.5.1: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} @@ -4069,6 +4100,11 @@ packages: engines: {node: '>=4'} hasBin: true + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} + hasBin: true + json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} @@ -4301,6 +4337,11 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -4327,18 +4368,21 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.1.3: - resolution: {integrity: sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==} + next@14.2.21: + resolution: {integrity: sha512-rZmLwucLHr3/zfDMYbJXbw0ZeoBpirxkXuvsJbk7UPorvPYZhP7vq7aHbKnU7dQNCYIimRrbB2pp3xmf+wsYUg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 + '@playwright/test': ^1.41.2 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 peerDependenciesMeta: '@opentelemetry/api': optional: true + '@playwright/test': + optional: true sass: optional: true @@ -4361,6 +4405,9 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + nopt@7.2.0: resolution: {integrity: sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -4462,10 +4509,6 @@ packages: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} - p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} - p-map@3.0.0: resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} engines: {node: '>=8'} @@ -4502,9 +4545,6 @@ packages: resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} engines: {node: '>=0.10.0'} - path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} - path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} @@ -4545,26 +4585,21 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} - pify@4.0.1: - resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==} - engines: {node: '>=6'} - - pinkie-promise@2.0.1: - resolution: {integrity: sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==} - engines: {node: '>=0.10.0'} - - pinkie@2.0.4: - resolution: {integrity: sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==} - engines: {node: '>=0.10.0'} - pirates@4.0.5: resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} engines: {node: '>= 6'} @@ -4635,8 +4670,8 @@ packages: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} - postcss@8.4.38: - resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -4865,22 +4900,11 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@2.7.1: - resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-terser@7.0.2: - resolution: {integrity: sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==} - deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-terser - peerDependencies: - rollup: ^2.0.0 - rollup@2.79.1: resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} @@ -4947,15 +4971,14 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} + engines: {node: '>=10'} + hasBin: true + sentence-case@2.1.1: resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} - serialize-javascript@4.0.0: - resolution: {integrity: sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==} - - serialize-javascript@6.0.1: - resolution: {integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==} - serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} @@ -5010,6 +5033,9 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + smob@1.5.0: + resolution: {integrity: sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==} + snake-case@2.1.0: resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} @@ -5034,8 +5060,8 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} source-map-support@0.5.21: @@ -5211,22 +5237,6 @@ packages: resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==} engines: {node: '>=14.16'} - terser-webpack-plugin@5.3.10: - resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} - engines: {node: '>= 10.13.0'} - peerDependencies: - '@swc/core': '*' - esbuild: '*' - uglify-js: '*' - webpack: ^5.1.0 - peerDependenciesMeta: - '@swc/core': - optional: true - esbuild: - optional: true - uglify-js: - optional: true - terser-webpack-plugin@5.3.11: resolution: {integrity: sha512-RVCsMfuD0+cTt3EwX8hSl2Ks56EbFHWmhluwcqoPKtBnfjiT6olaq7PRIRfhyU8nnC2MrnDrBLfrD/RGE+cVXQ==} engines: {node: '>= 10.13.0'} @@ -5243,11 +5253,6 @@ packages: uglify-js: optional: true - terser@5.26.0: - resolution: {integrity: sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ==} - engines: {node: '>=10'} - hasBin: true - terser@5.37.0: resolution: {integrity: sha512-B8wRRkmre4ERucLM/uXx4MOV5cbnOlVAqUst+1+iLKPI0dOgFO28f84ptoQt9HEI537PMzfYa/d+GEPKTRXmYA==} engines: {node: '>=10'} @@ -5337,8 +5342,8 @@ packages: tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} - tslib@2.5.0: - resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} tsx@4.7.2: resolution: {integrity: sha512-BCNd4kz6fz12fyrgCTEdZHGJ9fWTGeUzXmQysh0RVocDY3h4frk05ZNCXSy4kIenF7y/QnrdiVpTsyNRn6vlAw==} @@ -5484,6 +5489,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + update-check@1.5.4: resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} @@ -5645,61 +5656,64 @@ packages: wordwrap@1.0.0: resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} - workbox-background-sync@7.0.0: - resolution: {integrity: sha512-S+m1+84gjdueM+jIKZ+I0Lx0BDHkk5Nu6a3kTVxP4fdj3gKouRNmhO8H290ybnJTOPfBDtTMXSQA/QLTvr7PeA==} + workbox-background-sync@7.1.0: + resolution: {integrity: sha512-rMbgrzueVWDFcEq1610YyDW71z0oAXLfdRHRQcKw4SGihkfOK0JUEvqWHFwA6rJ+6TClnMIn7KQI5PNN1XQXwQ==} - workbox-broadcast-update@7.0.0: - resolution: {integrity: sha512-oUuh4jzZrLySOo0tC0WoKiSg90bVAcnE98uW7F8GFiSOXnhogfNDGZelPJa+6KpGBO5+Qelv04Hqx2UD+BJqNQ==} + workbox-broadcast-update@7.1.0: + resolution: {integrity: sha512-O36hIfhjej/c5ar95pO67k1GQw0/bw5tKP7CERNgK+JdxBANQhDmIuOXZTNvwb2IHBx9hj2kxvcDyRIh5nzOgQ==} + + workbox-build@7.1.0: + resolution: {integrity: sha512-F6R94XAxjB2j4ETMkP1EXKfjECOtDmyvt0vz3BzgWJMI68TNSXIVNkgatwUKBlPGOfy9n2F/4voYRNAhEvPJNg==} + engines: {node: '>=16.0.0'} - workbox-build@7.0.0: - resolution: {integrity: sha512-CttE7WCYW9sZC+nUYhQg3WzzGPr4IHmrPnjKiu3AMXsiNQKx+l4hHl63WTrnicLmKEKHScWDH8xsGBdrYgtBzg==} + workbox-build@7.1.1: + resolution: {integrity: sha512-WdkVdC70VMpf5NBCtNbiwdSZeKVuhTEd5PV3mAwpTQCGAB5XbOny1P9egEgNdetv4srAMmMKjvBk4RD58LpooA==} engines: {node: '>=16.0.0'} - workbox-cacheable-response@7.0.0: - resolution: {integrity: sha512-0lrtyGHn/LH8kKAJVOQfSu3/80WDc9Ma8ng0p2i/5HuUndGttH+mGMSvOskjOdFImLs2XZIimErp7tSOPmu/6g==} + workbox-cacheable-response@7.1.0: + resolution: {integrity: sha512-iwsLBll8Hvua3xCuBB9h92+/e0wdsmSVgR2ZlvcfjepZWwhd3osumQB3x9o7flj+FehtWM2VHbZn8UJeBXXo6Q==} - workbox-core@7.0.0: - resolution: {integrity: sha512-81JkAAZtfVP8darBpfRTovHg8DGAVrKFgHpOArZbdFd78VqHr5Iw65f2guwjE2NlCFbPFDoez3D3/6ZvhI/rwQ==} + workbox-core@7.1.0: + resolution: {integrity: sha512-5KB4KOY8rtL31nEF7BfvU7FMzKT4B5TkbYa2tzkS+Peqj0gayMT9SytSFtNzlrvMaWgv6y/yvP9C0IbpFjV30Q==} - workbox-expiration@7.0.0: - resolution: {integrity: sha512-MLK+fogW+pC3IWU9SFE+FRStvDVutwJMR5if1g7oBJx3qwmO69BNoJQVaMXq41R0gg3MzxVfwOGKx3i9P6sOLQ==} + workbox-expiration@7.1.0: + resolution: {integrity: sha512-m5DcMY+A63rJlPTbbBNtpJ20i3enkyOtSgYfv/l8h+D6YbbNiA0zKEkCUaMsdDlxggla1oOfRkyqTvl5Ni5KQQ==} - workbox-google-analytics@7.0.0: - resolution: {integrity: sha512-MEYM1JTn/qiC3DbpvP2BVhyIH+dV/5BjHk756u9VbwuAhu0QHyKscTnisQuz21lfRpOwiS9z4XdqeVAKol0bzg==} - deprecated: It is not compatible with newer versions of GA starting with v4, as long as you are using GAv3 it should be ok, but the package is not longer being maintained + workbox-google-analytics@7.1.0: + resolution: {integrity: sha512-FvE53kBQHfVTcZyczeBVRexhh7JTkyQ8HAvbVY6mXd2n2A7Oyz/9fIwnY406ZcDhvE4NFfKGjW56N4gBiqkrew==} - workbox-navigation-preload@7.0.0: - resolution: {integrity: sha512-juWCSrxo/fiMz3RsvDspeSLGmbgC0U9tKqcUPZBCf35s64wlaLXyn2KdHHXVQrb2cqF7I0Hc9siQalainmnXJA==} + workbox-navigation-preload@7.1.0: + resolution: {integrity: sha512-4wyAbo0vNI/X0uWNJhCMKxnPanNyhybsReMGN9QUpaePLTiDpKxPqFxl4oUmBNddPwIXug01eTSLVIFXimRG/A==} - workbox-precaching@7.0.0: - resolution: {integrity: sha512-EC0vol623LJqTJo1mkhD9DZmMP604vHqni3EohhQVwhJlTgyKyOkMrZNy5/QHfOby+39xqC01gv4LjOm4HSfnA==} + workbox-precaching@7.1.0: + resolution: {integrity: sha512-LyxzQts+UEpgtmfnolo0hHdNjoB7EoRWcF7EDslt+lQGd0lW4iTvvSe3v5JiIckQSB5KTW5xiCqjFviRKPj1zA==} - workbox-range-requests@7.0.0: - resolution: {integrity: sha512-SxAzoVl9j/zRU9OT5+IQs7pbJBOUOlriB8Gn9YMvi38BNZRbM+RvkujHMo8FOe9IWrqqwYgDFBfv6sk76I1yaQ==} + workbox-range-requests@7.1.0: + resolution: {integrity: sha512-m7+O4EHolNs5yb/79CrnwPR/g/PRzMFYEdo01LqwixVnc/sbzNSvKz0d04OE3aMRel1CwAAZQheRsqGDwATgPQ==} - workbox-recipes@7.0.0: - resolution: {integrity: sha512-DntcK9wuG3rYQOONWC0PejxYYIDHyWWZB/ueTbOUDQgefaeIj1kJ7pdP3LZV2lfrj8XXXBWt+JDRSw1lLLOnww==} + workbox-recipes@7.1.0: + resolution: {integrity: sha512-NRrk4ycFN9BHXJB6WrKiRX3W3w75YNrNrzSX9cEZgFB5ubeGoO8s/SDmOYVrFYp9HMw6sh1Pm3eAY/1gVS8YLg==} - workbox-routing@7.0.0: - resolution: {integrity: sha512-8YxLr3xvqidnbVeGyRGkaV4YdlKkn5qZ1LfEePW3dq+ydE73hUUJJuLmGEykW3fMX8x8mNdL0XrWgotcuZjIvA==} + workbox-routing@7.1.0: + resolution: {integrity: sha512-oOYk+kLriUY2QyHkIilxUlVcFqwduLJB7oRZIENbqPGeBP/3TWHYNNdmGNhz1dvKuw7aqvJ7CQxn27/jprlTdg==} - workbox-strategies@7.0.0: - resolution: {integrity: sha512-dg3qJU7tR/Gcd/XXOOo7x9QoCI9nk74JopaJaYAQ+ugLi57gPsXycVdBnYbayVj34m6Y8ppPwIuecrzkpBVwbA==} + workbox-strategies@7.1.0: + resolution: {integrity: sha512-/UracPiGhUNehGjRm/tLUQ+9PtWmCbRufWtV0tNrALuf+HZ4F7cmObSEK+E4/Bx1p8Syx2tM+pkIrvtyetdlew==} - workbox-streams@7.0.0: - resolution: {integrity: sha512-moVsh+5to//l6IERWceYKGiftc+prNnqOp2sgALJJFbnNVpTXzKISlTIsrWY+ogMqt+x1oMazIdHj25kBSq/HQ==} + workbox-streams@7.1.0: + resolution: {integrity: sha512-WyHAVxRXBMfysM8ORwiZnI98wvGWTVAq/lOyBjf00pXFvG0mNaVz4Ji+u+fKa/mf1i2SnTfikoYKto4ihHeS6w==} - workbox-sw@7.0.0: - resolution: {integrity: sha512-SWfEouQfjRiZ7GNABzHUKUyj8pCoe+RwjfOIajcx6J5mtgKkN+t8UToHnpaJL5UVVOf5YhJh+OHhbVNIHe+LVA==} + workbox-sw@7.1.0: + resolution: {integrity: sha512-Hml/9+/njUXBglv3dtZ9WBKHI235AQJyLBV1G7EFmh4/mUdSQuXui80RtjDeVRrXnm/6QWgRUEHG3/YBVbxtsA==} - workbox-webpack-plugin@7.0.0: - resolution: {integrity: sha512-R1ZzCHPfzeJjLK2/TpKUhxSQ3fFDCxlWxgRhhSjMQLz3G2MlBnyw/XeYb34e7SGgSv0qG22zEhMIzjMNqNeKbw==} + workbox-webpack-plugin@7.1.0: + resolution: {integrity: sha512-em0vY0Uq7zXzOeEJYpFNX7x6q3RrRVqfaMhA4kadd3UkX/JuClgT9IUW2iX2cjmMPwI3W611c4fSRjtG5wPm2w==} engines: {node: '>=16.0.0'} peerDependencies: - webpack: ^4.4.0 || ^5.9.0 + webpack: ^4.4.0 || ^5.91.0 - workbox-window@7.0.0: - resolution: {integrity: sha512-j7P/bsAWE/a7sxqTzXo3P2ALb1reTfZdvVp6OJ/uLr/C2kZAMvjeWGm8V4htQhor7DOvYg0sSbFN2+flT5U0qA==} + workbox-window@7.1.0: + resolution: {integrity: sha512-ZHeROyqR+AS5UPzholQRDttLFqGMwP0Np8MKWAdyxsDETxq3qOAyXvqessc3GniohG6e0mAqSQyKOHmT8zPF7g==} wrap-ansi@6.2.0: resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} @@ -5768,9 +5782,9 @@ snapshots: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 - '@apideck/better-ajv-errors@0.3.6(ajv@8.12.0)': + '@apideck/better-ajv-errors@0.3.6(ajv@8.17.1)': dependencies: - ajv: 8.12.0 + ajv: 8.17.1 json-schema: 0.4.0 jsonpointer: 5.0.1 leven: 3.1.0 @@ -5780,20 +5794,28 @@ snapshots: '@babel/highlight': 7.23.4 chalk: 2.4.2 + '@babel/code-frame@7.26.2': + dependencies: + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 + picocolors: 1.1.1 + '@babel/compat-data@7.23.5': {} - '@babel/core@7.23.7': + '@babel/compat-data@7.26.5': {} + + '@babel/core@7.24.0': dependencies: '@ampproject/remapping': 2.2.1 '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 - '@babel/parser': 7.23.6 - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) + '@babel/helpers': 7.24.0 + '@babel/parser': 7.24.0 + '@babel/template': 7.24.0 + '@babel/traverse': 7.24.0 + '@babel/types': 7.24.0 convert-source-map: 2.0.0 debug: 4.3.4 gensync: 1.0.0-beta.2 @@ -5802,18 +5824,18 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/core@7.24.0': + '@babel/core@7.26.7': dependencies: '@ampproject/remapping': 2.2.1 - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.24.0) - '@babel/helpers': 7.24.0 - '@babel/parser': 7.24.0 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.0 - '@babel/types': 7.24.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/core@7.26.7) + '@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.3.4 gensync: 1.0.0-beta.2 @@ -5829,13 +5851,21 @@ snapshots: '@jridgewell/trace-mapping': 0.3.20 jsesc: 2.5.2 + '@babel/generator@7.26.5': + dependencies: + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + '@jridgewell/gen-mapping': 0.3.8 + '@jridgewell/trace-mapping': 0.3.25 + jsesc: 3.1.0 + '@babel/helper-annotate-as-pure@7.22.5': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/helper-builder-binary-assignment-operator-visitor@7.22.15': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/helper-compilation-targets@7.23.6': dependencies: @@ -5845,29 +5875,37 @@ snapshots: lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.23.7)': + '@babel/helper-compilation-targets@7.26.5': dependencies: - '@babel/core': 7.23.7 + '@babel/compat-data': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 + lru-cache: 5.1.1 + semver: 6.3.1 + + '@babel/helper-create-class-features-plugin@7.23.7(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.26.7) '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 semver: 6.3.1 - '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.23.7)': + '@babel/helper-create-regexp-features-plugin@7.22.15(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.22.5 regexpu-core: 5.3.2 semver: 6.3.1 - '@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.23.7)': + '@babel/helper-define-polyfill-provider@0.4.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 debug: 4.3.4 @@ -5889,46 +5927,62 @@ snapshots: '@babel/helper-member-expression-to-functions@7.23.0': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/helper-module-imports@7.22.15': dependencies: '@babel/types': 7.23.6 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.23.7)': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/core': 7.23.7 + '@babel/traverse': 7.26.7 + '@babel/types': 7.26.7 + transitivePeerDependencies: + - supports-color + + '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': + dependencies: + '@babel/core': 7.24.0 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 - '@babel/helper-module-transforms@7.23.3(@babel/core@7.24.0)': + '@babel/helper-module-transforms@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.24.0 + '@babel/core': 7.26.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-module-imports': 7.22.15 '@babel/helper-simple-access': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 '@babel/helper-validator-identifier': 7.22.20 + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.7)': + dependencies: + '@babel/core': 7.26.7 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.7 + transitivePeerDependencies: + - supports-color + '@babel/helper-optimise-call-expression@7.22.5': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/helper-plugin-utils@7.22.5': {} - '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.23.7)': + '@babel/helper-remap-async-to-generator@7.22.20(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-wrap-function': 7.22.20 - '@babel/helper-replace-supers@7.22.20(@babel/core@7.23.7)': + '@babel/helper-replace-supers@7.22.20(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-member-expression-to-functions': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 @@ -5939,7 +5993,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.22.5': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/helper-split-export-declaration@7.22.6': dependencies: @@ -5947,23 +6001,21 @@ snapshots: '@babel/helper-string-parser@7.23.4': {} + '@babel/helper-string-parser@7.25.9': {} + '@babel/helper-validator-identifier@7.22.20': {} + '@babel/helper-validator-identifier@7.25.9': {} + '@babel/helper-validator-option@7.23.5': {} + '@babel/helper-validator-option@7.25.9': {} + '@babel/helper-wrap-function@7.22.20': dependencies: '@babel/helper-function-name': 7.23.0 - '@babel/template': 7.22.15 - '@babel/types': 7.23.6 - - '@babel/helpers@7.23.7': - dependencies: - '@babel/template': 7.22.15 - '@babel/traverse': 7.23.7 - '@babel/types': 7.23.6 - transitivePeerDependencies: - - supports-color + '@babel/template': 7.24.0 + '@babel/types': 7.24.0 '@babel/helpers@7.24.0': dependencies: @@ -5973,6 +6025,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@babel/helpers@7.26.7': + dependencies: + '@babel/template': 7.25.9 + '@babel/types': 7.26.7 + '@babel/highlight@7.23.4': dependencies: '@babel/helper-validator-identifier': 7.22.20 @@ -5981,509 +6038,513 @@ snapshots: '@babel/parser@7.23.6': dependencies: - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 '@babel/parser@7.24.0': dependencies: '@babel/types': 7.24.0 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.23.7)': + '@babel/parser@7.26.7': + dependencies: + '@babel/types': 7.26.7 + + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.26.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.23.7)': + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.23.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7)': + '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 - '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.23.7)': + '@babel/plugin-syntax-async-generators@7.8.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.23.7)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.23.7)': + '@babel/plugin-syntax-class-static-block@7.14.5(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-dynamic-import@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-export-namespace-from@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-import-assertions@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-import-attributes@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.23.7)': + '@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.23.7)': + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.23.7)': + '@babel/plugin-syntax-numeric-separator@7.10.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-optional-catch-binding@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.23.7)': + '@babel/plugin-syntax-optional-chaining@7.8.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.23.7)': + '@babel/plugin-syntax-private-property-in-object@7.14.5(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.23.7)': + '@babel/plugin-syntax-top-level-await@7.14.5(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.23.7)': + '@babel/plugin-syntax-unicode-sets-regex@7.18.6(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-arrow-functions@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.23.7)': + '@babel/plugin-transform-async-generator-functions@7.23.7(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.7) - '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-async-to-generator@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-module-imports': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.23.7) + '@babel/helper-remap-async-to-generator': 7.22.20(@babel/core@7.26.7) - '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-block-scoped-functions@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-block-scoping@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-class-properties@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-class-static-block@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.7) - '@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7)': + '@babel/plugin-transform-classes@7.23.5(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.22.5 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.26.7) '@babel/helper-split-export-declaration': 7.22.6 globals: 11.12.0 - '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-computed-properties@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/template': 7.22.15 + '@babel/template': 7.24.0 - '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-destructuring@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-dotall-regex@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-duplicate-keys@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-dynamic-import@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-exponentiation-operator@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-builder-binary-assignment-operator-visitor': 7.22.15 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-export-namespace-from@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.23.7)': + '@babel/plugin-transform-for-of@7.23.6(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-function-name@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-function-name': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-json-strings@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-literals@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-literals@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-logical-assignment-operators@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.7) - '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-member-expression-literals@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-modules-amd@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-modules-commonjs@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-simple-access': 7.22.5 - '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-modules-systemjs@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-identifier': 7.22.20 - '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-modules-umd@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-module-transforms': 7.23.3(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.23.7)': + '@babel/plugin-transform-named-capturing-groups-regex@7.22.5(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-new-target@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-nullish-coalescing-operator@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-numeric-separator@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.7) - '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-object-rest-spread@7.23.4(@babel/core@7.26.7)': dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.26.7) - '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-object-super@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) + '@babel/helper-replace-supers': 7.22.20(@babel/core@7.26.7) - '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-optional-catch-binding@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-optional-chaining@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.7) - '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-parameters@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-private-methods@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.23.7)': + '@babel/plugin-transform-private-property-in-object@7.23.4(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.23.7) + '@babel/helper-create-class-features-plugin': 7.23.7(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.7) - '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-property-literals@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-regenerator@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 regenerator-transform: 0.15.2 - '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-reserved-words@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-shorthand-properties@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-spread@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-spread@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-skip-transparent-expression-wrappers': 7.22.5 - '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-sticky-regex@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-template-literals@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-typeof-symbol@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-unicode-escapes@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-unicode-property-regex@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-unicode-regex@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.23.7)': + '@babel/plugin-transform-unicode-sets-regex@7.23.3(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 - '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-create-regexp-features-plugin': 7.22.15(@babel/core@7.26.7) '@babel/helper-plugin-utils': 7.22.5 - '@babel/preset-env@7.23.7(@babel/core@7.23.7)': + '@babel/preset-env@7.23.7(@babel/core@7.26.7)': dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-validator-option': 7.23.5 - '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.23.7) - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.23.7) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.23.7) - '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.23.7) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.23.7) - '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.23.7) - '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.23.7) - '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.23.7) - '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) - '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.23.7) - '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.23.7) - '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.23.7) - '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.23.7) - '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.23.7) - babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.23.7) - babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.23.7) - babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.23.7) + '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly': 7.23.7(@babel/core@7.26.7) + '@babel/plugin-proposal-private-property-in-object': 7.21.0-placeholder-for-preset-env.2(@babel/core@7.26.7) + '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.26.7) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.7) + '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.26.7) + '@babel/plugin-syntax-dynamic-import': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-export-namespace-from': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-import-assertions': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-syntax-import-attributes': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.26.7) + '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.26.7) + '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.26.7) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.26.7) + '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.7) + '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.7) + '@babel/plugin-syntax-unicode-sets-regex': 7.18.6(@babel/core@7.26.7) + '@babel/plugin-transform-arrow-functions': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-async-generator-functions': 7.23.7(@babel/core@7.26.7) + '@babel/plugin-transform-async-to-generator': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-block-scoped-functions': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.26.7) + '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-duplicate-keys': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-dynamic-import': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-exponentiation-operator': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-export-namespace-from': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-for-of': 7.23.6(@babel/core@7.26.7) + '@babel/plugin-transform-function-name': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-json-strings': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-literals': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-logical-assignment-operators': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-member-expression-literals': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-modules-amd': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-modules-commonjs': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-modules-systemjs': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-modules-umd': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-named-capturing-groups-regex': 7.22.5(@babel/core@7.26.7) + '@babel/plugin-transform-new-target': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-nullish-coalescing-operator': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-numeric-separator': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-object-rest-spread': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-object-super': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-optional-catch-binding': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-optional-chaining': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-parameters': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-private-methods': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-private-property-in-object': 7.23.4(@babel/core@7.26.7) + '@babel/plugin-transform-property-literals': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-regenerator': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-reserved-words': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-shorthand-properties': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-spread': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-sticky-regex': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-template-literals': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-typeof-symbol': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-escapes': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-property-regex': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-regex': 7.23.3(@babel/core@7.26.7) + '@babel/plugin-transform-unicode-sets-regex': 7.23.3(@babel/core@7.26.7) + '@babel/preset-modules': 0.1.6-no-external-plugins(@babel/core@7.26.7) + babel-plugin-polyfill-corejs2: 0.4.7(@babel/core@7.26.7) + babel-plugin-polyfill-corejs3: 0.8.7(@babel/core@7.26.7) + babel-plugin-polyfill-regenerator: 0.5.4(@babel/core@7.26.7) core-js-compat: 3.35.0 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.23.7)': + '@babel/preset-modules@0.1.6-no-external-plugins(@babel/core@7.26.7)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-plugin-utils': 7.22.5 - '@babel/types': 7.23.6 + '@babel/types': 7.24.0 esutils: 2.0.3 '@babel/regjsgen@0.8.0': {} @@ -6509,7 +6570,13 @@ snapshots: '@babel/parser': 7.24.0 '@babel/types': 7.24.0 - '@babel/traverse@7.23.7': + '@babel/template@7.25.9': + dependencies: + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.7 + '@babel/types': 7.26.7 + + '@babel/traverse@7.24.0': dependencies: '@babel/code-frame': 7.23.5 '@babel/generator': 7.23.6 @@ -6517,23 +6584,20 @@ snapshots: '@babel/helper-function-name': 7.23.0 '@babel/helper-hoist-variables': 7.22.5 '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.23.6 - '@babel/types': 7.23.6 + '@babel/parser': 7.24.0 + '@babel/types': 7.24.0 debug: 4.3.4 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.24.0': + '@babel/traverse@7.26.7': dependencies: - '@babel/code-frame': 7.23.5 - '@babel/generator': 7.23.6 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.22.6 - '@babel/parser': 7.24.0 - '@babel/types': 7.24.0 + '@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.4 globals: 11.12.0 transitivePeerDependencies: @@ -6551,34 +6615,34 @@ snapshots: '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 + '@babel/types@7.26.7': + dependencies: + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@cspotcode/source-map-support@0.8.1': dependencies: '@jridgewell/trace-mapping': 0.3.9 '@discoveryjs/json-ext@0.5.7': {} - '@ducanh2912/next-pwa@10.2.5(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(webpack@5.89.0)': + '@ducanh2912/next-pwa@10.2.9(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(webpack@5.89.0)': dependencies: - clean-webpack-plugin: 4.0.0(webpack@5.89.0) fast-glob: 3.3.2 - next: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) - semver: 7.5.4 - terser-webpack-plugin: 5.3.10(webpack@5.89.0) + next: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + semver: 7.6.3 webpack: 5.89.0 - workbox-build: 7.0.0 - workbox-core: 7.0.0 - workbox-webpack-plugin: 7.0.0(webpack@5.89.0) - workbox-window: 7.0.0 + workbox-build: 7.1.1 + workbox-core: 7.1.0 + workbox-webpack-plugin: 7.1.0(webpack@5.89.0) + workbox-window: 7.1.0 transitivePeerDependencies: - - '@swc/core' - '@types/babel__core' - - esbuild - supports-color - - uglify-js '@emnapi/runtime@0.45.0': dependencies: - tslib: 2.5.0 + tslib: 2.8.1 optional: true '@esbuild/aix-ppc64@0.19.12': @@ -6967,11 +7031,6 @@ snapshots: '@jridgewell/set-array@1.2.1': {} - '@jridgewell/source-map@0.3.5': - dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.20 - '@jridgewell/source-map@0.3.6': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -6996,7 +7055,7 @@ snapshots: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.15 - '@legendapp/state@2.1.8(react@18.2.0)': + '@legendapp/state@2.1.15(react@18.2.0)': dependencies: use-sync-external-store: 1.2.0(react@18.2.0) optionalDependencies: @@ -7009,37 +7068,37 @@ snapshots: - bufferutil - utf-8-validate - '@next/env@14.1.3': {} + '@next/env@14.2.21': {} '@next/eslint-plugin-next@14.1.3': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.1.3': + '@next/swc-darwin-arm64@14.2.21': optional: true - '@next/swc-darwin-x64@14.1.3': + '@next/swc-darwin-x64@14.2.21': optional: true - '@next/swc-linux-arm64-gnu@14.1.3': + '@next/swc-linux-arm64-gnu@14.2.21': optional: true - '@next/swc-linux-arm64-musl@14.1.3': + '@next/swc-linux-arm64-musl@14.2.21': optional: true - '@next/swc-linux-x64-gnu@14.1.3': + '@next/swc-linux-x64-gnu@14.2.21': optional: true - '@next/swc-linux-x64-musl@14.1.3': + '@next/swc-linux-x64-musl@14.2.21': optional: true - '@next/swc-win32-arm64-msvc@14.1.3': + '@next/swc-win32-arm64-msvc@14.2.21': optional: true - '@next/swc-win32-ia32-msvc@14.1.3': + '@next/swc-win32-ia32-msvc@14.2.21': optional: true - '@next/swc-win32-x64-msvc@14.1.3': + '@next/swc-win32-x64-msvc@14.2.21': optional: true '@nodelib/fs.scandir@2.1.5': @@ -7300,21 +7359,21 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - '@rollup/plugin-babel@5.3.1(@babel/core@7.23.7)(rollup@2.79.1)': + '@rollup/plugin-babel@5.3.1(@babel/core@7.26.7)(rollup@2.79.1)': dependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 '@babel/helper-module-imports': 7.22.15 '@rollup/pluginutils': 3.1.0(rollup@2.79.1) rollup: 2.79.1 - '@rollup/plugin-node-resolve@11.2.1(rollup@2.79.1)': + '@rollup/plugin-node-resolve@15.3.1(rollup@2.79.1)': dependencies: - '@rollup/pluginutils': 3.1.0(rollup@2.79.1) - '@types/resolve': 1.17.1 - builtin-modules: 3.3.0 + '@rollup/pluginutils': 5.1.4(rollup@2.79.1) + '@types/resolve': 1.20.2 deepmerge: 4.3.1 is-module: 1.0.0 resolve: 1.22.4 + optionalDependencies: rollup: 2.79.1 '@rollup/plugin-replace@2.4.2(rollup@2.79.1)': @@ -7323,6 +7382,14 @@ snapshots: magic-string: 0.25.9 rollup: 2.79.1 + '@rollup/plugin-terser@0.4.4(rollup@2.79.1)': + dependencies: + serialize-javascript: 6.0.2 + smob: 1.5.0 + terser: 5.37.0 + optionalDependencies: + rollup: 2.79.1 + '@rollup/pluginutils@3.1.0(rollup@2.79.1)': dependencies: '@types/estree': 0.0.39 @@ -7330,6 +7397,14 @@ snapshots: picomatch: 2.3.1 rollup: 2.79.1 + '@rollup/pluginutils@5.1.4(rollup@2.79.1)': + dependencies: + '@types/estree': 1.0.6 + estree-walker: 2.0.2 + picomatch: 4.0.2 + optionalDependencies: + rollup: 2.79.1 + '@rollup/rollup-android-arm-eabi@4.18.0': optional: true @@ -7400,9 +7475,12 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.10 - '@swc/helpers@0.5.2': + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.5': dependencies: - tslib: 2.5.0 + '@swc/counter': 0.1.3 + tslib: 2.8.1 '@t3-oss/env-core@0.9.2(typescript@5.4.2)(zod@3.22.4)': dependencies: @@ -7440,11 +7518,11 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.403 - '@trpc/next@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/react-query@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/server@11.0.0-rc.403)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@11.0.0-rc.403)(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': + '@trpc/next@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/react-query@11.0.0-rc.403(@tanstack/react-query@5.28.6(react@18.2.0))(@trpc/client@11.0.0-rc.403(@trpc/server@11.0.0-rc.403))(@trpc/server@11.0.0-rc.403)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(@trpc/server@11.0.0-rc.403)(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: '@trpc/client': 11.0.0-rc.403(@trpc/server@11.0.0-rc.403) '@trpc/server': 11.0.0-rc.403 - next: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 react-dom: 18.2.0(react@18.2.0) optionalDependencies: @@ -7511,7 +7589,7 @@ snapshots: '@types/eslint-scope@3.7.7': dependencies: - '@types/eslint': 9.6.1 + '@types/eslint': 8.56.5 '@types/estree': 1.0.6 '@types/eslint@8.56.5': @@ -7519,11 +7597,6 @@ snapshots: '@types/estree': 1.0.1 '@types/json-schema': 7.0.12 - '@types/eslint@9.6.1': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - '@types/estree@0.0.39': {} '@types/estree@1.0.1': {} @@ -7588,9 +7661,7 @@ snapshots: '@types/scheduler': 0.16.3 csstype: 3.1.2 - '@types/resolve@1.17.1': - dependencies: - '@types/node': 20.11.28 + '@types/resolve@1.20.2': {} '@types/scheduler@0.16.3': {} @@ -7668,7 +7739,7 @@ snapshots: globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 - semver: 7.5.4 + semver: 7.6.2 ts-api-utils: 1.0.1(typescript@5.4.2) optionalDependencies: typescript: 5.4.2 @@ -7684,7 +7755,7 @@ snapshots: '@typescript-eslint/types': 7.2.0 '@typescript-eslint/typescript-estree': 7.2.0(typescript@5.4.2) eslint: 8.57.0 - semver: 7.5.4 + semver: 7.6.2 transitivePeerDependencies: - supports-color - typescript @@ -7708,16 +7779,16 @@ snapshots: dependencies: crypto-js: 4.2.0 - '@vercel/analytics@1.2.2(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + '@vercel/analytics@1.2.2(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': dependencies: server-only: 0.0.1 optionalDependencies: - next: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 - '@vercel/speed-insights@1.0.10(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + '@vercel/speed-insights@1.0.10(next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': optionalDependencies: - next: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 '@vitest/expect@1.6.0': @@ -7880,13 +7951,6 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 @@ -7944,14 +8008,8 @@ snapshots: get-intrinsic: 1.2.4 is-string: 1.0.7 - array-union@1.0.2: - dependencies: - array-uniq: 1.0.3 - array-union@2.1.0: {} - array-uniq@1.0.3: {} - array.prototype.findlast@1.2.4: dependencies: call-bind: 1.0.7 @@ -8014,7 +8072,7 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.5.0 + tslib: 2.8.1 async@3.2.5: {} @@ -8026,13 +8084,13 @@ snapshots: at-least-node@1.0.0: {} - autoprefixer@10.4.18(postcss@8.4.35): + autoprefixer@10.4.20(postcss@8.4.35): dependencies: - browserslist: 4.23.0 - caniuse-lite: 1.0.30001593 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001696 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.0 + picocolors: 1.1.1 postcss: 8.4.35 postcss-value-parser: 4.2.0 @@ -8054,27 +8112,27 @@ snapshots: dependencies: dequal: 2.0.3 - babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.23.7): + babel-plugin-polyfill-corejs2@0.4.7(@babel/core@7.26.7): dependencies: '@babel/compat-data': 7.23.5 - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.26.7) semver: 6.3.1 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.23.7): + babel-plugin-polyfill-corejs3@0.8.7(@babel/core@7.26.7): dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.26.7) core-js-compat: 3.35.0 transitivePeerDependencies: - supports-color - babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.23.7): + babel-plugin-polyfill-regenerator@0.5.4(@babel/core@7.26.7): dependencies: - '@babel/core': 7.23.7 - '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.23.7) + '@babel/core': 7.26.7 + '@babel/helper-define-polyfill-provider': 0.4.4(@babel/core@7.26.7) transitivePeerDependencies: - supports-color @@ -8109,17 +8167,17 @@ snapshots: browserslist@4.22.2: dependencies: - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001696 electron-to-chromium: 1.4.616 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) - browserslist@4.23.0: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001593 - electron-to-chromium: 1.4.690 - node-releases: 2.0.14 - update-browserslist-db: 1.0.13(browserslist@4.23.0) + caniuse-lite: 1.0.30001696 + electron-to-chromium: 1.5.90 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) buffer-crc32@0.2.13: {} @@ -8130,11 +8188,9 @@ snapshots: base64-js: 1.5.1 ieee754: 1.2.1 - builtin-modules@3.3.0: {} - builtins@5.0.1: dependencies: - semver: 7.5.4 + semver: 7.6.2 busboy@1.6.0: dependencies: @@ -8159,7 +8215,7 @@ snapshots: camelcase-css@2.0.1: {} - caniuse-lite@1.0.30001593: {} + caniuse-lite@1.0.30001696: {} chai@4.4.1: dependencies: @@ -8236,11 +8292,6 @@ snapshots: clean-stack@2.2.0: {} - clean-webpack-plugin@4.0.0(webpack@5.89.0): - dependencies: - del: 4.1.1 - webpack: 5.89.0 - cli-cursor@3.1.0: dependencies: restore-cursor: 3.1.0 @@ -8327,7 +8378,7 @@ snapshots: core-js-compat@3.35.0: dependencies: - browserslist: 4.22.2 + browserslist: 4.24.4 core-js-pure@3.32.1: {} @@ -8403,16 +8454,6 @@ snapshots: escodegen: 2.1.0 esprima: 4.0.1 - del@4.1.1: - dependencies: - '@types/glob': 7.2.0 - globby: 6.1.0 - is-path-cwd: 2.2.0 - is-path-in-cwd: 2.1.0 - p-map: 2.1.0 - pify: 4.0.1 - rimraf: 2.7.1 - del@5.1.0: dependencies: globby: 10.0.2 @@ -8510,7 +8551,7 @@ snapshots: '@one-ini/wasm': 0.1.1 commander: 10.0.1 minimatch: 9.0.1 - semver: 7.5.4 + semver: 7.6.2 ejs@3.1.9: dependencies: @@ -8518,7 +8559,7 @@ snapshots: electron-to-chromium@1.4.616: {} - electron-to-chromium@1.4.690: {} + electron-to-chromium@1.5.90: {} emoji-regex@8.0.0: {} @@ -8715,7 +8756,7 @@ snapshots: '@esbuild/win32-ia32': 0.20.2 '@esbuild/win32-x64': 0.20.2 - escalade@3.1.1: {} + escalade@3.2.0: {} escape-string-regexp@1.0.5: {} @@ -8913,6 +8954,8 @@ snapshots: estree-walker@1.0.1: {} + estree-walker@2.0.2: {} + estree-walker@3.0.3: dependencies: '@types/estree': 1.0.1 @@ -9173,14 +9216,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@6.1.0: - dependencies: - array-union: 1.0.2 - glob: 7.2.3 - object-assign: 4.1.1 - pify: 2.3.0 - pinkie-promise: 2.0.1 - gopd@1.0.1: dependencies: get-intrinsic: 1.2.4 @@ -9428,14 +9463,6 @@ snapshots: is-path-cwd@2.2.0: {} - is-path-in-cwd@2.1.0: - dependencies: - is-path-inside: 2.1.0 - - is-path-inside@2.1.0: - dependencies: - path-is-inside: 1.0.2 - is-path-inside@3.0.3: {} is-plain-object@5.0.0: {} @@ -9515,12 +9542,6 @@ snapshots: filelist: 1.0.4 minimatch: 3.1.2 - jest-worker@26.6.2: - dependencies: - '@types/node': 20.11.28 - merge-stream: 2.0.0 - supports-color: 7.2.0 - jest-worker@27.5.1: dependencies: '@types/node': 20.11.28 @@ -9556,6 +9577,8 @@ snapshots: jsesc@2.5.2: {} + jsesc@3.1.0: {} + json-parse-even-better-errors@2.3.1: {} json-schema-traverse@0.4.1: {} @@ -9756,15 +9779,17 @@ snapshots: nanoid@3.3.7: {} + nanoid@3.3.8: {} + natural-compare@1.4.0: {} neo-async@2.6.2: {} netmask@2.0.2: {} - next-axiom@1.3.0(@types/node@20.11.28)(next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0): + next-axiom@1.3.0(@types/node@20.11.28)(next@14.2.21(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)(terser@5.37.0): dependencies: - next: 14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + next: 14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react: 18.2.0 remeda: 1.33.0 vitest: 1.6.0(@types/node@20.11.28)(terser@5.37.0) @@ -9795,27 +9820,28 @@ snapshots: react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - next@14.1.3(@babel/core@7.23.7)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): + next@14.2.21(@babel/core@7.26.7)(@playwright/test@1.42.1)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@next/env': 14.1.3 - '@swc/helpers': 0.5.2 + '@next/env': 14.2.21 + '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001593 + caniuse-lite: 1.0.30001696 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) - styled-jsx: 5.1.1(@babel/core@7.23.7)(react@18.2.0) + styled-jsx: 5.1.1(@babel/core@7.26.7)(react@18.2.0) optionalDependencies: - '@next/swc-darwin-arm64': 14.1.3 - '@next/swc-darwin-x64': 14.1.3 - '@next/swc-linux-arm64-gnu': 14.1.3 - '@next/swc-linux-arm64-musl': 14.1.3 - '@next/swc-linux-x64-gnu': 14.1.3 - '@next/swc-linux-x64-musl': 14.1.3 - '@next/swc-win32-arm64-msvc': 14.1.3 - '@next/swc-win32-ia32-msvc': 14.1.3 - '@next/swc-win32-x64-msvc': 14.1.3 + '@next/swc-darwin-arm64': 14.2.21 + '@next/swc-darwin-x64': 14.2.21 + '@next/swc-linux-arm64-gnu': 14.2.21 + '@next/swc-linux-arm64-musl': 14.2.21 + '@next/swc-linux-x64-gnu': 14.2.21 + '@next/swc-linux-x64-musl': 14.2.21 + '@next/swc-win32-arm64-msvc': 14.2.21 + '@next/swc-win32-ia32-msvc': 14.2.21 + '@next/swc-win32-x64-msvc': 14.2.21 + '@playwright/test': 1.42.1 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -9844,6 +9870,8 @@ snapshots: node-releases@2.0.14: {} + node-releases@2.0.19: {} + nopt@7.2.0: dependencies: abbrev: 2.0.0 @@ -9965,8 +9993,6 @@ snapshots: dependencies: p-limit: 3.1.0 - p-map@2.1.0: {} - p-map@3.0.0: dependencies: aggregate-error: 3.1.0 @@ -10016,8 +10042,6 @@ snapshots: path-is-absolute@1.0.1: {} - path-is-inside@1.0.2: {} - path-key@3.1.1: {} path-key@4.0.0: {} @@ -10047,17 +10071,13 @@ snapshots: picocolors@1.0.1: {} - picomatch@2.3.1: {} - - pify@2.3.0: {} + picocolors@1.1.1: {} - pify@4.0.1: {} + picomatch@2.3.1: {} - pinkie-promise@2.0.1: - dependencies: - pinkie: 2.0.4 + picomatch@4.0.2: {} - pinkie@2.0.4: {} + pify@2.3.0: {} pirates@4.0.5: {} @@ -10111,9 +10131,9 @@ snapshots: postcss@8.4.31: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 postcss@8.4.32: dependencies: @@ -10127,11 +10147,11 @@ snapshots: picocolors: 1.0.0 source-map-js: 1.0.2 - postcss@8.4.38: + postcss@8.5.1: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.0 - source-map-js: 1.2.0 + nanoid: 3.3.8 + picocolors: 1.1.1 + source-map-js: 1.2.1 prelude-ls@1.2.1: {} @@ -10327,25 +10347,13 @@ snapshots: reusify@1.0.4: {} - rimraf@2.7.1: - dependencies: - glob: 7.2.3 - rimraf@3.0.2: dependencies: glob: 7.2.3 - rollup-plugin-terser@7.0.2(rollup@2.79.1): - dependencies: - '@babel/code-frame': 7.23.5 - jest-worker: 26.6.2 - rollup: 2.79.1 - serialize-javascript: 4.0.0 - terser: 5.26.0 - rollup@2.79.1: optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 rollup@4.18.0: dependencies: @@ -10381,7 +10389,7 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.5.0 + tslib: 2.8.1 safe-array-concat@1.1.0: dependencies: @@ -10406,7 +10414,7 @@ snapshots: schema-utils@3.3.0: dependencies: - '@types/json-schema': 7.0.12 + '@types/json-schema': 7.0.15 ajv: 6.12.6 ajv-keywords: 3.5.2(ajv@6.12.6) @@ -10429,19 +10437,13 @@ snapshots: semver@7.6.2: {} + semver@7.6.3: {} + sentence-case@2.1.1: dependencies: no-case: 2.3.2 upper-case-first: 1.1.2 - serialize-javascript@4.0.0: - dependencies: - randombytes: 2.1.0 - - serialize-javascript@6.0.1: - dependencies: - randombytes: 2.1.0 - serialize-javascript@6.0.2: dependencies: randombytes: 2.1.0 @@ -10521,6 +10523,8 @@ snapshots: smart-buffer@4.2.0: {} + smob@1.5.0: {} + snake-case@2.1.0: dependencies: no-case: 2.3.2 @@ -10547,7 +10551,7 @@ snapshots: source-map-js@1.0.2: {} - source-map-js@1.2.0: {} + source-map-js@1.2.1: {} source-map-support@0.5.21: dependencies: @@ -10665,12 +10669,12 @@ snapshots: dependencies: js-tokens: 9.0.0 - styled-jsx@5.1.1(@babel/core@7.23.7)(react@18.2.0): + styled-jsx@5.1.1(@babel/core@7.26.7)(react@18.2.0): dependencies: client-only: 0.0.1 react: 18.2.0 optionalDependencies: - '@babel/core': 7.23.7 + '@babel/core': 7.26.7 sucrase@3.32.0: dependencies: @@ -10760,15 +10764,6 @@ snapshots: type-fest: 2.19.0 unique-string: 3.0.0 - terser-webpack-plugin@5.3.10(webpack@5.89.0): - dependencies: - '@jridgewell/trace-mapping': 0.3.20 - jest-worker: 27.5.1 - schema-utils: 3.3.0 - serialize-javascript: 6.0.1 - terser: 5.26.0 - webpack: 5.89.0 - terser-webpack-plugin@5.3.11(webpack@5.89.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -10778,13 +10773,6 @@ snapshots: terser: 5.37.0 webpack: 5.89.0 - terser@5.26.0: - dependencies: - '@jridgewell/source-map': 0.3.5 - acorn: 8.11.2 - commander: 2.20.3 - source-map-support: 0.5.21 - terser@5.37.0: dependencies: '@jridgewell/source-map': 0.3.6 @@ -10873,7 +10861,7 @@ snapshots: tslib@1.14.1: {} - tslib@2.5.0: {} + tslib@2.8.1: {} tsx@4.7.2: dependencies: @@ -11001,14 +10989,14 @@ snapshots: update-browserslist-db@1.0.13(browserslist@4.22.2): dependencies: browserslist: 4.22.2 - escalade: 3.1.1 - picocolors: 1.0.0 + escalade: 3.2.0 + picocolors: 1.1.1 - update-browserslist-db@1.0.13(browserslist@4.23.0): + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: - browserslist: 4.23.0 - escalade: 3.1.1 - picocolors: 1.0.0 + browserslist: 4.24.4 + escalade: 3.2.0 + picocolors: 1.1.1 update-check@1.5.4: dependencies: @@ -11057,7 +11045,7 @@ snapshots: vite@5.2.13(@types/node@20.11.28)(terser@5.37.0): dependencies: esbuild: 0.20.2 - postcss: 8.4.38 + postcss: 8.5.1 rollup: 4.18.0 optionalDependencies: '@types/node': 20.11.28 @@ -11155,7 +11143,7 @@ snapshots: '@webassemblyjs/wasm-parser': 1.14.1 acorn: 8.14.0 acorn-import-assertions: 1.9.0(acorn@8.14.0) - browserslist: 4.23.0 + browserslist: 4.24.4 chrome-trace-event: 1.0.4 enhanced-resolve: 5.18.0 es-module-lexer: 1.6.0 @@ -11239,26 +11227,70 @@ snapshots: wordwrap@1.0.0: {} - workbox-background-sync@7.0.0: + workbox-background-sync@7.1.0: dependencies: idb: 7.1.1 - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-broadcast-update@7.0.0: + workbox-broadcast-update@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-build@7.0.0: + workbox-build@7.1.0: dependencies: - '@apideck/better-ajv-errors': 0.3.6(ajv@8.12.0) - '@babel/core': 7.23.7 - '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) + '@babel/core': 7.26.7 + '@babel/preset-env': 7.23.7(@babel/core@7.26.7) '@babel/runtime': 7.23.7 - '@rollup/plugin-babel': 5.3.1(@babel/core@7.23.7)(rollup@2.79.1) - '@rollup/plugin-node-resolve': 11.2.1(rollup@2.79.1) + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.7)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.1) '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@rollup/plugin-terser': 0.4.4(rollup@2.79.1) '@surma/rollup-plugin-off-main-thread': 2.2.3 - ajv: 8.12.0 + ajv: 8.17.1 + common-tags: 1.8.2 + fast-json-stable-stringify: 2.1.0 + fs-extra: 9.1.0 + glob: 7.2.3 + lodash: 4.17.21 + pretty-bytes: 5.6.0 + rollup: 2.79.1 + source-map: 0.8.0-beta.0 + stringify-object: 3.3.0 + strip-comments: 2.0.1 + tempy: 0.6.0 + upath: 1.2.0 + workbox-background-sync: 7.1.0 + workbox-broadcast-update: 7.1.0 + workbox-cacheable-response: 7.1.0 + workbox-core: 7.1.0 + workbox-expiration: 7.1.0 + workbox-google-analytics: 7.1.0 + workbox-navigation-preload: 7.1.0 + workbox-precaching: 7.1.0 + workbox-range-requests: 7.1.0 + workbox-recipes: 7.1.0 + workbox-routing: 7.1.0 + workbox-strategies: 7.1.0 + workbox-streams: 7.1.0 + workbox-sw: 7.1.0 + workbox-window: 7.1.0 + transitivePeerDependencies: + - '@types/babel__core' + - supports-color + + workbox-build@7.1.1: + dependencies: + '@apideck/better-ajv-errors': 0.3.6(ajv@8.17.1) + '@babel/core': 7.26.7 + '@babel/preset-env': 7.23.7(@babel/core@7.26.7) + '@babel/runtime': 7.23.7 + '@rollup/plugin-babel': 5.3.1(@babel/core@7.26.7)(rollup@2.79.1) + '@rollup/plugin-node-resolve': 15.3.1(rollup@2.79.1) + '@rollup/plugin-replace': 2.4.2(rollup@2.79.1) + '@rollup/plugin-terser': 0.4.4(rollup@2.79.1) + '@surma/rollup-plugin-off-main-thread': 2.2.3 + ajv: 8.17.1 common-tags: 1.8.2 fast-json-stable-stringify: 2.1.0 fs-extra: 9.1.0 @@ -11266,103 +11298,102 @@ snapshots: lodash: 4.17.21 pretty-bytes: 5.6.0 rollup: 2.79.1 - rollup-plugin-terser: 7.0.2(rollup@2.79.1) source-map: 0.8.0-beta.0 stringify-object: 3.3.0 strip-comments: 2.0.1 tempy: 0.6.0 upath: 1.2.0 - workbox-background-sync: 7.0.0 - workbox-broadcast-update: 7.0.0 - workbox-cacheable-response: 7.0.0 - workbox-core: 7.0.0 - workbox-expiration: 7.0.0 - workbox-google-analytics: 7.0.0 - workbox-navigation-preload: 7.0.0 - workbox-precaching: 7.0.0 - workbox-range-requests: 7.0.0 - workbox-recipes: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 - workbox-streams: 7.0.0 - workbox-sw: 7.0.0 - workbox-window: 7.0.0 + workbox-background-sync: 7.1.0 + workbox-broadcast-update: 7.1.0 + workbox-cacheable-response: 7.1.0 + workbox-core: 7.1.0 + workbox-expiration: 7.1.0 + workbox-google-analytics: 7.1.0 + workbox-navigation-preload: 7.1.0 + workbox-precaching: 7.1.0 + workbox-range-requests: 7.1.0 + workbox-recipes: 7.1.0 + workbox-routing: 7.1.0 + workbox-strategies: 7.1.0 + workbox-streams: 7.1.0 + workbox-sw: 7.1.0 + workbox-window: 7.1.0 transitivePeerDependencies: - '@types/babel__core' - supports-color - workbox-cacheable-response@7.0.0: + workbox-cacheable-response@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-core@7.0.0: {} + workbox-core@7.1.0: {} - workbox-expiration@7.0.0: + workbox-expiration@7.1.0: dependencies: idb: 7.1.1 - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-google-analytics@7.0.0: + workbox-google-analytics@7.1.0: dependencies: - workbox-background-sync: 7.0.0 - workbox-core: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 + workbox-background-sync: 7.1.0 + workbox-core: 7.1.0 + workbox-routing: 7.1.0 + workbox-strategies: 7.1.0 - workbox-navigation-preload@7.0.0: + workbox-navigation-preload@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-precaching@7.0.0: + workbox-precaching@7.1.0: dependencies: - workbox-core: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 + workbox-core: 7.1.0 + workbox-routing: 7.1.0 + workbox-strategies: 7.1.0 - workbox-range-requests@7.0.0: + workbox-range-requests@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-recipes@7.0.0: + workbox-recipes@7.1.0: dependencies: - workbox-cacheable-response: 7.0.0 - workbox-core: 7.0.0 - workbox-expiration: 7.0.0 - workbox-precaching: 7.0.0 - workbox-routing: 7.0.0 - workbox-strategies: 7.0.0 + workbox-cacheable-response: 7.1.0 + workbox-core: 7.1.0 + workbox-expiration: 7.1.0 + workbox-precaching: 7.1.0 + workbox-routing: 7.1.0 + workbox-strategies: 7.1.0 - workbox-routing@7.0.0: + workbox-routing@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-strategies@7.0.0: + workbox-strategies@7.1.0: dependencies: - workbox-core: 7.0.0 + workbox-core: 7.1.0 - workbox-streams@7.0.0: + workbox-streams@7.1.0: dependencies: - workbox-core: 7.0.0 - workbox-routing: 7.0.0 + workbox-core: 7.1.0 + workbox-routing: 7.1.0 - workbox-sw@7.0.0: {} + workbox-sw@7.1.0: {} - workbox-webpack-plugin@7.0.0(webpack@5.89.0): + workbox-webpack-plugin@7.1.0(webpack@5.89.0): dependencies: fast-json-stable-stringify: 2.1.0 pretty-bytes: 5.6.0 upath: 1.2.0 webpack: 5.89.0 webpack-sources: 1.4.3 - workbox-build: 7.0.0 + workbox-build: 7.1.0 transitivePeerDependencies: - '@types/babel__core' - supports-color - workbox-window@7.0.0: + workbox-window@7.1.0: dependencies: '@types/trusted-types': 2.0.7 - workbox-core: 7.0.0 + workbox-core: 7.1.0 wrap-ansi@6.2.0: dependencies: diff --git a/tooling/eslint/base.js b/tooling/eslint/base.js index 66b01725..c24fdc32 100644 --- a/tooling/eslint/base.js +++ b/tooling/eslint/base.js @@ -1,45 +1,45 @@ /** @type {import("eslint").Linter.Config} */ const config = { extends: [ - 'turbo', - 'eslint:recommended', - 'plugin:@typescript-eslint/recommended-type-checked', - 'plugin:@typescript-eslint/stylistic-type-checked', - 'prettier' + "turbo", + "eslint:recommended", + "plugin:@typescript-eslint/recommended-type-checked", + "plugin:@typescript-eslint/stylistic-type-checked", + "prettier", ], env: { es2022: true, - node: true + node: true, }, - parser: '@typescript-eslint/parser', + parser: "@typescript-eslint/parser", parserOptions: { project: true }, - plugins: ['@typescript-eslint', 'import'], + plugins: ["@typescript-eslint", "import"], rules: { - 'turbo/no-undeclared-env-vars': 'off', - '@typescript-eslint/no-unused-vars': [ - 'error', - { argsIgnorePattern: '^_', varsIgnorePattern: '^_' } + "turbo/no-undeclared-env-vars": "off", + "@typescript-eslint/no-unused-vars": [ + "error", + { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], - '@typescript-eslint/consistent-type-imports': [ - 'warn', - { prefer: 'type-imports', fixStyle: 'separate-type-imports' } + "@typescript-eslint/consistent-type-imports": [ + "warn", + { prefer: "type-imports", fixStyle: "separate-type-imports" }, ], - '@typescript-eslint/no-misused-promises': [ + "@typescript-eslint/no-misused-promises": [ 2, - { checksVoidReturn: { attributes: false } } + { checksVoidReturn: { attributes: false } }, ], - 'import/consistent-type-specifier-style': ['error', 'prefer-top-level'] + "import/consistent-type-specifier-style": ["error", "prefer-top-level"], }, ignorePatterns: [ - '**/*.config.js', - '**/*.config.cjs', - '**/.eslintrc.cjs', - '.next', - 'dist', - 'pnpm-lock.yaml', - '_generated' + "**/*.config.js", + "**/*.config.cjs", + "**/.eslintrc.cjs", + ".next", + "dist", + "pnpm-lock.yaml", + "_generated", ], - reportUnusedDisableDirectives: true -} + reportUnusedDisableDirectives: true, +}; -module.exports = config +module.exports = config; diff --git a/tooling/eslint/react.js b/tooling/eslint/react.js index bf314c49..618e1816 100644 --- a/tooling/eslint/react.js +++ b/tooling/eslint/react.js @@ -1,24 +1,24 @@ /** @type {import('eslint').Linter.Config} */ const config = { extends: [ - 'plugin:react/recommended', - 'plugin:react-hooks/recommended', - 'plugin:jsx-a11y/recommended' + "plugin:react/recommended", + "plugin:react-hooks/recommended", + "plugin:jsx-a11y/recommended", ], rules: { - 'react/prop-types': 'off' + "react/prop-types": "off", }, globals: { - React: 'writable' + React: "writable", }, settings: { react: { - version: 'detect' - } + version: "detect", + }, }, env: { - browser: true - } -} + browser: true, + }, +}; -module.exports = config +module.exports = config; diff --git a/tooling/eslint/tsconfig.json b/tooling/eslint/tsconfig.json index ea2dd2f0..18f46eb6 100644 --- a/tooling/eslint/tsconfig.json +++ b/tooling/eslint/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": [".", "../../reset.d.ts"], + "include": [".", "../../reset.d.ts"], "exclude": ["node_modules"] } diff --git a/tooling/prettier/index.js b/tooling/prettier/index.js index 8cbb7418..9bb9c37d 100644 --- a/tooling/prettier/index.js +++ b/tooling/prettier/index.js @@ -1,4 +1,4 @@ -import { fileURLToPath } from 'url' +import { fileURLToPath } from "url"; /** @typedef {import("prettier").Config} PrettierConfig */ /** @typedef {import("prettier-plugin-tailwindcss").PluginOptions} TailwindConfig */ @@ -7,29 +7,29 @@ import { fileURLToPath } from 'url' /** @type { PrettierConfig | SortImportsConfig | TailwindConfig } */ const config = { plugins: [ - '@ianvs/prettier-plugin-sort-imports', - 'prettier-plugin-tailwindcss' + "@ianvs/prettier-plugin-sort-imports", + "prettier-plugin-tailwindcss", ], tailwindConfig: fileURLToPath( - new URL('../../tooling/tailwind/index.ts', import.meta.url) + new URL("../../tooling/tailwind/index.ts", import.meta.url), ), - tailwindFunctions: ['cn', 'cva'], + tailwindFunctions: ["cn", "cva"], importOrder: [ - '', - '^(react/(.*)$)|^(react$)|^(react-native(.*)$)', - '^(next/(.*)$)|^(next$)', - '', - '', - '^@weatherio', - '^@weatherio/(.*)$', - '', - '^[.|..|~]', - '^~/', - '^[../]', - '^[./]' + "", + "^(react/(.*)$)|^(react$)|^(react-native(.*)$)", + "^(next/(.*)$)|^(next$)", + "", + "", + "^@weatherio", + "^@weatherio/(.*)$", + "", + "^[.|..|~]", + "^~/", + "^[../]", + "^[./]", ], - importOrderParserPlugins: ['typescript', 'jsx', 'decorators-legacy'], - importOrderTypeScriptVersion: '4.4.0' -} + importOrderParserPlugins: ["typescript", "jsx", "decorators-legacy"], + importOrderTypeScriptVersion: "4.4.0", +}; -export default config +export default config; diff --git a/tooling/prettier/tsconfig.json b/tooling/prettier/tsconfig.json index ea2dd2f0..18f46eb6 100644 --- a/tooling/prettier/tsconfig.json +++ b/tooling/prettier/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": [".", "../../reset.d.ts"], + "include": [".", "../../reset.d.ts"], "exclude": ["node_modules"] } diff --git a/tooling/tailwind/package.json b/tooling/tailwind/package.json index 0b77555e..60ced6bf 100644 --- a/tooling/tailwind/package.json +++ b/tooling/tailwind/package.json @@ -14,7 +14,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { - "autoprefixer": "^10.4.18", + "autoprefixer": "^10.4.20", "postcss": "^8.4.35", "tailwindcss": "^3.4.1", "tailwindcss-animate": "^1.0.7" diff --git a/tooling/tailwind/tsconfig.json b/tooling/tailwind/tsconfig.json index ea2dd2f0..18f46eb6 100644 --- a/tooling/tailwind/tsconfig.json +++ b/tooling/tailwind/tsconfig.json @@ -3,6 +3,6 @@ "compilerOptions": { "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json" }, - "include": [".", "../../reset.d.ts"], + "include": [".", "../../reset.d.ts"], "exclude": ["node_modules"] } diff --git a/turbo.json b/turbo.json index 8dac0db4..0aab03f7 100644 --- a/turbo.json +++ b/turbo.json @@ -1,8 +1,6 @@ { "$schema": "https://turborepo.org/schema.json", - "globalDependencies": [ - "**/.env" - ], + "globalDependencies": ["**/.env"], "globalEnv": [ "OPEN_WEATHER_API_KEY", "UPSTASH_REDIS_REST_URL", @@ -12,24 +10,17 @@ "UPSTASH_RATELIMITER_EXCLUDED_IPS", "RESEND_API_KEY", "QWEATHER_API_KEY", - "API_NINJA_API_KEY", "TEST_MODE", "NEXT_PUBLIC_CONVEX_URL", "CONVEX_DEPLOY_KEY" ], - "globalPassThroughEnv": [ - "CONVEX_URL" - ], + "globalPassThroughEnv": ["CONVEX_URL"], "tasks": { "topo": { - "dependsOn": [ - "^topo" - ] + "dependsOn": ["^topo"] }, "build": { - "dependsOn": [ - "^build" - ], + "dependsOn": ["^build"], "outputs": [ ".next/**", "!.next/cache/**", @@ -43,9 +34,7 @@ "cache": false }, "format": { - "outputs": [ - "node_modules/.cache/.prettiercache" - ], + "outputs": ["node_modules/.cache/.prettiercache"], "outputLogs": "new-only" }, "dev:test": { @@ -55,25 +44,15 @@ "cache": false }, "e2e:test": { - "dependsOn": [ - "^build" - ] + "dependsOn": ["^build"] }, "lint": { - "dependsOn": [ - "^topo" - ], - "outputs": [ - "node_modules/.cache/.eslintcache" - ] + "dependsOn": ["^topo"], + "outputs": ["node_modules/.cache/.eslintcache"] }, "typecheck": { - "dependsOn": [ - "^topo" - ], - "outputs": [ - "node_modules/.cache/tsbuildinfo.json" - ] + "dependsOn": ["^topo"], + "outputs": ["node_modules/.cache/tsbuildinfo.json"] }, "clean": { "cache": false From 42c2e8b838d1f6fc67ce49568a4b40dd3fa1b1ba Mon Sep 17 00:00:00 2001 From: Nico Canada Date: Mon, 3 Feb 2025 17:34:35 -0600 Subject: [PATCH 09/14] added Chinese round flag --- apps/web/src/assets/chinese-flag.png | Bin 12673 -> 22668 bytes apps/web/src/locales/zh-CN.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/assets/chinese-flag.png b/apps/web/src/assets/chinese-flag.png index f9f2ecb02e8e810fd06f29bab0d09b01608b8bdf..01d16339677554c7fd002a08dbde4f3a6eb05ae4 100644 GIT binary patch literal 22668 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 literal 12673 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�!a_M zXqzkO9k4ti3veH8e?7H(#{Oq$?$4Qa{#L0*-NOqK1SG?(yH5h)A_qbSo(9Z_|HZFa zh63S%P7tQcu|exRFcS)ZZ2Z};m<0ZsDM%3+&y}eZVX1Iow$RD5Z1&q;UGG^8Gb|eY zhX42>f4?AWK+jw3u1(Lt7;?mH?9W4KMUGg=quTOCLR&=kbQI}u5q^O&3MYt{I9VR0 z&cY{6xz25iSG=daZ#Sr}`Jr`GdA`d$$Ue$TYX88#n%c)BO3d%sMI?PS+7X~=tOWs z8FT#>luyY{zYS+!Z`j`uwR>D#B@TP3*qqhUr8nf}Jv@ z>lzOTw}jNxjzjF#H2}Xei|p3>{0&ZXEGIi)Ge34Rrv^Aw>$X)j*Xh~>q z4(AU3_wJ>lRBO8mi{0>uk~}$34Xa2Eb6te9o(7)6@RQw8IKQ`GT>93lP8;8!WD0oP zGTicn9GAA%!5llVA;_3xA~9iN`f2>jjw?!b$8DfZ0wtZ?#zwLs7XKWA8u2=eax&Z<}T8waBnM|FOQ|C6TveDKDs}o-6hN6ro3^V*YY? z5CW><28?}2Erzu#X}fDsLtG6*0$b3<;bAg2llptp%Z=S-2L!3*nQGh-_O*1YOvf|5 z4y3Oi43_QOn|mmkio|?yplHiA333RSV> zuBxYQ4yew14)roZUE@?;U8EV{TYx%FM{=`ROw;GZmw?ur=mGiZd2`eof+rz9m)%vM zh#UpzSLUs5hmrb(D7t~hc3trj(*#h=$v8igTMWI2yq1QZ7rBTgYxsN{kab6fz*>B_ zLx5z8ULxc@BV<(jiKK7@Nlls7rpS9dAlUPy3)6fZ_HBS=&W2gh*+8sqG1>c1_?%V$b`4k=LTW6&jb1Npe#IW3#kZt1K?m(52-!2~Nz z&&*fcszlaNy&XcrXIH4&{z(AIpp?aQ3_dZQHZ5>BwU+)vfY-h0Lqf$3haFV6Ia;x$ z@m_sGi(flOD6PYTYgr*>^>_2cKA@BE6DRn2KzxQ5Q_#Vwyoi(gP9_z$IayH)fazW* z1I>Qf?)|wAUiqu_^1~h+;m3ZLW1*NZ1mH_|+891V10 z^&bA^2?6eQEdD&AM#a@U1G{YjT5i@SFEY59r}I^I^VOHbv^L?*YtQfHh-rlG9k%=o z_yw9n!H~0aJE{Kc!3(c`sB6yTNjvNj9j?jGr2YrT#Q8hFSt5uPXUJ!w=s@65n=Lmg zLTC_NR4Iqmkr(_vF_?JYA&=HhMSqx8>c^q`gVp#Msl87k(&y+`EYO@ux6I@@&x+>! z*X3H|r3%w1HP_AtWGFGG1ds}P)rN+SM368IolH)akSDo*)lo-`c?ji?Sxel{b8fW& zOk{9PMz#Iay^ff%=-NyR`1dYRWB%q15S+6mNN|>zLtx%7UhM4_6`+^X!BI1 zj)TH#qL%6+%>W2I!mi|~{;rE`CcSJICGqEl0&2+)Cf6vF^o;dPV;AFLAmE@`cs>!4 z`Pqf!7KBGq>&lIT`5s#2GX_{(k+^*An=WmQ4I0ppsRg*=h=l%B_1|@*FxpGa{zIBb zQFrL5?O{JTfbavi{Se}#`@lzo z4R$^6b6#3BAQx{C9}y5&%o=K}cLfAyF%(|GhnOQmL&j0TwdYj6;y=f)-+~nN#1fKJ zJRuBjW(Cd|SeXuGJJbKIFBdp%2wvadLHJ+k=lu`k{?+*V|Ii2ge;g+XbcWv%5CU&G z|J%p^j$r@w2Ic>wVE^+CJ%k|f+xnN5|D~<}+BW~Y>a_9f^ z4gJ>?_@D3m|8MBuJ;1+? Date: Mon, 3 Feb 2025 17:57:34 -0600 Subject: [PATCH 10/14] reverted translate Germany in address --- apps/web/src/locales/zh-CN.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/locales/zh-CN.ts b/apps/web/src/locales/zh-CN.ts index db9d53b8..1064392e 100644 --- a/apps/web/src/locales/zh-CN.ts +++ b/apps/web/src/locales/zh-CN.ts @@ -64,7 +64,7 @@ export default { // legal page translations "legal.main text":"本网站的内容已经过仔细审核和制作。然而,我们无法保证所提供信息的准确性、完整性和时效性。我们不对因使用本网站而造成的任何损害或损失承担责任。链接页面的运营者对其内容负有完全责任。对于外部内容,我们明确排除任何责任。", - "legal.germany": "德文", + "legal.germany": "Germany", "legal.information disclaimer": "根据《德国电信和信息服务法》第5条的规定", // home page translations From 6b341c8597237d4a9ca29baacc70bac36a9ff8cd Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 06:13:44 +0000 Subject: [PATCH 11/14] style: format code with Prettier and StandardJS This commit fixes the style issues introduced in 1d9f392 according to the output from Prettier and StandardJS. Details: https://github.com/The-Creative-Programming-Group/Weather-App/pull/321 --- apps/web/next.config.mjs | 50 ++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index b95af147..9d8a0f3b 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,30 +1,30 @@ -import { fileURLToPath } from "node:url"; -import withPWAInit from "@ducanh2912/next-pwa"; -import withBundleAnalyzer from "@next/bundle-analyzer"; -import createJiti from "jiti"; -import { withAxiomNextConfig } from "next-axiom"; +import { fileURLToPath } from 'node:url' +import withPWAInit from '@ducanh2912/next-pwa' +import withBundleAnalyzer from '@next/bundle-analyzer' +import createJiti from 'jiti' +import { withAxiomNextConfig } from 'next-axiom' const withPWA = withPWAInit({ - dest: "public", + dest: 'public', fallbacks: { - document: "/_offline", - }, -}); + document: '/_offline' + } +}) // create the bundle analyzer config const withMyBundleAnalyzer = withBundleAnalyzer({ - enabled: process.env.ANALYZE === "true", -}); + enabled: process.env.ANALYZE === 'true' +}) -const jiti = createJiti(fileURLToPath(import.meta.url)); +const jiti = createJiti(fileURLToPath(import.meta.url)) /** * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful * for Docker builds. * Importing env files here to validate on build */ -jiti("./src/env.ts"); -jiti("@weatherio/api/env"); +jiti('./src/env.ts') +jiti('@weatherio/api/env') /** @type {import("next").NextConfig} */ const config = withMyBundleAnalyzer( @@ -34,17 +34,17 @@ const config = withMyBundleAnalyzer( /** Enables hot reloading for local packages without a build step */ transpilePackages: [ - "@weatherio/api", - "@weatherio/ui", - "@weatherio/types", - "@weatherio/city-data", + '@weatherio/api', + '@weatherio/ui', + '@weatherio/types', + '@weatherio/city-data' ], i18n: { - defaultLocale: "en", - locales: ["en", "de", "id", "zh-CN"], - }, - }), - ), -); + defaultLocale: 'en', + locales: ['en', 'de', 'id', 'zh-CN'] + } + }) + ) +) -export default config; +export default config From 0b6fdf3bb0309f6b5afdbbe11299370060c79b27 Mon Sep 17 00:00:00 2001 From: "deepsource-autofix[bot]" <62050782+deepsource-autofix[bot]@users.noreply.github.com> Date: Tue, 4 Feb 2025 06:22:34 +0000 Subject: [PATCH 12/14] ci: update .deepsource.toml --- .deepsource.toml | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/.deepsource.toml b/.deepsource.toml index 608cc603..afcd8fa7 100644 --- a/.deepsource.toml +++ b/.deepsource.toml @@ -10,10 +10,4 @@ name = "javascript" name = "secrets" [[analyzers]] -name = "test-coverage" - -[[transformers]] -name = "prettier" - -[[transformers]] -name = "standardjs" \ No newline at end of file +name = "test-coverage" \ No newline at end of file From 4924f00c8f763cf09b7f0c29d1f4f1096c5aca19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Tue, 4 Feb 2025 17:27:45 +1100 Subject: [PATCH 13/14] fix formatting --- apps/web/next.config.mjs | 50 +++++++++++++-------------- apps/web/src/locales/zh-CN.ts | 34 ++++++++---------- apps/web/src/pages/settings/index.tsx | 2 +- 3 files changed, 41 insertions(+), 45 deletions(-) diff --git a/apps/web/next.config.mjs b/apps/web/next.config.mjs index 9d8a0f3b..b95af147 100644 --- a/apps/web/next.config.mjs +++ b/apps/web/next.config.mjs @@ -1,30 +1,30 @@ -import { fileURLToPath } from 'node:url' -import withPWAInit from '@ducanh2912/next-pwa' -import withBundleAnalyzer from '@next/bundle-analyzer' -import createJiti from 'jiti' -import { withAxiomNextConfig } from 'next-axiom' +import { fileURLToPath } from "node:url"; +import withPWAInit from "@ducanh2912/next-pwa"; +import withBundleAnalyzer from "@next/bundle-analyzer"; +import createJiti from "jiti"; +import { withAxiomNextConfig } from "next-axiom"; const withPWA = withPWAInit({ - dest: 'public', + dest: "public", fallbacks: { - document: '/_offline' - } -}) + document: "/_offline", + }, +}); // create the bundle analyzer config const withMyBundleAnalyzer = withBundleAnalyzer({ - enabled: process.env.ANALYZE === 'true' -}) + enabled: process.env.ANALYZE === "true", +}); -const jiti = createJiti(fileURLToPath(import.meta.url)) +const jiti = createJiti(fileURLToPath(import.meta.url)); /** * Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation. This is especially useful * for Docker builds. * Importing env files here to validate on build */ -jiti('./src/env.ts') -jiti('@weatherio/api/env') +jiti("./src/env.ts"); +jiti("@weatherio/api/env"); /** @type {import("next").NextConfig} */ const config = withMyBundleAnalyzer( @@ -34,17 +34,17 @@ const config = withMyBundleAnalyzer( /** Enables hot reloading for local packages without a build step */ transpilePackages: [ - '@weatherio/api', - '@weatherio/ui', - '@weatherio/types', - '@weatherio/city-data' + "@weatherio/api", + "@weatherio/ui", + "@weatherio/types", + "@weatherio/city-data", ], i18n: { - defaultLocale: 'en', - locales: ['en', 'de', 'id', 'zh-CN'] - } - }) - ) -) + defaultLocale: "en", + locales: ["en", "de", "id", "zh-CN"], + }, + }), + ), +); -export default config +export default config; diff --git a/apps/web/src/locales/zh-CN.ts b/apps/web/src/locales/zh-CN.ts index 1064392e..c63572cb 100644 --- a/apps/web/src/locales/zh-CN.ts +++ b/apps/web/src/locales/zh-CN.ts @@ -63,7 +63,8 @@ export default { "search.my location button": "设定我的位置", // legal page translations - "legal.main text":"本网站的内容已经过仔细审核和制作。然而,我们无法保证所提供信息的准确性、完整性和时效性。我们不对因使用本网站而造成的任何损害或损失承担责任。链接页面的运营者对其内容负有完全责任。对于外部内容,我们明确排除任何责任。", + "legal.main text": + "本网站的内容已经过仔细审核和制作。然而,我们无法保证所提供信息的准确性、完整性和时效性。我们不对因使用本网站而造成的任何损害或损失承担责任。链接页面的运营者对其内容负有完全责任。对于外部内容,我们明确排除任何责任。", "legal.germany": "Germany", "legal.information disclaimer": "根据《德国电信和信息服务法》第5条的规定", @@ -90,16 +91,12 @@ export default { "home.feels like phrase warm": "连冰淇淋都觉得太热了!", "home.feels like phrase slightly more warm": "今天真是个暖洋洋的日子!", "home.feels like phrase slightly warm": "是去野餐的好天气!", - "home.feels like phrase neutral": - "温度刚刚好,既不热也不冷。", + "home.feels like phrase neutral": "温度刚刚好,既不热也不冷。", "home.feels like phrase slightly cold": "可能需要穿件薄外套。", "home.feels like phrase slightly more cold": "今天是个寒冷的日子!", - "home.feels like phrase cold": - "企鹅们都因为寒冷去喝热巧克力了!", - "home.feels like phrase very cold": - "今天的寒冷天气连雪人都冻得发抖!", - "home.feels like phrase extremely cold": - "冷得连北极熊都懒得出门了!", + "home.feels like phrase cold": "企鹅们都因为寒冷去喝热巧克力了!", + "home.feels like phrase very cold": "今天的寒冷天气连雪人都冻得发抖!", + "home.feels like phrase extremely cold": "冷得连北极熊都懒得出门了!", "home.air quality text very poor": "非常差", "home.air quality text poor": "差", @@ -128,19 +125,18 @@ export default { "home.late hour time ending": "下午", "home.9 day forecast card content": - "未来9天的天气预报。
温度 为每日的平均温度,分别代表白天和夜晚的温度。", + '未来9天的天气预报。
温度 为每日的平均温度,分别代表白天和夜晚的温度。', "home.precipitation card title": "当前降水", - "home.feels like card content": - "这个温度参数考虑了人类对天气的感知。", + "home.feels like card content": "这个温度参数考虑了人类对天气的感知。", "home.visibility card title": "当前能见度", "home.wind pressure card title": "当前风力与气压", - "home.wind pressure card content": - "海平面气压。
在海平面,气压是由上方空气的重量所施加的力,平均值约为1013.25 hPa。", - + "home.wind pressure card content": + "海平面气压。
在海平面,气压是由上方空气的重量所施加的力,平均值约为1013.25 hPa。", + "home.not available": "不可用", "home.moon phase card title": "当前月相", @@ -181,8 +177,8 @@ export default { // contributors page translations "contributors.made with love text": '由以下人员♥\uFE0F 精心制作: ', - "contributors.founder": "创始人", - "contributors.engineer": "工程师", - "contributors.designer": "设计师", - "contributors.translator": "翻译员", + "contributors.founder": "创始人", + "contributors.engineer": "工程师", + "contributors.designer": "设计师", + "contributors.translator": "翻译员", } as const; diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index 7dac6c97..03d59297 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -4,10 +4,10 @@ import { observer } from "@legendapp/state/react"; import { RxCheck } from "react-icons/rx"; import type { TemperatureUnitType, WindSpeedUnitType } from "~/states"; +import chineseFlag from "~/assets/chinese-flag.png"; import germanFlag from "~/assets/german-flag.png"; import indonesianFlag from "~/assets/indonesian-flag.png"; import usaFlag from "~/assets/usa-flag.png"; -import chineseFlag from "~/assets/chinese-flag.png"; import Layout from "~/components/Layout"; import { getLocaleProps, From 6cb37e05d251b5c85db2d49aee01559365e44144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakob=20R=C3=B6ssner?= Date: Tue, 4 Feb 2025 17:34:26 +1100 Subject: [PATCH 14/14] Fixed last things --- apps/web/next-env.d.ts | 2 +- apps/web/src/pages/legal/index.tsx | 8 ++++++++ apps/web/src/pages/settings/index.tsx | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/apps/web/next-env.d.ts b/apps/web/next-env.d.ts index 4f11a03d..a4a7b3f5 100644 --- a/apps/web/next-env.d.ts +++ b/apps/web/next-env.d.ts @@ -2,4 +2,4 @@ /// // NOTE: This file should not be edited -// see https://nextjs.org/docs/basic-features/typescript for more information. +// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information. diff --git a/apps/web/src/pages/legal/index.tsx b/apps/web/src/pages/legal/index.tsx index d7d68dea..e035c7e4 100644 --- a/apps/web/src/pages/legal/index.tsx +++ b/apps/web/src/pages/legal/index.tsx @@ -1,4 +1,5 @@ import React from "react"; +import Link from "next/link"; import Layout from "~/components/Layout"; import { getLocaleProps, useScopedI18n } from "~/locales"; @@ -26,6 +27,13 @@ const Legal = () => {

{translationLegal("main text")}

+ + Flags icons created by Freepik - Flaticon + diff --git a/apps/web/src/pages/settings/index.tsx b/apps/web/src/pages/settings/index.tsx index 03d59297..20dfcfc3 100644 --- a/apps/web/src/pages/settings/index.tsx +++ b/apps/web/src/pages/settings/index.tsx @@ -208,7 +208,7 @@ const Settings = observer(() => { > Flag of PRC