(function() {
const invoke = window.__TAURI__.core.invoke;
const listen = window.__TAURI__.event.listen;
window.tauriApi = {
generateHashes: (text) => invoke('generate_hashes', { text }),
hashFile: (filePath) => invoke('hash_file', { filePath }),
stopFileWatch: () => invoke('stop_file_watch'),
computeHmac: (message, secret) => invoke('compute_hmac', { message, secret }),
onFileHashUpdate: (callback) => listen('file-hash-update', (event) => callback(event.payload)),
generateQR: (text) => invoke('generate_qr', { text }),
renderMarkdown: (md) => invoke('render_markdown', { md }),
openFileDialog: () => invoke('open_file_dialog'),
convertYaml: (input, mode) => invoke('convert_yaml', { input, mode }),
formatSql: (sql, language) => invoke('format_sql', { sql, language }),
describeCron: (expression) => invoke('describe_cron', { expression }),
imageToBase64: (path) => invoke('image_to_base64', { path }),
decodeProtobuf: (hex) => invoke('decode_protobuf', { hex }),
decodeMsgpack: (hex) => invoke('decode_msgpack', { hex }),
readFileHex: (path) => invoke('read_file_hex', { path }),
inspectCertificate: (pem) => invoke('inspect_certificate', { pem }),
readTextFile: (path) => invoke('read_text_file', { path }),
hashPassword: (password, algorithm, cost, memoryKib, parallelism) =>
invoke('hash_password', { password, algorithm, cost, memoryKib, parallelism }),
verifyPassword: (password, hash) => invoke('verify_password', { password, hash }),
verifyJwt: (token, secretOrPem) => invoke('verify_jwt', { token, secretOrPem }),
};
})();