Ana içeriğe geç

Tip Tanımları (Types)

src/shared/types.ts dosyasındaki tüm TypeScript tip tanımları.

Ana Yapılandırma

GrayToolConfig

Eklentinin tüm yapılandırmasını kapsayan ana interface.

interface GrayToolConfig {
version: 2;
urlPatterns: UrlPattern[];
buttons: ButtonConfig[];
globalFieldConfig: GlobalFieldConfig;
settings: AppSettings;
}
AlanTipAçıklama
version2 (literal)Yapılandırma format versiyonu
urlPatternsUrlPattern[]Aktif URL desenleri listesi
buttonsButtonConfig[]Tanımlı butonlar listesi
globalFieldConfigGlobalFieldConfigAlan keşfi ve JSON parse ayarları
settingsAppSettingsÖzellik açma/kapama ayarları

URL Pattern

UrlPattern

interface UrlPattern {
id: string;
pattern: string;
label: string;
enabled: boolean;
}
AlanTipAçıklama
idstringBenzersiz kimlik (otomatik oluşturulur)
patternstringGlob pattern (* joker karakteri)
labelstringGörünen isim
enabledbooleanAktif/pasif durumu

Buton Yapılandırması

ButtonConfig

interface ButtonConfig {
id: string;
label: string;
url: string;
fieldBindings: FieldBinding[];
conditions: ButtonCondition[];
openInNewTab: boolean;
enabled: boolean;
color: ButtonColor;
icon?: string;
urlPatternIds?: string[];
}
AlanTipAçıklama
idstringBenzersiz kimlik
labelstringButon üzerindeki metin
urlstringURL şablonu {placeholder}
fieldBindingsFieldBinding[]Alan bağlamaları
conditionsButtonCondition[]Görünürlük koşulları
openInNewTabbooleanYeni sekmede aç
enabledbooleanAktif/pasif
colorButtonColorButon rengi
iconstring?Opsiyonel SVG ikon string
urlPatternIdsstring[]?Belirli pattern'lerde göster (boş=tümü)

ButtonColor

type ButtonColor = "primary" | "default" | "danger" | "warning" | "success";

FieldBinding

interface FieldBinding {
placeholder: string;
fieldPath: string;
fallbackPaths?: string[];
}
AlanTipAçıklama
placeholderstringURL'deki {name}
fieldPathstringBirincil alan yolu
fallbackPathsstring[]?Alternatif alan yolları

ButtonCondition

interface ButtonCondition {
field: string;
operator: ButtonConditionOperator;
value?: string;
}

ButtonConditionOperator

type ButtonConditionOperator =
| "exists"
| "equals"
| "contains"
| "startsWith"
| "notEquals";

Alan Yapılandırması

GlobalFieldConfig

interface GlobalFieldConfig {
defaultMessageField?: string | null;
rowFieldPrefixes: string[];
searchPrefixes?: string[];
parseJsonStrings?: boolean;
jsonParseMaxDepth?: number;
}
AlanTipVarsayılanAçıklama
defaultMessageFieldstring | null?nullJSON viewer varsayılan alanı
rowFieldPrefixesstring[]["msg.", "context.", ""]Aranacak prefix'ler
searchPrefixesstring[]?UI alias'ı
parseJsonStringsboolean?trueJSON string'leri parse et
jsonParseMaxDepthnumber?5Maks parse derinliği

Uygulama Ayarları

AppSettings

interface AppSettings {
enabled: boolean;
showMessageDetailButton: boolean;
jsonViewerEnabled: boolean;
keyboardShortcutsEnabled: boolean;
searchHistoryEnabled: boolean;
}
AlanTipVarsayılanAçıklama
enabledbooleantrueAna açma/kapama
showMessageDetailButtonbooleantrueMesaj detay butonu
jsonViewerEnabledbooleantrueJSON viewer
keyboardShortcutsEnabledbooleantrueKlavye kısayolları
searchHistoryEnabledbooleantrueArama geçmişi

Alan Keşfi

DiscoveredField

interface DiscoveredField {
name: string;
value: string;
source: FieldSource;
element?: Element;
}

FieldSource

type FieldSource = "data-field" | "json-parse" | "text-pattern" | "dom-attribute";
KaynakÖncelikAçıklama
data-field4 (en yüksek)HTML data attribute
dom-attribute3DOM yapısal element
json-parse2JSON parse sonucu
text-pattern1 (en düşük)Metin deseni

Arama Geçmişi

SearchHistoryEntry

interface SearchHistoryEntry {
query: string;
timestamp: number;
}

Mesaj Tipleri

GrayToolMessage

type GrayToolMessage =
| ActivateMessage
| DeactivateMessage
| ConfigUpdatedMessage
| CheckUrlMessage
| GetConfigMessage
| PingMessage
| RequestPermissionMessage
| HasPermissionMessage
| GetConfiguredOriginsMessage;

ActivateMessage

interface ActivateMessage {
type: "ACTIVATE";
matchedPatternId?: string;
}

DeactivateMessage

interface DeactivateMessage {
type: "DEACTIVATE";
}

ConfigUpdatedMessage

interface ConfigUpdatedMessage {
type: "CONFIG_UPDATED";
}

İstek Mesajları

interface CheckUrlMessage { type: "CHECK_URL"; }
interface GetConfigMessage { type: "GET_CONFIG"; }
interface PingMessage { type: "PING"; }

interface RequestPermissionMessage {
type: "REQUEST_PERMISSION";
pattern: string;
}

interface HasPermissionMessage {
type: "HAS_PERMISSION";
url: string;
}

interface GetConfiguredOriginsMessage {
type: "GET_CONFIGURED_ORIGINS";
}