mirror of
https://github.com/Monadical-SAS/reflector.git
synced 2025-12-20 12:19:06 +00:00
Implemented API from code generated by OpenAPI
This commit is contained in:
@@ -10,6 +10,7 @@ Reflector is a React application that uses WebRTC to stream audio from the brows
|
|||||||
- [Installation](#installation)
|
- [Installation](#installation)
|
||||||
- [Run the Application](#run-the-application)
|
- [Run the Application](#run-the-application)
|
||||||
- [WebRTC Integration](#webrtc-integration)
|
- [WebRTC Integration](#webrtc-integration)
|
||||||
|
- [OpenAPI Code Generation](#openapi-code-generation)
|
||||||
- [Contribution Guidelines](#contribution-guidelines)
|
- [Contribution Guidelines](#contribution-guidelines)
|
||||||
|
|
||||||
## Project Architecture
|
## Project Architecture
|
||||||
@@ -73,6 +74,16 @@ The received data is expected to be a JSON object containing the live transcript
|
|||||||
|
|
||||||
This data is then returned from the `useWebRTC` hook and can be used in your components.
|
This data is then returned from the `useWebRTC` hook and can be used in your components.
|
||||||
|
|
||||||
|
## OpenAPI Code Generation
|
||||||
|
|
||||||
|
To generate the TypeScript files from the openapi.json file, make sure the python server is running, then run:
|
||||||
|
|
||||||
|
```
|
||||||
|
openapi-generator-cli generate -i http://localhost:1250/openapi.json -g typescript-fetch -o app/api
|
||||||
|
```
|
||||||
|
|
||||||
|
You may need to run `yarn global add @openapitools/openapi-generator-cli` first. You also need a Java runtime installed on your machine.
|
||||||
|
|
||||||
## Contribution Guidelines
|
## Contribution Guidelines
|
||||||
|
|
||||||
All new contributions should be made in a separate branch. Before any code is merged into `master`, it requires a code review.
|
All new contributions should be made in a separate branch. Before any code is merged into `master`, it requires a code review.
|
||||||
|
|||||||
23
www/app/api/.openapi-generator-ignore
Normal file
23
www/app/api/.openapi-generator-ignore
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# OpenAPI Generator Ignore
|
||||||
|
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
|
||||||
|
|
||||||
|
# Use this file to prevent files from being overwritten by the generator.
|
||||||
|
# The patterns follow closely to .gitignore or .dockerignore.
|
||||||
|
|
||||||
|
# As an example, the C# client generator defines ApiClient.cs.
|
||||||
|
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
|
||||||
|
#ApiClient.cs
|
||||||
|
|
||||||
|
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
|
||||||
|
#foo/*/qux
|
||||||
|
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
|
||||||
|
|
||||||
|
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
|
||||||
|
#foo/**/qux
|
||||||
|
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
|
||||||
|
|
||||||
|
# You can also negate patterns with an exclamation (!).
|
||||||
|
# For example, you can ignore all files in a docs folder with the file extension .md:
|
||||||
|
#docs/*.md
|
||||||
|
# Then explicitly reverse the ignore rule for a single file:
|
||||||
|
#!docs/README.md
|
||||||
15
www/app/api/.openapi-generator/FILES
Normal file
15
www/app/api/.openapi-generator/FILES
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
.openapi-generator-ignore
|
||||||
|
apis/DefaultApi.ts
|
||||||
|
apis/index.ts
|
||||||
|
index.ts
|
||||||
|
models/CreateTranscript.ts
|
||||||
|
models/DeletionStatus.ts
|
||||||
|
models/GetTranscript.ts
|
||||||
|
models/HTTPValidationError.ts
|
||||||
|
models/PageGetTranscript.ts
|
||||||
|
models/RtcOffer.ts
|
||||||
|
models/TranscriptTopic.ts
|
||||||
|
models/UpdateTranscript.ts
|
||||||
|
models/ValidationError.ts
|
||||||
|
models/index.ts
|
||||||
|
runtime.ts
|
||||||
1
www/app/api/.openapi-generator/VERSION
Normal file
1
www/app/api/.openapi-generator/VERSION
Normal file
@@ -0,0 +1 @@
|
|||||||
|
6.6.0
|
||||||
655
www/app/api/apis/DefaultApi.ts
Normal file
655
www/app/api/apis/DefaultApi.ts
Normal file
@@ -0,0 +1,655 @@
|
|||||||
|
/* 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 {
|
||||||
|
CreateTranscript,
|
||||||
|
DeletionStatus,
|
||||||
|
GetTranscript,
|
||||||
|
HTTPValidationError,
|
||||||
|
PageGetTranscript,
|
||||||
|
RtcOffer,
|
||||||
|
UpdateTranscript,
|
||||||
|
} from "../models";
|
||||||
|
import {
|
||||||
|
CreateTranscriptFromJSON,
|
||||||
|
CreateTranscriptToJSON,
|
||||||
|
DeletionStatusFromJSON,
|
||||||
|
DeletionStatusToJSON,
|
||||||
|
GetTranscriptFromJSON,
|
||||||
|
GetTranscriptToJSON,
|
||||||
|
HTTPValidationErrorFromJSON,
|
||||||
|
HTTPValidationErrorToJSON,
|
||||||
|
PageGetTranscriptFromJSON,
|
||||||
|
PageGetTranscriptToJSON,
|
||||||
|
RtcOfferFromJSON,
|
||||||
|
RtcOfferToJSON,
|
||||||
|
UpdateTranscriptFromJSON,
|
||||||
|
UpdateTranscriptToJSON,
|
||||||
|
} from "../models";
|
||||||
|
|
||||||
|
export interface RtcOfferOfferPostRequest {
|
||||||
|
rtcOffer: RtcOffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptDeleteV1TranscriptsTranscriptIdDeleteRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptGetAudioV1TranscriptsTranscriptIdAudioGetRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptGetTopicsV1TranscriptsTranscriptIdTopicsGetRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptGetV1TranscriptsTranscriptIdGetRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGetRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPostRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
rtcOffer: RtcOffer;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptUpdateV1TranscriptsTranscriptIdPatchRequest {
|
||||||
|
transcriptId: any;
|
||||||
|
updateTranscript: UpdateTranscript;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptsCreateV1TranscriptsPostRequest {
|
||||||
|
createTranscript: CreateTranscript;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TranscriptsListV1TranscriptsGetRequest {
|
||||||
|
page?: any;
|
||||||
|
size?: any;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
export class DefaultApi extends runtime.BaseAPI {
|
||||||
|
/**
|
||||||
|
* Rtc Offer
|
||||||
|
*/
|
||||||
|
async rtcOfferOfferPostRaw(
|
||||||
|
requestParameters: RtcOfferOfferPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<any>> {
|
||||||
|
if (
|
||||||
|
requestParameters.rtcOffer === null ||
|
||||||
|
requestParameters.rtcOffer === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"rtcOffer",
|
||||||
|
"Required parameter requestParameters.rtcOffer was null or undefined when calling rtcOfferOfferPost.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
headerParameters["Content-Type"] = "application/json";
|
||||||
|
|
||||||
|
const response = await this.request(
|
||||||
|
{
|
||||||
|
path: `/offer`,
|
||||||
|
method: "POST",
|
||||||
|
headers: headerParameters,
|
||||||
|
query: queryParameters,
|
||||||
|
body: RtcOfferToJSON(requestParameters.rtcOffer),
|
||||||
|
},
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
|
||||||
|
if (this.isJsonMime(response.headers.get("content-type"))) {
|
||||||
|
return new runtime.JSONApiResponse<any>(response);
|
||||||
|
} else {
|
||||||
|
return new runtime.TextApiResponse(response) as any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rtc Offer
|
||||||
|
*/
|
||||||
|
async rtcOfferOfferPost(
|
||||||
|
requestParameters: RtcOfferOfferPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<any> {
|
||||||
|
const response = await this.rtcOfferOfferPostRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Delete
|
||||||
|
*/
|
||||||
|
async transcriptDeleteV1TranscriptsTranscriptIdDeleteRaw(
|
||||||
|
requestParameters: TranscriptDeleteV1TranscriptsTranscriptIdDeleteRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<DeletionStatus>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptDeleteV1TranscriptsTranscriptIdDelete.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
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 transcriptDeleteV1TranscriptsTranscriptIdDelete(
|
||||||
|
requestParameters: TranscriptDeleteV1TranscriptsTranscriptIdDeleteRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<DeletionStatus> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptDeleteV1TranscriptsTranscriptIdDeleteRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Audio
|
||||||
|
*/
|
||||||
|
async transcriptGetAudioV1TranscriptsTranscriptIdAudioGetRaw(
|
||||||
|
requestParameters: TranscriptGetAudioV1TranscriptsTranscriptIdAudioGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<any>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptGetAudioV1TranscriptsTranscriptIdAudioGet.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
const response = await this.request(
|
||||||
|
{
|
||||||
|
path: `/v1/transcripts/{transcript_id}/audio`.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<any>(response);
|
||||||
|
} else {
|
||||||
|
return new runtime.TextApiResponse(response) as any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Audio
|
||||||
|
*/
|
||||||
|
async transcriptGetAudioV1TranscriptsTranscriptIdAudioGet(
|
||||||
|
requestParameters: TranscriptGetAudioV1TranscriptsTranscriptIdAudioGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<any> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptGetAudioV1TranscriptsTranscriptIdAudioGetRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Topics
|
||||||
|
*/
|
||||||
|
async transcriptGetTopicsV1TranscriptsTranscriptIdTopicsGetRaw(
|
||||||
|
requestParameters: TranscriptGetTopicsV1TranscriptsTranscriptIdTopicsGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<any>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptGetTopicsV1TranscriptsTranscriptIdTopicsGet.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
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<any>(response);
|
||||||
|
} else {
|
||||||
|
return new runtime.TextApiResponse(response) as any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Topics
|
||||||
|
*/
|
||||||
|
async transcriptGetTopicsV1TranscriptsTranscriptIdTopicsGet(
|
||||||
|
requestParameters: TranscriptGetTopicsV1TranscriptsTranscriptIdTopicsGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<any> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptGetTopicsV1TranscriptsTranscriptIdTopicsGetRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get
|
||||||
|
*/
|
||||||
|
async transcriptGetV1TranscriptsTranscriptIdGetRaw(
|
||||||
|
requestParameters: TranscriptGetV1TranscriptsTranscriptIdGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<GetTranscript>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptGetV1TranscriptsTranscriptIdGet.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
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 transcriptGetV1TranscriptsTranscriptIdGet(
|
||||||
|
requestParameters: TranscriptGetV1TranscriptsTranscriptIdGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<GetTranscript> {
|
||||||
|
const response = await this.transcriptGetV1TranscriptsTranscriptIdGetRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Websocket Events
|
||||||
|
*/
|
||||||
|
async transcriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGetRaw(
|
||||||
|
requestParameters: TranscriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<any>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGet.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
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<any>(response);
|
||||||
|
} else {
|
||||||
|
return new runtime.TextApiResponse(response) as any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Get Websocket Events
|
||||||
|
*/
|
||||||
|
async transcriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGet(
|
||||||
|
requestParameters: TranscriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<any> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptGetWebsocketEventsV1TranscriptsTranscriptIdEventsGetRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Record Webrtc
|
||||||
|
*/
|
||||||
|
async transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPostRaw(
|
||||||
|
requestParameters: TranscriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<any>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPost.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
requestParameters.rtcOffer === null ||
|
||||||
|
requestParameters.rtcOffer === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"rtcOffer",
|
||||||
|
"Required parameter requestParameters.rtcOffer was null or undefined when calling transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPost.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
headerParameters["Content-Type"] = "application/json";
|
||||||
|
|
||||||
|
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<any>(response);
|
||||||
|
} else {
|
||||||
|
return new runtime.TextApiResponse(response) as any;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Record Webrtc
|
||||||
|
*/
|
||||||
|
async transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPost(
|
||||||
|
requestParameters: TranscriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<any> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPostRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcript Update
|
||||||
|
*/
|
||||||
|
async transcriptUpdateV1TranscriptsTranscriptIdPatchRaw(
|
||||||
|
requestParameters: TranscriptUpdateV1TranscriptsTranscriptIdPatchRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<GetTranscript>> {
|
||||||
|
if (
|
||||||
|
requestParameters.transcriptId === null ||
|
||||||
|
requestParameters.transcriptId === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"transcriptId",
|
||||||
|
"Required parameter requestParameters.transcriptId was null or undefined when calling transcriptUpdateV1TranscriptsTranscriptIdPatch.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
requestParameters.updateTranscript === null ||
|
||||||
|
requestParameters.updateTranscript === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"updateTranscript",
|
||||||
|
"Required parameter requestParameters.updateTranscript was null or undefined when calling transcriptUpdateV1TranscriptsTranscriptIdPatch.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
headerParameters["Content-Type"] = "application/json";
|
||||||
|
|
||||||
|
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 transcriptUpdateV1TranscriptsTranscriptIdPatch(
|
||||||
|
requestParameters: TranscriptUpdateV1TranscriptsTranscriptIdPatchRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<GetTranscript> {
|
||||||
|
const response =
|
||||||
|
await this.transcriptUpdateV1TranscriptsTranscriptIdPatchRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcripts Create
|
||||||
|
*/
|
||||||
|
async transcriptsCreateV1TranscriptsPostRaw(
|
||||||
|
requestParameters: TranscriptsCreateV1TranscriptsPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<GetTranscript>> {
|
||||||
|
if (
|
||||||
|
requestParameters.createTranscript === null ||
|
||||||
|
requestParameters.createTranscript === undefined
|
||||||
|
) {
|
||||||
|
throw new runtime.RequiredError(
|
||||||
|
"createTranscript",
|
||||||
|
"Required parameter requestParameters.createTranscript was null or undefined when calling transcriptsCreateV1TranscriptsPost.",
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
headerParameters["Content-Type"] = "application/json";
|
||||||
|
|
||||||
|
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 transcriptsCreateV1TranscriptsPost(
|
||||||
|
requestParameters: TranscriptsCreateV1TranscriptsPostRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<GetTranscript> {
|
||||||
|
const response = await this.transcriptsCreateV1TranscriptsPostRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Transcripts List
|
||||||
|
*/
|
||||||
|
async transcriptsListV1TranscriptsGetRaw(
|
||||||
|
requestParameters: TranscriptsListV1TranscriptsGetRequest,
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<runtime.ApiResponse<PageGetTranscript>> {
|
||||||
|
const queryParameters: any = {};
|
||||||
|
|
||||||
|
if (requestParameters.page !== undefined) {
|
||||||
|
queryParameters["page"] = requestParameters.page;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (requestParameters.size !== undefined) {
|
||||||
|
queryParameters["size"] = requestParameters.size;
|
||||||
|
}
|
||||||
|
|
||||||
|
const headerParameters: runtime.HTTPHeaders = {};
|
||||||
|
|
||||||
|
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 transcriptsListV1TranscriptsGet(
|
||||||
|
requestParameters: TranscriptsListV1TranscriptsGetRequest = {},
|
||||||
|
initOverrides?: RequestInit | runtime.InitOverrideFunction,
|
||||||
|
): Promise<PageGetTranscript> {
|
||||||
|
const response = await this.transcriptsListV1TranscriptsGetRaw(
|
||||||
|
requestParameters,
|
||||||
|
initOverrides,
|
||||||
|
);
|
||||||
|
return await response.value();
|
||||||
|
}
|
||||||
|
}
|
||||||
3
www/app/api/apis/index.ts
Normal file
3
www/app/api/apis/index.ts
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
export * from "./DefaultApi";
|
||||||
5
www/app/api/index.ts
Normal file
5
www/app/api/index.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
export * from "./runtime";
|
||||||
|
export * from "./apis";
|
||||||
|
export * from "./models";
|
||||||
66
www/app/api/models/CreateTranscript.ts
Normal file
66
www/app/api/models/CreateTranscript.ts
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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"],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function CreateTranscriptToJSON(value?: CreateTranscript | null): any {
|
||||||
|
if (value === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (value === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
name: value.name,
|
||||||
|
};
|
||||||
|
}
|
||||||
66
www/app/api/models/DeletionStatus.ts
Normal file
66
www/app/api/models/DeletionStatus.ts
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
/* 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
111
www/app/api/models/GetTranscript.ts
Normal file
111
www/app/api/models/GetTranscript.ts
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
/* 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
|
||||||
|
*/
|
||||||
|
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
|
||||||
|
*/
|
||||||
|
createdAt: any | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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 && "name" in value;
|
||||||
|
isInstance = isInstance && "status" in value;
|
||||||
|
isInstance = isInstance && "locked" in value;
|
||||||
|
isInstance = isInstance && "duration" in value;
|
||||||
|
isInstance = isInstance && "createdAt" 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"],
|
||||||
|
name: json["name"],
|
||||||
|
status: json["status"],
|
||||||
|
locked: json["locked"],
|
||||||
|
duration: json["duration"],
|
||||||
|
createdAt: json["created_at"],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function GetTranscriptToJSON(value?: GetTranscript | null): any {
|
||||||
|
if (value === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (value === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
id: value.id,
|
||||||
|
name: value.name,
|
||||||
|
status: value.status,
|
||||||
|
locked: value.locked,
|
||||||
|
duration: value.duration,
|
||||||
|
created_at: value.createdAt,
|
||||||
|
};
|
||||||
|
}
|
||||||
67
www/app/api/models/HTTPValidationError.ts
Normal file
67
www/app/api/models/HTTPValidationError.ts
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
101
www/app/api/models/PageGetTranscript.ts
Normal file
101
www/app/api/models/PageGetTranscript.ts
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
/* 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
75
www/app/api/models/RtcOffer.ts
Normal file
75
www/app/api/models/RtcOffer.ts
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
/* 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
101
www/app/api/models/TranscriptTopic.ts
Normal file
101
www/app/api/models/TranscriptTopic.ts
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
/* 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
|
||||||
|
*/
|
||||||
|
transcript: any | null;
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @type {any}
|
||||||
|
* @memberof TranscriptTopic
|
||||||
|
*/
|
||||||
|
timestamp: 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 && "transcript" 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"],
|
||||||
|
transcript: json["transcript"],
|
||||||
|
timestamp: json["timestamp"],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
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,
|
||||||
|
transcript: value.transcript,
|
||||||
|
timestamp: value.timestamp,
|
||||||
|
};
|
||||||
|
}
|
||||||
73
www/app/api/models/UpdateTranscript.ts
Normal file
73
www/app/api/models/UpdateTranscript.ts
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
/* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 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"],
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export function UpdateTranscriptToJSON(value?: UpdateTranscript | null): any {
|
||||||
|
if (value === undefined) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
if (value === null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
name: value.name,
|
||||||
|
locked: value.locked,
|
||||||
|
};
|
||||||
|
}
|
||||||
84
www/app/api/models/ValidationError.ts
Normal file
84
www/app/api/models/ValidationError.ts
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
/* 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,
|
||||||
|
};
|
||||||
|
}
|
||||||
11
www/app/api/models/index.ts
Normal file
11
www/app/api/models/index.ts
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
/* tslint:disable */
|
||||||
|
/* eslint-disable */
|
||||||
|
export * from "./CreateTranscript";
|
||||||
|
export * from "./DeletionStatus";
|
||||||
|
export * from "./GetTranscript";
|
||||||
|
export * from "./HTTPValidationError";
|
||||||
|
export * from "./PageGetTranscript";
|
||||||
|
export * from "./RtcOffer";
|
||||||
|
export * from "./TranscriptTopic";
|
||||||
|
export * from "./UpdateTranscript";
|
||||||
|
export * from "./ValidationError";
|
||||||
520
www/app/api/runtime.ts
Normal file
520
www/app/api/runtime.ts
Normal file
@@ -0,0 +1,520 @@
|
|||||||
|
/* 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.
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const BASE_PATH = "http://localhost".replace(/\/+$/, "");
|
||||||
|
|
||||||
|
export interface ConfigurationParameters {
|
||||||
|
basePath?: string; // override base path
|
||||||
|
fetchApi?: FetchAPI; // override for fetch implementation
|
||||||
|
middleware?: Middleware[]; // middleware to apply before/after fetch requests
|
||||||
|
queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings
|
||||||
|
username?: string; // parameter for basic security
|
||||||
|
password?: string; // parameter for basic security
|
||||||
|
apiKey?: string | ((name: string) => string); // parameter for apiKey security
|
||||||
|
accessToken?:
|
||||||
|
| string
|
||||||
|
| Promise<string>
|
||||||
|
| ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security
|
||||||
|
headers?: HTTPHeaders; //header params we want to use on every request
|
||||||
|
credentials?: RequestCredentials; //value for the credentials param we want to use on each request
|
||||||
|
}
|
||||||
|
|
||||||
|
export class Configuration {
|
||||||
|
constructor(private configuration: ConfigurationParameters = {}) {}
|
||||||
|
|
||||||
|
set config(configuration: Configuration) {
|
||||||
|
this.configuration = configuration;
|
||||||
|
}
|
||||||
|
|
||||||
|
get basePath(): string {
|
||||||
|
return this.configuration.basePath != null
|
||||||
|
? this.configuration.basePath
|
||||||
|
: BASE_PATH;
|
||||||
|
}
|
||||||
|
|
||||||
|
get fetchApi(): FetchAPI | undefined {
|
||||||
|
return this.configuration.fetchApi;
|
||||||
|
}
|
||||||
|
|
||||||
|
get middleware(): Middleware[] {
|
||||||
|
return this.configuration.middleware || [];
|
||||||
|
}
|
||||||
|
|
||||||
|
get queryParamsStringify(): (params: HTTPQuery) => string {
|
||||||
|
return this.configuration.queryParamsStringify || querystring;
|
||||||
|
}
|
||||||
|
|
||||||
|
get username(): string | undefined {
|
||||||
|
return this.configuration.username;
|
||||||
|
}
|
||||||
|
|
||||||
|
get password(): string | undefined {
|
||||||
|
return this.configuration.password;
|
||||||
|
}
|
||||||
|
|
||||||
|
get apiKey(): ((name: string) => string) | undefined {
|
||||||
|
const apiKey = this.configuration.apiKey;
|
||||||
|
if (apiKey) {
|
||||||
|
return typeof apiKey === "function" ? apiKey : () => apiKey;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
get accessToken():
|
||||||
|
| ((name?: string, scopes?: string[]) => string | Promise<string>)
|
||||||
|
| undefined {
|
||||||
|
const accessToken = this.configuration.accessToken;
|
||||||
|
if (accessToken) {
|
||||||
|
return typeof accessToken === "function"
|
||||||
|
? accessToken
|
||||||
|
: async () => accessToken;
|
||||||
|
}
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
get headers(): HTTPHeaders | undefined {
|
||||||
|
return this.configuration.headers;
|
||||||
|
}
|
||||||
|
|
||||||
|
get credentials(): RequestCredentials | undefined {
|
||||||
|
return this.configuration.credentials;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const DefaultConfig = new Configuration();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the base class for all generated API classes.
|
||||||
|
*/
|
||||||
|
export class BaseAPI {
|
||||||
|
private static readonly jsonRegex = new RegExp(
|
||||||
|
"^(:?application/json|[^;/ \t]+/[^;/ \t]+[+]json)[ \t]*(:?;.*)?$",
|
||||||
|
"i",
|
||||||
|
);
|
||||||
|
private middleware: Middleware[];
|
||||||
|
|
||||||
|
constructor(protected configuration = DefaultConfig) {
|
||||||
|
this.middleware = configuration.middleware;
|
||||||
|
}
|
||||||
|
|
||||||
|
withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {
|
||||||
|
const next = this.clone<T>();
|
||||||
|
next.middleware = next.middleware.concat(...middlewares);
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
|
||||||
|
withPreMiddleware<T extends BaseAPI>(
|
||||||
|
this: T,
|
||||||
|
...preMiddlewares: Array<Middleware["pre"]>
|
||||||
|
) {
|
||||||
|
const middlewares = preMiddlewares.map((pre) => ({ pre }));
|
||||||
|
return this.withMiddleware<T>(...middlewares);
|
||||||
|
}
|
||||||
|
|
||||||
|
withPostMiddleware<T extends BaseAPI>(
|
||||||
|
this: T,
|
||||||
|
...postMiddlewares: Array<Middleware["post"]>
|
||||||
|
) {
|
||||||
|
const middlewares = postMiddlewares.map((post) => ({ post }));
|
||||||
|
return this.withMiddleware<T>(...middlewares);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check if the given MIME is a JSON MIME.
|
||||||
|
* JSON MIME examples:
|
||||||
|
* application/json
|
||||||
|
* application/json; charset=UTF8
|
||||||
|
* APPLICATION/JSON
|
||||||
|
* application/vnd.company+json
|
||||||
|
* @param mime - MIME (Multipurpose Internet Mail Extensions)
|
||||||
|
* @return True if the given MIME is JSON, false otherwise.
|
||||||
|
*/
|
||||||
|
protected isJsonMime(mime: string | null | undefined): boolean {
|
||||||
|
if (!mime) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return BaseAPI.jsonRegex.test(mime);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected async request(
|
||||||
|
context: RequestOpts,
|
||||||
|
initOverrides?: RequestInit | InitOverrideFunction,
|
||||||
|
): Promise<Response> {
|
||||||
|
const { url, init } = await this.createFetchParams(context, initOverrides);
|
||||||
|
const response = await this.fetchApi(url, init);
|
||||||
|
if (response && response.status >= 200 && response.status < 300) {
|
||||||
|
return response;
|
||||||
|
}
|
||||||
|
throw new ResponseError(response, "Response returned an error code");
|
||||||
|
}
|
||||||
|
|
||||||
|
private async createFetchParams(
|
||||||
|
context: RequestOpts,
|
||||||
|
initOverrides?: RequestInit | InitOverrideFunction,
|
||||||
|
) {
|
||||||
|
let url = this.configuration.basePath + context.path;
|
||||||
|
if (
|
||||||
|
context.query !== undefined &&
|
||||||
|
Object.keys(context.query).length !== 0
|
||||||
|
) {
|
||||||
|
// only add the querystring to the URL if there are query parameters.
|
||||||
|
// this is done to avoid urls ending with a "?" character which buggy webservers
|
||||||
|
// do not handle correctly sometimes.
|
||||||
|
url += "?" + this.configuration.queryParamsStringify(context.query);
|
||||||
|
}
|
||||||
|
|
||||||
|
const headers = Object.assign(
|
||||||
|
{},
|
||||||
|
this.configuration.headers,
|
||||||
|
context.headers,
|
||||||
|
);
|
||||||
|
Object.keys(headers).forEach((key) =>
|
||||||
|
headers[key] === undefined ? delete headers[key] : {},
|
||||||
|
);
|
||||||
|
|
||||||
|
const initOverrideFn =
|
||||||
|
typeof initOverrides === "function"
|
||||||
|
? initOverrides
|
||||||
|
: async () => initOverrides;
|
||||||
|
|
||||||
|
const initParams = {
|
||||||
|
method: context.method,
|
||||||
|
headers,
|
||||||
|
body: context.body,
|
||||||
|
credentials: this.configuration.credentials,
|
||||||
|
};
|
||||||
|
|
||||||
|
const overriddenInit: RequestInit = {
|
||||||
|
...initParams,
|
||||||
|
...(await initOverrideFn({
|
||||||
|
init: initParams,
|
||||||
|
context,
|
||||||
|
})),
|
||||||
|
};
|
||||||
|
|
||||||
|
const init: RequestInit = {
|
||||||
|
...overriddenInit,
|
||||||
|
body:
|
||||||
|
isFormData(overriddenInit.body) ||
|
||||||
|
overriddenInit.body instanceof URLSearchParams ||
|
||||||
|
isBlob(overriddenInit.body)
|
||||||
|
? overriddenInit.body
|
||||||
|
: JSON.stringify(overriddenInit.body),
|
||||||
|
};
|
||||||
|
|
||||||
|
return { url, init };
|
||||||
|
}
|
||||||
|
|
||||||
|
private fetchApi = async (url: string, init: RequestInit) => {
|
||||||
|
let fetchParams = { url, init };
|
||||||
|
for (const middleware of this.middleware) {
|
||||||
|
if (middleware.pre) {
|
||||||
|
fetchParams =
|
||||||
|
(await middleware.pre({
|
||||||
|
fetch: this.fetchApi,
|
||||||
|
...fetchParams,
|
||||||
|
})) || fetchParams;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
let response: Response | undefined = undefined;
|
||||||
|
try {
|
||||||
|
response = await (this.configuration.fetchApi || fetch)(
|
||||||
|
fetchParams.url,
|
||||||
|
fetchParams.init,
|
||||||
|
);
|
||||||
|
} catch (e) {
|
||||||
|
for (const middleware of this.middleware) {
|
||||||
|
if (middleware.onError) {
|
||||||
|
response =
|
||||||
|
(await middleware.onError({
|
||||||
|
fetch: this.fetchApi,
|
||||||
|
url: fetchParams.url,
|
||||||
|
init: fetchParams.init,
|
||||||
|
error: e,
|
||||||
|
response: response ? response.clone() : undefined,
|
||||||
|
})) || response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (response === undefined) {
|
||||||
|
if (e instanceof Error) {
|
||||||
|
throw new FetchError(
|
||||||
|
e,
|
||||||
|
"The request failed and the interceptors did not return an alternative response",
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
throw e;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (const middleware of this.middleware) {
|
||||||
|
if (middleware.post) {
|
||||||
|
response =
|
||||||
|
(await middleware.post({
|
||||||
|
fetch: this.fetchApi,
|
||||||
|
url: fetchParams.url,
|
||||||
|
init: fetchParams.init,
|
||||||
|
response: response.clone(),
|
||||||
|
})) || response;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return response;
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a shallow clone of `this` by constructing a new instance
|
||||||
|
* and then shallow cloning data members.
|
||||||
|
*/
|
||||||
|
private clone<T extends BaseAPI>(this: T): T {
|
||||||
|
const constructor = this.constructor as any;
|
||||||
|
const next = new constructor(this.configuration);
|
||||||
|
next.middleware = this.middleware.slice();
|
||||||
|
return next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isBlob(value: any): value is Blob {
|
||||||
|
return typeof Blob !== "undefined" && value instanceof Blob;
|
||||||
|
}
|
||||||
|
|
||||||
|
function isFormData(value: any): value is FormData {
|
||||||
|
return typeof FormData !== "undefined" && value instanceof FormData;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class ResponseError extends Error {
|
||||||
|
override name: "ResponseError" = "ResponseError";
|
||||||
|
constructor(
|
||||||
|
public response: Response,
|
||||||
|
msg?: string,
|
||||||
|
) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class FetchError extends Error {
|
||||||
|
override name: "FetchError" = "FetchError";
|
||||||
|
constructor(
|
||||||
|
public cause: Error,
|
||||||
|
msg?: string,
|
||||||
|
) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class RequiredError extends Error {
|
||||||
|
override name: "RequiredError" = "RequiredError";
|
||||||
|
constructor(
|
||||||
|
public field: string,
|
||||||
|
msg?: string,
|
||||||
|
) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const COLLECTION_FORMATS = {
|
||||||
|
csv: ",",
|
||||||
|
ssv: " ",
|
||||||
|
tsv: "\t",
|
||||||
|
pipes: "|",
|
||||||
|
};
|
||||||
|
|
||||||
|
export type FetchAPI = WindowOrWorkerGlobalScope["fetch"];
|
||||||
|
|
||||||
|
export type Json = any;
|
||||||
|
export type HTTPMethod =
|
||||||
|
| "GET"
|
||||||
|
| "POST"
|
||||||
|
| "PUT"
|
||||||
|
| "PATCH"
|
||||||
|
| "DELETE"
|
||||||
|
| "OPTIONS"
|
||||||
|
| "HEAD";
|
||||||
|
export type HTTPHeaders = { [key: string]: string };
|
||||||
|
export type HTTPQuery = {
|
||||||
|
[key: string]:
|
||||||
|
| string
|
||||||
|
| number
|
||||||
|
| null
|
||||||
|
| boolean
|
||||||
|
| Array<string | number | null | boolean>
|
||||||
|
| Set<string | number | null | boolean>
|
||||||
|
| HTTPQuery;
|
||||||
|
};
|
||||||
|
export type HTTPBody = Json | FormData | URLSearchParams;
|
||||||
|
export type HTTPRequestInit = {
|
||||||
|
headers?: HTTPHeaders;
|
||||||
|
method: HTTPMethod;
|
||||||
|
credentials?: RequestCredentials;
|
||||||
|
body?: HTTPBody;
|
||||||
|
};
|
||||||
|
export type ModelPropertyNaming =
|
||||||
|
| "camelCase"
|
||||||
|
| "snake_case"
|
||||||
|
| "PascalCase"
|
||||||
|
| "original";
|
||||||
|
|
||||||
|
export type InitOverrideFunction = (requestContext: {
|
||||||
|
init: HTTPRequestInit;
|
||||||
|
context: RequestOpts;
|
||||||
|
}) => Promise<RequestInit>;
|
||||||
|
|
||||||
|
export interface FetchParams {
|
||||||
|
url: string;
|
||||||
|
init: RequestInit;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RequestOpts {
|
||||||
|
path: string;
|
||||||
|
method: HTTPMethod;
|
||||||
|
headers: HTTPHeaders;
|
||||||
|
query?: HTTPQuery;
|
||||||
|
body?: HTTPBody;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function exists(json: any, key: string) {
|
||||||
|
const value = json[key];
|
||||||
|
return value !== null && value !== undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function querystring(params: HTTPQuery, prefix: string = ""): string {
|
||||||
|
return Object.keys(params)
|
||||||
|
.map((key) => querystringSingleKey(key, params[key], prefix))
|
||||||
|
.filter((part) => part.length > 0)
|
||||||
|
.join("&");
|
||||||
|
}
|
||||||
|
|
||||||
|
function querystringSingleKey(
|
||||||
|
key: string,
|
||||||
|
value:
|
||||||
|
| string
|
||||||
|
| number
|
||||||
|
| null
|
||||||
|
| undefined
|
||||||
|
| boolean
|
||||||
|
| Array<string | number | null | boolean>
|
||||||
|
| Set<string | number | null | boolean>
|
||||||
|
| HTTPQuery,
|
||||||
|
keyPrefix: string = "",
|
||||||
|
): string {
|
||||||
|
const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);
|
||||||
|
if (value instanceof Array) {
|
||||||
|
const multiValue = value
|
||||||
|
.map((singleValue) => encodeURIComponent(String(singleValue)))
|
||||||
|
.join(`&${encodeURIComponent(fullKey)}=`);
|
||||||
|
return `${encodeURIComponent(fullKey)}=${multiValue}`;
|
||||||
|
}
|
||||||
|
if (value instanceof Set) {
|
||||||
|
const valueAsArray = Array.from(value);
|
||||||
|
return querystringSingleKey(key, valueAsArray, keyPrefix);
|
||||||
|
}
|
||||||
|
if (value instanceof Date) {
|
||||||
|
return `${encodeURIComponent(fullKey)}=${encodeURIComponent(
|
||||||
|
value.toISOString(),
|
||||||
|
)}`;
|
||||||
|
}
|
||||||
|
if (value instanceof Object) {
|
||||||
|
return querystring(value as HTTPQuery, fullKey);
|
||||||
|
}
|
||||||
|
return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function mapValues(data: any, fn: (item: any) => any) {
|
||||||
|
return Object.keys(data).reduce(
|
||||||
|
(acc, key) => ({ ...acc, [key]: fn(data[key]) }),
|
||||||
|
{},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export function canConsumeForm(consumes: Consume[]): boolean {
|
||||||
|
for (const consume of consumes) {
|
||||||
|
if ("multipart/form-data" === consume.contentType) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Consume {
|
||||||
|
contentType: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RequestContext {
|
||||||
|
fetch: FetchAPI;
|
||||||
|
url: string;
|
||||||
|
init: RequestInit;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ResponseContext {
|
||||||
|
fetch: FetchAPI;
|
||||||
|
url: string;
|
||||||
|
init: RequestInit;
|
||||||
|
response: Response;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ErrorContext {
|
||||||
|
fetch: FetchAPI;
|
||||||
|
url: string;
|
||||||
|
init: RequestInit;
|
||||||
|
error: unknown;
|
||||||
|
response?: Response;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Middleware {
|
||||||
|
pre?(context: RequestContext): Promise<FetchParams | void>;
|
||||||
|
post?(context: ResponseContext): Promise<Response | void>;
|
||||||
|
onError?(context: ErrorContext): Promise<Response | void>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ApiResponse<T> {
|
||||||
|
raw: Response;
|
||||||
|
value(): Promise<T>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ResponseTransformer<T> {
|
||||||
|
(json: any): T;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class JSONApiResponse<T> {
|
||||||
|
constructor(
|
||||||
|
public raw: Response,
|
||||||
|
private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
async value(): Promise<T> {
|
||||||
|
return this.transformer(await this.raw.json());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class VoidApiResponse {
|
||||||
|
constructor(public raw: Response) {}
|
||||||
|
|
||||||
|
async value(): Promise<void> {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class BlobApiResponse {
|
||||||
|
constructor(public raw: Response) {}
|
||||||
|
|
||||||
|
async value(): Promise<Blob> {
|
||||||
|
return await this.raw.blob();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class TextApiResponse {
|
||||||
|
constructor(public raw: Response) {}
|
||||||
|
|
||||||
|
async value(): Promise<string> {
|
||||||
|
return await this.raw.text();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,34 +1,39 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import axios from "axios";
|
import { DefaultApi } from "../api/apis/DefaultApi";
|
||||||
|
import { Configuration } from "../api/runtime";
|
||||||
const API_URL = process.env.NEXT_PUBLIC_API_URL;
|
|
||||||
|
|
||||||
const useTranscript = () => {
|
const useTranscript = () => {
|
||||||
const [response, setResponse] = useState(null);
|
const [response, setResponse] = useState(null);
|
||||||
const [loading, setLoading] = useState(false);
|
const [loading, setLoading] = useState(false);
|
||||||
const [error, setError] = useState(null);
|
const [error, setError] = useState(null);
|
||||||
|
|
||||||
|
const apiConfiguration = new Configuration({
|
||||||
|
basePath: process.env.NEXT_PUBLIC_API_URL,
|
||||||
|
});
|
||||||
|
const api = new DefaultApi(apiConfiguration);
|
||||||
|
|
||||||
const createTranscript = () => {
|
const createTranscript = () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
const url = API_URL + "/v1/transcripts/";
|
const requestParameters = {
|
||||||
const data = {
|
createTranscript: {
|
||||||
name: "Weekly All-Hands", // Hardcoded for now
|
name: "Weekly All-Hands", // Hardcoded for now
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
console.debug(
|
console.debug(
|
||||||
"POST - /v1/transcripts/ - Requesting new transcription creation",
|
"POST - /v1/transcripts/ - Requesting new transcription creation",
|
||||||
data,
|
requestParameters,
|
||||||
);
|
);
|
||||||
|
|
||||||
axios
|
api
|
||||||
.post(url, data)
|
.transcriptsCreateV1TranscriptsPost(requestParameters)
|
||||||
.then((result) => {
|
.then((result) => {
|
||||||
setResponse(result.data);
|
setResponse(result);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
console.debug("New transcript created:", result.data);
|
console.debug("New transcript created:", result);
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
const errorString = err.response || err || "Unknown error";
|
const errorString = err.response || err.message || "Unknown error";
|
||||||
setError(errorString);
|
setError(errorString);
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
console.error("Error creating transcript:", errorString);
|
console.error("Error creating transcript:", errorString);
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
import Peer from "simple-peer";
|
import Peer from "simple-peer";
|
||||||
import axios from "axios";
|
import { DefaultApi } from "../api/apis/DefaultApi";
|
||||||
|
import { Configuration } from "../api/runtime";
|
||||||
const API_URL = process.env.NEXT_PUBLIC_API_URL;
|
|
||||||
|
|
||||||
const useWebRTC = (stream, transcriptId) => {
|
const useWebRTC = (stream, transcriptId) => {
|
||||||
const [data, setData] = useState({
|
const [data, setData] = useState({
|
||||||
@@ -13,29 +12,33 @@ const useWebRTC = (stream, transcriptId) => {
|
|||||||
if (!stream || !transcriptId) {
|
if (!stream || !transcriptId) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const url = `${API_URL}/v1/transcripts/${transcriptId}/record/webrtc`;
|
|
||||||
|
const apiConfiguration = new Configuration({
|
||||||
|
basePath: process.env.NEXT_PUBLIC_API_URL,
|
||||||
|
});
|
||||||
|
const api = new DefaultApi(apiConfiguration);
|
||||||
|
|
||||||
let peer = new Peer({ initiator: true, stream: stream });
|
let peer = new Peer({ initiator: true, stream: stream });
|
||||||
|
|
||||||
peer.on("signal", (data) => {
|
peer.on("signal", (data) => {
|
||||||
if ("sdp" in data) {
|
if ("sdp" in data) {
|
||||||
const rtcOffer = {
|
const requestParameters = {
|
||||||
|
transcriptId: transcriptId,
|
||||||
|
rtcOffer: {
|
||||||
sdp: data.sdp,
|
sdp: data.sdp,
|
||||||
type: data.type,
|
type: data.type,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
axios
|
api
|
||||||
.post(url, rtcOffer, {
|
.transcriptRecordWebrtcV1TranscriptsTranscriptIdRecordWebrtcPost(
|
||||||
headers: {
|
requestParameters,
|
||||||
"Content-Type": "application/json",
|
)
|
||||||
},
|
.then((answer) => {
|
||||||
})
|
|
||||||
.then((response) => {
|
|
||||||
const answer = response.data;
|
|
||||||
peer.signal(answer);
|
peer.signal(answer);
|
||||||
})
|
})
|
||||||
.catch((e) => {
|
.catch((err) => {
|
||||||
console.error("WebRTC signaling error:", e);
|
console.error("WebRTC signaling error:", err);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
7
www/openapitools.json
Normal file
7
www/openapitools.json
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"$schema": "./node_modules/@openapitools/openapi-generator-cli/config.schema.json",
|
||||||
|
"spaces": 2,
|
||||||
|
"generator-cli": {
|
||||||
|
"version": "6.6.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -19,14 +19,17 @@
|
|||||||
"fontawesome": "^5.6.3",
|
"fontawesome": "^5.6.3",
|
||||||
"jest-worker": "^29.6.2",
|
"jest-worker": "^29.6.2",
|
||||||
"next": "^13.4.9",
|
"next": "^13.4.9",
|
||||||
|
"openapi-generator": "^0.1.39",
|
||||||
"postcss": "8.4.25",
|
"postcss": "8.4.25",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-dropdown": "^1.11.0",
|
"react-dropdown": "^1.11.0",
|
||||||
"sass": "^1.63.6",
|
"sass": "^1.63.6",
|
||||||
"simple-peer": "^9.11.1",
|
"simple-peer": "^9.11.1",
|
||||||
|
"superagent": "^8.0.9",
|
||||||
"supports-color": "^9.4.0",
|
"supports-color": "^9.4.0",
|
||||||
"tailwindcss": "^3.3.2",
|
"tailwindcss": "^3.3.2",
|
||||||
|
"typescript": "^5.1.6",
|
||||||
"wavesurfer.js": "^7.0.3"
|
"wavesurfer.js": "^7.0.3"
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
@@ -34,6 +37,7 @@
|
|||||||
"author": "Andreas <andreas@monadical.com>",
|
"author": "Andreas <andreas@monadical.com>",
|
||||||
"license": "All Rights Reserved",
|
"license": "All Rights Reserved",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/react": "18.2.20",
|
||||||
"prettier": "^3.0.0"
|
"prettier": "^3.0.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
25
www/tsconfig.json
Normal file
25
www/tsconfig.json
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"lib": ["dom", "dom.iterable", "esnext"],
|
||||||
|
"allowJs": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"strict": false,
|
||||||
|
"forceConsistentCasingInFileNames": true,
|
||||||
|
"noEmit": true,
|
||||||
|
"incremental": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"module": "esnext",
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"plugins": [
|
||||||
|
{
|
||||||
|
"name": "next"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"strictNullChecks": true
|
||||||
|
},
|
||||||
|
"include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
|
||||||
|
"exclude": ["node_modules"]
|
||||||
|
}
|
||||||
1277
www/yarn.lock
1277
www/yarn.lock
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user