import pathlib, re, sys

p = pathlib.Path('resources/js/pages/settings/security.tsx')
s = p.read_text()

if 'ManageEmailOtp' in s:
    print('already present'); sys.exit()

# 1. add the import next to ManageTwoFactor's
if 'import ManageTwoFactor' in s:
    s = re.sub(r"(import ManageTwoFactor from '@/components/manage-two-factor';)",
               r"\1\nimport ManageEmailOtp from '@/components/manage-email-otp';", s, count=1)
else:
    s = re.sub(r"(import Heading from '@/components/heading';)",
               r"\1\nimport ManageEmailOtp from '@/components/manage-email-otp';", s, count=1)

# 2. render it after the two-factor block (try several shapes)
inserted = False
for pat in [
    (r"(<ManageTwoFactor\s+\{\.\.\.props\}\s*/>)", r"\1\n\n                <ManageEmailOtp />"),
    (r"(<ManageTwoFactor[^/]*/>)", r"\1\n\n                <ManageEmailOtp />"),
    (r"(<ManagePasskeys[^/]*/>)", r"\1\n\n                <ManageEmailOtp />"),
]:
    new, n = re.subn(pat, pat[1] if False else r"\1\n\n                <ManageEmailOtp />", s, count=1)
    if n:
        s = new; inserted = True; break

p.write_text(s)
print('import added:', 'manage-email-otp' in s)
print('component rendered:', '<ManageEmailOtp />' in s)
if not inserted:
    print('>>> Could not auto-insert the component. Add <ManageEmailOtp /> manually inside the security page JSX.')
