Migrate to the latest openapi-ts

This commit is contained in:
2024-07-03 16:33:43 +02:00
parent ef531f6491
commit 92a99fba2c
64 changed files with 2524 additions and 1668 deletions

View File

@@ -1,8 +1,9 @@
import type { BaseHttpRequest } from "./core/BaseHttpRequest"; import type { BaseHttpRequest } from "./core/BaseHttpRequest";
import type { OpenAPIConfig } from "./core/OpenAPI"; import type { OpenAPIConfig } from "./core/OpenAPI";
import { Interceptors } from "./core/OpenAPI";
import { AxiosHttpRequest } from "./core/AxiosHttpRequest"; import { AxiosHttpRequest } from "./core/AxiosHttpRequest";
import { DefaultService } from "./services/DefaultService"; import { DefaultService } from "./services.gen";
type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest; type HttpRequestConstructor = new (config: OpenAPIConfig) => BaseHttpRequest;
@@ -25,6 +26,10 @@ export class OpenApi {
PASSWORD: config?.PASSWORD, PASSWORD: config?.PASSWORD,
HEADERS: config?.HEADERS, HEADERS: config?.HEADERS,
ENCODE_PATH: config?.ENCODE_PATH, ENCODE_PATH: config?.ENCODE_PATH,
interceptors: {
request: config?.interceptors?.request ?? new Interceptors(),
response: config?.interceptors?.response ?? new Interceptors(),
},
}); });
this.default = new DefaultService(this.request); this.default = new DefaultService(this.request);

View File

@@ -1,4 +1,4 @@
export type ApiRequestOptions = { export type ApiRequestOptions<T = unknown> = {
readonly method: readonly method:
| "GET" | "GET"
| "PUT" | "PUT"
@@ -16,5 +16,6 @@ export type ApiRequestOptions = {
readonly body?: any; readonly body?: any;
readonly mediaType?: string; readonly mediaType?: string;
readonly responseHeader?: string; readonly responseHeader?: string;
readonly errors?: Record<number, string>; readonly responseTransformer?: (data: unknown) => Promise<T>;
readonly errors?: Record<number | string, string>;
}; };

View File

@@ -15,7 +15,9 @@ export class AxiosHttpRequest extends BaseHttpRequest {
* @returns CancelablePromise<T> * @returns CancelablePromise<T>
* @throws ApiError * @throws ApiError
*/ */
public override request<T>(options: ApiRequestOptions): CancelablePromise<T> { public override request<T>(
options: ApiRequestOptions<T>,
): CancelablePromise<T> {
return __request(this.config, options); return __request(this.config, options);
} }
} }

View File

@@ -5,5 +5,7 @@ import type { OpenAPIConfig } from "./OpenAPI";
export abstract class BaseHttpRequest { export abstract class BaseHttpRequest {
constructor(public readonly config: OpenAPIConfig) {} constructor(public readonly config: OpenAPIConfig) {}
public abstract request<T>(options: ApiRequestOptions): CancelablePromise<T>; public abstract request<T>(
options: ApiRequestOptions<T>,
): CancelablePromise<T>;
} }

View File

@@ -18,13 +18,13 @@ export interface OnCancel {
} }
export class CancelablePromise<T> implements Promise<T> { export class CancelablePromise<T> implements Promise<T> {
#isResolved: boolean; private _isResolved: boolean;
#isRejected: boolean; private _isRejected: boolean;
#isCancelled: boolean; private _isCancelled: boolean;
readonly #cancelHandlers: (() => void)[]; readonly cancelHandlers: (() => void)[];
readonly #promise: Promise<T>; readonly promise: Promise<T>;
#resolve?: (value: T | PromiseLike<T>) => void; private _resolve?: (value: T | PromiseLike<T>) => void;
#reject?: (reason?: unknown) => void; private _reject?: (reason?: unknown) => void;
constructor( constructor(
executor: ( executor: (
@@ -33,47 +33,47 @@ export class CancelablePromise<T> implements Promise<T> {
onCancel: OnCancel, onCancel: OnCancel,
) => void, ) => void,
) { ) {
this.#isResolved = false; this._isResolved = false;
this.#isRejected = false; this._isRejected = false;
this.#isCancelled = false; this._isCancelled = false;
this.#cancelHandlers = []; this.cancelHandlers = [];
this.#promise = new Promise<T>((resolve, reject) => { this.promise = new Promise<T>((resolve, reject) => {
this.#resolve = resolve; this._resolve = resolve;
this.#reject = reject; this._reject = reject;
const onResolve = (value: T | PromiseLike<T>): void => { const onResolve = (value: T | PromiseLike<T>): void => {
if (this.#isResolved || this.#isRejected || this.#isCancelled) { if (this._isResolved || this._isRejected || this._isCancelled) {
return; return;
} }
this.#isResolved = true; this._isResolved = true;
if (this.#resolve) this.#resolve(value); if (this._resolve) this._resolve(value);
}; };
const onReject = (reason?: unknown): void => { const onReject = (reason?: unknown): void => {
if (this.#isResolved || this.#isRejected || this.#isCancelled) { if (this._isResolved || this._isRejected || this._isCancelled) {
return; return;
} }
this.#isRejected = true; this._isRejected = true;
if (this.#reject) this.#reject(reason); if (this._reject) this._reject(reason);
}; };
const onCancel = (cancelHandler: () => void): void => { const onCancel = (cancelHandler: () => void): void => {
if (this.#isResolved || this.#isRejected || this.#isCancelled) { if (this._isResolved || this._isRejected || this._isCancelled) {
return; return;
} }
this.#cancelHandlers.push(cancelHandler); this.cancelHandlers.push(cancelHandler);
}; };
Object.defineProperty(onCancel, "isResolved", { Object.defineProperty(onCancel, "isResolved", {
get: (): boolean => this.#isResolved, get: (): boolean => this._isResolved,
}); });
Object.defineProperty(onCancel, "isRejected", { Object.defineProperty(onCancel, "isRejected", {
get: (): boolean => this.#isRejected, get: (): boolean => this._isRejected,
}); });
Object.defineProperty(onCancel, "isCancelled", { Object.defineProperty(onCancel, "isCancelled", {
get: (): boolean => this.#isCancelled, get: (): boolean => this._isCancelled,
}); });
return executor(onResolve, onReject, onCancel as OnCancel); return executor(onResolve, onReject, onCancel as OnCancel);
@@ -88,27 +88,27 @@ export class CancelablePromise<T> implements Promise<T> {
onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null,
onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null, onRejected?: ((reason: unknown) => TResult2 | PromiseLike<TResult2>) | null,
): Promise<TResult1 | TResult2> { ): Promise<TResult1 | TResult2> {
return this.#promise.then(onFulfilled, onRejected); return this.promise.then(onFulfilled, onRejected);
} }
public catch<TResult = never>( public catch<TResult = never>(
onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null, onRejected?: ((reason: unknown) => TResult | PromiseLike<TResult>) | null,
): Promise<T | TResult> { ): Promise<T | TResult> {
return this.#promise.catch(onRejected); return this.promise.catch(onRejected);
} }
public finally(onFinally?: (() => void) | null): Promise<T> { public finally(onFinally?: (() => void) | null): Promise<T> {
return this.#promise.finally(onFinally); return this.promise.finally(onFinally);
} }
public cancel(): void { public cancel(): void {
if (this.#isResolved || this.#isRejected || this.#isCancelled) { if (this._isResolved || this._isRejected || this._isCancelled) {
return; return;
} }
this.#isCancelled = true; this._isCancelled = true;
if (this.#cancelHandlers.length) { if (this.cancelHandlers.length) {
try { try {
for (const cancelHandler of this.#cancelHandlers) { for (const cancelHandler of this.cancelHandlers) {
cancelHandler(); cancelHandler();
} }
} catch (error) { } catch (error) {
@@ -116,11 +116,11 @@ export class CancelablePromise<T> implements Promise<T> {
return; return;
} }
} }
this.#cancelHandlers.length = 0; this.cancelHandlers.length = 0;
if (this.#reject) this.#reject(new CancelError("Request aborted")); if (this._reject) this._reject(new CancelError("Request aborted"));
} }
public get isCancelled(): boolean { public get isCancelled(): boolean {
return this.#isCancelled; return this._isCancelled;
} }
} }

View File

