Skip to content

Commit 21ef83d

Browse files
fix(deps): update dependency nodemailer to v7.0.7 [security] (#2046)
* fix(deps): update dependency nodemailer to v7.0.7 [security] * Apply automatic changes --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
1 parent a5f8a95 commit 21ef83d

File tree

14 files changed

+280
-296
lines changed

14 files changed

+280
-296
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
# Welcome to next-app-starter 👋
22

33
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
4+
45
[![All Contributors](https://img.shields.io/badge/all_contributors-4-orange.svg?style=flat-square)](#contributors-)
6+
57
<!-- ALL-CONTRIBUTORS-BADGE:END -->
68

79
![Version](https://img.shields.io/badge/version-0.1.0-blue.svg?cacheSeconds=2592000)

app/layout.tsx

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import Script from 'next/script';
22
import { ReactNode } from 'react';
33

4-
54
function RootLayout({
65
// Layouts must accept a children prop.
76
// This will be populated with nested layouts or pages
@@ -20,9 +19,7 @@ function RootLayout({
2019
/>
2120
<title>NextJs Starter App</title>
2221
</head>
23-
<body>
24-
{children}
25-
</body>
22+
<body>{children}</body>
2623
</html>
2724
);
2825
}

biome.json

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@
77
"defaultBranch": "main"
88
},
99
"files": {
10-
"ignore": [
11-
"public/*.js"
12-
]
10+
"ignore": ["public/*.js"]
1311
},
1412
"formatter": {
1513
"enabled": true,
@@ -97,11 +95,7 @@
9795
"noRestrictedGlobals": {
9896
"level": "error",
9997
"options": {
100-
"deniedGlobals": [
101-
"event",
102-
"atob",
103-
"btoa"
104-
]
98+
"deniedGlobals": ["event", "atob", "btoa"]
10599
}
106100
},
107101
"noVar": "error",
@@ -190,17 +184,13 @@
190184
}
191185
},
192186
{
193-
"include": [
194-
".storybook/main.@(js|cjs|mjs|ts)"
195-
],
187+
"include": [".storybook/main.@(js|cjs|mjs|ts)"],
196188
"linter": {
197189
"rules": {}
198190
}
199191
},
200192
{
201-
"include": [
202-
"**/*.d.ts"
203-
],
193+
"include": ["**/*.d.ts"],
204194
"linter": {
205195
"rules": {
206196
"correctness": {
@@ -210,20 +200,16 @@
210200
}
211201
},
212202
{
213-
"include": [
214-
"**/*.test-d.ts"
215-
],
203+
"include": ["**/*.test-d.ts"],
216204
"linter": {
217205
"rules": {}
218206
}
219207
},
220208
{
221-
"include": [
222-
"**/*.tsx"
223-
],
209+
"include": ["**/*.tsx"],
224210
"linter": {
225211
"rules": {}
226212
}
227213
}
228214
]
229-
}
215+
}

bun.lockb

11.8 KB
Binary file not shown.

components/Header/index.tsx

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ import { signIn, signOut, useSession } from 'next-auth/react';
22
import Image from 'next/image';
33
import Link from 'next/link';
44

5-
import styles from './header.module.css';
6-
import { type HeaderProps } from './types';
75
import { ModeToggle } from '../theme-switcher';
86
import { Button } from '../ui/button';
7+
import styles from './header.module.css';
8+
import { type HeaderProps } from './types';
99

1010
function Header({ links = [] }: HeaderProps) {
1111
const { data: session, status } = useSession();
@@ -38,11 +38,7 @@ function Header({ links = [] }: HeaderProps) {
3838
</Link>
3939
<nav className="flex flex-wrap justify-center items-center text-base md:py-1 md:pl-4 md:mr-auto md:ml-4 md:border-l md:border-gray-400">
4040
{links.map((link) => (
41-
<Link
42-
key={link.url}
43-
href={link.url}
44-
className="mr-5"
45-
>
41+
<Link key={link.url} href={link.url} className="mr-5">
4642
{link.title}
4743
</Link>
4844
))}
@@ -69,8 +65,6 @@ function Header({ links = [] }: HeaderProps) {
6965
</Button>
7066
)}
7167

72-
73-
7468
{session && (
7569
<div className="inline-flex items-center py-1 px-3 mt-4 text-base rounded border-0 md:mt-0 hover:bg-secondary focus:outline-hidden">
7670
{session.user.image && (
@@ -103,7 +97,6 @@ function Header({ links = [] }: HeaderProps) {
10397
</div>
10498
)}
10599
</div>
106-
107100
</header>
108101
);
109102
}

components/theme-provider.tsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
"use client"
1+
'use client';
22

3-
import * as React from "react"
4-
import { ThemeProvider as NextThemesProvider } from "next-themes"
3+
import { ThemeProvider as NextThemesProvider } from 'next-themes';
4+
import * as React from 'react';
55

66
export function ThemeProvider({
77
children,
88
...props
99
}: React.ComponentProps<typeof NextThemesProvider>) {
10-
return <NextThemesProvider {...props}>{children}</NextThemesProvider>
11-
}
10+
return <NextThemesProvider {...props}>{children}</NextThemesProvider>;
11+
}

components/theme-switcher.tsx

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,39 @@
1-
"use client"
2-
3-
import * as React from "react"
4-
import { Moon, Sun } from "lucide-react"
5-
import { useTheme } from "next-themes"
6-
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "./ui/dropdown-menu"
7-
import { Button } from "./ui/button"
1+
'use client';
82

3+
import { Moon, Sun } from 'lucide-react';
4+
import { useTheme } from 'next-themes';
5+
import * as React from 'react';
6+
import { Button } from './ui/button';
7+
import {
8+
DropdownMenu,
9+
DropdownMenuContent,
10+
DropdownMenuItem,
11+
DropdownMenuTrigger,
12+
} from './ui/dropdown-menu';
913

1014
export function ModeToggle() {
11-
const { setTheme } = useTheme()
15+
const { setTheme } = useTheme();
1216

13-
return (
14-
<DropdownMenu>
15-
<DropdownMenuTrigger asChild={true}>
16-
<Button variant="outline" size="icon">
17-
<Sun className="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" />
18-
<Moon className="absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" />
19-
<span className="sr-only">Toggle theme</span>
20-
</Button>
21-
</DropdownMenuTrigger>
22-
<DropdownMenuContent align="end">
23-
<DropdownMenuItem onClick={() => setTheme("light")}>
24-
Light
25-
</DropdownMenuItem>
26-
<DropdownMenuItem onClick={() => setTheme("dark")}>
27-
Dark
28-
</DropdownMenuItem>
29-
<DropdownMenuItem onClick={() => setTheme("system")}>
30-
System
31-
</DropdownMenuItem>
32-
</DropdownMenuContent>
33-
</DropdownMenu>
34-
)
17+
return (
18+
<DropdownMenu>
19+
<DropdownMenuTrigger asChild={true}>
20+
<Button variant="outline" size="icon">
21+
<Sun className="h-[1.2rem] w-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90" />
22+
<Moon className="absolute h-[1.2rem] w-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0" />
23+
<span className="sr-only">Toggle theme</span>
24+
</Button>
25+
</DropdownMenuTrigger>
26+
<DropdownMenuContent align="end">
27+
<DropdownMenuItem onClick={() => setTheme('light')}>
28+
Light
29+
</DropdownMenuItem>
30+
<DropdownMenuItem onClick={() => setTheme('dark')}>
31+
Dark
32+
</DropdownMenuItem>
33+
<DropdownMenuItem onClick={() => setTheme('system')}>
34+
System
35+
</DropdownMenuItem>
36+
</DropdownMenuContent>
37+
</DropdownMenu>
38+
);
3539
}

components/ui/button.tsx

Lines changed: 60 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,69 @@
1-
import * as React from "react"
2-
import { Slot } from "@radix-ui/react-slot"
3-
import { cva, type VariantProps } from "class-variance-authority"
4-
import { cn } from "../utils"
1+
import { Slot } from '@radix-ui/react-slot';
2+
import { type VariantProps, cva } from 'class-variance-authority';
3+
import * as React from 'react';
4+
import { cn } from '../utils';
55

66
const buttonVariants = cva(
7-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
8-
{
9-
variants: {
10-
variant: {
11-
default: "bg-primary text-primary-foreground hover:bg-primary/90",
12-
destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90",
13-
outline: "border border-input bg-background hover:bg-accent hover:text-accent-foreground",
14-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
15-
ghost: "hover:bg-accent hover:text-accent-foreground",
16-
link: "text-primary underline-offset-4 hover:underline",
17-
blue: [
18-
'font-semibold',
19-
'bg-transparent',
20-
'border',
21-
'border-blue-500',
22-
'text-blue-800',
23-
'hover:bg-blue-500',
24-
'hover:text-white',
25-
'hover:border-transparent',
26-
],
27-
},
28-
size: {
29-
default: "h-10 px-4 py-2",
30-
sm: "h-9 rounded-md px-3",
31-
lg: "h-11 rounded-md px-8",
32-
icon: "h-10 w-10",
33-
s: ['px-4', 'py-2', 'text-base'],
34-
m: ['px-6', 'py-3', 'text-lg'],
35-
l: ['px-8', 'py-4', 'text-xl'],
36-
},
7+
'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',
8+
{
9+
variants: {
10+
variant: {
11+
default:
12+
'bg-primary text-primary-foreground hover:bg-primary/90',
13+
destructive:
14+
'bg-destructive text-destructive-foreground hover:bg-destructive/90',
15+
outline:
16+
'border border-input bg-background hover:bg-accent hover:text-accent-foreground',
17+
secondary:
18+
'bg-secondary text-secondary-foreground hover:bg-secondary/80',
19+
ghost: 'hover:bg-accent hover:text-accent-foreground',
20+
link: 'text-primary underline-offset-4 hover:underline',
21+
blue: [
22+
'font-semibold',
23+
'bg-transparent',
24+
'border',
25+
'border-blue-500',
26+
'text-blue-800',
27+
'hover:bg-blue-500',
28+
'hover:text-white',
29+
'hover:border-transparent',
30+
],
31+
},
32+
size: {
33+
default: 'h-10 px-4 py-2',
34+
sm: 'h-9 rounded-md px-3',
35+
lg: 'h-11 rounded-md px-8',
36+
icon: 'h-10 w-10',
37+
s: ['px-4', 'py-2', 'text-base'],
38+
m: ['px-6', 'py-3', 'text-lg'],
39+
l: ['px-8', 'py-4', 'text-xl'],
40+
},
41+
},
42+
defaultVariants: {
43+
variant: 'default',
44+
size: 'default',
45+
},
3746
},
38-
defaultVariants: {
39-
variant: "default",
40-
size: "default",
41-
},
42-
}
43-
)
47+
);
4448

4549
export interface ButtonProps
46-
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
47-
VariantProps<typeof buttonVariants> {
48-
asChild?: boolean
50+
extends React.ButtonHTMLAttributes<HTMLButtonElement>,
51+
VariantProps<typeof buttonVariants> {
52+
asChild?: boolean;
4953
}
5054

5155
const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(
52-
({ className, variant, size, asChild = false, ...props }, ref) => {
53-
const Comp = asChild ? Slot : "button"
54-
return (
55-
<Comp
56-
className={cn(buttonVariants({ variant, size, className }))}
57-
ref={ref}
58-
{...props}
59-
/>
60-
)
61-
}
62-
)
63-
Button.displayName = "Button"
56+
({ className, variant, size, asChild = false, ...props }, ref) => {
57+
const Comp = asChild ? Slot : 'button';
58+
return (
59+
<Comp
60+
className={cn(buttonVariants({ variant, size, className }))}
61+
ref={ref}
62+
{...props}
63+
/>
64+
);
65+
},
66+
);
67+
Button.displayName = 'Button';
6468

65-
export { Button, buttonVariants }
69+
export { Button, buttonVariants };

0 commit comments

Comments
 (0)