From 0cd44a68e90570dee63eea474ccca782fe0cc299 Mon Sep 17 00:00:00 2001 From: Andreas Date: Mon, 18 Dec 2023 21:47:51 +0700 Subject: [PATCH 01/12] yarn openapi --- www/app/[domain]/transcripts/new/page.tsx | 1 + www/app/api/apis/DefaultApi.ts | 102 ++++++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/www/app/[domain]/transcripts/new/page.tsx b/www/app/[domain]/transcripts/new/page.tsx index 045c2db5..3e10c7c6 100644 --- a/www/app/[domain]/transcripts/new/page.tsx +++ b/www/app/[domain]/transcripts/new/page.tsx @@ -59,6 +59,7 @@ const TranscriptCreate = () => {

Welcome to reflector.media

+

Reflector is a transcription and summarization pipeline that transforms audio into knowledge. diff --git a/www/app/api/apis/DefaultApi.ts b/www/app/api/apis/DefaultApi.ts index 312d0c5e..7d37a1c9 100644 --- a/www/app/api/apis/DefaultApi.ts +++ b/www/app/api/apis/DefaultApi.ts @@ -131,6 +131,11 @@ export interface V1TranscriptMergeSpeakerRequest { speakerMerge: SpeakerMerge; } +export interface V1TranscriptRecordUploadRequest { + transcriptId: any; + file: any | null; +} + export interface V1TranscriptRecordWebrtcRequest { transcriptId: any; rtcOffer: RtcOffer; @@ -1210,6 +1215,103 @@ export class DefaultApi extends runtime.BaseAPI { return await response.value(); } + /** + * Transcript Record Upload + */ + async v1TranscriptRecordUploadRaw( + requestParameters: V1TranscriptRecordUploadRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise> { + if ( + requestParameters.transcriptId === null || + requestParameters.transcriptId === undefined + ) { + throw new runtime.RequiredError( + "transcriptId", + "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptRecordUpload.", + ); + } + + if ( + requestParameters.file === null || + requestParameters.file === undefined + ) { + throw new runtime.RequiredError( + "file", + "Required parameter requestParameters.file was null or undefined when calling v1TranscriptRecordUpload.", + ); + } + + const queryParameters: any = {}; + + const headerParameters: runtime.HTTPHeaders = {}; + + if (this.configuration && this.configuration.accessToken) { + // oauth required + headerParameters["Authorization"] = await this.configuration.accessToken( + "OAuth2AuthorizationCodeBearer", + [], + ); + } + + const consumes: runtime.Consume[] = [ + { contentType: "multipart/form-data" }, + ]; + // @ts-ignore: canConsumeForm may be unused + const canConsumeForm = runtime.canConsumeForm(consumes); + + let formParams: { append(param: string, value: any): any }; + let useForm = false; + if (useForm) { + formParams = new FormData(); + } else { + formParams = new URLSearchParams(); + } + + if (requestParameters.file !== undefined) { + formParams.append( + "file", + new Blob([JSON.stringify(anyToJSON(requestParameters.file))], { + type: "application/json", + }), + ); + } + + const response = await this.request( + { + path: `/v1/transcripts/{transcript_id}/record/upload`.replace( + `{${"transcript_id"}}`, + encodeURIComponent(String(requestParameters.transcriptId)), + ), + method: "POST", + headers: headerParameters, + query: queryParameters, + body: formParams, + }, + initOverrides, + ); + + if (this.isJsonMime(response.headers.get("content-type"))) { + return new runtime.JSONApiResponse(response); + } else { + return new runtime.TextApiResponse(response) as any; + } + } + + /** + * Transcript Record Upload + */ + async v1TranscriptRecordUpload( + requestParameters: V1TranscriptRecordUploadRequest, + initOverrides?: RequestInit | runtime.InitOverrideFunction, + ): Promise { + const response = await this.v1TranscriptRecordUploadRaw( + requestParameters, + initOverrides, + ); + return await response.value(); + } + /** * Transcript Record Webrtc */ From 43a3e17c0b2db7a4a310b7c6391eb680a329fd13 Mon Sep 17 00:00:00 2001 From: Mathieu Virbel Date: Wed, 20 Dec 2023 12:02:10 +0100 Subject: [PATCH 02/12] WIP --- www/app/api/apis/DefaultApi.ts | 1613 ----------------- www/app/api/apis/index.ts | 3 - www/app/api/core/ApiError.ts | 29 + www/app/api/core/ApiRequestOptions.ts | 24 + www/app/api/core/ApiResult.ts | 11 + www/app/api/core/CancelablePromise.ts | 130 ++ www/app/api/core/OpenAPI.ts | 32 + www/app/api/core/request.ts | 361 ++++ www/app/api/index.ts | 36 +- www/app/api/models/AudioWaveform.ts | 68 +- ...ipts__transcript_id__record_upload_post.ts | 9 + www/app/api/models/CreateParticipant.ts | 77 +- www/app/api/models/CreateTranscript.ts | 90 +- www/app/api/models/DeletionStatus.ts | 68 +- www/app/api/models/GetTranscript.ts | 207 +-- .../api/models/GetTranscriptSegmentTopic.ts | 92 +- www/app/api/models/GetTranscriptTopic.ts | 129 +- .../api/models/GetTranscriptTopicWithWords.ts | 141 +- .../GetTranscriptTopicWithWordsPerSpeaker.ts | 145 +- www/app/api/models/HTTPValidationError.ts | 69 +- www/app/api/models/PageGetTranscript.ts | 101 -- www/app/api/models/Page_GetTranscript_.ts | 14 + www/app/api/models/Participant.ts | 88 +- www/app/api/models/RtcOffer.ts | 78 +- www/app/api/models/SpeakerAssignment.ts | 96 +- www/app/api/models/SpeakerAssignmentStatus.ts | 72 +- www/app/api/models/SpeakerMerge.ts | 78 +- www/app/api/models/SpeakerWords.ts | 78 +- www/app/api/models/TranscriptParticipant.ts | 91 +- www/app/api/models/TranscriptSegmentTopic.ts | 88 - www/app/api/models/TranscriptTopic.ts | 100 - www/app/api/models/UpdateParticipant.ts | 76 +- www/app/api/models/UpdateTranscript.ts | 136 +- www/app/api/models/UserInfo.ts | 88 +- www/app/api/models/ValidationError.ts | 88 +- www/app/api/models/Word.ts | 97 +- www/app/api/models/index.ts | 25 - www/app/api/services/DefaultService.ts | 546 ++++++ www/app/lib/getApi.ts | 25 +- www/package.json | 5 +- www/yarn.lock | 153 +- 41 files changed, 1542 insertions(+), 3915 deletions(-) delete mode 100644 www/app/api/apis/DefaultApi.ts delete mode 100644 www/app/api/apis/index.ts create mode 100644 www/app/api/core/ApiError.ts create mode 100644 www/app/api/core/ApiRequestOptions.ts create mode 100644 www/app/api/core/ApiResult.ts create mode 100644 www/app/api/core/CancelablePromise.ts create mode 100644 www/app/api/core/OpenAPI.ts create mode 100644 www/app/api/core/request.ts create mode 100644 www/app/api/models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post.ts delete mode 100644 www/app/api/models/PageGetTranscript.ts create mode 100644 www/app/api/models/Page_GetTranscript_.ts delete mode 100644 www/app/api/models/TranscriptSegmentTopic.ts delete mode 100644 www/app/api/models/TranscriptTopic.ts delete mode 100644 www/app/api/models/index.ts create mode 100644 www/app/api/services/DefaultService.ts diff --git a/www/app/api/apis/DefaultApi.ts b/www/app/api/apis/DefaultApi.ts deleted file mode 100644 index 312d0c5e..00000000 --- a/www/app/api/apis/DefaultApi.ts +++ /dev/null @@ -1,1613 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import * as runtime from "../runtime"; -import type { - AudioWaveform, - CreateParticipant, - CreateTranscript, - DeletionStatus, - GetTranscript, - GetTranscriptTopicWithWordsPerSpeaker, - HTTPValidationError, - PageGetTranscript, - Participant, - RtcOffer, - SpeakerAssignment, - SpeakerAssignmentStatus, - SpeakerMerge, - UpdateParticipant, - UpdateTranscript, -} from "../models"; -import { - AudioWaveformFromJSON, - AudioWaveformToJSON, - CreateParticipantFromJSON, - CreateParticipantToJSON, - CreateTranscriptFromJSON, - CreateTranscriptToJSON, - DeletionStatusFromJSON, - DeletionStatusToJSON, - GetTranscriptFromJSON, - GetTranscriptToJSON, - GetTranscriptTopicWithWordsPerSpeakerFromJSON, - GetTranscriptTopicWithWordsPerSpeakerToJSON, - HTTPValidationErrorFromJSON, - HTTPValidationErrorToJSON, - PageGetTranscriptFromJSON, - PageGetTranscriptToJSON, - ParticipantFromJSON, - ParticipantToJSON, - RtcOfferFromJSON, - RtcOfferToJSON, - SpeakerAssignmentFromJSON, - SpeakerAssignmentToJSON, - SpeakerAssignmentStatusFromJSON, - SpeakerAssignmentStatusToJSON, - SpeakerMergeFromJSON, - SpeakerMergeToJSON, - UpdateParticipantFromJSON, - UpdateParticipantToJSON, - UpdateTranscriptFromJSON, - UpdateTranscriptToJSON, -} from "../models"; - -export interface V1TranscriptAddParticipantRequest { - transcriptId: any; - createParticipant: CreateParticipant; -} - -export interface V1TranscriptAssignSpeakerRequest { - transcriptId: any; - speakerAssignment: SpeakerAssignment; -} - -export interface V1TranscriptDeleteRequest { - transcriptId: any; -} - -export interface V1TranscriptDeleteParticipantRequest { - transcriptId: any; - participantId: any; -} - -export interface V1TranscriptGetRequest { - transcriptId: any; -} - -export interface V1TranscriptGetAudioMp3Request { - transcriptId: any; - token?: any; -} - -export interface V1TranscriptGetAudioWaveformRequest { - transcriptId: any; -} - -export interface V1TranscriptGetParticipantRequest { - transcriptId: any; - participantId: any; -} - -export interface V1TranscriptGetParticipantsRequest { - transcriptId: any; -} - -export interface V1TranscriptGetTopicsRequest { - transcriptId: any; -} - -export interface V1TranscriptGetTopicsWithWordsRequest { - transcriptId: any; -} - -export interface V1TranscriptGetTopicsWithWordsPerSpeakerRequest { - transcriptId: any; - topicId: any; -} - -export interface V1TranscriptGetWebsocketEventsRequest { - transcriptId: any; -} - -export interface V1TranscriptHeadAudioMp3Request { - transcriptId: any; - token?: any; -} - -export interface V1TranscriptMergeSpeakerRequest { - transcriptId: any; - speakerMerge: SpeakerMerge; -} - -export interface V1TranscriptRecordWebrtcRequest { - transcriptId: any; - rtcOffer: RtcOffer; -} - -export interface V1TranscriptUpdateRequest { - transcriptId: any; - updateTranscript: UpdateTranscript; -} - -export interface V1TranscriptUpdateParticipantRequest { - transcriptId: any; - participantId: any; - updateParticipant: UpdateParticipant; -} - -export interface V1TranscriptsCreateRequest { - createTranscript: CreateTranscript; -} - -export interface V1TranscriptsListRequest { - page?: any; - size?: any; -} - -/** - * - */ -export class DefaultApi extends runtime.BaseAPI { - /** - * Endpoint that serves Prometheus metrics. - * Metrics - */ - async metricsRaw( - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request( - { - path: `/metrics`, - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Endpoint that serves Prometheus metrics. - * Metrics - */ - async metrics( - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.metricsRaw(initOverrides); - return await response.value(); - } - - /** - * Transcript Add Participant - */ - async v1TranscriptAddParticipantRaw( - requestParameters: V1TranscriptAddParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptAddParticipant.", - ); - } - - if ( - requestParameters.createParticipant === null || - requestParameters.createParticipant === undefined - ) { - throw new runtime.RequiredError( - "createParticipant", - "Required parameter requestParameters.createParticipant was null or undefined when calling v1TranscriptAddParticipant.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/participants`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "POST", - headers: headerParameters, - query: queryParameters, - body: CreateParticipantToJSON(requestParameters.createParticipant), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - ParticipantFromJSON(jsonValue), - ); - } - - /** - * Transcript Add Participant - */ - async v1TranscriptAddParticipant( - requestParameters: V1TranscriptAddParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptAddParticipantRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Assign Speaker - */ - async v1TranscriptAssignSpeakerRaw( - requestParameters: V1TranscriptAssignSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptAssignSpeaker.", - ); - } - - if ( - requestParameters.speakerAssignment === null || - requestParameters.speakerAssignment === undefined - ) { - throw new runtime.RequiredError( - "speakerAssignment", - "Required parameter requestParameters.speakerAssignment was null or undefined when calling v1TranscriptAssignSpeaker.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/speaker/assign`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "PATCH", - headers: headerParameters, - query: queryParameters, - body: SpeakerAssignmentToJSON(requestParameters.speakerAssignment), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - SpeakerAssignmentStatusFromJSON(jsonValue), - ); - } - - /** - * Transcript Assign Speaker - */ - async v1TranscriptAssignSpeaker( - requestParameters: V1TranscriptAssignSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptAssignSpeakerRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Delete - */ - async v1TranscriptDeleteRaw( - requestParameters: V1TranscriptDeleteRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptDelete.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "DELETE", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - DeletionStatusFromJSON(jsonValue), - ); - } - - /** - * Transcript Delete - */ - async v1TranscriptDelete( - requestParameters: V1TranscriptDeleteRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptDeleteRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Delete Participant - */ - async v1TranscriptDeleteParticipantRaw( - requestParameters: V1TranscriptDeleteParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptDeleteParticipant.", - ); - } - - if ( - requestParameters.participantId === null || - requestParameters.participantId === undefined - ) { - throw new runtime.RequiredError( - "participantId", - "Required parameter requestParameters.participantId was null or undefined when calling v1TranscriptDeleteParticipant.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/participants/{participant_id}` - .replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ) - .replace( - `{${"participant_id"}}`, - encodeURIComponent(String(requestParameters.participantId)), - ), - method: "DELETE", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - DeletionStatusFromJSON(jsonValue), - ); - } - - /** - * Transcript Delete Participant - */ - async v1TranscriptDeleteParticipant( - requestParameters: V1TranscriptDeleteParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptDeleteParticipantRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get - */ - async v1TranscriptGetRaw( - requestParameters: V1TranscriptGetRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGet.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - GetTranscriptFromJSON(jsonValue), - ); - } - - /** - * Transcript Get - */ - async v1TranscriptGet( - requestParameters: V1TranscriptGetRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Audio Mp3 - */ - async v1TranscriptGetAudioMp3Raw( - requestParameters: V1TranscriptGetAudioMp3Request, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetAudioMp3.", - ); - } - - const queryParameters: any = {}; - - if (requestParameters.token !== undefined) { - queryParameters["token"] = requestParameters.token; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/audio/mp3`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Audio Mp3 - */ - async v1TranscriptGetAudioMp3( - requestParameters: V1TranscriptGetAudioMp3Request, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetAudioMp3Raw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Audio Waveform - */ - async v1TranscriptGetAudioWaveformRaw( - requestParameters: V1TranscriptGetAudioWaveformRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetAudioWaveform.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/audio/waveform`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - AudioWaveformFromJSON(jsonValue), - ); - } - - /** - * Transcript Get Audio Waveform - */ - async v1TranscriptGetAudioWaveform( - requestParameters: V1TranscriptGetAudioWaveformRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetAudioWaveformRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Participant - */ - async v1TranscriptGetParticipantRaw( - requestParameters: V1TranscriptGetParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetParticipant.", - ); - } - - if ( - requestParameters.participantId === null || - requestParameters.participantId === undefined - ) { - throw new runtime.RequiredError( - "participantId", - "Required parameter requestParameters.participantId was null or undefined when calling v1TranscriptGetParticipant.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/participants/{participant_id}` - .replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ) - .replace( - `{${"participant_id"}}`, - encodeURIComponent(String(requestParameters.participantId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - ParticipantFromJSON(jsonValue), - ); - } - - /** - * Transcript Get Participant - */ - async v1TranscriptGetParticipant( - requestParameters: V1TranscriptGetParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetParticipantRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Participants - */ - async v1TranscriptGetParticipantsRaw( - requestParameters: V1TranscriptGetParticipantsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetParticipants.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/participants`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Participants - */ - async v1TranscriptGetParticipants( - requestParameters: V1TranscriptGetParticipantsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetParticipantsRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Topics - */ - async v1TranscriptGetTopicsRaw( - requestParameters: V1TranscriptGetTopicsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetTopics.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/topics`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Topics - */ - async v1TranscriptGetTopics( - requestParameters: V1TranscriptGetTopicsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetTopicsRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Topics With Words - */ - async v1TranscriptGetTopicsWithWordsRaw( - requestParameters: V1TranscriptGetTopicsWithWordsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetTopicsWithWords.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/topics/with-words`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Topics With Words - */ - async v1TranscriptGetTopicsWithWords( - requestParameters: V1TranscriptGetTopicsWithWordsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetTopicsWithWordsRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Topics With Words Per Speaker - */ - async v1TranscriptGetTopicsWithWordsPerSpeakerRaw( - requestParameters: V1TranscriptGetTopicsWithWordsPerSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetTopicsWithWordsPerSpeaker.", - ); - } - - if ( - requestParameters.topicId === null || - requestParameters.topicId === undefined - ) { - throw new runtime.RequiredError( - "topicId", - "Required parameter requestParameters.topicId was null or undefined when calling v1TranscriptGetTopicsWithWordsPerSpeaker.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker` - .replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ) - .replace( - `{${"topic_id"}}`, - encodeURIComponent(String(requestParameters.topicId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - GetTranscriptTopicWithWordsPerSpeakerFromJSON(jsonValue), - ); - } - - /** - * Transcript Get Topics With Words Per Speaker - */ - async v1TranscriptGetTopicsWithWordsPerSpeaker( - requestParameters: V1TranscriptGetTopicsWithWordsPerSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetTopicsWithWordsPerSpeakerRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Websocket Events - */ - async v1TranscriptGetWebsocketEventsRaw( - requestParameters: V1TranscriptGetWebsocketEventsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptGetWebsocketEvents.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/events`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Websocket Events - */ - async v1TranscriptGetWebsocketEvents( - requestParameters: V1TranscriptGetWebsocketEventsRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptGetWebsocketEventsRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Get Audio Mp3 - */ - async v1TranscriptHeadAudioMp3Raw( - requestParameters: V1TranscriptHeadAudioMp3Request, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptHeadAudioMp3.", - ); - } - - const queryParameters: any = {}; - - if (requestParameters.token !== undefined) { - queryParameters["token"] = requestParameters.token; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/audio/mp3`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "HEAD", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Get Audio Mp3 - */ - async v1TranscriptHeadAudioMp3( - requestParameters: V1TranscriptHeadAudioMp3Request, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptHeadAudioMp3Raw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Merge Speaker - */ - async v1TranscriptMergeSpeakerRaw( - requestParameters: V1TranscriptMergeSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptMergeSpeaker.", - ); - } - - if ( - requestParameters.speakerMerge === null || - requestParameters.speakerMerge === undefined - ) { - throw new runtime.RequiredError( - "speakerMerge", - "Required parameter requestParameters.speakerMerge was null or undefined when calling v1TranscriptMergeSpeaker.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/speaker/merge`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "PATCH", - headers: headerParameters, - query: queryParameters, - body: SpeakerMergeToJSON(requestParameters.speakerMerge), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - SpeakerAssignmentStatusFromJSON(jsonValue), - ); - } - - /** - * Transcript Merge Speaker - */ - async v1TranscriptMergeSpeaker( - requestParameters: V1TranscriptMergeSpeakerRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptMergeSpeakerRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Record Webrtc - */ - async v1TranscriptRecordWebrtcRaw( - requestParameters: V1TranscriptRecordWebrtcRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptRecordWebrtc.", - ); - } - - if ( - requestParameters.rtcOffer === null || - requestParameters.rtcOffer === undefined - ) { - throw new runtime.RequiredError( - "rtcOffer", - "Required parameter requestParameters.rtcOffer was null or undefined when calling v1TranscriptRecordWebrtc.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/record/webrtc`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "POST", - headers: headerParameters, - query: queryParameters, - body: RtcOfferToJSON(requestParameters.rtcOffer), - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * Transcript Record Webrtc - */ - async v1TranscriptRecordWebrtc( - requestParameters: V1TranscriptRecordWebrtcRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptRecordWebrtcRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Update - */ - async v1TranscriptUpdateRaw( - requestParameters: V1TranscriptUpdateRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptUpdate.", - ); - } - - if ( - requestParameters.updateTranscript === null || - requestParameters.updateTranscript === undefined - ) { - throw new runtime.RequiredError( - "updateTranscript", - "Required parameter requestParameters.updateTranscript was null or undefined when calling v1TranscriptUpdate.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}`.replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ), - method: "PATCH", - headers: headerParameters, - query: queryParameters, - body: UpdateTranscriptToJSON(requestParameters.updateTranscript), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - GetTranscriptFromJSON(jsonValue), - ); - } - - /** - * Transcript Update - */ - async v1TranscriptUpdate( - requestParameters: V1TranscriptUpdateRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptUpdateRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcript Update Participant - */ - async v1TranscriptUpdateParticipantRaw( - requestParameters: V1TranscriptUpdateParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.transcriptId === null || - requestParameters.transcriptId === undefined - ) { - throw new runtime.RequiredError( - "transcriptId", - "Required parameter requestParameters.transcriptId was null or undefined when calling v1TranscriptUpdateParticipant.", - ); - } - - if ( - requestParameters.participantId === null || - requestParameters.participantId === undefined - ) { - throw new runtime.RequiredError( - "participantId", - "Required parameter requestParameters.participantId was null or undefined when calling v1TranscriptUpdateParticipant.", - ); - } - - if ( - requestParameters.updateParticipant === null || - requestParameters.updateParticipant === undefined - ) { - throw new runtime.RequiredError( - "updateParticipant", - "Required parameter requestParameters.updateParticipant was null or undefined when calling v1TranscriptUpdateParticipant.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts/{transcript_id}/participants/{participant_id}` - .replace( - `{${"transcript_id"}}`, - encodeURIComponent(String(requestParameters.transcriptId)), - ) - .replace( - `{${"participant_id"}}`, - encodeURIComponent(String(requestParameters.participantId)), - ), - method: "PATCH", - headers: headerParameters, - query: queryParameters, - body: UpdateParticipantToJSON(requestParameters.updateParticipant), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - ParticipantFromJSON(jsonValue), - ); - } - - /** - * Transcript Update Participant - */ - async v1TranscriptUpdateParticipant( - requestParameters: V1TranscriptUpdateParticipantRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptUpdateParticipantRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcripts Create - */ - async v1TranscriptsCreateRaw( - requestParameters: V1TranscriptsCreateRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - if ( - requestParameters.createTranscript === null || - requestParameters.createTranscript === undefined - ) { - throw new runtime.RequiredError( - "createTranscript", - "Required parameter requestParameters.createTranscript was null or undefined when calling v1TranscriptsCreate.", - ); - } - - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - headerParameters["Content-Type"] = "application/json"; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts`, - method: "POST", - headers: headerParameters, - query: queryParameters, - body: CreateTranscriptToJSON(requestParameters.createTranscript), - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - GetTranscriptFromJSON(jsonValue), - ); - } - - /** - * Transcripts Create - */ - async v1TranscriptsCreate( - requestParameters: V1TranscriptsCreateRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptsCreateRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * Transcripts List - */ - async v1TranscriptsListRaw( - requestParameters: V1TranscriptsListRequest, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - const queryParameters: any = {}; - - if (requestParameters.page !== undefined) { - queryParameters["page"] = requestParameters.page; - } - - if (requestParameters.size !== undefined) { - queryParameters["size"] = requestParameters.size; - } - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/transcripts`, - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - return new runtime.JSONApiResponse(response, (jsonValue) => - PageGetTranscriptFromJSON(jsonValue), - ); - } - - /** - * Transcripts List - */ - async v1TranscriptsList( - requestParameters: V1TranscriptsListRequest = {}, - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1TranscriptsListRaw( - requestParameters, - initOverrides, - ); - return await response.value(); - } - - /** - * User Me - */ - async v1UserMeRaw( - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise> { - const queryParameters: any = {}; - - const headerParameters: runtime.HTTPHeaders = {}; - - if (this.configuration && this.configuration.accessToken) { - // oauth required - headerParameters["Authorization"] = await this.configuration.accessToken( - "OAuth2AuthorizationCodeBearer", - [], - ); - } - - const response = await this.request( - { - path: `/v1/me`, - method: "GET", - headers: headerParameters, - query: queryParameters, - }, - initOverrides, - ); - - if (this.isJsonMime(response.headers.get("content-type"))) { - return new runtime.JSONApiResponse(response); - } else { - return new runtime.TextApiResponse(response) as any; - } - } - - /** - * User Me - */ - async v1UserMe( - initOverrides?: RequestInit | runtime.InitOverrideFunction, - ): Promise { - const response = await this.v1UserMeRaw(initOverrides); - return await response.value(); - } -} diff --git a/www/app/api/apis/index.ts b/www/app/api/apis/index.ts deleted file mode 100644 index f70f3d32..00000000 --- a/www/app/api/apis/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export * from "./DefaultApi"; diff --git a/www/app/api/core/ApiError.ts b/www/app/api/core/ApiError.ts new file mode 100644 index 00000000..ebc11612 --- /dev/null +++ b/www/app/api/core/ApiError.ts @@ -0,0 +1,29 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ApiRequestOptions } from "./ApiRequestOptions"; +import type { ApiResult } from "./ApiResult"; + +export class ApiError extends Error { + public readonly url: string; + public readonly status: number; + public readonly statusText: string; + public readonly body: any; + public readonly request: ApiRequestOptions; + + constructor( + request: ApiRequestOptions, + response: ApiResult, + message: string, + ) { + super(message); + + this.name = "ApiError"; + this.url = response.url; + this.status = response.status; + this.statusText = response.statusText; + this.body = response.body; + this.request = request; + } +} diff --git a/www/app/api/core/ApiRequestOptions.ts b/www/app/api/core/ApiRequestOptions.ts new file mode 100644 index 00000000..ac9a2ca2 --- /dev/null +++ b/www/app/api/core/ApiRequestOptions.ts @@ -0,0 +1,24 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type ApiRequestOptions = { + readonly method: + | "GET" + | "PUT" + | "POST" + | "DELETE" + | "OPTIONS" + | "HEAD" + | "PATCH"; + readonly url: string; + readonly path?: Record; + readonly cookies?: Record; + readonly headers?: Record; + readonly query?: Record; + readonly formData?: Record; + readonly body?: any; + readonly mediaType?: string; + readonly responseHeader?: string; + readonly errors?: Record; +}; diff --git a/www/app/api/core/ApiResult.ts b/www/app/api/core/ApiResult.ts new file mode 100644 index 00000000..63ed6c44 --- /dev/null +++ b/www/app/api/core/ApiResult.ts @@ -0,0 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export type ApiResult = { + readonly url: string; + readonly ok: boolean; + readonly status: number; + readonly statusText: string; + readonly body: any; +}; diff --git a/www/app/api/core/CancelablePromise.ts b/www/app/api/core/CancelablePromise.ts new file mode 100644 index 00000000..6aefa9e2 --- /dev/null +++ b/www/app/api/core/CancelablePromise.ts @@ -0,0 +1,130 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +export class CancelError extends Error { + constructor(message: string) { + super(message); + this.name = "CancelError"; + } + + public get isCancelled(): boolean { + return true; + } +} + +export interface OnCancel { + readonly isResolved: boolean; + readonly isRejected: boolean; + readonly isCancelled: boolean; + + (cancelHandler: () => void): void; +} + +export class CancelablePromise implements Promise { + #isResolved: boolean; + #isRejected: boolean; + #isCancelled: boolean; + readonly #cancelHandlers: (() => void)[]; + readonly #promise: Promise; + #resolve?: (value: T | PromiseLike) => void; + #reject?: (reason?: any) => void; + + constructor( + executor: ( + resolve: (value: T | PromiseLike) => void, + reject: (reason?: any) => void, + onCancel: OnCancel, + ) => void, + ) { + this.#isResolved = false; + this.#isRejected = false; + this.#isCancelled = false; + this.#cancelHandlers = []; + this.#promise = new Promise((resolve, reject) => { + this.#resolve = resolve; + this.#reject = reject; + + const onResolve = (value: T | PromiseLike): void => { + if (this.#isResolved || this.#isRejected || this.#isCancelled) { + return; + } + this.#isResolved = true; + this.#resolve?.(value); + }; + + const onReject = (reason?: any): void => { + if (this.#isResolved || this.#isRejected || this.#isCancelled) { + return; + } + this.#isRejected = true; + this.#reject?.(reason); + }; + + const onCancel = (cancelHandler: () => void): void => { + if (this.#isResolved || this.#isRejected || this.#isCancelled) { + return; + } + this.#cancelHandlers.push(cancelHandler); + }; + + Object.defineProperty(onCancel, "isResolved", { + get: (): boolean => this.#isResolved, + }); + + Object.defineProperty(onCancel, "isRejected", { + get: (): boolean => this.#isRejected, + }); + + Object.defineProperty(onCancel, "isCancelled", { + get: (): boolean => this.#isCancelled, + }); + + return executor(onResolve, onReject, onCancel as OnCancel); + }); + } + + get [Symbol.toStringTag]() { + return "Cancellable Promise"; + } + + public then( + onFulfilled?: ((value: T) => TResult1 | PromiseLike) | null, + onRejected?: ((reason: any) => TResult2 | PromiseLike) | null, + ): Promise { + return this.#promise.then(onFulfilled, onRejected); + } + + public catch( + onRejected?: ((reason: any) => TResult | PromiseLike) | null, + ): Promise { + return this.#promise.catch(onRejected); + } + + public finally(onFinally?: (() => void) | null): Promise { + return this.#promise.finally(onFinally); + } + + public cancel(): void { + if (this.#isResolved || this.#isRejected || this.#isCancelled) { + return; + } + this.#isCancelled = true; + if (this.#cancelHandlers.length) { + try { + for (const cancelHandler of this.#cancelHandlers) { + cancelHandler(); + } + } catch (error) { + console.warn("Cancellation threw an error", error); + return; + } + } + this.#cancelHandlers.length = 0; + this.#reject?.(new CancelError("Request aborted")); + } + + public get isCancelled(): boolean { + return this.#isCancelled; + } +} diff --git a/www/app/api/core/OpenAPI.ts b/www/app/api/core/OpenAPI.ts new file mode 100644 index 00000000..b1e4d170 --- /dev/null +++ b/www/app/api/core/OpenAPI.ts @@ -0,0 +1,32 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ApiRequestOptions } from "./ApiRequestOptions"; + +type Resolver = (options: ApiRequestOptions) => Promise; +type Headers = Record; + +export type OpenAPIConfig = { + BASE: string; + VERSION: string; + WITH_CREDENTIALS: boolean; + CREDENTIALS: "include" | "omit" | "same-origin"; + TOKEN?: string | Resolver | undefined; + USERNAME?: string | Resolver | undefined; + PASSWORD?: string | Resolver | undefined; + HEADERS?: Headers | Resolver | undefined; + ENCODE_PATH?: ((path: string) => string) | undefined; +}; + +export const OpenAPI: OpenAPIConfig = { + BASE: "", + VERSION: "0.1.0", + WITH_CREDENTIALS: false, + CREDENTIALS: "include", + TOKEN: undefined, + USERNAME: undefined, + PASSWORD: undefined, + HEADERS: undefined, + ENCODE_PATH: undefined, +}; diff --git a/www/app/api/core/request.ts b/www/app/api/core/request.ts new file mode 100644 index 00000000..72ed0140 --- /dev/null +++ b/www/app/api/core/request.ts @@ -0,0 +1,361 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import { ApiError } from "./ApiError"; +import type { ApiRequestOptions } from "./ApiRequestOptions"; +import type { ApiResult } from "./ApiResult"; +import { CancelablePromise } from "./CancelablePromise"; +import type { OnCancel } from "./CancelablePromise"; +import type { OpenAPIConfig } from "./OpenAPI"; + +export const isDefined = ( + value: T | null | undefined, +): value is Exclude => { + return value !== undefined && value !== null; +}; + +export const isString = (value: any): value is string => { + return typeof value === "string"; +}; + +export const isStringWithValue = (value: any): value is string => { + return isString(value) && value !== ""; +}; + +export const isBlob = (value: any): value is Blob => { + return ( + typeof value === "object" && + typeof value.type === "string" && + typeof value.stream === "function" && + typeof value.arrayBuffer === "function" && + typeof value.constructor === "function" && + typeof value.constructor.name === "string" && + /^(Blob|File)$/.test(value.constructor.name) && + /^(Blob|File)$/.test(value[Symbol.toStringTag]) + ); +}; + +export const isFormData = (value: any): value is FormData => { + return value instanceof FormData; +}; + +export const base64 = (str: string): string => { + try { + return btoa(str); + } catch (err) { + // @ts-ignore + return Buffer.from(str).toString("base64"); + } +}; + +export const getQueryString = (params: Record): string => { + const qs: string[] = []; + + const append = (key: string, value: any) => { + qs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); + }; + + const process = (key: string, value: any) => { + if (isDefined(value)) { + if (Array.isArray(value)) { + value.forEach((v) => { + process(key, v); + }); + } else if (typeof value === "object") { + Object.entries(value).forEach(([k, v]) => { + process(`${key}[${k}]`, v); + }); + } else { + append(key, value); + } + } + }; + + Object.entries(params).forEach(([key, value]) => { + process(key, value); + }); + + if (qs.length > 0) { + return `?${qs.join("&")}`; + } + + return ""; +}; + +const getUrl = (config: OpenAPIConfig, options: ApiRequestOptions): string => { + const encoder = config.ENCODE_PATH || encodeURI; + + const path = options.url + .replace("{api-version}", config.VERSION) + .replace(/{(.*?)}/g, (substring: string, group: string) => { + if (options.path?.hasOwnProperty(group)) { + return encoder(String(options.path[group])); + } + return substring; + }); + + const url = `${config.BASE}${path}`; + if (options.query) { + return `${url}${getQueryString(options.query)}`; + } + return url; +}; + +export const getFormData = ( + options: ApiRequestOptions, +): FormData | undefined => { + if (options.formData) { + const formData = new FormData(); + + const process = (key: string, value: any) => { + if (isString(value) || isBlob(value)) { + formData.append(key, value); + } else { + formData.append(key, JSON.stringify(value)); + } + }; + + Object.entries(options.formData) + .filter(([_, value]) => isDefined(value)) + .forEach(([key, value]) => { + if (Array.isArray(value)) { + value.forEach((v) => process(key, v)); + } else { + process(key, value); + } + }); + + return formData; + } + return undefined; +}; + +type Resolver = (options: ApiRequestOptions) => Promise; + +export const resolve = async ( + options: ApiRequestOptions, + resolver?: T | Resolver, +): Promise => { + if (typeof resolver === "function") { + return (resolver as Resolver)(options); + } + return resolver; +}; + +export const getHeaders = async ( + config: OpenAPIConfig, + options: ApiRequestOptions, +): Promise => { + const token = await resolve(options, config.TOKEN); + const username = await resolve(options, config.USERNAME); + const password = await resolve(options, config.PASSWORD); + const additionalHeaders = await resolve(options, config.HEADERS); + + const headers = Object.entries({ + Accept: "application/json", + ...additionalHeaders, + ...options.headers, + }) + .filter(([_, value]) => isDefined(value)) + .reduce( + (headers, [key, value]) => ({ + ...headers, + [key]: String(value), + }), + {} as Record, + ); + + if (isStringWithValue(token)) { + headers["Authorization"] = `Bearer ${token}`; + } + + if (isStringWithValue(username) && isStringWithValue(password)) { + const credentials = base64(`${username}:${password}`); + headers["Authorization"] = `Basic ${credentials}`; + } + + if (options.body) { + if (options.mediaType) { + headers["Content-Type"] = options.mediaType; + } else if (isBlob(options.body)) { + headers["Content-Type"] = options.body.type || "application/octet-stream"; + } else if (isString(options.body)) { + headers["Content-Type"] = "text/plain"; + } else if (!isFormData(options.body)) { + headers["Content-Type"] = "application/json"; + } + } + + return new Headers(headers); +}; + +export const getRequestBody = (options: ApiRequestOptions): any => { + if (options.body !== undefined) { + if (options.mediaType?.includes("/json")) { + return JSON.stringify(options.body); + } else if ( + isString(options.body) || + isBlob(options.body) || + isFormData(options.body) + ) { + return options.body; + } else { + return JSON.stringify(options.body); + } + } + return undefined; +}; + +export const sendRequest = async ( + config: OpenAPIConfig, + options: ApiRequestOptions, + url: string, + body: any, + formData: FormData | undefined, + headers: Headers, + onCancel: OnCancel, +): Promise => { + const controller = new AbortController(); + + const request: RequestInit = { + headers, + body: body ?? formData, + method: options.method, + signal: controller.signal, + }; + + if (config.WITH_CREDENTIALS) { + request.credentials = config.CREDENTIALS; + } + + onCancel(() => controller.abort()); + + return await fetch(url, request); +}; + +export const getResponseHeader = ( + response: Response, + responseHeader?: string, +): string | undefined => { + if (responseHeader) { + const content = response.headers.get(responseHeader); + if (isString(content)) { + return content; + } + } + return undefined; +}; + +export const getResponseBody = async (response: Response): Promise => { + if (response.status !== 204) { + try { + const contentType = response.headers.get("Content-Type"); + if (contentType) { + const jsonTypes = ["application/json", "application/problem+json"]; + const isJSON = jsonTypes.some((type) => + contentType.toLowerCase().startsWith(type), + ); + if (isJSON) { + return await response.json(); + } else { + return await response.text(); + } + } + } catch (error) { + console.error(error); + } + } + return undefined; +}; + +export const catchErrorCodes = ( + options: ApiRequestOptions, + result: ApiResult, +): void => { + const errors: Record = { + 400: "Bad Request", + 401: "Unauthorized", + 403: "Forbidden", + 404: "Not Found", + 500: "Internal Server Error", + 502: "Bad Gateway", + 503: "Service Unavailable", + ...options.errors, + }; + + const error = errors[result.status]; + if (error) { + throw new ApiError(options, result, error); + } + + if (!result.ok) { + const errorStatus = result.status ?? "unknown"; + const errorStatusText = result.statusText ?? "unknown"; + const errorBody = (() => { + try { + return JSON.stringify(result.body, null, 2); + } catch (e) { + return undefined; + } + })(); + + throw new ApiError( + options, + result, + `Generic Error: status: ${errorStatus}; status text: ${errorStatusText}; body: ${errorBody}`, + ); + } +}; + +/** + * Request method + * @param config The OpenAPI configuration object + * @param options The request options from the service + * @returns CancelablePromise + * @throws ApiError + */ +export const request = ( + config: OpenAPIConfig, + options: ApiRequestOptions, +): CancelablePromise => { + return new CancelablePromise(async (resolve, reject, onCancel) => { + try { + const url = getUrl(config, options); + const formData = getFormData(options); + const body = getRequestBody(options); + const headers = await getHeaders(config, options); + + if (!onCancel.isCancelled) { + const response = await sendRequest( + config, + options, + url, + body, + formData, + headers, + onCancel, + ); + const responseBody = await getResponseBody(response); + const responseHeader = getResponseHeader( + response, + options.responseHeader, + ); + + const result: ApiResult = { + url, + ok: response.ok, + status: response.status, + statusText: response.statusText, + body: responseHeader ?? responseBody, + }; + + catchErrorCodes(options, result); + + resolve(result.body); + } + } catch (error) { + reject(error); + } + }); +}; diff --git a/www/app/api/index.ts b/www/app/api/index.ts index 749c57fa..a1543438 100644 --- a/www/app/api/index.ts +++ b/www/app/api/index.ts @@ -1,5 +1,35 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -export * from "./runtime"; -export * from "./apis"; -export * from "./models"; +export { ApiError } from "./core/ApiError"; +export { CancelablePromise, CancelError } from "./core/CancelablePromise"; +export { OpenAPI } from "./core/OpenAPI"; +export type { OpenAPIConfig } from "./core/OpenAPI"; + +export type { AudioWaveform } from "./models/AudioWaveform"; +export type { Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post } from "./models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post"; +export type { CreateParticipant } from "./models/CreateParticipant"; +export type { CreateTranscript } from "./models/CreateTranscript"; +export type { DeletionStatus } from "./models/DeletionStatus"; +export type { GetTranscript } from "./models/GetTranscript"; +export type { GetTranscriptSegmentTopic } from "./models/GetTranscriptSegmentTopic"; +export type { GetTranscriptTopic } from "./models/GetTranscriptTopic"; +export type { GetTranscriptTopicWithWords } from "./models/GetTranscriptTopicWithWords"; +export type { GetTranscriptTopicWithWordsPerSpeaker } from "./models/GetTranscriptTopicWithWordsPerSpeaker"; +export type { HTTPValidationError } from "./models/HTTPValidationError"; +export type { Page_GetTranscript_ } from "./models/Page_GetTranscript_"; +export type { Participant } from "./models/Participant"; +export type { RtcOffer } from "./models/RtcOffer"; +export type { SpeakerAssignment } from "./models/SpeakerAssignment"; +export type { SpeakerAssignmentStatus } from "./models/SpeakerAssignmentStatus"; +export type { SpeakerMerge } from "./models/SpeakerMerge"; +export type { SpeakerWords } from "./models/SpeakerWords"; +export type { TranscriptParticipant } from "./models/TranscriptParticipant"; +export type { UpdateParticipant } from "./models/UpdateParticipant"; +export type { UpdateTranscript } from "./models/UpdateTranscript"; +export type { UserInfo } from "./models/UserInfo"; +export type { ValidationError } from "./models/ValidationError"; +export type { Word } from "./models/Word"; + +export { DefaultService } from "./services/DefaultService"; diff --git a/www/app/api/models/AudioWaveform.ts b/www/app/api/models/AudioWaveform.ts index 0cc5da1f..938cf9e2 100644 --- a/www/app/api/models/AudioWaveform.ts +++ b/www/app/api/models/AudioWaveform.ts @@ -1,66 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface AudioWaveform - */ -export interface AudioWaveform { - /** - * - * @type {any} - * @memberof AudioWaveform - */ - data: any | null; -} - -/** - * Check if a given object implements the AudioWaveform interface. - */ -export function instanceOfAudioWaveform(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "data" in value; - - return isInstance; -} - -export function AudioWaveformFromJSON(json: any): AudioWaveform { - return AudioWaveformFromJSONTyped(json, false); -} - -export function AudioWaveformFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): AudioWaveform { - if (json === undefined || json === null) { - return json; - } - return { - data: json["data"], - }; -} - -export function AudioWaveformToJSON(value?: AudioWaveform | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - data: value.data, - }; -} +export type AudioWaveform = { + data: Array; +}; diff --git a/www/app/api/models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post.ts b/www/app/api/models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post.ts new file mode 100644 index 00000000..fd182263 --- /dev/null +++ b/www/app/api/models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post.ts @@ -0,0 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +export type Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post = + { + file: Blob; + }; diff --git a/www/app/api/models/CreateParticipant.ts b/www/app/api/models/CreateParticipant.ts index 489047c6..d0c9f9d7 100644 --- a/www/app/api/models/CreateParticipant.ts +++ b/www/app/api/models/CreateParticipant.ts @@ -1,74 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface CreateParticipant - */ -export interface CreateParticipant { - /** - * - * @type {any} - * @memberof CreateParticipant - */ - speaker?: any | null; - /** - * - * @type {any} - * @memberof CreateParticipant - */ - name: any | null; -} - -/** - * Check if a given object implements the CreateParticipant interface. - */ -export function instanceOfCreateParticipant(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "name" in value; - - return isInstance; -} - -export function CreateParticipantFromJSON(json: any): CreateParticipant { - return CreateParticipantFromJSONTyped(json, false); -} - -export function CreateParticipantFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): CreateParticipant { - if (json === undefined || json === null) { - return json; - } - return { - speaker: !exists(json, "speaker") ? undefined : json["speaker"], - name: json["name"], - }; -} - -export function CreateParticipantToJSON(value?: CreateParticipant | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker: value.speaker, - name: value.name, - }; -} +export type CreateParticipant = { + speaker?: number | null; + name: string; +}; diff --git a/www/app/api/models/CreateTranscript.ts b/www/app/api/models/CreateTranscript.ts index 365e5761..4da1b237 100644 --- a/www/app/api/models/CreateTranscript.ts +++ b/www/app/api/models/CreateTranscript.ts @@ -1,86 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface CreateTranscript - */ -export interface CreateTranscript { - /** - * - * @type {any} - * @memberof CreateTranscript - */ - name: any | null; - /** - * - * @type {any} - * @memberof CreateTranscript - */ - sourceLanguage?: any | null; - /** - * - * @type {any} - * @memberof CreateTranscript - */ - targetLanguage?: any | null; -} - -/** - * Check if a given object implements the CreateTranscript interface. - */ -export function instanceOfCreateTranscript(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "name" in value; - - return isInstance; -} - -export function CreateTranscriptFromJSON(json: any): CreateTranscript { - return CreateTranscriptFromJSONTyped(json, false); -} - -export function CreateTranscriptFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): CreateTranscript { - if (json === undefined || json === null) { - return json; - } - return { - name: json["name"], - sourceLanguage: !exists(json, "source_language") - ? undefined - : json["source_language"], - targetLanguage: !exists(json, "target_language") - ? undefined - : json["target_language"], - }; -} - -export function CreateTranscriptToJSON(value?: CreateTranscript | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - name: value.name, - source_language: value.sourceLanguage, - target_language: value.targetLanguage, - }; -} +export type CreateTranscript = { + name: string; + source_language?: string; + target_language?: string; +}; diff --git a/www/app/api/models/DeletionStatus.ts b/www/app/api/models/DeletionStatus.ts index 2bd03589..1a70c8ee 100644 --- a/www/app/api/models/DeletionStatus.ts +++ b/www/app/api/models/DeletionStatus.ts @@ -1,66 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface DeletionStatus - */ -export interface DeletionStatus { - /** - * - * @type {any} - * @memberof DeletionStatus - */ - status: any | null; -} - -/** - * Check if a given object implements the DeletionStatus interface. - */ -export function instanceOfDeletionStatus(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "status" in value; - - return isInstance; -} - -export function DeletionStatusFromJSON(json: any): DeletionStatus { - return DeletionStatusFromJSONTyped(json, false); -} - -export function DeletionStatusFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): DeletionStatus { - if (json === undefined || json === null) { - return json; - } - return { - status: json["status"], - }; -} - -export function DeletionStatusToJSON(value?: DeletionStatus | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - status: value.status, - }; -} +export type DeletionStatus = { + status: string; +}; diff --git a/www/app/api/models/GetTranscript.ts b/www/app/api/models/GetTranscript.ts index e716692e..fb6de536 100644 --- a/www/app/api/models/GetTranscript.ts +++ b/www/app/api/models/GetTranscript.ts @@ -1,191 +1,24 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface GetTranscript - */ -export interface GetTranscript { - /** - * - * @type {any} - * @memberof GetTranscript - */ - id: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - userId: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - name: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - status: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - locked: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - duration: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - title: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - shortSummary: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - longSummary: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - createdAt: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - shareMode?: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - sourceLanguage: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - targetLanguage: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - participants: any | null; - /** - * - * @type {any} - * @memberof GetTranscript - */ - reviewed: any | null; -} +import type { TranscriptParticipant } from "./TranscriptParticipant"; -/** - * Check if a given object implements the GetTranscript interface. - */ -export function instanceOfGetTranscript(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "id" in value; - isInstance = isInstance && "userId" in value; - isInstance = isInstance && "name" in value; - isInstance = isInstance && "status" in value; - isInstance = isInstance && "locked" in value; - isInstance = isInstance && "duration" in value; - isInstance = isInstance && "title" in value; - isInstance = isInstance && "shortSummary" in value; - isInstance = isInstance && "longSummary" in value; - isInstance = isInstance && "createdAt" in value; - isInstance = isInstance && "sourceLanguage" in value; - isInstance = isInstance && "targetLanguage" in value; - isInstance = isInstance && "participants" in value; - isInstance = isInstance && "reviewed" in value; - - return isInstance; -} - -export function GetTranscriptFromJSON(json: any): GetTranscript { - return GetTranscriptFromJSONTyped(json, false); -} - -export function GetTranscriptFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetTranscript { - if (json === undefined || json === null) { - return json; - } - return { - id: json["id"], - userId: json["user_id"], - name: json["name"], - status: json["status"], - locked: json["locked"], - duration: json["duration"], - title: json["title"], - shortSummary: json["short_summary"], - longSummary: json["long_summary"], - createdAt: json["created_at"], - shareMode: !exists(json, "share_mode") ? undefined : json["share_mode"], - sourceLanguage: json["source_language"], - targetLanguage: json["target_language"], - participants: json["participants"], - reviewed: json["reviewed"], - }; -} - -export function GetTranscriptToJSON(value?: GetTranscript | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - user_id: value.userId, - name: value.name, - status: value.status, - locked: value.locked, - duration: value.duration, - title: value.title, - short_summary: value.shortSummary, - long_summary: value.longSummary, - created_at: value.createdAt, - share_mode: value.shareMode, - source_language: value.sourceLanguage, - target_language: value.targetLanguage, - participants: value.participants, - reviewed: value.reviewed, - }; -} +export type GetTranscript = { + id: string; + user_id: string | null; + name: string; + status: string; + locked: boolean; + duration: number; + title: string | null; + short_summary: string | null; + long_summary: string | null; + created_at: string; + share_mode?: string; + source_language: string | null; + target_language: string | null; + participants: Array | null; + reviewed: boolean; +}; diff --git a/www/app/api/models/GetTranscriptSegmentTopic.ts b/www/app/api/models/GetTranscriptSegmentTopic.ts index cc2049b1..c616cd25 100644 --- a/www/app/api/models/GetTranscriptSegmentTopic.ts +++ b/www/app/api/models/GetTranscriptSegmentTopic.ts @@ -1,88 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface GetTranscriptSegmentTopic - */ -export interface GetTranscriptSegmentTopic { - /** - * - * @type {any} - * @memberof GetTranscriptSegmentTopic - */ - text: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptSegmentTopic - */ - start: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptSegmentTopic - */ - speaker: any | null; -} - -/** - * Check if a given object implements the GetTranscriptSegmentTopic interface. - */ -export function instanceOfGetTranscriptSegmentTopic(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "text" in value; - isInstance = isInstance && "start" in value; - isInstance = isInstance && "speaker" in value; - - return isInstance; -} - -export function GetTranscriptSegmentTopicFromJSON( - json: any, -): GetTranscriptSegmentTopic { - return GetTranscriptSegmentTopicFromJSONTyped(json, false); -} - -export function GetTranscriptSegmentTopicFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetTranscriptSegmentTopic { - if (json === undefined || json === null) { - return json; - } - return { - text: json["text"], - start: json["start"], - speaker: json["speaker"], - }; -} - -export function GetTranscriptSegmentTopicToJSON( - value?: GetTranscriptSegmentTopic | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - text: value.text, - start: value.start, - speaker: value.speaker, - }; -} +export type GetTranscriptSegmentTopic = { + text: string; + start: number; + speaker: number; +}; diff --git a/www/app/api/models/GetTranscriptTopic.ts b/www/app/api/models/GetTranscriptTopic.ts index 10dcb102..318c2f44 100644 --- a/www/app/api/models/GetTranscriptTopic.ts +++ b/www/app/api/models/GetTranscriptTopic.ts @@ -1,121 +1,16 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface GetTranscriptTopic - */ -export interface GetTranscriptTopic { - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - id: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - title: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - summary: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - timestamp: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - duration: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - transcript: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopic - */ - segments?: any | null; -} +import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic"; -/** - * Check if a given object implements the GetTranscriptTopic interface. - */ -export function instanceOfGetTranscriptTopic(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "id" in value; - isInstance = isInstance && "title" in value; - isInstance = isInstance && "summary" in value; - isInstance = isInstance && "timestamp" in value; - isInstance = isInstance && "duration" in value; - isInstance = isInstance && "transcript" in value; - - return isInstance; -} - -export function GetTranscriptTopicFromJSON(json: any): GetTranscriptTopic { - return GetTranscriptTopicFromJSONTyped(json, false); -} - -export function GetTranscriptTopicFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetTranscriptTopic { - if (json === undefined || json === null) { - return json; - } - return { - id: json["id"], - title: json["title"], - summary: json["summary"], - timestamp: json["timestamp"], - duration: json["duration"], - transcript: json["transcript"], - segments: !exists(json, "segments") ? undefined : json["segments"], - }; -} - -export function GetTranscriptTopicToJSON( - value?: GetTranscriptTopic | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - title: value.title, - summary: value.summary, - timestamp: value.timestamp, - duration: value.duration, - transcript: value.transcript, - segments: value.segments, - }; -} +export type GetTranscriptTopic = { + id: string; + title: string; + summary: string; + timestamp: number; + duration: number | null; + transcript: string; + segments?: Array; +}; diff --git a/www/app/api/models/GetTranscriptTopicWithWords.ts b/www/app/api/models/GetTranscriptTopicWithWords.ts index 7a5b21b4..e96949c0 100644 --- a/www/app/api/models/GetTranscriptTopicWithWords.ts +++ b/www/app/api/models/GetTranscriptTopicWithWords.ts @@ -1,131 +1,18 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface GetTranscriptTopicWithWords - */ -export interface GetTranscriptTopicWithWords { - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - id: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - title: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - summary: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - timestamp: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - duration: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - transcript: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - segments?: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWords - */ - words?: any | null; -} +import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic"; +import type { Word } from "./Word"; -/** - * Check if a given object implements the GetTranscriptTopicWithWords interface. - */ -export function instanceOfGetTranscriptTopicWithWords(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "id" in value; - isInstance = isInstance && "title" in value; - isInstance = isInstance && "summary" in value; - isInstance = isInstance && "timestamp" in value; - isInstance = isInstance && "duration" in value; - isInstance = isInstance && "transcript" in value; - - return isInstance; -} - -export function GetTranscriptTopicWithWordsFromJSON( - json: any, -): GetTranscriptTopicWithWords { - return GetTranscriptTopicWithWordsFromJSONTyped(json, false); -} - -export function GetTranscriptTopicWithWordsFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetTranscriptTopicWithWords { - if (json === undefined || json === null) { - return json; - } - return { - id: json["id"], - title: json["title"], - summary: json["summary"], - timestamp: json["timestamp"], - duration: json["duration"], - transcript: json["transcript"], - segments: !exists(json, "segments") ? undefined : json["segments"], - words: !exists(json, "words") ? undefined : json["words"], - }; -} - -export function GetTranscriptTopicWithWordsToJSON( - value?: GetTranscriptTopicWithWords | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - title: value.title, - summary: value.summary, - timestamp: value.timestamp, - duration: value.duration, - transcript: value.transcript, - segments: value.segments, - words: value.words, - }; -} +export type GetTranscriptTopicWithWords = { + id: string; + title: string; + summary: string; + timestamp: number; + duration: number | null; + transcript: string; + segments?: Array; + words?: Array; +}; diff --git a/www/app/api/models/GetTranscriptTopicWithWordsPerSpeaker.ts b/www/app/api/models/GetTranscriptTopicWithWordsPerSpeaker.ts index 845192c5..8febf307 100644 --- a/www/app/api/models/GetTranscriptTopicWithWordsPerSpeaker.ts +++ b/www/app/api/models/GetTranscriptTopicWithWordsPerSpeaker.ts @@ -1,135 +1,18 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface GetTranscriptTopicWithWordsPerSpeaker - */ -export interface GetTranscriptTopicWithWordsPerSpeaker { - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - id: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - title: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - summary: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - timestamp: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - duration: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - transcript: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - segments?: any | null; - /** - * - * @type {any} - * @memberof GetTranscriptTopicWithWordsPerSpeaker - */ - wordsPerSpeaker?: any | null; -} +import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic"; +import type { SpeakerWords } from "./SpeakerWords"; -/** - * Check if a given object implements the GetTranscriptTopicWithWordsPerSpeaker interface. - */ -export function instanceOfGetTranscriptTopicWithWordsPerSpeaker( - value: object, -): boolean { - let isInstance = true; - isInstance = isInstance && "id" in value; - isInstance = isInstance && "title" in value; - isInstance = isInstance && "summary" in value; - isInstance = isInstance && "timestamp" in value; - isInstance = isInstance && "duration" in value; - isInstance = isInstance && "transcript" in value; - - return isInstance; -} - -export function GetTranscriptTopicWithWordsPerSpeakerFromJSON( - json: any, -): GetTranscriptTopicWithWordsPerSpeaker { - return GetTranscriptTopicWithWordsPerSpeakerFromJSONTyped(json, false); -} - -export function GetTranscriptTopicWithWordsPerSpeakerFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): GetTranscriptTopicWithWordsPerSpeaker { - if (json === undefined || json === null) { - return json; - } - return { - id: json["id"], - title: json["title"], - summary: json["summary"], - timestamp: json["timestamp"], - duration: json["duration"], - transcript: json["transcript"], - segments: !exists(json, "segments") ? undefined : json["segments"], - wordsPerSpeaker: !exists(json, "words_per_speaker") - ? undefined - : json["words_per_speaker"], - }; -} - -export function GetTranscriptTopicWithWordsPerSpeakerToJSON( - value?: GetTranscriptTopicWithWordsPerSpeaker | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - title: value.title, - summary: value.summary, - timestamp: value.timestamp, - duration: value.duration, - transcript: value.transcript, - segments: value.segments, - words_per_speaker: value.wordsPerSpeaker, - }; -} +export type GetTranscriptTopicWithWordsPerSpeaker = { + id: string; + title: string; + summary: string; + timestamp: number; + duration: number | null; + transcript: string; + segments?: Array; + words_per_speaker?: Array; +}; diff --git a/www/app/api/models/HTTPValidationError.ts b/www/app/api/models/HTTPValidationError.ts index 8508f7d7..0f7e0013 100644 --- a/www/app/api/models/HTTPValidationError.ts +++ b/www/app/api/models/HTTPValidationError.ts @@ -1,67 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface HTTPValidationError - */ -export interface HTTPValidationError { - /** - * - * @type {any} - * @memberof HTTPValidationError - */ - detail?: any | null; -} +import type { ValidationError } from "./ValidationError"; -/** - * Check if a given object implements the HTTPValidationError interface. - */ -export function instanceOfHTTPValidationError(value: object): boolean { - let isInstance = true; - - return isInstance; -} - -export function HTTPValidationErrorFromJSON(json: any): HTTPValidationError { - return HTTPValidationErrorFromJSONTyped(json, false); -} - -export function HTTPValidationErrorFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): HTTPValidationError { - if (json === undefined || json === null) { - return json; - } - return { - detail: !exists(json, "detail") ? undefined : json["detail"], - }; -} - -export function HTTPValidationErrorToJSON( - value?: HTTPValidationError | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - detail: value.detail, - }; -} +export type HTTPValidationError = { + detail?: Array; +}; diff --git a/www/app/api/models/PageGetTranscript.ts b/www/app/api/models/PageGetTranscript.ts deleted file mode 100644 index fde4dac2..00000000 --- a/www/app/api/models/PageGetTranscript.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface PageGetTranscript - */ -export interface PageGetTranscript { - /** - * - * @type {any} - * @memberof PageGetTranscript - */ - items: any | null; - /** - * - * @type {any} - * @memberof PageGetTranscript - */ - total: any | null; - /** - * - * @type {any} - * @memberof PageGetTranscript - */ - page: any | null; - /** - * - * @type {any} - * @memberof PageGetTranscript - */ - size: any | null; - /** - * - * @type {any} - * @memberof PageGetTranscript - */ - pages?: any | null; -} - -/** - * Check if a given object implements the PageGetTranscript interface. - */ -export function instanceOfPageGetTranscript(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "items" in value; - isInstance = isInstance && "total" in value; - isInstance = isInstance && "page" in value; - isInstance = isInstance && "size" in value; - - return isInstance; -} - -export function PageGetTranscriptFromJSON(json: any): PageGetTranscript { - return PageGetTranscriptFromJSONTyped(json, false); -} - -export function PageGetTranscriptFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): PageGetTranscript { - if (json === undefined || json === null) { - return json; - } - return { - items: json["items"], - total: json["total"], - page: json["page"], - size: json["size"], - pages: !exists(json, "pages") ? undefined : json["pages"], - }; -} - -export function PageGetTranscriptToJSON(value?: PageGetTranscript | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - items: value.items, - total: value.total, - page: value.page, - size: value.size, - pages: value.pages, - }; -} diff --git a/www/app/api/models/Page_GetTranscript_.ts b/www/app/api/models/Page_GetTranscript_.ts new file mode 100644 index 00000000..b14f89ac --- /dev/null +++ b/www/app/api/models/Page_GetTranscript_.ts @@ -0,0 +1,14 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ + +import type { GetTranscript } from "./GetTranscript"; + +export type Page_GetTranscript_ = { + items: Array; + total: number; + page: number | null; + size: number | null; + pages?: number | null; +}; diff --git a/www/app/api/models/Participant.ts b/www/app/api/models/Participant.ts index 03a3ffab..f9f3b837 100644 --- a/www/app/api/models/Participant.ts +++ b/www/app/api/models/Participant.ts @@ -1,84 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface Participant - */ -export interface Participant { - /** - * - * @type {any} - * @memberof Participant - */ - id: any | null; - /** - * - * @type {any} - * @memberof Participant - */ - speaker: any | null; - /** - * - * @type {any} - * @memberof Participant - */ - name: any | null; -} - -/** - * Check if a given object implements the Participant interface. - */ -export function instanceOfParticipant(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "id" in value; - isInstance = isInstance && "speaker" in value; - isInstance = isInstance && "name" in value; - - return isInstance; -} - -export function ParticipantFromJSON(json: any): Participant { - return ParticipantFromJSONTyped(json, false); -} - -export function ParticipantFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): Participant { - if (json === undefined || json === null) { - return json; - } - return { - id: json["id"], - speaker: json["speaker"], - name: json["name"], - }; -} - -export function ParticipantToJSON(value?: Participant | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - speaker: value.speaker, - name: value.name, - }; -} +export type Participant = { + id: string; + speaker: number | null; + name: string; +}; diff --git a/www/app/api/models/RtcOffer.ts b/www/app/api/models/RtcOffer.ts index 95e9e3e1..90a1139b 100644 --- a/www/app/api/models/RtcOffer.ts +++ b/www/app/api/models/RtcOffer.ts @@ -1,75 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface RtcOffer - */ -export interface RtcOffer { - /** - * - * @type {any} - * @memberof RtcOffer - */ - sdp: any | null; - /** - * - * @type {any} - * @memberof RtcOffer - */ - type: any | null; -} - -/** - * Check if a given object implements the RtcOffer interface. - */ -export function instanceOfRtcOffer(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "sdp" in value; - isInstance = isInstance && "type" in value; - - return isInstance; -} - -export function RtcOfferFromJSON(json: any): RtcOffer { - return RtcOfferFromJSONTyped(json, false); -} - -export function RtcOfferFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): RtcOffer { - if (json === undefined || json === null) { - return json; - } - return { - sdp: json["sdp"], - type: json["type"], - }; -} - -export function RtcOfferToJSON(value?: RtcOffer | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - sdp: value.sdp, - type: value.type, - }; -} +export type RtcOffer = { + sdp: string; + type: string; +}; diff --git a/www/app/api/models/SpeakerAssignment.ts b/www/app/api/models/SpeakerAssignment.ts index b541ba9a..433442bd 100644 --- a/www/app/api/models/SpeakerAssignment.ts +++ b/www/app/api/models/SpeakerAssignment.ts @@ -1,91 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface SpeakerAssignment - */ -export interface SpeakerAssignment { - /** - * - * @type {any} - * @memberof SpeakerAssignment - */ - speaker?: any | null; - /** - * - * @type {any} - * @memberof SpeakerAssignment - */ - participant?: any | null; - /** - * - * @type {any} - * @memberof SpeakerAssignment - */ - timestampFrom: any | null; - /** - * - * @type {any} - * @memberof SpeakerAssignment - */ - timestampTo: any | null; -} - -/** - * Check if a given object implements the SpeakerAssignment interface. - */ -export function instanceOfSpeakerAssignment(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "timestampFrom" in value; - isInstance = isInstance && "timestampTo" in value; - - return isInstance; -} - -export function SpeakerAssignmentFromJSON(json: any): SpeakerAssignment { - return SpeakerAssignmentFromJSONTyped(json, false); -} - -export function SpeakerAssignmentFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): SpeakerAssignment { - if (json === undefined || json === null) { - return json; - } - return { - speaker: !exists(json, "speaker") ? undefined : json["speaker"], - participant: !exists(json, "participant") ? undefined : json["participant"], - timestampFrom: json["timestamp_from"], - timestampTo: json["timestamp_to"], - }; -} - -export function SpeakerAssignmentToJSON(value?: SpeakerAssignment | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker: value.speaker, - participant: value.participant, - timestamp_from: value.timestampFrom, - timestamp_to: value.timestampTo, - }; -} +export type SpeakerAssignment = { + speaker?: number | null; + participant?: string | null; + timestamp_from: number; + timestamp_to: number; +}; diff --git a/www/app/api/models/SpeakerAssignmentStatus.ts b/www/app/api/models/SpeakerAssignmentStatus.ts index 797c7ed3..57be491a 100644 --- a/www/app/api/models/SpeakerAssignmentStatus.ts +++ b/www/app/api/models/SpeakerAssignmentStatus.ts @@ -1,70 +1,8 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface SpeakerAssignmentStatus - */ -export interface SpeakerAssignmentStatus { - /** - * - * @type {any} - * @memberof SpeakerAssignmentStatus - */ - status: any | null; -} - -/** - * Check if a given object implements the SpeakerAssignmentStatus interface. - */ -export function instanceOfSpeakerAssignmentStatus(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "status" in value; - - return isInstance; -} - -export function SpeakerAssignmentStatusFromJSON( - json: any, -): SpeakerAssignmentStatus { - return SpeakerAssignmentStatusFromJSONTyped(json, false); -} - -export function SpeakerAssignmentStatusFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): SpeakerAssignmentStatus { - if (json === undefined || json === null) { - return json; - } - return { - status: json["status"], - }; -} - -export function SpeakerAssignmentStatusToJSON( - value?: SpeakerAssignmentStatus | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - status: value.status, - }; -} +export type SpeakerAssignmentStatus = { + status: string; +}; diff --git a/www/app/api/models/SpeakerMerge.ts b/www/app/api/models/SpeakerMerge.ts index 809d32a1..af9214bd 100644 --- a/www/app/api/models/SpeakerMerge.ts +++ b/www/app/api/models/SpeakerMerge.ts @@ -1,75 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface SpeakerMerge - */ -export interface SpeakerMerge { - /** - * - * @type {any} - * @memberof SpeakerMerge - */ - speakerFrom: any | null; - /** - * - * @type {any} - * @memberof SpeakerMerge - */ - speakerTo: any | null; -} - -/** - * Check if a given object implements the SpeakerMerge interface. - */ -export function instanceOfSpeakerMerge(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "speakerFrom" in value; - isInstance = isInstance && "speakerTo" in value; - - return isInstance; -} - -export function SpeakerMergeFromJSON(json: any): SpeakerMerge { - return SpeakerMergeFromJSONTyped(json, false); -} - -export function SpeakerMergeFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): SpeakerMerge { - if (json === undefined || json === null) { - return json; - } - return { - speakerFrom: json["speaker_from"], - speakerTo: json["speaker_to"], - }; -} - -export function SpeakerMergeToJSON(value?: SpeakerMerge | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker_from: value.speakerFrom, - speaker_to: value.speakerTo, - }; -} +export type SpeakerMerge = { + speaker_from: number; + speaker_to: number; +}; diff --git a/www/app/api/models/SpeakerWords.ts b/www/app/api/models/SpeakerWords.ts index 52f8b162..5aacf7f9 100644 --- a/www/app/api/models/SpeakerWords.ts +++ b/www/app/api/models/SpeakerWords.ts @@ -1,75 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface SpeakerWords - */ -export interface SpeakerWords { - /** - * - * @type {any} - * @memberof SpeakerWords - */ - speaker: any | null; - /** - * - * @type {any} - * @memberof SpeakerWords - */ - words: any | null; -} +import type { Word } from "./Word"; -/** - * Check if a given object implements the SpeakerWords interface. - */ -export function instanceOfSpeakerWords(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "speaker" in value; - isInstance = isInstance && "words" in value; - - return isInstance; -} - -export function SpeakerWordsFromJSON(json: any): SpeakerWords { - return SpeakerWordsFromJSONTyped(json, false); -} - -export function SpeakerWordsFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): SpeakerWords { - if (json === undefined || json === null) { - return json; - } - return { - speaker: json["speaker"], - words: json["words"], - }; -} - -export function SpeakerWordsToJSON(value?: SpeakerWords | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker: value.speaker, - words: value.words, - }; -} +export type SpeakerWords = { + speaker: number; + words: Array; +}; diff --git a/www/app/api/models/TranscriptParticipant.ts b/www/app/api/models/TranscriptParticipant.ts index 76fd5d2b..b606a3d9 100644 --- a/www/app/api/models/TranscriptParticipant.ts +++ b/www/app/api/models/TranscriptParticipant.ts @@ -1,87 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface TranscriptParticipant - */ -export interface TranscriptParticipant { - /** - * - * @type {any} - * @memberof TranscriptParticipant - */ - id?: any | null; - /** - * - * @type {any} - * @memberof TranscriptParticipant - */ - speaker: any | null; - /** - * - * @type {any} - * @memberof TranscriptParticipant - */ - name: any | null; -} - -/** - * Check if a given object implements the TranscriptParticipant interface. - */ -export function instanceOfTranscriptParticipant(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "speaker" in value; - isInstance = isInstance && "name" in value; - - return isInstance; -} - -export function TranscriptParticipantFromJSON( - json: any, -): TranscriptParticipant { - return TranscriptParticipantFromJSONTyped(json, false); -} - -export function TranscriptParticipantFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): TranscriptParticipant { - if (json === undefined || json === null) { - return json; - } - return { - id: !exists(json, "id") ? undefined : json["id"], - speaker: json["speaker"], - name: json["name"], - }; -} - -export function TranscriptParticipantToJSON( - value?: TranscriptParticipant | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - speaker: value.speaker, - name: value.name, - }; -} +export type TranscriptParticipant = { + id?: string; + speaker: number | null; + name: string; +}; diff --git a/www/app/api/models/TranscriptSegmentTopic.ts b/www/app/api/models/TranscriptSegmentTopic.ts deleted file mode 100644 index 73496a67..00000000 --- a/www/app/api/models/TranscriptSegmentTopic.ts +++ /dev/null @@ -1,88 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface TranscriptSegmentTopic - */ -export interface TranscriptSegmentTopic { - /** - * - * @type {any} - * @memberof TranscriptSegmentTopic - */ - speaker: any | null; - /** - * - * @type {any} - * @memberof TranscriptSegmentTopic - */ - text: any | null; - /** - * - * @type {any} - * @memberof TranscriptSegmentTopic - */ - timestamp: any | null; -} - -/** - * Check if a given object implements the TranscriptSegmentTopic interface. - */ -export function instanceOfTranscriptSegmentTopic(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "speaker" in value; - isInstance = isInstance && "text" in value; - isInstance = isInstance && "timestamp" in value; - - return isInstance; -} - -export function TranscriptSegmentTopicFromJSON( - json: any, -): TranscriptSegmentTopic { - return TranscriptSegmentTopicFromJSONTyped(json, false); -} - -export function TranscriptSegmentTopicFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): TranscriptSegmentTopic { - if (json === undefined || json === null) { - return json; - } - return { - speaker: json["speaker"], - text: json["text"], - timestamp: json["timestamp"], - }; -} - -export function TranscriptSegmentTopicToJSON( - value?: TranscriptSegmentTopic | null, -): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker: value.speaker, - text: value.text, - timestamp: value.timestamp, - }; -} diff --git a/www/app/api/models/TranscriptTopic.ts b/www/app/api/models/TranscriptTopic.ts deleted file mode 100644 index f22496b2..00000000 --- a/www/app/api/models/TranscriptTopic.ts +++ /dev/null @@ -1,100 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ - -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface TranscriptTopic - */ -export interface TranscriptTopic { - /** - * - * @type {any} - * @memberof TranscriptTopic - */ - id?: any | null; - /** - * - * @type {any} - * @memberof TranscriptTopic - */ - title: any | null; - /** - * - * @type {any} - * @memberof TranscriptTopic - */ - summary: any | null; - /** - * - * @type {any} - * @memberof TranscriptTopic - */ - timestamp: any | null; - /** - * - * @type {any} - * @memberof TranscriptTopic - */ - segments?: any | null; -} - -/** - * Check if a given object implements the TranscriptTopic interface. - */ -export function instanceOfTranscriptTopic(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "title" in value; - isInstance = isInstance && "summary" in value; - isInstance = isInstance && "timestamp" in value; - - return isInstance; -} - -export function TranscriptTopicFromJSON(json: any): TranscriptTopic { - return TranscriptTopicFromJSONTyped(json, false); -} - -export function TranscriptTopicFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): TranscriptTopic { - if (json === undefined || json === null) { - return json; - } - return { - id: !exists(json, "id") ? undefined : json["id"], - title: json["title"], - summary: json["summary"], - timestamp: json["timestamp"], - segments: !exists(json, "segments") ? undefined : json["segments"], - }; -} - -export function TranscriptTopicToJSON(value?: TranscriptTopic | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - id: value.id, - title: value.title, - summary: value.summary, - timestamp: value.timestamp, - segments: value.segments, - }; -} diff --git a/www/app/api/models/UpdateParticipant.ts b/www/app/api/models/UpdateParticipant.ts index 2a8f4fd6..8915240d 100644 --- a/www/app/api/models/UpdateParticipant.ts +++ b/www/app/api/models/UpdateParticipant.ts @@ -1,73 +1,9 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface UpdateParticipant - */ -export interface UpdateParticipant { - /** - * - * @type {any} - * @memberof UpdateParticipant - */ - speaker?: any | null; - /** - * - * @type {any} - * @memberof UpdateParticipant - */ - name?: any | null; -} - -/** - * Check if a given object implements the UpdateParticipant interface. - */ -export function instanceOfUpdateParticipant(value: object): boolean { - let isInstance = true; - - return isInstance; -} - -export function UpdateParticipantFromJSON(json: any): UpdateParticipant { - return UpdateParticipantFromJSONTyped(json, false); -} - -export function UpdateParticipantFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): UpdateParticipant { - if (json === undefined || json === null) { - return json; - } - return { - speaker: !exists(json, "speaker") ? undefined : json["speaker"], - name: !exists(json, "name") ? undefined : json["name"], - }; -} - -export function UpdateParticipantToJSON(value?: UpdateParticipant | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - speaker: value.speaker, - name: value.name, - }; -} +export type UpdateParticipant = { + speaker?: number | null; + name?: string | null; +}; diff --git a/www/app/api/models/UpdateTranscript.ts b/www/app/api/models/UpdateTranscript.ts index da5bee72..274f55d2 100644 --- a/www/app/api/models/UpdateTranscript.ts +++ b/www/app/api/models/UpdateTranscript.ts @@ -1,127 +1,17 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface UpdateTranscript - */ -export interface UpdateTranscript { - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - name?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - locked?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - title?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - shortSummary?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - longSummary?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - shareMode?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - participants?: any | null; - /** - * - * @type {any} - * @memberof UpdateTranscript - */ - reviewed?: any | null; -} +import type { TranscriptParticipant } from "./TranscriptParticipant"; -/** - * Check if a given object implements the UpdateTranscript interface. - */ -export function instanceOfUpdateTranscript(value: object): boolean { - let isInstance = true; - - return isInstance; -} - -export function UpdateTranscriptFromJSON(json: any): UpdateTranscript { - return UpdateTranscriptFromJSONTyped(json, false); -} - -export function UpdateTranscriptFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): UpdateTranscript { - if (json === undefined || json === null) { - return json; - } - return { - name: !exists(json, "name") ? undefined : json["name"], - locked: !exists(json, "locked") ? undefined : json["locked"], - title: !exists(json, "title") ? undefined : json["title"], - shortSummary: !exists(json, "short_summary") - ? undefined - : json["short_summary"], - longSummary: !exists(json, "long_summary") - ? undefined - : json["long_summary"], - shareMode: !exists(json, "share_mode") ? undefined : json["share_mode"], - participants: !exists(json, "participants") - ? undefined - : json["participants"], - reviewed: !exists(json, "reviewed") ? undefined : json["reviewed"], - }; -} - -export function UpdateTranscriptToJSON(value?: UpdateTranscript | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - name: value.name, - locked: value.locked, - title: value.title, - short_summary: value.shortSummary, - long_summary: value.longSummary, - share_mode: value.shareMode, - participants: value.participants, - reviewed: value.reviewed, - }; -} +export type UpdateTranscript = { + name?: string | null; + locked?: boolean | null; + title?: string | null; + short_summary?: string | null; + long_summary?: string | null; + share_mode?: "public" | "semi-private" | "private" | null; + participants?: Array | null; + reviewed?: boolean | null; +}; diff --git a/www/app/api/models/UserInfo.ts b/www/app/api/models/UserInfo.ts index 65d84951..e8a423d5 100644 --- a/www/app/api/models/UserInfo.ts +++ b/www/app/api/models/UserInfo.ts @@ -1,84 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface UserInfo - */ -export interface UserInfo { - /** - * - * @type {any} - * @memberof UserInfo - */ - sub: any | null; - /** - * - * @type {any} - * @memberof UserInfo - */ - email: any | null; - /** - * - * @type {any} - * @memberof UserInfo - */ - emailVerified: any | null; -} - -/** - * Check if a given object implements the UserInfo interface. - */ -export function instanceOfUserInfo(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "sub" in value; - isInstance = isInstance && "email" in value; - isInstance = isInstance && "emailVerified" in value; - - return isInstance; -} - -export function UserInfoFromJSON(json: any): UserInfo { - return UserInfoFromJSONTyped(json, false); -} - -export function UserInfoFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): UserInfo { - if (json === undefined || json === null) { - return json; - } - return { - sub: json["sub"], - email: json["email"], - emailVerified: json["email_verified"], - }; -} - -export function UserInfoToJSON(value?: UserInfo | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - sub: value.sub, - email: value.email, - email_verified: value.emailVerified, - }; -} +export type UserInfo = { + sub: string; + email: string | null; + email_verified: boolean | null; +}; diff --git a/www/app/api/models/ValidationError.ts b/www/app/api/models/ValidationError.ts index 84990e4f..c725678a 100644 --- a/www/app/api/models/ValidationError.ts +++ b/www/app/api/models/ValidationError.ts @@ -1,84 +1,10 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface ValidationError - */ -export interface ValidationError { - /** - * - * @type {any} - * @memberof ValidationError - */ - loc: any | null; - /** - * - * @type {any} - * @memberof ValidationError - */ - msg: any | null; - /** - * - * @type {any} - * @memberof ValidationError - */ - type: any | null; -} - -/** - * Check if a given object implements the ValidationError interface. - */ -export function instanceOfValidationError(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "loc" in value; - isInstance = isInstance && "msg" in value; - isInstance = isInstance && "type" in value; - - return isInstance; -} - -export function ValidationErrorFromJSON(json: any): ValidationError { - return ValidationErrorFromJSONTyped(json, false); -} - -export function ValidationErrorFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): ValidationError { - if (json === undefined || json === null) { - return json; - } - return { - loc: json["loc"], - msg: json["msg"], - type: json["type"], - }; -} - -export function ValidationErrorToJSON(value?: ValidationError | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - loc: value.loc, - msg: value.msg, - type: value.type, - }; -} +export type ValidationError = { + loc: Array; + msg: string; + type: string; +}; diff --git a/www/app/api/models/Word.ts b/www/app/api/models/Word.ts index 85607f2e..69b1b18d 100644 --- a/www/app/api/models/Word.ts +++ b/www/app/api/models/Word.ts @@ -1,92 +1,11 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ -/** - * FastAPI - * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) - * - * The version of the OpenAPI document: 0.1.0 - * - * - * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). - * https://openapi-generator.tech - * Do not edit the class manually. - */ -import { exists, mapValues } from "../runtime"; -/** - * - * @export - * @interface Word - */ -export interface Word { - /** - * - * @type {any} - * @memberof Word - */ - text: any | null; - /** - * - * @type {any} - * @memberof Word - */ - start: any | null; - /** - * - * @type {any} - * @memberof Word - */ - end: any | null; - /** - * - * @type {any} - * @memberof Word - */ - speaker?: any | null; -} - -/** - * Check if a given object implements the Word interface. - */ -export function instanceOfWord(value: object): boolean { - let isInstance = true; - isInstance = isInstance && "text" in value; - isInstance = isInstance && "start" in value; - isInstance = isInstance && "end" in value; - - return isInstance; -} - -export function WordFromJSON(json: any): Word { - return WordFromJSONTyped(json, false); -} - -export function WordFromJSONTyped( - json: any, - ignoreDiscriminator: boolean, -): Word { - if (json === undefined || json === null) { - return json; - } - return { - text: json["text"], - start: json["start"], - end: json["end"], - speaker: !exists(json, "speaker") ? undefined : json["speaker"], - }; -} - -export function WordToJSON(value?: Word | null): any { - if (value === undefined) { - return undefined; - } - if (value === null) { - return null; - } - return { - text: value.text, - start: value.start, - end: value.end, - speaker: value.speaker, - }; -} +export type Word = { + text: string; + start: number; + end: number; + speaker?: number; +}; diff --git a/www/app/api/models/index.ts b/www/app/api/models/index.ts deleted file mode 100644 index 6bb9444e..00000000 --- a/www/app/api/models/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -/* tslint:disable */ -/* eslint-disable */ -export * from "./AudioWaveform"; -export * from "./CreateParticipant"; -export * from "./CreateTranscript"; -export * from "./DeletionStatus"; -export * from "./GetTranscript"; -export * from "./GetTranscriptSegmentTopic"; -export * from "./GetTranscriptTopic"; -export * from "./GetTranscriptTopicWithWords"; -export * from "./GetTranscriptTopicWithWordsPerSpeaker"; -export * from "./HTTPValidationError"; -export * from "./PageGetTranscript"; -export * from "./Participant"; -export * from "./RtcOffer"; -export * from "./SpeakerAssignment"; -export * from "./SpeakerAssignmentStatus"; -export * from "./SpeakerMerge"; -export * from "./SpeakerWords"; -export * from "./TranscriptParticipant"; -export * from "./UpdateParticipant"; -export * from "./UpdateTranscript"; -export * from "./UserInfo"; -export * from "./ValidationError"; -export * from "./Word"; diff --git a/www/app/api/services/DefaultService.ts b/www/app/api/services/DefaultService.ts new file mode 100644 index 00000000..dd9538f5 --- /dev/null +++ b/www/app/api/services/DefaultService.ts @@ -0,0 +1,546 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { AudioWaveform } from "../models/AudioWaveform"; +import type { Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post } from "../models/Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post"; +import type { CreateParticipant } from "../models/CreateParticipant"; +import type { CreateTranscript } from "../models/CreateTranscript"; +import type { DeletionStatus } from "../models/DeletionStatus"; +import type { GetTranscript } from "../models/GetTranscript"; +import type { GetTranscriptTopic } from "../models/GetTranscriptTopic"; +import type { GetTranscriptTopicWithWords } from "../models/GetTranscriptTopicWithWords"; +import type { GetTranscriptTopicWithWordsPerSpeaker } from "../models/GetTranscriptTopicWithWordsPerSpeaker"; +import type { Page_GetTranscript_ } from "../models/Page_GetTranscript_"; +import type { Participant } from "../models/Participant"; +import type { RtcOffer } from "../models/RtcOffer"; +import type { SpeakerAssignment } from "../models/SpeakerAssignment"; +import type { SpeakerAssignmentStatus } from "../models/SpeakerAssignmentStatus"; +import type { SpeakerMerge } from "../models/SpeakerMerge"; +import type { UpdateParticipant } from "../models/UpdateParticipant"; +import type { UpdateTranscript } from "../models/UpdateTranscript"; +import type { UserInfo } from "../models/UserInfo"; + +import type { CancelablePromise } from "../core/CancelablePromise"; +import { OpenAPI } from "../core/OpenAPI"; +import { request as __request } from "../core/request"; + +export class DefaultService { + /** + * Metrics + * Endpoint that serves Prometheus metrics. + * @returns any Successful Response + * @throws ApiError + */ + public static metrics(): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/metrics", + }); + } + + /** + * Transcripts List + * @param page Page number + * @param size Page size + * @returns Page_GetTranscript_ Successful Response + * @throws ApiError + */ + public static v1TranscriptsList( + page: number = 1, + size: number = 50, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts", + query: { + page: page, + size: size, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcripts Create + * @param requestBody + * @returns GetTranscript Successful Response + * @throws ApiError + */ + public static v1TranscriptsCreate( + requestBody: CreateTranscript, + ): CancelablePromise { + return __request(OpenAPI, { + method: "POST", + url: "/v1/transcripts", + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get + * @param transcriptId + * @returns GetTranscript Successful Response + * @throws ApiError + */ + public static v1TranscriptGet( + transcriptId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Update + * @param transcriptId + * @param requestBody + * @returns GetTranscript Successful Response + * @throws ApiError + */ + public static v1TranscriptUpdate( + transcriptId: string, + requestBody: UpdateTranscript, + ): CancelablePromise { + return __request(OpenAPI, { + method: "PATCH", + url: "/v1/transcripts/{transcript_id}", + path: { + transcript_id: transcriptId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Delete + * @param transcriptId + * @returns DeletionStatus Successful Response + * @throws ApiError + */ + public static v1TranscriptDelete( + transcriptId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "DELETE", + url: "/v1/transcripts/{transcript_id}", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Topics + * @param transcriptId + * @returns GetTranscriptTopic Successful Response + * @throws ApiError + */ + public static v1TranscriptGetTopics( + transcriptId: string, + ): CancelablePromise> { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/topics", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Topics With Words + * @param transcriptId + * @returns GetTranscriptTopicWithWords Successful Response + * @throws ApiError + */ + public static v1TranscriptGetTopicsWithWords( + transcriptId: string, + ): CancelablePromise> { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/topics/with-words", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Topics With Words Per Speaker + * @param transcriptId + * @param topicId + * @returns GetTranscriptTopicWithWordsPerSpeaker Successful Response + * @throws ApiError + */ + public static v1TranscriptGetTopicsWithWordsPerSpeaker( + transcriptId: string, + topicId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker", + path: { + transcript_id: transcriptId, + topic_id: topicId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Audio Mp3 + * @param transcriptId + * @param token + * @returns any Successful Response + * @throws ApiError + */ + public static v1TranscriptHeadAudioMp3( + transcriptId: string, + token?: string | null, + ): CancelablePromise { + return __request(OpenAPI, { + method: "HEAD", + url: "/v1/transcripts/{transcript_id}/audio/mp3", + path: { + transcript_id: transcriptId, + }, + query: { + token: token, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Audio Mp3 + * @param transcriptId + * @param token + * @returns any Successful Response + * @throws ApiError + */ + public static v1TranscriptGetAudioMp3( + transcriptId: string, + token?: string | null, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/audio/mp3", + path: { + transcript_id: transcriptId, + }, + query: { + token: token, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Audio Waveform + * @param transcriptId + * @returns AudioWaveform Successful Response + * @throws ApiError + */ + public static v1TranscriptGetAudioWaveform( + transcriptId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/audio/waveform", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Participants + * @param transcriptId + * @returns Participant Successful Response + * @throws ApiError + */ + public static v1TranscriptGetParticipants( + transcriptId: string, + ): CancelablePromise> { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/participants", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Add Participant + * @param transcriptId + * @param requestBody + * @returns Participant Successful Response + * @throws ApiError + */ + public static v1TranscriptAddParticipant( + transcriptId: string, + requestBody: CreateParticipant, + ): CancelablePromise { + return __request(OpenAPI, { + method: "POST", + url: "/v1/transcripts/{transcript_id}/participants", + path: { + transcript_id: transcriptId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Participant + * @param transcriptId + * @param participantId + * @returns Participant Successful Response + * @throws ApiError + */ + public static v1TranscriptGetParticipant( + transcriptId: string, + participantId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", + path: { + transcript_id: transcriptId, + participant_id: participantId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Update Participant + * @param transcriptId + * @param participantId + * @param requestBody + * @returns Participant Successful Response + * @throws ApiError + */ + public static v1TranscriptUpdateParticipant( + transcriptId: string, + participantId: string, + requestBody: UpdateParticipant, + ): CancelablePromise { + return __request(OpenAPI, { + method: "PATCH", + url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", + path: { + transcript_id: transcriptId, + participant_id: participantId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Delete Participant + * @param transcriptId + * @param participantId + * @returns DeletionStatus Successful Response + * @throws ApiError + */ + public static v1TranscriptDeleteParticipant( + transcriptId: string, + participantId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "DELETE", + url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", + path: { + transcript_id: transcriptId, + participant_id: participantId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Assign Speaker + * @param transcriptId + * @param requestBody + * @returns SpeakerAssignmentStatus Successful Response + * @throws ApiError + */ + public static v1TranscriptAssignSpeaker( + transcriptId: string, + requestBody: SpeakerAssignment, + ): CancelablePromise { + return __request(OpenAPI, { + method: "PATCH", + url: "/v1/transcripts/{transcript_id}/speaker/assign", + path: { + transcript_id: transcriptId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Merge Speaker + * @param transcriptId + * @param requestBody + * @returns SpeakerAssignmentStatus Successful Response + * @throws ApiError + */ + public static v1TranscriptMergeSpeaker( + transcriptId: string, + requestBody: SpeakerMerge, + ): CancelablePromise { + return __request(OpenAPI, { + method: "PATCH", + url: "/v1/transcripts/{transcript_id}/speaker/merge", + path: { + transcript_id: transcriptId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Record Upload + * @param transcriptId + * @param formData + * @returns any Successful Response + * @throws ApiError + */ + public static v1TranscriptRecordUpload( + transcriptId: string, + formData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post, + ): CancelablePromise { + return __request(OpenAPI, { + method: "POST", + url: "/v1/transcripts/{transcript_id}/record/upload", + path: { + transcript_id: transcriptId, + }, + formData: formData, + mediaType: "multipart/form-data", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Get Websocket Events + * @param transcriptId + * @returns any Successful Response + * @throws ApiError + */ + public static v1TranscriptGetWebsocketEvents( + transcriptId: string, + ): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/transcripts/{transcript_id}/events", + path: { + transcript_id: transcriptId, + }, + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * Transcript Record Webrtc + * @param transcriptId + * @param requestBody + * @returns any Successful Response + * @throws ApiError + */ + public static v1TranscriptRecordWebrtc( + transcriptId: string, + requestBody: RtcOffer, + ): CancelablePromise { + return __request(OpenAPI, { + method: "POST", + url: "/v1/transcripts/{transcript_id}/record/webrtc", + path: { + transcript_id: transcriptId, + }, + body: requestBody, + mediaType: "application/json", + errors: { + 422: `Validation Error`, + }, + }); + } + + /** + * User Me + * @returns any Successful Response + * @throws ApiError + */ + public static v1UserMe(): CancelablePromise { + return __request(OpenAPI, { + method: "GET", + url: "/v1/me", + }); + } +} diff --git a/www/app/lib/getApi.ts b/www/app/lib/getApi.ts index e1ece2a9..236f9579 100644 --- a/www/app/lib/getApi.ts +++ b/www/app/lib/getApi.ts @@ -1,16 +1,15 @@ -import { Configuration } from "../api/runtime"; -import { DefaultApi } from "../api/apis/DefaultApi"; +import { DefaultService, OpenAPI } from "../api"; import { useFiefAccessTokenInfo } from "@fief/fief/nextjs/react"; import { useContext, useEffect, useState } from "react"; import { DomainContext, featureEnabled } from "../[domain]/domainContext"; import { CookieContext } from "../(auth)/fiefWrapper"; -export default function getApi(): DefaultApi | undefined { +export default function getApi(): DefaultService | undefined { const accessTokenInfo = useFiefAccessTokenInfo(); const api_url = useContext(DomainContext).api_url; const requireLogin = featureEnabled("requireLogin"); - const [api, setApi] = useState(); + const [api, setApi] = useState(); const { hasAuthCookie } = useContext(CookieContext); if (!api_url) throw new Error("no API URL"); @@ -20,13 +19,17 @@ export default function getApi(): DefaultApi | undefined { return; } - const apiConfiguration = new Configuration({ - basePath: api_url, - accessToken: accessTokenInfo - ? "Bearer " + accessTokenInfo.access_token - : undefined, - }); - setApi(new DefaultApi(apiConfiguration)); + // const apiConfiguration = new Configuration({ + // basePath: api_url, + // accessToken: accessTokenInfo + // ? "Bearer " + accessTokenInfo.access_token + // : undefined, + // }); + OpenAPI.BASE = api_url; + if (accessTokenInfo) { + OpenAPI.TOKEN = "Bearer " + accessTokenInfo.access_token; + } + setApi(DefaultService); }, [!accessTokenInfo, hasAuthCookie]); return api; diff --git a/www/package.json b/www/package.json index c62c6108..c20463c8 100644 --- a/www/package.json +++ b/www/package.json @@ -8,7 +8,8 @@ "start": "next start", "lint": "next lint", "format": "prettier --write .", - "openapi": "openapi-generator-cli generate -i http://localhost:1250/openapi.json -g typescript-fetch -o app/api && yarn format" + "openapi": "openapi --input http://127.0.0.1:1250/openapi.json --output app/api && yarn format", + "openapi-old": "openapi-generator-cli generate -i http://localhost:1250/openapi.json -g typescript-fetch -o app/api && yarn format" }, "dependencies": { "@fief/fief": "^0.13.5", @@ -44,6 +45,8 @@ "devDependencies": { "@openapitools/openapi-generator-cli": "^2.7.0", "@types/react": "18.2.20", + "openapi-typescript": "^6.7.3", + "openapi-typescript-codegen": "^0.25.0", "prettier": "^3.0.0" } } diff --git a/www/yarn.lock b/www/yarn.lock index 714ced46..ef448c7f 100644 --- a/www/yarn.lock +++ b/www/yarn.lock @@ -7,6 +7,16 @@ resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== +"@apidevtools/json-schema-ref-parser@9.0.9": + version "9.0.9" + resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#d720f9256e3609621280584f2b47ae165359268b" + integrity sha512-GBD2Le9w2+lVFoc4vswGI/TjkNIZSVp7+9xPf+X3uidBfWnAeUWmquteSyt0+VCrhNMWj/FTABISQrD3Z/YA+w== + dependencies: + "@jsdevtools/ono" "^7.1.3" + "@types/json-schema" "^7.0.6" + call-me-maybe "^1.0.1" + js-yaml "^4.1.0" + "@babel/runtime@^7.21.0": version "7.22.10" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682" @@ -14,6 +24,11 @@ dependencies: regenerator-runtime "^0.14.0" +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== + "@fief/fief@^0.13.5": version "0.13.5" resolved "https://registry.yarnpkg.com/@fief/fief/-/fief-0.13.5.tgz#01ac833ddff0b84f2e1737cc168721568b0e7a39" @@ -106,6 +121,11 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jsdevtools/ono@^7.1.3": + version "7.1.3" + resolved "https://registry.yarnpkg.com/@jsdevtools/ono/-/ono-7.1.3.tgz#9df03bbd7c696a5c58885c34aa06da41c8543796" + integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg== + "@lukeed/csprng@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" @@ -441,6 +461,11 @@ dependencies: "@types/istanbul-lib-report" "*" +"@types/json-schema@^7.0.6": + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== + "@types/mdast@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.1.tgz#9c45e60a04e79f160dcefe6545d28ae536a6ed22" @@ -518,6 +543,11 @@ agent-base@6: dependencies: debug "4" +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -555,6 +585,11 @@ arg@^5.0.2: resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz" integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -686,11 +721,21 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-me-maybe@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" + integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== + camelcase-css@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz" integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== +camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + caniuse-lite@^1.0.30001406, caniuse-lite@^1.0.30001464, caniuse-lite@^1.0.30001503: version "1.0.30001515" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001515.tgz" @@ -812,6 +857,11 @@ commander@8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^11.0.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== + commander@^4.0.0: version "4.1.1" resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz" @@ -1010,6 +1060,17 @@ fast-glob@^3.2.12: merge2 "^1.3.0" micromatch "^4.0.4" +fast-glob@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + fast-safe-stringify@2.1.1, fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" @@ -1079,6 +1140,15 @@ fs-extra@10.1.0: jsonfile "^6.0.1" universalify "^2.0.0" +fs-extra@^11.1.1: + version "11.2.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b" + integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" @@ -1166,6 +1236,18 @@ graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== +handlebars@^4.7.7: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -1415,6 +1497,20 @@ jose@^4.6.0: resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +json-schema-ref-parser@^9.0.9: + version "9.0.9" + resolved "https://registry.yarnpkg.com/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz#66ea538e7450b12af342fa3d5b8458bc1e1e013f" + integrity sha512-qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q== + dependencies: + "@apidevtools/json-schema-ref-parser" "9.0.9" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -1774,7 +1870,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.6: +minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -1810,6 +1906,11 @@ nanoid@^3.3.4, nanoid@^3.3.6: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + next@^13.4.9: version "13.4.9" resolved "https://registry.npmjs.org/next/-/next-13.4.9.tgz" @@ -1885,6 +1986,29 @@ onetime@^5.1.0: dependencies: mimic-fn "^2.1.0" +openapi-typescript-codegen@^0.25.0: + version "0.25.0" + resolved "https://registry.yarnpkg.com/openapi-typescript-codegen/-/openapi-typescript-codegen-0.25.0.tgz#0cb028f54b33b0a63bd9da3756c1c41b4e1a70e2" + integrity sha512-nN/TnIcGbP58qYgwEEy5FrAAjePcYgfMaCe3tsmYyTgI3v4RR9v8os14L+LEWDvV50+CmqiyTzRkKKtJeb6Ybg== + dependencies: + camelcase "^6.3.0" + commander "^11.0.0" + fs-extra "^11.1.1" + handlebars "^4.7.7" + json-schema-ref-parser "^9.0.9" + +openapi-typescript@^6.7.3: + version "6.7.3" + resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.3.tgz#7fe131a28551c8996e4a680e4698d0e1206635ba" + integrity sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw== + dependencies: + ansi-colors "^4.1.3" + fast-glob "^3.3.2" + js-yaml "^4.1.0" + supports-color "^9.4.0" + undici "^5.28.2" + yargs-parser "^21.1.1" + ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -2303,6 +2427,11 @@ simple-peer@^9.11.1: resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + space-separated-tokens@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" @@ -2542,6 +2671,11 @@ typescript@^5.1.6: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== +uglify-js@^3.1.4: + version "3.17.4" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== + uid@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/uid/-/uid-2.0.1.tgz#a3f57c962828ea65256cd622fc363028cdf4526b" @@ -2549,6 +2683,13 @@ uid@2.0.1: dependencies: "@lukeed/csprng" "^1.0.0" +undici@^5.28.2: + version "5.28.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" + integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== + dependencies: + "@fastify/busboy" "^2.0.0" + unified@^11.0.0: version "11.0.3" resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.3.tgz#e141be0fe466a2d28b2160f62712bc9cbc08fdd4" @@ -2680,6 +2821,11 @@ which@^2.0.2: dependencies: isexe "^2.0.0" +wordwrap@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -2714,6 +2860,11 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From a559d4d2240858474866dc8782986c222fd85041 Mon Sep 17 00:00:00 2001 From: Andreas Date: Wed, 20 Dec 2023 23:19:24 +0700 Subject: [PATCH 03/12] New openapi generator - experimental --- www/app/[domain]/browse/page.tsx | 8 +- .../transcripts/[transcriptId]/page.tsx | 9 +- .../[domain]/transcripts/createTranscript.ts | 44 ++++----- www/app/[domain]/transcripts/finalSummary.tsx | 17 ++-- www/app/[domain]/transcripts/new/page.tsx | 10 +- www/app/[domain]/transcripts/shareLink.tsx | 39 +++++--- .../[domain]/transcripts/transcriptTitle.tsx | 19 ++-- www/app/[domain]/transcripts/useMp3.ts | 2 +- www/app/[domain]/transcripts/useTopics.ts | 14 +-- www/app/[domain]/transcripts/useTranscript.ts | 14 +-- .../[domain]/transcripts/useTranscriptList.ts | 23 ++--- www/app/[domain]/transcripts/useWaveform.ts | 10 +- www/app/[domain]/transcripts/useWebRTC.ts | 20 ++-- www/app/api/Api.ts | 36 +++++++ www/app/api/OpenApi.ts | 36 +++++++ www/app/api/core/BaseHttpRequest.ts | 13 +++ www/app/api/core/FetchHttpRequest.ts | 25 +++++ www/app/api/index.ts | 3 + www/app/api/services/DefaultService.ts | 97 ++++++++++--------- www/app/lib/shareMode.ts | 7 ++ www/app/lib/{getApi.ts => useApi.ts} | 30 +++--- www/package.json | 2 +- 22 files changed, 287 insertions(+), 191 deletions(-) create mode 100644 www/app/api/Api.ts create mode 100644 www/app/api/OpenApi.ts create mode 100644 www/app/api/core/BaseHttpRequest.ts create mode 100644 www/app/api/core/FetchHttpRequest.ts create mode 100644 www/app/lib/shareMode.ts rename www/app/lib/{getApi.ts => useApi.ts} (55%) diff --git a/www/app/[domain]/browse/page.tsx b/www/app/[domain]/browse/page.tsx index b2359b9e..46a81295 100644 --- a/www/app/[domain]/browse/page.tsx +++ b/www/app/[domain]/browse/page.tsx @@ -72,18 +72,18 @@ export default function TranscriptBrowser() { <> )} - {item.sourceLanguage ? ( + {item.source_language ? (

- {item.sourceLanguage} + {item.source_language}
) : ( <> )}
- {new Date(item.createdAt).toLocaleDateString("en-US")} + {new Date(item.created_at).toLocaleDateString("en-US")}
-
{item.shortSummary}
+
{item.short_summary}
))} diff --git a/www/app/[domain]/transcripts/[transcriptId]/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/page.tsx index 18debf69..356cb7b5 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/page.tsx @@ -19,6 +19,7 @@ import { useRouter } from "next/navigation"; import { faSpinner } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { featureEnabled } from "../../domainContext"; +import { toShareMode } from "../../../lib/shareMode"; type TranscriptDetails = { params: { @@ -110,10 +111,10 @@ export default function TranscriptDetails(details: TranscriptDetails) {
- {transcript.response.longSummary ? ( + {transcript.response.long_summary ? ( setShowModal(true)} /> @@ -142,8 +143,8 @@ export default function TranscriptDetails(details: TranscriptDetails) {
diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index 9ad1abe0..08eff7da 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -1,48 +1,38 @@ -import { useEffect, useState } from "react"; -import { - DefaultApi, - V1TranscriptsCreateRequest, -} from "../../api/apis/DefaultApi"; -import { GetTranscript } from "../../api"; +import { useState } from "react"; import { useError } from "../../(errors)/errorContext"; -import getApi from "../../lib/getApi"; +import { GetTranscript, CreateTranscript } from "../../api"; +import useApi from "../../lib/useApi"; -type CreateTranscript = { - response: GetTranscript | null; + +type UseTranscript = { + transcript: GetTranscript | null; loading: boolean; error: Error | null; - create: (params: V1TranscriptsCreateRequest["createTranscript"]) => void; + create: (transcriptCreationDetails: CreateTranscript) => void; }; -const useCreateTranscript = (): CreateTranscript => { - const [response, setResponse] = useState(null); +const useCreateTranscript = (): UseTranscript => { + const [transcript, setTranscript] = useState(null); const [loading, setLoading] = useState(false); const [error, setErrorState] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); - const create = (params: V1TranscriptsCreateRequest["createTranscript"]) => { + const create = (transcriptCreationDetails: CreateTranscript) => { if (loading || !api) return; setLoading(true); - const requestParameters: V1TranscriptsCreateRequest = { - createTranscript: { - name: params.name || "Unnamed Transcript", // Default - targetLanguage: params.targetLanguage || "en", // Default - }, - }; console.debug( "POST - /v1/transcripts/ - Requesting new transcription creation", - requestParameters, + transcriptCreationDetails, ); - api - .v1TranscriptsCreate(requestParameters) - .then((result) => { - setResponse(result); + api.v1TranscriptsCreate(transcriptCreationDetails) + .then((transcript) => { + setTranscript(transcript); setLoading(false); - console.debug("New transcript created:", result); + console.debug("New transcript created:", transcript); }) .catch((err) => { setError( @@ -54,7 +44,7 @@ const useCreateTranscript = (): CreateTranscript => { }); }; - return { response, loading, error, create }; + return { transcript, loading, error, create }; }; export default useCreateTranscript; diff --git a/www/app/[domain]/transcripts/finalSummary.tsx b/www/app/[domain]/transcripts/finalSummary.tsx index f7d7ac23..cb361118 100644 --- a/www/app/[domain]/transcripts/finalSummary.tsx +++ b/www/app/[domain]/transcripts/finalSummary.tsx @@ -2,8 +2,9 @@ import { useRef, useState } from "react"; import React from "react"; import Markdown from "react-markdown"; import "../../styles/markdown.css"; -import getApi from "../../lib/getApi"; import { featureEnabled } from "../domainContext"; +import { UpdateTranscript } from "../../api"; +import useApi from "../../lib/useApi"; type FinalSummaryProps = { summary: string; @@ -19,17 +20,17 @@ export default function FinalSummary(props: FinalSummaryProps) { const [isEditMode, setIsEditMode] = useState(false); const [preEditSummary, setPreEditSummary] = useState(props.summary); const [editedSummary, setEditedSummary] = useState(props.summary); - const api = getApi(); const updateSummary = async (newSummary: string, transcriptId: string) => { - if (!api) return; try { - const updatedTranscript = await api.v1TranscriptUpdate({ + const api = useApi(); + const requestBody: UpdateTranscript = { + long_summary: newSummary, + }; + const updatedTranscript = await api?.v1TranscriptUpdate( transcriptId, - updateTranscript: { - longSummary: newSummary, - }, - }); + requestBody, + ); console.log("Updated long summary:", updatedTranscript); } catch (err) { console.error("Failed to update long summary:", err); diff --git a/www/app/[domain]/transcripts/new/page.tsx b/www/app/[domain]/transcripts/new/page.tsx index 045c2db5..21def9d2 100644 --- a/www/app/[domain]/transcripts/new/page.tsx +++ b/www/app/[domain]/transcripts/new/page.tsx @@ -18,7 +18,7 @@ const TranscriptCreate = () => { const isAuthenticated = useFiefIsAuthenticated(); const requireLogin = featureEnabled("requireLogin"); - const [name, setName] = useState(); + const [name, setName] = useState(""); const nameChange = (event: React.ChangeEvent) => { setName(event.target.value); }; @@ -35,13 +35,13 @@ const TranscriptCreate = () => { const send = () => { if (loadingSend || createTranscript.loading || permissionDenied) return; setLoadingSend(true); - createTranscript.create({ name, targetLanguage }); + createTranscript.create({ name, target_language: targetLanguage }); }; useEffect(() => { - createTranscript.response && - router.push(`/transcripts/${createTranscript.response.id}/record`); - }, [createTranscript.response]); + createTranscript.transcript && + router.push(`/transcripts/${createTranscript.transcript.id}/record`); + }, [createTranscript.transcript]); useEffect(() => { if (createTranscript.error) setLoadingSend(false); diff --git a/www/app/[domain]/transcripts/shareLink.tsx b/www/app/[domain]/transcripts/shareLink.tsx index dd66d6cb..4b30e7f9 100644 --- a/www/app/[domain]/transcripts/shareLink.tsx +++ b/www/app/[domain]/transcripts/shareLink.tsx @@ -1,6 +1,5 @@ import React, { useState, useRef, useEffect, use } from "react"; import { featureEnabled } from "../domainContext"; -import getApi from "../../lib/getApi"; import { useFiefUserinfo } from "@fief/fief/nextjs/react"; import SelectSearch from "react-select-search"; import "react-select-search/style.css"; @@ -8,26 +7,30 @@ import "../../styles/button.css"; import "../../styles/form.scss"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { faSpinner } from "@fortawesome/free-solid-svg-icons"; - +import { DefaultService, UpdateTranscript } from "../../api"; +import { ShareMode, toShareMode } from "../../lib/shareMode"; +import useApi from "../../lib/useApi"; type ShareLinkProps = { transcriptId: string; userId: string | null; - shareMode: string; + shareMode: ShareMode; }; const ShareLink = (props: ShareLinkProps) => { const [isCopied, setIsCopied] = useState(false); + const [api, setApi] = useState(null); const inputRef = useRef(null); const [currentUrl, setCurrentUrl] = useState(""); const requireLogin = featureEnabled("requireLogin"); const [isOwner, setIsOwner] = useState(false); - const [shareMode, setShareMode] = useState(props.shareMode); + const [shareMode, setShareMode] = useState(props.shareMode); const [shareLoading, setShareLoading] = useState(false); const userinfo = useFiefUserinfo(); - const api = getApi(); useEffect(() => { setCurrentUrl(window.location.href); + const api = useApi(); + setApi(api); }, []); useEffect(() => { @@ -48,18 +51,24 @@ const ShareLink = (props: ShareLinkProps) => { }; const updateShareMode = async (selectedShareMode: string) => { - if (!api) return; setShareLoading(true); - const updatedTranscript = await api.v1TranscriptUpdate({ - transcriptId: props.transcriptId, - updateTranscript: { - shareMode: selectedShareMode, - }, - }); - setShareMode(updatedTranscript.shareMode); + const requestBody: UpdateTranscript = { + share_mode: toShareMode(selectedShareMode), + }; + const api = useApi(); + + if (!api) + throw new Error("ShareLink's API should always be ready at this point"); + + const updatedTranscript = await api.v1TranscriptUpdate( + props.transcriptId, + requestBody, + ); + setShareMode(toShareMode(updatedTranscript.share_mode)); setShareLoading(false); }; const privacyEnabled = featureEnabled("privacy"); + const apiReady = api != null; return (
{

This transcript is public. Everyone can access it.

)} - {isOwner && api && ( + {isOwner && apiReady (
{ { name: "Secure", value: "semi-private" }, { name: "Public", value: "public" }, ]} - value={shareMode} + value={shareMode?.toString()} onChange={updateShareMode} closeOnSelect={true} /> diff --git a/www/app/[domain]/transcripts/transcriptTitle.tsx b/www/app/[domain]/transcripts/transcriptTitle.tsx index afc29e51..9b95315b 100644 --- a/www/app/[domain]/transcripts/transcriptTitle.tsx +++ b/www/app/[domain]/transcripts/transcriptTitle.tsx @@ -1,5 +1,6 @@ -import { useState } from "react"; -import getApi from "../../lib/getApi"; +import { useEffect, useState } from "react"; +import { UpdateTranscript } from "../../api"; +import useApi from "../../lib/useApi"; type TranscriptTitle = { title: string; @@ -10,17 +11,17 @@ const TranscriptTitle = (props: TranscriptTitle) => { const [displayedTitle, setDisplayedTitle] = useState(props.title); const [preEditTitle, setPreEditTitle] = useState(props.title); const [isEditing, setIsEditing] = useState(false); - const api = getApi(); const updateTitle = async (newTitle: string, transcriptId: string) => { - if (!api) return; try { - const updatedTranscript = await api.v1TranscriptUpdate({ + const requestBody: UpdateTranscript = { + title: newTitle, + }; + const api = useApi(); + const updatedTranscript = await api?.v1TranscriptUpdate( transcriptId, - updateTranscript: { - title: newTitle, - }, - }); + requestBody, + ); console.log("Updated transcript:", updatedTranscript); } catch (err) { console.error("Failed to update transcript:", err); diff --git a/www/app/[domain]/transcripts/useMp3.ts b/www/app/[domain]/transcripts/useMp3.ts index 363a4190..9cfff0c7 100644 --- a/www/app/[domain]/transcripts/useMp3.ts +++ b/www/app/[domain]/transcripts/useMp3.ts @@ -1,6 +1,6 @@ import { useContext, useEffect, useState } from "react"; import { DomainContext } from "../domainContext"; -import getApi from "../../lib/getApi"; +import getApi from "../../lib/useApi"; import { useFiefAccessTokenInfo } from "@fief/fief/build/esm/nextjs/react"; export type Mp3Response = { diff --git a/www/app/[domain]/transcripts/useTopics.ts b/www/app/[domain]/transcripts/useTopics.ts index de4097b3..2a78efaf 100644 --- a/www/app/[domain]/transcripts/useTopics.ts +++ b/www/app/[domain]/transcripts/useTopics.ts @@ -1,11 +1,7 @@ import { useEffect, useState } from "react"; -import { - DefaultApi, - V1TranscriptGetTopicsRequest, -} from "../../api/apis/DefaultApi"; import { useError } from "../../(errors)/errorContext"; import { Topic } from "./webSocketTypes"; -import getApi from "../../lib/getApi"; +import useApi from "../../lib/useApi"; import { shouldShowError } from "../../lib/errorUtils"; type TranscriptTopics = { @@ -19,17 +15,13 @@ const useTopics = (id: string): TranscriptTopics => { const [loading, setLoading] = useState(false); const [error, setErrorState] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); useEffect(() => { if (!id || !api) return; setLoading(true); - const requestParameters: V1TranscriptGetTopicsRequest = { - transcriptId: id, - }; - api - .v1TranscriptGetTopics(requestParameters) + api.v1TranscriptGetTopics(id) .then((result) => { setTopics(result); setLoading(false); diff --git a/www/app/[domain]/transcripts/useTranscript.ts b/www/app/[domain]/transcripts/useTranscript.ts index 91700d7a..4b19c616 100644 --- a/www/app/[domain]/transcripts/useTranscript.ts +++ b/www/app/[domain]/transcripts/useTranscript.ts @@ -1,9 +1,8 @@ import { useEffect, useState } from "react"; -import { V1TranscriptGetRequest } from "../../api/apis/DefaultApi"; import { GetTranscript } from "../../api"; import { useError } from "../../(errors)/errorContext"; -import getApi from "../../lib/getApi"; import { shouldShowError } from "../../lib/errorUtils"; +import useApi from "../../lib/useApi"; type ErrorTranscript = { error: Error; @@ -30,17 +29,14 @@ const useTranscript = ( const [loading, setLoading] = useState(true); const [error, setErrorState] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); useEffect(() => { if (!id || !api) return; setLoading(true); - const requestParameters: V1TranscriptGetRequest = { - transcriptId: id, - }; - api - .v1TranscriptGet(requestParameters) + + api.v1TranscriptGet(id) .then((result) => { setResponse(result); setLoading(false); @@ -55,7 +51,7 @@ const useTranscript = ( } setErrorState(error); }); - }, [id, !api]); + }, [id, api]); return { response, loading, error } as | ErrorTranscript diff --git a/www/app/[domain]/transcripts/useTranscriptList.ts b/www/app/[domain]/transcripts/useTranscriptList.ts index 7b5abb37..7b8fe288 100644 --- a/www/app/[domain]/transcripts/useTranscriptList.ts +++ b/www/app/[domain]/transcripts/useTranscriptList.ts @@ -1,32 +1,29 @@ import { useEffect, useState } from "react"; -import { GetTranscriptFromJSON, PageGetTranscript } from "../../api"; import { useError } from "../../(errors)/errorContext"; -import getApi from "../../lib/getApi"; +import useApi from "../../lib/useApi"; +import { Page_GetTranscript_ } from "../../api"; type TranscriptList = { - response: PageGetTranscript | null; + response: Page_GetTranscript_ | null; loading: boolean; error: Error | null; }; //always protected const useTranscriptList = (page: number): TranscriptList => { - const [response, setResponse] = useState(null); + const [response, setResponse] = useState(null); const [loading, setLoading] = useState(true); const [error, setErrorState] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); useEffect(() => { - if (!api) return; setLoading(true); - api - .v1TranscriptsList({ page }) + if (!api) + +return; + api.v1TranscriptsList(page) .then((response) => { - // issue with API layer, conversion for items is not happening - response.items = response.items.map((item) => - GetTranscriptFromJSON(item), - ); setResponse(response); setLoading(false); }) @@ -36,7 +33,7 @@ const useTranscriptList = (page: number): TranscriptList => { setError(err); setErrorState(err); }); - }, [!api, page]); + }, [api, page]); return { response, loading, error }; }; diff --git a/www/app/[domain]/transcripts/useWaveform.ts b/www/app/[domain]/transcripts/useWaveform.ts index f80ad78c..19291c93 100644 --- a/www/app/[domain]/transcripts/useWaveform.ts +++ b/www/app/[domain]/transcripts/useWaveform.ts @@ -1,8 +1,7 @@ import { useEffect, useState } from "react"; -import { V1TranscriptGetAudioWaveformRequest } from "../../api/apis/DefaultApi"; import { AudioWaveform } from "../../api"; import { useError } from "../../(errors)/errorContext"; -import getApi from "../../lib/getApi"; +import useApi from "../../lib/useApi"; import { shouldShowError } from "../../lib/errorUtils"; type AudioWaveFormResponse = { @@ -16,16 +15,13 @@ const useWaveform = (id: string): AudioWaveFormResponse => { const [loading, setLoading] = useState(true); const [error, setErrorState] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); useEffect(() => { if (!id || !api) return; setLoading(true); - const requestParameters: V1TranscriptGetAudioWaveformRequest = { - transcriptId: id, - }; api - .v1TranscriptGetAudioWaveform(requestParameters) + .v1TranscriptGetAudioWaveform(id) .then((result) => { setWaveform(result); setLoading(false); diff --git a/www/app/[domain]/transcripts/useWebRTC.ts b/www/app/[domain]/transcripts/useWebRTC.ts index edd3bef0..042e9600 100644 --- a/www/app/[domain]/transcripts/useWebRTC.ts +++ b/www/app/[domain]/transcripts/useWebRTC.ts @@ -1,11 +1,8 @@ import { useEffect, useState } from "react"; import Peer from "simple-peer"; -import { - DefaultApi, - V1TranscriptRecordWebrtcRequest, -} from "../../api/apis/DefaultApi"; import { useError } from "../../(errors)/errorContext"; -import getApi from "../../lib/getApi"; +import useApi from "../../lib/useApi"; +import { RtcOffer } from "../../api"; const useWebRTC = ( stream: MediaStream | null, @@ -13,10 +10,10 @@ const useWebRTC = ( ): Peer => { const [peer, setPeer] = useState(null); const { setError } = useError(); - const api = getApi(); + const api = useApi(); useEffect(() => { - if (!stream || !transcriptId) { + if (!stream || !transcriptId || !api) { return; } @@ -38,16 +35,13 @@ const useWebRTC = ( p.on("signal", (data: any) => { if (!api) return; if ("sdp" in data) { - const requestParameters: V1TranscriptRecordWebrtcRequest = { - transcriptId: transcriptId, - rtcOffer: { + const rtcOffer : RtcOffer = { sdp: data.sdp, type: data.type, - }, - }; + }; api - .v1TranscriptRecordWebrtc(requestParameters) + .v1TranscriptRecordWebrtc(transcriptId, rtcOffer) .then((answer) => { try { p.signal(answer); diff --git a/www/app/api/Api.ts b/www/app/api/Api.ts new file mode 100644 index 00000000..d80252ec --- /dev/null +++ b/www/app/api/Api.ts @@ -0,0 +1,36 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { BaseHttpRequest } from "./core/BaseHttpRequest"; +import type { OpenAPIConfig } from "./core/OpenAPI"; +import { FetchHttpRequest } from "./core/FetchHttpRequest"; + +import { DefaultService } from "./services/DefaultService"; + +type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest; + +export class Api { + public readonly default: DefaultService; + + public readonly request: BaseHttpRequest; + + constructor( + config?: Partial, + HttpRequest: HttpRequestConstructor = FetchHttpRequest, + ) { + this.request = new HttpRequest({ + BASE: config?.BASE ?? "", + VERSION: config?.VERSION ?? "0.1.0", + WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false, + CREDENTIALS: config?.CREDENTIALS ?? "include", + TOKEN: config?.TOKEN, + USERNAME: config?.USERNAME, + PASSWORD: config?.PASSWORD, + HEADERS: config?.HEADERS, + ENCODE_PATH: config?.ENCODE_PATH, + }); + + this.default = new DefaultService(this.request); + } +} diff --git a/www/app/api/OpenApi.ts b/www/app/api/OpenApi.ts new file mode 100644 index 00000000..70ac35d9 --- /dev/null +++ b/www/app/api/OpenApi.ts @@ -0,0 +1,36 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { BaseHttpRequest } from "./core/BaseHttpRequest"; +import type { OpenAPIConfig } from "./core/OpenAPI"; +import { FetchHttpRequest } from "./core/FetchHttpRequest"; + +import { DefaultService } from "./services/DefaultService"; + +type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest; + +export class OpenApi { + public readonly default: DefaultService; + + public readonly request: BaseHttpRequest; + + constructor( + config?: Partial, + HttpRequest: HttpRequestConstructor = FetchHttpRequest, + ) { + this.request = new HttpRequest({ + BASE: config?.BASE ?? "", + VERSION: config?.VERSION ?? "0.1.0", + WITH_CREDENTIALS: config?.WITH_CREDENTIALS ?? false, + CREDENTIALS: config?.CREDENTIALS ?? "include", + TOKEN: config?.TOKEN, + USERNAME: config?.USERNAME, + PASSWORD: config?.PASSWORD, + HEADERS: config?.HEADERS, + ENCODE_PATH: config?.ENCODE_PATH, + }); + + this.default = new DefaultService(this.request); + } +} diff --git a/www/app/api/core/BaseHttpRequest.ts b/www/app/api/core/BaseHttpRequest.ts new file mode 100644 index 00000000..f0781151 --- /dev/null +++ b/www/app/api/core/BaseHttpRequest.ts @@ -0,0 +1,13 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ApiRequestOptions } from "./ApiRequestOptions"; +import type { CancelablePromise } from "./CancelablePromise"; +import type { OpenAPIConfig } from "./OpenAPI"; + +export abstract class BaseHttpRequest { + constructor(public readonly config: OpenAPIConfig) {} + + public abstract request(options: ApiRequestOptions): CancelablePromise; +} diff --git a/www/app/api/core/FetchHttpRequest.ts b/www/app/api/core/FetchHttpRequest.ts new file mode 100644 index 00000000..3683c443 --- /dev/null +++ b/www/app/api/core/FetchHttpRequest.ts @@ -0,0 +1,25 @@ +/* generated using openapi-typescript-codegen -- do no edit */ +/* istanbul ignore file */ +/* tslint:disable */ +/* eslint-disable */ +import type { ApiRequestOptions } from "./ApiRequestOptions"; +import { BaseHttpRequest } from "./BaseHttpRequest"; +import type { CancelablePromise } from "./CancelablePromise"; +import type { OpenAPIConfig } from "./OpenAPI"; +import { request as __request } from "./request"; + +export class FetchHttpRequest extends BaseHttpRequest { + constructor(config: OpenAPIConfig) { + super(config); + } + + /** + * Request method + * @param options The request options from the service + * @returns CancelablePromise + * @throws ApiError + */ + public override request(options: ApiRequestOptions): CancelablePromise { + return __request(this.config, options); + } +} diff --git a/www/app/api/index.ts b/www/app/api/index.ts index a1543438..61227da5 100644 --- a/www/app/api/index.ts +++ b/www/app/api/index.ts @@ -2,7 +2,10 @@ /* istanbul ignore file */ /* tslint:disable */ /* eslint-disable */ +export { OpenApi } from "./OpenApi"; + export { ApiError } from "./core/ApiError"; +export { BaseHttpRequest } from "./core/BaseHttpRequest"; export { CancelablePromise, CancelError } from "./core/CancelablePromise"; export { OpenAPI } from "./core/OpenAPI"; export type { OpenAPIConfig } from "./core/OpenAPI"; diff --git a/www/app/api/services/DefaultService.ts b/www/app/api/services/DefaultService.ts index dd9538f5..0a0ce0c5 100644 --- a/www/app/api/services/DefaultService.ts +++ b/www/app/api/services/DefaultService.ts @@ -22,18 +22,19 @@ import type { UpdateTranscript } from "../models/UpdateTranscript"; import type { UserInfo } from "../models/UserInfo"; import type { CancelablePromise } from "../core/CancelablePromise"; -import { OpenAPI } from "../core/OpenAPI"; -import { request as __request } from "../core/request"; +import type { BaseHttpRequest } from "../core/BaseHttpRequest"; export class DefaultService { + constructor(public readonly httpRequest: BaseHttpRequest) {} + /** * Metrics * Endpoint that serves Prometheus metrics. * @returns any Successful Response * @throws ApiError */ - public static metrics(): CancelablePromise { - return __request(OpenAPI, { + public metrics(): CancelablePromise { + return this.httpRequest.request({ method: "GET", url: "/metrics", }); @@ -46,11 +47,11 @@ export class DefaultService { * @returns Page_GetTranscript_ Successful Response * @throws ApiError */ - public static v1TranscriptsList( + public v1TranscriptsList( page: number = 1, size: number = 50, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts", query: { @@ -69,10 +70,10 @@ export class DefaultService { * @returns GetTranscript Successful Response * @throws ApiError */ - public static v1TranscriptsCreate( + public v1TranscriptsCreate( requestBody: CreateTranscript, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "POST", url: "/v1/transcripts", body: requestBody, @@ -89,10 +90,10 @@ export class DefaultService { * @returns GetTranscript Successful Response * @throws ApiError */ - public static v1TranscriptGet( + public v1TranscriptGet( transcriptId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}", path: { @@ -111,11 +112,11 @@ export class DefaultService { * @returns GetTranscript Successful Response * @throws ApiError */ - public static v1TranscriptUpdate( + public v1TranscriptUpdate( transcriptId: string, requestBody: UpdateTranscript, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "PATCH", url: "/v1/transcripts/{transcript_id}", path: { @@ -135,10 +136,10 @@ export class DefaultService { * @returns DeletionStatus Successful Response * @throws ApiError */ - public static v1TranscriptDelete( + public v1TranscriptDelete( transcriptId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "DELETE", url: "/v1/transcripts/{transcript_id}", path: { @@ -156,10 +157,10 @@ export class DefaultService { * @returns GetTranscriptTopic Successful Response * @throws ApiError */ - public static v1TranscriptGetTopics( + public v1TranscriptGetTopics( transcriptId: string, ): CancelablePromise> { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/topics", path: { @@ -177,10 +178,10 @@ export class DefaultService { * @returns GetTranscriptTopicWithWords Successful Response * @throws ApiError */ - public static v1TranscriptGetTopicsWithWords( + public v1TranscriptGetTopicsWithWords( transcriptId: string, ): CancelablePromise> { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/topics/with-words", path: { @@ -199,11 +200,11 @@ export class DefaultService { * @returns GetTranscriptTopicWithWordsPerSpeaker Successful Response * @throws ApiError */ - public static v1TranscriptGetTopicsWithWordsPerSpeaker( + public v1TranscriptGetTopicsWithWordsPerSpeaker( transcriptId: string, topicId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker", path: { @@ -223,11 +224,11 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1TranscriptHeadAudioMp3( + public v1TranscriptHeadAudioMp3( transcriptId: string, token?: string | null, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "HEAD", url: "/v1/transcripts/{transcript_id}/audio/mp3", path: { @@ -249,11 +250,11 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1TranscriptGetAudioMp3( + public v1TranscriptGetAudioMp3( transcriptId: string, token?: string | null, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/audio/mp3", path: { @@ -274,10 +275,10 @@ export class DefaultService { * @returns AudioWaveform Successful Response * @throws ApiError */ - public static v1TranscriptGetAudioWaveform( + public v1TranscriptGetAudioWaveform( transcriptId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/audio/waveform", path: { @@ -295,10 +296,10 @@ export class DefaultService { * @returns Participant Successful Response * @throws ApiError */ - public static v1TranscriptGetParticipants( + public v1TranscriptGetParticipants( transcriptId: string, ): CancelablePromise> { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/participants", path: { @@ -317,11 +318,11 @@ export class DefaultService { * @returns Participant Successful Response * @throws ApiError */ - public static v1TranscriptAddParticipant( + public v1TranscriptAddParticipant( transcriptId: string, requestBody: CreateParticipant, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "POST", url: "/v1/transcripts/{transcript_id}/participants", path: { @@ -342,11 +343,11 @@ export class DefaultService { * @returns Participant Successful Response * @throws ApiError */ - public static v1TranscriptGetParticipant( + public v1TranscriptGetParticipant( transcriptId: string, participantId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", path: { @@ -367,12 +368,12 @@ export class DefaultService { * @returns Participant Successful Response * @throws ApiError */ - public static v1TranscriptUpdateParticipant( + public v1TranscriptUpdateParticipant( transcriptId: string, participantId: string, requestBody: UpdateParticipant, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "PATCH", url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", path: { @@ -394,11 +395,11 @@ export class DefaultService { * @returns DeletionStatus Successful Response * @throws ApiError */ - public static v1TranscriptDeleteParticipant( + public v1TranscriptDeleteParticipant( transcriptId: string, participantId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "DELETE", url: "/v1/transcripts/{transcript_id}/participants/{participant_id}", path: { @@ -418,11 +419,11 @@ export class DefaultService { * @returns SpeakerAssignmentStatus Successful Response * @throws ApiError */ - public static v1TranscriptAssignSpeaker( + public v1TranscriptAssignSpeaker( transcriptId: string, requestBody: SpeakerAssignment, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "PATCH", url: "/v1/transcripts/{transcript_id}/speaker/assign", path: { @@ -443,11 +444,11 @@ export class DefaultService { * @returns SpeakerAssignmentStatus Successful Response * @throws ApiError */ - public static v1TranscriptMergeSpeaker( + public v1TranscriptMergeSpeaker( transcriptId: string, requestBody: SpeakerMerge, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "PATCH", url: "/v1/transcripts/{transcript_id}/speaker/merge", path: { @@ -468,11 +469,11 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1TranscriptRecordUpload( + public v1TranscriptRecordUpload( transcriptId: string, formData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "POST", url: "/v1/transcripts/{transcript_id}/record/upload", path: { @@ -492,10 +493,10 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1TranscriptGetWebsocketEvents( + public v1TranscriptGetWebsocketEvents( transcriptId: string, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "GET", url: "/v1/transcripts/{transcript_id}/events", path: { @@ -514,11 +515,11 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1TranscriptRecordWebrtc( + public v1TranscriptRecordWebrtc( transcriptId: string, requestBody: RtcOffer, ): CancelablePromise { - return __request(OpenAPI, { + return this.httpRequest.request({ method: "POST", url: "/v1/transcripts/{transcript_id}/record/webrtc", path: { @@ -537,8 +538,8 @@ export class DefaultService { * @returns any Successful Response * @throws ApiError */ - public static v1UserMe(): CancelablePromise { - return __request(OpenAPI, { + public v1UserMe(): CancelablePromise { + return this.httpRequest.request({ method: "GET", url: "/v1/me", }); diff --git a/www/app/lib/shareMode.ts b/www/app/lib/shareMode.ts new file mode 100644 index 00000000..504d888a --- /dev/null +++ b/www/app/lib/shareMode.ts @@ -0,0 +1,7 @@ +export type ShareMode = "public" | "semi-private" | "private" | null; + +export function toShareMode(value: string | undefined | null): ShareMode { + return value === "public" || value === "semi-private" || value === "private" + ? value + : null; +} diff --git a/www/app/lib/getApi.ts b/www/app/lib/useApi.ts similarity index 55% rename from www/app/lib/getApi.ts rename to www/app/lib/useApi.ts index 236f9579..6485eba4 100644 --- a/www/app/lib/getApi.ts +++ b/www/app/lib/useApi.ts @@ -1,15 +1,15 @@ -import { DefaultService, OpenAPI } from "../api"; - import { useFiefAccessTokenInfo } from "@fief/fief/nextjs/react"; import { useContext, useEffect, useState } from "react"; import { DomainContext, featureEnabled } from "../[domain]/domainContext"; import { CookieContext } from "../(auth)/fiefWrapper"; +import { OpenApi, DefaultService } from "../api"; -export default function getApi(): DefaultService | undefined { +export default function useApi(): DefaultService | null { const accessTokenInfo = useFiefAccessTokenInfo(); const api_url = useContext(DomainContext).api_url; const requireLogin = featureEnabled("requireLogin"); - const [api, setApi] = useState(); + const [ready, setReady] = useState(false); + const [api, setApi] = useState(null); const { hasAuthCookie } = useContext(CookieContext); if (!api_url) throw new Error("no API URL"); @@ -19,18 +19,16 @@ export default function getApi(): DefaultService | undefined { return; } - // const apiConfiguration = new Configuration({ - // basePath: api_url, - // accessToken: accessTokenInfo - // ? "Bearer " + accessTokenInfo.access_token - // : undefined, - // }); - OpenAPI.BASE = api_url; - if (accessTokenInfo) { - OpenAPI.TOKEN = "Bearer " + accessTokenInfo.access_token; - } - setApi(DefaultService); + if (!accessTokenInfo) + return; + + const openApi = new OpenApi({ + BASE: api_url, + TOKEN: accessTokenInfo?.access_token + }); + + setApi(openApi); }, [!accessTokenInfo, hasAuthCookie]); - return api; + return api?.default ?? null; } diff --git a/www/package.json b/www/package.json index c20463c8..8713fb53 100644 --- a/www/package.json +++ b/www/package.json @@ -8,7 +8,7 @@ "start": "next start", "lint": "next lint", "format": "prettier --write .", - "openapi": "openapi --input http://127.0.0.1:1250/openapi.json --output app/api && yarn format", + "openapi": "openapi --input http://127.0.0.1:1250/openapi.json --name OpenApi --output app/api && yarn format", "openapi-old": "openapi-generator-cli generate -i http://localhost:1250/openapi.json -g typescript-fetch -o app/api && yarn format" }, "dependencies": { From ee3b4cb9f7420cfe83cb914f7e12e190a6a6b30e Mon Sep 17 00:00:00 2001 From: Andreas Date: Fri, 22 Dec 2023 13:36:59 +0700 Subject: [PATCH 04/12] Experimental --- www/app/[domain]/transcripts/createTranscript.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index 08eff7da..e8986761 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -26,13 +26,27 @@ const useCreateTranscript = (): UseTranscript => { console.debug( "POST - /v1/transcripts/ - Requesting new transcription creation", transcriptCreationDetails, + api ); + const aaa = async () => { + console.log("Calling API..."); + + await new Promise((res) => setTimeout(res, 500)); + + console.log("500 ms elapsed - calling api"); + + const test = await api.v1TranscriptsCreate(transcriptCreationDetails); + console.log(test); + }; + + aaa(); + api.v1TranscriptsCreate(transcriptCreationDetails) .then((transcript) => { + console.debug("New transcript created:", transcript); setTranscript(transcript); setLoading(false); - console.debug("New transcript created:", transcript); }) .catch((err) => { setError( From 9f42c4d8a71cfd2ed0578f249453f04da31fae8a Mon Sep 17 00:00:00 2001 From: Koper Date: Tue, 26 Dec 2023 20:49:40 +0700 Subject: [PATCH 05/12] NextJS 14 experimental upgrade --- README.md | 7 +- .../[domain]/transcripts/createTranscript.ts | 24 +- www/app/[domain]/transcripts/finalSummary.tsx | 2 +- www/app/[domain]/transcripts/shareLink.tsx | 47 +- www/app/[domain]/transcripts/useTopics.ts | 3 +- www/app/[domain]/transcripts/useTranscript.ts | 3 +- .../[domain]/transcripts/useTranscriptList.ts | 7 +- www/app/[domain]/transcripts/useWebRTC.ts | 8 +- www/app/lib/useApi.ts | 7 +- www/package.json | 4 +- www/tsconfig.json | 3 +- www/yarn.lock | 1274 +++++++++++++++-- 12 files changed, 1243 insertions(+), 146 deletions(-) diff --git a/README.md b/README.md index cfdddd8d..2dc76798 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,11 @@ It also uses https://github.com/fief-dev for authentication, and Vercel for depl - [Back-End](#back-end) - [Installation](#installation-1) - [Start the API/Backend](#start-the-apibackend) + - [Redis (Mac)](#redis-mac) + - [Redis (Windows)](#redis-windows) + - [Update the database schema (run on first install, and after each pull containing a migration)](#update-the-database-schema-run-on-first-install-and-after-each-pull-containing-a-migration) + - [Main Server](#main-server) + - [Crontab (optional)](#crontab-optional) - [Using docker](#using-docker) - [Using local GPT4All](#using-local-gpt4all) - [Using local files](#using-local-files) @@ -152,7 +157,7 @@ redis-server ## Update the database schema (run on first install, and after each pull containing a migration) ```bash -poetry run python alembic head +poetry run alembic heads ``` ## Main Server diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index e8986761..58f9a551 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -3,7 +3,6 @@ import { useError } from "../../(errors)/errorContext"; import { GetTranscript, CreateTranscript } from "../../api"; import useApi from "../../lib/useApi"; - type UseTranscript = { transcript: GetTranscript | null; loading: boolean; @@ -23,26 +22,16 @@ const useCreateTranscript = (): UseTranscript => { setLoading(true); - console.debug( + console.log( "POST - /v1/transcripts/ - Requesting new transcription creation", transcriptCreationDetails, - api + api, ); - const aaa = async () => { - console.log("Calling API..."); + console.log("START"); - await new Promise((res) => setTimeout(res, 500)); - - console.log("500 ms elapsed - calling api"); - - const test = await api.v1TranscriptsCreate(transcriptCreationDetails); - console.log(test); - }; - - aaa(); - - api.v1TranscriptsCreate(transcriptCreationDetails) + api + .v1TranscriptsCreate(transcriptCreationDetails) .then((transcript) => { console.debug("New transcript created:", transcript); setTranscript(transcript); @@ -55,6 +44,9 @@ const useCreateTranscript = (): UseTranscript => { ); setErrorState(err); setLoading(false); + }) + .finally(() => { + console.log("At least this should display?"); }); }; diff --git a/www/app/[domain]/transcripts/finalSummary.tsx b/www/app/[domain]/transcripts/finalSummary.tsx index cb361118..6ad90b14 100644 --- a/www/app/[domain]/transcripts/finalSummary.tsx +++ b/www/app/[domain]/transcripts/finalSummary.tsx @@ -4,7 +4,7 @@ import Markdown from "react-markdown"; import "../../styles/markdown.css"; import { featureEnabled } from "../domainContext"; import { UpdateTranscript } from "../../api"; -import useApi from "../../lib/useApi"; +import useApi from "../../lib/useApi"; type FinalSummaryProps = { summary: string; diff --git a/www/app/[domain]/transcripts/shareLink.tsx b/www/app/[domain]/transcripts/shareLink.tsx index 4b30e7f9..887a6336 100644 --- a/www/app/[domain]/transcripts/shareLink.tsx +++ b/www/app/[domain]/transcripts/shareLink.tsx @@ -89,29 +89,30 @@ const ShareLink = (props: ShareLinkProps) => {

This transcript is public. Everyone can access it.

)} - {isOwner && apiReady ( -
- - {shareLoading && ( -
- -
- )} -
- )} + {isOwner && + apiReady( +
+ + {shareLoading && ( +
+ +
+ )} +
, + )}
)} {!requireLogin && ( diff --git a/www/app/[domain]/transcripts/useTopics.ts b/www/app/[domain]/transcripts/useTopics.ts index 2a78efaf..49929d47 100644 --- a/www/app/[domain]/transcripts/useTopics.ts +++ b/www/app/[domain]/transcripts/useTopics.ts @@ -21,7 +21,8 @@ const useTopics = (id: string): TranscriptTopics => { if (!id || !api) return; setLoading(true); - api.v1TranscriptGetTopics(id) + api + .v1TranscriptGetTopics(id) .then((result) => { setTopics(result); setLoading(false); diff --git a/www/app/[domain]/transcripts/useTranscript.ts b/www/app/[domain]/transcripts/useTranscript.ts index 4b19c616..9c40c85a 100644 --- a/www/app/[domain]/transcripts/useTranscript.ts +++ b/www/app/[domain]/transcripts/useTranscript.ts @@ -36,7 +36,8 @@ const useTranscript = ( setLoading(true); - api.v1TranscriptGet(id) + api + .v1TranscriptGet(id) .then((result) => { setResponse(result); setLoading(false); diff --git a/www/app/[domain]/transcripts/useTranscriptList.ts b/www/app/[domain]/transcripts/useTranscriptList.ts index 7b8fe288..1a2ce9c0 100644 --- a/www/app/[domain]/transcripts/useTranscriptList.ts +++ b/www/app/[domain]/transcripts/useTranscriptList.ts @@ -19,10 +19,9 @@ const useTranscriptList = (page: number): TranscriptList => { useEffect(() => { setLoading(true); - if (!api) - -return; - api.v1TranscriptsList(page) + if (!api) return; + api + .v1TranscriptsList(page) .then((response) => { setResponse(response); setLoading(false); diff --git a/www/app/[domain]/transcripts/useWebRTC.ts b/www/app/[domain]/transcripts/useWebRTC.ts index 042e9600..016bee8a 100644 --- a/www/app/[domain]/transcripts/useWebRTC.ts +++ b/www/app/[domain]/transcripts/useWebRTC.ts @@ -35,10 +35,10 @@ const useWebRTC = ( p.on("signal", (data: any) => { if (!api) return; if ("sdp" in data) { - const rtcOffer : RtcOffer = { - sdp: data.sdp, - type: data.type, - }; + const rtcOffer: RtcOffer = { + sdp: data.sdp, + type: data.type, + }; api .v1TranscriptRecordWebrtc(transcriptId, rtcOffer) diff --git a/www/app/lib/useApi.ts b/www/app/lib/useApi.ts index 6485eba4..7a0cc42e 100644 --- a/www/app/lib/useApi.ts +++ b/www/app/lib/useApi.ts @@ -19,14 +19,13 @@ export default function useApi(): DefaultService | null { return; } - if (!accessTokenInfo) - return; + if (!accessTokenInfo) return; const openApi = new OpenApi({ BASE: api_url, - TOKEN: accessTokenInfo?.access_token + TOKEN: accessTokenInfo?.access_token, }); - + setApi(openApi); }, [!accessTokenInfo, hasAuthCookie]); diff --git a/www/package.json b/www/package.json index 8713fb53..50afc874 100644 --- a/www/package.json +++ b/www/package.json @@ -20,10 +20,12 @@ "@vercel/edge-config": "^0.4.1", "autoprefixer": "10.4.14", "axios": "^1.6.2", + "eslint-config-next": "^14.0.4", "fontawesome": "^5.6.3", "jest-worker": "^29.6.2", - "next": "^13.4.9", + "next": "^14.0.4", "postcss": "8.4.25", + "prop-types": "^15.8.1", "react": "^18.2.0", "react-dom": "^18.2.0", "react-dropdown": "^1.11.0", diff --git a/www/tsconfig.json b/www/tsconfig.json index 0e1b89ae..e799d9da 100644 --- a/www/tsconfig.json +++ b/www/tsconfig.json @@ -19,7 +19,8 @@ } ], "strictNullChecks": true, - "downlevelIteration": true + "downlevelIteration": true, + "target": "ES2020" }, "include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] diff --git a/www/yarn.lock b/www/yarn.lock index ef448c7f..574925db 100644 --- a/www/yarn.lock +++ b/www/yarn.lock @@ -24,6 +24,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.23.2": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.6.tgz#c05e610dc228855dc92ef1b53d07389ed8ab521d" + integrity sha512-zHd0eUrf5GZoOWVCXp6koAKQTfZV07eit6bGPmJgnZdnSAvvZee6zniW2XMF7Cmc4ISOOnPy3QaSiIJGJkVEDQ== + dependencies: + regenerator-runtime "^0.14.0" + "@fastify/busboy@^2.0.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" @@ -159,55 +166,62 @@ path-to-regexp "3.2.0" tslib "2.5.0" -"@next/env@13.4.9": - version "13.4.9" - resolved "https://registry.npmjs.org/@next/env/-/env-13.4.9.tgz" - integrity sha512-vuDRK05BOKfmoBYLNi2cujG2jrYbEod/ubSSyqgmEx9n/W3eZaJQdRNhTfumO+qmq/QTzLurW487n/PM/fHOkw== +"@next/env@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/env/-/env-14.0.4.tgz#d5cda0c4a862d70ae760e58c0cd96a8899a2e49a" + integrity sha512-irQnbMLbUNQpP1wcE5NstJtbuA/69kRfzBrpAD7Gsn8zm/CY6YQYc3HQBz8QPxwISG26tIm5afvvVbu508oBeQ== -"@next/swc-darwin-arm64@13.4.9": - version "13.4.9" - resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.9.tgz" - integrity sha512-TVzGHpZoVBk3iDsTOQA/R6MGmFp0+17SWXMEWd6zG30AfuELmSSMe2SdPqxwXU0gbpWkJL1KgfLzy5ReN0crqQ== +"@next/eslint-plugin-next@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-14.0.4.tgz#474fd88d92209270021186043513fbdc4203f5ec" + integrity sha512-U3qMNHmEZoVmHA0j/57nRfi3AscXNvkOnxDmle/69Jz/G0o/gWjXTDdlgILZdrxQ0Lw/jv2mPW8PGy0EGIHXhQ== + dependencies: + glob "7.1.7" -"@next/swc-darwin-x64@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.9.tgz#a08fccdee68201522fe6618ec81f832084b222f8" - integrity sha512-aSfF1fhv28N2e7vrDZ6zOQ+IIthocfaxuMWGReB5GDriF0caTqtHttAvzOMgJgXQtQx6XhyaJMozLTSEXeNN+A== +"@next/swc-darwin-arm64@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.0.4.tgz#27b1854c2cd04eb1d5e75081a1a792ad91526618" + integrity sha512-mF05E/5uPthWzyYDyptcwHptucf/jj09i2SXBPwNzbgBNc+XnwzrL0U6BmPjQeOL+FiB+iG1gwBeq7mlDjSRPg== -"@next/swc-linux-arm64-gnu@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.9.tgz#1798c2341bb841e96521433eed00892fb24abbd1" - integrity sha512-JhKoX5ECzYoTVyIy/7KykeO4Z2lVKq7HGQqvAH+Ip9UFn1MOJkOnkPRB7v4nmzqAoY+Je05Aj5wNABR1N18DMg== +"@next/swc-darwin-x64@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-14.0.4.tgz#9940c449e757d0ee50bb9e792d2600cc08a3eb3b" + integrity sha512-IZQ3C7Bx0k2rYtrZZxKKiusMTM9WWcK5ajyhOZkYYTCc8xytmwSzR1skU7qLgVT/EY9xtXDG0WhY6fyujnI3rw== -"@next/swc-linux-arm64-musl@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.9.tgz#cee04c51610eddd3638ce2499205083656531ea0" - integrity sha512-OOn6zZBIVkm/4j5gkPdGn4yqQt+gmXaLaSjRSO434WplV8vo2YaBNbSHaTM9wJpZTHVDYyjzuIYVEzy9/5RVZw== +"@next/swc-linux-arm64-gnu@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.0.4.tgz#0eafd27c8587f68ace7b4fa80695711a8434de21" + integrity sha512-VwwZKrBQo/MGb1VOrxJ6LrKvbpo7UbROuyMRvQKTFKhNaXjUmKTu7wxVkIuCARAfiI8JpaWAnKR+D6tzpCcM4w== -"@next/swc-linux-x64-gnu@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.9.tgz#1932d0367916adbc6844b244cda1d4182bd11f7a" - integrity sha512-iA+fJXFPpW0SwGmx/pivVU+2t4zQHNOOAr5T378PfxPHY6JtjV6/0s1vlAJUdIHeVpX98CLp9k5VuKgxiRHUpg== +"@next/swc-linux-arm64-musl@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.0.4.tgz#2b0072adb213f36dada5394ea67d6e82069ae7dd" + integrity sha512-8QftwPEW37XxXoAwsn+nXlodKWHfpMaSvt81W43Wh8dv0gkheD+30ezWMcFGHLI71KiWmHK5PSQbTQGUiidvLQ== -"@next/swc-linux-x64-musl@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.9.tgz#a66aa8c1383b16299b72482f6360facd5cde3c7a" - integrity sha512-rlNf2WUtMM+GAQrZ9gMNdSapkVi3koSW3a+dmBVp42lfugWVvnyzca/xJlN48/7AGx8qu62WyO0ya1ikgOxh6A== +"@next/swc-linux-x64-gnu@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.0.4.tgz#68c67d20ebc8e3f6ced6ff23a4ba2a679dbcec32" + integrity sha512-/s/Pme3VKfZAfISlYVq2hzFS8AcAIOTnoKupc/j4WlvF6GQ0VouS2Q2KEgPuO1eMBwakWPB1aYFIA4VNVh667A== -"@next/swc-win32-arm64-msvc@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.9.tgz#39482ee856c867177a612a30b6861c75e0736a4a" - integrity sha512-5T9ybSugXP77nw03vlgKZxD99AFTHaX8eT1ayKYYnGO9nmYhJjRPxcjU5FyYI+TdkQgEpIcH7p/guPLPR0EbKA== +"@next/swc-linux-x64-musl@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.0.4.tgz#67cd81b42fb2caf313f7992fcf6d978af55a1247" + integrity sha512-m8z/6Fyal4L9Bnlxde5g2Mfa1Z7dasMQyhEhskDATpqr+Y0mjOBZcXQ7G5U+vgL22cI4T7MfvgtrM2jdopqWaw== -"@next/swc-win32-ia32-msvc@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.9.tgz#29db85e34b597ade1a918235d16a760a9213c190" - integrity sha512-ojZTCt1lP2ucgpoiFgrFj07uq4CZsq4crVXpLGgQfoFq00jPKRPgesuGPaz8lg1yLfvafkU3Jd1i8snKwYR3LA== +"@next/swc-win32-arm64-msvc@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.0.4.tgz#be06585906b195d755ceda28f33c633e1443f1a3" + integrity sha512-7Wv4PRiWIAWbm5XrGz3D8HUkCVDMMz9igffZG4NB1p4u1KoItwx9qjATHz88kwCEal/HXmbShucaslXCQXUM5w== -"@next/swc-win32-x64-msvc@13.4.9": - version "13.4.9" - resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.9.tgz#0c2758164cccd61bc5a1c6cd8284fe66173e4a2b" - integrity sha512-QbT03FXRNdpuL+e9pLnu+XajZdm/TtIXVYY4lA9t+9l0fLZbHXDYEKitAqxrOj37o3Vx5ufxiRAniaIebYDCgw== +"@next/swc-win32-ia32-msvc@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.0.4.tgz#e76cabefa9f2d891599c3d85928475bd8d3f6600" + integrity sha512-zLeNEAPULsl0phfGb4kdzF/cAVIfaC7hY+kt0/d+y9mzcZHsMS3hAS829WbJ31DkSlVKQeHEjZHIdhN+Pg7Gyg== + +"@next/swc-win32-x64-msvc@14.0.4": + version "14.0.4" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.0.4.tgz#e74892f1a9ccf41d3bf5979ad6d3d77c07b9cba1" + integrity sha512-yEh2+R8qDlDCjxVpzOTEpBLQTEFAcP2A8fUFLaWNap9GitYKkKv1//y2S6XY6zsR4rCOPRpU7plYDR+az2n30A== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -282,6 +296,11 @@ estree-walker "^2.0.2" picomatch "^2.3.1" +"@rushstack/eslint-patch@^1.3.3": + version "1.6.1" + resolved "https://registry.yarnpkg.com/@rushstack/eslint-patch/-/eslint-patch-1.6.1.tgz#9ab8f811930d7af3e3d549183a50884f9eb83f36" + integrity sha512-UY+FGM/2jjMkzQLn8pxcHGMaVLh9aEitG3zY2CiY7XHdLiz3bZOwa6oDxNqEMv7zZkV+cj5DOdz0cQ1BP5Hjgw== + "@sentry-internal/tracing@7.77.0": version "7.77.0" resolved "https://registry.yarnpkg.com/@sentry-internal/tracing/-/tracing-7.77.0.tgz#f3d82486f8934a955b3dd2aa54c8d29586e42a37" @@ -416,10 +435,10 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== -"@swc/helpers@0.5.1": - version "0.5.1" - resolved "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.1.tgz" - integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== +"@swc/helpers@0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.2.tgz#85ea0c76450b61ad7d10a37050289eded783c27d" + integrity sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw== dependencies: tslib "^2.4.0" @@ -466,6 +485,11 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + "@types/mdast@^4.0.0": version "4.0.1" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-4.0.1.tgz#9c45e60a04e79f160dcefe6545d28ae536a6ed22" @@ -519,6 +543,52 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/parser@^5.4.2 || ^6.0.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.16.0.tgz#36f39f63b126aa25af2ad2df13d9891e9fd5b40c" + integrity sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw== + dependencies: + "@typescript-eslint/scope-manager" "6.16.0" + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz#f3e9a00fbc1d0701356359cd56489c54d9e37168" + integrity sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw== + dependencies: + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + +"@typescript-eslint/types@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.16.0.tgz#a3abe0045737d44d8234708d5ed8fef5d59dc91e" + integrity sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ== + +"@typescript-eslint/typescript-estree@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz#d6e0578e4f593045f0df06c4b3a22bd6f13f2d03" + integrity sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA== + dependencies: + "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/visitor-keys" "6.16.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + +"@typescript-eslint/visitor-keys@6.16.0": + version "6.16.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz#d50da18a05d91318ed3e7e8889bda0edc35f3a10" + integrity sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A== + dependencies: + "@typescript-eslint/types" "6.16.0" + eslint-visitor-keys "^3.4.1" + "@ungap/structured-clone@^1.0.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -590,11 +660,109 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +aria-query@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e" + integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A== + dependencies: + dequal "^2.0.3" + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + +array-includes@^3.1.6, array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-string "^1.0.7" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +array.prototype.flat@^1.3.1, array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.1, array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/array.prototype.tosorted/-/array.prototype.tosorted-1.1.2.tgz#620eff7442503d66c799d95503f82b475745cefd" + integrity sha512-HuQCHOlk1Weat5jzStICBCd83NxiIMwqDg/dHEsoefabn/hJRj5pVdWcPUSpRrwhwxZOsQassMpgN/xRYFBMIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" + +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + asap@^2.0.0: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== +ast-types-flow@^0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.8.tgz#0a85e1c92695769ac13a428bb653e7538bea27d6" + integrity sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ== + +asynciterator.prototype@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/asynciterator.prototype/-/asynciterator.prototype-1.0.0.tgz#8c5df0514936cdd133604dfcc9d3fb93f09b2b62" + integrity sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg== + dependencies: + has-symbols "^1.0.3" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -612,6 +780,16 @@ autoprefixer@10.4.14: picocolors "^1.0.0" postcss-value-parser "^4.2.0" +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +axe-core@=4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.7.0.tgz#34ba5a48a8b564f67e103f0aa5768d76e15bbbbf" + integrity sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ== + axios@0.27.2: version "0.27.2" resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" @@ -629,6 +807,13 @@ axios@^1.6.2: form-data "^4.0.0" proxy-from-env "^1.1.0" +axobject-query@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" + integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg== + dependencies: + dequal "^2.0.3" + bail@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" @@ -721,6 +906,15 @@ call-bind@^1.0.0: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + call-me-maybe@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" @@ -928,6 +1122,11 @@ csstype@^3.0.2: resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== +damerau-levenshtein@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" + integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA== + date-fns@^2.16.1: version "2.30.0" resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0" @@ -942,6 +1141,13 @@ debug@4, debug@^4.0.0, debug@^4.3.2, debug@^4.3.4: dependencies: ms "2.1.2" +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== + dependencies: + ms "^2.1.1" + decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" @@ -956,12 +1162,30 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -dequal@^2.0.0: +dequal@^2.0.0, dequal@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== @@ -986,11 +1210,25 @@ didyoumean@^1.2.2: resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz" integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + dlv@^1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz" integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + easy-table@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/easy-table/-/easy-table-1.1.0.tgz#86f9ab4c102f0371b7297b92a651d5824bc8cb73" @@ -1008,6 +1246,11 @@ emoji-regex@^8.0.0: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== +emoji-regex@^9.2.2: + version "9.2.2" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== + encoding@^0.1.13: version "0.1.13" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" @@ -1015,11 +1258,109 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" +enhanced-resolve@^5.12.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + err-code@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz" integrity sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA== +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.13" + +es-iterator-helpers@^1.0.12, es-iterator-helpers@^1.0.15: + version "1.0.15" + resolved "https://registry.yarnpkg.com/es-iterator-helpers/-/es-iterator-helpers-1.0.15.tgz#bd81d275ac766431d19305923707c3efd9f1ae40" + integrity sha512-GhoY8uYqd6iwUl2kgjTm4CZAf6oo5mHK7BPqx3rKgx893YSsy0LGHV6gfqqQvZt/8xM8xeOnfXBCfqclMKkJ5g== + dependencies: + asynciterator.prototype "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.1" + es-abstract "^1.22.1" + es-set-tostringtag "^2.0.1" + function-bind "^1.1.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + iterator.prototype "^1.1.2" + safe-array-concat "^1.0.1" + +es-set-tostringtag@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +es-shim-unscopables@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" @@ -1030,11 +1371,142 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== +eslint-config-next@^14.0.4: + version "14.0.4" + resolved "https://registry.yarnpkg.com/eslint-config-next/-/eslint-config-next-14.0.4.tgz#7cd2c0a3b310203d41cf0dbf9d31f9b0a6235b4a" + integrity sha512-9/xbOHEQOmQtqvQ1UsTQZpnA7SlDMBtuKJ//S4JnoyK3oGLhILKXdBgu/UO7lQo/2xOykQULS1qQ6p2+EpHgAQ== + dependencies: + "@next/eslint-plugin-next" "14.0.4" + "@rushstack/eslint-patch" "^1.3.3" + "@typescript-eslint/parser" "^5.4.2 || ^6.0.0" + eslint-import-resolver-node "^0.3.6" + eslint-import-resolver-typescript "^3.5.2" + eslint-plugin-import "^2.28.1" + eslint-plugin-jsx-a11y "^6.7.1" + eslint-plugin-react "^7.33.2" + eslint-plugin-react-hooks "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + +eslint-import-resolver-node@^0.3.6, eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== + dependencies: + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" + +eslint-import-resolver-typescript@^3.5.2: + version "3.6.1" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== + dependencies: + debug "^4.3.4" + enhanced-resolve "^5.12.0" + eslint-module-utils "^2.7.4" + fast-glob "^3.3.1" + get-tsconfig "^4.5.0" + is-core-module "^2.11.0" + is-glob "^4.0.3" + +eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== + dependencies: + debug "^3.2.7" + +eslint-plugin-import@^2.28.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== + dependencies: + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" + +eslint-plugin-jsx-a11y@^6.7.1: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz#2fa9c701d44fcd722b7c771ec322432857fcbad2" + integrity sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA== + dependencies: + "@babel/runtime" "^7.23.2" + aria-query "^5.3.0" + array-includes "^3.1.7" + array.prototype.flatmap "^1.3.2" + ast-types-flow "^0.0.8" + axe-core "=4.7.0" + axobject-query "^3.2.1" + damerau-levenshtein "^1.0.8" + emoji-regex "^9.2.2" + es-iterator-helpers "^1.0.15" + hasown "^2.0.0" + jsx-ast-utils "^3.3.5" + language-tags "^1.0.9" + minimatch "^3.1.2" + object.entries "^1.1.7" + object.fromentries "^2.0.7" + +"eslint-plugin-react-hooks@^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": + version "4.6.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz#4c3e697ad95b77e93f8646aaa1630c1ba607edd3" + integrity sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g== + +eslint-plugin-react@^7.33.2: + version "7.33.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.33.2.tgz#69ee09443ffc583927eafe86ffebb470ee737608" + integrity sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw== + dependencies: + array-includes "^3.1.6" + array.prototype.flatmap "^1.3.1" + array.prototype.tosorted "^1.1.1" + doctrine "^2.1.0" + es-iterator-helpers "^1.0.12" + estraverse "^5.3.0" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.6" + object.fromentries "^2.0.6" + object.hasown "^1.1.2" + object.values "^1.1.6" + prop-types "^15.8.1" + resolve "^2.0.0-next.4" + semver "^6.3.1" + string.prototype.matchall "^4.0.8" + +eslint-visitor-keys@^3.4.1: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +estraverse@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + estree-walker@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -1060,7 +1532,7 @@ fast-glob@^3.2.12: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.3.2: +fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -1107,6 +1579,13 @@ fontawesome@^5.6.3: resolved "https://registry.npmjs.org/fontawesome/-/fontawesome-5.6.3.tgz" integrity sha512-FCc+CawwsJWWprVEg9X14yI7zI+l9YVAyhzgu70qwGeDn0tLLDH/dVfqgij72g4BBGgLGfK2qnvFGAmYUkhaWg== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -1169,6 +1648,21 @@ function-bind@^1.1.2: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +function.prototype.name@^1.1.5, function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + get-browser-rtc@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/get-browser-rtc/-/get-browser-rtc-1.1.0.tgz" @@ -1189,6 +1683,31 @@ get-intrinsic@^1.0.2: has-proto "^1.0.1" has-symbols "^1.0.3" +get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +get-tsconfig@^4.5.0: + version "4.7.2" + resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== + dependencies: + resolve-pkg-maps "^1.0.0" + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" @@ -1220,6 +1739,18 @@ glob@7.1.6: once "^1.3.0" path-is-absolute "^1.0.0" +glob@7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + glob@^8.0.3: version "8.1.0" resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" @@ -1231,7 +1762,33 @@ glob@^8.0.3: minimatch "^5.0.1" once "^1.3.0" -graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.9: +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +globby@^11.1.0: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -1248,21 +1805,40 @@ handlebars@^4.7.7: optionalDependencies: uglify-js "^3.1.4" +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + has-proto@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== -has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz" @@ -1343,6 +1919,11 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== +ignore@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + immediate@~3.0.5: version "3.0.6" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" @@ -1392,6 +1973,38 @@ inquirer@8.2.5: through "^2.3.6" wrap-ansi "^7.0.0" +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -1399,23 +2012,57 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-core-module@^2.13.0: +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.13.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz#c8749b65f17c133313e661b1289b95ad3dbd62e6" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" @@ -1428,6 +2075,23 @@ is-interactive@^1.0.0: resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== +is-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -1445,11 +2109,77 @@ is-reference@1.2.1: dependencies: "@types/estree" "*" +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -1460,6 +2190,17 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== +iterator.prototype@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/iterator.prototype/-/iterator.prototype-1.1.2.tgz#5e29c8924f01916cb9335f1ff80619dcff22b0c0" + integrity sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + jest-util@^29.6.2: version "29.6.2" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.6.2.tgz#8a052df8fff2eebe446769fd88814521a517664d" @@ -1511,6 +2252,13 @@ json-schema-ref-parser@^9.0.9: dependencies: "@apidevtools/json-schema-ref-parser" "9.0.9" +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -1520,6 +2268,28 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.5: + version "3.3.5" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz#4766bd05a8e2a11af222becd19e15575e52a853a" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +language-subtag-registry@^0.3.20: + version "0.3.22" + resolved "https://registry.yarnpkg.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz#2e1500861b2e457eba7e7ae86877cbd08fa1fd1d" + integrity sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w== + +language-tags@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/language-tags/-/language-tags-1.0.9.tgz#1ffdcd0ec0fafb4b1be7f8b11f306ad0f9c08777" + integrity sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA== + dependencies: + language-subtag-registry "^0.3.20" + lie@3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/lie/-/lie-3.1.1.tgz#9a436b2cc7746ca59de7a41fa469b3efb76bd87e" @@ -1622,7 +2392,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.3.0: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -1856,7 +2626,14 @@ mimic-fn@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -minimatch@^3.0.4: +minimatch@9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.4, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -1870,7 +2647,7 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimist@^1.2.5, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== @@ -1887,6 +2664,11 @@ ms@2.1.2: resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + mute-stream@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" @@ -1901,7 +2683,7 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" -nanoid@^3.3.4, nanoid@^3.3.6: +nanoid@^3.3.6: version "3.3.6" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== @@ -1911,29 +2693,29 @@ neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next@^13.4.9: - version "13.4.9" - resolved "https://registry.npmjs.org/next/-/next-13.4.9.tgz" - integrity sha512-vtefFm/BWIi/eWOqf1GsmKG3cjKw1k3LjuefKRcL3iiLl3zWzFdPG3as6xtxrGO6gwTzzaO1ktL4oiHt/uvTjA== +next@^14.0.4: + version "14.0.4" + resolved "https://registry.yarnpkg.com/next/-/next-14.0.4.tgz#bf00b6f835b20d10a5057838fa2dfced1d0d84dc" + integrity sha512-qbwypnM7327SadwFtxXnQdGiKpkuhaRLE2uq62/nRul9cj9KhQ5LhHmlziTNqUidZotw/Q1I9OjirBROdUJNgA== dependencies: - "@next/env" "13.4.9" - "@swc/helpers" "0.5.1" + "@next/env" "14.0.4" + "@swc/helpers" "0.5.2" busboy "1.6.0" caniuse-lite "^1.0.30001406" - postcss "8.4.14" + graceful-fs "^4.2.11" + postcss "8.4.31" styled-jsx "5.1.1" watchpack "2.4.0" - zod "3.21.4" optionalDependencies: - "@next/swc-darwin-arm64" "13.4.9" - "@next/swc-darwin-x64" "13.4.9" - "@next/swc-linux-arm64-gnu" "13.4.9" - "@next/swc-linux-arm64-musl" "13.4.9" - "@next/swc-linux-x64-gnu" "13.4.9" - "@next/swc-linux-x64-musl" "13.4.9" - "@next/swc-win32-arm64-msvc" "13.4.9" - "@next/swc-win32-ia32-msvc" "13.4.9" - "@next/swc-win32-x64-msvc" "13.4.9" + "@next/swc-darwin-arm64" "14.0.4" + "@next/swc-darwin-x64" "14.0.4" + "@next/swc-linux-arm64-gnu" "14.0.4" + "@next/swc-linux-arm64-musl" "14.0.4" + "@next/swc-linux-x64-gnu" "14.0.4" + "@next/swc-linux-x64-musl" "14.0.4" + "@next/swc-win32-arm64-msvc" "14.0.4" + "@next/swc-win32-ia32-msvc" "14.0.4" + "@next/swc-win32-x64-msvc" "14.0.4" node-fetch@^2.6.1, node-fetch@^2.6.7: version "2.6.12" @@ -1967,11 +2749,76 @@ object-hash@^3.0.0: resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz" integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + object-inspect@^1.9.0: version "1.12.3" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +object.entries@^1.1.6, object.entries@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.7.tgz#2b47760e2a2e3a752f39dd874655c61a7f03c131" + integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.fromentries@^2.0.6, object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.hasown@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/object.hasown/-/object.hasown-1.1.3.tgz#6a5f2897bb4d3668b8e79364f98ccf971bda55ae" + integrity sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA== + dependencies: + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.values@^1.1.6, object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" @@ -2049,6 +2896,11 @@ path-to-regexp@^6.2.1: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-6.2.1.tgz#d54934d6798eb9e5ef14e7af7962c945906918e5" integrity sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw== +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" @@ -2113,15 +2965,6 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.14: - version "8.4.14" - resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - postcss@8.4.25, postcss@^8.4.23: version "8.4.25" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz" @@ -2131,6 +2974,15 @@ postcss@8.4.25, postcss@^8.4.23: picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@8.4.31: + version "8.4.31" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" + integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== + dependencies: + nanoid "^3.3.6" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prettier@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/prettier/-/prettier-3.0.0.tgz" @@ -2143,7 +2995,7 @@ progress@^2.0.3: prop-types@^15.8.1: version "15.8.1" - resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== dependencies: loose-envify "^1.4.0" @@ -2186,7 +3038,7 @@ randombytes@^2.1.0: react-dom@^18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g== dependencies: loose-envify "^1.1.0" @@ -2236,7 +3088,7 @@ react-select-search@^4.1.7: react@^18.2.0: version "18.2.0" - resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz" + resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ== dependencies: loose-envify "^1.1.0" @@ -2269,11 +3121,32 @@ reflect-metadata@0.1.13: resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== +reflect.getprototypeof@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.4.tgz#aaccbf41aca3821b87bb71d9dcbc7ad0ba50a3f3" + integrity sha512-ECkTw8TmJwW60lOTR+ZkODISW6RQ8+2CL3COqtiJKLd6MmB45hN51HprHFziKLGkAuTGQhBb91V8cy+KHlaCjw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerator-runtime@^0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45" integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA== +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + remark-parse@^11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-11.0.0.tgz#aa60743fcb37ebf6b069204eb4da304e40db45a1" @@ -2300,7 +3173,12 @@ require-directory@^2.1.1: resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -resolve@1.22.8, resolve@^1.1.7, resolve@^1.22.2: +resolve-pkg-maps@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== + +resolve@1.22.8, resolve@^1.1.7, resolve@^1.22.2, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -2309,6 +3187,15 @@ resolve@1.22.8, resolve@^1.1.7, resolve@^1.22.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^2.0.0-next.4: + version "2.0.0-next.5" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.5.tgz#6b0ec3107e671e52b68cd068ef327173b90dc03c" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + restore-cursor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" @@ -2362,11 +3249,30 @@ rxjs@^7.5.5: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -2388,13 +3294,37 @@ scheduler@^0.23.0: dependencies: loose-envify "^1.1.0" -semver@^7.3.8: +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== + +semver@^7.3.8, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0, set-function-name@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -2422,6 +3352,11 @@ simple-peer@^9.11.1: randombytes "^2.1.0" readable-stream "^3.6.0" +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + "source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz" @@ -2463,6 +3398,48 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string.prototype.matchall@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" @@ -2477,6 +3454,11 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + style-to-object@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.2.tgz#a8247057111dea8bd3b8a1a66d2d0c9cf9218a54" @@ -2573,6 +3555,11 @@ tailwindcss@^3.3.2: resolve "^1.22.2" sucrase "^3.32.0" +tapable@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== + thenify-all@^1.0.0: version "1.6.0" resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz" @@ -2626,11 +3613,26 @@ trough@^2.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== +ts-api-utils@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== + ts-interface-checker@^0.1.9: version "0.1.13" resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz" integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + tslib@2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.3.tgz#8e0741ac45fc0c226e58a17bfc3e64b9bc6ca61c" @@ -2666,6 +3668,45 @@ type-fest@^0.7.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.7.1.tgz#8dda65feaf03ed78f0a3f9678f1869147f7c5c48" integrity sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + typescript@^5.1.6: version "5.1.6" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" @@ -2683,6 +3724,16 @@ uid@2.0.1: dependencies: "@lukeed/csprng" "^1.0.0" +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + undici@^5.28.2: version "5.28.2" resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" @@ -2814,6 +3865,56 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/which-builtin-type/-/which-builtin-type-1.1.3.tgz#b1b8443707cc58b6e9bf98d32110ff0c2cbd029b" + integrity sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw== + dependencies: + function.prototype.name "^1.1.5" + has-tostringtag "^1.0.0" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.9" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.9: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2877,8 +3978,3 @@ yargs@^16.2.0: string-width "^4.2.0" y18n "^5.0.5" yargs-parser "^20.2.2" - -zod@3.21.4: - version "3.21.4" - resolved "https://registry.npmjs.org/zod/-/zod-3.21.4.tgz" - integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== From 4c7f588b06c8651a15ed1536df487486d69043af Mon Sep 17 00:00:00 2001 From: Koper Date: Tue, 26 Dec 2023 20:53:04 +0700 Subject: [PATCH 06/12] Update createTranscript.ts --- www/app/[domain]/transcripts/createTranscript.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index 58f9a551..0a67f8f5 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -28,8 +28,6 @@ const useCreateTranscript = (): UseTranscript => { api, ); - console.log("START"); - api .v1TranscriptsCreate(transcriptCreationDetails) .then((transcript) => { From 485f0ad2e9b01a4db45cf006a06c7e04f4348f81 Mon Sep 17 00:00:00 2001 From: Koper Date: Tue, 26 Dec 2023 21:22:24 +0700 Subject: [PATCH 07/12] Experimental code - Upload file feature --- .../[transcriptId]/record/page.tsx | 1 + .../[domain]/transcripts/fileUploadButton.tsx | 51 +++++++++++++++++++ www/app/[domain]/transcripts/recorder.tsx | 7 +++ 3 files changed, 59 insertions(+) create mode 100644 www/app/[domain]/transcripts/fileUploadButton.tsx diff --git a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx index 8615a4b1..ce1ee48c 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx @@ -112,6 +112,7 @@ const TranscriptRecord = (details: TranscriptDetails) => { }} getAudioStream={getAudioStream} audioDevices={audioDevices} + transcriptId={details.params.transcriptId} /> )} diff --git a/www/app/[domain]/transcripts/fileUploadButton.tsx b/www/app/[domain]/transcripts/fileUploadButton.tsx new file mode 100644 index 00000000..112ea6eb --- /dev/null +++ b/www/app/[domain]/transcripts/fileUploadButton.tsx @@ -0,0 +1,51 @@ +import React from "react"; +import useApi from "../../lib/useApi"; +import { Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post } from "../../api"; + +type FileUploadButton = { + transcriptId: string; +}; + +export default function FileUploadButton(props: FileUploadButton) { + const fileInputRef = React.useRef(null); + const api = useApi(); + + const triggerFileUpload = () => { + fileInputRef.current?.click(); + }; + + const handleFileUpload = (event: React.ChangeEvent) => { + const file = event.target.files?.[0]; + + if (file) { + console.log("Calling api.v1TranscriptRecordUpload()..."); + + // Create an object of the expected type + const uploadData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post = + { + file: file, + // Add other properties if required by the type definition + }; + + api?.v1TranscriptRecordUpload(props.transcriptId, uploadData); + } + }; + + return ( + <> + + + + + ); +} diff --git a/www/app/[domain]/transcripts/recorder.tsx b/www/app/[domain]/transcripts/recorder.tsx index e7c016a7..562f6a76 100644 --- a/www/app/[domain]/transcripts/recorder.tsx +++ b/www/app/[domain]/transcripts/recorder.tsx @@ -12,6 +12,7 @@ import AudioInputsDropdown from "./audioInputsDropdown"; import { Option } from "react-dropdown"; import { waveSurferStyles } from "../../styles/recorder"; import { useError } from "../../(errors)/errorContext"; +import FileUploadButton from "./fileUploadButton"; type RecorderProps = { setStream: React.Dispatch>; @@ -19,6 +20,7 @@ type RecorderProps = { onRecord?: () => void; getAudioStream: (deviceId) => Promise; audioDevices: Option[]; + transcriptId: string; }; export default function Recorder(props: RecorderProps) { @@ -307,6 +309,11 @@ export default function Recorder(props: RecorderProps) { > {isRecording ? "Stop" : "Record"} + + + {!isRecording && (
)}
)} diff --git a/www/app/[domain]/transcripts/transcriptTitle.tsx b/www/app/[domain]/transcripts/transcriptTitle.tsx index 9b95315b..fa456049 100644 --- a/www/app/[domain]/transcripts/transcriptTitle.tsx +++ b/www/app/[domain]/transcripts/transcriptTitle.tsx @@ -1,4 +1,4 @@ -import { useEffect, useState } from "react"; +import { useState } from "react"; import { UpdateTranscript } from "../../api"; import useApi from "../../lib/useApi"; @@ -11,8 +11,10 @@ const TranscriptTitle = (props: TranscriptTitle) => { const [displayedTitle, setDisplayedTitle] = useState(props.title); const [preEditTitle, setPreEditTitle] = useState(props.title); const [isEditing, setIsEditing] = useState(false); + const api = useApi(); const updateTitle = async (newTitle: string, transcriptId: string) => { + if (!api) return; try { const requestBody: UpdateTranscript = { title: newTitle, diff --git a/www/app/[domain]/transcripts/useTranscript.ts b/www/app/[domain]/transcripts/useTranscript.ts index 9c40c85a..c70e2c17 100644 --- a/www/app/[domain]/transcripts/useTranscript.ts +++ b/www/app/[domain]/transcripts/useTranscript.ts @@ -52,7 +52,7 @@ const useTranscript = ( } setErrorState(error); }); - }, [id, api]); + }, [id, !api]); return { response, loading, error } as | ErrorTranscript diff --git a/www/app/[domain]/transcripts/useTranscriptList.ts b/www/app/[domain]/transcripts/useTranscriptList.ts index 1a2ce9c0..7621a9f8 100644 --- a/www/app/[domain]/transcripts/useTranscriptList.ts +++ b/www/app/[domain]/transcripts/useTranscriptList.ts @@ -18,8 +18,8 @@ const useTranscriptList = (page: number): TranscriptList => { const api = useApi(); useEffect(() => { - setLoading(true); if (!api) return; + setLoading(true); api .v1TranscriptsList(page) .then((response) => { @@ -32,7 +32,7 @@ const useTranscriptList = (page: number): TranscriptList => { setError(err); setErrorState(err); }); - }, [api, page]); + }, [!api, page]); return { response, loading, error }; }; diff --git a/www/app/[domain]/transcripts/useWebRTC.ts b/www/app/[domain]/transcripts/useWebRTC.ts index 016bee8a..a51b1c6f 100644 --- a/www/app/[domain]/transcripts/useWebRTC.ts +++ b/www/app/[domain]/transcripts/useWebRTC.ts @@ -13,7 +13,7 @@ const useWebRTC = ( const api = useApi(); useEffect(() => { - if (!stream || !transcriptId || !api) { + if (!stream || !transcriptId) { return; } diff --git a/www/app/[domain]/transcripts/useWebSockets.ts b/www/app/[domain]/transcripts/useWebSockets.ts index 26b69c05..a2bccf37 100644 --- a/www/app/[domain]/transcripts/useWebSockets.ts +++ b/www/app/[domain]/transcripts/useWebSockets.ts @@ -2,7 +2,7 @@ import { useContext, useEffect, useState } from "react"; import { Topic, FinalSummary, Status } from "./webSocketTypes"; import { useError } from "../../(errors)/errorContext"; import { DomainContext } from "../domainContext"; -import { AudioWaveform } from "../../api"; +import { AudioWaveform, GetTranscriptSegmentTopic } from "../../api"; export type UseWebSockets = { transcriptText: string; @@ -11,7 +11,7 @@ export type UseWebSockets = { topics: Topic[]; finalSummary: FinalSummary; status: Status; - waveform: AudioWaveform["data"] | null; + waveform: AudioWaveform | null; duration: number | null; }; @@ -57,6 +57,39 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { useEffect(() => { document.onkeyup = (e) => { if (e.key === "a" && process.env.NEXT_PUBLIC_ENV === "development") { + const segments : GetTranscriptSegmentTopic[] = [ + { + speaker: 1, + start: 0, + text: "This is the transcription of an example title", + }, + { + speaker: 2, + start: 10, + text: "This is the second speaker", + }, + { + speaker: 3, + start: 90, + text: "This is the third speaker", + }, + { + speaker: 4, + start: 90, + text: "This is the fourth speaker", + }, + { + speaker: 5, + start: 123, + text: "This is the fifth speaker", + }, + { + speaker: 6, + start: 300, + text: "This is the sixth speaker", + } + ]; + setTranscriptText("Lorem Ipsum"); setTopics([ { @@ -67,39 +100,6 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { title: "Topic 1: Introduction to Quantum Mechanics", transcript: "A brief overview of quantum mechanics and its principles.", - segments: [ - { - speaker: 1, - start: 0, - text: "This is the transcription of an example title", - }, - { - speaker: 2, - start: 10, - text: "This is the second speaker", - }, - , - { - speaker: 3, - start: 90, - text: "This is the third speaker", - }, - { - speaker: 4, - start: 90, - text: "This is the fourth speaker", - }, - { - speaker: 5, - start: 123, - text: "This is the fifth speaker", - }, - { - speaker: 6, - start: 300, - text: "This is the sixth speaker", - }, - ], }, { id: "2", diff --git a/www/app/lib/useApi.ts b/www/app/lib/useApi.ts index 7a0cc42e..9898f735 100644 --- a/www/app/lib/useApi.ts +++ b/www/app/lib/useApi.ts @@ -8,7 +8,6 @@ export default function useApi(): DefaultService | null { const accessTokenInfo = useFiefAccessTokenInfo(); const api_url = useContext(DomainContext).api_url; const requireLogin = featureEnabled("requireLogin"); - const [ready, setReady] = useState(false); const [api, setApi] = useState(null); const { hasAuthCookie } = useContext(CookieContext); diff --git a/www/app/lib/zulip.ts b/www/app/lib/zulip.ts index 4b3cbe78..48ec94fb 100644 --- a/www/app/lib/zulip.ts +++ b/www/app/lib/zulip.ts @@ -30,7 +30,7 @@ export function getZulipMessage( topics: GetTranscriptTopic[] | null, includeTopics: boolean, ) { - const date = new Date(transcript.createdAt); + const date = new Date(transcript.created_at); // Get the timezone offset in minutes and convert it to hours and minutes const timezoneOffset = -date.getTimezoneOffset(); @@ -72,7 +72,7 @@ export function getZulipMessage( } let summary = "```spoiler Summary\n"; - summary += transcript.longSummary; + summary += transcript.long_summary; summary += "```\n\n"; const message = headerText + summary + topicText + "-----\n"; From 90bd1db9c04c0764cb85f54b8b1b47780e43ee61 Mon Sep 17 00:00:00 2001 From: Andreas Date: Thu, 28 Dec 2023 16:18:50 +0700 Subject: [PATCH 09/12] websocket fix --- www/app/[domain]/layout.tsx | 16 +++++++++------- www/app/[domain]/transcripts/useWebSockets.ts | 11 +++++++++-- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/www/app/[domain]/layout.tsx b/www/app/[domain]/layout.tsx index 73cc4841..84cb639e 100644 --- a/www/app/[domain]/layout.tsx +++ b/www/app/[domain]/layout.tsx @@ -1,6 +1,6 @@ import "../styles/globals.scss"; import { Poppins } from "next/font/google"; -import { Metadata } from "next"; +import { Metadata, Viewport } from "next"; import FiefWrapper from "../(auth)/fiefWrapper"; import UserInfo from "../(auth)/userInfo"; import { ErrorProvider } from "../(errors)/errorContext"; @@ -17,7 +17,15 @@ import { SESSION_COOKIE_NAME } from "../lib/fief"; const poppins = Poppins({ subsets: ["latin"], weight: ["200", "400", "600"] }); +export const viewport: Viewport = { + themeColor: 'black', + width: "device-width", + initialScale: 1, + maximumScale: 1, +} + export const metadata: Metadata = { + metadataBase: process.env.DEV_URL || "https://reflector.media", title: { template: "%s – Reflector", default: "Reflector - AI-Powered Meeting Transcriptions by Monadical", @@ -54,12 +62,6 @@ export const metadata: Metadata = { shortcut: "/r-icon.png", apple: "/r-icon.png", }, - viewport: { - width: "device-width", - initialScale: 1, - maximumScale: 1, - }, - robots: { index: false, follow: false, noarchive: true, noimageindex: true }, }; diff --git a/www/app/[domain]/transcripts/useWebSockets.ts b/www/app/[domain]/transcripts/useWebSockets.ts index a2bccf37..bb05137a 100644 --- a/www/app/[domain]/transcripts/useWebSockets.ts +++ b/www/app/[domain]/transcripts/useWebSockets.ts @@ -3,6 +3,7 @@ import { Topic, FinalSummary, Status } from "./webSocketTypes"; import { useError } from "../../(errors)/errorContext"; import { DomainContext } from "../domainContext"; import { AudioWaveform, GetTranscriptSegmentTopic } from "../../api"; +import useApi from "../../lib/useApi"; export type UseWebSockets = { transcriptText: string; @@ -32,6 +33,7 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { const { setError } = useError(); const { websocket_url } = useContext(DomainContext); + const api = useApi(); useEffect(() => { if (isProcessing || textQueue.length === 0) { @@ -306,7 +308,10 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { } }; - if (!transcriptId) return; + if (!transcriptId || !api) return; + + api?.v1TranscriptGetWebsocketEvents(transcriptId).then((result) => { + }); const url = `${websocket_url}/v1/transcripts/${transcriptId}/events`; let ws = new WebSocket(url); @@ -412,7 +417,9 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { console.debug("WebSocket connection closed"); switch (event.code) { case 1000: // Normal Closure: + break; case 1005: // Closure by client FF + break; default: setError( new Error(`WebSocket closed unexpectedly with code: ${event.code}`), @@ -431,7 +438,7 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { return () => { ws.close(); }; - }, [transcriptId]); + }, [transcriptId, !api]); return { transcriptText, From 1758edddc40d966eae5efd67f82f92be99f6b260 Mon Sep 17 00:00:00 2001 From: Andreas Date: Thu, 28 Dec 2023 16:35:08 +0700 Subject: [PATCH 10/12] New API --- www/app/(aboutAndPrivacy)/aboutContent.tsx | 4 ++-- www/app/(aboutAndPrivacy)/privacyContent.tsx | 6 +++--- www/app/[domain]/layout.tsx | 2 +- www/app/[domain]/transcripts/[transcriptId]/page.tsx | 2 -- .../transcripts/[transcriptId]/record/page.tsx | 5 ++--- www/app/[domain]/transcripts/createTranscript.ts | 10 ---------- 6 files changed, 8 insertions(+), 21 deletions(-) diff --git a/www/app/(aboutAndPrivacy)/aboutContent.tsx b/www/app/(aboutAndPrivacy)/aboutContent.tsx index f2a83751..714149c1 100644 --- a/www/app/(aboutAndPrivacy)/aboutContent.tsx +++ b/www/app/(aboutAndPrivacy)/aboutContent.tsx @@ -26,11 +26,11 @@ export default () => ( 3. Are there any industry-specific use cases?

Absolutely! We have two custom deployments pre-built:

    -
  • +
  • · Reflector Media: Ideal for meetings, providing real-time notes and topic summaries.
  • -
  • +
  • · Projector Reflector: Suited for larger events, offering live topic summaries, translations, and agenda tracking.
  • diff --git a/www/app/(aboutAndPrivacy)/privacyContent.tsx b/www/app/(aboutAndPrivacy)/privacyContent.tsx index 43c6ca97..f52c2b78 100644 --- a/www/app/(aboutAndPrivacy)/privacyContent.tsx +++ b/www/app/(aboutAndPrivacy)/privacyContent.tsx @@ -5,18 +5,18 @@ export default () => ( Privacy Policy Last updated on September 22, 2023
      -
    • +
    • · Recording Consent: By using Reflector, you grant us permission to record your interactions for the purpose of showcasing Reflector's capabilities during the All In AI conference.
    • -
    • +
    • · Data Access: You will have convenient access to your recorded sessions and transcriptions via a unique URL, which remains active for a period of seven days. After this time, your recordings and transcripts will be deleted.
    • -
    • +
    • · Data Confidentiality: Rest assured that none of your audio data will be shared with third parties.
    • diff --git a/www/app/[domain]/layout.tsx b/www/app/[domain]/layout.tsx index 84cb639e..6027429c 100644 --- a/www/app/[domain]/layout.tsx +++ b/www/app/[domain]/layout.tsx @@ -25,7 +25,7 @@ export const viewport: Viewport = { } export const metadata: Metadata = { - metadataBase: process.env.DEV_URL || "https://reflector.media", + metadataBase: new URL(process.env.DEV_URL || "https://reflector.media"), title: { template: "%s – Reflector", default: "Reflector - AI-Powered Meeting Transcriptions by Monadical", diff --git a/www/app/[domain]/transcripts/[transcriptId]/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/page.tsx index 464f4504..1e1eaf8f 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/page.tsx @@ -16,8 +16,6 @@ import ShareModal from "./shareModal"; import Player from "../player"; import WaveformLoading from "../waveformLoading"; import { useRouter } from "next/navigation"; -import { faSpinner } from "@fortawesome/free-solid-svg-icons"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { featureEnabled } from "../../domainContext"; import { toShareMode } from "../../../lib/shareMode"; diff --git a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx index ce1ee48c..478946a3 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx @@ -75,10 +75,9 @@ const TranscriptRecord = (details: TranscriptDetails) => { }, [webSockets.status.value, transcript.response?.status]); useEffect(() => { - if (webSockets.duration) { + if (transcript.response?.status === "ended") mp3.getNow(); - } - }, [webSockets.duration]); + }, [transcript.response]); useEffect(() => { lockWakeState(); diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index 0a67f8f5..e8dedbce 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -22,16 +22,9 @@ const useCreateTranscript = (): UseTranscript => { setLoading(true); - console.log( - "POST - /v1/transcripts/ - Requesting new transcription creation", - transcriptCreationDetails, - api, - ); - api .v1TranscriptsCreate(transcriptCreationDetails) .then((transcript) => { - console.debug("New transcript created:", transcript); setTranscript(transcript); setLoading(false); }) @@ -43,9 +36,6 @@ const useCreateTranscript = (): UseTranscript => { setErrorState(err); setLoading(false); }) - .finally(() => { - console.log("At least this should display?"); - }); }; return { transcript, loading, error, create }; From c603e279dfedacf687a7d5d783d7e7ce0475a17a Mon Sep 17 00:00:00 2001 From: Andreas Date: Mon, 1 Jan 2024 10:31:43 +0700 Subject: [PATCH 11/12] Implemented suggestions by Matthieu --- www/app/[domain]/layout.tsx | 4 +- .../[transcriptId]/record/page.tsx | 3 +- .../[domain]/transcripts/createTranscript.ts | 2 +- .../[domain]/transcripts/fileUploadButton.tsx | 9 ++- www/app/[domain]/transcripts/shareLink.tsx | 45 +++++++------ www/app/[domain]/transcripts/useWebSockets.ts | 65 +++++++++---------- www/package.json | 4 +- www/tsconfig.json | 3 +- www/yarn.lock | 36 +--------- 9 files changed, 65 insertions(+), 106 deletions(-) diff --git a/www/app/[domain]/layout.tsx b/www/app/[domain]/layout.tsx index 6027429c..ebdfbe5d 100644 --- a/www/app/[domain]/layout.tsx +++ b/www/app/[domain]/layout.tsx @@ -18,11 +18,11 @@ import { SESSION_COOKIE_NAME } from "../lib/fief"; const poppins = Poppins({ subsets: ["latin"], weight: ["200", "400", "600"] }); export const viewport: Viewport = { - themeColor: 'black', + themeColor: "black", width: "device-width", initialScale: 1, maximumScale: 1, -} +}; export const metadata: Metadata = { metadataBase: new URL(process.env.DEV_URL || "https://reflector.media"), diff --git a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx index 478946a3..d4bb6b3e 100644 --- a/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx +++ b/www/app/[domain]/transcripts/[transcriptId]/record/page.tsx @@ -75,8 +75,7 @@ const TranscriptRecord = (details: TranscriptDetails) => { }, [webSockets.status.value, transcript.response?.status]); useEffect(() => { - if (transcript.response?.status === "ended") - mp3.getNow(); + if (transcript.response?.status === "ended") mp3.getNow(); }, [transcript.response]); useEffect(() => { diff --git a/www/app/[domain]/transcripts/createTranscript.ts b/www/app/[domain]/transcripts/createTranscript.ts index e8dedbce..8435e6c2 100644 --- a/www/app/[domain]/transcripts/createTranscript.ts +++ b/www/app/[domain]/transcripts/createTranscript.ts @@ -35,7 +35,7 @@ const useCreateTranscript = (): UseTranscript => { ); setErrorState(err); setLoading(false); - }) + }); }; return { transcript, loading, error, create }; diff --git a/www/app/[domain]/transcripts/fileUploadButton.tsx b/www/app/[domain]/transcripts/fileUploadButton.tsx index 112ea6eb..7cfaf19e 100644 --- a/www/app/[domain]/transcripts/fileUploadButton.tsx +++ b/www/app/[domain]/transcripts/fileUploadButton.tsx @@ -21,11 +21,10 @@ export default function FileUploadButton(props: FileUploadButton) { console.log("Calling api.v1TranscriptRecordUpload()..."); // Create an object of the expected type - const uploadData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post = - { - file: file, - // Add other properties if required by the type definition - }; + const uploadData = { + file: file, + // Add other properties if required by the type definition + }; api?.v1TranscriptRecordUpload(props.transcriptId, uploadData); } diff --git a/www/app/[domain]/transcripts/shareLink.tsx b/www/app/[domain]/transcripts/shareLink.tsx index 8d14d034..7e0d592d 100644 --- a/www/app/[domain]/transcripts/shareLink.tsx +++ b/www/app/[domain]/transcripts/shareLink.tsx @@ -86,29 +86,28 @@ const ShareLink = (props: ShareLinkProps) => { )} {isOwner && api && ( - -
      - - {shareLoading && ( -
      - -
      - )} -
      - )} +
      + + {shareLoading && ( +
      + +
      + )} +
      + )} )} {!requireLogin && ( diff --git a/www/app/[domain]/transcripts/useWebSockets.ts b/www/app/[domain]/transcripts/useWebSockets.ts index bb05137a..585f383c 100644 --- a/www/app/[domain]/transcripts/useWebSockets.ts +++ b/www/app/[domain]/transcripts/useWebSockets.ts @@ -59,37 +59,37 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { useEffect(() => { document.onkeyup = (e) => { if (e.key === "a" && process.env.NEXT_PUBLIC_ENV === "development") { - const segments : GetTranscriptSegmentTopic[] = [ - { - speaker: 1, - start: 0, - text: "This is the transcription of an example title", - }, - { - speaker: 2, - start: 10, - text: "This is the second speaker", - }, - { - speaker: 3, - start: 90, - text: "This is the third speaker", - }, - { - speaker: 4, - start: 90, - text: "This is the fourth speaker", - }, - { - speaker: 5, - start: 123, - text: "This is the fifth speaker", - }, - { - speaker: 6, - start: 300, - text: "This is the sixth speaker", - } + const segments: GetTranscriptSegmentTopic[] = [ + { + speaker: 1, + start: 0, + text: "This is the transcription of an example title", + }, + { + speaker: 2, + start: 10, + text: "This is the second speaker", + }, + { + speaker: 3, + start: 90, + text: "This is the third speaker", + }, + { + speaker: 4, + start: 90, + text: "This is the fourth speaker", + }, + { + speaker: 5, + start: 123, + text: "This is the fifth speaker", + }, + { + speaker: 6, + start: 300, + text: "This is the sixth speaker", + }, ]; setTranscriptText("Lorem Ipsum"); @@ -310,8 +310,7 @@ export const useWebSockets = (transcriptId: string | null): UseWebSockets => { if (!transcriptId || !api) return; - api?.v1TranscriptGetWebsocketEvents(transcriptId).then((result) => { - }); + api?.v1TranscriptGetWebsocketEvents(transcriptId).then((result) => {}); const url = `${websocket_url}/v1/transcripts/${transcriptId}/events`; let ws = new WebSocket(url); diff --git a/www/package.json b/www/package.json index 50afc874..6736a874 100644 --- a/www/package.json +++ b/www/package.json @@ -8,8 +8,7 @@ "start": "next start", "lint": "next lint", "format": "prettier --write .", - "openapi": "openapi --input http://127.0.0.1:1250/openapi.json --name OpenApi --output app/api && yarn format", - "openapi-old": "openapi-generator-cli generate -i http://localhost:1250/openapi.json -g typescript-fetch -o app/api && yarn format" + "openapi": "openapi --input http://127.0.0.1:1250/openapi.json --name OpenApi --output app/api && yarn format" }, "dependencies": { "@fief/fief": "^0.13.5", @@ -47,7 +46,6 @@ "devDependencies": { "@openapitools/openapi-generator-cli": "^2.7.0", "@types/react": "18.2.20", - "openapi-typescript": "^6.7.3", "openapi-typescript-codegen": "^0.25.0", "prettier": "^3.0.0" } diff --git a/www/tsconfig.json b/www/tsconfig.json index e799d9da..0e1b89ae 100644 --- a/www/tsconfig.json +++ b/www/tsconfig.json @@ -19,8 +19,7 @@ } ], "strictNullChecks": true, - "downlevelIteration": true, - "target": "ES2020" + "downlevelIteration": true }, "include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"], "exclude": ["node_modules"] diff --git a/www/yarn.lock b/www/yarn.lock index 574925db..38f8383f 100644 --- a/www/yarn.lock +++ b/www/yarn.lock @@ -31,11 +31,6 @@ dependencies: regenerator-runtime "^0.14.0" -"@fastify/busboy@^2.0.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" - integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== - "@fief/fief@^0.13.5": version "0.13.5" resolved "https://registry.yarnpkg.com/@fief/fief/-/fief-0.13.5.tgz#01ac833ddff0b84f2e1737cc168721568b0e7a39" @@ -613,11 +608,6 @@ agent-base@6: dependencies: debug "4" -ansi-colors@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" - integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== - ansi-escapes@^4.2.1: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1532,7 +1522,7 @@ fast-glob@^3.2.12: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.9, fast-glob@^3.3.1, fast-glob@^3.3.2: +fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -2844,18 +2834,6 @@ openapi-typescript-codegen@^0.25.0: handlebars "^4.7.7" json-schema-ref-parser "^9.0.9" -openapi-typescript@^6.7.3: - version "6.7.3" - resolved "https://registry.yarnpkg.com/openapi-typescript/-/openapi-typescript-6.7.3.tgz#7fe131a28551c8996e4a680e4698d0e1206635ba" - integrity sha512-es3mGcDXV6TKPo6n3aohzHm0qxhLyR39MhF6mkD1FwFGjhxnqMqfSIgM0eCpInZvqatve4CxmXcMZw3jnnsaXw== - dependencies: - ansi-colors "^4.1.3" - fast-glob "^3.3.2" - js-yaml "^4.1.0" - supports-color "^9.4.0" - undici "^5.28.2" - yargs-parser "^21.1.1" - ora@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" @@ -3734,13 +3712,6 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici@^5.28.2: - version "5.28.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" - integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== - dependencies: - "@fastify/busboy" "^2.0.0" - unified@^11.0.0: version "11.0.3" resolved "https://registry.yarnpkg.com/unified/-/unified-11.0.3.tgz#e141be0fe466a2d28b2160f62712bc9cbc08fdd4" @@ -3961,11 +3932,6 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^21.1.1: - version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" - integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== - yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" From 0141887a79e568a76c038440540d08b5c80a4871 Mon Sep 17 00:00:00 2001 From: Andreas Date: Tue, 2 Jan 2024 15:40:07 +0700 Subject: [PATCH 12/12] Removed key="" --- www/app/(aboutAndPrivacy)/aboutContent.tsx | 4 ++-- www/app/(aboutAndPrivacy)/privacyContent.tsx | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/www/app/(aboutAndPrivacy)/aboutContent.tsx b/www/app/(aboutAndPrivacy)/aboutContent.tsx index 714149c1..f2a83751 100644 --- a/www/app/(aboutAndPrivacy)/aboutContent.tsx +++ b/www/app/(aboutAndPrivacy)/aboutContent.tsx @@ -26,11 +26,11 @@ export default () => ( 3. Are there any industry-specific use cases?

      Absolutely! We have two custom deployments pre-built:

        -
      • +
      • · Reflector Media: Ideal for meetings, providing real-time notes and topic summaries.
      • -
      • +
      • · Projector Reflector: Suited for larger events, offering live topic summaries, translations, and agenda tracking.
      • diff --git a/www/app/(aboutAndPrivacy)/privacyContent.tsx b/www/app/(aboutAndPrivacy)/privacyContent.tsx index f52c2b78..43c6ca97 100644 --- a/www/app/(aboutAndPrivacy)/privacyContent.tsx +++ b/www/app/(aboutAndPrivacy)/privacyContent.tsx @@ -5,18 +5,18 @@ export default () => ( Privacy Policy Last updated on September 22, 2023
          -
        • +
        • · Recording Consent: By using Reflector, you grant us permission to record your interactions for the purpose of showcasing Reflector's capabilities during the All In AI conference.
        • -
        • +
        • · Data Access: You will have convenient access to your recorded sessions and transcriptions via a unique URL, which remains active for a period of seven days. After this time, your recordings and transcripts will be deleted.
        • -
        • +
        • · Data Confidentiality: Rest assured that none of your audio data will be shared with third parties.