@@ -1,8 +1,28 @@
import type { AxiosRequestConfig, AxiosResponse } from "axios";
import type { ApiRequestOptions } from "./ApiRequestOptions"; import type { ApiRequestOptions } from "./ApiRequestOptions";
import type { TConfig, TResult } from "./types";
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
type Headers = Record<string, string>; type Headers = Record<string, string>;
type Middleware<T> = (value: T) => T | Promise<T>;
type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;
export class Interceptors<T> {
_fns: Middleware<T>[];
constructor() {
this._fns = [];
}
eject(fn: Middleware<T>): void {
const index = this._fns.indexOf(fn);
if (index !== -1) {
this._fns = [...this._fns.slice(0, index), ...this._fns.slice(index + 1)];
}
}
use(fn: Middleware<T>): void {
this._fns = [...this._fns, fn];
}
}
export type OpenAPIConfig = { export type OpenAPIConfig = {
BASE: string; BASE: string;
@@ -10,11 +30,14 @@ export type OpenAPIConfig = {
ENCODE_PATH?: ((path: string) => string) | undefined; ENCODE_PATH?: ((path: string) => string) | undefined;
HEADERS?: Headers | Resolver<Headers> | undefined; HEADERS?: Headers | Resolver<Headers> | undefined;
PASSWORD?: string | Resolver<string> | undefined; PASSWORD?: string | Resolver<string> | undefined;
RESULT?: TResult;
TOKEN?: string | Resolver<string> | undefined; TOKEN?: string | Resolver<string> | undefined;
USERNAME?: string | Resolver<string> | undefined; USERNAME?: string | Resolver<string> | undefined;
VERSION: string; VERSION: string;
WITH_CREDENTIALS: boolean; WITH_CREDENTIALS: boolean;
interceptors: {
request: Interceptors<AxiosRequestConfig>;
response: Interceptors<AxiosResponse>;
};
}; };
export const OpenAPI: OpenAPIConfig = { export const OpenAPI: OpenAPIConfig = {
@@ -23,26 +46,12 @@ export const OpenAPI: OpenAPIConfig = {
ENCODE_PATH: undefined, ENCODE_PATH: undefined,
HEADERS: undefined, HEADERS: undefined,
PASSWORD: undefined, PASSWORD: undefined,
RESULT: "body",
TOKEN: undefined, TOKEN: undefined,
USERNAME: undefined, USERNAME: undefined,
VERSION: "0.1.0", VERSION: "0.1.0",
WITH_CREDENTIALS: false, WITH_CREDENTIALS: false,
}; interceptors: {
request: new Interceptors(),
export const mergeOpenApiConfig = <T extends TResult>( response: new Interceptors(),
config: OpenAPIConfig, },
overrides: TConfig<T>,
) => {
const merged = { ...config };
Object.entries(overrides)
.filter(([key]) => key.startsWith("_"))
.forEach(([key, value]) => {
const k = key.slice(1).toLocaleUpperCase() as keyof typeof merged;
if (merged.hasOwnProperty(k)) {
// @ts-ignore
merged[k] = value;
}
});
return merged;
}; };

View File

@@ -5,7 +5,6 @@ import type {
AxiosResponse, AxiosResponse,
AxiosInstance, AxiosInstance,
} from "axios"; } from "axios";
import FormData from "form-data";
import { ApiError } from "./ApiError"; import { ApiError } from "./ApiError";
import type { ApiRequestOptions } from "./ApiRequestOptions"; import type { ApiRequestOptions } from "./ApiRequestOptions";
@@ -23,18 +22,7 @@ export const isStringWithValue = (value: unknown): value is string => {
}; };
export const isBlob = (value: any): value is Blob => { export const isBlob = (value: any): value is Blob => {
return ( return value instanceof Blob;
value !== null &&
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) &&
// @ts-ignore
/^(Blob|File)$/.test(value[Symbol.toStringTag])
);
}; };
export const isFormData = (value: unknown): value is FormData => { export const isFormData = (value: unknown): value is FormData => {
@@ -66,7 +54,9 @@ export const getQueryString = (params: Record<string, unknown>): string => {
return; return;
} }
if (Array.isArray(value)) { if (value instanceof Date) {
append(key, value.toISOString());
} else if (Array.isArray(value)) {
value.forEach((v) => encodePair(key, v)); value.forEach((v) => encodePair(key, v));
} else if (typeof value === "object") { } else if (typeof value === "object") {
Object.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v)); Object.entries(value).forEach(([k, v]) => encodePair(`${key}[${k}]`, v));
@@ -102,7 +92,7 @@ export const getFormData = (
if (options.formData) { if (options.formData) {
const formData = new FormData(); const formData = new FormData();
const process = (key: string, value: any) => { const process = (key: string, value: unknown) => {
if (isString(value) || isBlob(value)) { if (isString(value) || isBlob(value)) {
formData.append(key, value); formData.append(key, value);
} else { } else {
@@ -111,7 +101,7 @@ export const getFormData = (
}; };
Object.entries(options.formData) Object.entries(options.formData)
.filter(([_, value]) => value !== undefined && value !== null) .filter(([, value]) => value !== undefined && value !== null)
.forEach(([key, value]) => { .forEach(([key, value]) => {
if (Array.isArray(value)) { if (Array.isArray(value)) {
value.forEach((v) => process(key, v)); value.forEach((v) => process(key, v));
@@ -125,10 +115,10 @@ export const getFormData = (
return undefined; return undefined;
}; };
type Resolver<T> = (options: ApiRequestOptions) => Promise<T>; type Resolver<T> = (options: ApiRequestOptions<T>) => Promise<T>;
export const resolve = async <T>( export const resolve = async <T>(
options: ApiRequestOptions, options: ApiRequestOptions<T>,
resolver?: T | Resolver<T>, resolver?: T | Resolver<T>,
): Promise<T | undefined> => { ): Promise<T | undefined> => {
if (typeof resolver === "function") { if (typeof resolver === "function") {
@@ -137,29 +127,27 @@ export const resolve = async <T>(
return resolver; return resolver;
}; };
export const getHeaders = async ( export const getHeaders = async <T>(
config: OpenAPIConfig, config: OpenAPIConfig,
options: ApiRequestOptions, options: ApiRequestOptions<T>,
formData?: FormData,
): Promise<Record<string, string>> => { ): Promise<Record<string, string>> => {
const [token, username, password, additionalHeaders] = await Promise.all([ const [token, username, password, additionalHeaders] = await Promise.all([
// @ts-ignore
resolve(options, config.TOKEN), resolve(options, config.TOKEN),
// @ts-ignore
resolve(options, config.USERNAME), resolve(options, config.USERNAME),
// @ts-ignore
resolve(options, config.PASSWORD), resolve(options, config.PASSWORD),
// @ts-ignore
resolve(options, config.HEADERS), resolve(options, config.HEADERS),
]); ]);
const formHeaders =
(typeof formData?.getHeaders === "function" && formData?.getHeaders()) ||
{};
const headers = Object.entries({ const headers = Object.entries({
Accept: "application/json", Accept: "application/json",
...additionalHeaders, ...additionalHeaders,
...options.headers, ...options.headers,
...formHeaders,
}) })
.filter(([_, value]) => value !== undefined && value !== null) .filter(([, value]) => value !== undefined && value !== null)
.reduce( .reduce(
(headers, [key, value]) => ({ (headers, [key, value]) => ({
...headers, ...headers,
@@ -187,6 +175,10 @@ export const getHeaders = async (
} else if (!isFormData(options.body)) { } else if (!isFormData(options.body)) {
headers["Content-Type"] = "application/json"; headers["Content-Type"] = "application/json";
} }
} else if (options.formData !== undefined) {
if (options.mediaType) {
headers["Content-Type"] = options.mediaType;
}
} }
return headers; return headers;
@@ -201,7 +193,7 @@ export const getRequestBody = (options: ApiRequestOptions): unknown => {
export const sendRequest = async <T>( export const sendRequest = async <T>(
config: OpenAPIConfig, config: OpenAPIConfig,
options: ApiRequestOptions, options: ApiRequestOptions<T>,
url: string, url: string,
body: unknown, body: unknown,
formData: FormData | undefined, formData: FormData | undefined,
@@ -211,17 +203,21 @@ export const sendRequest = async <T>(
): Promise<AxiosResponse<T>> => { ): Promise<AxiosResponse<T>> => {
const controller = new AbortController(); const controller = new AbortController();
const requestConfig: AxiosRequestConfig = { let requestConfig: AxiosRequestConfig = {
url,
headers,
data: body ?? formData, data: body ?? formData,
headers,
method: options.method, method: options.method,
withCredentials: config.WITH_CREDENTIALS,
signal: controller.signal, signal: controller.signal,
url,
withCredentials: config.WITH_CREDENTIALS,
}; };
onCancel(() => controller.abort()); onCancel(() => controller.abort());
for (const fn of config.interceptors.request._fns) {
requestConfig = await fn(requestConfig);
}
try { try {
return await axiosClient.request(requestConfig); return await axiosClient.request(requestConfig);
} catch (error) { } catch (error) {
@@ -260,11 +256,44 @@ export const catchErrorCodes = (
const errors: Record<number, string> = { const errors: Record<number, string> = {
400: "Bad Request", 400: "Bad Request",
401: "Unauthorized", 401: "Unauthorized",
402: "Payment Required",
403: "Forbidden", 403: "Forbidden",
404: "Not Found", 404: "Not Found",
405: "Method Not Allowed",
406: "Not Acceptable",
407: "Proxy Authentication Required",
408: "Request Timeout",
409: "Conflict",
410: "Gone",
411: "Length Required",
412: "Precondition Failed",
413: "Payload Too Large",
414: "URI Too Long",
415: "Unsupported Media Type",
416: "Range Not Satisfiable",
417: "Expectation Failed",
418: "Im a teapot",
421: "Misdirected Request",
422: "Unprocessable Content",
423: "Locked",
424: "Failed Dependency",
425: "Too Early",
426: "Upgrade Required",
428: "Precondition Required",
429: "Too Many Requests",
431: "Request Header Fields Too Large",
451: "Unavailable For Legal Reasons",
500: "Internal Server Error", 500: "Internal Server Error",
501: "Not Implemented",
502: "Bad Gateway", 502: "Bad Gateway",
503: "Service Unavailable", 503: "Service Unavailable",
504: "Gateway Timeout",
505: "HTTP Version Not Supported",
506: "Variant Also Negotiates",
507: "Insufficient Storage",
508: "Loop Detected",
510: "Not Extended",
511: "Network Authentication Required",
...options.errors, ...options.errors,
}; };
@@ -302,7 +331,7 @@ export const catchErrorCodes = (
*/ */
export const request = <T>( export const request = <T>(
config: OpenAPIConfig, config: OpenAPIConfig,
options: ApiRequestOptions, options: ApiRequestOptions<T>,
axiosClient: AxiosInstance = axios, axiosClient: AxiosInstance = axios,
): CancelablePromise<T> => { ): CancelablePromise<T> => {
return new CancelablePromise(async (resolve, reject, onCancel) => { return new CancelablePromise(async (resolve, reject, onCancel) => {
@@ -310,10 +339,10 @@ export const request = <T>(
const url = getUrl(config, options); const url = getUrl(config, options);
const formData = getFormData(options); const formData = getFormData(options);
const body = getRequestBody(options); const body = getRequestBody(options);
const headers = await getHeaders(config, options, formData); const headers = await getHeaders(config, options);
if (!onCancel.isCancelled) { if (!onCancel.isCancelled) {
const response = await sendRequest<T>( let response = await sendRequest<T>(
config, config,
options, options,
url, url,
@@ -323,18 +352,28 @@ export const request = <T>(
onCancel, onCancel,
axiosClient, axiosClient,
); );
for (const fn of config.interceptors.response._fns) {
response = await fn(response);
}
const responseBody = getResponseBody(response); const responseBody = getResponseBody(response);
const responseHeader = getResponseHeader( const responseHeader = getResponseHeader(
response, response,
options.responseHeader, options.responseHeader,
); );
let transformedBody = responseBody;
if (options.responseTransformer && isSuccess(response.status)) {
transformedBody = await options.responseTransformer(responseBody);
}
const result: ApiResult = { const result: ApiResult = {
url, url,
ok: isSuccess(response.status), ok: isSuccess(response.status),
status: response.status, status: response.status,
statusText: response.statusText, statusText: response.statusText,
body: responseHeader ?? responseBody, body: responseHeader ?? transformedBody,
}; };
catchErrorCodes(options, result); catchErrorCodes(options, result);

View File

@@ -1,14 +0,0 @@
import type { ApiResult } from "./ApiResult";
export type TResult = "body" | "raw";
export type TApiResponse<T extends TResult, TData> = Exclude<
T,
"raw"
> extends never
? ApiResult<TData>
: ApiResult<TData>["body"];
export type TConfig<T extends TResult> = {
_result?: T;
};

View File

@@ -1,59 +1,9 @@
// This file is auto-generated by @hey-api/openapi-ts
export { OpenApi } from "./OpenApi"; export { OpenApi } from "./OpenApi";
export { ApiError } from "./core/ApiError"; export { ApiError } from "./core/ApiError";
export { BaseHttpRequest } from "./core/BaseHttpRequest"; export { BaseHttpRequest } from "./core/BaseHttpRequest";
export { CancelablePromise, CancelError } from "./core/CancelablePromise"; export { CancelablePromise, CancelError } from "./core/CancelablePromise";
export { OpenAPI } from "./core/OpenAPI"; export { OpenAPI, type OpenAPIConfig } from "./core/OpenAPI";
export type { OpenAPIConfig } from "./core/OpenAPI"; export * from "./schemas.gen";
export * from "./services.gen";
export type { AudioWaveform } from "./models/AudioWaveform"; export * from "./types.gen";
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 { $AudioWaveform } from "./schemas/$AudioWaveform";
export { $Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post } from "./schemas/$Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post";
export { $CreateParticipant } from "./schemas/$CreateParticipant";
export { $CreateTranscript } from "./schemas/$CreateTranscript";
export { $DeletionStatus } from "./schemas/$DeletionStatus";
export { $GetTranscript } from "./schemas/$GetTranscript";
export { $GetTranscriptSegmentTopic } from "./schemas/$GetTranscriptSegmentTopic";
export { $GetTranscriptTopic } from "./schemas/$GetTranscriptTopic";
export { $GetTranscriptTopicWithWords } from "./schemas/$GetTranscriptTopicWithWords";
export { $GetTranscriptTopicWithWordsPerSpeaker } from "./schemas/$GetTranscriptTopicWithWordsPerSpeaker";
export { $HTTPValidationError } from "./schemas/$HTTPValidationError";
export { $Page_GetTranscript_ } from "./schemas/$Page_GetTranscript_";
export { $Participant } from "./schemas/$Participant";
export { $RtcOffer } from "./schemas/$RtcOffer";
export { $SpeakerAssignment } from "./schemas/$SpeakerAssignment";
export { $SpeakerAssignmentStatus } from "./schemas/$SpeakerAssignmentStatus";
export { $SpeakerMerge } from "./schemas/$SpeakerMerge";
export { $SpeakerWords } from "./schemas/$SpeakerWords";
export { $TranscriptParticipant } from "./schemas/$TranscriptParticipant";
export { $UpdateParticipant } from "./schemas/$UpdateParticipant";
export { $UpdateTranscript } from "./schemas/$UpdateTranscript";
export { $UserInfo } from "./schemas/$UserInfo";
export { $ValidationError } from "./schemas/$ValidationError";
export { $Word } from "./schemas/$Word";
export { DefaultService } from "./services/DefaultService";

View File

@@ -1,3 +0,0 @@
export type AudioWaveform = {
data: Array<number>;
};

View File

@@ -1,4 +0,0 @@
export type Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post =
{
file: Blob;
};

View File

@@ -1,4 +0,0 @@
export type CreateParticipant = {
speaker?: number | null;
name: string;
};

View File

@@ -1,5 +0,0 @@
export type CreateTranscript = {
name: string;
source_language?: string;
target_language?: string;
};

View File

@@ -1,3 +0,0 @@
export type DeletionStatus = {
status: string;
};

View File

@@ -1,19 +0,0 @@
import type { TranscriptParticipant } from "./TranscriptParticipant";
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<TranscriptParticipant> | null;
reviewed: boolean;
};

View File

@@ -1,5 +0,0 @@
export type GetTranscriptSegmentTopic = {
text: string;
start: number;
speaker: number;
};

View File

@@ -1,11 +0,0 @@
import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic";
export type GetTranscriptTopic = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
};

View File

@@ -1,13 +0,0 @@
import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic";
import type { Word } from "./Word";
export type GetTranscriptTopicWithWords = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
words?: Array<Word>;
};

View File

@@ -1,13 +0,0 @@
import type { GetTranscriptSegmentTopic } from "./GetTranscriptSegmentTopic";
import type { SpeakerWords } from "./SpeakerWords";
export type GetTranscriptTopicWithWordsPerSpeaker = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
words_per_speaker?: Array<SpeakerWords>;
};

View File

@@ -1,5 +0,0 @@
import type { ValidationError } from "./ValidationError";
export type HTTPValidationError = {
detail?: Array<ValidationError>;
};

View File

@@ -1,9 +0,0 @@
import type { GetTranscript } from "./GetTranscript";
export type Page_GetTranscript_ = {
items: Array<GetTranscript>;
total: number;
page: number | null;
size: number | null;
pages?: number | null;
};

View File

@@ -1,5 +0,0 @@
export type Participant = {
id: string;
speaker: number | null;
name: string;
};

View File

@@ -1,4 +0,0 @@
export type RtcOffer = {
sdp: string;
type: string;
};

View File

@@ -1,6 +0,0 @@
export type SpeakerAssignment = {
speaker?: number | null;
participant?: string | null;
timestamp_from: number;
timestamp_to: number;
};

View File

@@ -1,3 +0,0 @@
export type SpeakerAssignmentStatus = {
status: string;
};

View File

@@ -1,4 +0,0 @@
export type SpeakerMerge = {
speaker_from: number;
speaker_to: number;
};

View File

@@ -1,6 +0,0 @@
import type { Word } from "./Word";
export type SpeakerWords = {
speaker: number;
words: Array<Word>;
};

View File

@@ -1,5 +0,0 @@
export type TranscriptParticipant = {
id?: string;
speaker: number | null;
name: string;
};

View File

@@ -1,4 +0,0 @@
export type UpdateParticipant = {
speaker?: number | null;
name?: string | null;
};

View File

@@ -1,12 +0,0 @@
import type { TranscriptParticipant } from "./TranscriptParticipant";
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<TranscriptParticipant> | null;
reviewed?: boolean | null;
};

View File

@@ -1,5 +0,0 @@
export type UserInfo = {
sub: string;
email: string | null;
email_verified: boolean | null;
};

View File

@@ -1,5 +0,0 @@
export type ValidationError = {
loc: Array<string | number>;
msg: string;
type: string;
};

View File

@@ -1,6 +0,0 @@
export type Word = {
text: string;
start: number;
end: number;
speaker?: number;
};

845
www/app/api/schemas.gen.ts Normal file
View File

@@ -0,0 +1,845 @@
// This file is auto-generated by @hey-api/openapi-ts
export const $AudioWaveform = {
properties: {
data: {
items: {
type: "number",
},
type: "array",
title: "Data",
},
},
type: "object",
required: ["data"],
title: "AudioWaveform",
} as const;
export const $Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post =
{
properties: {
file: {
type: "string",
format: "binary",
title: "File",
},
},
type: "object",
required: ["file"],
title:
"Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post",
} as const;
export const $CreateParticipant = {
properties: {
speaker: {
anyOf: [
{
type: "integer",
},
{
type: "null",
},
],
title: "Speaker",
},
name: {
type: "string",
title: "Name",
},
},
type: "object",
required: ["name"],
title: "CreateParticipant",
} as const;
export const $CreateTranscript = {
properties: {
name: {
type: "string",
title: "Name",
},
source_language: {
type: "string",
title: "Source Language",
default: "en",
},
target_language: {
type: "string",
title: "Target Language",
default: "en",
},
},
type: "object",
required: ["name"],
title: "CreateTranscript",
} as const;
export const $DeletionStatus = {
properties: {
status: {
type: "string",
title: "Status",
},
},
type: "object",
required: ["status"],
title: "DeletionStatus",
} as const;
export const $GetTranscript = {
properties: {
id: {
type: "string",
title: "Id",
},
user_id: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "User Id",
},
name: {
type: "string",
title: "Name",
},
status: {
type: "string",
title: "Status",
},
locked: {
type: "boolean",
title: "Locked",
},
duration: {
type: "number",
title: "Duration",
},
title: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Title",
},
short_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Short Summary",
},
long_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Long Summary",
},
created_at: {
type: "string",
format: "date-time",
title: "Created At",
},
share_mode: {
type: "string",
title: "Share Mode",
default: "private",
},
source_language: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Source Language",
},
target_language: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Target Language",
},
participants: {
anyOf: [
{
items: {
$ref: "#/components/schemas/TranscriptParticipant",
},
type: "array",
},
{
type: "null",
},
],
title: "Participants",
},
reviewed: {
type: "boolean",
title: "Reviewed",
},
},
type: "object",
required: [
"id",
"user_id",
"name",
"status",
"locked",
"duration",
"title",
"short_summary",
"long_summary",
"created_at",
"source_language",
"target_language",
"participants",
"reviewed",
],
title: "GetTranscript",
} as const;
export const $GetTranscriptSegmentTopic = {
properties: {
text: {
type: "string",
title: "Text",
},
start: {
type: "number",
title: "Start",
},
speaker: {
type: "integer",
title: "Speaker",
},
},
type: "object",
required: ["text", "start", "speaker"],
title: "GetTranscriptSegmentTopic",
} as const;
export const $GetTranscriptTopic = {
properties: {
id: {
type: "string",
title: "Id",
},
title: {
type: "string",
title: "Title",
},
summary: {
type: "string",
title: "Summary",
},
timestamp: {
type: "number",
title: "Timestamp",
},
duration: {
anyOf: [
{
type: "number",
},
{
type: "null",
},
],
title: "Duration",
},
transcript: {
type: "string",
title: "Transcript",
},
segments: {
items: {
$ref: "#/components/schemas/GetTranscriptSegmentTopic",
},
type: "array",
title: "Segments",
default: [],
},
},
type: "object",
required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
title: "GetTranscriptTopic",
} as const;
export const $GetTranscriptTopicWithWords = {
properties: {
id: {
type: "string",
title: "Id",
},
title: {
type: "string",
title: "Title",
},
summary: {
type: "string",
title: "Summary",
},
timestamp: {
type: "number",
title: "Timestamp",
},
duration: {
anyOf: [
{
type: "number",
},
{
type: "null",
},
],
title: "Duration",
},
transcript: {
type: "string",
title: "Transcript",
},
segments: {
items: {
$ref: "#/components/schemas/GetTranscriptSegmentTopic",
},
type: "array",
title: "Segments",
default: [],
},
words: {
items: {
$ref: "#/components/schemas/Word",
},
type: "array",
title: "Words",
default: [],
},
},
type: "object",
required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
title: "GetTranscriptTopicWithWords",
} as const;
export const $GetTranscriptTopicWithWordsPerSpeaker = {
properties: {
id: {
type: "string",
title: "Id",
},
title: {
type: "string",
title: "Title",
},
summary: {
type: "string",
title: "Summary",
},
timestamp: {
type: "number",
title: "Timestamp",
},
duration: {
anyOf: [
{
type: "number",
},
{
type: "null",
},
],
title: "Duration",
},
transcript: {
type: "string",
title: "Transcript",
},
segments: {
items: {
$ref: "#/components/schemas/GetTranscriptSegmentTopic",
},
type: "array",
title: "Segments",
default: [],
},
words_per_speaker: {
items: {
$ref: "#/components/schemas/SpeakerWords",
},
type: "array",
title: "Words Per Speaker",
default: [],
},
},
type: "object",
required: ["id", "title", "summary", "timestamp", "duration", "transcript"],
title: "GetTranscriptTopicWithWordsPerSpeaker",
} as const;
export const $HTTPValidationError = {
properties: {
detail: {
items: {
$ref: "#/components/schemas/ValidationError",
},
type: "array",
title: "Detail",
},
},
type: "object",
title: "HTTPValidationError",
} as const;
export const $Page_GetTranscript_ = {
properties: {
items: {
items: {
$ref: "#/components/schemas/GetTranscript",
},
type: "array",
title: "Items",
},
total: {
type: "integer",
minimum: 0,
title: "Total",
},
page: {
anyOf: [
{
type: "integer",
minimum: 1,
},
{
type: "null",
},
],
title: "Page",
},
size: {
anyOf: [
{
type: "integer",
minimum: 1,
},
{
type: "null",
},
],
title: "Size",
},
pages: {
anyOf: [
{
type: "integer",
minimum: 0,
},
{
type: "null",
},
],
title: "Pages",
},
},
type: "object",
required: ["items", "total", "page", "size"],
title: "Page[GetTranscript]",
} as const;
export const $Participant = {
properties: {
id: {
type: "string",
title: "Id",
},
speaker: {
anyOf: [
{
type: "integer",
},
{
type: "null",
},
],
title: "Speaker",
},
name: {
type: "string",
title: "Name",
},
},
type: "object",
required: ["id", "speaker", "name"],
title: "Participant",
} as const;
export const $RtcOffer = {
properties: {
sdp: {
type: "string",
title: "Sdp",
},
type: {
type: "string",
title: "Type",
},
},
type: "object",
required: ["sdp", "type"],
title: "RtcOffer",
} as const;
export const $SpeakerAssignment = {
properties: {
speaker: {
anyOf: [
{
type: "integer",
minimum: 0,
},
{
type: "null",
},
],
title: "Speaker",
},
participant: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Participant",
},
timestamp_from: {
type: "number",
title: "Timestamp From",
},
timestamp_to: {
type: "number",
title: "Timestamp To",
},
},
type: "object",
required: ["timestamp_from", "timestamp_to"],
title: "SpeakerAssignment",
} as const;
export const $SpeakerAssignmentStatus = {
properties: {
status: {
type: "string",
title: "Status",
},
},
type: "object",
required: ["status"],
title: "SpeakerAssignmentStatus",
} as const;
export const $SpeakerMerge = {
properties: {
speaker_from: {
type: "integer",
title: "Speaker From",
},
speaker_to: {
type: "integer",
title: "Speaker To",
},
},
type: "object",
required: ["speaker_from", "speaker_to"],
title: "SpeakerMerge",
} as const;
export const $SpeakerWords = {
properties: {
speaker: {
type: "integer",
title: "Speaker",
},
words: {
items: {
$ref: "#/components/schemas/Word",
},
type: "array",
title: "Words",
},
},
type: "object",
required: ["speaker", "words"],
title: "SpeakerWords",
} as const;
export const $TranscriptParticipant = {
properties: {
id: {
type: "string",
title: "Id",
},
speaker: {
anyOf: [
{
type: "integer",
},
{
type: "null",
},
],
title: "Speaker",
},
name: {
type: "string",
title: "Name",
},
},
type: "object",
required: ["speaker", "name"],
title: "TranscriptParticipant",
} as const;
export const $UpdateParticipant = {
properties: {
speaker: {
anyOf: [
{
type: "integer",
},
{
type: "null",
},
],
title: "Speaker",
},
name: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Name",
},
},
type: "object",
title: "UpdateParticipant",
} as const;
export const $UpdateTranscript = {
properties: {
name: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Name",
},
locked: {
anyOf: [
{
type: "boolean",
},
{
type: "null",
},
],
title: "Locked",
},
title: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Title",
},
short_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Short Summary",
},
long_summary: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Long Summary",
},
share_mode: {
anyOf: [
{
type: "string",
enum: ["public", "semi-private", "private"],
},
{
type: "null",
},
],
title: "Share Mode",
},
participants: {
anyOf: [
{
items: {
$ref: "#/components/schemas/TranscriptParticipant",
},
type: "array",
},
{
type: "null",
},
],
title: "Participants",
},
reviewed: {
anyOf: [
{
type: "boolean",
},
{
type: "null",
},
],
title: "Reviewed",
},
},
type: "object",
title: "UpdateTranscript",
} as const;
export const $UserInfo = {
properties: {
sub: {
type: "string",
title: "Sub",
},
email: {
anyOf: [
{
type: "string",
},
{
type: "null",
},
],
title: "Email",
},
email_verified: {
anyOf: [
{
type: "boolean",
},
{
type: "null",
},
],
title: "Email Verified",
},
},
type: "object",
required: ["sub", "email", "email_verified"],
title: "UserInfo",
} as const;
export const $ValidationError = {
properties: {
loc: {
items: {
anyOf: [
{
type: "string",
},
{
type: "integer",
},
],
},
type: "array",
title: "Location",
},
msg: {
type: "string",
title: "Message",
},
type: {
type: "string",
title: "Error Type",
},
},
type: "object",
required: ["loc", "msg", "type"],
title: "ValidationError",
} as const;
export const $Word = {
properties: {
text: {
type: "string",
title: "Text",
},
start: {
type: "number",
title: "Start",
},
end: {
type: "number",
title: "End",
},
speaker: {
type: "integer",
title: "Speaker",
default: 0,
},
},
type: "object",
required: ["text", "start", "end"],
title: "Word",
} as const;

View File

@@ -1,11 +0,0 @@
export const $AudioWaveform = {
properties: {
data: {
type: "array",
contains: {
type: "number",
},
isRequired: true,
},
},
} as const;

View File

@@ -1,10 +0,0 @@
export const $Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post =
{
properties: {
file: {
type: "binary",
isRequired: true,
format: "binary",
},
},
} as const;

View File

@@ -1,19 +0,0 @@
export const $CreateParticipant = {
properties: {
speaker: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
},
name: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,14 +0,0 @@
export const $CreateTranscript = {
properties: {
name: {
type: "string",
isRequired: true,
},
source_language: {
type: "string",
},
target_language: {
type: "string",
},
},
} as const;

View File

@@ -1,8 +0,0 @@
export const $DeletionStatus = {
properties: {
status: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,123 +0,0 @@
export const $GetTranscript = {
properties: {
id: {
type: "string",
isRequired: true,
},
user_id: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
name: {
type: "string",
isRequired: true,
},
status: {
type: "string",
isRequired: true,
},
locked: {
type: "boolean",
isRequired: true,
},
duration: {
type: "number",
isRequired: true,
},
title: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
short_summary: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
long_summary: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
created_at: {
type: "string",
isRequired: true,
format: "date-time",
},
share_mode: {
type: "string",
},
source_language: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
target_language: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
participants: {
type: "any-of",
contains: [
{
type: "array",
contains: {
type: "TranscriptParticipant",
},
},
{
type: "null",
},
],
isRequired: true,
},
reviewed: {
type: "boolean",
isRequired: true,
},
},
} as const;

View File

@@ -1,16 +0,0 @@
export const $GetTranscriptSegmentTopic = {
properties: {
text: {
type: "string",
isRequired: true,
},
start: {
type: "number",
isRequired: true,
},
speaker: {
type: "number",
isRequired: true,
},
},
} as const;

View File

@@ -1,42 +0,0 @@
export const $GetTranscriptTopic = {
properties: {
id: {
type: "string",
isRequired: true,
},
title: {
type: "string",
isRequired: true,
},
summary: {
type: "string",
isRequired: true,
},
timestamp: {
type: "number",
isRequired: true,
},
duration: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
isRequired: true,
},
transcript: {
type: "string",
isRequired: true,
},
segments: {
type: "array",
contains: {
type: "GetTranscriptSegmentTopic",
},
},
},
} as const;

View File

@@ -1,48 +0,0 @@
export const $GetTranscriptTopicWithWords = {
properties: {
id: {
type: "string",
isRequired: true,
},
title: {
type: "string",
isRequired: true,
},
summary: {
type: "string",
isRequired: true,
},
timestamp: {
type: "number",
isRequired: true,
},
duration: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
isRequired: true,
},
transcript: {
type: "string",
isRequired: true,
},
segments: {
type: "array",
contains: {
type: "GetTranscriptSegmentTopic",
},
},
words: {
type: "array",
contains: {
type: "Word",
},
},
},
} as const;

View File

@@ -1,48 +0,0 @@
export const $GetTranscriptTopicWithWordsPerSpeaker = {
properties: {
id: {
type: "string",
isRequired: true,
},
title: {
type: "string",
isRequired: true,
},
summary: {
type: "string",
isRequired: true,
},
timestamp: {
type: "number",
isRequired: true,
},
duration: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
isRequired: true,
},
transcript: {
type: "string",
isRequired: true,
},
segments: {
type: "array",
contains: {
type: "GetTranscriptSegmentTopic",
},
},
words_per_speaker: {
type: "array",
contains: {
type: "SpeakerWords",
},
},
},
} as const;

View File

@@ -1,10 +0,0 @@
export const $HTTPValidationError = {
properties: {
detail: {
type: "array",
contains: {
type: "ValidationError",
},
},
},
} as const;

View File

@@ -1,52 +0,0 @@
export const $Page_GetTranscript_ = {
properties: {
items: {
type: "array",
contains: {
type: "GetTranscript",
},
isRequired: true,
},
total: {
type: "number",
isRequired: true,
},
page: {
type: "any-of",
contains: [
{
type: "number",
minimum: 1,
},
{
type: "null",
},
],
isRequired: true,
},
size: {
type: "any-of",
contains: [
{
type: "number",
minimum: 1,
},
{
type: "null",
},
],
isRequired: true,
},
pages: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
},
},
} as const;

View File

@@ -1,24 +0,0 @@
export const $Participant = {
properties: {
id: {
type: "string",
isRequired: true,
},
speaker: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
isRequired: true,
},
name: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,12 +0,0 @@
export const $RtcOffer = {
properties: {
sdp: {
type: "string",
isRequired: true,
},
type: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,34 +0,0 @@
export const $SpeakerAssignment = {
properties: {
speaker: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
},
participant: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
timestamp_from: {
type: "number",
isRequired: true,
},
timestamp_to: {
type: "number",
isRequired: true,
},
},
} as const;

View File

@@ -1,8 +0,0 @@
export const $SpeakerAssignmentStatus = {
properties: {
status: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,12 +0,0 @@
export const $SpeakerMerge = {
properties: {
speaker_from: {
type: "number",
isRequired: true,
},
speaker_to: {
type: "number",
isRequired: true,
},
},
} as const;

View File

@@ -1,15 +0,0 @@
export const $SpeakerWords = {
properties: {
speaker: {
type: "number",
isRequired: true,
},
words: {
type: "array",
contains: {
type: "Word",
},
isRequired: true,
},
},
} as const;

View File

@@ -1,23 +0,0 @@
export const $TranscriptParticipant = {
properties: {
id: {
type: "string",
},
speaker: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
isRequired: true,
},
name: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,26 +0,0 @@
export const $UpdateParticipant = {
properties: {
speaker: {
type: "any-of",
contains: [
{
type: "number",
},
{
type: "null",
},
],
},
name: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
},
} as const;

View File

@@ -1,95 +0,0 @@
export const $UpdateTranscript = {
properties: {
name: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
locked: {
type: "any-of",
contains: [
{
type: "boolean",
},
{
type: "null",
},
],
},
title: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
short_summary: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
long_summary: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
},
share_mode: {
type: "any-of",
contains: [
{
type: "Enum",
},
{
type: "null",
},
],
},
participants: {
type: "any-of",
contains: [
{
type: "array",
contains: {
type: "TranscriptParticipant",
},
},
{
type: "null",
},
],
},
reviewed: {
type: "any-of",
contains: [
{
type: "boolean",
},
{
type: "null",
},
],
},
},
} as const;

View File

@@ -1,32 +0,0 @@
export const $UserInfo = {
properties: {
sub: {
type: "string",
isRequired: true,
},
email: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "null",
},
],
isRequired: true,
},
email_verified: {
type: "any-of",
contains: [
{
type: "boolean",
},
{
type: "null",
},
],
isRequired: true,
},
},
} as const;

View File

@@ -1,27 +0,0 @@
export const $ValidationError = {
properties: {
loc: {
type: "array",
contains: {
type: "any-of",
contains: [
{
type: "string",
},
{
type: "number",
},
],
},
isRequired: true,
},
msg: {
type: "string",
isRequired: true,
},
type: {
type: "string",
isRequired: true,
},
},
} as const;

View File

@@ -1,19 +0,0 @@
export const $Word = {
properties: {
text: {
type: "string",
isRequired: true,
},
start: {
type: "number",
isRequired: true,
},
end: {
type: "number",
isRequired: true,
},
speaker: {
type: "number",
},
},
} as const;

579
www/app/api/services.gen.ts Normal file
View File

@@ -0,0 +1,579 @@
// This file is auto-generated by @hey-api/openapi-ts
import type { CancelablePromise } from "./core/CancelablePromise";
import type { BaseHttpRequest } from "./core/BaseHttpRequest";
import type {
MetricsResponse,
V1TranscriptsListData,
V1TranscriptsListResponse,
V1TranscriptsCreateData,
V1TranscriptsCreateResponse,
V1TranscriptGetData,
V1TranscriptGetResponse,
V1TranscriptUpdateData,
V1TranscriptUpdateResponse,
V1TranscriptDeleteData,
V1TranscriptDeleteResponse,
V1TranscriptGetTopicsData,
V1TranscriptGetTopicsResponse,
V1TranscriptGetTopicsWithWordsData,
V1TranscriptGetTopicsWithWordsResponse,
V1TranscriptGetTopicsWithWordsPerSpeakerData,
V1TranscriptGetTopicsWithWordsPerSpeakerResponse,
V1TranscriptHeadAudioMp3Data,
V1TranscriptHeadAudioMp3Response,
V1TranscriptGetAudioMp3Data,
V1TranscriptGetAudioMp3Response,
V1TranscriptGetAudioWaveformData,
V1TranscriptGetAudioWaveformResponse,
V1TranscriptGetParticipantsData,
V1TranscriptGetParticipantsResponse,
V1TranscriptAddParticipantData,
V1TranscriptAddParticipantResponse,
V1TranscriptGetParticipantData,
V1TranscriptGetParticipantResponse,
V1TranscriptUpdateParticipantData,
V1TranscriptUpdateParticipantResponse,
V1TranscriptDeleteParticipantData,
V1TranscriptDeleteParticipantResponse,
V1TranscriptAssignSpeakerData,
V1TranscriptAssignSpeakerResponse,
V1TranscriptMergeSpeakerData,
V1TranscriptMergeSpeakerResponse,
V1TranscriptRecordUploadData,
V1TranscriptRecordUploadResponse,
V1TranscriptGetWebsocketEventsData,
V1TranscriptGetWebsocketEventsResponse,
V1TranscriptRecordWebrtcData,
V1TranscriptRecordWebrtcResponse,
V1UserMeResponse,
} from "./types.gen";
export class DefaultService {
constructor(public readonly httpRequest: BaseHttpRequest) {}
/**
* Metrics
* Endpoint that serves Prometheus metrics.
* @returns unknown Successful Response
* @throws ApiError
*/
public metrics(): CancelablePromise<MetricsResponse> {
return this.httpRequest.request({
method: "GET",
url: "/metrics",
});
}
/**
* Transcripts List
* @param data The data for the request.
* @param data.page Page number
* @param data.size Page size
* @returns Page_GetTranscript_ Successful Response
* @throws ApiError
*/
public v1TranscriptsList(
data: V1TranscriptsListData = {},
): CancelablePromise<V1TranscriptsListResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts",
query: {
page: data.page,
size: data.size,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcripts Create
* @param data The data for the request.
* @param data.requestBody
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptsCreate(
data: V1TranscriptsCreateData,
): CancelablePromise<V1TranscriptsCreateResponse> {
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts",
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get
* @param data The data for the request.
* @param data.transcriptId
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptGet(
data: V1TranscriptGetData,
): CancelablePromise<V1TranscriptGetResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Update
* @param data The data for the request.
* @param data.transcriptId
* @param data.requestBody
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptUpdate(
data: V1TranscriptUpdateData,
): CancelablePromise<V1TranscriptUpdateResponse> {
return this.httpRequest.request({
method: "PATCH",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: data.transcriptId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Delete
* @param data The data for the request.
* @param data.transcriptId
* @returns DeletionStatus Successful Response
* @throws ApiError
*/
public v1TranscriptDelete(
data: V1TranscriptDeleteData,
): CancelablePromise<V1TranscriptDeleteResponse> {
return this.httpRequest.request({
method: "DELETE",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Topics
* @param data The data for the request.
* @param data.transcriptId
* @returns GetTranscriptTopic Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopics(
data: V1TranscriptGetTopicsData,
): CancelablePromise<V1TranscriptGetTopicsResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/topics",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Topics With Words
* @param data The data for the request.
* @param data.transcriptId
* @returns GetTranscriptTopicWithWords Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopicsWithWords(
data: V1TranscriptGetTopicsWithWordsData,
): CancelablePromise<V1TranscriptGetTopicsWithWordsResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/topics/with-words",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Topics With Words Per Speaker
* @param data The data for the request.
* @param data.transcriptId
* @param data.topicId
* @returns GetTranscriptTopicWithWordsPerSpeaker Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopicsWithWordsPerSpeaker(
data: V1TranscriptGetTopicsWithWordsPerSpeakerData,
): CancelablePromise<V1TranscriptGetTopicsWithWordsPerSpeakerResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker",
path: {
transcript_id: data.transcriptId,
topic_id: data.topicId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Audio Mp3
* @param data The data for the request.
* @param data.transcriptId
* @param data.token
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptHeadAudioMp3(
data: V1TranscriptHeadAudioMp3Data,
): CancelablePromise<V1TranscriptHeadAudioMp3Response> {
return this.httpRequest.request({
method: "HEAD",
url: "/v1/transcripts/{transcript_id}/audio/mp3",
path: {
transcript_id: data.transcriptId,
},
query: {
token: data.token,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Audio Mp3
* @param data The data for the request.
* @param data.transcriptId
* @param data.token
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptGetAudioMp3(
data: V1TranscriptGetAudioMp3Data,
): CancelablePromise<V1TranscriptGetAudioMp3Response> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/audio/mp3",
path: {
transcript_id: data.transcriptId,
},
query: {
token: data.token,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Audio Waveform
* @param data The data for the request.
* @param data.transcriptId
* @returns AudioWaveform Successful Response
* @throws ApiError
*/
public v1TranscriptGetAudioWaveform(
data: V1TranscriptGetAudioWaveformData,
): CancelablePromise<V1TranscriptGetAudioWaveformResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/audio/waveform",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Participants
* @param data The data for the request.
* @param data.transcriptId
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptGetParticipants(
data: V1TranscriptGetParticipantsData,
): CancelablePromise<V1TranscriptGetParticipantsResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/participants",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Add Participant
* @param data The data for the request.
* @param data.transcriptId
* @param data.requestBody
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptAddParticipant(
data: V1TranscriptAddParticipantData,
): CancelablePromise<V1TranscriptAddParticipantResponse> {
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts/{transcript_id}/participants",
path: {
transcript_id: data.transcriptId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Participant
* @param data The data for the request.
* @param data.transcriptId
* @param data.participantId
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptGetParticipant(
data: V1TranscriptGetParticipantData,
): CancelablePromise<V1TranscriptGetParticipantResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/participants/{participant_id}",
path: {
transcript_id: data.transcriptId,
participant_id: data.participantId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Update Participant
* @param data The data for the request.
* @param data.transcriptId
* @param data.participantId
* @param data.requestBody
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptUpdateParticipant(
data: V1TranscriptUpdateParticipantData,
): CancelablePromise<V1TranscriptUpdateParticipantResponse> {
return this.httpRequest.request({
method: "PATCH",
url: "/v1/transcripts/{transcript_id}/participants/{participant_id}",
path: {
transcript_id: data.transcriptId,
participant_id: data.participantId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Delete Participant
* @param data The data for the request.
* @param data.transcriptId
* @param data.participantId
* @returns DeletionStatus Successful Response
* @throws ApiError
*/
public v1TranscriptDeleteParticipant(
data: V1TranscriptDeleteParticipantData,
): CancelablePromise<V1TranscriptDeleteParticipantResponse> {
return this.httpRequest.request({
method: "DELETE",
url: "/v1/transcripts/{transcript_id}/participants/{participant_id}",
path: {
transcript_id: data.transcriptId,
participant_id: data.participantId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Assign Speaker
* @param data The data for the request.
* @param data.transcriptId
* @param data.requestBody
* @returns SpeakerAssignmentStatus Successful Response
* @throws ApiError
*/
public v1TranscriptAssignSpeaker(
data: V1TranscriptAssignSpeakerData,
): CancelablePromise<V1TranscriptAssignSpeakerResponse> {
return this.httpRequest.request({
method: "PATCH",
url: "/v1/transcripts/{transcript_id}/speaker/assign",
path: {
transcript_id: data.transcriptId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Merge Speaker
* @param data The data for the request.
* @param data.transcriptId
* @param data.requestBody
* @returns SpeakerAssignmentStatus Successful Response
* @throws ApiError
*/
public v1TranscriptMergeSpeaker(
data: V1TranscriptMergeSpeakerData,
): CancelablePromise<V1TranscriptMergeSpeakerResponse> {
return this.httpRequest.request({
method: "PATCH",
url: "/v1/transcripts/{transcript_id}/speaker/merge",
path: {
transcript_id: data.transcriptId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Record Upload
* @param data The data for the request.
* @param data.transcriptId
* @param data.formData
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptRecordUpload(
data: V1TranscriptRecordUploadData,
): CancelablePromise<V1TranscriptRecordUploadResponse> {
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts/{transcript_id}/record/upload",
path: {
transcript_id: data.transcriptId,
},
formData: data.formData,
mediaType: "multipart/form-data",
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Get Websocket Events
* @param data The data for the request.
* @param data.transcriptId
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptGetWebsocketEvents(
data: V1TranscriptGetWebsocketEventsData,
): CancelablePromise<V1TranscriptGetWebsocketEventsResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/events",
path: {
transcript_id: data.transcriptId,
},
errors: {
422: "Validation Error",
},
});
}
/**
* Transcript Record Webrtc
* @param data The data for the request.
* @param data.transcriptId
* @param data.requestBody
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptRecordWebrtc(
data: V1TranscriptRecordWebrtcData,
): CancelablePromise<V1TranscriptRecordWebrtcResponse> {
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts/{transcript_id}/record/webrtc",
path: {
transcript_id: data.transcriptId,
},
body: data.requestBody,
mediaType: "application/json",
errors: {
422: "Validation Error",
},
});
}
/**
* User Me
* @returns unknown Successful Response
* @throws ApiError
*/
public v1UserMe(): CancelablePromise<V1UserMeResponse> {
return this.httpRequest.request({
method: "GET",
url: "/v1/me",
});
}
}

View File

@@ -1,598 +0,0 @@
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 type { BaseHttpRequest } from "../core/BaseHttpRequest";
export type TDataV1TranscriptsList = {
/**
* Page number
*/
page?: number;
/**
* Page size
*/
size?: number;
};
export type TDataV1TranscriptsCreate = {
requestBody: CreateTranscript;
};
export type TDataV1TranscriptGet = {
transcriptId: string;
};
export type TDataV1TranscriptUpdate = {
requestBody: UpdateTranscript;
transcriptId: string;
};
export type TDataV1TranscriptDelete = {
transcriptId: string;
};
export type TDataV1TranscriptGetTopics = {
transcriptId: string;
};
export type TDataV1TranscriptGetTopicsWithWords = {
transcriptId: string;
};
export type TDataV1TranscriptGetTopicsWithWordsPerSpeaker = {
topicId: string;
transcriptId: string;
};
export type TDataV1TranscriptHeadAudioMp3 = {
token?: string | null;
transcriptId: string;
};
export type TDataV1TranscriptGetAudioMp3 = {
token?: string | null;
transcriptId: string;
};
export type TDataV1TranscriptGetAudioWaveform = {
transcriptId: string;
};
export type TDataV1TranscriptGetParticipants = {
transcriptId: string;
};
export type TDataV1TranscriptAddParticipant = {
requestBody: CreateParticipant;
transcriptId: string;
};
export type TDataV1TranscriptGetParticipant = {
participantId: string;
transcriptId: string;
};
export type TDataV1TranscriptUpdateParticipant = {
participantId: string;
requestBody: UpdateParticipant;
transcriptId: string;
};
export type TDataV1TranscriptDeleteParticipant = {
participantId: string;
transcriptId: string;
};
export type TDataV1TranscriptAssignSpeaker = {
requestBody: SpeakerAssignment;
transcriptId: string;
};
export type TDataV1TranscriptMergeSpeaker = {
requestBody: SpeakerMerge;
transcriptId: string;
};
export type TDataV1TranscriptRecordUpload = {
formData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post;
transcriptId: string;
};
export type TDataV1TranscriptGetWebsocketEvents = {
transcriptId: string;
};
export type TDataV1TranscriptRecordWebrtc = {
requestBody: RtcOffer;
transcriptId: string;
};
export class DefaultService {
constructor(public readonly httpRequest: BaseHttpRequest) {}
/**
* Metrics
* Endpoint that serves Prometheus metrics.
* @returns unknown Successful Response
* @throws ApiError
*/
public metrics(): CancelablePromise<unknown> {
return this.httpRequest.request({
method: "GET",
url: "/metrics",
});
}
/**
* Transcripts List
* @returns Page_GetTranscript_ Successful Response
* @throws ApiError
*/
public v1TranscriptsList(
data: TDataV1TranscriptsList = {},
): CancelablePromise<Page_GetTranscript_> {
const { page = 1, size = 50 } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts",
query: {
page,
size,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcripts Create
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptsCreate(
data: TDataV1TranscriptsCreate,
): CancelablePromise<GetTranscript> {
const { requestBody } = data;
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts",
body: requestBody,
mediaType: "application/json",
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptGet(
data: TDataV1TranscriptGet,
): CancelablePromise<GetTranscript> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Update
* @returns GetTranscript Successful Response
* @throws ApiError
*/
public v1TranscriptUpdate(
data: TDataV1TranscriptUpdate,
): CancelablePromise<GetTranscript> {
const { requestBody, transcriptId } = data;
return this.httpRequest.request({
method: "PATCH",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: transcriptId,
},
body: requestBody,
mediaType: "application/json",
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Delete
* @returns DeletionStatus Successful Response
* @throws ApiError
*/
public v1TranscriptDelete(
data: TDataV1TranscriptDelete,
): CancelablePromise<DeletionStatus> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "DELETE",
url: "/v1/transcripts/{transcript_id}",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Topics
* @returns GetTranscriptTopic Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopics(
data: TDataV1TranscriptGetTopics,
): CancelablePromise<Array<GetTranscriptTopic>> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/topics",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Topics With Words
* @returns GetTranscriptTopicWithWords Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopicsWithWords(
data: TDataV1TranscriptGetTopicsWithWords,
): CancelablePromise<Array<GetTranscriptTopicWithWords>> {
const { transcriptId } = data;
return this.httpRequest.request({
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
* @returns GetTranscriptTopicWithWordsPerSpeaker Successful Response
* @throws ApiError
*/
public v1TranscriptGetTopicsWithWordsPerSpeaker(
data: TDataV1TranscriptGetTopicsWithWordsPerSpeaker,
): CancelablePromise<GetTranscriptTopicWithWordsPerSpeaker> {
const { topicId, transcriptId } = data;
return this.httpRequest.request({
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
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptHeadAudioMp3(
data: TDataV1TranscriptHeadAudioMp3,
): CancelablePromise<unknown> {
const { token, transcriptId } = data;
return this.httpRequest.request({
method: "HEAD",
url: "/v1/transcripts/{transcript_id}/audio/mp3",
path: {
transcript_id: transcriptId,
},
query: {
token,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Audio Mp3
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptGetAudioMp3(
data: TDataV1TranscriptGetAudioMp3,
): CancelablePromise<unknown> {
const { token, transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/audio/mp3",
path: {
transcript_id: transcriptId,
},
query: {
token,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Audio Waveform
* @returns AudioWaveform Successful Response
* @throws ApiError
*/
public v1TranscriptGetAudioWaveform(
data: TDataV1TranscriptGetAudioWaveform,
): CancelablePromise<AudioWaveform> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/audio/waveform",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Participants
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptGetParticipants(
data: TDataV1TranscriptGetParticipants,
): CancelablePromise<Array<Participant>> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/participants",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Add Participant
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptAddParticipant(
data: TDataV1TranscriptAddParticipant,
): CancelablePromise<Participant> {
const { requestBody, transcriptId } = data;
return this.httpRequest.request({
method: "POST",
url: "/v1/transcripts/{transcript_id}/participants",
path: {
transcript_id: transcriptId,
},
body: requestBody,
mediaType: "application/json",
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Get Participant
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptGetParticipant(
data: TDataV1TranscriptGetParticipant,
): CancelablePromise<Participant> {
const { participantId, transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/participants/{participant_id}",
path: {
transcript_id: transcriptId,
participant_id: participantId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Update Participant
* @returns Participant Successful Response
* @throws ApiError
*/
public v1TranscriptUpdateParticipant(
data: TDataV1TranscriptUpdateParticipant,
): CancelablePromise<Participant> {
const { participantId, requestBody, transcriptId } = data;
return this.httpRequest.request({
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
* @returns DeletionStatus Successful Response
* @throws ApiError
*/
public v1TranscriptDeleteParticipant(
data: TDataV1TranscriptDeleteParticipant,
): CancelablePromise<DeletionStatus> {
const { participantId, transcriptId } = data;
return this.httpRequest.request({
method: "DELETE",
url: "/v1/transcripts/{transcript_id}/participants/{participant_id}",
path: {
transcript_id: transcriptId,
participant_id: participantId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Assign Speaker
* @returns SpeakerAssignmentStatus Successful Response
* @throws ApiError
*/
public v1TranscriptAssignSpeaker(
data: TDataV1TranscriptAssignSpeaker,
): CancelablePromise<SpeakerAssignmentStatus> {
const { requestBody, transcriptId } = data;
return this.httpRequest.request({
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
* @returns SpeakerAssignmentStatus Successful Response
* @throws ApiError
*/
public v1TranscriptMergeSpeaker(
data: TDataV1TranscriptMergeSpeaker,
): CancelablePromise<SpeakerAssignmentStatus> {
const { requestBody, transcriptId } = data;
return this.httpRequest.request({
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
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptRecordUpload(
data: TDataV1TranscriptRecordUpload,
): CancelablePromise<unknown> {
const { formData, transcriptId } = data;
return this.httpRequest.request({
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
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptGetWebsocketEvents(
data: TDataV1TranscriptGetWebsocketEvents,
): CancelablePromise<unknown> {
const { transcriptId } = data;
return this.httpRequest.request({
method: "GET",
url: "/v1/transcripts/{transcript_id}/events",
path: {
transcript_id: transcriptId,
},
errors: {
422: `Validation Error`,
},
});
}
/**
* Transcript Record Webrtc
* @returns unknown Successful Response
* @throws ApiError
*/
public v1TranscriptRecordWebrtc(
data: TDataV1TranscriptRecordWebrtc,
): CancelablePromise<unknown> {
const { requestBody, transcriptId } = data;
return this.httpRequest.request({
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 unknown Successful Response
* @throws ApiError
*/
public v1UserMe(): CancelablePromise<UserInfo | null> {
return this.httpRequest.request({
method: "GET",
url: "/v1/me",
});
}
}

642
www/app/api/types.gen.ts Normal file
View File

@@ -0,0 +1,642 @@
// This file is auto-generated by @hey-api/openapi-ts
export type AudioWaveform = {
data: Array<number>;
};
export type Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post =
{
file: Blob | File;
};
export type CreateParticipant = {
speaker?: number | null;
name: string;
};
export type CreateTranscript = {
name: string;
source_language?: string;
target_language?: string;
};
export type DeletionStatus = {
status: string;
};
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<TranscriptParticipant> | null;
reviewed: boolean;
};
export type GetTranscriptSegmentTopic = {
text: string;
start: number;
speaker: number;
};
export type GetTranscriptTopic = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
};
export type GetTranscriptTopicWithWords = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
words?: Array<Word>;
};
export type GetTranscriptTopicWithWordsPerSpeaker = {
id: string;
title: string;
summary: string;
timestamp: number;
duration: number | null;
transcript: string;
segments?: Array<GetTranscriptSegmentTopic>;
words_per_speaker?: Array<SpeakerWords>;
};
export type HTTPValidationError = {
detail?: Array<ValidationError>;
};
export type Page_GetTranscript_ = {
items: Array<GetTranscript>;
total: number;
page: number | null;
size: number | null;
pages?: number | null;
};
export type Participant = {
id: string;
speaker: number | null;
name: string;
};
export type RtcOffer = {
sdp: string;
type: string;
};
export type SpeakerAssignment = {
speaker?: number | null;
participant?: string | null;
timestamp_from: number;
timestamp_to: number;
};
export type SpeakerAssignmentStatus = {
status: string;
};
export type SpeakerMerge = {
speaker_from: number;
speaker_to: number;
};
export type SpeakerWords = {
speaker: number;
words: Array<Word>;
};
export type TranscriptParticipant = {
id?: string;
speaker: number | null;
name: string;
};
export type UpdateParticipant = {
speaker?: number | null;
name?: string | null;
};
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<TranscriptParticipant> | null;
reviewed?: boolean | null;
};
export type UserInfo = {
sub: string;
email: string | null;
email_verified: boolean | null;
};
export type ValidationError = {
loc: Array<string | number>;
msg: string;
type: string;
};
export type Word = {
text: string;
start: number;
end: number;
speaker?: number;
};
export type MetricsResponse = unknown;
export type V1TranscriptsListData = {
/**
* Page number
*/
page?: number;
/**
* Page size
*/
size?: number;
};
export type V1TranscriptsListResponse = Page_GetTranscript_;
export type V1TranscriptsCreateData = {
requestBody: CreateTranscript;
};
export type V1TranscriptsCreateResponse = GetTranscript;
export type V1TranscriptGetData = {
transcriptId: string;
};
export type V1TranscriptGetResponse = GetTranscript;
export type V1TranscriptUpdateData = {
requestBody: UpdateTranscript;
transcriptId: string;
};
export type V1TranscriptUpdateResponse = GetTranscript;
export type V1TranscriptDeleteData = {
transcriptId: string;
};
export type V1TranscriptDeleteResponse = DeletionStatus;
export type V1TranscriptGetTopicsData = {
transcriptId: string;
};
export type V1TranscriptGetTopicsResponse = Array<GetTranscriptTopic>;
export type V1TranscriptGetTopicsWithWordsData = {
transcriptId: string;
};
export type V1TranscriptGetTopicsWithWordsResponse =
Array<GetTranscriptTopicWithWords>;
export type V1TranscriptGetTopicsWithWordsPerSpeakerData = {
topicId: string;
transcriptId: string;
};
export type V1TranscriptGetTopicsWithWordsPerSpeakerResponse =
GetTranscriptTopicWithWordsPerSpeaker;
export type V1TranscriptHeadAudioMp3Data = {
token?: string | null;
transcriptId: string;
};
export type V1TranscriptHeadAudioMp3Response = unknown;
export type V1TranscriptGetAudioMp3Data = {
token?: string | null;
transcriptId: string;
};
export type V1TranscriptGetAudioMp3Response = unknown;
export type V1TranscriptGetAudioWaveformData = {
transcriptId: string;
};
export type V1TranscriptGetAudioWaveformResponse = AudioWaveform;
export type V1TranscriptGetParticipantsData = {
transcriptId: string;
};
export type V1TranscriptGetParticipantsResponse = Array<Participant>;
export type V1TranscriptAddParticipantData = {
requestBody: CreateParticipant;
transcriptId: string;
};
export type V1TranscriptAddParticipantResponse = Participant;
export type V1TranscriptGetParticipantData = {
participantId: string;
transcriptId: string;
};
export type V1TranscriptGetParticipantResponse = Participant;
export type V1TranscriptUpdateParticipantData = {
participantId: string;
requestBody: UpdateParticipant;
transcriptId: string;
};
export type V1TranscriptUpdateParticipantResponse = Participant;
export type V1TranscriptDeleteParticipantData = {
participantId: string;
transcriptId: string;
};
export type V1TranscriptDeleteParticipantResponse = DeletionStatus;
export type V1TranscriptAssignSpeakerData = {
requestBody: SpeakerAssignment;
transcriptId: string;
};
export type V1TranscriptAssignSpeakerResponse = SpeakerAssignmentStatus;
export type V1TranscriptMergeSpeakerData = {
requestBody: SpeakerMerge;
transcriptId: string;
};
export type V1TranscriptMergeSpeakerResponse = SpeakerAssignmentStatus;
export type V1TranscriptRecordUploadData = {
formData: Body_transcript_record_upload_v1_transcripts__transcript_id__record_upload_post;
transcriptId: string;
};
export type V1TranscriptRecordUploadResponse = unknown;
export type V1TranscriptGetWebsocketEventsData = {
transcriptId: string;
};
export type V1TranscriptGetWebsocketEventsResponse = unknown;
export type V1TranscriptRecordWebrtcData = {
requestBody: RtcOffer;
transcriptId: string;
};
export type V1TranscriptRecordWebrtcResponse = unknown;
export type V1UserMeResponse = UserInfo | null;
export type $OpenApiTs = {
"/metrics": {
get: {
res: {
/**
* Successful Response
*/
200: unknown;
};
};
};
"/v1/transcripts": {
get: {
req: V1TranscriptsListData;
res: {
/**
* Successful Response
*/
200: Page_GetTranscript_;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
post: {
req: V1TranscriptsCreateData;
res: {
/**
* Successful Response
*/
200: GetTranscript;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}": {
get: {
req: V1TranscriptGetData;
res: {
/**
* Successful Response
*/
200: GetTranscript;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
patch: {
req: V1TranscriptUpdateData;
res: {
/**
* Successful Response
*/
200: GetTranscript;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
delete: {
req: V1TranscriptDeleteData;
res: {
/**
* Successful Response
*/
200: DeletionStatus;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/topics": {
get: {
req: V1TranscriptGetTopicsData;
res: {
/**
* Successful Response
*/
200: Array<GetTranscriptTopic>;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/topics/with-words": {
get: {
req: V1TranscriptGetTopicsWithWordsData;
res: {
/**
* Successful Response
*/
200: Array<GetTranscriptTopicWithWords>;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/topics/{topic_id}/words-per-speaker": {
get: {
req: V1TranscriptGetTopicsWithWordsPerSpeakerData;
res: {
/**
* Successful Response
*/
200: GetTranscriptTopicWithWordsPerSpeaker;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/audio/mp3": {
head: {
req: V1TranscriptHeadAudioMp3Data;
res: {
/**
* Successful Response
*/
200: unknown;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
get: {
req: V1TranscriptGetAudioMp3Data;
res: {
/**
* Successful Response
*/
200: unknown;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/audio/waveform": {
get: {
req: V1TranscriptGetAudioWaveformData;
res: {
/**
* Successful Response
*/
200: AudioWaveform;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/participants": {
get: {
req: V1TranscriptGetParticipantsData;
res: {
/**
* Successful Response
*/
200: Array<Participant>;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
post: {
req: V1TranscriptAddParticipantData;
res: {
/**
* Successful Response
*/
200: Participant;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/participants/{participant_id}": {
get: {
req: V1TranscriptGetParticipantData;
res: {
/**
* Successful Response
*/
200: Participant;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
patch: {
req: V1TranscriptUpdateParticipantData;
res: {
/**
* Successful Response
*/
200: Participant;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
delete: {
req: V1TranscriptDeleteParticipantData;
res: {
/**
* Successful Response
*/
200: DeletionStatus;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/speaker/assign": {
patch: {
req: V1TranscriptAssignSpeakerData;
res: {
/**
* Successful Response
*/
200: SpeakerAssignmentStatus;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/speaker/merge": {
patch: {
req: V1TranscriptMergeSpeakerData;
res: {
/**
* Successful Response
*/
200: SpeakerAssignmentStatus;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/record/upload": {
post: {
req: V1TranscriptRecordUploadData;
res: {
/**
* Successful Response
*/
200: unknown;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/events": {
get: {
req: V1TranscriptGetWebsocketEventsData;
res: {
/**
* Successful Response
*/
200: unknown;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/transcripts/{transcript_id}/record/webrtc": {
post: {
req: V1TranscriptRecordWebrtcData;
res: {
/**
* Successful Response
*/
200: unknown;
/**
* Validation Error
*/
422: HTTPValidationError;
};
};
};
"/v1/me": {
get: {
res: {
/**
* Successful Response
*/
200: UserInfo | null;
};
};
};
};

14
www/openapi-ts.config.ts Normal file
View File

@@ -0,0 +1,14 @@
import { defineConfig } from "@hey-api/openapi-ts";
export default defineConfig({
client: "axios",
name: "OpenApi",
input: "http://127.0.0.1:1250/openapi.json",
output: {
path: "./app/api",
format: "prettier",
},
services: {
asClass: true,
},
});

View File

@@ -8,7 +8,7 @@
"start": "next start", "start": "next start",
"lint": "next lint", "lint": "next lint",
"format": "prettier --write .", "format": "prettier --write .",
"openapi": "openapi-ts --input http://127.0.0.1:1250/openapi.json --name OpenApi --output app/api && yarn format" "openapi": "openapi-ts"
}, },
"dependencies": { "dependencies": {
"@chakra-ui/icons": "^2.1.1", "@chakra-ui/icons": "^2.1.1",
@@ -56,7 +56,7 @@
"license": "All Rights Reserved", "license": "All Rights Reserved",
"devDependencies": { "devDependencies": {
"@types/react": "18.2.20", "@types/react": "18.2.20",
"@hey-api/openapi-ts": "^0.27.24", "@hey-api/openapi-ts": "^0.48.0",
"prettier": "^3.0.0" "prettier": "^3.0.0"
} }
} }

View File

@@ -12,10 +12,10 @@
resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz" resolved "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz"
integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw== integrity sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==
"@apidevtools/json-schema-ref-parser@11.5.4": "@apidevtools/json-schema-ref-parser@11.6.4":
version "11.5.4" version "11.6.4"
resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.5.4.tgz#6a90caf2140834025cf72651280c46084de187ae" resolved "https://registry.yarnpkg.com/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-11.6.4.tgz#0f3e02302f646471d621a8850e6a346d63c8ebd4"
integrity sha512-o2fsypTGU0WxRxbax8zQoHiIB4dyrkwYfcm8TxZ+bx9pCzcWZbQtiMqpgBvWA/nJ2TrGjK5adCLfTH8wUeU/Wg== integrity sha512-9K6xOqeevacvweLGik6LnZCb1fBtCOSIWQs8d096XGeqoLKC33UVMGz9+77Gw44KvbH4pKcQPWo4ZpxkXYj05w==
dependencies: dependencies:
"@jsdevtools/ono" "^7.1.3" "@jsdevtools/ono" "^7.1.3"
"@types/json-schema" "^7.0.15" "@types/json-schema" "^7.0.15"
@@ -1103,14 +1103,15 @@
dependencies: dependencies:
prop-types "^15.8.1" prop-types "^15.8.1"
"@hey-api/openapi-ts@^0.27.24": "@hey-api/openapi-ts@^0.48.0":
version "0.27.39" version "0.48.1"
resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.27.39.tgz#130be15a33cda0ea04dc51166089b7eb77190479" resolved "https://registry.yarnpkg.com/@hey-api/openapi-ts/-/openapi-ts-0.48.1.tgz#a80e2372e7550057817c3dfb3742d87c395036a9"
integrity sha512-sqcMU4QUR/KDwYYj6YlYwAwo8F3bm9Sy9PNwWZ8K/kVNMajtcFkWXDMygeGHaLEVE0zwxmYuO+mcSN+lTD5ZCQ== integrity sha512-iZBEmS12EWn4yl/nYMui+PA3hprjFR9z+9p+p+s3f0VRXPw+uZWO0yuIfCcsAw1n0isikw2uJEY4qxwlnI07AQ==
dependencies: dependencies:
"@apidevtools/json-schema-ref-parser" "11.5.4" "@apidevtools/json-schema-ref-parser" "11.6.4"
c12 "1.11.1"
camelcase "8.0.0" camelcase "8.0.0"
commander "12.0.0" commander "12.1.0"
handlebars "4.7.8" handlebars "4.7.8"
"@humanwhocodes/config-array@^0.11.13": "@humanwhocodes/config-array@^0.11.13":
@@ -1662,6 +1663,11 @@ acorn-jsx@^5.3.2:
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.11.3:
version "8.12.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.12.1.tgz#71616bdccbe25e27a54439e0046e89ca76df2248"
integrity sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==
acorn@^8.9.0: acorn@^8.9.0:
version "8.11.3" version "8.11.3"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
@@ -1955,6 +1961,24 @@ busboy@1.6.0:
dependencies: dependencies:
streamsearch "^1.1.0" streamsearch "^1.1.0"
c12@1.11.1:
version "1.11.1"
resolved "https://registry.yarnpkg.com/c12/-/c12-1.11.1.tgz#d5244e95407af450a523e44eb57e5b87b82f8677"
integrity sha512-KDU0TvSvVdaYcQKQ6iPHATGz/7p/KiVjPg4vQrB6Jg/wX9R0yl5RZxWm9IoZqaIHD2+6PZd81+KMGwRr/lRIUg==
dependencies:
chokidar "^3.6.0"
confbox "^0.1.7"
defu "^6.1.4"
dotenv "^16.4.5"
giget "^1.2.3"
jiti "^1.21.6"
mlly "^1.7.1"
ohash "^1.1.3"
pathe "^1.1.2"
perfect-debounce "^1.0.0"
pkg-types "^1.1.1"
rc9 "^2.1.2"
call-bind@^1.0.0: call-bind@^1.0.0:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c"
@@ -2044,11 +2068,38 @@ character-entities@^2.0.0:
optionalDependencies: optionalDependencies:
fsevents "~2.3.2" fsevents "~2.3.2"
chokidar@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b"
integrity sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==
dependencies:
anymatch "~3.1.2"
braces "~3.0.2"
glob-parent "~5.1.2"
is-binary-path "~2.1.0"
is-glob "~4.0.1"
normalize-path "~3.0.0"
readdirp "~3.6.0"
optionalDependencies:
fsevents "~2.3.2"
chownr@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
ci-info@^3.2.0: ci-info@^3.2.0:
version "3.8.0" version "3.8.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91"
integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==
citty@^0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/citty/-/citty-0.1.6.tgz#0f7904da1ed4625e1a9ea7e0fa780981aab7c5e4"
integrity sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==
dependencies:
consola "^3.2.3"
classnames@^2.2.3: classnames@^2.2.3:
version "2.3.2" version "2.3.2"
resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz" resolved "https://registry.npmjs.org/classnames/-/classnames-2.3.2.tgz"
@@ -2100,10 +2151,10 @@ comma-separated-tokens@^2.0.0:
resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee"
integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
commander@12.0.0: commander@12.1.0:
version "12.0.0" version "12.1.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-12.0.0.tgz#b929db6df8546080adfd004ab215ed48cf6f2592" resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3"
integrity sha512-MwVNWlYjDTtOjX5PiD7o5pK0UrFU/OYgcJfjjK4RaHZETNtjJqrZa9Y9ds88+A+f+d5lv+561eZ+yCKoS3gbAA== integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==
commander@^4.0.0: commander@^4.0.0:
version "4.1.1" version "4.1.1"
@@ -2130,6 +2181,16 @@ concat-map@0.0.1:
resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
confbox@^0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/confbox/-/confbox-0.1.7.tgz#ccfc0a2bcae36a84838e83a3b7f770fb17d6c579"
integrity sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==
consola@^3.2.3:
version "3.2.3"
resolved "https://registry.yarnpkg.com/consola/-/consola-3.2.3.tgz#0741857aa88cfa0d6fd53f1cff0375136e98502f"
integrity sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==
convert-source-map@^1.5.0: convert-source-map@^1.5.0:
version "1.9.0" version "1.9.0"
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f"
@@ -2158,7 +2219,7 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0" path-type "^4.0.0"
yaml "^1.10.0" yaml "^1.10.0"
cross-spawn@^7.0.2: cross-spawn@^7.0.2, cross-spawn@^7.0.3:
version "7.0.3" version "7.0.3"
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
@@ -2238,6 +2299,11 @@ define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1:
has-property-descriptors "^1.0.0" has-property-descriptors "^1.0.0"
object-keys "^1.1.1" object-keys "^1.1.1"
defu@^6.1.4:
version "6.1.4"
resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.4.tgz#4e0c9cf9ff68fe5f3d7f2765cc1a012dfdcb0479"
integrity sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==
delayed-stream@~1.0.0: delayed-stream@~1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -2248,6 +2314,11 @@ dequal@^2.0.0, dequal@^2.0.3:
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
destr@^2.0.3:
version "2.0.3"
resolved "https://registry.yarnpkg.com/destr/-/destr-2.0.3.tgz#7f9e97cb3d16dbdca7be52aca1644ce402cfe449"
integrity sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==
detect-node-es@^1.1.0: detect-node-es@^1.1.0:
version "1.1.0" version "1.1.0"
resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493" resolved "https://registry.yarnpkg.com/detect-node-es/-/detect-node-es-1.1.0.tgz#163acdf643330caa0b4cd7c21e7ee7755d6fa493"
@@ -2307,6 +2378,11 @@ dom-helpers@^5.0.1:
"@babel/runtime" "^7.8.7" "@babel/runtime" "^7.8.7"
csstype "^3.0.2" csstype "^3.0.2"
dotenv@^16.4.5:
version "16.4.5"
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.5.tgz#cdd3b3b604cb327e286b4762e13502f717cb099f"
integrity sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==
electron-to-chromium@^1.4.431: electron-to-chromium@^1.4.431:
version "1.4.455" version "1.4.455"
resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.455.tgz"
@@ -2660,6 +2736,21 @@ esutils@^2.0.2:
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
execa@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c"
integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==
dependencies:
cross-spawn "^7.0.3"
get-stream "^8.0.1"
human-signals "^5.0.0"
is-stream "^3.0.0"
merge-stream "^2.0.0"
npm-run-path "^5.1.0"
onetime "^6.0.0"
signal-exit "^4.1.0"
strip-final-newline "^3.0.0"
extend@^3.0.0: extend@^3.0.0:
version "3.0.2" version "3.0.2"
resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
@@ -2819,6 +2910,13 @@ framesync@6.1.2:
dependencies: dependencies:
tslib "2.4.0" tslib "2.4.0"
fs-minipass@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
dependencies:
minipass "^3.0.0"
fs.realpath@^1.0.0: fs.realpath@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
@@ -2884,6 +2982,11 @@ get-nonce@^1.0.0:
resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3" resolved "https://registry.yarnpkg.com/get-nonce/-/get-nonce-1.0.1.tgz#fdf3f0278073820d2ce9426c18f07481b1e0cdf3"
integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q== integrity sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==
get-stream@^8.0.1:
version "8.0.1"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2"
integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==
get-symbol-description@^1.0.0: get-symbol-description@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6"
@@ -2899,6 +3002,20 @@ get-tsconfig@^4.5.0:
dependencies: dependencies:
resolve-pkg-maps "^1.0.0" resolve-pkg-maps "^1.0.0"
giget@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/giget/-/giget-1.2.3.tgz#ef6845d1140e89adad595f7f3bb60aa31c672cb6"
integrity sha512-8EHPljDvs7qKykr6uw8b+lqLiUc/vUg+KVTI0uND4s63TdsZM2Xus3mflvF0DDG9SiM4RlCkFGL+7aAjRmV7KA==
dependencies:
citty "^0.1.6"
consola "^3.2.3"
defu "^6.1.4"
node-fetch-native "^1.6.3"
nypm "^0.3.8"
ohash "^1.1.3"
pathe "^1.1.2"
tar "^6.2.0"
glob-parent@^5.1.2, glob-parent@~5.1.2: glob-parent@^5.1.2, glob-parent@~5.1.2:
version "5.1.2" version "5.1.2"
resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
@@ -3120,6 +3237,11 @@ https-proxy-agent@^5.0.0:
agent-base "6" agent-base "6"
debug "4" debug "4"
human-signals@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28"
integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==
iconv-lite@^0.6.2: iconv-lite@^0.6.2:
version "0.6.3" version "0.6.3"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501"
@@ -3341,6 +3463,11 @@ is-shared-array-buffer@^1.0.2:
dependencies: dependencies:
call-bind "^1.0.2" call-bind "^1.0.2"
is-stream@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac"
integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==
is-string@^1.0.5, is-string@^1.0.7: is-string@^1.0.5, is-string@^1.0.7:
version "1.0.7" version "1.0.7"
resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd"
@@ -3430,6 +3557,11 @@ jiti@^1.18.2:
resolved "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz" resolved "https://registry.npmjs.org/jiti/-/jiti-1.19.1.tgz"
integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg== integrity sha512-oVhqoRDaBXf7sjkll95LHVS6Myyyb1zaunVwk4Z0+WPSW4gjS0pl01zYKHScTuyEhQsFxV5L4DR5r+YqSyqyyg==
jiti@^1.21.6:
version "1.21.6"
resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.6.tgz#6c7f7398dd4b3142767f9a168af2f317a428d268"
integrity sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==
jose@^4.6.0: jose@^4.6.0:
version "4.14.4" version "4.14.4"
resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca" resolved "https://registry.yarnpkg.com/jose/-/jose-4.14.4.tgz#59e09204e2670c3164ee24cbfe7115c6f8bff9ca"
@@ -3851,6 +3983,11 @@ mime@2.6.0:
resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367" resolved "https://registry.yarnpkg.com/mime/-/mime-2.6.0.tgz#a2a682a95cd4d0cb1d6257e28f83da7e35800367"
integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg== integrity sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==
mimic-fn@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc"
integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==
minimatch@9.0.3: minimatch@9.0.3:
version "9.0.3" version "9.0.3"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825"
@@ -3877,6 +4014,26 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
minipass@^3.0.0:
version "3.3.6"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
dependencies:
yallist "^4.0.0"
minipass@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d"
integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==
minizlib@^2.1.1:
version "2.1.2"
resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
dependencies:
minipass "^3.0.0"
yallist "^4.0.0"
mkdirp@^0.5.5: mkdirp@^0.5.5:
version "0.5.6" version "0.5.6"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
@@ -3884,6 +4041,21 @@ mkdirp@^0.5.5:
dependencies: dependencies:
minimist "^1.2.6" minimist "^1.2.6"
mkdirp@^1.0.3:
version "1.0.4"
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
mlly@^1.7.1:
version "1.7.1"
resolved "https://registry.yarnpkg.com/mlly/-/mlly-1.7.1.tgz#e0336429bb0731b6a8e887b438cbdae522c8f32f"
integrity sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==
dependencies:
acorn "^8.11.3"
pathe "^1.1.2"
pkg-types "^1.1.1"
ufo "^1.5.3"
ms@2.1.2: ms@2.1.2:
version "2.1.2" version "2.1.2"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
@@ -3942,6 +4114,11 @@ next@^14.0.4:
"@next/swc-win32-ia32-msvc" "14.0.4" "@next/swc-win32-ia32-msvc" "14.0.4"
"@next/swc-win32-x64-msvc" "14.0.4" "@next/swc-win32-x64-msvc" "14.0.4"
node-fetch-native@^1.6.3:
version "1.6.4"
resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.4.tgz#679fc8fd8111266d47d7e72c379f1bed9acff06e"
integrity sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==
node-fetch@^2.6.7: node-fetch@^2.6.7:
version "2.6.12" version "2.6.12"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.12.tgz#02eb8e22074018e3d5a83016649d04df0e348fba"
@@ -3964,6 +4141,25 @@ normalize-range@^0.1.2:
resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz" resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz"
integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==
npm-run-path@^5.1.0:
version "5.3.0"
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.3.0.tgz#e23353d0ebb9317f174e93417e4a4d82d0249e9f"
integrity sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==
dependencies:
path-key "^4.0.0"
nypm@^0.3.8:
version "0.3.9"
resolved "https://registry.yarnpkg.com/nypm/-/nypm-0.3.9.tgz#ab74c55075737466847611aa33c3c67741c01d8f"
integrity sha512-BI2SdqqTHg2d4wJh8P9A1W+bslg33vOE9IZDY6eR2QC+Pu1iNBVZUqczrd43rJb+fMzHU7ltAYKsEFY/kHMFcw==
dependencies:
citty "^0.1.6"
consola "^3.2.3"
execa "^8.0.1"
pathe "^1.1.2"
pkg-types "^1.1.1"
ufo "^1.5.3"
object-assign@^4.0.1, object-assign@^4.1.1: object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
@@ -4044,6 +4240,11 @@ object.values@^1.1.6, object.values@^1.1.7:
define-properties "^1.2.0" define-properties "^1.2.0"
es-abstract "^1.22.1" es-abstract "^1.22.1"
ohash@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/ohash/-/ohash-1.1.3.tgz#f12c3c50bfe7271ce3fd1097d42568122ccdcf07"
integrity sha512-zuHHiGTYTA1sYJ/wZN+t5HKZaH23i4yI1HMwbuXm24Nid7Dv0KcuRlKoNKS9UNfAVSBlnGLcuQrnOKWOZoEGaw==
once@^1.3.0, once@^1.4.0: once@^1.3.0, once@^1.4.0:
version "1.4.0" version "1.4.0"
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
@@ -4051,6 +4252,13 @@ once@^1.3.0, once@^1.4.0:
dependencies: dependencies:
wrappy "1" wrappy "1"
onetime@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4"
integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==
dependencies:
mimic-fn "^4.0.0"
optionator@^0.9.3: optionator@^0.9.3:
version "0.9.3" version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
@@ -4109,6 +4317,11 @@ path-key@^3.1.0:
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
path-key@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18"
integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==
path-parse@^1.0.7: path-parse@^1.0.7:
version "1.0.7" version "1.0.7"
resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz"
@@ -4124,6 +4337,16 @@ path-type@^4.0.0:
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
pathe@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/pathe/-/pathe-1.1.2.tgz#6c4cb47a945692e48a1ddd6e4094d170516437ec"
integrity sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==
perfect-debounce@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz#9c2e8bc30b169cc984a58b7d5b28049839591d2a"
integrity sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==
picocolors@^1.0.0: picocolors@^1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz"
@@ -4144,6 +4367,15 @@ pirates@^4.0.1:
resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz"
integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==
pkg-types@^1.1.1:
version "1.1.3"
resolved "https://registry.yarnpkg.com/pkg-types/-/pkg-types-1.1.3.tgz#161bb1242b21daf7795036803f28e30222e476e3"
integrity sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==
dependencies:
confbox "^0.1.7"
mlly "^1.7.1"
pathe "^1.1.2"
postcss-import@^15.1.0: postcss-import@^15.1.0:
version "15.1.0" version "15.1.0"
resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz" resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz"
@@ -4269,6 +4501,14 @@ randombytes@^2.1.0:
dependencies: dependencies:
safe-buffer "^5.1.0" safe-buffer "^5.1.0"
rc9@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/rc9/-/rc9-2.1.2.tgz#6282ff638a50caa0a91a31d76af4a0b9cbd1080d"
integrity sha512-btXCnMmRIBINM2LDZoEmOogIZU7Qe7zn4BpomSKZ/ykbLObuBdvG+mFq11DL6fjH1DRwHhrlgtYWG96bJiC7Cg==
dependencies:
defu "^6.1.4"
destr "^2.0.3"
react-clientside-effect@^1.2.6: react-clientside-effect@^1.2.6:
version "1.2.6" version "1.2.6"
resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz#29f9b14e944a376b03fb650eed2a754dd128ea3a" resolved "https://registry.yarnpkg.com/react-clientside-effect/-/react-clientside-effect-1.2.6.tgz#29f9b14e944a376b03fb650eed2a754dd128ea3a"
@@ -4629,6 +4869,11 @@ side-channel@^1.0.4:
get-intrinsic "^1.0.2" get-intrinsic "^1.0.2"
object-inspect "^1.9.0" object-inspect "^1.9.0"
signal-exit@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04"
integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==
simple-peer@^9.11.1: simple-peer@^9.11.1:
version "9.11.1" version "9.11.1"
resolved "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz" resolved "https://registry.npmjs.org/simple-peer/-/simple-peer-9.11.1.tgz"
@@ -4740,6 +4985,11 @@ strip-bom@^3.0.0:
resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3"
integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==
strip-final-newline@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd"
integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==
strip-json-comments@^3.1.1: strip-json-comments@^3.1.1:
version "3.1.1" version "3.1.1"
resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
@@ -4858,6 +5108,18 @@ tapable@^2.2.0:
resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0"
integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==
tar@^6.2.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.1.tgz#717549c541bc3c2af15751bea94b1dd068d4b03a"
integrity sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==
dependencies:
chownr "^2.0.0"
fs-minipass "^2.0.0"
minipass "^5.0.0"
minizlib "^2.1.1"
mkdirp "^1.0.3"
yallist "^4.0.0"
text-table@^0.2.0: text-table@^0.2.0:
version "0.2.0" version "0.2.0"
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -5015,6 +5277,11 @@ typescript@^5.1.6:
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.1.6.tgz#02f8ac202b6dad2c0dd5e0913745b47a37998274"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA== integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
ufo@^1.5.3:
version "1.5.3"
resolved "https://registry.yarnpkg.com/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344"
integrity sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==
uglify-js@^3.1.4: uglify-js@^3.1.4:
version "3.17.4" version "3.17.4"
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c"