diff --git a/apps/simple/pdf.ts b/apps/simple/pdf.ts index 73393581416a58ff35829c1eebef23d26cdd186b..d8fa2d44721542de9456ec83c363720b44e18d88 100644 --- a/apps/simple/pdf.ts +++ b/apps/simple/pdf.ts @@ -1,5 +1,5 @@ import fs from "fs/promises"; -import { Document, PDFReader, VectorStoreIndex } from "llamaindex"; +import { PDFReader, VectorStoreIndex } from "llamaindex"; async function main() { // Load PDF diff --git a/apps/simple/persist.ts b/apps/simple/persist.ts index 52e0e22be292c3eb30c42ea7b15764efeac73f69..5412a48029f6777529432aa3830f0ea160315e8e 100644 --- a/apps/simple/persist.ts +++ b/apps/simple/persist.ts @@ -1,5 +1,9 @@ import fs from "fs/promises"; -import { Document, VectorStoreIndex, storageContextFromDefaults } from "llamaindex"; +import { + Document, + VectorStoreIndex, + storageContextFromDefaults, +} from "llamaindex"; async function main() { // Load essay from abramov.txt in Node @@ -12,8 +16,12 @@ async function main() { const document = new Document({ text: essay }); // Split text and create embeddings. Store them in a VectorStoreIndex with persistence - const storageContext = await storageContextFromDefaults({ persistDir: "./storage" }); - const index = await VectorStoreIndex.fromDocuments([document], storageContext); + const storageContext = await storageContextFromDefaults({ + persistDir: "./storage", + }); + const index = await VectorStoreIndex.fromDocuments([document], { + storageContext, + }); // Query the index const queryEngine = index.asQueryEngine(); diff --git a/examples/pdf.ts b/examples/pdf.ts new file mode 100644 index 0000000000000000000000000000000000000000..d8fa2d44721542de9456ec83c363720b44e18d88 --- /dev/null +++ b/examples/pdf.ts @@ -0,0 +1,20 @@ +import fs from "fs/promises"; +import { PDFReader, VectorStoreIndex } from "llamaindex"; + +async function main() { + // Load PDF + const reader = new PDFReader(); + const documents = await reader.loadData("examples/brk-2022.pdf"); + + // Split text and create embeddings. Store them in a VectorStoreIndex + const index = await VectorStoreIndex.fromDocuments(documents); + + // Query the index + const queryEngine = index.asQueryEngine(); + const response = await queryEngine.query("What mistakes did they make?"); + + // Output response + console.log(response.toString()); +} + +main().catch(console.error); diff --git a/packages/core/package.json b/packages/core/package.json index f995d0a36bb7414a032e9df77c905f97b99a9711..2b063b81e070bea5c4ad70b403966f20ab3e8688 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -4,7 +4,7 @@ "dependencies": { "js-tiktoken": "^1.0.7", "lodash": "^4.17.21", - "openai": "^3.3.0", + "openai": "4.0.0-beta.6", "pdf-parse": "^1.1.1", "replicate": "^0.12.3", "tiktoken-node": "^0.0.6", diff --git a/packages/core/src/Embedding.ts b/packages/core/src/Embedding.ts index ec50ca4fa1efb268d252fd843fd32e0f256a62a3..27ba474e355208a30df5cbb3e97f125136172d8c 100644 --- a/packages/core/src/Embedding.ts +++ b/packages/core/src/Embedding.ts @@ -225,12 +225,12 @@ export class OpenAIEmbedding extends BaseEmbedding { input = input.replace(/\n/g, " "); //^ NOTE this performance helper is in the OpenAI python library but may not be in the JS library - const { data } = await this.session.openai.createEmbedding({ + const { data } = await this.session.openai.embeddings.create({ model: this.model, input, }); - return data.data[0].embedding; + return data[0].embedding; } async getTextEmbedding(text: string): Promise<number[]> { diff --git a/packages/core/src/callbacks/CallbackManager.ts b/packages/core/src/callbacks/CallbackManager.ts index a35e061c10a313b18a3503566d81d2dbdb04a6d0..820cb5681fc2d008dbc7e4661ec26c4deb483e5e 100644 --- a/packages/core/src/callbacks/CallbackManager.ts +++ b/packages/core/src/callbacks/CallbackManager.ts @@ -1,4 +1,3 @@ -import { ChatCompletionResponseMessageRoleEnum } from "openai"; import { NodeWithScore } from "../Node"; /* @@ -29,8 +28,8 @@ export interface StreamToken { choices: { index: number; delta: { - content?: string; - role?: ChatCompletionResponseMessageRoleEnum; + content?: string | null; + role?: "user" | "assistant" | "system" | "function"; }; finish_reason: string | null; }[]; diff --git a/packages/core/src/callbacks/utility/handleOpenAIStream.ts b/packages/core/src/callbacks/utility/handleOpenAIStream.ts index 83b742b1d4bb5cb79e4d49f8a76e17ca33a00485..5df2ee01701825c7f72eef5a57a2e445b6ac3434 100644 --- a/packages/core/src/callbacks/utility/handleOpenAIStream.ts +++ b/packages/core/src/callbacks/utility/handleOpenAIStream.ts @@ -1,13 +1,15 @@ +import { ChatCompletionChunk } from "openai/resources/chat"; import { globalsHelper } from "../../GlobalsHelper"; import { StreamCallbackResponse, Event } from "../CallbackManager"; -import { StreamToken } from "../CallbackManager"; +import { APIResponse } from "openai/core"; +import { Stream } from "openai/streaming"; export async function handleOpenAIStream({ response, onLLMStream, parentEvent, }: { - response: any; + response: APIResponse<Stream<ChatCompletionChunk>>; onLLMStream: (data: StreamCallbackResponse) => void; parentEvent?: Event; }): Promise<string> { @@ -15,50 +17,20 @@ export async function handleOpenAIStream({ parentEvent, type: "llmPredict", }); - const stream = __astreamCompletion(response.data as any); let index = 0; let cumulativeText = ""; - for await (const message of stream) { - const token: StreamToken = JSON.parse(message); - const { content = "", role = "assistant" } = token?.choices[0]?.delta ?? {}; + for await (const part of response) { + const { content = "", role = "assistant" } = part.choices[0].delta; + // ignore the first token if (!content && role === "assistant" && index === 0) { continue; } + cumulativeText += content; - onLLMStream?.({ event, index, token }); + onLLMStream?.({ event, index, token: part }); index++; } onLLMStream?.({ event, index, isDone: true }); return cumulativeText; } - -/* - sources: - - https://github.com/openai/openai-node/issues/18#issuecomment-1372047643 - - https://github.com/openai/openai-node/issues/18#issuecomment-1595805163 -*/ -async function* __astreamCompletion(data: string[]) { - yield* __alinesToText(__achunksToLines(data)); -} - -async function* __alinesToText(linesAsync: string | void | any) { - for await (const line of linesAsync) { - yield line.substring("data :".length); - } -} - -async function* __achunksToLines(chunksAsync: string[]) { - let previous = ""; - for await (const chunk of chunksAsync) { - const bufferChunk = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); - previous += bufferChunk; - let eolIndex; - while ((eolIndex = previous.indexOf("\n")) >= 0) { - const line = previous.slice(0, eolIndex + 1).trimEnd(); - if (line === "data: [DONE]") break; - if (line.startsWith("data: ")) yield line; - previous = previous.slice(eolIndex + 1); - } - } -} diff --git a/packages/core/src/index.ts b/packages/core/src/index.ts index 1a5aada1961ff418c6ce7489f3ca0a7dbaf62c2b..449439a0638292f7f26ccc15a0017f9d7dc06673 100644 --- a/packages/core/src/index.ts +++ b/packages/core/src/index.ts @@ -5,7 +5,6 @@ export * from "./GlobalsHelper"; export * from "./llm/LLM"; export * from "./Node"; export * from "./NodeParser"; -// export * from "./openai"; Don't export OpenAIWrapper export * from "./OutputParser"; export * from "./Prompt"; export * from "./QuestionGenerator"; diff --git a/packages/core/src/llm/LLM.ts b/packages/core/src/llm/LLM.ts index 9caa2cbe60bfadb6acacdde1cc4c43fa7d9b7e4f..57360d681281b1ead6e64920013144f923c3f8d2 100644 --- a/packages/core/src/llm/LLM.ts +++ b/packages/core/src/llm/LLM.ts @@ -1,11 +1,7 @@ import { CallbackManager, Event } from "../callbacks/CallbackManager"; import { handleOpenAIStream } from "../callbacks/utility/handleOpenAIStream"; -import { - ChatCompletionRequestMessageRoleEnum, - CreateChatCompletionRequest, - OpenAISession, - getOpenAISession, -} from "./openai"; +import { OpenAISession, getOpenAISession } from "./openai"; +import OpenAILLM from "openai"; import { ReplicateSession } from "./replicate"; type MessageType = "user" | "assistant" | "system" | "generic" | "function"; @@ -84,7 +80,7 @@ export class OpenAI implements LLM { mapMessageType( messageType: MessageType - ): ChatCompletionRequestMessageRoleEnum { + ): "user" | "assistant" | "system" | "function" { switch (messageType) { case "user": return "user"; @@ -103,7 +99,7 @@ export class OpenAI implements LLM { messages: ChatMessage[], parentEvent?: Event ): Promise<ChatResponse> { - const baseRequestParams: CreateChatCompletionRequest = { + const baseRequestParams: OpenAILLM.Chat.CompletionCreateParams = { model: this.model, temperature: this.temperature, max_tokens: this.maxTokens, @@ -116,13 +112,12 @@ export class OpenAI implements LLM { if (this.callbackManager?.onLLMStream) { // Streaming - const response = await this.session.openai.createChatCompletion( - { - ...baseRequestParams, - stream: true, - }, - { responseType: "stream" } - ); + const response = await this.session.openai.chat.completions.create({ + ...baseRequestParams, + stream: true, + }); + + response.controller; const fullResponse = await handleOpenAIStream({ response, @@ -132,11 +127,11 @@ export class OpenAI implements LLM { return { message: { content: fullResponse, role: "assistant" } }; } else { // Non-streaming - const response = await this.session.openai.createChatCompletion( + const response = await this.session.openai.chat.completions.create( baseRequestParams ); - const content = response.data.choices[0].message?.content ?? ""; + const content = response.choices[0].message?.content ?? ""; return { message: { content, role: "assistant" } }; } } diff --git a/packages/core/src/llm/fetchAdapter.d.ts b/packages/core/src/llm/fetchAdapter.d.ts deleted file mode 100644 index dbec1d1d938cbedbf37cb5e62bf960f21aa7d1be..0000000000000000000000000000000000000000 --- a/packages/core/src/llm/fetchAdapter.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { AxiosRequestConfig, AxiosPromise } from "axios"; - -export default function fetchAdapter(config: AxiosRequestConfig): AxiosPromise; diff --git a/packages/core/src/llm/fetchAdapter.js b/packages/core/src/llm/fetchAdapter.js deleted file mode 100644 index 9b34eca10c9460112b45a62ac574f60c1a7b9000..0000000000000000000000000000000000000000 --- a/packages/core/src/llm/fetchAdapter.js +++ /dev/null @@ -1,250 +0,0 @@ -// Adapted from https://github.com/vespaiach/axios-fetch-adapter -// Missing type: module - -// MIT License - -// Copyright (c) 2021 Vespaiach - -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: - -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. - -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. - -const axios = require("axios"); -const settle = require("axios/lib/core/settle"); -const buildURL = require("axios/lib/helpers/buildURL"); -const buildFullPath = require("axios/lib/core/buildFullPath"); -const { - isUndefined, - isStandardBrowserEnv, - isFormData, -} = require("axios/lib/utils"); - -/** - * - Create a request object - * - Get response body - * - Check if timeout - */ -module.exports = async function fetchAdapter(config) { - const request = createRequest(config); - const promiseChain = [getResponse(request, config)]; - - if (config.timeout && config.timeout > 0) { - promiseChain.push( - new Promise((res) => { - setTimeout(() => { - const message = config.timeoutErrorMessage - ? config.timeoutErrorMessage - : "timeout of " + config.timeout + "ms exceeded"; - res(createError(message, config, "ECONNABORTED", request)); - }, config.timeout); - }) - ); - } - - const data = await Promise.race(promiseChain); - return new Promise((resolve, reject) => { - if (data instanceof Error) { - reject(data); - } else { - Object.prototype.toString.call(config.settle) === "[object Function]" - ? config.settle(resolve, reject, data) - : settle(resolve, reject, data); - } - }); -}; - -/** - * Fetch API stage two is to get response body. This funtion tries to retrieve - * response body based on response's type - */ -async function getResponse(request, config) { - let stageOne; - try { - stageOne = await fetch(request); - } catch (e) { - return createError("Network Error", config, "ERR_NETWORK", request); - } - - const response = { - ok: stageOne.ok, - status: stageOne.status, - statusText: stageOne.statusText, - headers: new Headers(stageOne.headers), // Make a copy of headers - config: config, - request, - }; - - if (stageOne.status >= 200 && stageOne.status !== 204) { - switch (config.responseType) { - case "arraybuffer": - response.data = await stageOne.arrayBuffer(); - break; - case "blob": - response.data = await stageOne.blob(); - break; - case "json": - response.data = await stageOne.json(); - break; - case "formData": - response.data = await stageOne.formData(); - break; - default: - response.data = await stageOne.text(); - break; - } - } - - return response; -} - -/** - * This function will create a Request object based on configuration's axios - */ -function createRequest(config) { - const headers = new Headers(config.headers); - - // HTTP basic authentication - if (config.auth) { - const username = config.auth.username || ""; - const password = config.auth.password - ? decodeURI(encodeURIComponent(config.auth.password)) - : ""; - headers.set("Authorization", `Basic ${btoa(username + ":" + password)}`); - } - - const method = config.method.toUpperCase(); - const options = { - headers: headers, - method, - }; - if (method !== "GET" && method !== "HEAD") { - options.body = config.data; - - // In these cases the browser will automatically set the correct Content-Type, - // but only if that header hasn't been set yet. So that's why we're deleting it. - if (isFormData(options.body) && isStandardBrowserEnv()) { - headers.delete("Content-Type"); - } - } - if (config.mode) { - options.mode = config.mode; - } - if (config.cache) { - options.cache = config.cache; - } - if (config.integrity) { - options.integrity = config.integrity; - } - if (config.redirect) { - options.redirect = config.redirect; - } - if (config.referrer) { - options.referrer = config.referrer; - } - // This config is similar to XHR’s withCredentials flag, but with three available values instead of two. - // So if withCredentials is not set, default value 'same-origin' will be used - if (!isUndefined(config.withCredentials)) { - options.credentials = config.withCredentials ? "include" : "omit"; - } - - const fullPath = buildFullPath(config.baseURL, config.url); - const url = buildURL(fullPath, config.params, config.paramsSerializer); - - // Expected browser to throw error if there is any wrong configuration value - return new Request(url, options); -} - -/** - * Note: - * - * From version >= 0.27.0, createError function is replaced by AxiosError class. - * So I copy the old createError function here for backward compatible. - * - * - * - * Create an Error with the specified message, config, error code, request and response. - * - * @param {string} message The error message. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The created error. - */ -function createError(message, config, code, request, response) { - if (axios.AxiosError && typeof axios.AxiosError === "function") { - return new axios.AxiosError( - message, - axios.AxiosError[code], - config, - request, - response - ); - } - - var error = new Error(message); - return enhanceError(error, config, code, request, response); -} - -/** - * - * Note: - * - * This function is for backward compatible. - * - * - * Update an Error with the specified config, error code, and response. - * - * @param {Error} error The error to update. - * @param {Object} config The config. - * @param {string} [code] The error code (for example, 'ECONNABORTED'). - * @param {Object} [request] The request. - * @param {Object} [response] The response. - * @returns {Error} The error. - */ -function enhanceError(error, config, code, request, response) { - error.config = config; - if (code) { - error.code = code; - } - - error.request = request; - error.response = response; - error.isAxiosError = true; - - error.toJSON = function toJSON() { - return { - // Standard - message: this.message, - name: this.name, - // Microsoft - description: this.description, - number: this.number, - // Mozilla - fileName: this.fileName, - lineNumber: this.lineNumber, - columnNumber: this.columnNumber, - stack: this.stack, - // Axios - config: this.config, - code: this.code, - status: - this.response && this.response.status ? this.response.status : null, - }; - }; - return error; -} diff --git a/packages/core/src/llm/openai.ts b/packages/core/src/llm/openai.ts index d94422d3e56e8c1aa19017fb79c19428fc01bcbc..269c6b8a3a4eda307fbfba8e268e8fb45a1c6454 100644 --- a/packages/core/src/llm/openai.ts +++ b/packages/core/src/llm/openai.ts @@ -1,78 +1,8 @@ -import { - CreateCompletionRequest, - OpenAIApi, - CreateCompletionResponse, - CreateChatCompletionRequest, - CreateChatCompletionResponse, - CreateEmbeddingRequest, - CreateEmbeddingResponse, - CreateModerationRequest, - CreateModerationResponse, - CreateEditRequest, - CreateEditResponse, - Configuration, -} from "openai"; -import { AxiosRequestConfig, AxiosResponse } from "axios"; -import fetchAdapter from "./fetchAdapter"; - -/** - * OpenAIWrapper is a wrapper around the OpenAI API that uses fetch instead of axios - */ -export class OpenAIWrapper extends OpenAIApi { - createCompletion( - createCompletionRequest: CreateCompletionRequest, - options?: AxiosRequestConfig - ): Promise<AxiosResponse<CreateCompletionResponse, any>> { - return super.createCompletion(createCompletionRequest, { - adapter: fetchAdapter, - ...options, - }); - } - - createChatCompletion( - createChatCompletionRequest: CreateChatCompletionRequest, - options?: AxiosRequestConfig<any> | undefined - ): Promise<AxiosResponse<CreateChatCompletionResponse, any>> { - return super.createChatCompletion(createChatCompletionRequest, { - adapter: fetchAdapter, - ...options, - }); - } - - createEmbedding( - createEmbeddingRequest: CreateEmbeddingRequest, - options?: AxiosRequestConfig<any> | undefined - ): Promise<AxiosResponse<CreateEmbeddingResponse, any>> { - return super.createEmbedding(createEmbeddingRequest, { - adapter: fetchAdapter, - ...options, - }); - } - - createModeration( - createModerationRequest: CreateModerationRequest, - options?: AxiosRequestConfig<any> | undefined - ): Promise<AxiosResponse<CreateModerationResponse, any>> { - return super.createModeration(createModerationRequest, { - adapter: fetchAdapter, - ...options, - }); - } - - createEdit( - createEditRequest: CreateEditRequest, - options?: AxiosRequestConfig<any> | undefined - ): Promise<AxiosResponse<CreateEditResponse, any>> { - return super.createEdit(createEditRequest, { - adapter: fetchAdapter, - ...options, - }); - } -} +import OpenAI, { ClientOptions } from "openai"; export class OpenAISession { openAIKey: string | null = null; - openai: OpenAIWrapper; + openai: OpenAI; constructor(openAIKey: string | null = null) { if (openAIKey) { @@ -83,11 +13,11 @@ export class OpenAISession { throw new Error("Set OpenAI Key in OPENAI_API_KEY env variable"); } - const configuration = new Configuration({ + const configuration: ClientOptions = { apiKey: this.openAIKey, - }); + }; - this.openai = new OpenAIWrapper(configuration); + this.openai = new OpenAI(configuration); } } @@ -100,5 +30,3 @@ export function getOpenAISession(openAIKey: string | null = null) { return defaultOpenAISession; } - -export * from "openai"; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b580e2129208351d25886f8c7bdbb6dda0d9455..f3a77639d144185342730543a8ec6b81cacadd99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: devDependencies: '@turbo/gen': specifier: ^1.10.9 - version: 1.10.9(@types/node@20.4.4)(typescript@5.1.6) + version: 1.10.9(@types/node@18.17.0)(typescript@4.9.5) '@types/jest': specifier: ^29.5.3 version: 29.5.3 @@ -29,7 +29,7 @@ importers: version: 8.0.3 jest: specifier: ^29.6.1 - version: 29.6.1(@types/node@20.4.4) + version: 29.6.1(@types/node@18.17.0) prettier: specifier: ^2.8.8 version: 2.8.8 @@ -38,7 +38,7 @@ importers: version: 0.3.0(prettier@2.8.8) ts-jest: specifier: ^29.1.1 - version: 29.1.1(@babel/core@7.22.9)(jest@29.6.1)(typescript@5.1.6) + version: 29.1.1(@babel/core@7.22.9)(jest@29.6.1)(typescript@4.9.5) turbo: specifier: ^1.10.11 version: 1.10.11 @@ -117,8 +117,8 @@ importers: specifier: ^4.17.21 version: 4.17.21 openai: - specifier: ^3.3.0 - version: 3.3.0 + specifier: 4.0.0-beta.6 + version: 4.0.0-beta.6 pdf-parse: specifier: ^1.1.1 version: 1.1.1 @@ -155,22 +155,22 @@ importers: version: 1.2.0 tsup: specifier: ^7.1.0 - version: 7.1.0(typescript@5.1.6) + version: 7.1.0(typescript@4.9.5) packages/eslint-config-custom: dependencies: eslint-config-next: specifier: ^13.4.1 - version: 13.4.1(eslint@8.45.0)(typescript@5.1.6) + version: 13.4.1(eslint@7.32.0)(typescript@4.9.5) eslint-config-prettier: specifier: ^8.3.0 - version: 8.8.0(eslint@8.45.0) + version: 8.8.0(eslint@7.32.0) eslint-config-turbo: specifier: ^1.9.3 - version: 1.9.3(eslint@8.45.0) + version: 1.9.3(eslint@7.32.0) eslint-plugin-react: specifier: 7.28.0 - version: 7.28.0(eslint@8.45.0) + version: 7.28.0(eslint@7.32.0) devDependencies: next: specifier: ^13.4.10 @@ -2450,7 +2450,7 @@ packages: peerDependencies: react: '*' dependencies: - '@types/react': 18.2.15 + '@types/react': 18.2.16 prop-types: 15.8.1 react: 17.0.2 @@ -2899,21 +2899,6 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.45.0): - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - dependencies: - eslint: 8.45.0 - eslint-visitor-keys: 3.4.1 - dev: false - - /@eslint-community/regexpp@4.6.1: - resolution: {integrity: sha512-O7x6dMstWLn2ktjcoiNLDkAGG2EjveHL+Vvc+n0fXumkJYAcSqcVYKtwDU+hDZ0uDUsnUagSYaZrOLAYE8un1A==} - engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - dev: false - /@eslint/eslintrc@0.4.3: resolution: {integrity: sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -2930,28 +2915,6 @@ packages: transitivePeerDependencies: - supports-color - /@eslint/eslintrc@2.1.0: - resolution: {integrity: sha512-Lj7DECXqIVCqnqjjHMPna4vn6GJcMgul/wuS0je9OZ9gsL0zzDpKPVtcG1HaDVc+9y+qgXneTeUMbCqXJNpH1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - ajv: 6.12.6 - debug: 4.3.4 - espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 - import-fresh: 3.3.0 - js-yaml: 4.1.0 - minimatch: 3.1.2 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: false - - /@eslint/js@8.44.0: - resolution: {integrity: sha512-Ag+9YM4ocKQx9AarydN0KY2j0ErMHNIocPDrVo8zAE44xLTjEtz81OdR68/cydGtk6m6jDb5Za3r2useMzYmSw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - /@hapi/hoek@9.3.0: resolution: {integrity: sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ==} @@ -2960,17 +2923,6 @@ packages: dependencies: '@hapi/hoek': 9.3.0 - /@humanwhocodes/config-array@0.11.10: - resolution: {integrity: sha512-KVVjQmNUepDVGXNuoRRdmmEjruj0KfiGSbS8LVc12LMsWDQzRXJ0qdhN8L8uUigKpfEHRhlaQFY0ib1tnUbNeQ==} - engines: {node: '>=10.10.0'} - dependencies: - '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 - minimatch: 3.1.2 - transitivePeerDependencies: - - supports-color - dev: false - /@humanwhocodes/config-array@0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} @@ -2981,11 +2933,6 @@ packages: transitivePeerDependencies: - supports-color - /@humanwhocodes/module-importer@1.0.1: - resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} - engines: {node: '>=12.22'} - dev: false - /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} @@ -3010,7 +2957,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 jest-message-util: 29.6.1 jest-util: 29.6.1 @@ -3065,7 +3012,7 @@ packages: dependencies: '@jest/fake-timers': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 jest-mock: 29.6.1 dev: true @@ -3092,7 +3039,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@sinonjs/fake-timers': 10.3.0 - '@types/node': 20.4.4 + '@types/node': 18.17.0 jest-message-util: 29.6.1 jest-mock: 29.6.1 jest-util: 29.6.1 @@ -3125,7 +3072,7 @@ packages: '@jest/transform': 29.6.1 '@jest/types': 29.6.1 '@jridgewell/trace-mapping': 0.3.18 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 @@ -3689,7 +3636,7 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@turbo/gen@1.10.9(@types/node@20.4.4)(typescript@5.1.6): + /@turbo/gen@1.10.9(@types/node@18.17.0)(typescript@4.9.5): resolution: {integrity: sha512-EQdg4NqN032+o2Wgj9lg49puijGc4tbgKjGjDOi8+rN/RqE9CUKxKtrfaTGdDjfdC1Uy8FaaKk7y1zYK3zIojg==} hasBin: true dependencies: @@ -3700,7 +3647,7 @@ packages: minimatch: 9.0.3 node-plop: 0.26.3 semver: 7.5.4 - ts-node: 10.9.1(@types/node@20.4.4)(typescript@5.1.6) + ts-node: 10.9.1(@types/node@18.17.0)(typescript@4.9.5) update-check: 1.5.4 validate-npm-package-name: 5.0.0 transitivePeerDependencies: @@ -3743,26 +3690,26 @@ packages: resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} dependencies: '@types/connect': 3.4.35 - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/bonjour@3.5.10: resolution: {integrity: sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/connect-history-api-fallback@1.5.0: resolution: {integrity: sha512-4x5FkPpLipqwthjPsF7ZRbOv3uoLUFkTA9G9v583qi4pACvq0uTELrB8OLUzPWUI4IJIyvM85vzkV1nyiI2Lig==} dependencies: '@types/express-serve-static-core': 4.17.35 - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/connect@3.4.35: resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/eslint-scope@3.7.4: @@ -3783,7 +3730,7 @@ packages: /@types/express-serve-static-core@4.17.35: resolution: {integrity: sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 '@types/qs': 6.9.7 '@types/range-parser': 1.2.4 '@types/send': 0.17.1 @@ -3802,13 +3749,13 @@ packages: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: true /@types/graceful-fs@4.1.6: resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: true /@types/hast@2.3.5: @@ -3831,7 +3778,7 @@ packages: /@types/http-proxy@1.17.11: resolution: {integrity: sha512-HC8G7c1WmaF2ekqpnFq626xd3Zz0uvaqFmBJNRZCGEZCXkvSdJoNFn/8Ygbd9fKNQj8UzLdCETaI0UWPAjK7IA==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/inquirer@6.5.0: @@ -3877,7 +3824,7 @@ packages: /@types/keyv@3.1.4: resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/lodash@4.14.195: @@ -3906,6 +3853,13 @@ packages: resolution: {integrity: sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==} dev: false + /@types/node-fetch@2.6.4: + resolution: {integrity: sha512-1ZX9fcN4Rvkvgv4E6PAY5WXUFWFcRWxZa3EW83UjycOB9ljJCedb2CupIP4RZMEwF/M3eTcCihbBRgwtGbg5Rg==} + dependencies: + '@types/node': 18.17.0 + form-data: 3.0.1 + dev: false + /@types/node@12.20.55: resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} dev: false @@ -3916,7 +3870,6 @@ packages: /@types/node@18.17.0: resolution: {integrity: sha512-GXZxEtOxYGFchyUzxvKI14iff9KZ2DI+A6a37o6EQevtg6uO9t+aUZKcaC1Te5Ng1OnLM7K9NVVj+FbecD9cJg==} - dev: true /@types/node@18.6.0: resolution: {integrity: sha512-WZ/6I1GL0DNAo4bb01lGGKTHH8BHJyECepf11kWONg3OJoHq2WYOm16Es1V54Er7NTUXsbDCpKRKdmBc4X2xhA==} @@ -3974,7 +3927,7 @@ packages: resolution: {integrity: sha512-jGjmu/ZqS7FjSH6owMcD5qpq19+1RS9DeVRqfl1FeBMxTDQAGwlMWOcs52NDoXaNKyG3d1cYQFMs9rCrb88o9Q==} dependencies: '@types/history': 4.7.11 - '@types/react': 18.2.15 + '@types/react': 18.2.16 /@types/react@18.2.15: resolution: {integrity: sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==} @@ -3989,12 +3942,11 @@ packages: '@types/prop-types': 15.7.5 '@types/scheduler': 0.16.3 csstype: 3.1.2 - dev: false /@types/responselike@1.0.0: resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/retry@0.12.0: @@ -4004,7 +3956,7 @@ packages: /@types/sax@1.2.4: resolution: {integrity: sha512-pSAff4IAxJjfAXUG6tFkO7dsSbTmf8CtUpfhhZ5VhkRpC4628tJhh3+V6H1E+/Gs9piSzYKT5yzHO5M4GG9jkw==} dependencies: - '@types/node': 17.0.45 + '@types/node': 18.17.0 dev: false /@types/scheduler@0.16.3: @@ -4018,7 +3970,7 @@ packages: resolution: {integrity: sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==} dependencies: '@types/mime': 1.3.2 - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/serve-index@1.9.1: @@ -4032,13 +3984,13 @@ packages: dependencies: '@types/http-errors': 2.0.1 '@types/mime': 3.0.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/sockjs@0.3.33: resolution: {integrity: sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/stack-utils@2.0.1: @@ -4048,7 +4000,7 @@ packages: /@types/through@0.0.30: resolution: {integrity: sha512-FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: true /@types/unist@2.0.7: @@ -4062,7 +4014,7 @@ packages: /@types/ws@8.5.5: resolution: {integrity: sha512-lwhs8hktwxSjf9UaZ9tG5M03PGogvFaH8gUgLNbN9HKIg0dvv6q+gkSuJ8HN4/VbyxkuLzCjlN7GquQ0gUJfIg==} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 dev: false /@types/yargs-parser@21.0.0: @@ -4073,7 +4025,7 @@ packages: dependencies: '@types/yargs-parser': 21.0.0 - /@typescript-eslint/parser@5.59.2(eslint@8.45.0)(typescript@5.1.6): + /@typescript-eslint/parser@5.59.2(eslint@7.32.0)(typescript@4.9.5): resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4085,10 +4037,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.59.2 '@typescript-eslint/types': 5.59.2 - '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.1.6) + '@typescript-eslint/typescript-estree': 5.59.2(typescript@4.9.5) debug: 4.3.4 - eslint: 8.45.0 - typescript: 5.1.6 + eslint: 7.32.0 + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: false @@ -4106,7 +4058,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /@typescript-eslint/typescript-estree@5.59.2(typescript@5.1.6): + /@typescript-eslint/typescript-estree@5.59.2(typescript@4.9.5): resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -4121,8 +4073,8 @@ packages: globby: 11.1.0 is-glob: 4.0.3 semver: 7.5.4 - tsutils: 3.21.0(typescript@5.1.6) - typescript: 5.1.6 + tsutils: 3.21.0(typescript@4.9.5) + typescript: 4.9.5 transitivePeerDependencies: - supports-color dev: false @@ -4232,6 +4184,13 @@ packages: /@xtuc/long@4.2.2: resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + /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: resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} engines: {node: '>= 0.6'} @@ -4254,14 +4213,6 @@ packages: dependencies: acorn: 7.4.1 - /acorn-jsx@5.3.2(acorn@8.10.0): - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} - peerDependencies: - acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - dependencies: - acorn: 8.10.0 - dev: false - /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} @@ -4281,6 +4232,17 @@ packages: engines: {node: '>= 10.0.0'} dev: false + /agentkeepalive@4.3.0: + resolution: {integrity: sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==} + engines: {node: '>= 8.0.0'} + dependencies: + debug: 4.3.4 + depd: 2.0.0 + humanize-ms: 1.2.1 + transitivePeerDependencies: + - supports-color + dev: false + /aggregate-error@3.1.0: resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} engines: {node: '>=8'} @@ -4594,6 +4556,7 @@ packages: follow-redirects: 1.15.2 transitivePeerDependencies: - debug + dev: true /axobject-query@3.1.1: resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} @@ -4753,6 +4716,10 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + /base-64@0.1.0: + resolution: {integrity: sha512-Y5gU45svrR5tI2Vt/X9GPd3L0HNIKzGu202EjxrXMpuc2V2CiKgemAbUUsqYmZJvPtCXoUKjNZwBJzsNScUbXA==} + dev: false + /base16@1.0.0: resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} dev: false @@ -5180,6 +5147,10 @@ packages: /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + /charenc@0.0.2: + resolution: {integrity: sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==} + dev: false + /cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: @@ -5637,6 +5608,10 @@ packages: shebang-command: 2.0.0 which: 2.0.2 + /crypt@0.0.2: + resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} + dev: false + /crypto-browserify@3.12.0: resolution: {integrity: sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==} dependencies: @@ -6124,6 +6099,13 @@ packages: randombytes: 2.1.0 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: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -6484,7 +6466,7 @@ packages: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-next@13.4.1(eslint@8.45.0)(typescript@5.1.6): + /eslint-config-next@13.4.1(eslint@7.32.0)(typescript@4.9.5): resolution: {integrity: sha512-ajuxjCkW1hvirr0EQZb3/B/bFH52Z7CT89uCtTcICFL9l30i5c8hN4p0LXvTjdOXNPV5fEDcxBgGHgXdzTj1/A==} peerDependencies: eslint: ^7.23.0 || ^8.0.0 @@ -6495,36 +6477,36 @@ packages: dependencies: '@next/eslint-plugin-next': 13.4.1 '@rushstack/eslint-patch': 1.2.0 - '@typescript-eslint/parser': 5.59.2(eslint@8.45.0)(typescript@5.1.6) - eslint: 8.45.0 + '@typescript-eslint/parser': 5.59.2(eslint@7.32.0)(typescript@4.9.5) + eslint: 7.32.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-jsx-a11y: 6.7.1(eslint@8.45.0) - eslint-plugin-react: 7.32.2(eslint@8.45.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.45.0) - typescript: 5.1.6 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@7.32.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0) + eslint-plugin-jsx-a11y: 6.7.1(eslint@7.32.0) + eslint-plugin-react: 7.32.2(eslint@7.32.0) + eslint-plugin-react-hooks: 4.6.0(eslint@7.32.0) + typescript: 4.9.5 transitivePeerDependencies: - eslint-import-resolver-webpack - supports-color dev: false - /eslint-config-prettier@8.8.0(eslint@8.45.0): + /eslint-config-prettier@8.8.0(eslint@7.32.0): resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.45.0 + eslint: 7.32.0 dev: false - /eslint-config-turbo@1.9.3(eslint@8.45.0): + /eslint-config-turbo@1.9.3(eslint@7.32.0): resolution: {integrity: sha512-QG6jxFQkrGSpQqlFKefPdtgUfr20EbU0s4tGGIuGFOcPuJEdsY6VYZpZUxNJvmMcTGqPgMyOPjAFBKhy/DPHLA==} peerDependencies: eslint: '>6.6.0' dependencies: - eslint: 8.45.0 - eslint-plugin-turbo: 1.9.3(eslint@8.45.0) + eslint: 7.32.0 + eslint-plugin-turbo: 1.9.3(eslint@7.32.0) dev: false /eslint-import-resolver-node@0.3.7: @@ -6537,7 +6519,7 @@ packages: - supports-color dev: false - /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0): + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@7.32.0): resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -6546,9 +6528,9 @@ packages: dependencies: debug: 4.3.4 enhanced-resolve: 5.13.0 - eslint: 8.45.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) - eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint: 7.32.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0) get-tsconfig: 4.5.0 globby: 13.1.4 is-core-module: 2.12.0 @@ -6561,7 +6543,7 @@ packages: - supports-color dev: false - /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0): resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: @@ -6582,16 +6564,16 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.59.2(eslint@7.32.0)(typescript@4.9.5) debug: 3.2.7 - eslint: 8.45.0 + eslint: 7.32.0 eslint-import-resolver-node: 0.3.7 - eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@8.45.0) + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-plugin-import@2.27.5)(eslint@7.32.0) transitivePeerDependencies: - supports-color dev: false - /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0): + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0): resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} engines: {node: '>=4'} peerDependencies: @@ -6601,15 +6583,15 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 5.59.2(eslint@8.45.0)(typescript@5.1.6) + '@typescript-eslint/parser': 5.59.2(eslint@7.32.0)(typescript@4.9.5) array-includes: 3.1.6 array.prototype.flat: 1.3.1 array.prototype.flatmap: 1.3.1 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 7.32.0 eslint-import-resolver-node: 0.3.7 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.45.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@7.32.0) has: 1.0.3 is-core-module: 2.12.0 is-glob: 4.0.3 @@ -6624,7 +6606,7 @@ packages: - supports-color dev: false - /eslint-plugin-jsx-a11y@6.7.1(eslint@8.45.0): + /eslint-plugin-jsx-a11y@6.7.1(eslint@7.32.0): resolution: {integrity: sha512-63Bog4iIethyo8smBklORknVjB0T2dwB8Mr/hIC+fBS0uyHdYYpzM/Ed+YC8VxTjlXHEWFOdmgwcDn1U2L9VCA==} engines: {node: '>=4.0'} peerDependencies: @@ -6639,7 +6621,7 @@ packages: axobject-query: 3.1.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - eslint: 8.45.0 + eslint: 7.32.0 has: 1.0.3 jsx-ast-utils: 3.3.3 language-tags: 1.0.5 @@ -6649,16 +6631,16 @@ packages: semver: 6.3.0 dev: false - /eslint-plugin-react-hooks@4.6.0(eslint@8.45.0): + /eslint-plugin-react-hooks@4.6.0(eslint@7.32.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.45.0 + eslint: 7.32.0 dev: false - /eslint-plugin-react@7.28.0(eslint@8.45.0): + /eslint-plugin-react@7.28.0(eslint@7.32.0): resolution: {integrity: sha512-IOlFIRHzWfEQQKcAD4iyYDndHwTQiCMcJVJjxempf203jnNLUnW34AXLrV33+nEXoifJE2ZEGmcjKPL8957eSw==} engines: {node: '>=4'} peerDependencies: @@ -6667,7 +6649,7 @@ packages: array-includes: 3.1.6 array.prototype.flatmap: 1.3.1 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 7.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -6681,7 +6663,7 @@ packages: string.prototype.matchall: 4.0.8 dev: false - /eslint-plugin-react@7.32.2(eslint@8.45.0): + /eslint-plugin-react@7.32.2(eslint@7.32.0): resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: @@ -6691,7 +6673,7 @@ packages: array.prototype.flatmap: 1.3.1 array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.45.0 + eslint: 7.32.0 estraverse: 5.3.0 jsx-ast-utils: 3.3.3 minimatch: 3.1.2 @@ -6705,12 +6687,12 @@ packages: string.prototype.matchall: 4.0.8 dev: false - /eslint-plugin-turbo@1.9.3(eslint@8.45.0): + /eslint-plugin-turbo@1.9.3(eslint@7.32.0): resolution: {integrity: sha512-ZsRtksdzk3v+z5/I/K4E50E4lfZ7oYmLX395gkrUMBz4/spJlYbr+GC8hP9oVNLj9s5Pvnm9rLv/zoj5PVYaVw==} peerDependencies: eslint: '>6.6.0' dependencies: - eslint: 8.45.0 + eslint: 7.32.0 dev: false /eslint-scope@5.1.1: @@ -6720,14 +6702,6 @@ packages: esrecurse: 4.3.0 estraverse: 4.3.0 - /eslint-scope@7.2.1: - resolution: {integrity: sha512-CvefSOsDdaYYvxChovdrPo/ZGt8d5lrJWleAc1diXRKhHGiTYEI26cvo8Kle/wGnsizoCJjK73FMg1/IkIwiNA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - esrecurse: 4.3.0 - estraverse: 5.3.0 - dev: false - /eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -6747,11 +6721,6 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: false - /eslint-visitor-keys@3.4.1: - resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dev: false - /eslint@7.32.0: resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} engines: {node: ^10.12.0 || >=12.0.0} @@ -6800,52 +6769,6 @@ packages: transitivePeerDependencies: - supports-color - /eslint@8.45.0: - resolution: {integrity: sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - hasBin: true - dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.45.0) - '@eslint-community/regexpp': 4.6.1 - '@eslint/eslintrc': 2.1.0 - '@eslint/js': 8.44.0 - '@humanwhocodes/config-array': 0.11.10 - '@humanwhocodes/module-importer': 1.0.1 - '@nodelib/fs.walk': 1.2.8 - ajv: 6.12.6 - chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4 - doctrine: 3.0.0 - escape-string-regexp: 4.0.0 - eslint-scope: 7.2.1 - eslint-visitor-keys: 3.4.1 - espree: 9.6.1 - esquery: 1.5.0 - esutils: 2.0.3 - fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 - find-up: 5.0.0 - glob-parent: 6.0.2 - globals: 13.20.0 - graphemer: 1.4.0 - ignore: 5.2.4 - imurmurhash: 0.1.4 - is-glob: 4.0.3 - is-path-inside: 3.0.3 - js-yaml: 4.1.0 - json-stable-stringify-without-jsonify: 1.0.1 - levn: 0.4.1 - lodash.merge: 4.6.2 - minimatch: 3.1.2 - natural-compare: 1.4.0 - optionator: 0.9.3 - strip-ansi: 6.0.1 - text-table: 0.2.0 - transitivePeerDependencies: - - supports-color - dev: false - /espree@7.3.1: resolution: {integrity: sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==} engines: {node: ^10.12.0 || >=12.0.0} @@ -6854,15 +6777,6 @@ packages: acorn-jsx: 5.3.2(acorn@7.4.1) eslint-visitor-keys: 1.3.0 - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - acorn: 8.10.0 - acorn-jsx: 5.3.2(acorn@8.10.0) - eslint-visitor-keys: 3.4.1 - dev: false - /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} @@ -6906,10 +6820,15 @@ packages: resolution: {integrity: sha512-EzV94NYKoO09GLXGjXj9JIlXijVck4ONSr5wiCWDvhsvj5jxSrzTmRU/9C1DyB6uToszLs8aifA6NQ7lEQdvFw==} engines: {node: '>= 0.8'} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 require-like: 0.1.2 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: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false @@ -7275,8 +7194,12 @@ packages: webpack: 5.88.2 dev: false - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + /form-data-encoder@1.7.2: + resolution: {integrity: sha512-qfqtYan3rxrnCk1VYaA4H+Ms9xdpPqvLZa6xmMgFvhO32x7/3J/ExcTd6qpxM0vH2GdMI+poehyBZvqfMTto8A==} + dev: false + + /form-data@3.0.1: + resolution: {integrity: sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==} engines: {node: '>= 6'} dependencies: asynckit: 0.4.0 @@ -7284,6 +7207,14 @@ packages: mime-types: 2.1.35 dev: false + /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 + /forwarded@0.2.0: resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==} engines: {node: '>= 0.6'} @@ -7601,10 +7532,6 @@ packages: resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: false - /graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - dev: false - /gray-matter@4.0.3: resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==} engines: {node: '>=6.0'} @@ -7957,6 +7884,12 @@ packages: engines: {node: '>=14.18.0'} dev: false + /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: resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} engines: {node: '>=14'} @@ -8179,6 +8112,10 @@ packages: has-tostringtag: 1.0.0 dev: false + /is-buffer@1.1.6: + resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==} + dev: false + /is-buffer@2.0.5: resolution: {integrity: sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==} engines: {node: '>=4'} @@ -8579,7 +8516,7 @@ packages: '@jest/expect': 29.6.1 '@jest/test-result': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 co: 4.6.0 dedent: 0.7.0 @@ -8599,7 +8536,7 @@ packages: - supports-color dev: true - /jest-cli@29.6.1(@types/node@20.4.4): + /jest-cli@29.6.1(@types/node@18.17.0): resolution: {integrity: sha512-607dSgTA4ODIN6go9w6xY3EYkyPFGicx51a69H7yfvt7lN53xNswEVLovq+E77VsTRi5fWprLH0yl4DJgE8Ing==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -8616,7 +8553,7 @@ packages: exit: 0.1.2 graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 29.6.1(@types/node@20.4.4) + jest-config: 29.6.1(@types/node@18.17.0) jest-util: 29.6.1 jest-validate: 29.6.1 prompts: 2.4.2 @@ -8627,6 +8564,45 @@ packages: - ts-node dev: true + /jest-config@29.6.1(@types/node@18.17.0): + resolution: {integrity: sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + '@types/node': '*' + ts-node: '>=9.0.0' + peerDependenciesMeta: + '@types/node': + optional: true + ts-node: + optional: true + dependencies: + '@babel/core': 7.22.9 + '@jest/test-sequencer': 29.6.1 + '@jest/types': 29.6.1 + '@types/node': 18.17.0 + babel-jest: 29.6.1(@babel/core@7.22.9) + chalk: 4.1.2 + ci-info: 3.8.0 + deepmerge: 4.3.1 + glob: 7.2.3 + graceful-fs: 4.2.11 + jest-circus: 29.6.1 + jest-environment-node: 29.6.1 + jest-get-type: 29.4.3 + jest-regex-util: 29.4.3 + jest-resolve: 29.6.1 + jest-runner: 29.6.1 + jest-util: 29.6.1 + jest-validate: 29.6.1 + micromatch: 4.0.5 + parse-json: 5.2.0 + pretty-format: 29.6.1 + slash: 3.0.0 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + dev: true + /jest-config@29.6.1(@types/node@20.4.4): resolution: {integrity: sha512-XdjYV2fy2xYixUiV2Wc54t3Z4oxYPAELUzWnV6+mcbq0rh742X2p52pii5A3oeRzYjLnQxCsZmp0qpI6klE2cQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -8701,7 +8677,7 @@ packages: '@jest/environment': 29.6.1 '@jest/fake-timers': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 jest-mock: 29.6.1 jest-util: 29.6.1 dev: true @@ -8717,7 +8693,7 @@ packages: dependencies: '@jest/types': 29.6.1 '@types/graceful-fs': 4.1.6 - '@types/node': 20.4.4 + '@types/node': 18.17.0 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 @@ -8768,7 +8744,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 jest-util: 29.6.1 dev: true @@ -8823,7 +8799,7 @@ packages: '@jest/test-result': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 emittery: 0.13.1 graceful-fs: 4.2.11 @@ -8854,7 +8830,7 @@ packages: '@jest/test-result': 29.6.1 '@jest/transform': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 cjs-module-lexer: 1.2.3 collect-v8-coverage: 1.0.2 @@ -8907,7 +8883,7 @@ packages: engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 chalk: 4.1.2 ci-info: 3.8.0 graceful-fs: 4.2.11 @@ -8931,7 +8907,7 @@ packages: dependencies: '@jest/test-result': 29.6.1 '@jest/types': 29.6.1 - '@types/node': 20.4.4 + '@types/node': 18.17.0 ansi-escapes: 4.3.2 chalk: 4.1.2 emittery: 0.13.1 @@ -8943,7 +8919,7 @@ packages: resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} engines: {node: '>= 10.13.0'} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -8951,12 +8927,12 @@ packages: resolution: {integrity: sha512-U+Wrbca7S8ZAxAe9L6nb6g8kPdia5hj32Puu5iOqBCMTMWFHXuK6dOV2IFrpedbTV8fjMFLdWNttQTBL6u2MRA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@types/node': 20.4.4 + '@types/node': 18.17.0 jest-util: 29.6.1 merge-stream: 2.0.0 supports-color: 8.1.1 - /jest@29.6.1(@types/node@20.4.4): + /jest@29.6.1(@types/node@18.17.0): resolution: {integrity: sha512-Nirw5B4nn69rVUZtemCQhwxOBhm0nsp3hmtF4rzCeWD7BkjAXRIji7xWQfnTNbz9g0aVsBX6aZK3n+23LM6uDw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -8969,7 +8945,7 @@ packages: '@jest/core': 29.6.1 '@jest/types': 29.6.1 import-local: 3.1.0 - jest-cli: 29.6.1(@types/node@20.4.4) + jest-cli: 29.6.1(@types/node@18.17.0) transitivePeerDependencies: - '@types/node' - supports-color @@ -9341,6 +9317,14 @@ packages: safe-buffer: 5.2.1 dev: true + /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: resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==} dependencies: @@ -9646,6 +9630,11 @@ packages: tslib: 2.6.0 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: resolution: {integrity: sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A==} dependencies: @@ -9901,13 +9890,20 @@ packages: is-wsl: 2.2.0 dev: false - /openai@3.3.0: - resolution: {integrity: sha512-uqxI/Au+aPRnsaQRe8CojU0eCR7I0mBiKjD3sNMzY6DaC1ZVrc85u98mtJW6voDug8fgGN+DIZmTDxTthxb7dQ==} + /openai@4.0.0-beta.6: + resolution: {integrity: sha512-sZscRgs6nhBgIt0qcK8XB2PGga6V0Qy9rQn/vKesox/laQDs9tMaOi6rsDhHq15aXQJPROfEB0K9SZoCuyWbSw==} dependencies: - axios: 0.26.1 - form-data: 4.0.0 + '@types/node': 18.17.0 + '@types/node-fetch': 2.6.4 + abort-controller: 3.0.0 + agentkeepalive: 4.3.0 + digest-fetch: 1.3.0 + form-data-encoder: 1.7.2 + formdata-node: 4.4.1 + node-fetch: 2.6.12 transitivePeerDependencies: - - debug + - encoding + - supports-color dev: false /opener@1.5.2: @@ -12504,7 +12500,7 @@ packages: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} dev: true - /ts-jest@29.1.1(@babel/core@7.22.9)(jest@29.6.1)(typescript@5.1.6): + /ts-jest@29.1.1(@babel/core@7.22.9)(jest@29.6.1)(typescript@4.9.5): resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -12528,17 +12524,17 @@ packages: '@babel/core': 7.22.9 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 - jest: 29.6.1(@types/node@20.4.4) + jest: 29.6.1(@types/node@18.17.0) jest-util: 29.6.1 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.5.4 - typescript: 5.1.6 + typescript: 4.9.5 yargs-parser: 21.1.1 dev: true - /ts-node@10.9.1(@types/node@20.4.4)(typescript@5.1.6): + /ts-node@10.9.1(@types/node@18.17.0)(typescript@4.9.5): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -12557,14 +12553,14 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.4.4 + '@types/node': 18.17.0 acorn: 8.10.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.1.6 + typescript: 4.9.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -12584,7 +12580,7 @@ packages: /tslib@2.6.0: resolution: {integrity: sha512-7At1WUettjcSRHXCyYtTselblcHl9PJFFVKiCAy/bY97+BPZXSQ2wbq0P9s8tK2G7dFQfNnlJnPAiArVBVBsfA==} - /tsup@7.1.0(typescript@5.1.6): + /tsup@7.1.0(typescript@4.9.5): resolution: {integrity: sha512-mazl/GRAk70j8S43/AbSYXGgvRP54oQeX8Un4iZxzATHt0roW0t6HYDVZIXMw0ZQIpvr1nFMniIVnN5186lW7w==} engines: {node: '>=16.14'} hasBin: true @@ -12614,20 +12610,20 @@ packages: source-map: 0.8.0-beta.0 sucrase: 3.34.0 tree-kill: 1.2.2 - typescript: 5.1.6 + typescript: 4.9.5 transitivePeerDependencies: - supports-color - ts-node dev: true - /tsutils@3.21.0(typescript@5.1.6): + /tsutils@3.21.0(typescript@4.9.5): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.1.6 + typescript: 4.9.5 dev: false /tty-browserify@0.0.1: @@ -12799,11 +12795,6 @@ packages: engines: {node: '>=4.2.0'} hasBin: true - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - /ua-parser-js@1.0.35: resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} dev: false @@ -13227,6 +13218,11 @@ packages: resolution: {integrity: sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==} dev: false + /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: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: false