@scalar/api-client
Version:
the open source API testing client
88 lines • 4.25 kB
TypeScript
import type { HttpMethod as HttpMethodType } from '@scalar/helpers/http/http-methods';
import { type ClientPlugin } from '@scalar/oas-utils/helpers';
import { type AvailableClients } from '@scalar/types/snippetz';
import type { WorkspaceStore } from '@scalar/workspace-store/client';
import type { SelectedSecurity } from '@scalar/workspace-store/entities/auth';
import type { HistoryEntry } from '@scalar/workspace-store/entities/history/schema';
import type { AuthMeta, ServerMeta, WorkspaceEventBus } from '@scalar/workspace-store/events';
import type { XScalarEnvironment } from '@scalar/workspace-store/schemas/extensions/document/x-scalar-environments';
import type { OpenApiDocument, ServerObject } from '@scalar/workspace-store/schemas/v3.1/strict/openapi-document';
import type { OperationObject } from '@scalar/workspace-store/schemas/v3.1/strict/operation';
import type { ClientLayout } from '../../../hooks/index.js';
import type { ExtendedScalarCookie } from '../../../v2/blocks/request-block/RequestBlock.vue.js';
import type { MergedSecuritySchemes } from '../../../v2/blocks/scalar-auth-selector-block/helpers/merge-security.js';
/**
* OperationBlock
*
* Orchestrates the operation view by wiring together the Header, OperationBlock,
* and ResponseBlock. Forwards user interactions to the workspace event bus and
* passes through configuration such as auth, servers, plugins, and environment.
* This component keeps the Operation page lean by centralizing event emission
* and prop wiring between the blocks.
*
* Notable behavior:
* - Uses operation['x-scalar-method'] and operation['x-scalar-path'] to provide
* draft overrides for the UI when present.
*/
declare const _default: typeof __VLS_export;
export default _default;
export type OperationBlockProps = {
/** Event bus */
eventBus: WorkspaceEventBus;
/** Document defined security */
documentSecurity: OpenApiDocument['security'];
/** Document selected security */
documentSelectedSecurity: SelectedSecurity | undefined;
/** Application version */
appVersion: string;
/** Workspace/document cookies */
globalCookies: ExtendedScalarCookie[];
/** Current request path */
path: string;
/** Current request method */
method: HttpMethodType;
/** HTTP clients */
httpClients: AvailableClients;
/** The history for the operation */
history?: HistoryEntry[];
/** Client layout */
layout: ClientLayout;
/** Currently selected server */
server: ServerObject | null;
/** Currently selected client */
selectedClient: WorkspaceStore['workspace']['x-scalar-default-client'];
/** Server list available for operation/document */
servers: ServerObject[];
/** Meta information for the server */
serverMeta: ServerMeta;
/** Hides the client button on the header */
hideClientButton?: boolean;
/** Client integration */
integration?: string | null;
/** Openapi document url for `modal` mode to open the client app */
documentUrl?: string;
/** Client source */
source?: 'gitbook' | 'api-reference';
/** Operation object */
operation: OperationObject;
/** Operation selected security */
operationSelectedSecurity: SelectedSecurity | undefined;
/** Currently selected example key for the current operation */
exampleKey: string;
/** Meta information for the auth update */
authMeta: AuthMeta;
/** Document defined security schemes */
securitySchemes: MergedSecuritySchemes;
/** Client plugins */
plugins: ClientPlugin[];
/** Environment list */
environments?: string[];
/** Currently selected environment */
activeEnvironment?: string;
/** For environment variables in the inputs */
environment: XScalarEnvironment;
/** The proxy URL for sending requests */
proxyUrl: string;
};
declare const __VLS_export: import("vue").DefineComponent<OperationBlockProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<OperationBlockProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
//# sourceMappingURL=OperationBlock.vue.d.ts.map