@boykaframework/boyka-cli
Version:
🧑🏻💻 Command line assistant for Boyka Framework
364 lines (331 loc) • 7.25 kB
text/typescript
import {
ApplicationType,
AutomationType,
Browser,
DeviceType,
Language,
LogLevel,
OS,
PageLoadStrategy,
Protocol,
Speed,
TargetProviders,
VideoPreset,
VideoQuality,
WindowResizeType,
} from './enum-types.js';
export type FrameworkSetting = {
$schema: string;
listeners_package?: string;
logging?: LoggingSetting;
data?: TestDataSetting;
ui?: UiSetting;
api?: { [key: string]: ApiSetting };
};
export type LoggingSetting = {
console_logs: boolean;
logs_folder: string;
archive: ArchiveSetting;
};
export type TestDataSetting = {
extension: string;
external: boolean;
path: string;
type: 'EXCEL';
};
export type ArchiveSetting = {
max_days: number;
max_size: number;
on_every_run: boolean;
size_unit: 'KB' | 'MB' | 'GB' | 'TB';
};
export type ApiSetting = {
base_uri: string;
base_path?: string;
port?: number;
read_timeout?: number;
write_timeout?: number;
connection_timeout?: number;
schema_path?: string;
logging?: ApiLogSetting;
validate_ssl?: boolean;
verify_host_name?: boolean;
language?: LanguageSetting;
};
export type ApiLogSetting = {
enable: boolean;
request: boolean;
response: boolean;
};
export type ScreenshotSetting = {
enabled: boolean;
path: string;
extension: string;
prefix: string;
};
export type TimeoutSetting = {
implicit_wait: number;
explicit_wait: number;
page_load_timeout: number;
script_timeout: number;
highlight_delay: number;
};
export type DelaySetting = {
before_click?: number;
before_mouse_move?: number;
before_swipe?: number;
before_tap?: number;
before_typing?: number;
};
export type UiSetting = {
timeout: TimeoutSetting;
delay?: DelaySetting;
desktop?: { [key: string]: DesktopSetting };
logging: UiLogSetting;
screenshot: ScreenshotSetting;
web?: { [key: string]: WebSetting };
mobile?: { [key: string]: MobileSetting };
};
export type UiLogSetting = {
enable: boolean;
path: string;
exclude_logs?: string[];
};
export type Dimension = {
width: number;
height: number;
};
export type WebSetting = {
base_url?: string;
browser: Browser;
target?: TargetProviders;
browser_options?: string[];
user_name?: string;
password?: string;
resize?: WindowResizeType;
language?: LanguageSetting;
custom_size?: Dimension;
host?: string;
headless?: boolean;
highlight?: boolean;
platform?: string;
port?: number;
protocol?: Protocol;
capabilities?: { [key: string]: string };
page_load_strategy?: PageLoadStrategy;
version?: string;
};
export type ServerLogSetting = {
debug_spacing?: boolean;
level: LogLevel;
local_timezone?: boolean;
timestamp?: boolean;
};
export type ServerSetting = {
allow_cors?: boolean;
allow_insecure?: string[];
appium_path?: string;
base_path?: string;
callback_address?: string;
callback_port?: number;
config_path?: string;
deny_insecure?: string[];
driver?: AutomationType;
external?: boolean;
external_config?: boolean;
host?: string;
keep_alive_timeout?: number;
logging?: ServerLogSetting;
node_path?: string;
other_args?: { [key: string]: any };
password?: string;
plugins?: string[];
port?: number;
protocol?: Protocol;
relaxed_security?: boolean;
session_override?: boolean;
strict_capabilities?: boolean;
target: TargetProviders;
timeout?: number;
user_name?: string;
webhook?: string;
};
export type MobileSetting = {
server: ServerSetting;
device: DeviceSetting;
};
export type DesktopSetting = {
server: ServerSetting;
machine: MachineSetting;
};
export type MachineSetting = {
application?: MacApplicationSetting;
os: OS;
version?: string;
type: DeviceType;
show_server_logs?: boolean;
server_startup_timeout?: number;
command_timeout?: number;
event_timings?: boolean;
full_reset?: boolean;
no_reset?: boolean;
language?: LanguageSetting;
video?: VideoSetting;
};
export type MacApplicationSetting = {
bundle_id?: string;
skip_app_kill?: boolean;
};
export type LanguageSetting = {
external?: boolean;
language: Language;
path?: string;
};
export type SwipeSetting = {
distance: number;
max_swipe_until_found: number;
speed: Speed;
};
export type AndroidVideoSetting = {
bit_rate: number;
};
export type IOSVideoSetting = {
codec: string;
fps: number;
quality: VideoQuality;
};
export type VideoSetting = {
android?: AndroidVideoSetting;
enabled?: boolean;
ios?: IOSVideoSetting;
mac?: MacVideoSetting;
path: string;
prefix?: string;
size?: string;
time_limit?: number;
};
export type MacVideoSetting = {
capture_clicks?: boolean;
capture_cursor?: boolean;
device_id?: number;
fps?: number;
preset: VideoPreset;
};
export type VirtualDeviceSetting = {
connect_keyboard?: boolean;
headless?: boolean;
launch_timeout?: number;
name: string;
ready_timeout?: number;
};
export type WDASetting = {
connection_timeout?: number;
launch_timeout?: number;
local_port?: number;
signing_id?: string;
startup_retries?: number;
startup_retry_interval?: number;
team_id?: string;
update_bundle_id?: string;
use_new?: boolean;
use_prebuilt?: boolean;
};
export type ApplicationSetting = {
base_url?: string;
browser?: Browser;
bundle_id?: string;
chrome_driver_port?: number;
external?: boolean;
install_timeout?: number;
path?: string;
type: ApplicationType;
wait_activity?: string;
wait_timeout?: number;
};
export type DeviceSetting = {
accept_alerts?: boolean;
adb_timeout?: number;
application: ApplicationSetting;
capabilities?: { [key: string]: any };
clear_files?: boolean;
clear_logs?: boolean;
full_reset?: boolean;
ignore_unimportant_views?: boolean;
name: string;
no_reset?: boolean;
os?: OS;
server_install_timeout?: number;
server_launch_timeout?: number;
language?: LanguageSetting;
swipe: SwipeSetting;
system_port?: number;
type: DeviceType;
typing_speed?: number;
unique_id?: string;
version?: string;
video?: VideoSetting;
virtual_device?: VirtualDeviceSetting;
wda?: WDASetting;
};
export type Message = {
success: string;
error: string;
loading: string;
suggestion?: string;
};
export type UserInput = {
group_id?: string;
generate_sample?: boolean;
platform: string;
sub_platform?: string;
config_name?: string;
language?: Language;
api?: {
base_uri: string;
base_path: string;
};
web?: {
target: TargetProviders;
browser: Browser;
user_name?: string;
password?: string;
};
desktop?: {
server: {
target: TargetProviders;
port?: number;
};
machine: {
version?: string;
application?: {
bundle_id: string;
};
};
};
mobile?: {
server: {
target: TargetProviders;
port?: number;
user_name?: string;
password?: string;
};
device: {
name: string;
version: string;
avd_name?: string;
application?: {
type: ApplicationType;
path?: string;
browser?: Browser;
};
};
};
};
export type TemplateFile = {
fileName: string;
folder?: string;
content: string;
resource?: boolean;
main?: boolean;
test?: boolean;
};