2
0

⬆️ (openai) Replace openai-edge with openai and upgrade next

This commit is contained in:
Baptiste Arnaud
2023-10-06 14:22:38 +02:00
parent dfcaa0f1d0
commit 225dfed313
15 changed files with 415 additions and 178 deletions

View File

@ -33,6 +33,7 @@
"@trpc/next": "10.34.0", "@trpc/next": "10.34.0",
"@trpc/react-query": "10.34.0", "@trpc/react-query": "10.34.0",
"@trpc/server": "10.34.0", "@trpc/server": "10.34.0",
"@typebot.io/bot-engine": "workspace:*",
"@typebot.io/emails": "workspace:*", "@typebot.io/emails": "workspace:*",
"@typebot.io/env": "workspace:*", "@typebot.io/env": "workspace:*",
"@typebot.io/nextjs": "workspace:*", "@typebot.io/nextjs": "workspace:*",
@ -65,13 +66,13 @@
"libphonenumber-js": "1.10.37", "libphonenumber-js": "1.10.37",
"micro": "10.0.1", "micro": "10.0.1",
"micro-cors": "0.1.1", "micro-cors": "0.1.1",
"next": "13.4.3", "next": "13.5.4",
"next-auth": "4.22.1", "next-auth": "4.22.1",
"next-international": "0.9.5", "next-international": "0.9.5",
"nextjs-cors": "^2.1.2", "nextjs-cors": "^2.1.2",
"nodemailer": "6.9.3", "nodemailer": "6.9.3",
"nprogress": "0.2.0", "nprogress": "0.2.0",
"openai-edge": "1.2.2", "openai": "^4.11.1",
"papaparse": "5.4.1", "papaparse": "5.4.1",
"posthog-js": "^1.77.1", "posthog-js": "^1.77.1",
"posthog-node": "3.1.1", "posthog-node": "3.1.1",
@ -89,8 +90,7 @@
"tinycolor2": "1.6.0", "tinycolor2": "1.6.0",
"trpc-openapi": "1.2.0", "trpc-openapi": "1.2.0",
"unsplash-js": "^7.0.18", "unsplash-js": "^7.0.18",
"use-debounce": "9.0.4", "use-debounce": "9.0.4"
"@typebot.io/bot-engine": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@chakra-ui/styled-system": "2.9.1", "@chakra-ui/styled-system": "2.9.1",

View File

@ -3,13 +3,13 @@ import { authenticatedProcedure } from '@/helpers/server/trpc'
import { TRPCError } from '@trpc/server' import { TRPCError } from '@trpc/server'
import { z } from 'zod' import { z } from 'zod'
import { isReadWorkspaceFobidden } from '@/features/workspace/helpers/isReadWorkspaceFobidden' import { isReadWorkspaceFobidden } from '@/features/workspace/helpers/isReadWorkspaceFobidden'
import { Configuration, OpenAIApi, ResponseTypes } from 'openai-edge'
import { decrypt } from '@typebot.io/lib/api' import { decrypt } from '@typebot.io/lib/api'
import { import {
OpenAICredentials, OpenAICredentials,
defaultBaseUrl, defaultBaseUrl,
} from '@typebot.io/schemas/features/blocks/integrations/openai' } from '@typebot.io/schemas/features/blocks/integrations/openai'
import { isNotEmpty } from '@typebot.io/lib/utils' import { isNotEmpty } from '@typebot.io/lib/utils'
import { OpenAI, ClientOptions } from 'openai'
export const listModels = authenticatedProcedure export const listModels = authenticatedProcedure
.meta({ .meta({
@ -79,41 +79,26 @@ export const listModels = authenticatedProcedure
credentials.iv credentials.iv
)) as OpenAICredentials['data'] )) as OpenAICredentials['data']
const config = new Configuration({ const config = {
apiKey: data.apiKey, apiKey: data.apiKey,
basePath: baseUrl, baseURL: baseUrl,
baseOptions: { defaultHeaders: {
headers: { 'api-key': data.apiKey,
'api-key': data.apiKey,
},
}, },
defaultQueryParams: isNotEmpty(apiVersion) defaultQuery: isNotEmpty(apiVersion)
? new URLSearchParams({ ? {
'api-version': apiVersion, 'api-version': apiVersion,
}) }
: undefined, : undefined,
}) } satisfies ClientOptions
const openai = new OpenAIApi(config) const openai = new OpenAI(config)
const response = await openai.listModels() const models = await openai.models.list()
const modelsData = (await response.json()) as
| ResponseTypes['listModels']
| {
error: unknown
}
if ('error' in modelsData)
throw new TRPCError({
code: 'INTERNAL_SERVER_ERROR',
message: 'Could not list models',
cause: modelsData.error,
})
return { return {
models: models:
modelsData.data models.data
.sort((a, b) => b.created - a.created) .sort((a, b) => b.created - a.created)
.map((model) => model.id) ?? [], .map((model) => model.id) ?? [],
} }

View File

@ -20,7 +20,7 @@
"aos": "2.3.4", "aos": "2.3.4",
"focus-visible": "5.2.0", "focus-visible": "5.2.0",
"framer-motion": "10.12.20", "framer-motion": "10.12.20",
"next": "13.4.3", "next": "13.5.4",
"react": "18.2.0", "react": "18.2.0",
"react-dom": "18.2.0" "react-dom": "18.2.0"
}, },

View File

