// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
///
use deno_core::serde_json;
use deno_core::serde_json::Value;
use serde::Deserialize;
use serde::Deserializer;
use serde::Serialize;
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct AwaitPromiseArgs {
pub promise_object_id: RemoteObjectId,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_by_value: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_preview: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AwaitPromiseResponse {
pub result: RemoteObject,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CallFunctionOnArgs {
pub function_declaration: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_id: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub arguments: Option>,
#[serde(skip_serializing_if = "Option::is_none")]
pub silent: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_by_value: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_preview: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_gesture: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub await_promise: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_context_id: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_group: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub throw_on_side_effect: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CallFunctionOnResponse {
pub result: RemoteObject,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct CompileScriptArgs {
pub expression: String,
#[serde(rename = "sourceURL")]
pub source_url: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_context_id: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct CompileScriptResponse {
pub script_id: Option,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct EvaluateArgs {
pub expression: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_group: Option,
#[serde(
rename = "includeCommandLineAPI",
skip_serializing_if = "Option::is_none"
)]
pub include_command_line_api: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub silent: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub context_id: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_by_value: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_preview: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_gesture: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub await_promise: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub throw_on_side_effect: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub disable_breaks: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub repl_mode: Option,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(rename = "allowUnsafeEvalBlockedByCSP")]
pub allow_unsafe_eval_blocked_by_csp: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub unique_context_id: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct EvaluateResponse {
pub result: RemoteObject,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GetPropertiesArgs {
pub object_id: RemoteObjectId,
#[serde(skip_serializing_if = "Option::is_none")]
pub own_properties: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub accessor_properties_only: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_preview: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub non_indexed_properties_only: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GetPropertiesResponse {
pub result: Vec,
pub internal_properties: Option>,
pub private_properties: Option>,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct GlobalLexicalScopeNamesArgs {
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_context_id: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct GlobalLexicalScopeNamesResponse {
pub names: Vec,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct QueryObjectsArgs {
pub prototype_object_id: RemoteObjectId,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_group: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct QueryObjectsResponse {
pub objects: RemoteObject,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReleaseObjectArgs {
pub object_id: RemoteObjectId,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct ReleaseObjectGroupArgs {
pub object_group: String,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct RunScriptArgs {
pub script_id: ScriptId,
#[serde(skip_serializing_if = "Option::is_none")]
pub execution_context_id: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_group: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub silent: Option,
#[serde(
rename = "includeCommandLineAPI",
skip_serializing_if = "Option::is_none"
)]
pub include_command_line_api: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub return_by_value: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub generate_preview: Option,
#[serde(skip_serializing_if = "Option::is_none")]
pub await_promise: Option,
}
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RunScriptResponse {
pub result: RemoteObject,
pub exception_details: Option,
}
///
#[derive(Debug, Clone, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct SetAsyncCallStackDepthArgs {
pub max_depth: u64,
}
// types
///
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RemoteObject {
#[serde(rename = "type")]
pub kind: String,
pub subtype: Option,
pub class_name: Option,
#[serde(default, deserialize_with = "deserialize_some")]
pub value: Option,
pub unserializable_value: Option,
pub description: Option,
pub object_id: Option,
pub preview: Option,
pub custom_preview: Option,
}
// Any value that is present is considered Some value, including null.
// ref: https://github.com/serde-rs/serde/issues/984#issuecomment-314143738
fn deserialize_some<'de, T, D>(deserializer: D) -> Result