From f44388297a9893b1f2fba04d85e38787316d7bb9 Mon Sep 17 00:00:00 2001 From: Na'aman Hirschfeld Date: Tue, 9 Jan 2024 19:46:45 +0100 Subject: [PATCH] feat: updated prompt config snippets --- .pre-commit-config.yaml | 1 + frontend/package.json | 7 +- frontend/public/messages/en.json | 10 +- .../configs/[promptConfigId]/page.tsx | 17 +- .../application-prompt-configs-table.tsx | 16 +- .../prompt-config-code-snippet.spec.tsx | 20 - .../[configId]/prompt-config-code-snippet.tsx | 443 +++++++++++++---- .../[configId]/prompt-config-testing.spec.tsx | 353 -------------- .../[configId]/prompt-config-testing.tsx | 294 ------------ .../prompt-content-display.spec.tsx | 5 +- frontend/src/constants/navigation.ts | 1 - go.mod | 16 +- go.sum | 16 + go.work.sum | 18 + package.json | 6 +- pnpm-lock.yaml | 450 +++++++++--------- services/openai-connector/package.json | 2 +- 17 files changed, 622 insertions(+), 1053 deletions(-) delete mode 100644 frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.spec.tsx delete mode 100644 frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.tsx diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 2994498a..e124bc9f 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -63,3 +63,4 @@ repos: hooks: - id: codespell additional_dependencies: ['tomli'] + exclude: 'go.*' diff --git a/frontend/package.json b/frontend/package.json index 7c3ea1b1..a23d391c 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -13,7 +13,7 @@ "@firebase/analytics": "^0.10.0", "@firebase/app": "^0.9.25", "@firebase/auth": "^1.5.1", - "@segment/analytics-next": "^1.62.0", + "@segment/analytics-next": "^1.62.1", "@uidotdev/usehooks": "^2.4.1", "dayjs": "^1.11.10", "deepmerge-ts": "^5.1.0", @@ -26,6 +26,7 @@ "react-bootstrap-icons": "^1.10.3", "react-dom": "18.2.0", "react-loading-icons": "^1.1.0", + "react-string-replace": "^1.1.1", "react-syntax-highlighter": "^15.5.0", "react-tailwindcss-datepicker": "^1.6.6", "sharp": "^0.33.1", @@ -38,7 +39,7 @@ "@svgr/webpack": "^8.1.0", "@tailwindcss/forms": "^0.5.7", "@tailwindcss/typography": "^0.5.10", - "@testing-library/dom": "^9.3.3", + "@testing-library/dom": "^9.3.4", "@testing-library/jest-dom": "^6.2.0", "@testing-library/react": "^14.1.2", "@types/react": "18.2.47", @@ -48,7 +49,7 @@ "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.16", "daisyui": "^4.5.0", - "jsdom": "^23.1.0", + "jsdom": "^23.2.0", "mock-socket": "^9.3.1", "postcss": "8.4.33", "sass": "^1.69.7", diff --git a/frontend/public/messages/en.json b/frontend/public/messages/en.json index bf3dd281..839e1bd2 100644 --- a/frontend/public/messages/en.json +++ b/frontend/public/messages/en.json @@ -64,9 +64,14 @@ "submit": "Submit" }, "configCodeSnippet": { - "createAPIKey": "Create API Key", + "dartInstallationText": "Add the dependency to your application's pubspec.yaml file:", "documentation": "Documentation", - "implement": "Implement" + "implement": "Implement", + "importText": "You can now import and initialize the client in your code:", + "kotlinInstallationText": "Add the dependency to your application's build.gradle.kts file:", + "swiftInstallationText": "Add the dependency to your application's Package.swift:", + "usageRequestText": "Use the client to request a prompt using the config:", + "usageStreamText": "Or request a streaming response using the config:" }, "createApplication": { "applicationCreated": "Application Created", @@ -322,6 +327,7 @@ "promptHeader": "Prompt Testing", "savedPromptConfig": "Saved Templates" }, + "promptConfig": { "apiCalls": "API Calls", "cancel": "Cancel", diff --git a/frontend/src/app/[locale]/projects/[projectId]/applications/[applicationId]/configs/[promptConfigId]/page.tsx b/frontend/src/app/[locale]/projects/[projectId]/applications/[applicationId]/configs/[promptConfigId]/page.tsx index fc4d1055..46d2138d 100644 --- a/frontend/src/app/[locale]/projects/[projectId]/applications/[applicationId]/configs/[promptConfigId]/page.tsx +++ b/frontend/src/app/[locale]/projects/[projectId]/applications/[applicationId]/configs/[promptConfigId]/page.tsx @@ -2,7 +2,7 @@ import { useTranslations } from 'next-intl'; import { memo, useEffect, useState } from 'react'; -import { Gear, RocketTakeoff, Speedometer2 } from 'react-bootstrap-icons'; +import { Gear, Speedometer2 } from 'react-bootstrap-icons'; import { Oval } from 'react-loading-icons'; import useSWR from 'swr'; @@ -12,7 +12,6 @@ import { PromptConfigCodeSnippet } from '@/components/projects/[projectId]/appli import { PromptConfigDeletion } from '@/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-deletion'; import { PromptConfigGeneralInfo } from '@/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-general-info'; import { PromptConfigGeneralSettings } from '@/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-general-settings'; -import { PromptConfigTesting } from '@/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing'; import { TabData, TabNavigation } from '@/components/tab-navigation'; import { PromptConfigPageTab } from '@/constants'; import { useAnalytics } from '@/hooks/use-analytics'; @@ -92,11 +91,6 @@ export default function PromptConfiguration({ id: PromptConfigPageTab.OVERVIEW, text: t('overview'), }, - { - icon: , - id: PromptConfigPageTab.TESTING, - text: t('test'), - }, { icon: , id: PromptConfigPageTab.SETTINGS, @@ -110,20 +104,11 @@ export default function PromptConfiguration({
)), - [PromptConfigPageTab.TESTING]: memo(() => ( - - )), [PromptConfigPageTab.SETTINGS]: memo(() => ( <> {t('name')} {t('vendor')} {t('model')} - {t('test')} {t('edit')} @@ -101,19 +100,6 @@ export function ApplicationPromptConfigsTable({ {modelTypeToLocaleMap[modelType]} - - - - -
-
- +
+ +
+
+
+ + 1 + + + {t( + `${tab.language}InstallationText`, + )} + +
+ +
+
+
+ + 2 + + + {t('importText')} + +
+ +
+
+
+ + 3 + + + {t('usageRequestText')} + +
+ +
+
+
+ + 4 + + + {t('usageStreamText')} + +
+ +
@@ -212,16 +469,6 @@ export function PromptConfigCodeSnippet({ ); })} - - { - closeCreationPopup(); - }} - /> - ); } diff --git a/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.spec.tsx b/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.spec.tsx deleted file mode 100644 index 9165447f..00000000 --- a/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.spec.tsx +++ /dev/null @@ -1,353 +0,0 @@ -import { faker } from '@faker-js/faker'; -import { - ApplicationFactory, - OpenAIPromptConfigFactory, - OpenAIPromptMessageFactory, - ProjectFactory, -} from 'tests/factories'; -import { mockPage, mockReady, routerReplaceMock } from 'tests/mocks'; -import { - act, - fireEvent, - render, - renderHook, - screen, - waitFor, -} from 'tests/test-utils'; -import { expect, MockInstance } from 'vitest'; - -import * as promptConfigApi from '@/api/prompt-config-api'; -import { PromptConfigTesting } from '@/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing'; -import { usePromptConfigs, useSetPromptConfigs } from '@/stores/api-store'; -import { OpenAIModelType, PromptConfig } from '@/types'; - -describe('PromptConfigTesting tests', () => { - const project = ProjectFactory.buildSync(); - const application = ApplicationFactory.buildSync(); - const promptConfigs = OpenAIPromptConfigFactory.batchSync(3, { - providerPromptMessages: OpenAIPromptMessageFactory.batchSync(1), - }); - const promptConfig = promptConfigs[0]; - - let handleCreatePromptConfigSpy: MockInstance; - let handleUpdatePromptConfigSpy: MockInstance; - - beforeEach(() => { - handleCreatePromptConfigSpy = vi.spyOn( - promptConfigApi, - 'handleCreatePromptConfig', - ); - handleUpdatePromptConfigSpy = vi.spyOn( - promptConfigApi, - 'handleUpdatePromptConfig', - ); - }); - - const { - result: { current: setPromptConfigs }, - } = renderHook(useSetPromptConfigs); - - it('renders the expected forms and buttons', async () => { - render( - , - ); - - await waitFor(() => { - expect( - screen.getByTestId('prompt-config-test-container'), - ).toBeInTheDocument(); - }); - expect(screen.getByTestId('base-form-container')).toBeInTheDocument(); - expect( - screen.getByTestId('prompt-config-testing-form'), - ).toBeInTheDocument(); - expect( - screen.getByTestId('parameters-and-prompt-form-container'), - ).toBeInTheDocument(); - }); - - it("opens the name modal when pressing 'save as new' and allows saving a new config", async () => { - handleCreatePromptConfigSpy.mockResolvedValueOnce( - OpenAIPromptConfigFactory.buildSync(), - ); - - render( - , - ); - - act(() => { - setPromptConfigs(application.id, promptConfigs); - }); - - await waitFor(() => { - expect( - screen.getByTestId('prompt-config-test-container'), - ).toBeInTheDocument(); - }); - - await waitFor(() => { - expect(screen.getByTestId('modal-content')).toBeInTheDocument(); - }); - - fireEvent.change( - screen.getByTestId('prompt-config-save-as-new-name-input'), - { target: { value: faker.lorem.word({ length: 8 }) } }, - ); - - fireEvent.click(screen.getByTestId('confirm-save-as-new-button')); - await waitFor(() => { - expect(routerReplaceMock).toHaveBeenCalledTimes(1); - }); - - const { - result: { current: storeConfigs }, - } = renderHook(usePromptConfigs); - expect(storeConfigs[application.id]!.length).toBe(4); - }); - - it("closes the name modal when pressing 'cancel'", async () => { - render( - , - ); - - await waitFor(() => { - expect( - screen.getByTestId('prompt-config-test-container'), - ).toBeInTheDocument(); - }); - - fireEvent.click( - screen.getByTestId('prompt-config-test-save-as-new-button'), - ); - - await waitFor(() => { - expect( - screen.getByTestId('save-as-new-name-form'), - ).toBeInTheDocument(); - }); - - const cancelButton = screen.getByTestId('cancel-save-as-new-button'); - expect(cancelButton).toBeInTheDocument(); - expect(cancelButton).toBeEnabled(); - - fireEvent.click(cancelButton); - - const dialog: HTMLDialogElement = screen.getByTestId('dialog-modal'); - - await waitFor(() => { - expect(dialog.open).toBeFalsy(); - }); - }); - - it('allows updating the existing prompt config when parameters change', async () => { - const updatedPromptConfig = { - ...promptConfig, - modelParameters: { - ...promptConfig.modelParameters, - maxTokens: 100, - }, - }; - - act(() => { - setPromptConfigs(application.id, promptConfigs); - }); - - render( - , - ); - - await waitFor(() => { - expect( - screen.getByTestId('prompt-config-test-container'), - ).toBeInTheDocument(); - }); - - const updateButton = screen.getByTestId( - 'prompt-config-test-update-button', - ); - expect(updateButton).toBeInTheDocument(); - - const advancedOptionsToggle = screen.getByTestId( - 'advanced-options-toggle', - ); - fireEvent.click(advancedOptionsToggle); - - const slider = screen.getByTestId('parameter-slider-maxTokens'); - fireEvent.change(slider, { target: { value: 100 } }); - - handleUpdatePromptConfigSpy.mockResolvedValueOnce(updatedPromptConfig); - - fireEvent.click(updateButton); - - await waitFor(() => { - expect(handleUpdatePromptConfigSpy).toHaveBeenCalledTimes(1); - }); - - const { - result: { current: storeConfigs }, - } = renderHook(usePromptConfigs); - - expect(storeConfigs[application.id]!.length).toBe(3); - expect( - storeConfigs[application.id]!.find( - (c: PromptConfig) => c.id === promptConfig.id, - )!.modelParameters.maxTokens, - ).toBe(100); - }); - it('allows updating the existing prompt config when the model type changes', async () => { - const updatedPromptConfig = { - ...promptConfig, - modelType: OpenAIModelType.Gpt4, - }; - - handleUpdatePromptConfigSpy.mockResolvedValueOnce(updatedPromptConfig); - - act(() => { - setPromptConfigs(application.id, promptConfigs); - }); - - render( - , - ); - - await waitFor(() => { - expect( - screen.getByTestId('prompt-config-test-container'), - ).toBeInTheDocument(); - }); - - const updateButton = screen.getByTestId( - 'prompt-config-test-update-button', - ); - expect(updateButton).toBeInTheDocument(); - - const modelSelect = screen.getByTestId( - 'create-prompt-base-form-model-select', - ); - fireEvent.change(modelSelect, { - target: { value: OpenAIModelType.Gpt432K }, - }); - - await waitFor(() => { - expect(updateButton).toBeEnabled(); - }); - fireEvent.click(updateButton); - - await waitFor(() => { - expect(handleUpdatePromptConfigSpy).toHaveBeenCalledTimes(1); - }); - - const { - result: { current: storeConfigs }, - } = renderHook(usePromptConfigs); - - expect(storeConfigs[application.id]!.length).toBe(3); - expect( - storeConfigs[application.id]!.find( - (c: PromptConfig) => c.id === promptConfig.id, - )!.modelType, - ).toBe(OpenAIModelType.Gpt4); - }); - it.skip('does not allow updating the existing prompt config when the expected variables change', async () => { - const config = OpenAIPromptConfigFactory.buildSync(); - config.providerPromptMessages = [ - OpenAIPromptMessageFactory.buildSync({ - content: '{userInput}', - templateVariables: ['userInput'], - }), - ]; - - act(() => { - setPromptConfigs(application.id, [config]); - }); - - render( - , - ); - - const draftMessageInput = screen.getByTestId( - 'openai-message-content-textarea', - ); - fireEvent.change(draftMessageInput, { - target: { value: '{xxx}' }, - }); - - const updatePromptConfigButton = screen.getByTestId( - 'prompt-config-test-update-button', - ); - - await waitFor(() => { - expect(updatePromptConfigButton).toBeDisabled(); - }); - }); - it('allows saving as new when the expected variables change', async () => { - act(() => { - setPromptConfigs(application.id, promptConfigs); - }); - - render( - , - ); - - const draftMessageInput = screen.getByTestId( - 'openai-message-content-textarea', - ); - fireEvent.change(draftMessageInput, { - target: { value: '{userInput}' }, - }); - - const saveAsNewButton = screen.getByTestId( - 'prompt-config-test-save-as-new-button', - ); - - await waitFor(() => { - expect(saveAsNewButton).toBeEnabled(); - }); - }); - it('calls mockPage hook with config-testing', async () => { - render( - , - ); - await waitFor(() => { - expect(mockReady).toHaveBeenCalled(); - }); - await waitFor(() => { - expect(mockPage).toHaveBeenCalledWith( - 'configTesting', - expect.any(Object), - ); - }); - }); -}); diff --git a/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.tsx b/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.tsx deleted file mode 100644 index 153e0009..00000000 --- a/frontend/src/components/projects/[projectId]/applications/[applicationId]/configs/[configId]/prompt-config-testing.tsx +++ /dev/null @@ -1,294 +0,0 @@ -import deepEqual from 'fast-deep-equal/es6'; -import { useRouter } from 'next/navigation'; -import { useTranslations } from 'next-intl'; -import { useEffect, useMemo, useRef, useState } from 'react'; - -import { handleCreatePromptConfig, handleUpdatePromptConfig } from '@/api'; -import { EntityNameInput } from '@/components/entity-name-input'; -import { Modal } from '@/components/modal'; -import { PromptConfigBaseForm } from '@/components/projects/[projectId]/applications/[applicationId]/config-create-wizard/base-form'; -import { PromptConfigParametersAndPromptForm } from '@/components/projects/[projectId]/applications/[applicationId]/config-create-wizard/parameters-and-prompt-form'; -import { PromptConfigTestingForm } from '@/components/projects/[projectId]/applications/[applicationId]/config-create-wizard/prompt-config-testing-form'; -import { Navigation } from '@/constants'; -import { useAnalytics } from '@/hooks/use-analytics'; -import { useHandleError } from '@/hooks/use-handle-error'; -import { usePromptConfigs, useSetPromptConfigs } from '@/stores/api-store'; -import { - ModelType, - ModelVendor, - PromptConfig, - ProviderMessageType, -} from '@/types'; -import { setRouteParams } from '@/utils/navigation'; - -export function PromptConfigTesting({ - projectId, - applicationId, - promptConfig, -}: { - applicationId: string; - projectId: string; - promptConfig: PromptConfig; -}) { - const t = useTranslations('promptConfig'); - - const handleError = useHandleError(); - const promptConfigs = usePromptConfigs(); - const router = useRouter(); - const setPromptConfigs = useSetPromptConfigs(); - - const { initialized, page } = useAnalytics(); - - const initialValuesRef = useRef(structuredClone(promptConfig)); - const expectedVariablesRef = useRef( - promptConfig.providerPromptMessages - .reduce((acc, cur) => { - return [...acc, ...(cur.templateVariables ?? [])]; - }, []) - .sort(), - ); - - const [isLoading, setIsLoading] = useState(false); - const [templateVariables, setTemplateVariables] = useState< - Record - >({}); - const [modelType, setModelType] = useState>( - promptConfig.modelType, - ); - const [name, setName] = useState(promptConfig.name); - const [modelVendor, setModelVendor] = useState(promptConfig.modelVendor); - const [messages, setMessages] = useState[]>( - promptConfig.providerPromptMessages, - ); - const [parameters, setParameters] = useState(promptConfig.modelParameters); - const [isNameModalOpen, setIsNameModalOpen] = useState(false); - const [isNameValid, setIsNameValid] = useState(false); - - const expectedVariables = useMemo( - () => - messages - .reduce((acc, cur) => { - return [...acc, ...(cur.templateVariables ?? [])]; - }, []) - .sort(), - [messages], - ); - - const isExpectedVariablesChanged = !deepEqual( - expectedVariables, - expectedVariablesRef.current, - ); - - const isChanged = useMemo( - () => - initialValuesRef.current.modelType !== modelType || - initialValuesRef.current.modelVendor !== modelVendor || - !deepEqual(initialValuesRef.current.modelParameters, parameters) || - !deepEqual( - initialValuesRef.current.providerPromptMessages, - messages, - ), - [modelType, modelVendor, parameters, messages], - ); - - const validateName = (value: string) => - !(promptConfigs[applicationId]?.map((c) => c.name) ?? []).includes( - value, - ); - - const updatePromptConfig = async () => { - setIsLoading(true); - try { - const updatedPromptConfig = await handleUpdatePromptConfig({ - applicationId, - data: { - modelParameters: parameters, - modelType, - modelVendor, - promptMessages: messages, - }, - projectId, - promptConfigId: promptConfig.id, - }); - setPromptConfigs(applicationId, [ - ...(promptConfigs[applicationId]?.filter( - (pc) => pc.id !== updatedPromptConfig.id, - ) ?? []), - updatedPromptConfig, - ]); - } catch (e) { - handleError(e); - } finally { - setIsLoading(false); - } - }; - - const saveNewConfig = async () => { - setIsLoading(true); - try { - const newPromptConfig = await handleCreatePromptConfig({ - applicationId, - data: { - modelParameters: parameters, - modelType, - modelVendor, - name, - promptMessages: messages, - }, - projectId, - }); - setPromptConfigs(applicationId, [ - ...(promptConfigs[applicationId] ?? []), - newPromptConfig, - ]); - router.replace( - setRouteParams(Navigation.PromptConfigDetail, { - applicationId, - projectId, - promptConfigId: newPromptConfig.id, - }), - ); - } catch (e) { - handleError(e); - } finally { - setIsLoading(false); - } - }; - - useEffect(() => { - if (initialized) { - page('configTesting', { - applicationId, - projectId, - promptConfigId: promptConfig.id, - }); - } - }, [initialized]); - - return ( -
- undefined} - setIsValid={() => undefined} - setModelType={(m) => { - setModelType(m as ModelType); - }} - setVendor={(v) => { - setModelVendor(v as T); - }} - validateConfigName={() => true} - showConfigNameInput={false} - /> -
- -
- - applicationId={applicationId} - promptConfigId={promptConfig.id} - projectId={projectId} - modelType={modelType} - modelVendor={modelVendor} - parameters={parameters} - templateVariables={templateVariables} - setTemplateVariables={setTemplateVariables} - projectCredits={'1.0'} - handleError={handleError} - messages={messages} - handleRefreshProject={() => Promise.resolve()} - /> -
-
-
- - -
-
- -
- -
- - -
-
-
-
- ); -} diff --git a/frontend/src/components/prompt-display-components/prompt-content-display.spec.tsx b/frontend/src/components/prompt-display-components/prompt-content-display.spec.tsx index a52e2491..0a6c9f30 100644 --- a/frontend/src/components/prompt-display-components/prompt-content-display.spec.tsx +++ b/frontend/src/components/prompt-display-components/prompt-content-display.spec.tsx @@ -1,9 +1,8 @@ -import { waitFor } from '@testing-library/react'; import { CohereMessageFactory, OpenAIPromptMessageFactory, } from 'tests/factories'; -import { render, screen } from 'tests/test-utils'; +import { render, screen, waitFor } from 'tests/test-utils'; import { expect } from 'vitest'; import { PromptContentDisplay } from '@/components/prompt-display-components/prompt-content-display'; @@ -80,7 +79,7 @@ describe('PromptContentDisplay', () => { expect(variables[2]).toHaveTextContent('{var3}'); }); - it('should parse template variables correctly for OpenAI messages', async () => { + it('should parse template variables correctly for Cohere messages', async () => { const message = CohereMessageFactory.buildSync({ message: ` Hello {var1} diff --git a/frontend/src/constants/navigation.ts b/frontend/src/constants/navigation.ts index dd9ca3fa..49656e10 100644 --- a/frontend/src/constants/navigation.ts +++ b/frontend/src/constants/navigation.ts @@ -18,7 +18,6 @@ export const SUPPORT_EMAIL = 'support@basemind.ai'; export enum PromptConfigPageTab { OVERVIEW, - TESTING, SETTINGS, } diff --git a/go.mod b/go.mod index edeebc9a..88aa9b8e 100644 --- a/go.mod +++ b/go.mod @@ -20,9 +20,9 @@ require ( github.com/leg100/surl v0.0.6 github.com/lxzan/gws v1.7.0 github.com/ory/dockertest/v3 v3.10.0 - github.com/redis/go-redis/v9 v9.3.1 + github.com/redis/go-redis/v9 v9.4.0 github.com/rs/zerolog v1.31.0 - github.com/sethvargo/go-envconfig v0.9.0 + github.com/sethvargo/go-envconfig v1.0.0 github.com/shopspring/decimal v1.3.1 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.27.0 @@ -128,11 +128,11 @@ require ( go.opentelemetry.io/otel/trace v1.21.0 // indirect go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.26.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/exp v0.0.0-20240103183307-be819d1f06fc // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect - golang.org/x/oauth2 v0.15.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect golang.org/x/sys v0.16.0 // indirect golang.org/x/text v0.14.0 // indirect golang.org/x/time v0.5.0 // indirect @@ -141,9 +141,9 @@ require ( google.golang.org/api v0.155.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/appengine/v2 v2.0.5 // indirect - google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 // indirect + google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) diff --git a/go.sum b/go.sum index 99962ba2..70c89561 100644 --- a/go.sum +++ b/go.sum @@ -1067,6 +1067,8 @@ github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3d github.com/redis/go-redis/v9 v9.0.0-rc.4/go.mod h1:Vo3EsyWnicKnSKCA7HhgnvnyA74wOA69Cd2Meli5mmA= github.com/redis/go-redis/v9 v9.3.1 h1:KqdY8U+3X6z+iACvumCNxnoluToB+9Me+TvyFa21Mds= github.com/redis/go-redis/v9 v9.3.1/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= +github.com/redis/go-redis/v9 v9.4.0 h1:Yzoz33UZw9I/mFhx4MNrB6Fk+XHO1VukNcCa1+lwyKk= +github.com/redis/go-redis/v9 v9.4.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M= github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -1087,6 +1089,8 @@ github.com/sendgrid/sendgrid-go v3.14.0+incompatible h1:KDSasSTktAqMJCYClHVE94Fc github.com/sendgrid/sendgrid-go v3.14.0+incompatible/go.mod h1:QRQt+LX/NmgVEvmdRw0VT/QgUn499+iza2FnDca9fg8= github.com/sethvargo/go-envconfig v0.9.0 h1:Q6FQ6hVEeTECULvkJZakq3dZMeBQ3JUpcKMfPQbKMDE= github.com/sethvargo/go-envconfig v0.9.0/go.mod h1:Iz1Gy1Sf3T64TQlJSvee81qDhf7YIlt8GMUX6yyNFs0= +github.com/sethvargo/go-envconfig v1.0.0 h1:1C66wzy4QrROf5ew4KdVw942CQDa55qmlYmw9FZxZdU= +github.com/sethvargo/go-envconfig v1.0.0/go.mod h1:Lzc75ghUn5ucmcRGIdGQ33DKJrcjk4kihFYgSTBmjIc= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= @@ -1201,6 +1205,8 @@ golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -1330,6 +1336,8 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1362,6 +1370,8 @@ golang.org/x/oauth2 v0.7.0/go.mod h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4 golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1813,12 +1823,16 @@ google.golang.org/genproto v0.0.0-20230525234025-438c736192d0/go.mod h1:9ExIQyXL google.golang.org/genproto v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:xZnkP7mREFX5MORlOPEzLMr+90PPZQ2QWzrVTWfAq64= google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917 h1:nz5NESFLZbJGPFxDT/HCn+V1mZ8JGNoY4nUpmW/Y2eg= google.golang.org/genproto v0.0.0-20240102182953-50ed04b92917/go.mod h1:pZqR+glSb11aJ+JQcczCvgf47+duRuzNSKqE8YAQnV0= +google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1 h1:/IWabOtPziuXTEtI1KYCpM6Ss7vaAkeMxk+uXV/xvZs= +google.golang.org/genproto v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:+Rvu7ElI+aLzyDQhpHMFMMltsD6m7nqpuWDd2CwJw3k= google.golang.org/genproto/googleapis/api v0.0.0-20230525234020-1aefcd67740a/go.mod h1:ts19tUU+Z0ZShN1y3aPyq2+O3d5FUNNgT6FtOzmrNn8= google.golang.org/genproto/googleapis/api v0.0.0-20230525234035-dd9d682886f9/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20230526203410-71b5a4ffd15e/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:vHYtlOoi6TsQ3Uk2yxR7NI5z8uoV+3pZtR4jmHIkRig= google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917 h1:rcS6EyEaoCO52hQDupoSfrxI3R6C2Tq741is7X8OvnM= google.golang.org/genproto/googleapis/api v0.0.0-20240102182953-50ed04b92917/go.mod h1:CmlNWB9lSezaYELKS5Ym1r44VrrbPUa7JTvw+6MbpJ0= +google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1 h1:OPXtXn7fNMaXwO3JvOmF1QyTc00jsSFFz1vXXBOdCDo= +google.golang.org/genproto/googleapis/api v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:B5xPO//w8qmBDjGReYLpR6UJPnkldGkCSMoH/2vxJeg= google.golang.org/genproto/googleapis/bytestream v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:ylj+BE99M198VPbBh6A8d9n3w8fChvyLK3wwBOjXBFA= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234015-3fc162c6f38a/go.mod h1:xURIpW9ES5+/GZhnV6beoEtxQrnkRGIfP5VQG2tCBLc= google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= @@ -1826,6 +1840,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230526203410-71b5a4ffd15e/go. google.golang.org/genproto/googleapis/rpc v0.0.0-20230530153820-e85fd2cbaebc/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917 h1:6G8oQ016D88m1xAKljMlBOOGWDZkes4kMhgGFlf8WcQ= google.golang.org/genproto/googleapis/rpc v0.0.0-20240102182953-50ed04b92917/go.mod h1:xtjpI3tXFPP051KaWnhvxkiubL/6dJ18vLVf7q2pTOU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1 h1:gphdwh0npgs8elJ4T6J+DQJHPVF7RsuJHCfwztUb4J4= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240108191215-35c7eff3a6b1/go.mod h1:daQN87bsDqDoe316QbbvX60nMoJQa4r6Ds0ZuoAe5yA= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= diff --git a/go.work.sum b/go.work.sum index ab892f4c..2065b1a5 100644 --- a/go.work.sum +++ b/go.work.sum @@ -22,6 +22,8 @@ cloud.google.com/go/analytics v0.21.5 h1:ccW5bYKOrgXAbvIT/mxqk2rou7CfrUdl5G5bJDm cloud.google.com/go/analytics v0.21.5/go.mod h1:BQtOBHWTlJ96axpPPnw5CvGJ6i3Ve/qX2fTxR8qWyr8= cloud.google.com/go/analytics v0.21.6 h1:fnV7B8lqyEYxCU0LKk+vUL7mTlqRAq4uFlIthIdr/iA= cloud.google.com/go/analytics v0.21.6/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= +cloud.google.com/go/analytics v0.22.0 h1:w8KIgW8NRUHFVKjpkwCpLaHsr685tJ+ckPStOaSCZz0= +cloud.google.com/go/analytics v0.22.0/go.mod h1:eiROFQKosh4hMaNhF85Oc9WO97Cpa7RggD40e/RBy8w= cloud.google.com/go/apigateway v1.6.3 h1:8zRrVIaGC5dQeq3lBUn7Kchea8ao0bUILXeY8kBzF3M= cloud.google.com/go/apigateway v1.6.3/go.mod h1:k68PXWpEs6BVDTtnLQAyG606Q3mz8pshItwPXjgv44Y= cloud.google.com/go/apigateway v1.6.4 h1:VVIxCtVerchHienSlaGzV6XJGtEM9828Erzyr3miUGs= @@ -53,6 +55,8 @@ cloud.google.com/go/asset v1.15.3 h1:uI8Bdm81s0esVWbWrTHcjFDFKNOa9aB7rI1vud1hO84 cloud.google.com/go/asset v1.15.3/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= cloud.google.com/go/asset v1.16.0 h1:VjwWNtEVsbpXfJqZbb2RLOBzSgAjN69vf2UJADHnkxk= cloud.google.com/go/asset v1.16.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= +cloud.google.com/go/asset v1.17.0 h1:dLWfTnbwyrq/Kt8Tr2JiAbre1MEvS2Bl5cAMiYAy5Pg= +cloud.google.com/go/asset v1.17.0/go.mod h1:yYLfUD4wL4X589A9tYrv4rFrba0QlDeag0CMcM5ggXU= cloud.google.com/go/assuredworkloads v1.11.3 h1:1eef9dFe2ylYw/6Nv6vP2t4xEeUHGIZDKRBwFbsiQUs= cloud.google.com/go/assuredworkloads v1.11.3/go.mod h1:vEjfTKYyRUaIeA0bsGJceFV2JKpVRgyG2op3jfa59Zs= cloud.google.com/go/assuredworkloads v1.11.4 h1:FsLSkmYYeNuzDm8L4YPfLWV+lQaUrJmH5OuD37t1k20= @@ -99,6 +103,8 @@ cloud.google.com/go/channel v1.17.2 h1:LcaJyv6riQA39bvkPigOJvvNJM7Ls5x0hjZAqcuxq cloud.google.com/go/channel v1.17.2/go.mod h1:aT2LhnftnyfQceFql5I/mP8mIbiiJS4lWqgXA815zMk= cloud.google.com/go/channel v1.17.3 h1:Rd4+fBrjiN6tZ4TR8R/38elkyEkz6oogGDr7jDyjmMY= cloud.google.com/go/channel v1.17.3/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= +cloud.google.com/go/channel v1.17.4 h1:yYHOORIM+wkBy3EdwArg/WL7Lg+SoGzlKH9o3Bw2/jE= +cloud.google.com/go/channel v1.17.4/go.mod h1:QcEBuZLGGrUMm7kNj9IbU1ZfmJq2apotsV83hbxX7eE= cloud.google.com/go/cloudbuild v1.14.2 h1:Go7wFI+P5QyuSt1sZtb8wx+M+MGjyfR+xgOzjuZMDF8= cloud.google.com/go/cloudbuild v1.14.2/go.mod h1:Bn6RO0mBYk8Vlrt+8NLrru7WXlQ9/RDWz2uo5KG1/sg= cloud.google.com/go/cloudbuild v1.14.3 h1:hP6LDes9iqeppgGbmCkB3C3MvS12gJe5i4ZGtnnIO5c= @@ -163,6 +169,8 @@ cloud.google.com/go/dataplex v1.11.2 h1:AfFFR15Ifh4U+Me1IBztrSd5CrasTODzy3x8KtDy cloud.google.com/go/dataplex v1.11.2/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= cloud.google.com/go/dataplex v1.13.0 h1:ACVOuxwe7gP0SqEso9SLyXbcZNk5l8hjcTX+XLntI5s= cloud.google.com/go/dataplex v1.13.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= +cloud.google.com/go/dataplex v1.14.0 h1:/WhVTR4v/L6ACKjlz/9CqkxkrVh2z7C44CLMUf0f60A= +cloud.google.com/go/dataplex v1.14.0/go.mod h1:mHJYQQ2VEJHsyoC0OdNyy988DvEbPhqFs5OOLffLX0c= cloud.google.com/go/dataproc v1.12.0 h1:W47qHL3W4BPkAIbk4SWmIERwsWBaNnWm0P2sdx3YgGU= cloud.google.com/go/dataproc/v2 v2.2.2 h1:XRnxqa08/P2LpXTB+OMmPAfhT7GGyftgslKvzv330gM= cloud.google.com/go/dataproc/v2 v2.2.2/go.mod h1:aocQywVmQVF4i8CL740rNI/ZRpsaaC1Wh2++BJ7HEJ4= @@ -194,6 +202,8 @@ cloud.google.com/go/dialogflow v1.44.3 h1:cK/f88KX+YVR4tLH4clMQlvrLWD2qmKJQziusj cloud.google.com/go/dialogflow v1.44.3/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= cloud.google.com/go/dialogflow v1.47.0 h1:tLCWad8HZhlyUNfDzDP5m+oH6h/1Uvw/ei7B9AnsWMk= cloud.google.com/go/dialogflow v1.47.0/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= +cloud.google.com/go/dialogflow v1.48.0 h1:I7UsYowDdNhFI7RCix1uoThDp+8ULHByOo4n1T96y1A= +cloud.google.com/go/dialogflow v1.48.0/go.mod h1:mHly4vU7cPXVweuB5R0zsYKPMzy240aQdAu06SqBbAQ= cloud.google.com/go/dlp v1.10.3 h1:UWS2DOpyUuK/ig3ZWzJ0IcZRYsRcRkgD1NSaoSU1upw= cloud.google.com/go/dlp v1.10.3/go.mod h1:iUaTc/ln8I+QT6Ai5vmuwfw8fqTk2kaz0FvCwhLCom0= cloud.google.com/go/dlp v1.11.1 h1:OFlXedmPP/5//X1hBEeq3D9kUVm9fb6ywYANlpv/EsQ= @@ -250,6 +260,8 @@ cloud.google.com/go/gkemulticloud v1.0.2 h1:eBkfrcLHG+uaaVVbKMKS0qA1M1yBU3pdiHn1 cloud.google.com/go/gkemulticloud v1.0.2/go.mod h1:+ee5VXxKb3H1l4LZAcgWB/rvI16VTNTrInWxDjAGsGo= cloud.google.com/go/gkemulticloud v1.0.3 h1:NmJsNX9uQ2CT78957xnjXZb26TDIMvv+d5W2vVUt0Pg= cloud.google.com/go/gkemulticloud v1.0.3/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= +cloud.google.com/go/gkemulticloud v1.1.0 h1:C2Suwn3uPz+Yy0bxVjTlsMrUCaDovkgvfdyIa+EnUOU= +cloud.google.com/go/gkemulticloud v1.1.0/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= cloud.google.com/go/grafeas v0.2.0 h1:CYjC+xzdPvbV65gi6Dr4YowKcmLo045pm18L0DhdELM= cloud.google.com/go/gsuiteaddons v1.6.3 h1:fjt+72G2ZavxZ4JROTjrvjV6OJs/fHr9Uo+aOGDcH20= cloud.google.com/go/gsuiteaddons v1.6.3/go.mod h1:sCFJkZoMrLZT3JTb8uJqgKPNshH2tfXeCwTFRebTq48= @@ -335,6 +347,8 @@ cloud.google.com/go/orgpolicy v1.11.3 h1:oqXeClkeznFGEd/rcu4T0WYOTh5ec6OkkXskaSh cloud.google.com/go/orgpolicy v1.11.3/go.mod h1:oKAtJ/gkMjum5icv2aujkP4CxROxPXsBbYGCDbPO8MM= cloud.google.com/go/orgpolicy v1.11.4 h1:RWuXQDr9GDYhjmrredQJC7aY7cbyqP9ZuLbq5GJGves= cloud.google.com/go/orgpolicy v1.11.4/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= +cloud.google.com/go/orgpolicy v1.12.0 h1:sab7cDiyfdthpAL0JkSpyw1C3mNqkXToVOhalm79PJQ= +cloud.google.com/go/orgpolicy v1.12.0/go.mod h1:0+aNV/nrfoTQ4Mytv+Aw+stBDBjNf4d8fYRA9herfJI= cloud.google.com/go/osconfig v1.12.3 h1:PumxpZU71EpygOx0zkrx2HxlMvpyUmENB4e5nQc3+KM= cloud.google.com/go/osconfig v1.12.3/go.mod h1:L/fPS8LL6bEYUi1au832WtMnPeQNT94Zo3FwwV1/xGM= cloud.google.com/go/osconfig v1.12.4 h1:OrRCIYEAbrbXdhm13/JINn9pQchvTTIzgmOCA7uJw8I= @@ -465,6 +479,8 @@ cloud.google.com/go/translate v1.9.2 h1:liPk0EElBpafg4VAlZQwbg786X8/nnboOC4TmAN5 cloud.google.com/go/translate v1.9.2/go.mod h1:E3Tc6rUTsQkVrXW6avbUhKJSr7ZE3j7zNmqzXKHqRrY= cloud.google.com/go/translate v1.9.3 h1:t5WXTqlrk8VVJu/i3WrYQACjzYJiff5szARHiyqqPzI= cloud.google.com/go/translate v1.9.3/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= +cloud.google.com/go/translate v1.10.0 h1:tncNaKmlZnayMMRX/mMM2d5AJftecznnxVBD4w070NI= +cloud.google.com/go/translate v1.10.0/go.mod h1:Kbq9RggWsbqZ9W5YpM94Q1Xv4dshw/gr/SHfsl5yCZ0= cloud.google.com/go/video v1.20.2 h1:paeXmflm8qH81wzND2V6BrKkS3GuvLuSrktHpdh+fr0= cloud.google.com/go/video v1.20.2/go.mod h1:lrixr5JeKNThsgfM9gqtwb6Okuqzfo4VrY2xynaViTA= cloud.google.com/go/video v1.20.3 h1:Xrpbm2S9UFQ1pZEeJt9Vqm5t2T/z9y/M3rNXhFoo8Is= @@ -854,6 +870,8 @@ golang.org/x/term v0.14.0 h1:LGK9IlZ8T9jvdy6cTdfKUCltatMFOehAQo9SRC46UQ8= golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= +golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= gonum.org/v1/gonum v0.11.0 h1:f1IJhK4Km5tBJmaiJXtk/PkL4cdVX6J+tGiM187uT5E= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0 h1:OE9mWmgKkjJyEmDAAtGMPjXu+YNeGvK9VTSHY6+Qihc= diff --git a/package.json b/package.json index 7c2cbca0..6f7002c3 100644 --- a/package.json +++ b/package.json @@ -17,11 +17,11 @@ "@protobuf-ts/runtime": "^2.9.3", "@protobuf-ts/runtime-rpc": "^2.9.3", "@tool-belt/eslint-config": "^5.0.4", - "@types/node": "20.10.6", + "@types/node": "20.10.7", "@types/webpack": "^5.28.5", "@types/webpack-node-externals": "^3.0.4", - "@typescript-eslint/eslint-plugin": "^6.18.0", - "@typescript-eslint/parser": "^6.18.0", + "@typescript-eslint/eslint-plugin": "^6.18.1", + "@typescript-eslint/parser": "^6.18.1", "@vitest/coverage-v8": "^1.1.3", "eslint": "^8.56.0", "eslint-import-resolver-typescript": "^3.6.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index dac2186f..307951cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,10 +30,10 @@ importers: version: 2.9.3 '@tool-belt/eslint-config': specifier: ^5.0.4 - version: 5.0.4(@typescript-eslint/eslint-plugin@6.18.0)(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3) + version: 5.0.4(@typescript-eslint/eslint-plugin@6.18.1)(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3) '@types/node': - specifier: 20.10.6 - version: 20.10.6 + specifier: 20.10.7 + version: 20.10.7 '@types/webpack': specifier: ^5.28.5 version: 5.28.5(webpack-cli@5.1.4) @@ -41,11 +41,11 @@ importers: specifier: ^3.0.4 version: 3.0.4(webpack-cli@5.1.4) '@typescript-eslint/eslint-plugin': - specifier: ^6.18.0 - version: 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.18.1 + version: 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) '@typescript-eslint/parser': - specifier: ^6.18.0 - version: 6.18.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^6.18.1 + version: 6.18.1(eslint@8.56.0)(typescript@5.3.3) '@vitest/coverage-v8': specifier: ^1.1.3 version: 1.1.3(vitest@1.1.3) @@ -54,10 +54,10 @@ importers: version: 8.56.0 eslint-import-resolver-typescript: specifier: ^3.6.1 - version: 3.6.1(@typescript-eslint/parser@6.18.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + version: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-import@2.29.1)(eslint@8.56.0) eslint-plugin-vitest: specifier: ^0.3.20 - version: 0.3.20(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.1.3) + version: 0.3.20(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.1.3) fork-ts-checker-webpack-plugin: specifier: ^9.0.2 version: 9.0.2(typescript@5.3.3)(webpack@5.89.0) @@ -90,7 +90,7 @@ importers: version: 9.5.1(typescript@5.3.3)(webpack@5.89.0) ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.10.6)(typescript@5.3.3) + version: 10.9.2(@types/node@20.10.7)(typescript@5.3.3) tsconfig-paths-webpack-plugin: specifier: ^4.1.0 version: 4.1.0 @@ -102,7 +102,7 @@ importers: version: 4.2.3(typescript@5.3.3) vitest: specifier: ^1.1.3 - version: 1.1.3(@types/node@20.10.6) + version: 1.1.3(@types/node@20.10.7) vitest-mock-extended: specifier: ^1.3.1 version: 1.3.1(typescript@5.3.3)(vitest@1.1.3) @@ -128,8 +128,8 @@ importers: specifier: ^1.5.1 version: 1.5.1(@firebase/app@0.9.25) '@segment/analytics-next': - specifier: ^1.62.0 - version: 1.62.0 + specifier: ^1.62.1 + version: 1.62.1 '@uidotdev/usehooks': specifier: ^2.4.1 version: 2.4.1(react-dom@18.2.0)(react@18.2.0) @@ -166,6 +166,9 @@ importers: react-loading-icons: specifier: ^1.1.0 version: 1.1.0 + react-string-replace: + specifier: ^1.1.1 + version: 1.1.1 react-syntax-highlighter: specifier: ^15.5.0 version: 15.5.0(react@18.2.0) @@ -190,7 +193,7 @@ importers: version: 14.0.4 '@svgr/webpack': specifier: ^8.1.0 - version: 8.1.0 + version: 8.1.0(typescript@5.3.3) '@tailwindcss/forms': specifier: ^0.5.7 version: 0.5.7(tailwindcss@3.4.1) @@ -198,11 +201,11 @@ importers: specifier: ^0.5.10 version: 0.5.10(tailwindcss@3.4.1) '@testing-library/dom': - specifier: ^9.3.3 - version: 9.3.3 + specifier: ^9.3.4 + version: 9.3.4 '@testing-library/jest-dom': specifier: ^6.2.0 - version: 6.2.0 + version: 6.2.0(vitest@1.1.3) '@testing-library/react': specifier: ^14.1.2 version: 14.1.2(react-dom@18.2.0)(react@18.2.0) @@ -228,8 +231,8 @@ importers: specifier: ^4.5.0 version: 4.5.0(postcss@8.4.33) jsdom: - specifier: ^23.1.0 - version: 23.1.0 + specifier: ^23.2.0 + version: 23.2.0 mock-socket: specifier: ^9.3.1 version: 9.3.1 @@ -241,7 +244,7 @@ importers: version: 1.69.7 tailwindcss: specifier: 3.4.1 - version: 3.4.1 + version: 3.4.1(ts-node@10.9.2) vite-plugin-magical-svg: specifier: ^1.1.1 version: 1.1.1(vite@5.0.11) @@ -282,8 +285,8 @@ importers: specifier: ^2.0.0 version: 2.0.0 openai: - specifier: ^4.24.1 - version: 4.24.1 + specifier: ^4.24.2 + version: 4.24.2 pino: specifier: ^8.17.2 version: 8.17.2 @@ -325,6 +328,17 @@ packages: '@jridgewell/gen-mapping': 0.3.3 '@jridgewell/trace-mapping': 0.3.20 + /@asamuzakjp/dom-selector@2.0.1: + resolution: + { + integrity: sha512-QJAJffmCiymkv6YyQ7voyQb5caCth6jzZsQncYCpHXrJ7RqdYG5y43+is8mnFcYubdOkr7cn1+na9BdFMxqw7w==, + } + dependencies: + bidi-js: 1.0.3 + css-tree: 2.3.1 + is-potential-custom-element-name: 1.0.1 + dev: true + /@babel/code-frame@7.23.5: resolution: { @@ -354,7 +368,7 @@ packages: '@babel/generator': 7.23.6 '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-module-transforms': 7.23.3(@babel/core@7.23.7) - '@babel/helpers': 7.23.7 + '@babel/helpers': 7.23.8 '@babel/parser': 7.23.6 '@babel/template': 7.22.15 '@babel/traverse': 7.23.7 @@ -636,10 +650,10 @@ packages: '@babel/types': 7.23.6 dev: true - /@babel/helpers@7.23.7: + /@babel/helpers@7.23.8: resolution: { - integrity: sha512-6AMnjCoC8wjqBzDHkuqpa7jAKwvMo4dC+lr/TFBz+ucfulO1XMpDnwWPGBNwClOKZ8h6xn5N81W/R5OrcKtCbQ==, + integrity: sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ==, } engines: { node: '>=6.9.0' } dependencies: @@ -1072,10 +1086,10 @@ packages: '@babel/plugin-syntax-class-static-block': 7.14.5(@babel/core@7.23.7) dev: true - /@babel/plugin-transform-classes@7.23.5(@babel/core@7.23.7): + /@babel/plugin-transform-classes@7.23.8(@babel/core@7.23.7): resolution: { - integrity: sha512-jvOTR4nicqYC9yzOHIhXG5emiFEOpappSJAl73SDSEDcybD+Puuze8Tnpb9p9qEyYup24tq891gkaygIFvWDqg==, + integrity: sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1086,7 +1100,6 @@ packages: '@babel/helper-compilation-targets': 7.23.6 '@babel/helper-environment-visitor': 7.22.20 '@babel/helper-function-name': 7.23.0 - '@babel/helper-optimise-call-expression': 7.22.5 '@babel/helper-plugin-utils': 7.22.5 '@babel/helper-replace-supers': 7.22.20(@babel/core@7.23.7) '@babel/helper-split-export-declaration': 7.22.6 @@ -1762,10 +1775,10 @@ packages: '@babel/helper-plugin-utils': 7.22.5 dev: true - /@babel/preset-env@7.23.7(@babel/core@7.23.7): + /@babel/preset-env@7.23.8(@babel/core@7.23.7): resolution: { - integrity: sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA==, + integrity: sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA==, } engines: { node: '>=6.9.0' } peerDependencies: @@ -1805,7 +1818,7 @@ packages: '@babel/plugin-transform-block-scoping': 7.23.4(@babel/core@7.23.7) '@babel/plugin-transform-class-properties': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-class-static-block': 7.23.4(@babel/core@7.23.7) - '@babel/plugin-transform-classes': 7.23.5(@babel/core@7.23.7) + '@babel/plugin-transform-classes': 7.23.8(@babel/core@7.23.7) '@babel/plugin-transform-computed-properties': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-destructuring': 7.23.3(@babel/core@7.23.7) '@babel/plugin-transform-dotall-regex': 7.23.3(@babel/core@7.23.7) @@ -1912,10 +1925,10 @@ packages: } dev: true - /@babel/runtime@7.23.7: + /@babel/runtime@7.23.8: resolution: { - integrity: sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA==, + integrity: sha512-Y7KbAP984rn1VGMbGqKmBLio9V7y5Je9GvU4rQPCPinCyNfUcToxIXl06d59URp/F3LwinvODxab5N/G6qggkw==, } engines: { node: '>=6.9.0' } dependencies: @@ -3083,7 +3096,7 @@ packages: engines: { node: ^8.13.0 || >=10.10.0 } dependencies: '@grpc/proto-loader': 0.7.10 - '@types/node': 20.10.6 + '@types/node': 20.10.7 /@grpc/proto-loader@0.7.10: resolution: @@ -4036,34 +4049,36 @@ packages: dev: true optional: true - /@segment/analytics-core@1.4.0: + /@segment/analytics-core@1.4.1: resolution: { - integrity: sha512-rLUv5Se0iDccykxY8bWUuoZT4gg8fNW00zMPqkJN+ONfj5/P1eaGQgygq2EHlR9j20a7tNtp5Y9bZ4rLzViIXQ==, + integrity: sha512-kV0Pf33HnthuBOVdYNani21kYyj118Fn+9757bxqoksiXoZlYvBsFq6giNdCsKcTIE1eAMqNDq3xE1VQ0cfsHA==, } dependencies: '@lukeed/uuid': 2.0.1 - '@segment/analytics-generic-utils': 1.1.0 + '@segment/analytics-generic-utils': 1.1.1 dset: 3.1.3 tslib: 2.6.2 dev: false - /@segment/analytics-generic-utils@1.1.0: + /@segment/analytics-generic-utils@1.1.1: resolution: { - integrity: sha512-nOgmbfsKD0jFzH3df+PtjLq3qTspdcFpIy/F5ziho5qiE+QATM8wY9TpvCNBbcHr2f3OGzT6SgjJLFlmM5Yb+w==, + integrity: sha512-THTIzBPHnvu1HYJU3fARdJ3qIkukO3zDXsmDm+kAeUks5R9CBXOQ6rPChiASVzSmwAIIo5uFIXXnCraojlq/Gw==, } + dependencies: + tslib: 2.6.2 dev: false - /@segment/analytics-next@1.62.0: + /@segment/analytics-next@1.62.1: resolution: { - integrity: sha512-RuamvHQPVAkwO9/SSd/ioC/fT+4BaWvDlgkCKQi1DHXT4+5HG7bJROIUBgrHDmXEOVavnH7U97BIkZ1tgXEchw==, + integrity: sha512-B/sBlxozxIWiiQ/HHLL5Mszt7yCT8d4eaZ2gIyYvPcy36TjRnPi3bbVaIr5c1GlxB2TvzNkNRWZnbdb4o9PU3A==, } dependencies: '@lukeed/uuid': 2.0.1 - '@segment/analytics-core': 1.4.0 - '@segment/analytics-generic-utils': 1.1.0 + '@segment/analytics-core': 1.4.1 + '@segment/analytics-generic-utils': 1.1.1 '@segment/analytics.js-video-plugins': 0.2.1 '@segment/facade': 3.4.10 '@segment/tsub': 2.0.0 @@ -5578,7 +5593,7 @@ packages: '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.23.7) dev: true - /@svgr/core@8.1.0: + /@svgr/core@8.1.0(typescript@5.3.3): resolution: { integrity: sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==, @@ -5588,7 +5603,7 @@ packages: '@babel/core': 7.23.7 '@svgr/babel-preset': 8.1.0(@babel/core@7.23.7) camelcase: 6.3.0 - cosmiconfig: 8.3.6 + cosmiconfig: 8.3.6(typescript@5.3.3) snake-case: 3.0.4 transitivePeerDependencies: - supports-color @@ -5617,14 +5632,14 @@ packages: dependencies: '@babel/core': 7.23.7 '@svgr/babel-preset': 8.1.0(@babel/core@7.23.7) - '@svgr/core': 8.1.0 + '@svgr/core': 8.1.0(typescript@5.3.3) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color dev: true - /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0): + /@svgr/plugin-svgo@8.1.0(@svgr/core@8.1.0)(typescript@5.3.3): resolution: { integrity: sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==, @@ -5633,15 +5648,15 @@ packages: peerDependencies: '@svgr/core': '*' dependencies: - '@svgr/core': 8.1.0 - cosmiconfig: 8.3.6 + '@svgr/core': 8.1.0(typescript@5.3.3) + cosmiconfig: 8.3.6(typescript@5.3.3) deepmerge: 4.3.1 svgo: 3.2.0 transitivePeerDependencies: - typescript dev: true - /@svgr/webpack@8.1.0: + /@svgr/webpack@8.1.0(typescript@5.3.3): resolution: { integrity: sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==, @@ -5650,12 +5665,12 @@ packages: dependencies: '@babel/core': 7.23.7 '@babel/plugin-transform-react-constant-elements': 7.23.3(@babel/core@7.23.7) - '@babel/preset-env': 7.23.7(@babel/core@7.23.7) + '@babel/preset-env': 7.23.8(@babel/core@7.23.7) '@babel/preset-react': 7.23.3(@babel/core@7.23.7) '@babel/preset-typescript': 7.23.3(@babel/core@7.23.7) - '@svgr/core': 8.1.0 + '@svgr/core': 8.1.0(typescript@5.3.3) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0) - '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0) + '@svgr/plugin-svgo': 8.1.0(@svgr/core@8.1.0)(typescript@5.3.3) transitivePeerDependencies: - supports-color - typescript @@ -5679,7 +5694,7 @@ packages: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.1 + tailwindcss: 3.4.1(ts-node@10.9.2) dev: true /@tailwindcss/typography@0.5.10(tailwindcss@3.4.1): @@ -5694,18 +5709,18 @@ packages: lodash.isplainobject: 4.0.6 lodash.merge: 4.6.2 postcss-selector-parser: 6.0.10 - tailwindcss: 3.4.1 + tailwindcss: 3.4.1(ts-node@10.9.2) dev: true - /@testing-library/dom@9.3.3: + /@testing-library/dom@9.3.4: resolution: { - integrity: sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==, + integrity: sha512-FlS4ZWlp97iiNWig0Muq8p+3rVDjRiYE+YKGbAqXOu9nwJFFOdL00kFpz42M+4huzYi86vAK1sOOfyOG45muIQ==, } engines: { node: '>=14' } dependencies: '@babel/code-frame': 7.23.5 - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 '@types/aria-query': 5.0.4 aria-query: 5.1.3 chalk: 4.1.2 @@ -5714,7 +5729,7 @@ packages: pretty-format: 27.5.1 dev: true - /@testing-library/jest-dom@6.2.0: + /@testing-library/jest-dom@6.2.0(vitest@1.1.3): resolution: { integrity: sha512-+BVQlJ9cmEn5RDMUS8c2+TU6giLvzaHZ8sU/x0Jj7fk+6/46wPdwlgOPcpxS17CjcanBi/3VmGMqVr2rmbUmNw==, @@ -5736,13 +5751,14 @@ packages: optional: true dependencies: '@adobe/css-tools': 4.3.2 - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 aria-query: 5.3.0 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 + vitest: 1.1.3(@types/node@20.10.7) dev: true /@testing-library/react@14.1.2(react-dom@18.2.0)(react@18.2.0): @@ -5755,14 +5771,14 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 dependencies: - '@babel/runtime': 7.23.7 - '@testing-library/dom': 9.3.3 + '@babel/runtime': 7.23.8 + '@testing-library/dom': 9.3.4 '@types/react-dom': 18.2.18 react: 18.2.0 react-dom: 18.2.0(react@18.2.0) dev: true - /@tool-belt/eslint-config@5.0.4(@typescript-eslint/eslint-plugin@6.18.0)(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3): + /@tool-belt/eslint-config@5.0.4(@typescript-eslint/eslint-plugin@6.18.1)(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0)(prettier@3.1.1)(typescript@5.3.3): resolution: { integrity: sha512-+RB0mObIdmL7xSVRE4qLs0oMMEHUsOwy20SuQ06gvFqOVo2cWENgSHOXx97dgaIn7/pEZ4EyQiqaer81SKAmtw==, @@ -5775,13 +5791,13 @@ packages: prettier: '>=3.0.0' typescript: '>=5.1.6' dependencies: - '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-config-prettier: 9.1.0(eslint@8.56.0) - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-import@2.29.1)(eslint@8.56.0) eslint-plugin-eslint-comments: 3.2.0(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) eslint-plugin-markdown: 3.0.1(eslint@8.56.0) eslint-plugin-n: 16.5.0(eslint@8.56.0) @@ -5794,9 +5810,9 @@ packages: eslint-plugin-sonarjs: 0.23.0(eslint@8.56.0) eslint-plugin-sort-keys-fix: 1.1.2 eslint-plugin-testing-library: 6.2.0(eslint@8.56.0)(typescript@5.3.3) - eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) + eslint-plugin-typescript-sort-keys: 3.1.0(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) eslint-plugin-unicorn: 50.0.1(eslint@8.56.0) - eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0) + eslint-plugin-unused-imports: 3.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0) prettier: 3.1.1 typescript: 5.3.3 transitivePeerDependencies: @@ -5968,23 +5984,23 @@ packages: integrity: sha512-PPpPK6F9ALFTn59Ka3BaL+qGuipRfxNE8qVgkp0bVixeiR2c2/L+IVOiBdu9JhhT22sWnQEp6YyHGI2b2+CMcA==, } dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.5 form-data: 4.0.0 dev: false - /@types/node@18.19.4: + /@types/node@18.19.5: resolution: { - integrity: sha512-xNzlUhzoHotIsnFoXmJB+yWmBvFZgKCI9TtPIEdYIMM1KWfwuY8zh7wvc1u1OAXlC7dlf6mZVx/s+Y5KfFz19A==, + integrity: sha512-22MG6T02Hos2JWfa1o5jsIByn+bc5iOt1IS4xyg6OG68Bu+wMonVZzdrgCw693++rpLE9RUT/Bx15BeDzO0j+g==, } dependencies: undici-types: 5.26.5 dev: false - /@types/node@20.10.6: + /@types/node@20.10.7: resolution: { - integrity: sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==, + integrity: sha512-fRbIKb8C/Y2lXxB5eVMj4IU7xpdox0Lh8bUPEdtLysaylsml1hOOx1+STloRs/B9nf7C6kPRmmg/V7aQW7usNg==, } dependencies: undici-types: 5.26.5 @@ -5995,7 +6011,7 @@ packages: integrity: sha512-vjKuaQOLUA5EY2zkUmWG1ipXbKt9Wd+H/0SiIuHVeH4cHtt6509iRUGH9ZR0iqgUrtj3BrP9KqoTuV3ZCbQcYA==, } dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 dev: true /@types/normalize-package-data@2.4.4: @@ -6071,7 +6087,7 @@ packages: integrity: sha512-8Z3/edqxE3RRlOJwKSgOFxLZRt/i1qFlv/Bi308ZUKo9jh8oGngd9r8GR0ZNKW5AEJq8QNQE3b17CwghTjQ0Uw==, } dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 webpack: 5.89.0(webpack-cli@5.1.4) transitivePeerDependencies: - '@swc/core' @@ -6086,7 +6102,7 @@ packages: integrity: sha512-wR87cgvxj3p6D0Crt1r5avwqffqPXUkNlnQ1mjU93G7gCuFjufZR4I6j8cz5g1F1tTYpfOOFvly+cmIQwL9wvw==, } dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 tapable: 2.2.1 webpack: 5.89.0(webpack-cli@5.1.4) transitivePeerDependencies: @@ -6096,10 +6112,10 @@ packages: - webpack-cli dev: true - /@typescript-eslint/eslint-plugin@6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/eslint-plugin@6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-3lqEvQUdCozi6d1mddWqd+kf8KxmGq2Plzx36BlkjuQe3rSTm/O98cLf0A4uDO+a5N1KD2SeEEl6fW97YHY+6w==, + integrity: sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA==, } engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: @@ -6111,11 +6127,11 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/type-utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/type-utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 graphemer: 1.4.0 @@ -6144,10 +6160,10 @@ packages: - typescript dev: true - /@typescript-eslint/parser@6.18.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/parser@6.18.1(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-v6uR68SFvqhNQT41frCMCQpsP+5vySy6IdgjlzUWoo7ALCnpaWYcz/Ij2k4L8cEsL0wkvOviCMpjmtRtHNOKzA==, + integrity: sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA==, } engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: @@ -6157,10 +6173,10 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 eslint: 8.56.0 typescript: 5.3.3 @@ -6179,21 +6195,21 @@ packages: '@typescript-eslint/visitor-keys': 5.62.0 dev: true - /@typescript-eslint/scope-manager@6.18.0: + /@typescript-eslint/scope-manager@6.18.1: resolution: { - integrity: sha512-o/UoDT2NgOJ2VfHpfr+KBY2ErWvCySNUIX/X7O9g8Zzt/tXdpfEU43qbNk8LVuWUT2E0ptzTWXh79i74PP0twA==, + integrity: sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw==, } engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 dev: true - /@typescript-eslint/type-utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/type-utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-ZeMtrXnGmTcHciJN1+u2CigWEEXgy1ufoxtWcHORt5kGvpjjIlK9MUhzHm4RM8iVy6dqSaZA/6PVkX6+r+ChjQ==, + integrity: sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q==, } engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: @@ -6203,8 +6219,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) debug: 4.3.4 eslint: 8.56.0 ts-api-utils: 1.0.3(typescript@5.3.3) @@ -6221,10 +6237,10 @@ packages: engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } dev: true - /@typescript-eslint/types@6.18.0: + /@typescript-eslint/types@6.18.1: resolution: { - integrity: sha512-/RFVIccwkwSdW/1zeMx3hADShWbgBxBnV/qSrex6607isYjj05t36P6LyONgqdUrNLl5TYU8NIKdHUYpFvExkA==, + integrity: sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw==, } engines: { node: ^16.0.0 || >=18.0.0 } dev: true @@ -6253,10 +6269,10 @@ packages: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.18.0(typescript@5.3.3): + /@typescript-eslint/typescript-estree@6.18.1(typescript@5.3.3): resolution: { - integrity: sha512-klNvl+Ql4NsBNGB4W9TZ2Od03lm7aGvTbs0wYaFYsplVPhr+oeXjlPZCDI4U9jgJIDK38W1FKhacCFzCC+nbIg==, + integrity: sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA==, } engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: @@ -6265,8 +6281,8 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/visitor-keys': 6.18.0 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/visitor-keys': 6.18.1 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 @@ -6301,10 +6317,10 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.18.0(eslint@8.56.0)(typescript@5.3.3): + /@typescript-eslint/utils@6.18.1(eslint@8.56.0)(typescript@5.3.3): resolution: { - integrity: sha512-wiKKCbUeDPGaYEYQh1S580dGxJ/V9HI7K5sbGAVklyf+o5g3O+adnS4UNJajplF4e7z2q0uVBaTdT/yLb4XAVA==, + integrity: sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ==, } engines: { node: ^16.0.0 || >=18.0.0 } peerDependencies: @@ -6313,9 +6329,9 @@ packages: '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) '@types/json-schema': 7.0.15 '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.18.0 - '@typescript-eslint/types': 6.18.0 - '@typescript-eslint/typescript-estree': 6.18.0(typescript@5.3.3) + '@typescript-eslint/scope-manager': 6.18.1 + '@typescript-eslint/types': 6.18.1 + '@typescript-eslint/typescript-estree': 6.18.1(typescript@5.3.3) eslint: 8.56.0 semver: 7.5.4 transitivePeerDependencies: @@ -6334,14 +6350,14 @@ packages: eslint-visitor-keys: 3.4.3 dev: true - /@typescript-eslint/visitor-keys@6.18.0: + /@typescript-eslint/visitor-keys@6.18.1: resolution: { - integrity: sha512-1wetAlSZpewRDb2h9p/Q8kRjdGuqdTAQbkJIOUMLug2LBLG+QOjiWoSj6/3B/hA9/tVTFFdtiKvAYoYnSRW/RA==, + integrity: sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA==, } engines: { node: ^16.0.0 || >=18.0.0 } dependencies: - '@typescript-eslint/types': 6.18.0 + '@typescript-eslint/types': 6.18.1 eslint-visitor-keys: 3.4.3 dev: true @@ -6380,7 +6396,7 @@ packages: '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.7) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.0.11(sass@1.69.7) + vite: 5.0.11(@types/node@20.10.7)(sass@1.69.7) transitivePeerDependencies: - supports-color dev: true @@ -6406,7 +6422,7 @@ packages: std-env: 3.7.0 test-exclude: 6.0.0 v8-to-istanbul: 9.2.0 - vitest: 1.1.3(@types/node@20.10.6) + vitest: 1.1.3(@types/node@20.10.7) transitivePeerDependencies: - supports-color dev: true @@ -7058,7 +7074,7 @@ packages: postcss: ^8.1.0 dependencies: browserslist: 4.22.2 - caniuse-lite: 1.0.30001574 + caniuse-lite: 1.0.30001576 fraction.js: 4.3.7 normalize-range: 0.1.2 picocolors: 1.0.0 @@ -7156,6 +7172,15 @@ packages: integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, } + /bidi-js@1.0.3: + resolution: + { + integrity: sha512-RKshQI1R3YQ+n9YJz2QQ147P66ELpa1FQEg20Dk8oW9t2KgLbpDLLp9aGZ7y8WHSshDknG0bknqGw5/tyCs5tw==, + } + dependencies: + require-from-string: 2.0.2 + dev: true + /binary-extensions@2.2.0: resolution: { @@ -7206,8 +7231,8 @@ packages: engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true dependencies: - caniuse-lite: 1.0.30001574 - electron-to-chromium: 1.4.623 + caniuse-lite: 1.0.30001576 + electron-to-chromium: 1.4.625 node-releases: 2.0.14 update-browserslist-db: 1.0.13(browserslist@4.22.2) @@ -7296,10 +7321,10 @@ packages: engines: { node: '>=10' } dev: true - /caniuse-lite@1.0.30001574: + /caniuse-lite@1.0.30001576: resolution: { - integrity: sha512-BtYEK4r/iHt/txm81KBudCUcTy7t+s9emrIaHqjYurQ10x71zJ5VQ9x1dYPcz/b+pKSp4y/v1xSI67A+LzpNyg==, + integrity: sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg==, } /chai@4.4.0: @@ -7608,24 +7633,6 @@ packages: browserslist: 4.22.2 dev: true - /cosmiconfig@8.3.6: - resolution: - { - integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, - } - engines: { node: '>=14' } - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - dependencies: - import-fresh: 3.3.0 - js-yaml: 4.1.0 - parse-json: 5.2.0 - path-type: 4.0.0 - dev: true - /cosmiconfig@8.3.6(typescript@5.3.3): resolution: { @@ -8126,10 +8133,10 @@ packages: } dev: true - /electron-to-chromium@1.4.623: + /electron-to-chromium@1.4.625: resolution: { - integrity: sha512-lKoz10iCYlP1WtRYdh5MvocQPWVRoI7ysp6qf18bmeBgR8abE6+I2CsfyNKztRDZvhdWc+krKT6wS7Neg8sw3A==, + integrity: sha512-DENMhh3MFgaPDoXWrVIqSPInQoLImywfCwrSmVl3cf9QHzoZSiutHwGaB/Ql3VkqcQV30rzgdM+BjKqBAJxo5Q==, } /emoji-regex@8.0.0: @@ -8411,7 +8418,7 @@ packages: - supports-color dev: true - /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0): + /eslint-import-resolver-typescript@3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-import@2.29.1)(eslint@8.56.0): resolution: { integrity: sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==, @@ -8424,8 +8431,8 @@ packages: debug: 4.3.4 enhanced-resolve: 5.15.0 eslint: 8.56.0 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) fast-glob: 3.3.2 get-tsconfig: 4.7.2 is-core-module: 2.13.1 @@ -8437,7 +8444,7 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-module-utils@2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: { integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==, @@ -8461,11 +8468,11 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) debug: 3.2.7(supports-color@5.5.0) eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.0)(eslint-plugin-import@2.29.1)(eslint@8.56.0) + eslint-import-resolver-typescript: 3.6.1(@typescript-eslint/parser@6.18.1)(eslint-plugin-import@2.29.1)(eslint@8.56.0) transitivePeerDependencies: - supports-color dev: true @@ -8499,7 +8506,7 @@ packages: ignore: 5.3.0 dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0): resolution: { integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==, @@ -8512,7 +8519,7 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) array-includes: 3.1.7 array.prototype.findlastindex: 1.2.3 array.prototype.flat: 1.3.2 @@ -8521,7 +8528,7 @@ packages: doctrine: 2.1.0 eslint: 8.56.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.0)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) + eslint-module-utils: 2.8.0(@typescript-eslint/parser@6.18.1)(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.6.1)(eslint@8.56.0) hasown: 2.0.0 is-core-module: 2.13.1 is-glob: 4.0.3 @@ -8546,7 +8553,7 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 aria-query: 5.3.0 array-includes: 3.1.7 array.prototype.flatmap: 1.3.2 @@ -8740,7 +8747,7 @@ packages: - typescript dev: true - /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3): + /eslint-plugin-typescript-sort-keys@3.1.0(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3): resolution: { integrity: sha512-rgZeYfEguqKni/V7sbmgFu9/94UDAQd7YqNd0J7Qhw7SdLIGd0iBk2KgpjhRhe2ge4rPSLDIdFWwUiDqBOst6Q==, @@ -8752,7 +8759,7 @@ packages: typescript: ^3 || ^4 || ^5 dependencies: '@typescript-eslint/experimental-utils': 5.62.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/parser': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/parser': 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 json-schema: 0.4.0 natural-compare-lite: 1.4.0 @@ -8791,7 +8798,7 @@ packages: - supports-color dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0): + /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0): resolution: { integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==, @@ -8804,12 +8811,12 @@ packages: '@typescript-eslint/eslint-plugin': optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 eslint-rule-composer: 0.3.0 dev: true - /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.18.0)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.1.3): + /eslint-plugin-vitest@0.3.20(@typescript-eslint/eslint-plugin@6.18.1)(eslint@8.56.0)(typescript@5.3.3)(vitest@1.1.3): resolution: { integrity: sha512-O05k4j9TGMOkkghj9dRgpeLDyOSiVIxQWgNDPfhYPm5ioJsehcYV/zkRLekQs+c8+RBCVXucSED3fYOyy2EoWA==, @@ -8825,10 +8832,10 @@ packages: vitest: optional: true dependencies: - '@typescript-eslint/eslint-plugin': 6.18.0(@typescript-eslint/parser@6.18.0)(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.18.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/eslint-plugin': 6.18.1(@typescript-eslint/parser@6.18.1)(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/utils': 6.18.1(eslint@8.56.0)(typescript@5.3.3) eslint: 8.56.0 - vitest: 1.1.3(@types/node@20.10.6) + vitest: 1.1.3(@types/node@20.10.7) transitivePeerDependencies: - supports-color - typescript @@ -10360,7 +10367,7 @@ packages: } engines: { node: '>= 10.13.0' } dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 merge-stream: 2.0.0 supports-color: 8.1.1 dev: true @@ -10412,10 +10419,10 @@ packages: argparse: 2.0.1 dev: true - /jsdom@23.1.0: + /jsdom@23.2.0: resolution: { - integrity: sha512-wRscu8dBFxi7O65Cvi0jFRDv0Qa7XEHPix8Qg/vlXHLAMQsRWV1EDeQHBermzXf4Dt7JtFgBLbva3iTcBZDXEQ==, + integrity: sha512-L88oL7D/8ufIES+Zjz7v0aes+oBMh2Xnh3ygWvL0OaICOomKEPKuPnIfBJekiXr+BHbbMjrWn/xqrDQuxFTeyA==, } engines: { node: '>=18' } peerDependencies: @@ -10424,6 +10431,7 @@ packages: canvas: optional: true dependencies: + '@asamuzakjp/dom-selector': 2.0.1 cssstyle: 4.0.1 data-urls: 5.0.0 decimal.js: 10.4.3 @@ -10432,7 +10440,6 @@ packages: http-proxy-agent: 7.0.0 https-proxy-agent: 7.0.2 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 parse5: 7.1.2 rrweb-cssom: 0.6.0 saxes: 6.0.0 @@ -11123,7 +11130,7 @@ packages: '@next/env': 14.0.4 '@swc/helpers': 0.5.2 busboy: 1.6.0 - caniuse-lite: 1.0.30001574 + caniuse-lite: 1.0.30001576 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.2.0 @@ -11282,13 +11289,6 @@ packages: boolbase: 1.0.0 dev: true - /nwsapi@2.2.7: - resolution: - { - integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==, - } - dev: true - /obj-case@0.2.1: resolution: { @@ -11433,14 +11433,14 @@ packages: mimic-fn: 4.0.0 dev: true - /openai@4.24.1: + /openai@4.24.2: resolution: { - integrity: sha512-ezm/O3eiZMnyBqirUnWm9N6INJU1WhNtz+nK/Zj/2oyKvRz9pgpViDxa5wYOtyGYXPn1sIKBV0I/S4BDhtydqw==, + integrity: sha512-Np5zFPAYsBRmsfgPS8cMM25r1wVO5NCTdmeoYDNEUhJn/rw6jNXU0CFSFwhbWsjIkYhdv31pPIzQ0xChHCvltQ==, } hasBin: true dependencies: - '@types/node': 18.19.4 + '@types/node': 18.19.5 '@types/node-fetch': 2.6.10 abort-controller: 3.0.0 agentkeepalive: 4.5.0 @@ -11702,7 +11702,7 @@ packages: pump: 3.0.0 readable-stream: 4.5.2 secure-json-parse: 2.7.0 - sonic-boom: 3.7.0 + sonic-boom: 3.8.0 strip-json-comments: 3.1.1 dev: true @@ -11741,7 +11741,7 @@ packages: quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.4.3 - sonic-boom: 3.7.0 + sonic-boom: 3.8.0 thread-stream: 2.4.1 /pirates@4.0.6: @@ -11809,7 +11809,7 @@ packages: postcss: 8.4.33 dev: true - /postcss-load-config@4.0.2(postcss@8.4.33): + /postcss-load-config@4.0.2(postcss@8.4.33)(ts-node@10.9.2): resolution: { integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==, @@ -11826,6 +11826,7 @@ packages: dependencies: lilconfig: 3.0.0 postcss: 8.4.33 + ts-node: 10.9.2(@types/node@20.10.7)(typescript@5.3.3) yaml: 2.3.4 dev: true @@ -12024,7 +12025,7 @@ packages: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 20.10.6 + '@types/node': 20.10.7 long: 5.2.3 /psl@1.9.0: @@ -12158,6 +12159,14 @@ packages: engines: { node: '>=0.10.0' } dev: true + /react-string-replace@1.1.1: + resolution: + { + integrity: sha512-26TUbLzLfHQ5jO5N7y3Mx88eeKo0Ml0UjCQuX4BMfOd/JX+enQqlKpL1CZnmjeBRvQE8TR+ds9j1rqx9CxhKHQ==, + } + engines: { node: '>=0.12.0' } + dev: false + /react-syntax-highlighter@15.5.0(react@18.2.0): resolution: { @@ -12166,7 +12175,7 @@ packages: peerDependencies: react: '>= 0.14.0' dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 highlight.js: 10.7.3 lowlight: 1.20.0 prismjs: 1.29.0 @@ -12335,7 +12344,7 @@ packages: integrity: sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==, } dependencies: - '@babel/runtime': 7.23.7 + '@babel/runtime': 7.23.8 dev: true /regexp-to-ast@0.5.0: @@ -12407,6 +12416,14 @@ packages: } engines: { node: '>=0.10.0' } + /require-from-string@2.0.2: + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: '>=0.10.0' } + dev: true + /requireindex@1.2.0: resolution: { @@ -12663,10 +12680,10 @@ packages: dependencies: lru-cache: 6.0.0 - /serialize-javascript@6.0.1: + /serialize-javascript@6.0.2: resolution: { - integrity: sha512-owoXEFjWRllis8/M1Q+Cw5k8ZH40e3zhp/ovX+Xr/vi1qj6QesbyXXViFbpNvWvPNAD62SutwEXavefrLJWj7w==, + integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, } dependencies: randombytes: 2.1.0 @@ -12819,10 +12836,10 @@ packages: tslib: 2.6.2 dev: true - /sonic-boom@3.7.0: + /sonic-boom@3.8.0: resolution: { - integrity: sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==, + integrity: sha512-ybz6OYOUjoQQCQ/i4LU8kaToD8ACtYP+Cj5qd2AO36bwbdewxWJ3ArmJ2cr6AvxlL2o0PqnCcPGUgkILbfkaCA==, } dependencies: atomic-sleep: 1.0.0 @@ -13220,7 +13237,7 @@ packages: tslib: 2.6.2 dev: true - /tailwindcss@3.4.1: + /tailwindcss@3.4.1(ts-node@10.9.2): resolution: { integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==, @@ -13245,7 +13262,7 @@ packages: postcss: 8.4.33 postcss-import: 15.1.0(postcss@8.4.33) postcss-js: 4.0.1(postcss@8.4.33) - postcss-load-config: 4.0.2(postcss@8.4.33) + postcss-load-config: 4.0.2(postcss@8.4.33)(ts-node@10.9.2) postcss-nested: 6.0.1(postcss@8.4.33) postcss-selector-parser: 6.0.15 resolve: 1.22.8 @@ -13284,7 +13301,7 @@ packages: '@jridgewell/trace-mapping': 0.3.20 jest-worker: 27.5.1 schema-utils: 3.3.0 - serialize-javascript: 6.0.1 + serialize-javascript: 6.0.2 terser: 5.26.0 webpack: 5.89.0(webpack-cli@5.1.4) dev: true @@ -13494,7 +13511,7 @@ packages: webpack: 5.89.0(webpack-cli@5.1.4) dev: true - /ts-node@10.9.2(@types/node@20.10.6)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.10.7)(typescript@5.3.3): resolution: { integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, @@ -13516,7 +13533,7 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.10.6 + '@types/node': 20.10.7 acorn: 8.11.3 acorn-walk: 8.3.1 arg: 4.1.3 @@ -13938,7 +13955,7 @@ packages: engines: { node: '>= 0.10' } dev: false - /vite-node@1.1.3(@types/node@20.10.6): + /vite-node@1.1.3(@types/node@20.10.7): resolution: { integrity: sha512-BLSO72YAkIUuNrOx+8uznYICJfTEbvBAmWClY3hpath5+h1mbPS5OMn42lrTxXuyCazVyZoDkSRnju78GiVCqA==, @@ -13950,7 +13967,7 @@ packages: debug: 4.3.4 pathe: 1.1.1 picocolors: 1.0.0 - vite: 5.0.11(@types/node@20.10.6)(sass@1.69.7) + vite: 5.0.11(@types/node@20.10.7)(sass@1.69.7) transitivePeerDependencies: - '@types/node' - less @@ -13972,7 +13989,7 @@ packages: dependencies: magic-string: 0.30.5 svgo: 3.2.0 - vite: 5.0.11(sass@1.69.7) + vite: 5.0.11(@types/node@20.10.7)(sass@1.69.7) xml2js: 0.6.2 dev: true @@ -13995,47 +14012,7 @@ packages: - typescript dev: true - /vite@5.0.11(@types/node@20.10.6)(sass@1.69.7): - resolution: - { - integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, - } - engines: { node: ^18.0.0 || >=20.0.0 } - hasBin: true - peerDependencies: - '@types/node': ^18.0.0 || >=20.0.0 - less: '*' - lightningcss: ^1.21.0 - sass: '*' - stylus: '*' - sugarss: '*' - terser: ^5.4.0 - peerDependenciesMeta: - '@types/node': - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - dependencies: - '@types/node': 20.10.6 - esbuild: 0.19.11 - postcss: 8.4.33 - rollup: 4.9.4 - sass: 1.69.7 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /vite@5.0.11(sass@1.69.7): + /vite@5.0.11(@types/node@20.10.7)(sass@1.69.7): resolution: { integrity: sha512-XBMnDjZcNAw/G1gEiskiM1v6yzM4GE5aMGvhWTlHAYYhxb7S3/V1s3m2LDHa8Vh6yIWYYB0iJwsEaS523c4oYA==, @@ -14066,6 +14043,7 @@ packages: terser: optional: true dependencies: + '@types/node': 20.10.7 esbuild: 0.19.11 postcss: 8.4.33 rollup: 4.9.4 @@ -14085,10 +14063,10 @@ packages: dependencies: ts-essentials: 9.4.1(typescript@5.3.3) typescript: 5.3.3 - vitest: 1.1.3(@types/node@20.10.6) + vitest: 1.1.3(@types/node@20.10.7) dev: true - /vitest@1.1.3(@types/node@20.10.6): + /vitest@1.1.3(@types/node@20.10.7): resolution: { integrity: sha512-2l8om1NOkiA90/Y207PsEvJLYygddsOyr81wLQ20Ra8IlLKbyQncWsGZjnbkyG2KwwuTXLQjEPOJuxGMG8qJBQ==, @@ -14116,7 +14094,7 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.10.6 + '@types/node': 20.10.7 '@vitest/expect': 1.1.3 '@vitest/runner': 1.1.3 '@vitest/snapshot': 1.1.3 @@ -14135,8 +14113,8 @@ packages: strip-literal: 1.3.0 tinybench: 2.5.1 tinypool: 0.8.1 - vite: 5.0.11(@types/node@20.10.6)(sass@1.69.7) - vite-node: 1.1.3(@types/node@20.10.6) + vite: 5.0.11(@types/node@20.10.7)(sass@1.69.7) + vite-node: 1.1.3(@types/node@20.10.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less diff --git a/services/openai-connector/package.json b/services/openai-connector/package.json index dcd65107..5560b386 100644 --- a/services/openai-connector/package.json +++ b/services/openai-connector/package.json @@ -14,7 +14,7 @@ "@protobuf-ts/runtime": "^2.9.3", "@protobuf-ts/runtime-rpc": "^2.9.3", "grpc-health-check": "^2.0.0", - "openai": "^4.24.1", + "openai": "^4.24.2", "pino": "^8.17.2", "tiktoken": "^1.0.11" }