diff --git a/apps/next/app/(generated)/bio/[slug]/page.tsx b/apps/next/app/(generated)/bio/[slug]/page.tsx index 4d317b10..4e282ff3 100644 --- a/apps/next/app/(generated)/bio/[slug]/page.tsx +++ b/apps/next/app/(generated)/bio/[slug]/page.tsx @@ -1,3 +1,3 @@ 'use client' // -i- Automatically generated by 'yarn link-routes', do not modify manually -export { default, dynamic, generateStaticParams } from 'links-page/routes/bio/[slug]' +export { default, dynamic } from 'links-page/routes/bio/[slug]' diff --git a/apps/next/app/ClientRootLayout.tsx b/apps/next/app/ClientRootLayout.tsx index c621ad85..45107440 100644 --- a/apps/next/app/ClientRootLayout.tsx +++ b/apps/next/app/ClientRootLayout.tsx @@ -26,7 +26,7 @@ setPublicEnvVars({ const NextClientRootLayout = (props: { children: React.ReactNode }) => { // Props - const { children } = props + const { children } = props // FIXME: Why is children null on hydration?? // -- Fonts -- diff --git a/apps/next/app/layout.tsx b/apps/next/app/layout.tsx index 21ec3228..07c76b6f 100644 --- a/apps/next/app/layout.tsx +++ b/apps/next/app/layout.tsx @@ -4,6 +4,8 @@ import NextClientRootLayout from './ClientRootLayout' /* --- ----------------------------------------------------------------------- */ +// FIXME: Why is children null when passing it to NextClientRootLayout? + const NextRootLayout = ({ children }: { children: React.ReactNode }) => ( {children} diff --git a/apps/next/next.config.js b/apps/next/next.config.js index 0b62db3d..3f508a6b 100644 --- a/apps/next/next.config.js +++ b/apps/next/next.config.js @@ -69,7 +69,14 @@ const nextConfig = { ignoreBuildErrors: true, }, images: { - domains: ['i3.ytimg.com'], + remotePatterns: [ + { + protocol: 'https', + hostname: 'i3.ytimg.com', + // port: '', + // pathname: '/account123/**', + }, + ], }, webpack: (config, { isServer }) => { // -i- Run aetherspace automation scripts in DEV mode diff --git a/apps/next/package.json b/apps/next/package.json index 0efbdce7..68063607 100644 --- a/apps/next/package.json +++ b/apps/next/package.json @@ -19,11 +19,11 @@ "app": "*", "encoding": "^0.1.13", "expo-asset-web": "npm:expo-asset@8.7.0", - "next": "13.4.8", + "next": "14.0.0", "next-fonts": "^1.5.1", "next-images": "^1.8.5", "next-pwa": "^5.6.0", - "next-transpile-modules": "^10.0.0", + "next-transpile-modules": "^10.0.1", "raf": "^3.4.1", "registries": "*", "setimmediate": "^1.0.5", diff --git a/features/app-core/hooks/useLoadFonts.ts b/features/app-core/hooks/useLoadFonts.ts index 01c95ec3..796ed3b6 100644 --- a/features/app-core/hooks/useLoadFonts.ts +++ b/features/app-core/hooks/useLoadFonts.ts @@ -28,8 +28,6 @@ const useLoadFonts = () => { Roboto700: Roboto_700Bold, Roboto800: Roboto_900Black, // Fallback Roboto900: Roboto_900Black, - // - Icon Fonts - - AntDesign: require('@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf'), } const [googleFontsLoaded, googleFontsError] = useFonts(fontsToLoad) diff --git a/features/app-core/routes/opengraph-image.tsx b/features/app-core/routes/opengraph-image.tsx index 870fb501..914e639c 100644 --- a/features/app-core/routes/opengraph-image.tsx +++ b/features/app-core/routes/opengraph-image.tsx @@ -1,6 +1,6 @@ /* eslint-disable @next/next/no-img-element */ import React from 'react' -import { ImageResponse } from 'next/server' +import { ImageResponse } from 'next/og' /* --- Segments -------------------------------------------------------------------------------- */ diff --git a/features/cv-page/icons/registry.tsx b/features/cv-page/icons/registry.tsx deleted file mode 100644 index b9f60f0e..00000000 --- a/features/cv-page/icons/registry.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from 'react' -import { registerIconRenderer } from 'aetherspace/utils' -import { AntDesign } from '@expo/vector-icons' -import { ComponentProps } from 'react' - -/** --- iconRegistry --------------------------------------------------------------------------- */ -/** -i- Register any icons by preferred AetherIcon "name" key */ -export const iconRegistry = { - ...registerIconRenderer(['caretup'] as const, ({ name, size, fill, ...restIconProps }) => ( - ['name']} - size={size} - color={fill} - {...restIconProps} - /> - )), -} as const diff --git a/features/cv-page/screens/ResumeScreen.tsx b/features/cv-page/screens/ResumeScreen.tsx index 1605f65f..b9d316a1 100644 --- a/features/cv-page/screens/ResumeScreen.tsx +++ b/features/cv-page/screens/ResumeScreen.tsx @@ -269,9 +269,11 @@ export const ResumeScreenRouteDataConfig = { // -i- https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config export const dynamic = 'force-static' // 'auto' | 'force-dynamic' | 'error' | 'force-static' -export const generateStaticParams = async (): Promise => { - return [{ slug: 'codinsonn' }] -} +// TODO: Figure out how to generate static params in Next.js 14 while also needing to use client components +// -!- Error: Page "/(generated)/bio/[slug]/page" cannot use both "use client" and export function "generateStaticPar...()". +// export const generateDisabledStaticParams = async (): Promise => { +// return [{ slug: 'codinsonn' }] +// } /* --- ------------------------------------------------------------------------- */ diff --git a/features/links-page/routes/bio/[slug].tsx b/features/links-page/routes/bio/[slug].tsx index d2fa8846..5e0a107a 100644 --- a/features/links-page/routes/bio/[slug].tsx +++ b/features/links-page/routes/bio/[slug].tsx @@ -13,6 +13,6 @@ const PageScreen = (props: bioScreen.BioScreenProps) => ( /* --- Exports --------------------------------------------------------------------------------- */ export const dynamic = bioScreen.dynamic -export const generateStaticParams = bioScreen.generateStaticParams +// export const generateDisabledStaticParams = bioScreen.generateDisabledStaticParams export default PageScreen diff --git a/features/links-page/screens/BioScreen.tsx b/features/links-page/screens/BioScreen.tsx index 3f1fd739..9320a6f6 100644 --- a/features/links-page/screens/BioScreen.tsx +++ b/features/links-page/screens/BioScreen.tsx @@ -102,9 +102,11 @@ export const screenConfig = { export const dynamic = 'force-static' // 'auto' | 'force-dynamic' | 'error' | 'force-static' -export const generateStaticParams = async (): Promise => { - return [{ slug: 'codinsonn' }] -} +// TODO: Figure out how to generate static params in Next.js 14 while also needing to use client components +// -!- Error: Page "/(generated)/bio/[slug]/page" cannot use both "use client" and export function "generateStaticPar...()". +// export const generateDisabledStaticParams = async (): Promise => { +// return [{ slug: 'codinsonn' }] +// } /* --- ---------------------------------------------------------------------------- */ diff --git a/package.json b/package.json index f52d4f08..332a1b2d 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "packages/*" ], "engines": { - "node": ">=18.0.0" + "node": ">=18.17.0" }, "browser": { "fs": false, diff --git a/packages/@aetherspace/components/AetherIcon/README.md b/packages/@aetherspace/components/AetherIcon/README.md index f4fc1e83..1ad7c25e 100644 --- a/packages/@aetherspace/components/AetherIcon/README.md +++ b/packages/@aetherspace/components/AetherIcon/README.md @@ -6,8 +6,6 @@ There’s many different ways to use icons and icon sets in Aetherspace. Here’ → SSR support, fast & easy, no layout shift on web, limited options - Custom SVG components using `react-native-svg` → SSR support, can [convert from .svg file](https://transform.tools/svg-to-react-native), but could be more time-consuming -- Third party iconfont libraries, such as `@expo/vector-icons` -→ Fast & easy, needs icon font preloaded, layout shift on web, locked out of SWC - Image icons through src urls → Straight forward, easy, not super optimised, fixed colors, layout shift on web @@ -155,99 +153,6 @@ Downsides of this strategy: - Time consuming: Requires some copy-pasting between transform tools and your code - Therefore, even if it’s most reliable and configurable, also not very fast or scalable -## Using `@expo/vector-icons` - -[Expo Docs: @expo/vector-icons](https://docs.expo.dev/guides/icons/) - -> Check which iconset you want to use and how to use them on [https://icons.expo.fyi/](https://icons.expo.fyi/) - -Benefits of using this strategy: - -- Fast, choose icons from existing third party icon providers -- Most @expo/vector-icons are also compatible with the web - -Downsides of using icon fonts under the hood: - -- You’ll need to preload your icon font somehow, easy on mobile but harder on web -- Loading flicker, meaning you might not see the icon immediately if the icon font isn’t loaded yet -- Cannot use Next.js’s SWC compiler when using any of the @expo/vector-icons (no loader for importing .ttf files) - -Example usage: - -```tsx -import { AntDesign } from '@expo/vector-icons' - - -``` - -Example preloading of icon font on mobile: - -`/features/app-core/hooks/useLoadFonts.ts` - -```tsx -'use client' -import { useFonts } from 'expo-font' -import { /* Google Fonts */ } from '@expo-google-fonts/roboto' - -/* --- useLoadFonts() -------------------------------------------------------------------------- */ - -const useLoadFonts = () => { - const fontsToLoad = { - // - Google Fonts - - /* ... */ - // - Icon Fonts - - AntDesign: require('@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/AntDesign.ttf'), - // -!- important: always double check this path (^) for your icon fonts - } - - const [fontsLoaded, fontsError] = useFonts(fontsToLoad) - - if (fontsError) console.error('fontErrors:', fontsLoaded) - - // -- Return -- - - return fontsLoaded // <- Keep splash screen open until this is true -} - -/* --- Exports --------------------------------------------------------------------------------- */ - -export default useLoadFonts -``` - -Example usage with `` - -`/packages/{workspace-folder}/icons/registry.tsx` - -```tsx -import React from 'react' -import { registerIconRenderer } from 'aetherspace/utils' -import { AntDesign } from '@expo/vector-icons' -import { ComponentProps } from 'react' - -/** --- iconRegistry --------------------------------------------------------------------------- */ -/** -i- Register any icons by preferred AetherIcon "name" key */ -export const iconRegistry = { - // Register any icons from e.g. AntDesign you want by - // registering them by strings 👇 array (readonly) + render function - ...registerIconRenderer(['caretup'] as const, ({ name, size, fill, ...restIconProps }) => ( - ['name']} - size={size} - color={fill} - {...restIconProps} - /> - )), -} as const // <-- Readonly is important here for accurate type hints -``` - -```tsx - -``` - ## Using `AetherImage` with `.svg` files > Using `AetherImage` with `.svg` files might be the most bundle size friendly way of using SVGs in your app. Since it will always result in only using the SVGs that you actually use in your app. diff --git a/packages/@aetherspace/docs/addons/gqlPlaygroundAddon.js b/packages/@aetherspace/docs/addons/gqlPlaygroundAddon.js index fb101839..2d3f78a4 100644 --- a/packages/@aetherspace/docs/addons/gqlPlaygroundAddon.js +++ b/packages/@aetherspace/docs/addons/gqlPlaygroundAddon.js @@ -1,25 +1,19 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -var react_1 = require("react"); -var addons_1 = require("@storybook/addons"); +const react_1 = require("react"); +const addons_1 = require("@storybook/addons"); /* --- GraphQL Storybook Plugin ---------------------------------------------------------------- */ -addons_1.addons.register('/graphql', function () { +addons_1.addons.register('/graphql', () => { addons_1.addons.add('graphql-playground/tab', { type: addons_1.types.TAB, title: 'GraphQL', - route: function (_a) { - var storyId = _a.storyId; - return "/graphql/".concat(storyId); - }, - match: function (_a) { - var viewMode = _a.viewMode; - return viewMode === 'graphql'; - }, - render: function () { - var graphqlUrl = 'http://localhost:3000/api/graphql'; - var isDev = process.env.NODE_ENV === 'development'; + route: ({ storyId }) => `/graphql/${storyId}`, + match: ({ viewMode }) => viewMode === 'graphql', + render: () => { + let graphqlUrl = 'http://localhost:3000/api/graphql'; + const isDev = process.env.NODE_ENV === 'development'; if (!isDev) - graphqlUrl = "".concat(process.env.STORYBOOK_BACKEND_URL, "/api/graphql"); + graphqlUrl = `${process.env.STORYBOOK_BACKEND_URL}/api/graphql`; return (0, react_1.createElement)('iframe', { style: { width: '100%', height: '100%' }, src: graphqlUrl, diff --git a/packages/@config/transpiledModules.js b/packages/@config/transpiledModules.js index b643d14d..ec162837 100644 --- a/packages/@config/transpiledModules.js +++ b/packages/@config/transpiledModules.js @@ -7,7 +7,6 @@ module.exports = [ // - Modules - 'twrnc', '@react-native/assets-registry', - '@expo/vector-icons', // - Packages & Features - ...transpiledWorkspaces, ] diff --git a/packages/@registries/icons.generated.ts b/packages/@registries/icons.generated.ts index b90a8f17..6516d430 100644 --- a/packages/@registries/icons.generated.ts +++ b/packages/@registries/icons.generated.ts @@ -1,5 +1,4 @@ // -i- Auto generated with 'yarn ats collect-icons' -import { iconRegistry as cvPageIcons } from '../../features/cv-page/icons/registry' import { iconRegistry as linksPageIcons } from '../../features/links-page/icons/registry' import { iconRegistry as aetherspaceIcons } from '../../packages/@aetherspace/icons/registry' import { iconRegistry as greenStackIconsIcons } from '../../packages/@green-stack-icons/icons/registry' @@ -7,7 +6,6 @@ import { iconRegistry as greenStackIconsIcons } from '../../packages/@green-stac /* --- Exports --------------------------------------------------------------------------------- */ export const REGISTERED_ICONS = { - ...cvPageIcons, ...linksPageIcons, ...aetherspaceIcons, ...greenStackIconsIcons, diff --git a/yarn.lock b/yarn.lock index 2e94a44f..814202a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2735,10 +2735,10 @@ dependencies: react-native-svg "^12.3.0" -"@next/env@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.8.tgz#8048ef3c3d770a3f3d1dd51d159593acfbd4e517" - integrity sha512-twuSf1klb3k9wXI7IZhbZGtFCWvGD4wXTY2rmvzIgVhXhs7ISThrbNyutBx3jWIL8Y/Hk9+woytFz5QsgtcRKQ== +"@next/env@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.0.tgz#d8956f5ccf86b4098ac281f1ca94efe86fabd3c0" + integrity sha512-cIKhxkfVELB6hFjYsbtEeTus2mwrTC+JissfZYM0n+8Fv+g8ucUfOlm3VEDtwtwydZ0Nuauv3bl0qF82nnCAqA== "@next/eslint-plugin-next@13.2.4": version "13.2.4" @@ -2747,50 +2747,50 @@ dependencies: glob "7.1.7" -"@next/swc-darwin-arm64@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.8.tgz#3838d7c96750b7f427ac47b97503fc013734f6e6" - integrity sha512-MSFplVM4dTWOuKAUv0XR9gY7AWtMSBu9os9f+kp+s5rWhM1I2CdR3obFttd6366nS/W/VZxbPM5oEIdlIa46zA== - -"@next/swc-darwin-x64@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.8.tgz#3de9c26a2ee7b189f22433bf8137256a2517f258" - integrity sha512-Reox+UXgonon9P0WNDE6w85DGtyBqGitl/ryznOvn6TvfxEaZIpTgeu3ZrJLU9dHSMhiK7YAM793mE/Zii2/Qw== - -"@next/swc-linux-arm64-gnu@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.8.tgz#9536314c931b9e78f20e4a424eace9993015c6e1" - integrity sha512-kdyzYvAYtqQVgzIKNN7e1rLU8aZv86FDSRqPlOkKZlvqudvTO0iohuTPmnEEDlECeBM6qRPShNffotDcU/R2KA== - -"@next/swc-linux-arm64-musl@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.8.tgz#a894ec6a078edd28f5cfab60593a61e05b6b605b" - integrity sha512-oWxx4yRkUGcR81XwbI+T0zhZ3bDF6V1aVLpG+C7hSG50ULpV8gC39UxVO22/bv93ZlcfMY4zl8xkz9Klct6dpQ== - -"@next/swc-linux-x64-gnu@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.8.tgz#b8af198dc0b4a8c64deb0494ae285e3e1a465910" - integrity sha512-anhtvuO6eE9YRhYnaEGTfbpH3L5gT/9qPFcNoi6xS432r/4DAtpJY8kNktqkTVevVIC/pVumqO8tV59PR3zbNg== - -"@next/swc-linux-x64-musl@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.8.tgz#d2ad24001020665a78405f595995c22750ec63c4" - integrity sha512-aR+J4wWfNgH1DwCCBNjan7Iumx0lLtn+2/rEYuhIrYLY4vnxqSVGz9u3fXcgUwo6Q9LT8NFkaqK1vPprdq+BXg== - -"@next/swc-win32-arm64-msvc@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.8.tgz#e5c4bfaa105fbe2bdb21a6d01467edd39a29cf37" - integrity sha512-OWBKIrJwQBTqrat0xhxEB/jcsjJR3+diD9nc/Y8F1mRdQzsn4bPsomgJyuqPVZs6Lz3K18qdIkvywmfSq75SsQ== - -"@next/swc-win32-ia32-msvc@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.8.tgz#c49c4d9f91845855bf544d5d14e8e13311da9931" - integrity sha512-agiPWGjUndXGTOn4ChbKipQXRA6/UPkywAWIkx7BhgGv48TiJfHTK6MGfBoL9tS6B4mtW39++uy0wFPnfD0JWg== - -"@next/swc-win32-x64-msvc@13.4.8": - version "13.4.8" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.8.tgz#22c5c8fa05680f2775a29c6c5a74cf04b8cc9d90" - integrity sha512-UIRKoByVKbuR6SnFG4JM8EMFlJrfEGuUQ1ihxzEleWcNwRMMiVaCj1KyqfTOW8VTQhJ0u8P1Ngg6q1RwnIBTtw== +"@next/swc-darwin-arm64@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.0.tgz#74599aec959b2c425f603447f852ac5eefbb3fd6" + integrity sha512-HQKi159jCz4SRsPesVCiNN6tPSAFUkOuSkpJsqYTIlbHLKr1mD6be/J0TvWV6fwJekj81bZV9V/Tgx3C2HO9lA== + +"@next/swc-darwin-x64@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.0.tgz#6f628a1a13b4bc09c0450bb171703f60ca7a6c56" + integrity sha512-4YyQLMSaCgX/kgC1jjF3s3xSoBnwHuDhnF6WA1DWNEYRsbOOPWjcYhv8TKhRe2ApdOam+VfQSffC4ZD+X4u1Cg== + +"@next/swc-linux-arm64-gnu@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.0.tgz#0088f3d13b253657333b6aced57e1e278452e766" + integrity sha512-io7fMkJ28Glj7SH8yvnlD6naIhRDnDxeE55CmpQkj3+uaA2Hko6WGY2pT5SzpQLTnGGnviK85cy8EJ2qsETj/g== + +"@next/swc-linux-arm64-musl@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.0.tgz#44d7c9be63dfdea2d4feeba515a8c80ca56f2d87" + integrity sha512-nC2h0l1Jt8LEzyQeSs/BKpXAMe0mnHIMykYALWaeddTqCv5UEN8nGO3BG8JAqW/Y8iutqJsaMe2A9itS0d/r8w== + +"@next/swc-linux-x64-gnu@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.0.tgz#064b7ca6da98ca7468ae5d97370e73a8bc2eee76" + integrity sha512-Wf+WjXibJQ7hHXOdNOmSMW5bxeJHVf46Pwb3eLSD2L76NrytQlif9NH7JpHuFlYKCQGfKfgSYYre5rIfmnSwQw== + +"@next/swc-linux-x64-musl@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.0.tgz#c2a66bd7d5f54a3a5faa14ff9bce93a507d2135d" + integrity sha512-WTZb2G7B+CTsdigcJVkRxfcAIQj7Lf0ipPNRJ3vlSadU8f0CFGv/ST+sJwF5eSwIe6dxKoX0DG6OljDBaad+rg== + +"@next/swc-win32-arm64-msvc@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.0.tgz#a657568bc1bf6f3bfabc07034342ef1942f14e31" + integrity sha512-7R8/x6oQODmNpnWVW00rlWX90sIlwluJwcvMT6GXNIBOvEf01t3fBg0AGURNKdTJg2xNuP7TyLchCL7Lh2DTiw== + +"@next/swc-win32-ia32-msvc@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.0.tgz#fe27ae6c165d6d74bf80f7dc37d67401c2148518" + integrity sha512-RLK1nELvhCnxaWPF07jGU4x3tjbyx2319q43loZELqF0+iJtKutZ+Lk8SVmf/KiJkYBc7Cragadz7hb3uQvz4g== + +"@next/swc-win32-x64-msvc@14.0.0": + version "14.0.0" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.0.tgz#fef677c3f4b62443e0b02d3d59440f6b0b8eb1f4" + integrity sha512-g6hLf1SUko+hnnaywQQZzzb3BRecQsoKkF3o/C+F+dOA4w/noVAJngUVkfwF0+2/8FzNznM7ofM6TGZO9svn7w== "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" @@ -4375,10 +4375,10 @@ deepmerge "^4.3.1" svgo "^3.0.2" -"@swc/helpers@0.5.1": - version "0.5.1" - resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" - integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== +"@swc/helpers@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" + integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== dependencies: tslib "^2.4.0" @@ -14487,36 +14487,35 @@ next-pwa@^5.6.0: workbox-webpack-plugin "^6.5.4" workbox-window "^6.5.4" -next-transpile-modules@^10.0.0: - version "10.0.0" - resolved "https://registry.yarnpkg.com/next-transpile-modules/-/next-transpile-modules-10.0.0.tgz#7152880048835acb64d05fc7aa34910cbe7994da" - integrity sha512-FyeJ++Lm2Fq31gbThiRCrJlYpIY9QaI7A3TjuhQLzOix8ChQrvn5ny4MhfIthS5cy6+uK1AhDRvxVdW17y3Xdw== +next-transpile-modules@^10.0.1: + version "10.0.1" + resolved "https://registry.yarnpkg.com/next-transpile-modules/-/next-transpile-modules-10.0.1.tgz#1ca2b735b14781f4792f6214f808b600574e0348" + integrity sha512-4VX/LCMofxIYAVV58UmD+kr8jQflpLWvas/BQ4Co0qWLWzVh06FoZkECkrX5eEZT6oJFqie6+kfbTA3EZCVtdQ== dependencies: enhanced-resolve "^5.10.0" -next@13.4.8: - version "13.4.8" - resolved "https://registry.yarnpkg.com/next/-/next-13.4.8.tgz#72245bf4fdf328970147ee30de97142c39b1cb3f" - integrity sha512-lxUjndYKjZHGK3CWeN2RI+/6ni6EUvjiqGWXAYPxUfGIdFGQ5XoisrqAJ/dF74aP27buAfs8MKIbIMMdxjqSBg== +next@14.0.0: + version "14.0.0" + resolved "https://registry.yarnpkg.com/next/-/next-14.0.0.tgz#8ec0d7a1d85a2361240479a51608d4b8c6b0c613" + integrity sha512-J0jHKBJpB9zd4+c153sair0sz44mbaCHxggs8ryVXSFBuBqJ8XdE9/ozoV85xGh2VnSjahwntBZZgsihL9QznA== dependencies: - "@next/env" "13.4.8" - "@swc/helpers" "0.5.1" + "@next/env" "14.0.0" + "@swc/helpers" "0.5.2" busboy "1.6.0" caniuse-lite "^1.0.30001406" - postcss "8.4.14" + postcss "8.4.31" styled-jsx "5.1.1" watchpack "2.4.0" - zod "3.21.4" optionalDependencies: - "@next/swc-darwin-arm64" "13.4.8" - "@next/swc-darwin-x64" "13.4.8" - "@next/swc-linux-arm64-gnu" "13.4.8" - "@next/swc-linux-arm64-musl" "13.4.8" - "@next/swc-linux-x64-gnu" "13.4.8" - "@next/swc-linux-x64-musl" "13.4.8" - "@next/swc-win32-arm64-msvc" "13.4.8" - "@next/swc-win32-ia32-msvc" "13.4.8" - "@next/swc-win32-x64-msvc" "13.4.8" + "@next/swc-darwin-arm64" "14.0.0" + "@next/swc-darwin-x64" "14.0.0" + "@next/swc-linux-arm64-gnu" "14.0.0" + "@next/swc-linux-arm64-musl" "14.0.0" + "@next/swc-linux-x64-gnu" "14.0.0" + "@next/swc-linux-x64-musl" "14.0.0" + "@next/swc-win32-arm64-msvc" "14.0.0" + "@next/swc-win32-ia32-msvc" "14.0.0" + "@next/swc-win32-x64-msvc" "14.0.0" nice-try@^1.0.4: version "1.0.5" @@ -15974,12 +15973,12 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== dependencies: - nanoid "^3.3.4" + nanoid "^3.3.6" picocolors "^1.0.0" source-map-js "^1.0.2" @@ -20684,7 +20683,7 @@ zen-observable@0.8.15: resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== -zod@3.21.4, zod@~3.20.6: +zod@~3.20.6: version "3.20.6" resolved "https://registry.yarnpkg.com/zod/-/zod-3.20.6.tgz#2f2f08ff81291d47d99e86140fedb4e0db08361a" integrity sha512-oyu0m54SGCtzh6EClBVqDDlAYRz4jrVtKwQ7ZnsEmMI9HnzuZFj8QFwAY1M5uniIYACdGvv0PBWPF2kO0aNofA==