@ -14,23 +14,23 @@
"@planetscale/database": "^1.8.0", "@planetscale/database": "^1.8.0",
"@sentry/nextjs": "7.66.0", "@sentry/nextjs": "7.66.0",
"@trpc/server": "10.34.0", "@trpc/server": "10.34.0",
"@typebot.io/bot-engine": "workspace:*",
"@typebot.io/nextjs": "workspace:*", "@typebot.io/nextjs": "workspace:*",
"@typebot.io/prisma": "workspace:*", "@typebot.io/prisma": "workspace:*",
"ai": "2.1.32", "ai": "2.2.14",
"bot-engine": "workspace:*", "bot-engine": "workspace:*",
"cors": "2.8.5", "cors": "2.8.5",
"google-spreadsheet": "4.0.2", "google-spreadsheet": "4.0.2",
"got": "12.6.0", "got": "12.6.0",
"next": "13.4.3", "next": "13.5.4",
"nextjs-cors": "2.1.2", "nextjs-cors": "2.1.2",
"nodemailer": "6.9.3", "nodemailer": "6.9.3",
"openai-edge": "1.2.2", "openai": "^4.11.1",
"qs": "6.11.2", "qs": "6.11.2",
"react": "18.2.0", "react": "18.2.0",
"react-dom": "18.2.0", "react-dom": "18.2.0",
"stripe": "12.13.0", "stripe": "12.13.0",
"trpc-openapi": "1.2.0", "trpc-openapi": "1.2.0"
"@typebot.io/bot-engine": "workspace:*"
}, },
"devDependencies": { "devDependencies": {
"@faire/mjml-react": "3.3.0", "@faire/mjml-react": "3.3.0",

View File

@ -2,14 +2,19 @@ import { connect } from '@planetscale/database'
import { env } from '@typebot.io/env' import { env } from '@typebot.io/env'
import { IntegrationBlockType, SessionState } from '@typebot.io/schemas' import { IntegrationBlockType, SessionState } from '@typebot.io/schemas'
import { StreamingTextResponse } from 'ai' import { StreamingTextResponse } from 'ai'
import { ChatCompletionRequestMessage } from 'openai-edge'
import { getChatCompletionStream } from '@typebot.io/bot-engine/blocks/integrations/openai/getChatCompletionStream' import { getChatCompletionStream } from '@typebot.io/bot-engine/blocks/integrations/openai/getChatCompletionStream'
import OpenAI from 'openai'
import { NextResponse } from 'next/dist/server/web/spec-extension/response'
export const config = { export const config = {
runtime: 'edge', runtime: 'edge',
regions: ['lhr1'], regions: ['lhr1'],
} }
const responseHeaders = {
'Access-Control-Allow-Origin': '*',
}
const handler = async (req: Request) => { const handler = async (req: Request) => {
if (req.method === 'OPTIONS') { if (req.method === 'OPTIONS') {
return new Response('ok', { return new Response('ok', {
@ -23,12 +28,20 @@ const handler = async (req: Request) => {
} }
const { sessionId, messages } = (await req.json()) as { const { sessionId, messages } = (await req.json()) as {
sessionId: string sessionId: string
messages: ChatCompletionRequestMessage[] messages: OpenAI.Chat.ChatCompletionMessage[]
} }
if (!sessionId) return new Response('No session ID provided', { status: 400 }) if (!sessionId)
return NextResponse.json(
{ message: 'No session ID provided' },
{ status: 400, headers: responseHeaders }
)
if (!messages) return new Response('No messages provided', { status: 400 }) if (!messages)
return NextResponse.json(
{ message: 'No messages provided' },
{ status: 400, headers: responseHeaders }
)
const conn = connect({ url: env.DATABASE_URL }) const conn = connect({ url: env.DATABASE_URL })
@ -40,7 +53,11 @@ const handler = async (req: Request) => {
const state = (chatSession.rows.at(0) as { state: SessionState } | undefined) const state = (chatSession.rows.at(0) as { state: SessionState } | undefined)
?.state ?.state
if (!state) return new Response('No state found', { status: 400 }) if (!state)
return NextResponse.json(
{ message: 'No state found' },
{ status: 400, headers: responseHeaders }
)
const group = state.typebotsQueue[0].typebot.groups.find( const group = state.typebotsQueue[0].typebot.groups.find(
(group) => group.id === state.currentBlock?.groupId (group) => group.id === state.currentBlock?.groupId
@ -53,36 +70,46 @@ const handler = async (req: Request) => {
const block = blockIndex >= 0 ? group?.blocks[blockIndex ?? 0] : null const block = blockIndex >= 0 ? group?.blocks[blockIndex ?? 0] : null
if (!block || !group) if (!block || !group)
return new Response('Current block not found', { status: 400 }) return NextResponse.json(
{ message: 'Current block not found' },
{ status: 400, headers: responseHeaders }
)
if ( if (
block.type !== IntegrationBlockType.OPEN_AI || block.type !== IntegrationBlockType.OPEN_AI ||
block.options.task !== 'Create chat completion' block.options.task !== 'Create chat completion'
) )
return new Response('Current block is not an OpenAI block', { status: 400 }) return NextResponse.json(
{ message: 'Current block is not an OpenAI block' },
{ status: 400, headers: responseHeaders }
)
const streamOrResponse = await getChatCompletionStream(conn)( try {
state, const stream = await getChatCompletionStream(conn)(
block.options, state,
messages block.options,
) messages
)
if (!stream)
return NextResponse.json(
{ message: 'Could not create stream' },
{ status: 400, headers: responseHeaders }
)
if (!streamOrResponse) return new StreamingTextResponse(stream, {
return new Response('Could not create stream', { status: 400 }) headers: responseHeaders,
if ('ok' in streamOrResponse)
return new Response(streamOrResponse.body, {
status: streamOrResponse.status,
headers: {
'Access-Control-Allow-Origin': '*',
},
}) })
} catch (error) {
return new StreamingTextResponse(streamOrResponse, { if (error instanceof OpenAI.APIError) {
headers: { const { name, status, message } = error
'Access-Control-Allow-Origin': '*', return NextResponse.json(
}, { name, status, message },
}) { status, headers: responseHeaders }
)
} else {
throw error
}
}
} }
export default handler export default handler

View File

@ -105,7 +105,7 @@ export const createChatCompletionOpenAI = async (
} }
} }
const { response, logs } = await executeChatCompletionOpenAIRequest({ const { chatCompletion, logs } = await executeChatCompletionOpenAIRequest({
apiKey, apiKey,
messages, messages,
model: options.model, model: options.model,
@ -113,15 +113,15 @@ export const createChatCompletionOpenAI = async (
baseUrl: options.baseUrl, baseUrl: options.baseUrl,
apiVersion: options.apiVersion, apiVersion: options.apiVersion,
}) })
if (!response) if (!chatCompletion)
return { return {
outgoingEdgeId, outgoingEdgeId,
logs, logs,
} }
const messageContent = response.choices.at(0)?.message?.content const messageContent = chatCompletion.choices.at(0)?.message?.content
const totalTokens = response.usage?.total_tokens const totalTokens = chatCompletion.usage?.total_tokens
if (isEmpty(messageContent)) { if (isEmpty(messageContent)) {
console.error('OpenAI block returned empty message', response) console.error('OpenAI block returned empty message', chatCompletion.choices)
return { outgoingEdgeId, newSessionState } return { outgoingEdgeId, newSessionState }
} }
return resumeChatCompletion(newSessionState, { return resumeChatCompletion(newSessionState, {

View File

@ -2,15 +2,12 @@ import { isNotEmpty } from '@typebot.io/lib/utils'
import { ChatReply } from '@typebot.io/schemas' import { ChatReply } from '@typebot.io/schemas'
import { OpenAIBlock } from '@typebot.io/schemas/features/blocks/integrations/openai' import { OpenAIBlock } from '@typebot.io/schemas/features/blocks/integrations/openai'
import { HTTPError } from 'got' import { HTTPError } from 'got'
import { import { ClientOptions, OpenAI } from 'openai'
Configuration,
OpenAIApi,
type CreateChatCompletionRequest,
type CreateChatCompletionResponse,
ResponseTypes,
} from 'openai-edge'
type Props = Pick<CreateChatCompletionRequest, 'messages' | 'model'> & { type Props = Pick<
OpenAI.Chat.ChatCompletionCreateParams,
'messages' | 'model'
> & {
apiKey: string apiKey: string
temperature: number | undefined temperature: number | undefined
currentLogs?: ChatReply['logs'] currentLogs?: ChatReply['logs']
@ -27,38 +24,34 @@ export const executeChatCompletionOpenAIRequest = async ({
isRetrying, isRetrying,
currentLogs = [], currentLogs = [],
}: Props): Promise<{ }: Props): Promise<{
response?: CreateChatCompletionResponse chatCompletion?: OpenAI.Chat.Completions.ChatCompletion
logs?: ChatReply['logs'] logs?: ChatReply['logs']
}> => { }> => {
const logs: ChatReply['logs'] = currentLogs const logs: ChatReply['logs'] = currentLogs
if (messages.length === 0) return { logs } if (messages.length === 0) return { logs }
try { try {
const config = new Configuration({ const config = {
apiKey, apiKey,
basePath: baseUrl, baseURL: baseUrl,
baseOptions: { defaultHeaders: {
headers: { 'api-key': apiKey,
'api-key': apiKey,
},
}, },
defaultQueryParams: isNotEmpty(apiVersion) defaultQuery: isNotEmpty(apiVersion)
? new URLSearchParams({ ? {
'api-version': apiVersion, 'api-version': apiVersion,
}) }
: undefined, : undefined,
}) } satisfies ClientOptions
const openai = new OpenAIApi(config) const openai = new OpenAI(config)
const response = await openai.createChatCompletion({ const chatCompletion = await openai.chat.completions.create({
model, model,
messages, messages,
temperature, temperature,
}) })
const completion = return { chatCompletion, logs }
(await response.json()) as ResponseTypes['createChatCompletion']
return { response: completion, logs }
} catch (error) { } catch (error) {
if (error instanceof HTTPError) { if (error instanceof HTTPError) {
if ( if (

View File

@ -7,19 +7,15 @@ import {
} from '@typebot.io/schemas/features/blocks/integrations/openai' } from '@typebot.io/schemas/features/blocks/integrations/openai'
import { SessionState } from '@typebot.io/schemas/features/chat/sessionState' import { SessionState } from '@typebot.io/schemas/features/chat/sessionState'
import { OpenAIStream } from 'ai' import { OpenAIStream } from 'ai'
import {
ChatCompletionRequestMessage,
Configuration,
OpenAIApi,
} from 'openai-edge'
import { parseVariableNumber } from '../../../variables/parseVariableNumber' import { parseVariableNumber } from '../../../variables/parseVariableNumber'
import { ClientOptions, OpenAI } from 'openai'
export const getChatCompletionStream = export const getChatCompletionStream =
(conn: Connection) => (conn: Connection) =>
async ( async (
state: SessionState, state: SessionState,
options: ChatCompletionOpenAIOptions, options: ChatCompletionOpenAIOptions,
messages: ChatCompletionRequestMessage[] messages: OpenAI.Chat.ChatCompletionMessageParam[]
) => { ) => {
if (!options.credentialsId) return if (!options.credentialsId) return
const credentials = ( const credentials = (
@ -41,31 +37,27 @@ export const getChatCompletionStream =
options.advancedSettings?.temperature options.advancedSettings?.temperature
) )
const config = new Configuration({ const config = {
apiKey, apiKey,
basePath: options.baseUrl, baseURL: options.baseUrl,
baseOptions: { defaultHeaders: {
headers: { 'api-key': apiKey,
'api-key': apiKey,
},
}, },
defaultQueryParams: isNotEmpty(options.apiVersion) defaultQuery: isNotEmpty(options.apiVersion)
? new URLSearchParams({ ? {
'api-version': options.apiVersion, 'api-version': options.apiVersion,
}) }
: undefined, : undefined,
}) } satisfies ClientOptions
const openai = new OpenAIApi(config) const openai = new OpenAI(config)
const response = await openai.createChatCompletion({ const response = await openai.chat.completions.create({
model: options.model, model: options.model,
temperature, temperature,
stream: true, stream: true,
messages, messages,
}) })
if (!response.ok) return response
return OpenAIStream(response) return OpenAIStream(response)
} }

View File

@ -1,7 +1,7 @@
import { byId, isNotEmpty } from '@typebot.io/lib' import { byId, isNotEmpty } from '@typebot.io/lib'
import { Variable, VariableWithValue } from '@typebot.io/schemas' import { Variable, VariableWithValue } from '@typebot.io/schemas'
import { ChatCompletionOpenAIOptions } from '@typebot.io/schemas/features/blocks/integrations/openai' import { ChatCompletionOpenAIOptions } from '@typebot.io/schemas/features/blocks/integrations/openai'
import type { ChatCompletionRequestMessage } from 'openai-edge' import type { OpenAI } from 'openai'
import { parseVariables } from '../../../variables/parseVariables' import { parseVariables } from '../../../variables/parseVariables'
import { transformStringVariablesToList } from '../../../variables/transformVariablesToList' import { transformStringVariablesToList } from '../../../variables/transformVariablesToList'
@ -11,7 +11,7 @@ export const parseChatCompletionMessages =
messages: ChatCompletionOpenAIOptions['messages'] messages: ChatCompletionOpenAIOptions['messages']
): { ): {
variablesTransformedToList: VariableWithValue[] variablesTransformedToList: VariableWithValue[]
messages: ChatCompletionRequestMessage[] messages: OpenAI.Chat.ChatCompletionMessageParam[]
} => { } => {
const variablesTransformedToList: VariableWithValue[] = [] const variablesTransformedToList: VariableWithValue[] = []
const parsedMessages = messages const parsedMessages = messages
@ -47,7 +47,7 @@ export const parseChatCompletionMessages =
variable.id === message.content?.assistantMessagesVariableId variable.id === message.content?.assistantMessagesVariableId
)?.value ?? []) as string[] )?.value ?? []) as string[]
let allMessages: ChatCompletionRequestMessage[] = [] let allMessages: OpenAI.Chat.ChatCompletionMessageParam[] = []
if (userMessages.length > assistantMessages.length) if (userMessages.length > assistantMessages.length)
allMessages = userMessages.flatMap((userMessage, index) => [ allMessages = userMessages.flatMap((userMessage, index) => [
@ -56,7 +56,7 @@ export const parseChatCompletionMessages =
content: userMessage, content: userMessage,
}, },
{ role: 'assistant', content: assistantMessages.at(index) ?? '' }, { role: 'assistant', content: assistantMessages.at(index) ?? '' },
]) satisfies ChatCompletionRequestMessage[] ]) satisfies OpenAI.Chat.ChatCompletionMessageParam[]
else { else {
allMessages = assistantMessages.flatMap( allMessages = assistantMessages.flatMap(
(assistantMessage, index) => [ (assistantMessage, index) => [
@ -66,7 +66,7 @@ export const parseChatCompletionMessages =
content: userMessages.at(index) ?? '', content: userMessages.at(index) ?? '',
}, },
] ]
) satisfies ChatCompletionRequestMessage[] ) satisfies OpenAI.Chat.ChatCompletionMessageParam[]
} }
return allMessages return allMessages
@ -77,11 +77,11 @@ export const parseChatCompletionMessages =
name: message.name name: message.name
? parseVariables(variables)(message.name) ? parseVariables(variables)(message.name)
: undefined, : undefined,
} satisfies ChatCompletionRequestMessage } satisfies OpenAI.Chat.ChatCompletionMessageParam
}) })
.filter( .filter(
(message) => isNotEmpty(message?.role) && isNotEmpty(message?.content) (message) => isNotEmpty(message?.role) && isNotEmpty(message?.content)
) as ChatCompletionRequestMessage[] ) as OpenAI.Chat.ChatCompletionMessageParam[]
return { return {
variablesTransformedToList, variablesTransformedToList,

View File

@ -18,7 +18,7 @@
"@typebot.io/tsconfig": "workspace:*", "@typebot.io/tsconfig": "workspace:*",
"@udecode/plate-common": "^21.1.5", "@udecode/plate-common": "^21.1.5",
"@udecode/plate-serializer-md": "^24.4.0", "@udecode/plate-serializer-md": "^24.4.0",
"ai": "2.1.32", "ai": "2.2.14",
"chrono-node": "2.6.6", "chrono-node": "2.6.6",
"date-fns": "^2.30.0", "date-fns": "^2.30.0",
"google-auth-library": "8.9.0", "google-auth-library": "8.9.0",
@ -27,7 +27,7 @@
"libphonenumber-js": "1.10.37", "libphonenumber-js": "1.10.37",
"node-html-parser": "^6.1.5", "node-html-parser": "^6.1.5",
"nodemailer": "6.9.3", "nodemailer": "6.9.3",
"openai-edge": "1.2.2", "openai": "^4.11.1",
"qs": "^6.11.2", "qs": "^6.11.2",
"remark-slate": "^1.8.6", "remark-slate": "^1.8.6",
"stripe": "12.13.0" "stripe": "12.13.0"

View File

@ -63,7 +63,7 @@ export const executeClientSideAction = async ({
logs: [ logs: [
{ {
status: 'error', status: 'error',
description: 'Failed to stream OpenAI completion', description: 'OpenAI returned an error',
details: JSON.stringify(error, null, 2), details: JSON.stringify(error, null, 2),
}, },
], ],

View File

@ -6,7 +6,7 @@
"main": "./env.ts", "main": "./env.ts",
"types": "./env.ts", "types": "./env.ts",
"dependencies": { "dependencies": {
"@t3-oss/env-nextjs": "^0.6.0", "@t3-oss/env-nextjs": "^0.7.0",
"zod": "3.21.4" "zod": "3.21.4"
}, },
"devDependencies": { "devDependencies": {

View File

@ -13,7 +13,7 @@
"@typebot.io/schemas": "workspace:*", "@typebot.io/schemas": "workspace:*",
"@typebot.io/tsconfig": "workspace:*", "@typebot.io/tsconfig": "workspace:*",
"@types/nodemailer": "6.4.8", "@types/nodemailer": "6.4.8",
"next": "13.4.3", "next": "13.5.4",
"nodemailer": "6.9.3", "nodemailer": "6.9.3",
"typescript": "5.1.6" "typescript": "5.1.6"
}, },

View File

@ -62,7 +62,9 @@ export const isNotDefined = <T>(
value: T | undefined | null value: T | undefined | null
): value is undefined | null => value === undefined || value === null ): value is undefined | null => value === undefined || value === null
export const isEmpty = (value: string | undefined | null): value is undefined => export const isEmpty = (
value: string | undefined | null
): value is undefined | null =>
value === undefined || value === null || value === '' value === undefined || value === null || value === ''
export const isNotEmpty = (value: string | undefined | null): value is string => export const isNotEmpty = (value: string | undefined | null): value is string =>

342
pnpm-lock.yaml generated
View File

@ -73,7 +73,7 @@ importers:
version: 2.2.1 version: 2.2.1
'@sentry/nextjs': '@sentry/nextjs':
specifier: 7.66.0 specifier: 7.66.0
version: 7.66.0(next@13.4.3)(react@18.2.0) version: 7.66.0(next@13.5.4)(react@18.2.0)
'@tanstack/react-query': '@tanstack/react-query':
specifier: ^4.29.19 specifier: ^4.29.19
version: 4.29.19(react-dom@18.2.0)(react@18.2.0) version: 4.29.19(react-dom@18.2.0)(react@18.2.0)
@ -85,7 +85,7 @@ importers:
version: 10.34.0(@trpc/server@10.34.0) version: 10.34.0(@trpc/server@10.34.0)
'@trpc/next': '@trpc/next':
specifier: 10.34.0 specifier: 10.34.0
version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.4.3)(react-dom@18.2.0)(react@18.2.0) version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.5.4)(react-dom@18.2.0)(react@18.2.0)
'@trpc/react-query': '@trpc/react-query':
specifier: 10.34.0 specifier: 10.34.0
version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0) version: 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0)
@ -192,26 +192,26 @@ importers:
specifier: 0.1.1 specifier: 0.1.1
version: 0.1.1 version: 0.1.1
next: next:
specifier: 13.4.3 specifier: 13.5.4
version: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) version: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
next-auth: next-auth:
specifier: 4.22.1 specifier: 4.22.1
version: 4.22.1(next@13.4.3)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0) version: 4.22.1(next@13.5.4)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0)
next-international: next-international:
specifier: 0.9.5 specifier: 0.9.5
version: 0.9.5 version: 0.9.5
nextjs-cors: nextjs-cors:
specifier: ^2.1.2 specifier: ^2.1.2
version: 2.1.2(next@13.4.3) version: 2.1.2(next@13.5.4)
nodemailer: nodemailer:
specifier: 6.9.3 specifier: 6.9.3
version: 6.9.3 version: 6.9.3
nprogress: nprogress:
specifier: 0.2.0 specifier: 0.2.0
version: 0.2.0 version: 0.2.0
openai-edge: openai:
specifier: 1.2.2 specifier: ^4.11.1
version: 1.2.2 version: 4.11.1
papaparse: papaparse:
specifier: 5.4.1 specifier: 5.4.1
version: 5.4.1 version: 5.4.1
@ -440,8 +440,8 @@ importers:
specifier: 10.12.20 specifier: 10.12.20
version: 10.12.20(react-dom@18.2.0)(react@18.2.0) version: 10.12.20(react-dom@18.2.0)(react@18.2.0)
next: next:
specifier: 13.4.3 specifier: 13.5.4
version: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) version: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
react: react:
specifier: 18.2.0 specifier: 18.2.0
version: 18.2.0 version: 18.2.0
@ -508,7 +508,7 @@ importers:
version: 1.8.0 version: 1.8.0
'@sentry/nextjs': '@sentry/nextjs':
specifier: 7.66.0 specifier: 7.66.0
version: 7.66.0(next@13.4.3)(react@18.2.0) version: 7.66.0(next@13.5.4)(react@18.2.0)
'@trpc/server': '@trpc/server':
specifier: 10.34.0 specifier: 10.34.0
version: 10.34.0 version: 10.34.0
@ -522,8 +522,8 @@ importers:
specifier: workspace:* specifier: workspace:*
version: link:../../packages/prisma version: link:../../packages/prisma
ai: ai:
specifier: 2.1.32 specifier: 2.2.14
version: 2.1.32(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4) version: 2.2.14(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4)
bot-engine: bot-engine:
specifier: workspace:* specifier: workspace:*
version: link:../../packages/deprecated/bot-engine version: link:../../packages/deprecated/bot-engine
@ -537,17 +537,17 @@ importers:
specifier: 12.6.0 specifier: 12.6.0
version: 12.6.0 version: 12.6.0
next: next:
specifier: 13.4.3 specifier: 13.5.4
version: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) version: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
nextjs-cors: nextjs-cors:
specifier: 2.1.2 specifier: 2.1.2
version: 2.1.2(next@13.4.3) version: 2.1.2(next@13.5.4)
nodemailer: nodemailer:
specifier: 6.9.3 specifier: 6.9.3
version: 6.9.3 version: 6.9.3
openai-edge: openai:
specifier: 1.2.2 specifier: ^4.11.1
version: 1.2.2 version: 4.11.1
qs: qs:
specifier: 6.11.2 specifier: 6.11.2
version: 6.11.2 version: 6.11.2
@ -644,7 +644,7 @@ importers:
version: 1.8.0 version: 1.8.0
'@sentry/nextjs': '@sentry/nextjs':
specifier: 7.66.0 specifier: 7.66.0
version: 7.66.0(next@13.4.3)(react@18.2.0) version: 7.66.0(next@13.5.4)(react@18.2.0)
'@trpc/server': '@trpc/server':
specifier: 10.34.0 specifier: 10.34.0
version: 10.34.0 version: 10.34.0
@ -673,8 +673,8 @@ importers:
specifier: ^24.4.0 specifier: ^24.4.0
version: 24.4.0(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0)(slate-history@0.93.0)(slate-hyperscript@0.77.0)(slate-react@0.99.0)(slate@0.94.1) version: 24.4.0(react-dom@18.2.0)(react@18.2.0)(scheduler@0.23.0)(slate-history@0.93.0)(slate-hyperscript@0.77.0)(slate-react@0.99.0)(slate@0.94.1)
ai: ai:
specifier: 2.1.32 specifier: 2.2.14
version: 2.1.32(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4) version: 2.2.14(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4)
chrono-node: chrono-node:
specifier: 2.6.6 specifier: 2.6.6
version: 2.6.6 version: 2.6.6
@ -699,9 +699,9 @@ importers:
nodemailer: nodemailer:
specifier: 6.9.3 specifier: 6.9.3
version: 6.9.3 version: 6.9.3
openai-edge: openai:
specifier: 1.2.2 specifier: ^4.11.1
version: 1.2.2 version: 4.11.1
qs: qs:
specifier: ^6.11.2 specifier: ^6.11.2
version: 6.11.2 version: 6.11.2
@ -1142,8 +1142,8 @@ importers:
packages/env: packages/env:
dependencies: dependencies:
'@t3-oss/env-nextjs': '@t3-oss/env-nextjs':
specifier: ^0.6.0 specifier: ^0.7.0
version: 0.6.0(typescript@5.1.6)(zod@3.21.4) version: 0.7.0(zod@3.21.4)
zod: zod:
specifier: 3.21.4 specifier: 3.21.4
version: 3.21.4 version: 3.21.4
@ -1184,7 +1184,7 @@ importers:
dependencies: dependencies:
'@sentry/nextjs': '@sentry/nextjs':
specifier: 7.66.0 specifier: 7.66.0
version: 7.66.0(next@13.4.3)(react@18.2.0) version: 7.66.0(next@13.5.4)(react@18.2.0)
'@trpc/server': '@trpc/server':
specifier: 10.34.0 specifier: 10.34.0
version: 10.34.0 version: 10.34.0
@ -1223,8 +1223,8 @@ importers:
specifier: 6.4.8 specifier: 6.4.8
version: 6.4.8 version: 6.4.8
next: next:
specifier: 13.4.3 specifier: 13.5.4
version: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) version: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
nodemailer: nodemailer:
specifier: 6.9.3 specifier: 6.9.3
version: 6.9.3 version: 6.9.3
@ -7031,6 +7031,10 @@ packages:
/@next/env@13.4.3: /@next/env@13.4.3:
resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==} resolution: {integrity: sha512-pa1ErjyFensznttAk3EIv77vFbfSYT6cLzVRK5jx4uiRuCQo+m2wCFAREaHKIy63dlgvOyMlzh6R8Inu8H3KrQ==}
dev: false
/@next/env@13.5.4:
resolution: {integrity: sha512-LGegJkMvRNw90WWphGJ3RMHMVplYcOfRWf2Be3td3sUa+1AaxmsYyANsA+znrGCBjXJNi4XAQlSoEfUxs/4kIQ==}
/@next/eslint-plugin-next@13.4.9: /@next/eslint-plugin-next@13.4.9:
resolution: {integrity: sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==} resolution: {integrity: sha512-nDtGpa992tNyAkT/KmSMy7QkHfNZmGCBYhHtafU97DubqxzNdvLsqRtliQ4FU04CysRCtvP2hg8rRC1sAKUTUA==}
@ -7044,6 +7048,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-darwin-arm64@13.5.4:
resolution: {integrity: sha512-Df8SHuXgF1p+aonBMcDPEsaahNo2TCwuie7VXED4FVyECvdXfRT9unapm54NssV9tF3OQFKBFOdlje4T43VO0w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
optional: true optional: true
/@next/swc-darwin-x64@13.4.3: /@next/swc-darwin-x64@13.4.3:
@ -7052,6 +7065,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-darwin-x64@13.5.4:
resolution: {integrity: sha512-siPuUwO45PnNRMeZnSa8n/Lye5ZX93IJom9wQRB5DEOdFrw0JjOMu1GINB8jAEdwa7Vdyn1oJ2xGNaQpdQQ9Pw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
requiresBuild: true
optional: true optional: true
/@next/swc-linux-arm64-gnu@13.4.3: /@next/swc-linux-arm64-gnu@13.4.3:
@ -7060,6 +7082,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-linux-arm64-gnu@13.5.4:
resolution: {integrity: sha512-l/k/fvRP/zmB2jkFMfefmFkyZbDkYW0mRM/LB+tH5u9pB98WsHXC0WvDHlGCYp3CH/jlkJPL7gN8nkTQVrQ/2w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true optional: true
/@next/swc-linux-arm64-musl@13.4.3: /@next/swc-linux-arm64-musl@13.4.3:
@ -7068,6 +7099,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-linux-arm64-musl@13.5.4:
resolution: {integrity: sha512-YYGb7SlLkI+XqfQa8VPErljb7k9nUnhhRrVaOdfJNCaQnHBcvbT7cx/UjDQLdleJcfyg1Hkn5YSSIeVfjgmkTg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
requiresBuild: true
optional: true optional: true
/@next/swc-linux-x64-gnu@13.4.3: /@next/swc-linux-x64-gnu@13.4.3:
@ -7076,6 +7116,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-linux-x64-gnu@13.5.4:
resolution: {integrity: sha512-uE61vyUSClnCH18YHjA8tE1prr/PBFlBFhxBZis4XBRJoR+txAky5d7gGNUIbQ8sZZ7LVkSVgm/5Fc7mwXmRAg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true optional: true
/@next/swc-linux-x64-musl@13.4.3: /@next/swc-linux-x64-musl@13.4.3:
@ -7084,6 +7133,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-linux-x64-musl@13.5.4:
resolution: {integrity: sha512-qVEKFYML/GvJSy9CfYqAdUexA6M5AklYcQCW+8JECmkQHGoPxCf04iMh7CPR7wkHyWWK+XLt4Ja7hhsPJtSnhg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
requiresBuild: true
optional: true optional: true
/@next/swc-win32-arm64-msvc@13.4.3: /@next/swc-win32-arm64-msvc@13.4.3:
@ -7092,6 +7150,15 @@ packages:
cpu: [arm64] cpu: [arm64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-win32-arm64-msvc@13.5.4:
resolution: {integrity: sha512-mDSQfqxAlfpeZOLPxLymZkX0hYF3juN57W6vFHTvwKlnHfmh12Pt7hPIRLYIShk8uYRsKPtMTth/EzpwRI+u8w==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
requiresBuild: true
optional: true optional: true
/@next/swc-win32-ia32-msvc@13.4.3: /@next/swc-win32-ia32-msvc@13.4.3:
@ -7100,6 +7167,15 @@ packages:
cpu: [ia32] cpu: [ia32]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-win32-ia32-msvc@13.5.4:
resolution: {integrity: sha512-aoqAT2XIekIWoriwzOmGFAvTtVY5O7JjV21giozBTP5c6uZhpvTWRbmHXbmsjZqY4HnEZQRXWkSAppsIBweKqw==}
engines: {node: '>= 10'}
cpu: [ia32]
os: [win32]
requiresBuild: true
optional: true optional: true
/@next/swc-win32-x64-msvc@13.4.3: /@next/swc-win32-x64-msvc@13.4.3:
@ -7108,6 +7184,15 @@ packages:
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
requiresBuild: true requiresBuild: true
dev: false
optional: true
/@next/swc-win32-x64-msvc@13.5.4:
resolution: {integrity: sha512-cyRvlAxwlddlqeB9xtPSfNSCRy8BOa4wtMo0IuI9P7Y0XT2qpDrpFKRyZ7kUngZis59mPVla5k8X1oOJ8RxDYg==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
requiresBuild: true
optional: true optional: true
/@nextjournal/lang-clojure@1.0.0: /@nextjournal/lang-clojure@1.0.0:
@ -7955,7 +8040,7 @@ packages:
tslib: 2.6.0 tslib: 2.6.0
dev: false dev: false
/@sentry/nextjs@7.66.0(next@13.4.3)(react@18.2.0): /@sentry/nextjs@7.66.0(next@13.5.4)(react@18.2.0):
resolution: {integrity: sha512-CJwl3/rIJRR1isqWjGEE8CYiNUndvRksp7l0/75tfe4JoKTk+XS3tXcXVZyyXh34GU5San1c46ctiyodaGGIeg==} resolution: {integrity: sha512-CJwl3/rIJRR1isqWjGEE8CYiNUndvRksp7l0/75tfe4JoKTk+XS3tXcXVZyyXh34GU5San1c46ctiyodaGGIeg==}
engines: {node: '>=8'} engines: {node: '>=8'}
peerDependencies: peerDependencies:
@ -7975,7 +8060,7 @@ packages:
'@sentry/utils': 7.66.0 '@sentry/utils': 7.66.0
'@sentry/webpack-plugin': 1.20.0 '@sentry/webpack-plugin': 1.20.0
chalk: 3.0.0 chalk: 3.0.0
next: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) next: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
rollup: 2.78.0 rollup: 2.78.0
stacktrace-parser: 0.1.10 stacktrace-parser: 0.1.10
@ -8270,6 +8355,12 @@ packages:
resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==} resolution: {integrity: sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg==}
dependencies: dependencies:
tslib: 2.6.0 tslib: 2.6.0
dev: false
/@swc/helpers@0.5.2:
resolution: {integrity: sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==}
dependencies:
tslib: 2.6.0
/@szmarczak/http-timer@1.1.2: /@szmarczak/http-timer@1.1.2:
resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==}
@ -8284,24 +8375,28 @@ packages:
dependencies: dependencies:
defer-to-connect: 2.0.1 defer-to-connect: 2.0.1
/@t3-oss/env-core@0.6.0(typescript@5.1.6)(zod@3.21.4): /@t3-oss/env-core@0.7.0(zod@3.21.4):
resolution: {integrity: sha512-3FkPAba069WRZVVab/sB1m3eSGn/rZeypx5k+sWEu1d+k0OQdRDnvFS+7MtxYgqVrwaRk3b7yVnX2dgSPVmWPQ==} resolution: {integrity: sha512-cgunN82CqgQOOyuMOK/bGtujX5/ooXQTwGMJVWI6mCowq6WE5EgRLOqF/DRcrElI0gSFGA9i9GrxzCnk73HZLQ==}
peerDependencies: peerDependencies:
typescript: '>=4.7.2' typescript: '>=4.7.2'
zod: ^3.0.0 zod: ^3.0.0
peerDependenciesMeta:
typescript:
optional: true
dependencies: dependencies:
typescript: 5.1.6
zod: 3.21.4 zod: 3.21.4
dev: false dev: false
/@t3-oss/env-nextjs@0.6.0(typescript@5.1.6)(zod@3.21.4): /@t3-oss/env-nextjs@0.7.0(zod@3.21.4):
resolution: {integrity: sha512-SpzcGNIbUYcQw4zPPFeRJqCC1560zL7QmB0puIqOnuCsmykPkqHPX+n9CNZLXVQerboHzfvb7Kd+jAdouk72Vw==} resolution: {integrity: sha512-rjQIt6P3tac2eRx4BNQLNaJ+AIb2P8wXw4uFvYbEekqMGShikkUALnX3hUn1twYiGVGHXRm6UbU+LqtjIktuGg==}
peerDependencies: peerDependencies:
typescript: '>=4.7.2' typescript: '>=4.7.2'
zod: ^3.0.0 zod: ^3.0.0
peerDependenciesMeta:
typescript:
optional: true
dependencies: dependencies:
'@t3-oss/env-core': 0.6.0(typescript@5.1.6)(zod@3.21.4) '@t3-oss/env-core': 0.7.0(zod@3.21.4)
typescript: 5.1.6
zod: 3.21.4 zod: 3.21.4
dev: false dev: false
@ -8368,7 +8463,7 @@ packages:
'@trpc/server': 10.34.0 '@trpc/server': 10.34.0
dev: false dev: false
/@trpc/next@10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.4.3)(react-dom@18.2.0)(react@18.2.0): /@trpc/next@10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/react-query@10.34.0)(@trpc/server@10.34.0)(next@13.5.4)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-8jQPedVkCYCAG6PXDEumG5ILeD1aYVC6/aApk5Y96eeqnmAtX7TO9grVRfGGNaISuTtJ/oIDmRfSRqo1eOU4OA==} resolution: {integrity: sha512-8jQPedVkCYCAG6PXDEumG5ILeD1aYVC6/aApk5Y96eeqnmAtX7TO9grVRfGGNaISuTtJ/oIDmRfSRqo1eOU4OA==}
peerDependencies: peerDependencies:
'@tanstack/react-query': ^4.18.0 '@tanstack/react-query': ^4.18.0
@ -8383,7 +8478,7 @@ packages:
'@trpc/client': 10.34.0(@trpc/server@10.34.0) '@trpc/client': 10.34.0(@trpc/server@10.34.0)
'@trpc/react-query': 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0) '@trpc/react-query': 10.34.0(@tanstack/react-query@4.29.19)(@trpc/client@10.34.0)(@trpc/server@10.34.0)(react-dom@18.2.0)(react@18.2.0)
'@trpc/server': 10.34.0 '@trpc/server': 10.34.0
next: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) next: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0 react: 18.2.0
react-dom: 18.2.0(react@18.2.0) react-dom: 18.2.0(react@18.2.0)
react-ssr-prepass: 1.5.0(react@18.2.0) react-ssr-prepass: 1.5.0(react@18.2.0)
@ -8762,13 +8857,19 @@ packages:
resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==} resolution: {integrity: sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==}
dev: false dev: false
/@types/node-fetch@2.6.6:
resolution: {integrity: sha512-95X8guJYhfqiuVVhRFxVQcf4hW/2bCuoPwDasMf/531STFoNoWTT7YDnWdXHEZKqAGUigmpG31r2FE70LwnzJw==}
dependencies:
'@types/node': 20.5.9
form-data: 4.0.0
dev: false
/@types/node@17.0.45: /@types/node@17.0.45:
resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==}
dev: false dev: false
/@types/node@18.11.18: /@types/node@18.11.18:
resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==}
dev: true
/@types/node@20.4.2: /@types/node@20.4.2:
resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==} resolution: {integrity: sha512-Dd0BYtWgnWJKwO1jkmTrzofjK2QXXcai0dmtzvIBhcA+RsG5h8R3xlyta0kGOZRNfL9GuRtb1knmPEhQrePCEw==}
@ -10816,6 +10917,13 @@ packages:
/abbrev@1.1.1: /abbrev@1.1.1:
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
/abort-controller@3.0.0:
resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==}
engines: {node: '>=6.5'}
dependencies:
event-target-shim: 5.0.1
dev: false
/accepts@1.3.8: /accepts@1.3.8:
resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==}
engines: {node: '>= 0.6'} engines: {node: '>= 0.6'}
@ -10886,6 +10994,13 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- supports-color - supports-color
/agentkeepalive@4.5.0:
resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==}
engines: {node: '>= 8.0.0'}
dependencies:
humanize-ms: 1.2.1
dev: false
/aggregate-error@3.1.0: /aggregate-error@3.1.0:
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -10894,8 +11009,8 @@ packages:
indent-string: 4.0.0 indent-string: 4.0.0
dev: false dev: false
/ai@2.1.32(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4): /ai@2.2.14(react@18.2.0)(solid-js@1.7.8)(svelte@4.2.0)(vue@3.3.4):
resolution: {integrity: sha512-G+mk7OfSxVR5s2cmpni89olZjXo5XbxPzzG8DAZThoJA2725hczfvO/gqLYGUToq92vzr0XgCHP6JJFK9so5fg==} resolution: {integrity: sha512-4kL2iYPVhH1pl6jJFIJCYcgx5mHzGOmdwiSYWVadmSkNOxKqokgevHyJKiyL9B9DjlreM9cDqkQop56Hdfkb0w==}
engines: {node: '>=14.6'} engines: {node: '>=14.6'}
peerDependencies: peerDependencies:
react: ^18.2.0 react: ^18.2.0
@ -11544,6 +11659,10 @@ packages:
/balanced-match@1.0.2: /balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
/base-64@0.1.0:
resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==}
dev: false
/base16@1.0.0: /base16@1.0.0:
resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==}
dev: false dev: false
@ -11936,6 +12055,10 @@ packages:
resolution: {integrity: sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==} resolution: {integrity: sha512-j/Toj7f1z98Hh2cYo2BVr85EpIRWqUi7rtRSGxh/cqUjqrnJe9l9UE7IUGd2vQ2p+kSHLkSzObQPZPLUC6TQwg==}
dev: true dev: true
/charenc@0.0.2:
resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==}
dev: false
/charset@1.0.1: /charset@1.0.1:
resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==} resolution: {integrity: sha512-6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==}
engines: {node: '>=4.0.0'} engines: {node: '>=4.0.0'}
@ -12568,6 +12691,10 @@ packages:
shebang-command: 2.0.0 shebang-command: 2.0.0
which: 2.0.2 which: 2.0.2
/crypt@0.0.2:
resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==}
dev: false
/crypto-js@4.1.1: /crypto-js@4.1.1:
resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==} resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==}
dev: false dev: false
@ -13109,6 +13236,13 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dev: true dev: true
/digest-fetch@1.3.0:
resolution: {integrity: sha512-CGJuv6iKNM7QyZlM2T3sPAdZWd/p9zQiRNS9G+9COUCwzWFTs0Xp8NF5iePx7wtvhDykReiRRrSeNb4oMmB8lA==}
dependencies:
base-64: 0.1.0
md5: 2.3.0
dev: false
/dir-glob@3.0.1: /dir-glob@3.0.1:
resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
engines: {node: '>=8'} engines: {node: '>=8'}
@ -14231,6 +14365,11 @@ packages:
require-like: 0.1.2 require-like: 0.1.2
dev: false dev: false
/event-target-shim@5.0.1:
resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==}
engines: {node: '>=6'}
dev: false
/eventemitter3@4.0.7: /eventemitter3@4.0.7:
resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==}
@ -14643,6 +14782,10 @@ packages:
webpack: 5.88.2 webpack: 5.88.2
dev: false dev: false
/form-data-encoder@1.7.2:
resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==}
dev: false
/form-data-encoder@2.1.4: /form-data-encoder@2.1.4:
resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==} resolution: {integrity: sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw==}
engines: {node: '>= 14.17'} engines: {node: '>= 14.17'}
@ -14655,6 +14798,14 @@ packages:
combined-stream: 1.0.8 combined-stream: 1.0.8
mime-types: 2.1.35 mime-types: 2.1.35
/formdata-node@4.4.1:
resolution: {integrity: sha512-0iirZp3uVDjVGt9p49aTaqjk84TrglENEDuqfdlZQ1roC9CWlPk6Avf8EEnZNcAqPonwkG35x4n3ww/1THYAeQ==}
engines: {node: '>= 12.20'}
dependencies:
node-domexception: 1.0.0
web-streams-polyfill: 4.0.0-beta.3
dev: false
/formidable@2.1.2: /formidable@2.1.2:
resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==} resolution: {integrity: sha512-CM3GuJ57US06mlpQ47YcunuUZ9jpm8Vx+P2CGt2j7HpgkKZO/DJYQ0Bobim8G6PFQmK5lOqOOdUXboU+h73A4g==}
dependencies: dependencies:
@ -15580,6 +15731,12 @@ packages:
resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
engines: {node: '>=10.17.0'} engines: {node: '>=10.17.0'}
/humanize-ms@1.2.1:
resolution: {integrity: sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==}
dependencies:
ms: 2.1.3
dev: false
/husky@8.0.3: /husky@8.0.3:
resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
engines: {node: '>=14'} engines: {node: '>=14'}
@ -15890,6 +16047,10 @@ packages:
call-bind: 1.0.2 call-bind: 1.0.2
has-tostringtag: 1.0.0 has-tostringtag: 1.0.0
/is-buffer@1.1.6:
resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
dev: false
/is-buffer@2.0.5: /is-buffer@2.0.5:
resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==}
engines: {node: '>=4'} engines: {node: '>=4'}
@ -17356,6 +17517,14 @@ packages:
hasBin: true hasBin: true
dev: false dev: false
/md5@2.3.0:
resolution: {integrity: sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==}
dependencies:
charenc: 0.0.2
crypt: 0.0.2
is-buffer: 1.1.6
dev: false
/mdast-squeeze-paragraphs@4.0.0: /mdast-squeeze-paragraphs@4.0.0:
resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==}
dependencies: dependencies:
@ -18046,7 +18215,7 @@ packages:
/neo-async@2.6.2: /neo-async@2.6.2:
resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==}
/next-auth@4.22.1(next@13.4.3)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0): /next-auth@4.22.1(next@13.5.4)(nodemailer@6.9.3)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==} resolution: {integrity: sha512-NTR3f6W7/AWXKw8GSsgSyQcDW6jkslZLH8AiZa5PQ09w1kR8uHtR9rez/E9gAq/o17+p0JYHE8QjF3RoniiObA==}
peerDependencies: peerDependencies:
next: ^12.2.5 || ^13 next: ^12.2.5 || ^13
@ -18061,7 +18230,7 @@ packages:
'@panva/hkdf': 1.1.1 '@panva/hkdf': 1.1.1
cookie: 0.5.0 cookie: 0.5.0
jose: 4.14.5 jose: 4.14.5
next: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) next: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
nodemailer: 6.9.3 nodemailer: 6.9.3
oauth: 0.9.15 oauth: 0.9.15
openid-client: 5.4.3 openid-client: 5.4.3
@ -18135,14 +18304,53 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- '@babel/core' - '@babel/core'
- babel-plugin-macros - babel-plugin-macros
dev: false
/nextjs-cors@2.1.2(next@13.4.3): /next@13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0):
resolution: {integrity: sha512-+93un5S779gho8y9ASQhb/bTkQF17FNQOtXLKAj3lsNgltEcF0C5PMLLncDmH+8X1EnJH1kbqAERa29nRXqhjA==}
engines: {node: '>=16.14.0'}
hasBin: true
peerDependencies:
'@opentelemetry/api': ^1.1.0
react: ^18.2.0
react-dom: ^18.2.0
sass: ^1.3.0
peerDependenciesMeta:
'@opentelemetry/api':
optional: true
sass:
optional: true
dependencies:
'@next/env': 13.5.4
'@swc/helpers': 0.5.2
busboy: 1.6.0
caniuse-lite: 1.0.30001525
postcss: 8.4.31
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
styled-jsx: 5.1.1(@babel/core@7.22.9)(react@18.2.0)
watchpack: 2.4.0
optionalDependencies:
'@next/swc-darwin-arm64': 13.5.4
'@next/swc-darwin-x64': 13.5.4
'@next/swc-linux-arm64-gnu': 13.5.4
'@next/swc-linux-arm64-musl': 13.5.4
'@next/swc-linux-x64-gnu': 13.5.4
'@next/swc-linux-x64-musl': 13.5.4
'@next/swc-win32-arm64-msvc': 13.5.4
'@next/swc-win32-ia32-msvc': 13.5.4
'@next/swc-win32-x64-msvc': 13.5.4
transitivePeerDependencies:
- '@babel/core'
- babel-plugin-macros
/nextjs-cors@2.1.2(next@13.5.4):
resolution: {integrity: sha512-2yOVivaaf2ILe4f/qY32hnj3oC77VCOsUQJQfhVMGsXE/YMEWUY2zy78sH9FKUCM7eG42/l3pDofIzMD781XGA==} resolution: {integrity: sha512-2yOVivaaf2ILe4f/qY32hnj3oC77VCOsUQJQfhVMGsXE/YMEWUY2zy78sH9FKUCM7eG42/l3pDofIzMD781XGA==}
peerDependencies: peerDependencies:
next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0 next: ^8.1.1-canary.54 || ^9.0.0 || ^10.0.0-0 || ^11.0.0 || ^12.0.0 || ^13.0.0
dependencies: dependencies:
cors: 2.8.5 cors: 2.8.5
next: 13.4.3(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0) next: 13.5.4(@babel/core@7.22.9)(react-dom@18.2.0)(react@18.2.0)
dev: false dev: false
/no-case@2.3.2: /no-case@2.3.2:
@ -18168,6 +18376,11 @@ packages:
resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==}
dev: false dev: false
/node-domexception@1.0.0:
resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==}
engines: {node: '>=10.5.0'}
dev: false
/node-emoji@1.11.0: /node-emoji@1.11.0:
resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==}
dependencies: dependencies:
@ -18444,9 +18657,20 @@ packages:
is-wsl: 2.2.0 is-wsl: 2.2.0
dev: false dev: false
/openai-edge@1.2.2: /openai@4.11.1:
resolution: {integrity: sha512-C3/Ao9Hkx5uBPv9YFBpX/x59XMPgPUU4dyGg/0J2sOJ7O9D98kD+lfdOc7v/60oYo5xzMGct80uFkYLH+X2qgw==} resolution: {integrity: sha512-GU0HQWbejXuVAQlDjxIE8pohqnjptFDIm32aPlNT1H9ucMz1VJJD0DaTJRQsagNaJ97awWjjVLEG7zCM6sm4SA==}
engines: {node: '>=18'} hasBin: true
dependencies:
'@types/node': 18.11.18
'@types/node-fetch': 2.6.6
abort-controller: 3.0.0
agentkeepalive: 4.5.0
digest-fetch: 1.3.0
form-data-encoder: 1.7.2
formdata-node: 4.4.1
node-fetch: 2.7.0
transitivePeerDependencies:
- encoding
dev: false dev: false
/openapi-to-postmanv2@1.2.7: /openapi-to-postmanv2@1.2.7:
@ -19324,6 +19548,7 @@ packages:
nanoid: 3.3.6 nanoid: 3.3.6
picocolors: 1.0.0 picocolors: 1.0.0
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: false
/postcss@8.4.21: /postcss@8.4.21:
resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==} resolution: {integrity: sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==}
@ -19351,6 +19576,14 @@ packages:
source-map-js: 1.0.2 source-map-js: 1.0.2
dev: false dev: false
/postcss@8.4.31:
resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.6
picocolors: 1.0.0
source-map-js: 1.0.2
/posthog-js@1.77.1: /posthog-js@1.77.1:
resolution: {integrity: sha512-QBwyeCvXf2JvnLBDSrp0DIwn8DnUEj6giyFtFD3xNQR7s89DUATWi9qnfu4DxUCOzLvN8eXmD94vAnXWVjw7cA==} resolution: {integrity: sha512-QBwyeCvXf2JvnLBDSrp0DIwn8DnUEj6giyFtFD3xNQR7s89DUATWi9qnfu4DxUCOzLvN8eXmD94vAnXWVjw7cA==}
dependencies: dependencies:
@ -23181,6 +23414,11 @@ packages:
transitivePeerDependencies: transitivePeerDependencies:
- encoding - encoding
/web-streams-polyfill@4.0.0-beta.3:
resolution: {integrity: sha512-QW95TCTaHmsYfHDybGMwO5IJIM93I/6vTRk+daHTWFPhwh+C8Cg7j7XyKrwrj8Ib6vYXe0ocYNrmzY4xAAN6ug==}
engines: {node: '>= 14'}
dev: false
/webidl-conversions@3.0.1: /webidl-conversions@3.0.1:
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}