diff --git a/apps/discord-bot-frontend/package.json b/apps/discord-bot-frontend/package.json
index 20ead203..f17d7cba 100644
--- a/apps/discord-bot-frontend/package.json
+++ b/apps/discord-bot-frontend/package.json
@@ -36,7 +36,6 @@
"express": "^4.18.1",
"fast-glob": "^3.2.11",
"prisma": "^4.5.0",
- "svelte": "4.2.1",
"uuid": "^8.3.2",
"zod": "^3.19.1"
},
@@ -64,6 +63,7 @@
"d3-sankey": "^0.12.3",
"esbuild": "^0.19.2",
"jsdom": "^20.0.0",
+ "svelte": "4.2.1",
"svelte-check": "^3.5.0",
"tasuku": "^2.0.1",
"tslib": "^2.6.2",
diff --git a/apps/discord-bot-frontend/playwright.config.ts b/apps/discord-bot-frontend/playwright.config.ts
index 399a6005..25a8c95b 100644
--- a/apps/discord-bot-frontend/playwright.config.ts
+++ b/apps/discord-bot-frontend/playwright.config.ts
@@ -1,6 +1,6 @@
import { defineConfig, devices } from '@playwright/test'
-import { loadEnvVars } from './vite.config'
import { z } from 'zod'
+import { loadEnvVars } from './vite.config'
loadEnvVars()
diff --git a/apps/discord-bot-frontend/scripts/seed.ts b/apps/discord-bot-frontend/scripts/seed.ts
index fa71e506..964900f7 100644
--- a/apps/discord-bot-frontend/scripts/seed.ts
+++ b/apps/discord-bot-frontend/scripts/seed.ts
@@ -1,8 +1,8 @@
+import type { DiscordUser, DiscordRole, Prisma } from '@prisma/client'
import { faker } from '@faker-js/faker'
import task from 'tasuku'
import { prisma, init } from '$lib/db'
import { ACCESS_LEVELS } from '$lib/constants'
-import type { DiscordUser, DiscordRole, Prisma } from '@prisma/client'
function createFakeUsers(): Prisma.DiscordUserCreateInput[] {
return Array.from({ length: 10 }).map(() => ({
diff --git a/apps/discord-bot-frontend/src/app.d.ts b/apps/discord-bot-frontend/src/app.d.ts
index 7d7a16a5..7e5d6544 100644
--- a/apps/discord-bot-frontend/src/app.d.ts
+++ b/apps/discord-bot-frontend/src/app.d.ts
@@ -1,7 +1,7 @@
/* eslint-disable @typescript-eslint/no-empty-interface */
///
-import * as Auth from '@auth/core/types'
import type { APIGuild } from 'discord.js'
+import type * as Auth from '@auth/core/types'
interface User extends Auth.User {
id: string
diff --git a/apps/discord-bot-frontend/src/lib/auth/config.ts b/apps/discord-bot-frontend/src/lib/auth/config.ts
index 7a2e81a5..000d1f4d 100644
--- a/apps/discord-bot-frontend/src/lib/auth/config.ts
+++ b/apps/discord-bot-frontend/src/lib/auth/config.ts
@@ -1,3 +1,5 @@
+import type { AppSession } from '../../app'
+import type { SvelteKitAuthConfig } from '@auth/sveltekit'
import GitHub from '@auth/core/providers/github'
import Discord from '@auth/core/providers/discord'
import { get } from 'svelte/store'
@@ -5,8 +7,6 @@ import { PrismaAdapter } from '@next-auth/prisma-adapter'
import { getUserAccess } from '$lib/discord/get-user-access'
import { prisma } from '$lib/db'
import { guild } from '$lib/store'
-import type { AppSession } from '../../app'
-import type { SvelteKitAuthConfig } from '@auth/sveltekit'
export const config: SvelteKitAuthConfig = {
adapter: PrismaAdapter(prisma),
diff --git a/apps/discord-bot-frontend/src/lib/discord/api.ts b/apps/discord-bot-frontend/src/lib/discord/api.ts
index 23884e21..a6b0b4ec 100644
--- a/apps/discord-bot-frontend/src/lib/discord/api.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/api.ts
@@ -1,9 +1,9 @@
-import { REST } from '@discordjs/rest'
import type {
RESTOptions,
InternalRequest,
RequestMethod,
} from '@discordjs/rest'
+import { REST } from '@discordjs/rest'
// we'll want to eventually expand this interface with more options specific to our DX
// eslint-disable-next-line @typescript-eslint/no-empty-interface
diff --git a/apps/discord-bot-frontend/src/lib/discord/client.ts b/apps/discord-bot-frontend/src/lib/discord/client.ts
index 0b530611..b1115163 100644
--- a/apps/discord-bot-frontend/src/lib/discord/client.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/client.ts
@@ -1,3 +1,4 @@
+import type { Question } from '@prisma/client'
import {
Client,
GatewayIntentBits,
@@ -10,7 +11,6 @@ import {
type ThreadChannel,
type Guild,
} from 'discord.js'
-import { prisma } from '$lib/db'
import {
commands,
createCommandFeatures,
@@ -18,9 +18,9 @@ import {
} from './commands'
import { PREFIXES } from './commands/thread'
import { isHelpChannel, isThreadWithinHelpChannel } from './support'
+import { prisma } from '$lib/db'
import { integrations } from '$lib/features/index'
import { FEATURE_TYPES } from '$lib/constants'
-import type { Question } from '@prisma/client'
export const client = new Client({
intents: [
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands.ts b/apps/discord-bot-frontend/src/lib/discord/commands.ts
index b151e012..d6728191 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands.ts
@@ -15,8 +15,6 @@ import {
type MessagePayload,
type InteractionEditReplyOptions,
} from 'discord.js'
-import { prisma } from '$lib/db'
-import { FEATURE_TYPES } from '$lib/constants'
import * as admin from './commands/admin'
import * as contribute from './commands/contribute'
import * as github from './commands/github'
@@ -26,6 +24,8 @@ import * as selectAnswer from './commands/select-answer'
import * as thread from './commands/thread'
import * as q from './commands/q'
import { api } from './api'
+import { FEATURE_TYPES } from '$lib/constants'
+import { prisma } from '$lib/db'
type AuthoredCommand = {
handler: (
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/admin.ts b/apps/discord-bot-frontend/src/lib/discord/commands/admin.ts
index fdaae96a..b10e5f57 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/admin.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/admin.ts
@@ -1,6 +1,15 @@
+import type {
+ Message,
+ ChatInputCommandInteraction,
+ InteractionReplyOptions,
+ ThreadChannel,
+} from 'discord.js'
+import type { Question } from '@prisma/client'
import { SlashCommandBuilder } from '@discordjs/builders'
import { faker } from '@faker-js/faker'
import { EmbedBuilder, PermissionFlagsBits } from 'discord.js'
+import { isThreadWithinHelpChannel } from '../support'
+import { repositoriesWithDiscussions as repositories } from './_repositories'
import { getUserAccess } from '$lib/discord/get-user-access'
import { prisma } from '$lib/db'
import {
@@ -9,15 +18,6 @@ import {
markAnswered,
lockDiscussion,
} from '$lib/github/queries'
-import { repositoriesWithDiscussions as repositories } from './_repositories'
-import { isThreadWithinHelpChannel } from '../support'
-import type {
- Message,
- ChatInputCommandInteraction,
- InteractionReplyOptions,
- ThreadChannel,
-} from 'discord.js'
-import type { Question } from '@prisma/client'
const userIdToUsername = new Map()
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/contribute.ts b/apps/discord-bot-frontend/src/lib/discord/commands/contribute.ts
index c7dbb9d1..7924aa49 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/contribute.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/contribute.ts
@@ -1,9 +1,9 @@
-import { SlashCommandBuilder } from '@discordjs/builders'
-import { repositories } from './_repositories'
import type {
ChatInputCommandInteraction,
InteractionReplyOptions,
} from 'discord.js'
+import { SlashCommandBuilder } from '@discordjs/builders'
+import { repositories } from './_repositories'
export const config = new SlashCommandBuilder()
.setName('contribute')
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/github.ts b/apps/discord-bot-frontend/src/lib/discord/commands/github.ts
index f89b9544..75957aca 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/github.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/github.ts
@@ -1,6 +1,6 @@
+import type { ChatInputCommandInteraction } from 'discord.js'
import { SlashCommandBuilder } from '@discordjs/builders'
import { repositories } from './_repositories'
-import type { ChatInputCommandInteraction } from 'discord.js'
export const config = new SlashCommandBuilder()
.setName('github')
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/login.ts b/apps/discord-bot-frontend/src/lib/discord/commands/login.ts
index d6076226..0611e9c5 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/login.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/login.ts
@@ -1,8 +1,8 @@
-import { SlashCommandBuilder } from '@discordjs/builders'
import type {
ChatInputCommandInteraction,
InteractionReplyOptions,
} from 'discord.js'
+import { SlashCommandBuilder } from '@discordjs/builders'
export const config = new SlashCommandBuilder()
.setName('login')
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/q.ts b/apps/discord-bot-frontend/src/lib/discord/commands/q.ts
index 69e381b1..bf137ac5 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/q.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/q.ts
@@ -1,10 +1,3 @@
-import { EmbedBuilder, ButtonStyle } from 'discord.js'
-import {
- SlashCommandBuilder,
- ActionRowBuilder,
- ButtonBuilder,
-} from '@discordjs/builders'
-import { prisma } from '$lib/db'
import type {
ButtonInteraction,
ChatInputCommandInteraction,
@@ -12,6 +5,13 @@ import type {
TextBasedChannel,
} from 'discord.js'
import type { Question } from '@prisma/client'
+import { EmbedBuilder, ButtonStyle } from 'discord.js'
+import {
+ SlashCommandBuilder,
+ ActionRowBuilder,
+ ButtonBuilder,
+} from '@discordjs/builders'
+import { prisma } from '$lib/db'
function epoch(date: Date): number {
return Math.floor(date.getTime() / 1000)
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/select-answer.ts b/apps/discord-bot-frontend/src/lib/discord/commands/select-answer.ts
index 0fc2d8cd..ab6d38bd 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/select-answer.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/select-answer.ts
@@ -1,12 +1,12 @@
-import { ContextMenuCommandBuilder } from '@discordjs/builders'
-import { ApplicationCommandType, EmbedBuilder } from 'discord.js'
-import { prisma } from '$lib/db'
-import { isAdminOrStaff } from '../is-admin-or-staff'
import type {
GuildMember,
MessageContextMenuCommandInteraction,
} from 'discord.js'
+import { ContextMenuCommandBuilder } from '@discordjs/builders'
+import { ApplicationCommandType, EmbedBuilder } from 'discord.js'
+import { isAdminOrStaff } from '../is-admin-or-staff'
import { parseTitle, parseTitlePrefix, fitsPrefix, truncateSuffix, PREFIXES } from './thread'
+import { prisma } from '$lib/db'
export const config = new ContextMenuCommandBuilder()
.setName('select-answer')
diff --git a/apps/discord-bot-frontend/src/lib/discord/commands/thread.ts b/apps/discord-bot-frontend/src/lib/discord/commands/thread.ts
index e92b6cfa..bc2760e3 100644
--- a/apps/discord-bot-frontend/src/lib/discord/commands/thread.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/commands/thread.ts
@@ -1,14 +1,14 @@
-import { SlashCommandBuilder } from '@discordjs/builders'
-import { EmbedBuilder, MessageType } from 'discord.js'
-import { prisma } from '$lib/db'
-import { isThreadWithinHelpChannel } from '../support'
-import { isAdminOrStaff } from '../is-admin-or-staff'
import type {
ChatInputCommandInteraction,
GuildMember,
ThreadChannel,
InteractionReplyOptions,
} from 'discord.js'
+import { SlashCommandBuilder } from '@discordjs/builders'
+import { EmbedBuilder, MessageType } from 'discord.js'
+import { isThreadWithinHelpChannel } from '../support'
+import { isAdminOrStaff } from '../is-admin-or-staff'
+import { prisma } from '$lib/db'
export const PREFIXES = {
solved: '✅ - ',
diff --git a/apps/discord-bot-frontend/src/lib/discord/get-bot-guilds.ts b/apps/discord-bot-frontend/src/lib/discord/get-bot-guilds.ts
index 6c682b53..ce66701d 100644
--- a/apps/discord-bot-frontend/src/lib/discord/get-bot-guilds.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/get-bot-guilds.ts
@@ -1,6 +1,6 @@
+import type { APIGuild } from 'discord.js'
import { Routes } from 'discord.js'
import { api } from './api'
-import type { APIGuild } from 'discord.js'
/**
* Fetches the bot's guilds
diff --git a/apps/discord-bot-frontend/src/lib/discord/get-user-access.ts b/apps/discord-bot-frontend/src/lib/discord/get-user-access.ts
index b62aa537..eae86d91 100644
--- a/apps/discord-bot-frontend/src/lib/discord/get-user-access.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/get-user-access.ts
@@ -1,8 +1,8 @@
+import type { APIGuild, APIGuildMember } from 'discord-api-types/v10'
import { Routes } from 'discord-api-types/v10'
+import { api } from './api'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
-import { api } from './api'
-import type { APIGuild, APIGuildMember } from 'discord-api-types/v10'
export async function getUserAccess(
guildMemberId: string,
diff --git a/apps/discord-bot-frontend/src/lib/discord/is-admin-or-staff.ts b/apps/discord-bot-frontend/src/lib/discord/is-admin-or-staff.ts
index ff7fee82..2d123da9 100644
--- a/apps/discord-bot-frontend/src/lib/discord/is-admin-or-staff.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/is-admin-or-staff.ts
@@ -1,6 +1,6 @@
+import type { GuildMember } from 'discord.js'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
-import type { GuildMember } from 'discord.js'
export async function isAdminOrStaff(user: GuildMember) {
const data = await prisma.configuration.findUnique({
diff --git a/apps/discord-bot-frontend/src/lib/discord/roles/addRole.ts b/apps/discord-bot-frontend/src/lib/discord/roles/addRole.ts
index 6b23eb3e..9eb19a54 100644
--- a/apps/discord-bot-frontend/src/lib/discord/roles/addRole.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/roles/addRole.ts
@@ -1,5 +1,5 @@
-import { api } from '$lib/discord/api'
import { Routes } from 'discord-api-types/v10'
+import { api } from '$lib/discord/api'
/** applies a role to a given user */
export async function addRole(roleId: string, guildId: string, userId: string) {
diff --git a/apps/discord-bot-frontend/src/lib/discord/roles/removeRole.ts b/apps/discord-bot-frontend/src/lib/discord/roles/removeRole.ts
index 160088a2..3e879d0c 100644
--- a/apps/discord-bot-frontend/src/lib/discord/roles/removeRole.ts
+++ b/apps/discord-bot-frontend/src/lib/discord/roles/removeRole.ts
@@ -1,5 +1,5 @@
-import { api } from '$lib/discord/api'
import { Routes } from 'discord-api-types/v10'
+import { api } from '$lib/discord/api'
/** removes a role from a given user */
export async function removeRole(
diff --git a/apps/discord-bot-frontend/src/lib/features/is-enabled.ts b/apps/discord-bot-frontend/src/lib/features/is-enabled.ts
index af6ea71b..0d7376ff 100644
--- a/apps/discord-bot-frontend/src/lib/features/is-enabled.ts
+++ b/apps/discord-bot-frontend/src/lib/features/is-enabled.ts
@@ -1,5 +1,5 @@
+import type { FEATURE_CODES } from '$lib/constants'
import { prisma } from '$lib/db'
-import { FEATURE_CODES } from '$lib/constants'
export const isEnabled = async (
code: keyof typeof FEATURE_CODES,
diff --git a/apps/discord-bot-frontend/src/lib/notifications.ts b/apps/discord-bot-frontend/src/lib/notifications.ts
index 4515b059..ae7c366d 100644
--- a/apps/discord-bot-frontend/src/lib/notifications.ts
+++ b/apps/discord-bot-frontend/src/lib/notifications.ts
@@ -1,7 +1,7 @@
-import { writable } from 'svelte/store'
-import { v4 as uuid } from 'uuid'
import type { Readable } from 'svelte/store'
import type { ToastNotificationProps } from 'carbon-components-svelte/types/Notification/ToastNotification.svelte'
+import { writable } from 'svelte/store'
+import { v4 as uuid } from 'uuid'
type Notification = ToastNotificationProps & {
id: string
diff --git a/apps/discord-bot-frontend/src/lib/server/hooks/handle-auth.ts b/apps/discord-bot-frontend/src/lib/server/hooks/handle-auth.ts
index 20ba5a9a..1e0516d3 100644
--- a/apps/discord-bot-frontend/src/lib/server/hooks/handle-auth.ts
+++ b/apps/discord-bot-frontend/src/lib/server/hooks/handle-auth.ts
@@ -1,6 +1,6 @@
+import type { Handle } from '@sveltejs/kit'
import { SvelteKitAuth } from '@auth/sveltekit'
import { config } from '$lib/auth/config'
-import type { Handle } from '@sveltejs/kit'
/**
* @todo use session callback to extend session?
diff --git a/apps/discord-bot-frontend/src/lib/server/hooks/handle-saved-guild.ts b/apps/discord-bot-frontend/src/lib/server/hooks/handle-saved-guild.ts
index 67489954..10dfab7e 100644
--- a/apps/discord-bot-frontend/src/lib/server/hooks/handle-saved-guild.ts
+++ b/apps/discord-bot-frontend/src/lib/server/hooks/handle-saved-guild.ts
@@ -1,9 +1,9 @@
-import cookie from 'cookie'
+import type { Handle, RequestEvent } from '@sveltejs/kit'
+import * as cookie from 'cookie'
import { Routes } from 'discord.js'
import { GUILD_COOKIE } from '$lib/constants'
import { api } from '$lib/discord/api'
import { getBotGuilds } from '$lib/discord/get-bot-guilds'
-import type { Handle, RequestEvent } from '@sveltejs/kit'
/**
* Parse cookies from the event and returns the value of the guild cookie
diff --git a/apps/discord-bot-frontend/src/lib/store.ts b/apps/discord-bot-frontend/src/lib/store.ts
index 42651e4f..46bf18c0 100644
--- a/apps/discord-bot-frontend/src/lib/store.ts
+++ b/apps/discord-bot-frontend/src/lib/store.ts
@@ -1,6 +1,6 @@
+import type { Writable } from 'svelte/store'
import { derived, writable } from 'svelte/store'
import { page } from '$app/stores'
-import type { Writable } from 'svelte/store'
export { store as notifications } from './notifications'
diff --git a/apps/discord-bot-frontend/src/routes/admin/+layout.server.ts b/apps/discord-bot-frontend/src/routes/admin/+layout.server.ts
index 0415f1be..90214237 100644
--- a/apps/discord-bot-frontend/src/routes/admin/+layout.server.ts
+++ b/apps/discord-bot-frontend/src/routes/admin/+layout.server.ts
@@ -1,5 +1,5 @@
-import { redirect } from '@sveltejs/kit'
import type { LayoutServerLoad } from './$types'
+import { redirect } from '@sveltejs/kit'
export const load: LayoutServerLoad = async ({ locals }) => {
if (locals.session?.user?.isAdmin || locals.session?.user?.isGuildOwner) {
diff --git a/apps/discord-bot-frontend/src/routes/admin/+page.server.ts b/apps/discord-bot-frontend/src/routes/admin/+page.server.ts
index 9bb64338..db42acf8 100644
--- a/apps/discord-bot-frontend/src/routes/admin/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/admin/+page.server.ts
@@ -1,3 +1,4 @@
+import type { PageServerLoad } from './$types'
import { error } from '@sveltejs/kit'
import {
type Configuration,
@@ -11,6 +12,8 @@ import {
type RESTGetAPIGuildRolesResult,
type RESTGetAPIApplicationCommandResult,
} from 'discord-api-types/v10'
+import { api } from '../api/_discord'
+import { tabs } from './tabs'
import { env } from '$env/dynamic/private'
import {
commands as bank,
@@ -18,9 +21,6 @@ import {
} from '$lib/discord/commands'
import { prisma } from '$lib/db'
import { FEATURE_TYPES } from '$lib/constants'
-import type { PageServerLoad } from './$types'
-import { api } from '../api/_discord'
-import { tabs } from './tabs'
type AdminPageReturn = {
commands: Array<
diff --git a/apps/discord-bot-frontend/src/routes/admin/breadcrumbs.ts b/apps/discord-bot-frontend/src/routes/admin/breadcrumbs.ts
index e4aa16be..d31efa9b 100644
--- a/apps/discord-bot-frontend/src/routes/admin/breadcrumbs.ts
+++ b/apps/discord-bot-frontend/src/routes/admin/breadcrumbs.ts
@@ -1,5 +1,5 @@
-import { page } from '$app/stores'
import { derived } from 'svelte/store'
+import { page } from '$app/stores'
export const createIntegrationHrefFromCode = (code: string) => {
return `/admin/integrations/${code.toLowerCase()}`
diff --git a/apps/discord-bot-frontend/src/routes/admin/integrations/+page.server.ts b/apps/discord-bot-frontend/src/routes/admin/integrations/+page.server.ts
index 1dd5730b..e143d4f6 100644
--- a/apps/discord-bot-frontend/src/routes/admin/integrations/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/admin/integrations/+page.server.ts
@@ -1,7 +1,7 @@
-import { prisma } from '$lib/db'
-import { FEATURE_TYPES } from '$lib/constants'
import type { PageServerLoad } from './$types'
import { createIntegrationHrefFromCode } from '../breadcrumbs'
+import { prisma } from '$lib/db'
+import { FEATURE_TYPES } from '$lib/constants'
export const load: PageServerLoad = async ({ locals }) => {
const integrations = await prisma.configurationFeature.findMany({
diff --git a/apps/discord-bot-frontend/src/routes/admin/integrations/[code]/+page.server.ts b/apps/discord-bot-frontend/src/routes/admin/integrations/[code]/+page.server.ts
index bfa4e78c..df97a728 100644
--- a/apps/discord-bot-frontend/src/routes/admin/integrations/[code]/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/admin/integrations/[code]/+page.server.ts
@@ -1,5 +1,5 @@
-import { prisma } from '$lib/db'
import type { PageServerLoad } from './$types'
+import { prisma } from '$lib/db'
export const load: PageServerLoad = async ({ locals, params }) => {
const { code } = params
diff --git a/apps/discord-bot-frontend/src/routes/api/admin/configure/+server.ts b/apps/discord-bot-frontend/src/routes/api/admin/configure/+server.ts
index 3f6be5df..d4fbb01b 100644
--- a/apps/discord-bot-frontend/src/routes/api/admin/configure/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/admin/configure/+server.ts
@@ -1,7 +1,7 @@
+import type { RequestHandler } from '@sveltejs/kit'
import { json } from '@sveltejs/kit'
import { prisma } from '$lib/db'
import { ACCESS_LEVELS } from '$lib/constants'
-import type { RequestHandler } from '@sveltejs/kit'
export const POST: RequestHandler = async ({ request }) => {
const { id, name, adminRoles, staffRoles, contributorRoles } =
diff --git a/apps/discord-bot-frontend/src/routes/api/admin/feature/+server.ts b/apps/discord-bot-frontend/src/routes/api/admin/feature/+server.ts
index db7de9bc..04e6ff8d 100644
--- a/apps/discord-bot-frontend/src/routes/api/admin/feature/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/admin/feature/+server.ts
@@ -1,6 +1,6 @@
+import type { FEATURE_CODES } from '$lib/constants'
import { type RequestHandler } from '@sveltejs/kit'
import { prisma } from '$lib/db'
-import { FEATURE_CODES } from '$lib/constants'
type Payload = {
/**
diff --git a/apps/discord-bot-frontend/src/routes/api/discord/[userId]/+server.ts b/apps/discord-bot-frontend/src/routes/api/discord/[userId]/+server.ts
index b863ff7a..ee5a43f2 100644
--- a/apps/discord-bot-frontend/src/routes/api/discord/[userId]/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/discord/[userId]/+server.ts
@@ -1,7 +1,7 @@
-import { Routes } from 'discord-api-types/v10'
-import { api } from '$lib/discord/api'
import type { RequestHandler } from '@sveltejs/kit'
import type { APIGuildMember } from 'discord-api-types/v10'
+import { Routes } from 'discord-api-types/v10'
+import { api } from '$lib/discord/api'
const guildId = import.meta.env.VITE_DISCORD_GUILD_ID
diff --git a/apps/discord-bot-frontend/src/routes/api/github/[username]/+server.ts b/apps/discord-bot-frontend/src/routes/api/github/[username]/+server.ts
index 60fe591a..43cbf7bf 100644
--- a/apps/discord-bot-frontend/src/routes/api/github/[username]/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/github/[username]/+server.ts
@@ -1,5 +1,5 @@
-import { createOctokit } from '$lib/github/create-octokit'
import type { RequestHandler } from '@sveltejs/kit'
+import { createOctokit } from '$lib/github/create-octokit'
export const GET: RequestHandler = async ({ params }) => {
const octokit = await createOctokit()
diff --git a/apps/discord-bot-frontend/src/routes/api/questions/list/+server.ts b/apps/discord-bot-frontend/src/routes/api/questions/list/+server.ts
index 1e94a497..1a095a9c 100644
--- a/apps/discord-bot-frontend/src/routes/api/questions/list/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/questions/list/+server.ts
@@ -1,6 +1,6 @@
+import type { RequestHandler } from '@sveltejs/kit'
import { json } from '@sveltejs/kit'
import { prisma } from '$lib/db'
-import type { RequestHandler } from '@sveltejs/kit'
export const GET: RequestHandler = async () => {
const questions = await prisma.question.findMany()
diff --git a/apps/discord-bot-frontend/src/routes/api/switch-guild/+server.ts b/apps/discord-bot-frontend/src/routes/api/switch-guild/+server.ts
index 2072d66a..d3a52bcc 100644
--- a/apps/discord-bot-frontend/src/routes/api/switch-guild/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/switch-guild/+server.ts
@@ -1,5 +1,5 @@
import { type RequestHandler } from '@sveltejs/kit'
-import cookie from 'cookie'
+import * as cookie from 'cookie'
import { GUILD_COOKIE } from '$lib/constants'
export const POST: RequestHandler = async ({ request, locals }) => {
diff --git a/apps/discord-bot-frontend/src/routes/api/webhooks/github-org-membership/+server.ts b/apps/discord-bot-frontend/src/routes/api/webhooks/github-org-membership/+server.ts
index 2fb5cb06..56c8dbec 100644
--- a/apps/discord-bot-frontend/src/routes/api/webhooks/github-org-membership/+server.ts
+++ b/apps/discord-bot-frontend/src/routes/api/webhooks/github-org-membership/+server.ts
@@ -1,10 +1,10 @@
+import type { RequestHandler } from '@sveltejs/kit'
import { json } from '@sveltejs/kit'
+import { verifyGithubWebhookEvent } from '../_verifyWebhook'
import { addRole } from '$lib/discord/roles/addRole'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
import { removeRole } from '$lib/discord/roles/removeRole'
-import { verifyGithubWebhookEvent } from '../_verifyWebhook'
-import type { RequestHandler } from '@sveltejs/kit'
async function getDiscordUserId(ghUserId: string) {
const data = await prisma.user.findFirst({
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/+layout.server.ts b/apps/discord-bot-frontend/src/routes/dashboard/+layout.server.ts
index 9d7d8331..8f1b9548 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/+layout.server.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/+layout.server.ts
@@ -1,5 +1,5 @@
-import { redirect } from '@sveltejs/kit'
import type { LayoutServerLoad } from './$types'
+import { redirect } from '@sveltejs/kit'
export const load: LayoutServerLoad = async ({ parent }) => {
const { session } = await parent()
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/+page.server.ts b/apps/discord-bot-frontend/src/routes/dashboard/+page.server.ts
index 7852b97a..c1eb2b3e 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/+page.server.ts
@@ -1,13 +1,13 @@
+import type { APIGuildPreview } from 'discord-api-types/v10'
+import type { PageServerLoad } from './$types'
import { error } from '@sveltejs/kit'
import { Routes } from 'discord-api-types/v10'
-import { api } from '$lib/discord/api'
-import { prisma } from '$lib/db'
-import { getGitHubMembers } from '$lib/github/get-github-members'
import { getStaffContributors } from './helpers/get-staff-contributors'
import { getAllContributors } from './helpers/get-all-contributors'
import { fetchHelpChannels } from './helpers/fetch-help-channels'
-import type { APIGuildPreview } from 'discord-api-types/v10'
-import type { PageServerLoad } from './$types'
+import { api } from '$lib/discord/api'
+import { prisma } from '$lib/db'
+import { getGitHubMembers } from '$lib/github/get-github-members'
export const load: PageServerLoad = async ({ locals }) => {
console.debug('[dashboard] server load')
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/fetch-help-channels.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/fetch-help-channels.ts
index 1b985bd5..a67dd74f 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/fetch-help-channels.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/fetch-help-channels.ts
@@ -1,8 +1,8 @@
+import type { APIPartialChannel } from 'discord-api-types/v10'
+import type { ForumChannel, TextChannel } from 'discord.js'
import { Routes } from 'discord-api-types/v10'
import { api } from '$lib/discord/api'
import { isHelpChannel } from '$lib/discord/support'
-import type { APIPartialChannel } from 'discord-api-types/v10'
-import type { ForumChannel, TextChannel } from 'discord.js'
export async function fetchHelpChannels(guildId: string): Promise {
let channels: string[] = []
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-answers.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-answers.ts
index c67339b9..675b54c0 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-answers.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-answers.ts
@@ -1,6 +1,6 @@
+import type { Contributor } from '../types'
import { filterQuestionsByChannel } from './filter-questions-by-channel'
import { filterQuestionsByDateRange } from './filter-questions-by-date-range'
-import type { Contributor } from '../types'
/**
* Filter answers by channel and date range
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-questions.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-questions.ts
index 9428ca57..fd3b6588 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-questions.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/filter-questions.ts
@@ -1,7 +1,7 @@
+import type { Question } from '../types'
import { filterQuestionsByDateRange } from './filter-questions-by-date-range'
import { filterQuestionsByChannel } from './filter-questions-by-channel'
import { filterQuestionsByTag } from './filter-questions-by-tag'
-import type { Question } from '../types'
type DateRange = [Date, Date]
type FilterOptions = {
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-all-contributors.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-all-contributors.ts
index 44f11904..81abc2f7 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-all-contributors.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-all-contributors.ts
@@ -1,6 +1,6 @@
+import type { Contributor } from '../types'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
-import type { Contributor } from '../types'
export async function getAllContributors(
guildId: string
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-community-contributors.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-community-contributors.ts
index b249cebc..d2f71d91 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-community-contributors.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-community-contributors.ts
@@ -1,6 +1,6 @@
+import type { Contributor } from '../types'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
-import type { Contributor } from '../types'
/**
* Currently not displaying community contributors but leaving this here in case it's wanted in the future
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-staff-contributors.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-staff-contributors.ts
index 28f0db23..a59c9951 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-staff-contributors.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/get-staff-contributors.ts
@@ -1,6 +1,6 @@
+import type { Contributor } from '../types'
import { ACCESS_LEVELS } from '$lib/constants'
import { prisma } from '$lib/db'
-import type { Contributor } from '../types'
export async function getStaffContributors(
guildId: string
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-cohort.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-cohort.ts
index 0838c7f0..bbed50d1 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-cohort.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-cohort.ts
@@ -1,6 +1,6 @@
-import { ACCESS_LEVELS } from '$lib/constants'
-import { COHORTS } from '../constants'
import type { Question } from '../types'
+import { COHORTS } from '../constants'
+import { ACCESS_LEVELS } from '$lib/constants'
/**
* Group questions by cohort. This will group questions by their answer's cohort.
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-date.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-date.ts
index db999861..5b700642 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-date.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions-by-date.ts
@@ -1,5 +1,5 @@
-import { getMonday } from './get-monday'
import type { TimePeriod, Question } from '../types'
+import { getMonday } from './get-monday'
export type GroupByDateOptions = {
/**
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions.ts b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions.ts
index 83f295ed..9361a367 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/helpers/group-questions.ts
@@ -1,9 +1,9 @@
+import type { GroupByDateOptions } from './group-questions-by-date'
+import type { Question } from '../types'
import { groupQuestionsByChannel } from './group-questions-by-channel'
import { groupQuestionsByCohort } from './group-questions-by-cohort'
import { groupQuestionsByDate } from './group-questions-by-date'
import { groupQuestionsByTag } from './group-questions-by-tag'
-import type { GroupByDateOptions } from './group-questions-by-date'
-import type { Question } from '../types'
type GroupOptions = {
by: 'channel' | 'cohort' | 'date' | 'tag'
diff --git a/apps/discord-bot-frontend/src/routes/dashboard/types.ts b/apps/discord-bot-frontend/src/routes/dashboard/types.ts
index e6cdc213..ff4dc375 100644
--- a/apps/discord-bot-frontend/src/routes/dashboard/types.ts
+++ b/apps/discord-bot-frontend/src/routes/dashboard/types.ts
@@ -1,10 +1,10 @@
-import { TIME_PERIODS, HEALTH_STATUS } from './constants'
import type {
Answer as PrismaAnswer,
Question as PrismaQuestion,
AccessLevelRole,
QuestionTag,
} from '@prisma/client'
+import type { TIME_PERIODS, HEALTH_STATUS } from './constants'
export type TimePeriod = ValueOf
export type HealthStatus = ValueOf
diff --git a/apps/discord-bot-frontend/src/routes/questions/+page.server.ts b/apps/discord-bot-frontend/src/routes/questions/+page.server.ts
index d3e91982..97d17c2b 100644
--- a/apps/discord-bot-frontend/src/routes/questions/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/questions/+page.server.ts
@@ -1,5 +1,5 @@
-import { prisma } from '$lib/db'
import type { PageServerLoad } from './$types'
+import { prisma } from '$lib/db'
export const load: PageServerLoad = async () => {
const questions = await prisma.question.findMany({
diff --git a/apps/discord-bot-frontend/src/routes/questions/[id]/+page.server.ts b/apps/discord-bot-frontend/src/routes/questions/[id]/+page.server.ts
index 2e65d4ff..823fd88a 100644
--- a/apps/discord-bot-frontend/src/routes/questions/[id]/+page.server.ts
+++ b/apps/discord-bot-frontend/src/routes/questions/[id]/+page.server.ts
@@ -1,6 +1,6 @@
+import type { PageServerLoad } from './$types'
import { error } from '@sveltejs/kit'
import { prisma } from '$lib/db'
-import type { PageServerLoad } from './$types'
export const load: PageServerLoad = async ({ params }) => {
const question = await prisma.question.findUnique({
diff --git a/apps/discord-bot-frontend/src/server.ts b/apps/discord-bot-frontend/src/server.ts
index fbb7f20b..96ba66c6 100644
--- a/apps/discord-bot-frontend/src/server.ts
+++ b/apps/discord-bot-frontend/src/server.ts
@@ -1,6 +1,6 @@
+import express from 'express'
import { createBot } from '$lib/discord/client'
import { init } from '$lib/db'
-import express from 'express'
// export for e2e tests
export const app = express()
diff --git a/apps/discord-bot-frontend/tests/api/p/color/[code].test.ts b/apps/discord-bot-frontend/tests/api/p/color/[code].test.ts
index 6829333a..7322c177 100644
--- a/apps/discord-bot-frontend/tests/api/p/color/[code].test.ts
+++ b/apps/discord-bot-frontend/tests/api/p/color/[code].test.ts
@@ -1,5 +1,5 @@
import { test, expect } from '@playwright/test'
-import prettier from 'prettier'
+import { format } from 'prettier'
test.describe('GET /api/p/color/[code]', () => {
test('should return 200 if color code is valid', async ({ request }) => {
@@ -13,8 +13,8 @@ test.describe('GET /api/p/color/[code]', () => {
test.skip('should return an SVG if color code is valid', async ({ request }) => {
const response = await request.get('/api/p/color/f3f.svg')
expect(response.headers()['content-type']).toBe('image/svg+xml')
- expect(prettier.format(await response.text())).toBe(
- prettier.format(
+ expect(format(await response.text())).toBe(
+ format(
''
)
)
diff --git a/apps/discord-bot-frontend/tests/setup/seed.ts b/apps/discord-bot-frontend/tests/setup/seed.ts
index 88af991b..536d8cf7 100644
--- a/apps/discord-bot-frontend/tests/setup/seed.ts
+++ b/apps/discord-bot-frontend/tests/setup/seed.ts
@@ -2,6 +2,7 @@ import { PrismaClient } from '@prisma/client'
import { ACCESS_LEVELS } from '../../src/lib/constants'
import { init } from '../../src/lib/db'
import { env } from '../../playwright.config'
+
const prisma = new PrismaClient()
export async function seed() {
diff --git a/cdk/src/app-github-actions.ts b/cdk/src/app-github-actions.ts
index fc53ed24..004a08a8 100644
--- a/cdk/src/app-github-actions.ts
+++ b/cdk/src/app-github-actions.ts
@@ -1,7 +1,7 @@
import 'source-map-support/register.js'
+import type { Construct } from 'constructs'
import * as cdk from 'aws-cdk-lib'
import * as iam from 'aws-cdk-lib/aws-iam'
-import { Construct } from 'constructs'
const app = new cdk.App({
context: {
diff --git a/cdk/src/components/hey-amplify-app.ts b/cdk/src/components/hey-amplify-app.ts
index 1baed5ee..defd6ea6 100644
--- a/cdk/src/components/hey-amplify-app.ts
+++ b/cdk/src/components/hey-amplify-app.ts
@@ -1,19 +1,19 @@
+import type * as s3 from 'aws-cdk-lib/aws-s3'
+import type { AmplifyAwsSubdomain } from './amplify-aws-subdomain'
+import type * as efs from 'aws-cdk-lib/aws-efs'
+import type * as ssm from 'aws-cdk-lib/aws-ssm'
import { Construct } from 'constructs'
import { Port } from 'aws-cdk-lib/aws-ec2'
import * as cdk from 'aws-cdk-lib'
import * as cloudfront from 'aws-cdk-lib/aws-cloudfront'
import * as ecs from 'aws-cdk-lib/aws-ecs'
import * as ecs_patterns from 'aws-cdk-lib/aws-ecs-patterns'
-import * as efs from 'aws-cdk-lib/aws-efs'
import * as elb from 'aws-cdk-lib/aws-elasticloadbalancingv2'
import * as origins from 'aws-cdk-lib/aws-cloudfront-origins'
import * as route53 from 'aws-cdk-lib/aws-route53'
import * as route53Targets from 'aws-cdk-lib/aws-route53-targets'
-import * as ssm from 'aws-cdk-lib/aws-ssm'
import { v4 as uuid } from 'uuid'
import { WAF } from './waf'
-import type * as s3 from 'aws-cdk-lib/aws-s3'
-import type { AmplifyAwsSubdomain } from './amplify-aws-subdomain'
interface DockerProps {
name: string
diff --git a/cdk/src/components/privacy-notification-function/privacy-notification-function.ts b/cdk/src/components/privacy-notification-function/privacy-notification-function.ts
index c70413ac..3078a47d 100644
--- a/cdk/src/components/privacy-notification-function/privacy-notification-function.ts
+++ b/cdk/src/components/privacy-notification-function/privacy-notification-function.ts
@@ -1,3 +1,4 @@
+import type * as ssm from 'aws-cdk-lib/aws-ssm'
import * as url from 'node:url'
import * as cdk from 'aws-cdk-lib'
import * as events from 'aws-cdk-lib/aws-events'
@@ -6,7 +7,6 @@ import * as iam from 'aws-cdk-lib/aws-iam'
import * as lambda from 'aws-cdk-lib/aws-lambda'
import * as nodejsLambda from 'aws-cdk-lib/aws-lambda-nodejs'
import * as targets from 'aws-cdk-lib/aws-events-targets'
-import * as ssm from 'aws-cdk-lib/aws-ssm'
import { Construct } from 'constructs'
// Define the properties for the PrivacyNotificationFunction construct
diff --git a/cdk/src/components/waf.ts b/cdk/src/components/waf.ts
index ae50930a..296178b8 100644
--- a/cdk/src/components/waf.ts
+++ b/cdk/src/components/waf.ts
@@ -1,4 +1,4 @@
-import { Construct } from 'constructs'
+import type { Construct } from 'constructs'
import * as wafv2 from 'aws-cdk-lib/aws-wafv2'
type WAFProps = {
diff --git a/cdk/src/constants.ts b/cdk/src/constants.ts
index b44d0340..e6b08dbb 100644
--- a/cdk/src/constants.ts
+++ b/cdk/src/constants.ts
@@ -1,2 +1,3 @@
import { fileURLToPath } from 'node:url'
+
export const PROJECT_ROOT = fileURLToPath(new URL('../..', import.meta.url))
diff --git a/cdk/src/stack.ts b/cdk/src/stack.ts
index 9b4e48a2..92550c1d 100644
--- a/cdk/src/stack.ts
+++ b/cdk/src/stack.ts
@@ -1,5 +1,7 @@
-import { Stack, StackProps, Tags, RemovalPolicy } from 'aws-cdk-lib'
-import { Construct } from 'constructs'
+import type { StackProps} from 'aws-cdk-lib';
+import type { Construct } from 'constructs'
+import type { AmplifyAwsSubdomainProps } from './components/amplify-aws-subdomain'
+import { Stack, Tags, RemovalPolicy } from 'aws-cdk-lib'
import * as ec2 from 'aws-cdk-lib/aws-ec2'
import * as ecs from 'aws-cdk-lib/aws-ecs'
import * as efs from 'aws-cdk-lib/aws-efs'
@@ -11,8 +13,6 @@ import { getSvelteKitEnvironmentVariables } from './support'
import { AmplifyAwsSubdomain } from './components/amplify-aws-subdomain'
import { PrivacyNotificationFunction } from './components/privacy-notification-function/privacy-notification-function'
-import type { AmplifyAwsSubdomainProps } from './components/amplify-aws-subdomain'
-
type HeyAmplifyStackProps = Partial & {
subdomain: AmplifyAwsSubdomainProps | undefined
}
diff --git a/cdk/src/types.d.ts b/cdk/src/types.d.ts
index 008e5410..86eaa4fc 100644
--- a/cdk/src/types.d.ts
+++ b/cdk/src/types.d.ts
@@ -1,7 +1,7 @@
-import { NestedStackProps } from 'aws-cdk-lib'
import type * as ecs from 'aws-cdk-lib/aws-ecs'
import type * as efs from 'aws-cdk-lib/aws-efs'
import type * as ssm from 'aws-cdk-lib/aws-ssm'
+import type { NestedStackProps } from 'aws-cdk-lib'
export interface HeyAmplifyAppStackProps extends NestedStackProps {
secrets: Record
diff --git a/package.json b/package.json
index 48e6185c..61311cea 100644
--- a/package.json
+++ b/package.json
@@ -22,6 +22,8 @@
"@typescript-eslint/parser": "^6.20.0",
"eslint": "^8.56.0",
"eslint-config-prettier": "^9.1.0",
+ "eslint-import-resolver-typescript": "^3.6.1",
+ "eslint-plugin-import": "^2.29.1",
"eslint-plugin-svelte3": "^4.0.0",
"lint-staged": "^15.2.0",
"prettier": "^3.2.4",
@@ -47,12 +49,15 @@
"extends": [
"eslint:recommended",
"prettier",
+ "plugin:import/recommended",
+ "plugin:import/typescript",
"plugin:@typescript-eslint/recommended"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"ecmaVersion": 2022,
- "sourceType": "module"
+ "sourceType": "module",
+ "project": "./tsconfig.eslint.json"
},
"env": {
"browser": true,
@@ -76,11 +81,47 @@
}
],
"settings": {
- "svelte3/typescript": true
+ "svelte3/typescript": true,
+ "import/resolver": {
+ "typescript": {},
+ "node": {}
+ }
},
"rules": {
"@typescript-eslint/prefer-ts-expect-error": "warn",
- "@typescript-eslint/no-non-null-assertion": "off"
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/consistent-type-exports": [
+ "error",
+ {
+ "fixMixedExportsWithInlineTypeSpecifier": false
+ }
+ ],
+ "@typescript-eslint/consistent-type-imports": [
+ "error",
+ {
+ "prefer": "type-imports"
+ }
+ ],
+ "import/first": "error",
+ "import/newline-after-import": "error",
+ "import/no-default-export": "warn",
+ "import/no-unresolved": "off",
+ "import/order": [
+ "error",
+ {
+ "newlines-between": "never",
+ "groups": [
+ "type",
+ "builtin",
+ "external",
+ "internal",
+ "parent",
+ "sibling",
+ "index",
+ "object"
+ ]
+ }
+ ]
}
},
"packageManager": "pnpm@8.10.5",
diff --git a/packages/support/src/secrets.ts b/packages/support/src/secrets.ts
index 3d6048d6..f5f39685 100644
--- a/packages/support/src/secrets.ts
+++ b/packages/support/src/secrets.ts
@@ -1,3 +1,4 @@
+import type { PutParameterCommandInput } from '@aws-sdk/client-ssm'
import {
SSMClient,
GetParametersByPathCommand,
@@ -5,7 +6,6 @@ import {
PutParameterCommand,
} from '@aws-sdk/client-ssm'
import { loadEnv } from 'vite'
-import type { PutParameterCommandInput } from '@aws-sdk/client-ssm'
const REGION = process.env.REGION || 'us-east-1'
const PROJECT_NAME = 'hey-amplify'
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c0973c99..1b145b67 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -23,6 +23,12 @@ importers:
eslint-config-prettier:
specifier: ^9.1.0
version: 9.1.0(eslint@8.56.0)
+ eslint-import-resolver-typescript:
+ specifier: ^3.6.1
+ version: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
+ eslint-plugin-import:
+ specifier: ^2.29.1
+ version: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
eslint-plugin-svelte3:
specifier: ^4.0.0
version: 4.0.0(eslint@8.56.0)(svelte@3.59.2)
@@ -46,7 +52,7 @@ importers:
version: 0.15.2
'@auth/sveltekit':
specifier: ^0.3.6
- version: 0.3.16(@sveltejs/kit@2.5.0)(svelte@4.2.1)
+ version: 0.3.16(@sveltejs/kit@2.5.1)(svelte@4.2.1)
'@aws-crypto/sha256-js':
specifier: ^2.0.1
version: 2.0.2
@@ -95,9 +101,6 @@ importers:
prisma:
specifier: ^4.5.0
version: 4.16.2
- svelte:
- specifier: 4.2.1
- version: 4.2.1
uuid:
specifier: ^8.3.2
version: 8.3.2
@@ -125,10 +128,10 @@ importers:
version: 1.41.2
'@sveltejs/adapter-node':
specifier: ^4.0.1
- version: 4.0.1(@sveltejs/kit@2.5.0)
+ version: 4.0.1(@sveltejs/kit@2.5.1)
'@sveltejs/kit':
specifier: ^2.5.0
- version: 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.1.4)
+ version: 2.5.1(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.0.12)
'@sveltejs/vite-plugin-svelte':
specifier: ^3.0.2
version: 3.0.2(svelte@4.2.1)(vite@5.1.4)
@@ -174,6 +177,9 @@ importers:
jsdom:
specifier: ^20.0.0
version: 20.0.3
+ svelte:
+ specifier: 4.2.1
+ version: 4.2.1
svelte-check:
specifier: ^3.5.0
version: 3.6.4(svelte@4.2.1)
@@ -337,14 +343,14 @@ packages:
preact-render-to-string: 5.2.3(preact@10.11.3)
dev: false
- /@auth/sveltekit@0.3.16(@sveltejs/kit@2.5.0)(svelte@4.2.1):
+ /@auth/sveltekit@0.3.16(@sveltejs/kit@2.5.1)(svelte@4.2.1):
resolution: {integrity: sha512-p0GpzNfdQeWjn87HuWLNhQ/gq6w0JOm/e3Qp5bQ73sMfkyIVtaCmkRmXWqbTZ8tFaZdr5IGveHy3FtEIPrrMEQ==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
svelte: ^3.54.0 || ^4.0.0
dependencies:
'@auth/core': 0.18.5
- '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.1.4)
+ '@sveltejs/kit': 2.5.1(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.0.12)
svelte: 4.2.1
transitivePeerDependencies:
- nodemailer
@@ -2413,20 +2419,20 @@ packages:
'@smithy/types': 2.9.1
tslib: 2.6.2
- /@sveltejs/adapter-node@4.0.1(@sveltejs/kit@2.5.0):
+ /@sveltejs/adapter-node@4.0.1(@sveltejs/kit@2.5.1):
resolution: {integrity: sha512-IviiTtKCDp+0QoTmmMlGGZBA1EoUNsjecU6XGV9k62S3f01SNsVhpqi2e4nbI62BLGKh/YKKfFii+Vz/b9XIxg==}
peerDependencies:
'@sveltejs/kit': ^2.4.0
dependencies:
- '@rollup/plugin-commonjs': 25.0.7(rollup@4.12.0)
- '@rollup/plugin-json': 6.1.0(rollup@4.12.0)
- '@rollup/plugin-node-resolve': 15.2.3(rollup@4.12.0)
- '@sveltejs/kit': 2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.1.4)
- rollup: 4.12.0
+ '@rollup/plugin-commonjs': 25.0.7(rollup@4.9.6)
+ '@rollup/plugin-json': 6.1.0(rollup@4.9.6)
+ '@rollup/plugin-node-resolve': 15.2.3(rollup@4.9.6)
+ '@sveltejs/kit': 2.5.1(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.0.12)
+ rollup: 4.9.6
dev: true
- /@sveltejs/kit@2.5.0(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.1.4):
- resolution: {integrity: sha512-1uyXvzC2Lu1FZa30T4y5jUAC21R309ZMRG0TPt+PPPbNUoDpy8zSmSNVWYaBWxYDqLGQ5oPNWvjvvF2IjJ1jmA==}
+ /@sveltejs/kit@2.5.1(@sveltejs/vite-plugin-svelte@3.0.2)(svelte@4.2.1)(vite@5.0.12):
+ resolution: {integrity: sha512-TKj08o3mJCoQNLTdRdGkHPePTCPUGTgkew65RDqjVU3MtPVxljsofXQYfXndHfq0P7KoPRO/0/reF6HesU0Djw==}
engines: {node: '>=18.13'}
hasBin: true
requiresBuild: true
@@ -2553,6 +2559,10 @@ packages:
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
dev: true
+ /@types/json5@0.0.29:
+ resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==}
+ dev: true
+
/@types/jsonwebtoken@9.0.5:
resolution: {integrity: sha512-VRLSGzik+Unrup6BsouBeHsf4d1hOEgYWTm/7Nmw1sXoN1+tRly/Gy/po3yeahnP4jfnQWWAhQAqcNfH7ngOkA==}
dependencies:
@@ -2931,15 +2941,90 @@ packages:
engines: {node: '>=8'}
dev: false
+ /array-buffer-byte-length@1.0.1:
+ resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ is-array-buffer: 3.0.4
+ dev: true
+
/array-flatten@1.1.1:
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
dev: false
+ /array-includes@3.1.7:
+ resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ get-intrinsic: 1.2.2
+ is-string: 1.0.7
+ dev: true
+
/array-union@2.1.0:
resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
engines: {node: '>=8'}
dev: true
+ /array.prototype.filter@1.0.3:
+ resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-array-method-boxes-properly: 1.0.0
+ is-string: 1.0.7
+ dev: true
+
+ /array.prototype.findlastindex@1.2.4:
+ resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-errors: 1.3.0
+ es-shim-unscopables: 1.0.2
+ dev: true
+
+ /array.prototype.flat@1.3.2:
+ resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-shim-unscopables: 1.0.2
+ dev: true
+
+ /array.prototype.flatmap@1.3.2:
+ resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-shim-unscopables: 1.0.2
+ dev: true
+
+ /arraybuffer.prototype.slice@1.0.3:
+ resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ is-array-buffer: 3.0.4
+ is-shared-array-buffer: 1.0.3
+ dev: true
+
/assertion-error@1.1.0:
resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==}
dev: true
@@ -2948,6 +3033,13 @@ packages:
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
dev: true
+ /available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ possible-typed-array-names: 1.0.0
+ dev: true
+
/aws-cdk-lib@2.124.0(constructs@10.3.0):
resolution: {integrity: sha512-K/Tey8TMw30GO6UD0qb19CPhBMZhleGshz520ZnbDUJwNfFtejwZOnpmRMOdUP9f4tHc5BrXl1VGsZtXtUaGhg==}
engines: {node: '>= 14.15.0'}
@@ -3077,6 +3169,16 @@ packages:
engines: {node: '>=8'}
dev: true
+ /call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.2
+ set-function-length: 1.2.0
+
/call-bind@1.0.7:
resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
engines: {node: '>= 0.4'}
@@ -3086,15 +3188,15 @@ packages:
function-bind: 1.1.2
get-intrinsic: 1.2.4
set-function-length: 1.2.1
- dev: false
+ dev: true
/callsites@3.1.0:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
dev: true
- /caniuse-lite@1.0.30001588:
- resolution: {integrity: sha512-+hVY9jE44uKLkH0SrUTqxjxqNTOWHsbnQDIKjwkZ3lNTzUUVdBLBGXtj/q5Mp5u98r3droaZAewQuEDzjQdZlQ==}
+ /caniuse-lite@1.0.30001589:
+ resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==}
dev: false
/carbon-components-svelte@0.82.10:
@@ -3691,6 +3793,17 @@ packages:
ms: 2.0.0
dev: false
+ /debug@3.2.7:
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: true
+
/debug@4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
@@ -3733,7 +3846,25 @@ packages:
es-define-property: 1.0.0
es-errors: 1.3.0
gopd: 1.0.1
- dev: false
+ has-property-descriptors: 1.0.1
+
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
+ dev: true
+
+ /define-properties@1.2.1:
+ resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.1
+ has-property-descriptors: 1.0.1
+ object-keys: 1.1.1
+ dev: true
/delaunator@5.0.1:
resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==}
@@ -3815,6 +3946,13 @@ packages:
- utf-8-validate
dev: false
+ /doctrine@2.1.0:
+ resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@@ -3853,22 +3991,109 @@ packages:
engines: {node: '>= 0.8'}
dev: false
+ /enhanced-resolve@5.15.0:
+ resolution: {integrity: sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ graceful-fs: 4.2.11
+ tapable: 2.2.1
+ dev: true
+
+ /entities@2.2.0:
+ resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
+ dev: true
+
/entities@4.5.0:
resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
engines: {node: '>=0.12'}
dev: true
+ /es-abstract@1.22.4:
+ resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ array-buffer-byte-length: 1.0.1
+ arraybuffer.prototype.slice: 1.0.3
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ es-set-tostringtag: 2.0.3
+ es-to-primitive: 1.2.1
+ function.prototype.name: 1.1.6
+ get-intrinsic: 1.2.4
+ get-symbol-description: 1.0.2
+ globalthis: 1.0.3
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
+ hasown: 2.0.1
+ internal-slot: 1.0.7
+ is-array-buffer: 3.0.4
+ is-callable: 1.2.7
+ is-negative-zero: 2.0.3
+ is-regex: 1.1.4
+ is-shared-array-buffer: 1.0.3
+ is-string: 1.0.7
+ is-typed-array: 1.1.13
+ is-weakref: 1.0.2
+ object-inspect: 1.13.1
+ object-keys: 1.1.1
+ object.assign: 4.1.5
+ regexp.prototype.flags: 1.5.2
+ safe-array-concat: 1.1.0
+ safe-regex-test: 1.0.3
+ string.prototype.trim: 1.2.8
+ string.prototype.trimend: 1.0.7
+ string.prototype.trimstart: 1.0.7
+ typed-array-buffer: 1.0.2
+ typed-array-byte-length: 1.0.1
+ typed-array-byte-offset: 1.0.2
+ typed-array-length: 1.0.5
+ unbox-primitive: 1.0.2
+ which-typed-array: 1.1.14
+ dev: true
+
+ /es-array-method-boxes-properly@1.0.0:
+ resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==}
+ dev: true
+
/es-define-property@1.0.0:
resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
engines: {node: '>= 0.4'}
dependencies:
get-intrinsic: 1.2.4
- dev: false
+ dev: true
/es-errors@1.3.0:
resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
engines: {node: '>= 0.4'}
- dev: false
+ dev: true
+
+ /es-set-tostringtag@2.0.3:
+ resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.4
+ has-tostringtag: 1.0.2
+ hasown: 2.0.1
+ dev: true
+
+ /es-shim-unscopables@1.0.2:
+ resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==}
+ dependencies:
+ hasown: 2.0.0
+ dev: true
+
+ /es-to-primitive@1.2.1:
+ resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ is-callable: 1.2.7
+ is-date-object: 1.0.5
+ is-symbol: 1.0.4
+ dev: true
/es6-promise@3.3.1:
resolution: {integrity: sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg==}
@@ -3970,6 +4195,104 @@ packages:
eslint: 8.56.0
dev: true
+ /eslint-import-resolver-node@0.3.9:
+ resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==}
+ dependencies:
+ debug: 3.2.7
+ is-core-module: 2.13.1
+ resolve: 1.22.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0):
+ resolution: {integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ eslint-plugin-import: '*'
+ dependencies:
+ debug: 4.3.4
+ enhanced-resolve: 5.15.0
+ eslint: 8.56.0
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
+ eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
+ fast-glob: 3.3.2
+ get-tsconfig: 4.7.2
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ transitivePeerDependencies:
+ - '@typescript-eslint/parser'
+ - eslint-import-resolver-node
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
+ /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
+ resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: '*'
+ eslint-import-resolver-node: '*'
+ eslint-import-resolver-typescript: '*'
+ eslint-import-resolver-webpack: '*'
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ eslint:
+ optional: true
+ eslint-import-resolver-node:
+ optional: true
+ eslint-import-resolver-typescript:
+ optional: true
+ eslint-import-resolver-webpack:
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3)
+ debug: 3.2.7
+ eslint: 8.56.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.20.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0)
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0):
+ resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==}
+ engines: {node: '>=4'}
+ peerDependencies:
+ '@typescript-eslint/parser': '*'
+ eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
+ peerDependenciesMeta:
+ '@typescript-eslint/parser':
+ optional: true
+ dependencies:
+ '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3)
+ array-includes: 3.1.7
+ array.prototype.findlastindex: 1.2.4
+ array.prototype.flat: 1.3.2
+ array.prototype.flatmap: 1.3.2
+ debug: 3.2.7
+ doctrine: 2.1.0
+ eslint: 8.56.0
+ eslint-import-resolver-node: 0.3.9
+ eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.20.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)
+ hasown: 2.0.0
+ is-core-module: 2.13.1
+ is-glob: 4.0.3
+ minimatch: 3.1.2
+ object.fromentries: 2.0.7
+ object.groupby: 1.0.2
+ object.values: 1.1.7
+ semver: 6.3.1
+ tsconfig-paths: 3.15.0
+ transitivePeerDependencies:
+ - eslint-import-resolver-typescript
+ - eslint-import-resolver-webpack
+ - supports-color
+ dev: true
+
/eslint-plugin-svelte3@4.0.0(eslint@8.56.0)(svelte@3.59.2):
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
peerDependencies:
@@ -4259,6 +4582,12 @@ packages:
resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==}
dev: true
+ /for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: true
+
/form-data@4.0.0:
resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
engines: {node: '>= 6'}
@@ -4300,6 +4629,20 @@ packages:
/function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ /function.prototype.name@1.1.6:
+ resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ functions-have-names: 1.2.3
+ dev: true
+
+ /functions-have-names@1.2.3:
+ resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==}
+ dev: true
+
/get-east-asian-width@1.2.0:
resolution: {integrity: sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA==}
engines: {node: '>=18'}
@@ -4317,14 +4660,39 @@ packages:
function-bind: 1.1.2
has-proto: 1.0.3
has-symbols: 1.0.3
+ hasown: 2.0.0
+
+ /get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ has-proto: 1.0.1
+ has-symbols: 1.0.3
hasown: 2.0.1
- dev: false
+ dev: true
/get-stream@8.0.1:
resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==}
engines: {node: '>=16'}
dev: true
+ /get-symbol-description@1.0.2:
+ resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ get-intrinsic: 1.2.4
+ dev: true
+
+ /get-tsconfig@4.7.2:
+ resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==}
+ dependencies:
+ resolve-pkg-maps: 1.0.0
+ dev: true
+
/glob-parent@5.1.2:
resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
engines: {node: '>= 6'}
@@ -4367,6 +4735,13 @@ packages:
type-fest: 0.20.2
dev: true
+ /globalthis@1.0.3:
+ resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-properties: 1.2.1
+ dev: true
+
/globalyzer@0.1.0:
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
@@ -4388,8 +4763,7 @@ packages:
/gopd@1.0.1:
resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
dependencies:
- get-intrinsic: 1.2.4
- dev: false
+ get-intrinsic: 1.2.2
/graceful-fs@4.2.11:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
@@ -4398,6 +4772,10 @@ packages:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
+ /has-bigints@1.0.2:
+ resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==}
+ dev: true
+
/has-flag@3.0.0:
resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
engines: {node: '>=4'}
@@ -4408,21 +4786,36 @@ packages:
engines: {node: '>=8'}
dev: true
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+ dependencies:
+ get-intrinsic: 1.2.2
+
/has-property-descriptors@1.0.2:
resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
dependencies:
es-define-property: 1.0.0
- dev: false
+ dev: true
/has-proto@1.0.3:
resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
engines: {node: '>= 0.4'}
- dev: false
+
+ /has-proto@1.0.3:
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
+ engines: {node: '>= 0.4'}
+ dev: true
/has-symbols@1.0.3:
resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
engines: {node: '>= 0.4'}
- dev: false
+
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
/hasown@2.0.1:
resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
@@ -4430,6 +4823,13 @@ packages:
dependencies:
function-bind: 1.1.2
+ /hasown@2.0.1:
+ resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+ dev: true
+
/html-encoding-sniffer@3.0.0:
resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==}
engines: {node: '>=12'}
@@ -4527,6 +4927,15 @@ packages:
/inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ /internal-slot@1.0.7:
+ resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-errors: 1.3.0
+ hasown: 2.0.1
+ side-channel: 1.0.4
+ dev: true
+
/internmap@1.0.1:
resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==}
dev: true
@@ -4541,10 +4950,24 @@ packages:
engines: {node: '>= 0.10'}
dev: false
+ /is-array-buffer@3.0.4:
+ resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ dev: true
+
/is-arrayish@0.3.2:
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==}
dev: false
+ /is-bigint@1.0.4:
+ resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==}
+ dependencies:
+ has-bigints: 1.0.2
+ dev: true
+
/is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
@@ -4552,6 +4975,14 @@ packages:
binary-extensions: 2.2.0
dev: true
+ /is-boolean-object@1.1.2:
+ resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+ dev: true
+
/is-builtin-module@3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
@@ -4559,12 +4990,24 @@ packages:
builtin-modules: 3.3.0
dev: true
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/is-core-module@2.13.1:
resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==}
dependencies:
hasown: 2.0.1
dev: true
+ /is-date-object@1.0.5:
+ resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.2
+ dev: true
+
/is-extglob@2.1.1:
resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
engines: {node: '>=0.10.0'}
@@ -4591,6 +5034,18 @@ packages:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: true
+ /is-negative-zero@2.0.3:
+ resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /is-number-object@1.0.7:
+ resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.2
+ dev: true
+
/is-number@7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
@@ -4620,11 +5075,57 @@ packages:
dependencies:
'@types/estree': 1.0.5
+ /is-regex@1.1.4:
+ resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+ dev: true
+
+ /is-shared-array-buffer@1.0.3:
+ resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ dev: true
+
/is-stream@3.0.0:
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
+ /is-string@1.0.7:
+ resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.2
+ dev: true
+
+ /is-symbol@1.0.4:
+ resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: true
+
+ /is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ which-typed-array: 1.1.14
+ dev: true
+
+ /is-weakref@1.0.2:
+ resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==}
+ dependencies:
+ call-bind: 1.0.7
+ dev: true
+
+ /isarray@2.0.5:
+ resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==}
+ dev: true
+
/isexe@2.0.0:
resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
dev: true
@@ -4705,6 +5206,13 @@ packages:
resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
dev: true
+ /json5@1.0.2:
+ resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==}
+ hasBin: true
+ dependencies:
+ minimist: 1.2.8
+ dev: true
+
/jsonc-parser@3.2.1:
resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==}
dev: true
@@ -5029,7 +5537,6 @@ packages:
/ms@2.1.3:
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
- dev: false
/nanoid@3.3.7:
resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
@@ -5067,8 +5574,8 @@ packages:
next: 14.1.0
oauth: 0.9.15
openid-client: 5.6.4
- preact: 10.11.3
- preact-render-to-string: 5.2.3(preact@10.11.3)
+ preact: 10.19.6
+ preact-render-to-string: 5.2.6(preact@10.19.6)
uuid: 8.3.2
dev: false
@@ -5094,7 +5601,7 @@ packages:
'@next/env': 14.1.0
'@swc/helpers': 0.5.2
busboy: 1.6.0
- caniuse-lite: 1.0.30001588
+ caniuse-lite: 1.0.30001589
graceful-fs: 4.2.11
postcss: 8.4.31
styled-jsx: 5.1.1
@@ -5156,7 +5663,49 @@ packages:
/object-inspect@1.13.1:
resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==}
- dev: false
+
+ /object-keys@1.1.1:
+ resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /object.assign@4.1.5:
+ resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ has-symbols: 1.0.3
+ object-keys: 1.1.1
+ dev: true
+
+ /object.fromentries@2.0.7:
+ resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ dev: true
+
+ /object.groupby@1.0.2:
+ resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==}
+ dependencies:
+ array.prototype.filter: 1.0.3
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ es-errors: 1.3.0
+ dev: true
+
+ /object.values@1.1.7:
+ resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.5
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ dev: true
/oidc-token-hash@5.0.3:
resolution: {integrity: sha512-IF4PcGgzAr6XXSff26Sk/+P4KZFJVuHAJZj3wgO3vX2bMdNVp/QXTP3P7CEm9V1IdG8lDLY3HhiqpsE/nOwpPw==}
@@ -5339,6 +5888,11 @@ packages:
fsevents: 2.3.2
dev: true
+ /possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
/postcss-selector-parser@6.0.15:
resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==}
engines: {node: '>=4'}
@@ -5373,10 +5927,23 @@ packages:
pretty-format: 3.8.0
dev: false
+ /preact-render-to-string@5.2.6(preact@10.19.6):
+ resolution: {integrity: sha512-JyhErpYOvBV1hEPwIxc/fHWXPfnEGdRKxc8gFdAZ7XV4tlzyzG847XAyEZqoDnynP88akM4eaHcSOzNcLWFguw==}
+ peerDependencies:
+ preact: '>=10'
+ dependencies:
+ preact: 10.19.6
+ pretty-format: 3.8.0
+ dev: false
+
/preact@10.11.3:
resolution: {integrity: sha512-eY93IVpod/zG3uMF22Unl8h9KkrcKIRs2EGar8hwLZZDU1lkjph303V9HZBwufh2s736U6VXuhD109LYqPoffg==}
dev: false
+ /preact@10.19.6:
+ resolution: {integrity: sha512-gympg+T2Z1fG1unB8NH29yHJwnEaCH37Z32diPDku316OTnRPeMbiRV9kTrfZpocXjdfnWuFUl/Mj4BHaf6gnw==}
+ dev: false
+
/prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
@@ -5512,6 +6079,16 @@ packages:
resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
dev: false
+ /regexp.prototype.flags@1.5.2:
+ resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-errors: 1.3.0
+ set-function-name: 2.0.2
+ dev: true
+
/requires-port@1.0.0:
resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==}
dev: true
@@ -5521,6 +6098,10 @@ packages:
engines: {node: '>=4'}
dev: true
+ /resolve-pkg-maps@1.0.0:
+ resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ dev: true
+
/resolve@1.22.8:
resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==}
hasBin: true
@@ -5601,10 +6182,29 @@ packages:
dependencies:
mri: 1.2.0
+ /safe-array-concat@1.1.0:
+ resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==}
+ engines: {node: '>=0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ get-intrinsic: 1.2.4
+ has-symbols: 1.0.3
+ isarray: 2.0.5
+ dev: true
+
/safe-buffer@5.2.1:
resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
dev: false
+ /safe-regex-test@1.0.3:
+ resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-regex: 1.1.4
+ dev: true
+
/safer-buffer@2.1.2:
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
@@ -5624,8 +6224,13 @@ packages:
xmlchars: 2.2.0
dev: true
- /semver@7.6.0:
- resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==}
+ /semver@6.3.1:
+ resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
+ hasBin: true
+ dev: true
+
+ /semver@7.5.4:
+ resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -5667,6 +6272,17 @@ packages:
/set-cookie-parser@2.6.0:
resolution: {integrity: sha512-RVnVQxTXuerk653XfuliOxBP81Sf0+qfQE73LIYKcyMYHG94AuH0kgrQpRDuTZnSmjpysHmzxJXKNfa6PjFhyQ==}
+ /set-function-length@1.2.1:
+ resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.1
+
/set-function-length@1.2.1:
resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==}
engines: {node: '>= 0.4'}
@@ -5677,7 +6293,17 @@ packages:
get-intrinsic: 1.2.4
gopd: 1.0.1
has-property-descriptors: 1.0.2
- dev: false
+ dev: true
+
+ /set-function-name@2.0.2:
+ resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ functions-have-names: 1.2.3
+ has-property-descriptors: 1.0.2
+ dev: true
/setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
@@ -5703,7 +6329,6 @@ packages:
es-errors: 1.3.0
get-intrinsic: 1.2.4
object-inspect: 1.13.1
- dev: false
/siginfo@2.0.0:
resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==}
@@ -5811,6 +6436,31 @@ packages:
strip-ansi: 7.1.0
dev: true
+ /string.prototype.trim@1.2.8:
+ resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ dev: true
+
+ /string.prototype.trimend@1.0.7:
+ resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ dev: true
+
+ /string.prototype.trimstart@1.0.7:
+ resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==}
+ dependencies:
+ call-bind: 1.0.7
+ define-properties: 1.2.1
+ es-abstract: 1.22.4
+ dev: true
+
/string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
dependencies:
@@ -5831,6 +6481,11 @@ packages:
ansi-regex: 6.0.1
dev: true
+ /strip-bom@3.0.0:
+ resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
+ engines: {node: '>=4'}
+ dev: true
+
/strip-final-newline@3.0.0:
resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
engines: {node: '>=12'}
@@ -6068,6 +6723,11 @@ packages:
wordwrapjs: 4.0.1
dev: false
+ /tapable@2.2.1:
+ resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
/tasuku@2.0.1:
resolution: {integrity: sha512-BXWDEJzpC1mUiOz5Csba85LS93o9a5pGKRTArLiXJZ2HGF/mXHIl+4SBF706Yxqg+GlJDQurvLxds8tC7EwyRA==}
dependencies:
@@ -6162,6 +6822,15 @@ packages:
resolution: {integrity: sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA==}
dev: false
+ /tsconfig-paths@3.15.0:
+ resolution: {integrity: sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==}
+ dependencies:
+ '@types/json5': 0.0.29
+ json5: 1.0.2
+ minimist: 1.2.8
+ strip-bom: 3.0.0
+ dev: true
+
/tslib@1.14.1:
resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
@@ -6198,6 +6867,62 @@ packages:
mime-types: 2.1.35
dev: false
+ /typed-array-buffer@1.0.2:
+ resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ es-errors: 1.3.0
+ is-typed-array: 1.1.13
+ dev: true
+
+ /typed-array-byte-length@1.0.1:
+ resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+ dev: true
+
+ /typed-array-byte-offset@1.0.2:
+ resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+ dev: true
+
+ /typed-array-length@1.0.5:
+ resolution: {integrity: sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-proto: 1.0.3
+ is-typed-array: 1.1.13
+ possible-typed-array-names: 1.0.0
+ dev: true
+
+ /typescript@4.7.4:
+ resolution: {integrity: sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: true
+
+ /typescript@4.8.3:
+ resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+ dev: false
+
/typescript@4.9.5:
resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
engines: {node: '>=4.2.0'}
@@ -6223,6 +6948,15 @@ packages:
resolution: {integrity: sha512-Hhy+BhRBleFjpJ2vchUNN40qgkh0366FWJGqVLYBHev0vpHTrXSA0ryT+74UiW6KWsldNurQMKGqCm1M2zBciQ==}
dev: true
+ /unbox-primitive@1.0.2:
+ resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==}
+ dependencies:
+ call-bind: 1.0.7
+ has-bigints: 1.0.2
+ has-symbols: 1.0.3
+ which-boxed-primitive: 1.0.2
+ dev: true
+
/undici-types@5.26.5:
resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
@@ -6523,6 +7257,27 @@ packages:
webidl-conversions: 3.0.1
dev: false
+ /which-boxed-primitive@1.0.2:
+ resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==}
+ dependencies:
+ is-bigint: 1.0.4
+ is-boolean-object: 1.1.2
+ is-number-object: 1.0.7
+ is-string: 1.0.7
+ is-symbol: 1.0.4
+ dev: true
+
+ /which-typed-array@1.1.14:
+ resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.2
+ dev: true
+
/which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
diff --git a/tsconfig.base.json b/tsconfig.base.json
new file mode 100644
index 00000000..4d079a09
--- /dev/null
+++ b/tsconfig.base.json
@@ -0,0 +1,25 @@
+{
+ "$schema": "https://json.schemastore.org/tsconfig",
+ "display": "Default",
+ "compilerOptions": {
+ "composite": false,
+ "declaration": true,
+ "declarationMap": true,
+ "esModuleInterop": true,
+ "forceConsistentCasingInFileNames": true,
+ "inlineSources": false,
+ "isolatedModules": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "noUnusedLocals": false,
+ "noUnusedParameters": false,
+ "preserveWatchOutput": true,
+ "skipLibCheck": true,
+ "strict": true,
+ "target": "esnext",
+ "sourceMap": false,
+ "inlineSourceMap": true,
+ "importsNotUsedAsValues": "remove"
+ },
+ "exclude": ["node_modules"]
+}
diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json
new file mode 100644
index 00000000..576871e5
--- /dev/null
+++ b/tsconfig.eslint.json
@@ -0,0 +1,12 @@
+{
+ "extends": "./tsconfig.base.json",
+ "include": [
+ "**/*.ts",
+ "**/*.tsx",
+ "**/*.svelte",
+ "**/*.astro",
+ "**/*.mjs",
+ "**/*.js",
+ "**/*.cjs"
+ ]
+}
\ No newline at end of file