import type { CallTemplateFunctionArgs, Context, PluginDefinition } from '@yaakapp/api'; export const plugin: PluginDefinition = { templateFunctions: [ { name: 'regex.match', description: 'Extract', args: [ { type: 'text', name: 'regex', label: 'Regular Expression', placeholder: '^\\w+=(?\\w*)$', defaultValue: '^(.*)$', description: 'A JavaScript regular expression, evaluated using the Node.js RegExp engine. Capture groups or named groups can be used to extract values.', }, { type: 'text', name: 'input', label: 'Input Text', multiLine: true }, ], async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise { if (!args.values.regex || !args.values.input) return ''; const input = String(args.values.input); const regex = new RegExp(String(args.values.regex)); const match = input.match(regex); return match?.groups ? (Object.values(match.groups)[0] ?? '') : (match?.[1] ?? match?.[0] ?? ''); }, }, ], };