| 291 | } |
| 292 | |
| 293 | function loadRegexScriptsFromCard(card: Record<string, unknown>): InternalScript[] { |
| 294 | const data = (card['data'] || {}) as Record<string, unknown>; |
| 295 | const extensions = (data['extensions'] || {}) as Record<string, unknown>; |
| 296 | const scripts = (extensions['regex_scripts'] || []) as Record<string, unknown>[]; |
| 297 | |
| 298 | return scripts.map((s, i) => ({ |
| 299 | name: (s['scriptName'] as string) || '', |
| 300 | scriptName: (s['scriptName'] as string) || '', |
| 301 | file: `embedded_${String(i).padStart(2, '0')}_${(s['scriptName'] as string) || ''}`, |
| 302 | findRegex: (s['findRegex'] as string) || '', |
| 303 | replaceString: (s['replaceString'] as string) || '', |
| 304 | disabled: (s['disabled'] as boolean) || false, |
| 305 | placement: (s['placement'] as number[]) || [], |
| 306 | runOnEdit: (s['runOnEdit'] as boolean) || false, |
| 307 | _source: 'embedded', |
| 308 | type: '', |
| 309 | matchedApp: null, |
| 310 | regexTags: [], |
| 311 | })); |
| 312 | } |
| 313 | |
| 314 | // ── Tag extraction ───────────────────────────────────────────────── |
| 315 | |