diff --git a/.fallow/baselines/dead-code.json b/.fallow/baselines/dead-code.json new file mode 100644 index 000000000..accd09fa9 --- /dev/null +++ b/.fallow/baselines/dead-code.json @@ -0,0 +1,54 @@ +{ + "analysis_identity": { + "mode": "syntactic", + "semantic_schema_version": 1, + "capabilities": [], + "project_config_hash": "", + "backend_family": "", + "completeness": "complete" + }, + "unused_files": [], + "unused_exports": [], + "unused_types": [], + "private_type_leaks": [], + "unused_dependencies": [], + "unused_dev_dependencies": [], + "circular_dependencies": [ + "apps/api/src/services/EmailService.ts->apps/api/src/services/EventService.ts->apps/api/src/services/WorkflowExecutionService.ts" + ], + "re_export_cycles": [], + "unused_optional_dependencies": [], + "unused_enum_members": [], + "unused_class_members": [], + "unused_store_members": [], + "unprovided_injects": [], + "unrendered_components": [], + "unused_component_props": [], + "unused_component_emits": [], + "unused_component_inputs": [], + "unused_component_outputs": [], + "unused_svelte_events": [], + "unused_server_actions": [], + "unused_load_data_keys": [], + "unresolved_imports": [], + "unlisted_dependencies": [], + "duplicate_exports": [], + "type_only_dependencies": [], + "test_only_dependencies": [], + "dev_dependencies_in_production": [], + "boundary_violations": [], + "boundary_coverage_violations": [], + "boundary_call_violations": [], + "policy_violations": [], + "stale_suppressions": [], + "unused_catalog_entries": [], + "empty_catalog_groups": [], + "unresolved_catalog_references": [], + "unused_dependency_overrides": [], + "misconfigured_dependency_overrides": [], + "invalid_client_exports": [], + "mixed_client_server_barrels": [], + "misplaced_directives": [], + "route_collisions": [], + "dynamic_segment_name_conflicts": [] +} diff --git a/.fallow/baselines/dupes.json b/.fallow/baselines/dupes.json new file mode 100644 index 000000000..bbd41183d --- /dev/null +++ b/.fallow/baselines/dupes.json @@ -0,0 +1,1511 @@ +{ + "clone_groups": [ + "apps/landing/src/pages/vs/brevo.tsx:66-145|apps/landing/src/pages/vs/customerio.tsx:62-141|apps/landing/src/pages/vs/loops.tsx:66-145|apps/landing/src/pages/vs/postmark.tsx:63-142|apps/landing/src/pages/vs/sendgrid.tsx:66-145", + "apps/landing/src/pages/vs/activecampaign.tsx:171-196|apps/landing/src/pages/vs/bento.tsx:170-195|apps/landing/src/pages/vs/brevo.tsx:194-219|apps/landing/src/pages/vs/convertkit.tsx:194-219|apps/landing/src/pages/vs/customerio.tsx:190-215|apps/landing/src/pages/vs/index.tsx:281-331|apps/landing/src/pages/vs/klaviyo.tsx:171-196|apps/landing/src/pages/vs/loops.tsx:194-219|apps/landing/src/pages/vs/mailchimp.tsx:196-221|apps/landing/src/pages/vs/mailerlite.tsx:171-196|apps/landing/src/pages/vs/mailgun.tsx:190-215|apps/landing/src/pages/vs/postmark.tsx:191-216|apps/landing/src/pages/vs/resend.tsx:190-215|apps/landing/src/pages/vs/sendgrid.tsx:194-219", + "apps/landing/src/pages/features/email-editor.tsx:78-221|apps/landing/src/pages/features/inbound-email.tsx:77-220|apps/landing/src/pages/features/segments.tsx:92-235|apps/landing/src/pages/features/smtp.tsx:88-233|apps/landing/src/pages/features/workflows.tsx:77-222", + "apps/landing/src/pages/vs/activecampaign.tsx:64-143|apps/landing/src/pages/vs/bento.tsx:64-143|apps/landing/src/pages/vs/klaviyo.tsx:64-143|apps/landing/src/pages/vs/mailerlite.tsx:64-143", + "apps/landing/src/pages/vs/activecampaign.tsx:64-100|apps/landing/src/pages/vs/bento.tsx:64-100|apps/landing/src/pages/vs/brevo.tsx:66-102|apps/landing/src/pages/vs/convertkit.tsx:67-103|apps/landing/src/pages/vs/customerio.tsx:62-98|apps/landing/src/pages/vs/index.tsx:102-160|apps/landing/src/pages/vs/klaviyo.tsx:64-100|apps/landing/src/pages/vs/loops.tsx:66-102|apps/landing/src/pages/vs/mailchimp.tsx:67-103|apps/landing/src/pages/vs/mailerlite.tsx:64-100|apps/landing/src/pages/vs/mailgun.tsx:62-98|apps/landing/src/pages/vs/postmark.tsx:63-99|apps/landing/src/pages/vs/resend.tsx:62-98|apps/landing/src/pages/vs/sendgrid.tsx:66-102", + "apps/landing/src/pages/vs/mailgun.tsx:62-185|apps/landing/src/pages/vs/resend.tsx:62-185", + "apps/landing/src/pages/guides/index.tsx:115-169|apps/landing/src/pages/vs/activecampaign.tsx:64-90|apps/landing/src/pages/vs/bento.tsx:64-90|apps/landing/src/pages/vs/brevo.tsx:66-92|apps/landing/src/pages/vs/convertkit.tsx:67-93|apps/landing/src/pages/vs/customerio.tsx:62-88|apps/landing/src/pages/vs/index.tsx:102-150|apps/landing/src/pages/vs/klaviyo.tsx:64-90|apps/landing/src/pages/vs/loops.tsx:66-92|apps/landing/src/pages/vs/mailchimp.tsx:67-93|apps/landing/src/pages/vs/mailerlite.tsx:64-90|apps/landing/src/pages/vs/mailgun.tsx:62-88|apps/landing/src/pages/vs/postmark.tsx:63-89|apps/landing/src/pages/vs/resend.tsx:62-88|apps/landing/src/pages/vs/sendgrid.tsx:66-92", + "apps/landing/src/pages/features/email-editor.tsx:78-232|apps/landing/src/pages/features/inbound-email.tsx:77-231|apps/landing/src/pages/features/segments.tsx:92-246|apps/landing/src/pages/features/workflows.tsx:77-235", + "apps/landing/src/pages/vs/activecampaign.tsx:100-107|apps/landing/src/pages/vs/activecampaign.tsx:136-141|apps/landing/src/pages/vs/bento.tsx:100-107|apps/landing/src/pages/vs/bento.tsx:136-141|apps/landing/src/pages/vs/brevo.tsx:102-109|apps/landing/src/pages/vs/brevo.tsx:138-143|apps/landing/src/pages/vs/convertkit.tsx:103-110|apps/landing/src/pages/vs/customerio.tsx:134-139|apps/landing/src/pages/vs/customerio.tsx:98-105|apps/landing/src/pages/vs/index.tsx:160-177|apps/landing/src/pages/vs/index.tsx:224-241|apps/landing/src/pages/vs/klaviyo.tsx:100-107|apps/landing/src/pages/vs/klaviyo.tsx:136-141|apps/landing/src/pages/vs/loops.tsx:102-109|apps/landing/src/pages/vs/loops.tsx:138-143|apps/landing/src/pages/vs/mailchimp.tsx:103-110|apps/landing/src/pages/vs/mailerlite.tsx:100-107|apps/landing/src/pages/vs/mailerlite.tsx:136-141|apps/landing/src/pages/vs/mailgun.tsx:134-139|apps/landing/src/pages/vs/mailgun.tsx:98-105|apps/landing/src/pages/vs/postmark.tsx:135-140|apps/landing/src/pages/vs/postmark.tsx:99-106|apps/landing/src/pages/vs/resend.tsx:134-139|apps/landing/src/pages/vs/resend.tsx:98-105|apps/landing/src/pages/vs/sendgrid.tsx:102-109|apps/landing/src/pages/vs/sendgrid.tsx:138-143", + "apps/landing/src/pages/features/email-editor.tsx:327-365|apps/landing/src/pages/features/inbound-email.tsx:331-369|apps/landing/src/pages/features/segments.tsx:390-429|apps/landing/src/pages/features/smtp.tsx:326-364|apps/landing/src/pages/features/workflows.tsx:330-368|apps/landing/src/pages/guides/index.tsx:232-270|apps/landing/src/pages/index.tsx:1008-1049|apps/landing/src/pages/pricing.tsx:306-347|apps/landing/src/pages/tools/index.tsx:271-314|apps/landing/src/pages/tools/spam-checker.tsx:482-524", + "apps/landing/src/pages/guides/index.tsx:106-157|apps/landing/src/pages/made-by-humans.tsx:12-68|apps/landing/src/pages/vs/activecampaign.tsx:55-86|apps/landing/src/pages/vs/bento.tsx:55-86|apps/landing/src/pages/vs/brevo.tsx:57-88|apps/landing/src/pages/vs/convertkit.tsx:58-89|apps/landing/src/pages/vs/customerio.tsx:53-84|apps/landing/src/pages/vs/index.tsx:93-136|apps/landing/src/pages/vs/klaviyo.tsx:55-86|apps/landing/src/pages/vs/loops.tsx:57-88|apps/landing/src/pages/vs/mailchimp.tsx:58-89|apps/landing/src/pages/vs/mailerlite.tsx:55-86|apps/landing/src/pages/vs/mailgun.tsx:53-84|apps/landing/src/pages/vs/postmark.tsx:54-85|apps/landing/src/pages/vs/resend.tsx:53-84|apps/landing/src/pages/vs/sendgrid.tsx:57-88", + "apps/landing/src/pages/features/email-editor.tsx:78-237|apps/landing/src/pages/features/inbound-email.tsx:77-236|apps/landing/src/pages/features/workflows.tsx:77-240", + "apps/landing/src/pages/vs/brevo.tsx:66-157|apps/landing/src/pages/vs/sendgrid.tsx:66-157", + "apps/landing/src/pages/vs/convertkit.tsx:67-145|apps/landing/src/pages/vs/mailchimp.tsx:67-147", + "apps/landing/src/pages/features/email-editor.tsx:245-378|apps/landing/src/pages/features/workflows.tsx:248-381", + "apps/landing/src/pages/vs/brevo.tsx:175-189|apps/landing/src/pages/vs/convertkit.tsx:175-189|apps/landing/src/pages/vs/customerio.tsx:171-185|apps/landing/src/pages/vs/loops.tsx:175-189|apps/landing/src/pages/vs/mailchimp.tsx:177-191|apps/landing/src/pages/vs/mailgun.tsx:171-185|apps/landing/src/pages/vs/postmark.tsx:172-186|apps/landing/src/pages/vs/resend.tsx:171-185|apps/landing/src/pages/vs/sendgrid.tsx:175-189", + "apps/landing/src/pages/features/email-editor.tsx:323-378|apps/landing/src/pages/features/inbound-email.tsx:327-382|apps/landing/src/pages/features/segments.tsx:386-442|apps/landing/src/pages/features/smtp.tsx:322-377|apps/landing/src/pages/features/workflows.tsx:326-381", + "apps/landing/src/pages/features/email-editor.tsx:245-320|apps/landing/src/pages/features/inbound-email.tsx:244-316|apps/landing/src/pages/features/workflows.tsx:248-323", + "apps/landing/src/pages/vs/mailgun.tsx:147-171|apps/landing/src/pages/vs/postmark.tsx:148-172|apps/landing/src/pages/vs/resend.tsx:147-171", + "apps/landing/src/pages/vs/mailgun.tsx:153-171|apps/landing/src/pages/vs/postmark.tsx:154-172|apps/landing/src/pages/vs/resend.tsx:153-171|apps/landing/src/pages/vs/sendgrid.tsx:157-175", + "apps/landing/src/pages/features/email-editor.tsx:275-315|apps/landing/src/pages/features/inbound-email.tsx:274-314|apps/landing/src/pages/features/segments.tsx:344-384|apps/landing/src/pages/features/smtp.tsx:274-314|apps/landing/src/pages/features/workflows.tsx:278-318", + "apps/landing/src/middleware.ts:4-41|apps/wiki/middleware.ts:4-41", + "apps/landing/src/styles/globals.css:4-67|apps/web/src/styles/globals.css:5-68", + "apps/landing/src/pages/features/email-editor.tsx:270-320|apps/landing/src/pages/features/inbound-email.tsx:269-316|apps/landing/src/pages/features/smtp.tsx:269-319|apps/landing/src/pages/features/workflows.tsx:273-323", + "apps/landing/src/pages/features/email-editor.tsx:322-378|apps/landing/src/pages/features/inbound-email.tsx:326-382|apps/landing/src/pages/features/smtp.tsx:321-377|apps/landing/src/pages/features/workflows.tsx:325-381", + "apps/landing/src/styles/globals.css:67-163|apps/web/src/styles/globals.css:68-164", + "apps/landing/src/pages/vs/customerio.tsx:159-171|apps/landing/src/pages/vs/mailgun.tsx:159-171|apps/landing/src/pages/vs/postmark.tsx:160-172|apps/landing/src/pages/vs/resend.tsx:159-171|apps/landing/src/pages/vs/sendgrid.tsx:163-175", + "apps/landing/src/pages/vs/mailchimp.tsx:159-171|apps/landing/src/pages/vs/mailgun.tsx:153-165|apps/landing/src/pages/vs/postmark.tsx:154-166|apps/landing/src/pages/vs/resend.tsx:153-165|apps/landing/src/pages/vs/sendgrid.tsx:157-169", + "apps/web/src/pages/manage/[id].tsx:73-140|apps/web/src/pages/subscribe/[id].tsx:63-130|apps/web/src/pages/unsubscribe/[id].tsx:63-130", + "apps/landing/src/pages/vs/activecampaign.tsx:148-166|apps/landing/src/pages/vs/bento.tsx:147-165|apps/landing/src/pages/vs/klaviyo.tsx:148-166|apps/landing/src/pages/vs/mailerlite.tsx:148-166", + "apps/web/src/components/EmailEditor/EmailEditor.tsx:403-498|apps/web/src/components/EmailEditor/EmailEditor.tsx:505-604", + "apps/landing/src/pages/features/email-editor.tsx:174-210|apps/landing/src/pages/features/inbound-email.tsx:173-209|apps/landing/src/pages/features/segments.tsx:188-224|apps/landing/src/pages/features/smtp.tsx:186-222|apps/landing/src/pages/features/workflows.tsx:175-211|apps/landing/src/pages/index.tsx:579-623", + "apps/landing/src/pages/vs/brevo.tsx:145-151|apps/landing/src/pages/vs/convertkit.tsx:145-151|apps/landing/src/pages/vs/customerio.tsx:141-147|apps/landing/src/pages/vs/loops.tsx:145-151|apps/landing/src/pages/vs/mailchimp.tsx:147-153|apps/landing/src/pages/vs/mailgun.tsx:141-147|apps/landing/src/pages/vs/postmark.tsx:142-148|apps/landing/src/pages/vs/resend.tsx:141-147|apps/landing/src/pages/vs/sendgrid.tsx:145-151", + "apps/landing/src/pages/vs/brevo.tsx:151-157|apps/landing/src/pages/vs/convertkit.tsx:151-157|apps/landing/src/pages/vs/customerio.tsx:147-153|apps/landing/src/pages/vs/loops.tsx:151-157|apps/landing/src/pages/vs/mailchimp.tsx:153-159|apps/landing/src/pages/vs/mailgun.tsx:147-153|apps/landing/src/pages/vs/postmark.tsx:148-154|apps/landing/src/pages/vs/resend.tsx:147-153|apps/landing/src/pages/vs/sendgrid.tsx:151-157", + "apps/landing/src/pages/vs/brevo.tsx:156-162|apps/landing/src/pages/vs/convertkit.tsx:156-162|apps/landing/src/pages/vs/customerio.tsx:152-158|apps/landing/src/pages/vs/loops.tsx:144-150|apps/landing/src/pages/vs/mailchimp.tsx:164-170|apps/landing/src/pages/vs/mailgun.tsx:158-164|apps/landing/src/pages/vs/postmark.tsx:159-165|apps/landing/src/pages/vs/resend.tsx:158-164|apps/landing/src/pages/vs/sendgrid.tsx:162-168", + "apps/landing/src/pages/vs/brevo.tsx:169-175|apps/landing/src/pages/vs/convertkit.tsx:169-175|apps/landing/src/pages/vs/customerio.tsx:165-171|apps/landing/src/pages/vs/loops.tsx:169-175|apps/landing/src/pages/vs/mailchimp.tsx:171-177|apps/landing/src/pages/vs/mailgun.tsx:165-171|apps/landing/src/pages/vs/postmark.tsx:166-172|apps/landing/src/pages/vs/resend.tsx:165-171|apps/landing/src/pages/vs/sendgrid.tsx:169-175", + "apps/landing/src/pages/guides/index.tsx:231-270|apps/landing/src/pages/pricing.tsx:305-347|apps/landing/src/pages/tools/index.tsx:270-314|apps/landing/src/pages/tools/spam-checker.tsx:481-524", + "apps/landing/src/pages/tools/markdown-to-email.tsx:57-123|apps/landing/src/pages/tools/spam-checker.tsx:241-305|apps/landing/src/pages/tools/verify-email.tsx:68-131", + "apps/landing/src/pages/vs/loops.tsx:151-163|apps/landing/src/pages/vs/mailgun.tsx:147-159|apps/landing/src/pages/vs/postmark.tsx:148-160|apps/landing/src/pages/vs/resend.tsx:147-159", + "apps/web/src/pages/workflows/[id].tsx:1558-1603|apps/web/src/pages/workflows/[id].tsx:2584-2629", + "packages/email/src/emails/BillingLimitExceeded.tsx:66-115|packages/email/src/emails/BillingLimitWarning.tsx:70-119|packages/email/src/emails/DomainUnverified.tsx:66-115|packages/email/src/emails/DomainVerified.tsx:41-90", + "apps/landing/src/pages/vs/activecampaign.tsx:148-161|apps/landing/src/pages/vs/bento.tsx:147-160|apps/landing/src/pages/vs/index.tsx:253-284|apps/landing/src/pages/vs/klaviyo.tsx:148-161|apps/landing/src/pages/vs/mailerlite.tsx:148-161", + "apps/landing/src/pages/vs/convertkit.tsx:141-163|apps/landing/src/pages/vs/customerio.tsx:137-159", + "apps/landing/src/pages/tools/index.tsx:233-318|apps/landing/src/pages/tools/markdown-to-email.tsx:202-280", + "apps/landing/src/pages/vs/brevo.tsx:169-189|apps/landing/src/pages/vs/customerio.tsx:165-185|apps/landing/src/pages/vs/loops.tsx:169-189", + "apps/landing/src/pages/dpa.tsx:518-532|apps/landing/src/pages/dpa.tsx:554-569|apps/landing/src/pages/privacy.tsx:277-290|apps/landing/src/pages/privacy.tsx:343-354|apps/landing/src/pages/privacy.tsx:387-397|apps/landing/src/pages/privacy.tsx:448-461|apps/landing/src/pages/privacy.tsx:487-497|apps/landing/src/pages/privacy.tsx:605-615|apps/landing/src/pages/privacy.tsx:912-923|apps/landing/src/pages/terms.tsx:534-547", + "apps/web/src/pages/workflows/[id].tsx:889-935|apps/web/src/pages/workflows/index.tsx:372-429", + "apps/landing/src/pages/features/email-editor.tsx:147-170|apps/landing/src/pages/features/inbound-email.tsx:146-169|apps/landing/src/pages/features/segments.tsx:161-184|apps/landing/src/pages/features/segments.tsx:275-298|apps/landing/src/pages/features/smtp.tsx:157-182|apps/landing/src/pages/features/workflows.tsx:146-171", + "apps/landing/src/pages/dpa.tsx:247-268|apps/landing/src/pages/dpa.tsx:425-443|apps/landing/src/pages/privacy.tsx:1049-1065|apps/landing/src/pages/privacy.tsx:153-169|apps/landing/src/pages/terms.tsx:349-365|apps/landing/src/pages/terms.tsx:400-416|apps/landing/src/pages/terms.tsx:628-644", + "apps/web/src/pages/workflows/[id].tsx:1847-1892|apps/web/src/pages/workflows/[id].tsx:987-1015", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:270-355|apps/landing/src/pages/guides/email-open-rate.tsx:351-436", + "apps/web/src/pages/subscribe/[id].tsx:63-132|apps/web/src/pages/unsubscribe/[id].tsx:63-132", + "apps/landing/src/pages/guides/email-deliverability.tsx:123-163|apps/landing/src/pages/guides/email-deliverability.tsx:167-207|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:171-212|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:310-351", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:270-351|apps/landing/src/pages/guides/email-open-rate.tsx:338-420", + "apps/web/src/components/WorkflowBuilder.tsx:868-917|apps/web/src/components/WorkflowVisualizer.tsx:515-564", + "apps/landing/src/pages/guides/email-api-guide.tsx:430-459|apps/landing/src/pages/guides/email-api-guide.tsx:469-498|apps/landing/src/pages/guides/email-click-through-rate.tsx:299-328|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:196-225|apps/landing/src/pages/guides/what-is-dkim.tsx:229-255|apps/landing/src/pages/guides/what-is-dmarc.tsx:319-344", + "apps/web/src/pages/onboarding/developer.tsx:127-185|apps/web/src/pages/onboarding/workflows.tsx:137-195", + "apps/web/src/components/DomainsSettings.tsx:32-53|apps/web/src/pages/contacts/[id].tsx:231-252|apps/web/src/pages/contacts/[id].tsx:311-332|apps/web/src/pages/contacts/[id].tsx:362-383|apps/web/src/pages/contacts/[id].tsx:413-434", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:272-351|apps/landing/src/pages/guides/email-open-rate.tsx:328-407", + "apps/api/src/jobs/bulk-contact-processor.ts:96-111|apps/api/src/jobs/campaign-processor.ts:25-40|apps/api/src/jobs/email-processor.ts:295-314|apps/api/src/jobs/import-processor.ts:191-206|apps/api/src/jobs/scheduled-processor.ts:63-78|apps/api/src/jobs/workflow-processor-queue.ts:31-46", + "apps/landing/src/pages/guides/email-api-guide.tsx:474-528|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:201-255|apps/landing/src/pages/guides/what-is-dkim.tsx:222-272", + "apps/landing/src/pages/_app.tsx:12-31|apps/landing/src/pages/index.tsx:32-51|apps/landing/src/pages/tools/index.tsx:10-29|apps/landing/src/pages/tools/markdown-to-email.tsx:13-32|apps/landing/src/pages/tools/spam-checker.tsx:12-31|apps/landing/src/pages/tools/verify-email.tsx:15-34", + "apps/landing/src/pages/guides/email-open-rate.tsx:160-202|apps/landing/src/pages/guides/email-open-rate.tsx:95-136", + "apps/landing/src/pages/guides/email-api-guide.tsx:537-589|apps/landing/src/pages/guides/email-click-through-rate.tsx:143-195|apps/landing/src/pages/guides/email-open-rate.tsx:272-325", + "apps/landing/src/pages/vs/brevo.tsx:151-169|apps/landing/src/pages/vs/convertkit.tsx:151-169", + "apps/landing/src/pages/vs/brevo.tsx:145-157|apps/landing/src/pages/vs/postmark.tsx:142-154|apps/landing/src/pages/vs/sendgrid.tsx:145-157", + "apps/landing/src/pages/tools/spam-checker.tsx:241-310|apps/landing/src/pages/tools/verify-email.tsx:68-136", + "packages/email/src/emails/BillingLimitExceeded.tsx:63-115|packages/email/src/emails/BillingLimitWarning.tsx:67-119|packages/email/src/emails/DomainVerified.tsx:38-90", + "apps/landing/src/pages/features/email-editor.tsx:208-232|apps/landing/src/pages/features/inbound-email.tsx:207-231|apps/landing/src/pages/features/segments.tsx:222-246|apps/landing/src/pages/features/segments.tsx:338-362|apps/landing/src/pages/features/workflows.tsx:209-235", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:159-175|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:325-341|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:372-388|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:448-464|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:466-482|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:484-500|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:488-506", + "apps/web/src/components/EmailEditor/EmailEditor.tsx:413-449|apps/web/src/components/EmailEditor/EmailEditor.tsx:519-555|apps/web/src/components/EmailPreviewModal.tsx:72-110", + "apps/web/src/pages/workflows/[id].tsx:1444-1475|apps/web/src/pages/workflows/[id].tsx:2348-2379", + "apps/web/src/components/BillingLimits.tsx:245-274|apps/web/src/components/BillingLimits.tsx:275-304|apps/web/src/components/BillingLimits.tsx:305-334", + "apps/landing/src/pages/guides/index.tsx:228-283|apps/landing/src/pages/tools/index.tsx:267-327", + "apps/landing/src/pages/dpa.tsx:239-268|apps/landing/src/pages/privacy.tsx:1043-1065|apps/landing/src/pages/terms.tsx:394-416|apps/landing/src/pages/terms.tsx:622-644", + "apps/landing/src/pages/guides/email-api-guide.tsx:461-531|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:189-258", + "apps/landing/src/pages/privacy.tsx:176-192|apps/landing/src/pages/privacy.tsx:210-225|apps/landing/src/pages/privacy.tsx:304-319|apps/landing/src/pages/privacy.tsx:372-387|apps/landing/src/pages/privacy.tsx:471-486", + "apps/landing/src/pages/vs/brevo.tsx:141-151|apps/landing/src/pages/vs/mailchimp.tsx:143-153|apps/landing/src/pages/vs/sendgrid.tsx:141-151", + "apps/web/src/pages/manage/[id].tsx:25-75|apps/web/src/pages/subscribe/[id].tsx:25-65|apps/web/src/pages/unsubscribe/[id].tsx:25-65", + "apps/landing/src/pages/guides/email-api-guide.tsx:329-340|apps/landing/src/pages/guides/email-api-guide.tsx:343-355|apps/landing/src/pages/guides/email-api-guide.tsx:358-370|apps/landing/src/pages/guides/email-api-guide.tsx:37-48|apps/landing/src/pages/guides/email-api-guide.tsx:372-384|apps/landing/src/pages/guides/email-api-guide.tsx:50-62", + "apps/web/src/pages/templates/index.tsx:207-257|apps/web/src/pages/workflows/index.tsx:227-270", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:413-453|apps/web/src/components/EmailEditor/Toolbar.tsx:514-554", + "apps/api/src/controllers/Users.ts:284-294|apps/api/src/controllers/Users.ts:308-318|apps/api/src/controllers/Users.ts:574-584|apps/api/src/controllers/Users.ts:598-608|apps/api/src/controllers/Users.ts:672-682", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:229-263|apps/landing/src/pages/guides/email-click-through-rate.tsx:272-306|apps/landing/src/pages/guides/email-click-through-rate.tsx:328-361", + "apps/landing/src/pages/guides/email-api-guide.tsx:422-489|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:189-254", + "apps/landing/src/pages/guides/email-api-guide.tsx:543-585|apps/landing/src/pages/guides/email-click-through-rate.tsx:149-191|apps/landing/src/pages/guides/email-open-rate.tsx:271-314", + "apps/landing/src/pages/guides/what-is-dkim.tsx:59-99|apps/landing/src/pages/guides/what-is-dmarc.tsx:58-98|apps/landing/src/pages/guides/what-is-spf.tsx:58-98", + "apps/web/src/pages/contacts/[id].tsx:231-253|apps/web/src/pages/contacts/[id].tsx:311-333|apps/web/src/pages/contacts/[id].tsx:362-384|apps/web/src/pages/contacts/[id].tsx:413-435", + "apps/landing/src/pages/dpa.tsx:457-470|apps/landing/src/pages/dpa.tsx:530-543|apps/landing/src/pages/dpa.tsx:595-608|apps/landing/src/pages/privacy.tsx:233-244|apps/landing/src/pages/privacy.tsx:259-272|apps/landing/src/pages/privacy.tsx:332-343", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:60-96|apps/web/src/components/EmailEditor/Toolbar.tsx:72-102", + "apps/web/src/components/BillingConsumption.tsx:40-97|apps/web/src/components/BillingInvoices.tsx:14-71", + "apps/landing/src/pages/vs/convertkit.tsx:169-189|apps/landing/src/pages/vs/sendgrid.tsx:169-189", + "apps/landing/src/pages/privacy.tsx:1031-1054|apps/landing/src/pages/terms.tsx:256-279|apps/landing/src/pages/terms.tsx:610-633", + "apps/api/src/controllers/Contacts.ts:426-440|apps/api/src/controllers/Contacts.ts:461-474|apps/api/src/controllers/Contacts.ts:495-508", + "apps/landing/src/pages/dpa.tsx:520-535|apps/landing/src/pages/privacy.tsx:345-355|apps/landing/src/pages/privacy.tsx:921-935|apps/landing/src/pages/terms.tsx:141-154|apps/landing/src/pages/terms.tsx:287-298|apps/landing/src/pages/terms.tsx:536-551", + "apps/landing/src/pages/tools/markdown-to-email.tsx:238-288|apps/landing/src/pages/tools/verify-email.tsx:237-287", + "apps/landing/src/pages/tools/index.tsx:67-95|apps/landing/src/pages/tools/markdown-to-email.tsx:57-88|apps/landing/src/pages/tools/spam-checker.tsx:241-269|apps/landing/src/pages/tools/verify-email.tsx:68-96", + "apps/landing/src/pages/guides/email-api-guide.tsx:415-469|apps/landing/src/pages/guides/email-click-through-rate.tsx:284-338", + "apps/web/src/pages/campaigns/index.tsx:210-245|apps/web/src/pages/campaigns/index.tsx:294-329", + "apps/landing/src/pages/dpa.tsx:570-586|apps/landing/src/pages/privacy.tsx:846-859|apps/landing/src/pages/privacy.tsx:947-963|apps/landing/src/pages/terms.tsx:225-238|apps/landing/src/pages/terms.tsx:519-536", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:248-283|apps/landing/src/pages/guides/email-click-through-rate.tsx:304-339|apps/landing/src/pages/guides/what-is-dmarc.tsx:274-308", + "apps/landing/src/pages/guides/email-api-guide.tsx:334-355|apps/landing/src/pages/guides/email-api-guide.tsx:363-384|apps/landing/src/pages/guides/email-api-guide.tsx:41-62", + "apps/web/src/components/WorkflowBuilder.tsx:316-360|apps/web/src/components/WorkflowVisualizer.tsx:150-206", + "apps/landing/src/pages/guides/email-open-rate.tsx:120-150|apps/landing/src/pages/guides/email-open-rate.tsx:176-206", + "apps/landing/src/pages/tools/index.tsx:267-314|apps/landing/src/pages/tools/spam-checker.tsx:478-524", + "apps/web/src/components/BillingLimits.tsx:180-205|apps/web/src/components/DomainsSettings.tsx:269-305|apps/web/src/pages/settings/index.tsx:463-517|apps/web/src/pages/settings/index.tsx:641-664", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:126-171|apps/landing/src/pages/guides/email-sender-reputation.tsx:72-117", + "apps/api/src/controllers/Activity.ts:66-71|apps/api/src/controllers/Analytics.ts:22-27|apps/api/src/controllers/Analytics.ts:68-73|apps/api/src/controllers/Events.ts:54-59", + "apps/landing/src/pages/guides/email-api-guide.tsx:535-589|apps/landing/src/pages/guides/email-click-through-rate.tsx:141-195", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:81-102|apps/landing/src/pages/guides/email-deliverability.tsx:33-57|apps/landing/src/pages/guides/email-sender-reputation.tsx:35-59", + "apps/landing/src/pages/dpa.tsx:520-536|apps/landing/src/pages/privacy.tsx:345-356|apps/landing/src/pages/privacy.tsx:921-936|apps/landing/src/pages/terms.tsx:287-299|apps/landing/src/pages/terms.tsx:536-552", + "apps/landing/src/pages/guides/email-api-guide.tsx:394-420|apps/landing/src/pages/guides/email-click-through-rate.tsx:261-288|apps/landing/src/pages/guides/email-click-through-rate.tsx:317-344", + "apps/landing/src/pages/dpa.tsx:444-463|apps/landing/src/pages/dpa.tsx:574-591|apps/landing/src/pages/dpa.tsx:647-663|apps/landing/src/pages/privacy.tsx:943-957|apps/landing/src/pages/terms.tsx:512-530", + "apps/web/src/pages/contacts/[id].tsx:311-337|apps/web/src/pages/contacts/[id].tsx:362-388|apps/web/src/pages/contacts/[id].tsx:413-438", + "apps/landing/src/pages/privacy.tsx:1043-1065|apps/landing/src/pages/terms.tsx:393-416|apps/landing/src/pages/terms.tsx:622-644", + "apps/web/src/pages/contacts/[id].tsx:311-346|apps/web/src/pages/contacts/[id].tsx:362-397", + "apps/landing/src/pages/privacy.tsx:1031-1065|apps/landing/src/pages/terms.tsx:610-644", + "apps/landing/src/pages/privacy.tsx:170-194|apps/landing/src/pages/privacy.tsx:202-227|apps/landing/src/pages/privacy.tsx:368-389", + "apps/landing/src/pages/vs/convertkit.tsx:163-175|apps/landing/src/pages/vs/loops.tsx:163-175", + "apps/api/src/jobs/email-processor.ts:112-145|apps/api/src/services/EmailService.ts:360-399", + "apps/landing/src/pages/privacy.tsx:1042-1062|apps/landing/src/pages/privacy.tsx:1068-1089|apps/landing/src/pages/terms.tsx:621-641", + "apps/landing/src/pages/guides/email-api-guide.tsx:358-388|apps/landing/src/pages/guides/email-api-guide.tsx:37-67", + "apps/web/src/pages/onboarding/developer.tsx:127-148|apps/web/src/pages/onboarding/marketing.tsx:77-98|apps/web/src/pages/onboarding/workflows.tsx:137-158", + "apps/landing/src/pages/guides/email-deliverability.tsx:130-166|apps/landing/src/pages/guides/email-deliverability.tsx:174-210|apps/landing/src/pages/guides/email-deliverability.tsx:218-253", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:328-343|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:451-466|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:469-484|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:487-502|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:429-445", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:333-366|apps/web/src/components/EmailEditor/Toolbar.tsx:431-464", + "apps/web/src/pages/auth/login.tsx:120-157|apps/web/src/pages/auth/signup.tsx:80-124", + "apps/web/src/pages/workflows/[id].tsx:1190-1218|apps/web/src/pages/workflows/[id].tsx:2095-2123", + "apps/web/src/pages/subscribe/[id].tsx:24-65|apps/web/src/pages/unsubscribe/[id].tsx:24-65", + "apps/landing/src/pages/guides/email-api-guide.tsx:531-578|apps/landing/src/pages/guides/email-deliverability.tsx:67-113", + "apps/web/src/pages/workflows/[id].tsx:1607-1641|apps/web/src/pages/workflows/[id].tsx:2633-2667", + "apps/web/src/pages/workflows/[id].tsx:1704-1726|apps/web/src/pages/workflows/[id].tsx:2806-2828", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:458-472|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:539-553|apps/landing/src/pages/guides/what-is-dkim.tsx:459-473|apps/landing/src/pages/guides/what-is-dmarc.tsx:365-379|apps/landing/src/pages/guides/what-is-spf.tsx:348-362", + "apps/api/src/services/BillingLimitService.ts:602-622|apps/api/src/services/BillingLimitService.ts:654-674", + "apps/landing/src/pages/dpa.tsx:602-630|apps/landing/src/pages/privacy.tsx:1041-1060|apps/landing/src/pages/terms.tsx:620-639", + "apps/landing/src/pages/dpa.tsx:485-501|apps/landing/src/pages/dpa.tsx:571-587|apps/landing/src/pages/privacy.tsx:948-966|apps/landing/src/pages/terms.tsx:520-537", + "apps/landing/src/pages/dpa.tsx:443-467|apps/landing/src/pages/privacy.tsx:942-961|apps/landing/src/pages/terms.tsx:511-534", + "apps/web/src/components/CampaignSelectionDialog.tsx:213-247|apps/web/src/components/TemplateSelectionDialog.tsx:249-282", + "apps/api/src/jobs/domain-verification.ts:76-101|apps/api/src/services/DomainService.ts:93-112", + "apps/api/src/controllers/Users.ts:378-401|apps/api/src/controllers/Users.ts:495-519", + "apps/landing/src/pages/guides/email-api-guide.tsx:77-118|apps/landing/src/pages/guides/email-click-through-rate.tsx:140-184", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:401-442|apps/landing/src/pages/guides/what-is-dkim.tsx:281-324", + "apps/landing/src/pages/privacy.tsx:705-727|apps/landing/src/pages/privacy.tsx:738-758|apps/landing/src/pages/privacy.tsx:995-1013", + "apps/web/src/pages/onboarding/developer.tsx:150-171|apps/web/src/pages/onboarding/marketing.tsx:93-120|apps/web/src/pages/onboarding/workflows.tsx:160-181", + "apps/landing/src/pages/guides/email-api-guide.tsx:78-122|apps/landing/src/pages/guides/email-deliverability.tsx:71-117", + "apps/landing/src/pages/privacy.tsx:942-973|apps/landing/src/pages/terms.tsx:511-544", + "apps/landing/src/pages/privacy.tsx:508-530|apps/landing/src/pages/privacy.tsx:538-560|apps/landing/src/pages/privacy.tsx:568-589", + "apps/landing/src/pages/terms.tsx:216-233|apps/landing/src/pages/terms.tsx:267-289|apps/landing/src/pages/terms.tsx:328-349", + "apps/api/src/middleware/auth.ts:157-183|apps/api/src/middleware/auth.ts:88-114", + "apps/web/src/pages/workflows/[id].tsx:1076-1264|apps/web/src/pages/workflows/[id].tsx:1872-1895", + "apps/landing/src/lib/editorColors.ts:5-38|apps/web/src/components/EmailEditor/Toolbar.tsx:178-211", + "packages/email/src/emails/BillingLimitExceeded.tsx:60-104|packages/email/src/emails/ProjectDisabledPayment.tsx:30-73", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:407-416|apps/landing/src/pages/guides/email-bounce-rate.tsx:418-428|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:339-349|apps/landing/src/pages/guides/email-open-rate.tsx:206-215|apps/landing/src/pages/guides/email-open-rate.tsx:216-226", + "apps/landing/src/pages/index.tsx:529-552|apps/landing/src/pages/tools/index.tsx:233-256|apps/landing/src/pages/tools/markdown-to-email.tsx:202-225", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:404-446|apps/landing/src/pages/guides/what-is-dkim.tsx:291-334", + "apps/landing/src/pages/dpa.tsx:443-460|apps/landing/src/pages/privacy.tsx:942-954|apps/landing/src/pages/terms.tsx:511-526|apps/landing/src/pages/terms.tsx:583-597", + "apps/landing/src/pages/privacy.tsx:994-1006|apps/landing/src/pages/terms.tsx:365-378|apps/landing/src/pages/terms.tsx:444-456|apps/landing/src/pages/terms.tsx:609-621", + "apps/landing/src/pages/dpa.tsx:569-591|apps/landing/src/pages/privacy.tsx:946-969|apps/landing/src/pages/terms.tsx:518-540", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:58-98|apps/landing/src/pages/guides/what-is-spf.tsx:58-98", + "apps/landing/src/pages/guides/email-deliverability.tsx:28-57|apps/landing/src/pages/guides/email-sender-reputation.tsx:29-59", + "apps/api/src/controllers/Segments.ts:135-141|apps/api/src/controllers/Segments.ts:205-211|apps/api/src/controllers/Segments.ts:225-231|apps/api/src/controllers/Segments.ts:31-37", + "apps/api/src/controllers/Templates.ts:136-142|apps/api/src/controllers/Templates.ts:156-162|apps/api/src/controllers/Templates.ts:176-182|apps/api/src/controllers/Templates.ts:37-43", + "apps/landing/src/pages/terms.tsx:452-476|apps/landing/src/pages/terms.tsx:481-505", + "apps/web/src/components/WorkflowBuilder.tsx:146-169|apps/web/src/components/WorkflowVisualizer.tsx:96-119", + "apps/landing/src/pages/privacy.tsx:188-215|apps/landing/src/pages/privacy.tsx:473-496", + "apps/landing/src/pages/guides/email-api-guide.tsx:349-374|apps/landing/src/pages/guides/email-api-guide.tsx:41-65", + "apps/landing/src/pages/privacy.tsx:198-227|apps/landing/src/pages/privacy.tsx:364-389", + "apps/landing/src/pages/privacy.tsx:346-368|apps/landing/src/pages/privacy.tsx:906-928", + "apps/web/src/pages/campaigns/create.tsx:255-295|apps/web/src/pages/templates/create.tsx:148-180", + "apps/landing/src/pages/privacy.tsx:175-200|apps/landing/src/pages/privacy.tsx:302-327", + "packages/email/src/emails/ProjectDisabled.tsx:22-59|packages/email/src/emails/ProjectDisabledPayment.tsx:20-56", + "apps/web/src/components/CampaignSelectionDialog.tsx:277-303|apps/web/src/components/TemplateSelectionDialog.tsx:314-340", + "apps/web/src/pages/campaigns/[id].tsx:491-512|apps/web/src/pages/campaigns/create.tsx:255-276|apps/web/src/pages/templates/create.tsx:148-169", + "apps/landing/src/pages/dpa.tsx:122-139|apps/landing/src/pages/dpa.tsx:395-412|apps/landing/src/pages/privacy.tsx:245-259|apps/landing/src/pages/terms.tsx:297-312", + "apps/api/src/middleware/auth.ts:167-197|apps/api/src/middleware/auth.ts:235-264", + "apps/landing/src/pages/privacy.tsx:177-201|apps/landing/src/pages/privacy.tsx:827-850", + "apps/web/src/pages/_document.tsx:33-54|apps/wiki/app/layout.tsx:45-67", + "apps/landing/src/lib/emailHtmlConverter.ts:9-157|apps/web/src/components/EmailEditor/emailHtmlConverter.ts:9-146", + "apps/landing/src/pages/index.tsx:32-91|apps/landing/src/pages/tools/index.tsx:10-53|apps/landing/src/pages/tools/spam-checker.tsx:12-84", + "apps/web/src/components/DomainsSettings.tsx:499-530|apps/web/src/components/DomainsSettings.tsx:625-656", + "apps/api/src/middleware/auth.ts:125-142|apps/api/src/middleware/auth.ts:194-211|apps/api/src/middleware/auth.ts:261-278|apps/api/src/middleware/auth.ts:304-322", + "apps/web/src/components/DomainsSettings.tsx:277-309|apps/web/src/pages/settings/index.tsx:489-521", + "apps/web/src/pages/campaigns/create.tsx:104-112|apps/web/src/pages/campaigns/create.tsx:87-95", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:133-144|apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:192-203|apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:229-240|apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:266-277", + "apps/landing/src/pages/dpa.tsx:233-254|apps/landing/src/pages/privacy.tsx:1029-1045|apps/landing/src/pages/terms.tsx:343-361", + "apps/landing/src/pages/privacy.tsx:374-395|apps/landing/src/pages/privacy.tsx:837-858", + "apps/web/src/components/WorkflowBuilder.tsx:62-104|apps/web/src/components/WorkflowVisualizer.tsx:40-82|apps/web/src/pages/workflows/[id].tsx:105-147", + "apps/landing/src/pages/privacy.tsx:994-1008|apps/landing/src/pages/terms.tsx:444-458|apps/landing/src/pages/terms.tsx:609-623", + "apps/api/src/controllers/Users.ts:246-253|apps/api/src/controllers/Users.ts:378-385|apps/api/src/controllers/Users.ts:495-502", + "apps/landing/src/pages/dpa.tsx:282-297|apps/landing/src/pages/privacy.tsx:678-697|apps/landing/src/pages/terms.tsx:424-439", + "apps/landing/src/pages/guides/what-is-dkim.tsx:220-253|apps/landing/src/pages/guides/what-is-dmarc.tsx:272-307", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:213-228|apps/landing/src/pages/guides/email-sender-reputation.tsx:239-254|apps/landing/src/pages/guides/email-sender-reputation.tsx:265-280|apps/landing/src/pages/guides/what-is-spf.tsx:227-242", + "apps/landing/src/pages/dpa.tsx:420-438|apps/landing/src/pages/dpa.tsx:488-504|apps/landing/src/pages/terms.tsx:584-600", + "apps/landing/src/pages/dpa.tsx:278-302|apps/landing/src/pages/terms.tsx:420-444", + "apps/web/src/pages/workflows/[id].tsx:1044-1059|apps/web/src/pages/workflows/[id].tsx:1945-1960", + "apps/api/src/services/EmailService.ts:675-695|apps/web/src/lib/emailStyles.ts:24-44", + "apps/landing/src/pages/terms.tsx:217-237|apps/landing/src/pages/terms.tsx:448-468", + "apps/landing/src/pages/dpa.tsx:216-232|apps/landing/src/pages/dpa.tsx:370-389|apps/landing/src/pages/terms.tsx:495-511", + "apps/landing/src/pages/dpa.tsx:456-472|apps/landing/src/pages/dpa.tsx:529-545|apps/landing/src/pages/privacy.tsx:256-274", + "apps/landing/src/pages/dpa.tsx:286-302|apps/landing/src/pages/dpa.tsx:465-481|apps/landing/src/pages/terms.tsx:428-444", + "apps/landing/src/pages/privacy.tsx:1069-1090|apps/landing/src/pages/privacy.tsx:725-750", + "apps/web/src/components/WorkflowBuilder.tsx:654-671|apps/web/src/components/WorkflowVisualizer.tsx:423-449", + "apps/web/src/components/WorkflowVisualizer.tsx:266-290|apps/web/src/components/WorkflowVisualizer.tsx:362-402", + "apps/landing/src/pages/privacy.tsx:597-616|apps/landing/src/pages/privacy.tsx:904-924", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:212-231|apps/landing/src/pages/guides/email-open-rate.tsx:250-274", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:407-425|apps/landing/src/pages/guides/what-is-dkim.tsx:287-306|apps/landing/src/pages/guides/what-is-dkim.tsx:311-328|apps/landing/src/pages/guides/what-is-spf.tsx:312-328", + "apps/landing/src/pages/dpa.tsx:657-670|apps/landing/src/pages/privacy.tsx:401-413|apps/landing/src/pages/privacy.tsx:423-438|apps/landing/src/pages/terms.tsx:173-187", + "apps/landing/src/pages/dpa.tsx:236-265|apps/landing/src/pages/privacy.tsx:720-747", + "apps/landing/src/pages/dpa.tsx:196-218|apps/landing/src/pages/dpa.tsx:269-291", + "apps/landing/src/pages/vs/index.tsx:224-258|apps/landing/src/pages/vs/mailgun.tsx:134-140|apps/landing/src/pages/vs/resend.tsx:134-140", + "apps/web/src/pages/workflows/[id].tsx:1106-1126|apps/web/src/pages/workflows/[id].tsx:1981-2001", + "apps/web/src/pages/auth/login.tsx:274-295|apps/web/src/pages/auth/reset-password.tsx:180-201|apps/web/src/pages/auth/signup.tsx:204-225", + "apps/landing/src/pages/guides/email-deliverability.tsx:311-341|apps/landing/src/pages/guides/what-is-spf.tsx:184-216", + "apps/api/src/services/EmailService.ts:663-673|apps/web/src/lib/emailStyles.ts:3-14", + "apps/landing/src/pages/dpa.tsx:457-478|apps/landing/src/pages/dpa.tsx:595-620", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:84-95|apps/landing/src/pages/guides/email-open-rate.tsx:104-115|apps/landing/src/pages/guides/email-open-rate.tsx:170-181", + "apps/landing/src/pages/privacy.tsx:531-560|apps/landing/src/pages/privacy.tsx:561-589", + "apps/landing/src/pages/privacy.tsx:1070-1090|apps/landing/src/pages/privacy.tsx:717-741", + "apps/landing/src/pages/dpa.tsx:520-537|apps/landing/src/pages/privacy.tsx:345-357|apps/landing/src/pages/terms.tsx:287-301", + "apps/landing/src/pages/dpa.tsx:594-607|apps/landing/src/pages/privacy.tsx:169-182|apps/landing/src/pages/privacy.tsx:331-342", + "apps/web/src/pages/subscribe/[id].tsx:132-157|apps/web/src/pages/unsubscribe/[id].tsx:132-158", + "apps/landing/src/pages/dpa.tsx:210-229|apps/landing/src/pages/dpa.tsx:273-293", + "apps/api/src/controllers/Workflows.ts:139-145|apps/api/src/controllers/Workflows.ts:385-391|apps/api/src/controllers/Workflows.ts:61-67", + "apps/api/src/controllers/Templates.ts:15-23|apps/api/src/controllers/Workflows.ts:15-24", + "apps/web/src/pages/contacts/index.tsx:630-672|apps/web/src/pages/contacts/index.tsx:915-952", + "apps/api/src/controllers/Segments.ts:205-213|apps/api/src/controllers/Segments.ts:225-233|apps/api/src/controllers/Segments.ts:31-39", + "apps/api/src/controllers/Templates.ts:156-164|apps/api/src/controllers/Templates.ts:176-184|apps/api/src/controllers/Templates.ts:37-45", + "apps/landing/src/pages/privacy.tsx:247-264|apps/landing/src/pages/privacy.tsx:622-638|apps/landing/src/pages/privacy.tsx:653-670", + "apps/api/src/controllers/Webhooks.ts:362-378|apps/api/src/controllers/Webhooks.ts:393-408", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:140-156|apps/landing/src/pages/guides/what-is-dmarc.tsx:160-176", + "apps/landing/src/pages/privacy.tsx:705-728|apps/landing/src/pages/privacy.tsx:995-1014", + "apps/landing/src/pages/dpa.tsx:450-473|apps/landing/src/pages/dpa.tsx:526-546", + "apps/landing/src/pages/terms.tsx:215-233|apps/landing/src/pages/terms.tsx:266-289", + "apps/landing/src/pages/dpa.tsx:518-541|apps/landing/src/pages/privacy.tsx:343-361", + "apps/web/src/pages/campaigns/[id].tsx:492-519|apps/web/src/pages/templates/[id].tsx:227-254", + "apps/landing/src/pages/terms.tsx:325-344|apps/landing/src/pages/terms.tsx:417-436", + "apps/landing/src/pages/dpa.tsx:517-532|apps/landing/src/pages/dpa.tsx:553-569|apps/landing/src/pages/privacy.tsx:447-461", + "apps/landing/src/lib/network.ts:4-33|apps/web/src/lib/network.ts:5-28", + "apps/api/src/jobs/domain-verification.ts:166-173|apps/api/src/services/DomainService.ts:189-196", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:191-235|apps/landing/src/pages/guides/email-sender-reputation.tsx:244-274", + "apps/landing/src/pages/dpa.tsx:604-633|apps/landing/src/pages/privacy.tsx:734-756", + "apps/landing/src/pages/privacy.tsx:595-614|apps/landing/src/pages/terms.tsx:451-469", + "apps/api/src/controllers/Users.ts:284-300|apps/api/src/controllers/Users.ts:574-590", + "apps/web/src/pages/campaigns/create.tsx:36-45|apps/web/src/pages/templates/create.tsx:26-35", + "apps/api/src/services/ContactService.ts:726-743|apps/api/src/services/ContactService.ts:775-791", + "apps/web/src/pages/manage/[id].tsx:133-149|apps/web/src/pages/subscribe/[id].tsx:160-176|apps/web/src/pages/unsubscribe/[id].tsx:171-187", + "apps/web/src/pages/onboarding/developer.tsx:112-127|apps/web/src/pages/onboarding/marketing.tsx:62-77|apps/web/src/pages/onboarding/workflows.tsx:122-137", + "apps/web/src/pages/auth/verify-email.tsx:175-197|apps/web/src/pages/auth/verify-email.tsx:256-278", + "apps/api/src/services/EmailVerificationService.ts:174-186|apps/api/src/services/EmailVerificationService.ts:234-246", + "apps/api/src/controllers/Projects.ts:108-116|apps/api/src/controllers/Projects.ts:21-45|apps/api/src/controllers/Projects.ts:85-93", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:284-298|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:365-379|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:487-503", + "apps/api/src/controllers/Contacts.ts:202-209|apps/api/src/controllers/Contacts.ts:238-245|apps/api/src/controllers/Contacts.ts:260-267", + "apps/web/src/components/WorkflowBuilder.tsx:59-112|apps/web/src/components/WorkflowVisualizer.tsx:23-122", + "apps/landing/src/pages/guides/what-is-dkim.tsx:243-272|apps/landing/src/pages/guides/what-is-spf.tsx:258-288", + "apps/web/src/pages/auth/login.tsx:265-295|apps/web/src/pages/auth/signup.tsx:195-225", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:53-59|apps/web/src/components/EmailEditor/Toolbar.tsx:64-70", + "apps/web/src/pages/manage/[id].tsx:17-24|apps/web/src/pages/subscribe/[id].tsx:17-24|apps/web/src/pages/unsubscribe/[id].tsx:17-24", + "apps/api/src/controllers/Users.ts:598-614|apps/api/src/controllers/Users.ts:672-696", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:302-323|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:437-458", + "apps/web/src/components/CampaignSelectionDialog.tsx:144-161|apps/web/src/pages/campaigns/index.tsx:249-266", + "apps/landing/src/pages/dpa.tsx:122-147|apps/landing/src/pages/dpa.tsx:395-420", + "apps/landing/src/pages/privacy.tsx:346-363|apps/landing/src/pages/privacy.tsx:480-497", + "apps/landing/src/pages/dpa.tsx:126-152|apps/landing/src/pages/privacy.tsx:874-898", + "apps/landing/src/pages/dpa.tsx:444-468|apps/landing/src/pages/terms.tsx:523-545", + "apps/landing/src/pages/dpa.tsx:276-294|apps/landing/src/pages/terms.tsx:214-232", + "apps/landing/src/pages/dpa.tsx:194-208|apps/landing/src/pages/dpa.tsx:655-669|apps/landing/src/pages/terms.tsx:171-185", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:429-446|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:515-532|apps/landing/src/pages/guides/email-sender-reputation.tsx:544-561", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:303-319|apps/landing/src/pages/guides/email-sender-reputation.tsx:337-353|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:440-453", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:86-103|apps/web/src/components/EmailEditor/Toolbar.tsx:164-211", + "apps/landing/src/pages/privacy.tsx:339-356|apps/landing/src/pages/terms.tsx:530-552", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:363-390|apps/landing/src/pages/guides/email-sender-reputation.tsx:401-429", + "apps/landing/src/pages/terms.tsx:444-460|apps/landing/src/pages/terms.tsx:609-625", + "apps/api/src/jobs/api-request-cleanup-processor.ts:99-106|apps/api/src/services/QueueService.ts:31-38", + "apps/landing/src/pages/dpa.tsx:407-432|apps/landing/src/pages/privacy.tsx:248-269", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:411-428|apps/landing/src/pages/guides/email-open-rate.tsx:209-226", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:319-341|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:366-388", + "apps/web/src/pages/contacts/[id].tsx:285-304|apps/web/src/pages/contacts/[id].tsx:335-355", + "apps/web/src/pages/workflows/[id].tsx:1552-1566|apps/web/src/pages/workflows/[id].tsx:882-897", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:238-262|apps/landing/src/pages/guides/email-open-rate.tsx:325-348", + "apps/api/src/jobs/import-processor.ts:192-206|apps/api/src/jobs/scheduled-processor.ts:64-78", + "apps/web/src/pages/contacts/index.tsx:689-702|apps/web/src/pages/contacts/index.tsx:963-976", + "apps/landing/src/pages/dpa.tsx:417-439|apps/landing/src/pages/dpa.tsx:487-505", + "apps/landing/src/pages/dpa.tsx:493-514|apps/landing/src/pages/terms.tsx:447-464", + "apps/landing/src/pages/dpa.tsx:556-577|apps/landing/src/pages/privacy.tsx:1066-1083", + "apps/api/src/services/QueueService.ts:304-327|apps/api/src/services/QueueService.ts:371-394", + "apps/landing/src/pages/terms.tsx:265-282|apps/landing/src/pages/terms.tsx:492-508", + "apps/landing/src/pages/guides/email-open-rate.tsx:101-112|apps/landing/src/pages/guides/email-open-rate.tsx:167-178|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:30-41", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:451-472|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:532-553", + "apps/landing/src/pages/guides/what-is-dkim.tsx:452-473|apps/landing/src/pages/guides/what-is-spf.tsx:341-362", + "apps/web/src/components/WorkflowBuilder.tsx:490-501|apps/web/src/components/WorkflowVisualizer.tsx:240-251", + "apps/web/src/components/ActivityItem.tsx:29-44|apps/web/src/components/ActivityItem.tsx:64-79", + "apps/api/src/controllers/Workflows.ts:343-352|apps/api/src/controllers/Workflows.ts:364-373", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:297-319|apps/landing/src/pages/guides/what-is-spf.tsx:243-271", + "packages/email/src/emails/BillingLimitExceeded.tsx:36-55|packages/email/src/emails/BillingLimitWarning.tsx:40-59", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:108-121|apps/landing/src/pages/guides/email-click-through-rate.tsx:90-103", + "apps/api/src/services/DomainService.ts:144-152|apps/api/src/services/DomainService.ts:191-199", + "apps/web/src/pages/campaigns/create.tsx:70-75|apps/web/src/pages/campaigns/create.tsx:86-91", + "apps/landing/src/pages/guides/email-api-guide.tsx:391-414|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:186-209", + "apps/landing/src/pages/guides/email-api-guide.tsx:511-531|apps/landing/src/pages/guides/email-click-through-rate.tsx:345-365|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:238-258", + "apps/api/src/controllers/Users.ts:169-191|apps/api/src/controllers/Users.ts:248-270", + "apps/landing/src/pages/privacy.tsx:844-859|apps/landing/src/pages/privacy.tsx:954-974", + "apps/landing/src/pages/dpa.tsx:214-232|apps/landing/src/pages/terms.tsx:493-511", + "apps/landing/src/pages/dpa.tsx:594-611|apps/landing/src/pages/privacy.tsx:331-346", + "apps/api/src/controllers/Activity.ts:66-71|apps/api/src/controllers/Events.ts:54-59", + "apps/landing/src/pages/privacy.tsx:620-640|apps/landing/src/pages/privacy.tsx:651-672", + "apps/landing/src/pages/privacy.tsx:383-400|apps/landing/src/pages/privacy.tsx:483-500", + "apps/api/src/jobs/domain-verification.ts:127-135|apps/api/src/jobs/domain-verification.ts:168-176", + "apps/landing/src/pages/guides/email-deliverability.tsx:346-368|apps/landing/src/pages/guides/what-is-dmarc.tsx:349-371", + "apps/landing/src/pages/privacy.tsx:381-397|apps/landing/src/pages/terms.tsx:526-547", + "apps/landing/src/pages/privacy.tsx:1005-1025|apps/landing/src/pages/terms.tsx:591-612", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:416-435|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:336-356", + "apps/landing/src/pages/dpa.tsx:232-251|apps/landing/src/pages/privacy.tsx:701-720", + "apps/api/src/services/WorkflowService.ts:503-526|apps/api/src/services/WorkflowService.ts:751-774", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:445-464|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:480-500", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:199-211|apps/landing/src/pages/guides/email-bounce-rate.tsx:217-229", + "apps/web/src/components/EmailEditor/EmailEditor.tsx:246-256|apps/web/src/components/EmailEditor/EmailEditor.tsx:265-275", + "apps/landing/src/pages/dpa.tsx:501-517|apps/landing/src/pages/dpa.tsx:538-553|apps/landing/src/pages/terms.tsx:540-555", + "apps/api/src/controllers/Campaigns.ts:176-180|apps/api/src/controllers/Campaigns.ts:227-231|apps/api/src/controllers/Campaigns.ts:91-95", + "apps/landing/src/pages/privacy.tsx:149-169|apps/landing/src/pages/terms.tsx:344-365", + "apps/landing/src/pages/dpa.tsx:530-550|apps/landing/src/pages/privacy.tsx:332-347", + "apps/landing/src/pages/dpa.tsx:17-38|apps/landing/src/pages/privacy.tsx:18-38|apps/landing/src/pages/terms.tsx:18-38", + "apps/web/src/pages/onboarding/developer.tsx:203-224|apps/web/src/pages/onboarding/marketing.tsx:129-149|apps/web/src/pages/onboarding/workflows.tsx:209-230", + "apps/landing/src/pages/tools/markdown-to-email.tsx:13-291|apps/landing/src/pages/tools/verify-email.tsx:15-290", + "apps/landing/src/pages/dpa.tsx:610-640|apps/landing/src/pages/terms.tsx:589-609", + "apps/landing/src/pages/privacy.tsx:18-45|apps/landing/src/pages/terms.tsx:18-45", + "apps/web/src/components/BillingConsumption.tsx:40-76|apps/web/src/components/BillingInvoices.tsx:14-50|apps/web/src/components/BillingLimits.tsx:138-156", + "apps/landing/src/pages/dpa.tsx:393-408|apps/landing/src/pages/privacy.tsx:126-141|apps/landing/src/pages/terms.tsx:295-308", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:422-433|apps/landing/src/pages/guides/email-open-rate.tsx:456-467|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:507-518", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:314-332|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:443-461", + "apps/api/src/services/SegmentService.ts:566-579|apps/api/src/services/SegmentService.ts:597-610", + "apps/api/src/controllers/Domains.ts:104-115|apps/api/src/controllers/Domains.ts:132-143", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:392-417|apps/landing/src/pages/guides/what-is-spf.tsx:288-312", + "apps/landing/src/pages/dpa.tsx:366-385|apps/landing/src/pages/terms.tsx:255-271", + "apps/landing/src/pages/dpa.tsx:367-386|apps/landing/src/pages/terms.tsx:445-462", + "apps/web/src/components/CampaignSelectionDialog.tsx:362-381|apps/web/src/components/TemplateSelectionDialog.tsx:380-399", + "apps/api/src/services/SegmentService.ts:1115-1143|apps/api/src/services/SegmentService.ts:1225-1254", + "apps/api/src/services/EmailService.ts:153-165|apps/api/src/services/EmailService.ts:215-227", + "apps/web/src/pages/activity/index.tsx:88-100|apps/web/src/pages/analytics/index.tsx:243-255", + "apps/api/src/controllers/Segments.ts:63-75|apps/api/src/controllers/Templates.ts:47-59|apps/api/src/controllers/Workflows.ts:71-83", + "apps/web/src/components/SegmentFilterBuilder.tsx:165-186|apps/web/src/components/SegmentFilterBuilder.tsx:211-232", + "apps/web/src/pages/segments/[id].tsx:268-290|apps/web/src/pages/segments/new.tsx:151-173", + "apps/landing/src/pages/privacy.tsx:426-443|apps/landing/src/pages/privacy.tsx:681-698", + "apps/api/src/services/SecurityService.ts:1005-1017|apps/api/src/services/SecurityService.ts:751-763", + "apps/api/src/controllers/Projects.ts:183-193|apps/api/src/controllers/Projects.ts:236-246", + "apps/web/src/pages/templates/index.tsx:99-118|apps/web/src/pages/workflows/index.tsx:108-129", + "apps/web/src/pages/contacts/index.tsx:1072-1089|apps/web/src/pages/contacts/index.tsx:796-814", + "apps/landing/src/pages/dpa.tsx:561-580|apps/landing/src/pages/privacy.tsx:1076-1093", + "apps/web/src/pages/workflows/[id].tsx:1663-1677|apps/web/src/pages/workflows/[id].tsx:2718-2732", + "apps/landing/src/pages/index.tsx:480-509|apps/landing/src/pages/tools/index.tsx:183-212", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:159-177|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:372-390", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:114-130|apps/landing/src/pages/guides/email-bounce-rate.tsx:140-156", + "apps/api/src/controllers/Contacts.ts:341-350|apps/api/src/controllers/Contacts.ts:529-538", + "apps/web/src/pages/templates/index.tsx:33-46|apps/web/src/pages/workflows/index.tsx:45-56", + "apps/web/src/pages/segments/[id].tsx:238-255|apps/web/src/pages/segments/new.tsx:120-138", + "apps/landing/src/pages/dpa.tsx:517-533|apps/landing/src/pages/dpa.tsx:553-570", + "apps/api/src/services/SecurityService.ts:691-707|apps/api/src/services/SecurityService.ts:953-967", + "apps/landing/src/pages/guides/what-is-spf.tsx:137-150|apps/landing/src/pages/guides/what-is-spf.tsx:153-166", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:124-146|apps/landing/src/pages/guides/email-open-rate.tsx:270-292", + "apps/web/src/components/WorkflowBuilder.tsx:446-455|apps/web/src/components/WorkflowVisualizer.tsx:459-468", + "apps/web/src/components/DomainsSettings.tsx:530-549|apps/web/src/components/DomainsSettings.tsx:656-673", + "apps/api/src/controllers/Segments.ts:158-168|apps/api/src/controllers/Segments.ts:183-193", + "apps/api/src/controllers/Templates.ts:156-164|apps/api/src/controllers/Templates.ts:37-45", + "apps/landing/src/pages/guides/email-api-guide.tsx:412-428|apps/landing/src/pages/guides/email-bounce-rate.tsx:260-278", + "apps/landing/src/pages/privacy.tsx:424-442|apps/landing/src/pages/terms.tsx:325-339", + "apps/landing/src/pages/dpa.tsx:651-668|apps/landing/src/pages/terms.tsx:337-354", + "apps/landing/src/pages/terms.tsx:177-194|apps/landing/src/pages/terms.tsx:333-350", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:271-292|apps/landing/src/pages/guides/what-is-spf.tsx:219-240", + "apps/api/src/services/EmailService.ts:133-169|apps/api/src/services/EmailService.ts:209-253", + "apps/api/src/services/WorkflowExecutionService.ts:142-165|apps/api/src/services/WorkflowExecutionService.ts:50-73", + "apps/landing/src/pages/privacy.tsx:264-279|apps/landing/src/pages/privacy.tsx:468-482", + "apps/api/src/jobs/domain-verification.ts:143-154|apps/api/src/jobs/domain-verification.ts:184-194", + "apps/landing/src/pages/dpa.tsx:393-413|apps/landing/src/pages/terms.tsx:295-312", + "apps/api/src/services/SegmentService.ts:1095-1120|apps/api/src/services/SegmentService.ts:1204-1230", + "apps/api/src/services/SegmentService.ts:1010-1022|apps/api/src/services/SegmentService.ts:903-917", + "apps/api/src/controllers/Contacts.ts:373-382|apps/api/src/controllers/Contacts.ts:400-409", + "apps/api/src/controllers/Events.ts:108-117|apps/api/src/controllers/Events.ts:135-144", + "apps/web/src/pages/auth/login.tsx:215-235|apps/web/src/pages/auth/signup.tsx:159-179", + "apps/api/src/controllers/Workflows.ts:385-393|apps/api/src/controllers/Workflows.ts:61-69", + "apps/web/src/components/WorkflowBuilder.tsx:791-844|apps/web/src/components/WorkflowVisualizer.tsx:461-492", + "test/helpers/factories.ts:275-288|test/helpers/factories.ts:292-305", + "apps/api/src/services/SecurityService.ts:740-750|apps/api/src/services/SecurityService.ts:994-1004", + "apps/web/src/pages/workflows/[id].tsx:1489-1504|apps/web/src/pages/workflows/[id].tsx:2396-2411", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:428-446|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:513-532", + "apps/api/src/services/SegmentService.ts:888-903|apps/api/src/services/SegmentService.ts:999-1010", + "apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:39-50|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:54-65", + "apps/landing/src/pages/guides/what-is-dkim.tsx:349-360|apps/landing/src/pages/guides/what-is-dkim.tsx:364-375", + "apps/api/src/services/SegmentService.ts:267-275|apps/api/src/services/SegmentService.ts:304-313", + "apps/web/src/pages/subscribe/[id].tsx:178-195|apps/web/src/pages/unsubscribe/[id].tsx:189-206", + "apps/web/src/pages/workflows/[id].tsx:2819-2833|apps/web/src/pages/workflows/[id].tsx:945-958", + "apps/web/src/pages/contacts/[id].tsx:158-175|apps/web/src/pages/contacts/index.tsx:531-548", + "apps/web/src/pages/campaigns/[id].tsx:469-478|apps/web/src/pages/campaigns/create.tsx:234-243", + "apps/api/src/services/WorkflowExecutionService.ts:723-747|apps/api/src/services/WorkflowExecutionService.ts:919-944", + "apps/web/src/components/DomainsSettings.tsx:414-435|apps/web/src/components/DomainsSettings.tsx:623-642", + "apps/api/src/services/QueueService.ts:525-540|apps/api/src/services/QueueService.ts:555-568", + "apps/landing/src/pages/privacy.tsx:298-310|apps/landing/src/pages/privacy.tsx:464-476", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:189-199|apps/landing/src/pages/guides/email-bounce-rate.tsx:207-217", + "apps/web/src/pages/workflows/[id].tsx:1778-1787|apps/web/src/pages/workflows/[id].tsx:1796-1804", + "apps/api/src/controllers/Contacts.ts:112-118|apps/api/src/controllers/Contacts.ts:183-189", + "apps/landing/src/pages/privacy.tsx:297-309|apps/landing/src/pages/privacy.tsx:820-832", + "apps/web/src/pages/contacts/index.tsx:1102-1118|apps/web/src/pages/contacts/index.tsx:831-847", + "apps/web/src/pages/campaigns/create.tsx:192-207|apps/web/src/pages/templates/create.tsx:87-99", + "apps/web/src/pages/workflows/[id].tsx:1135-1143|apps/web/src/pages/workflows/[id].tsx:2010-2018", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:407-420|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:339-352", + "apps/web/src/components/DomainsSettings.tsx:516-530|apps/web/src/components/DomainsSettings.tsx:564-579", + "apps/landing/src/pages/terms.tsx:416-428|apps/landing/src/pages/terms.tsx:480-492", + "apps/api/src/services/WorkflowService.ts:502-510|apps/api/src/services/WorkflowService.ts:555-563", + "apps/web/src/pages/campaigns/[id].tsx:354-369|apps/web/src/pages/templates/[id].tsx:139-152", + "apps/web/src/pages/workflows/[id].tsx:1393-1411|apps/web/src/pages/workflows/[id].tsx:2232-2250", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:226-240|apps/web/src/components/EmailEditor/Toolbar.tsx:324-338", + "apps/web/src/components/CampaignSelectionDialog.tsx:256-275|apps/web/src/components/TemplateSelectionDialog.tsx:293-312", + "apps/landing/src/pages/privacy.tsx:1092-1110|apps/landing/src/pages/terms.tsx:640-656", + "apps/landing/src/pages/privacy.tsx:684-701|apps/landing/src/pages/terms.tsx:465-480", + "apps/api/src/controllers/Contacts.ts:40-54|apps/api/src/controllers/Workflows.ts:24-39", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:409-422|apps/landing/src/pages/guides/email-sender-reputation.tsx:321-334", + "apps/api/src/services/ContactService.ts:636-648|apps/api/src/services/EventService.ts:199-211", + "apps/api/src/services/EmailService.ts:144-160|apps/api/src/services/EmailService.ts:81-96", + "apps/web/src/pages/contacts/index.tsx:347-355|apps/web/src/pages/contacts/index.tsx:393-401", + "apps/api/src/services/EmailService.ts:589-611|apps/api/src/services/EventService.ts:100-122", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:284-299|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:487-504", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:179-191|apps/landing/src/pages/guides/email-click-through-rate.tsx:80-92", + "apps/web/src/components/BillingInvoices.tsx:71-82|apps/web/src/components/UnpaidInvoiceBanner.tsx:14-25", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:32-38|apps/web/src/components/EmailEditor/Toolbar.tsx:34-40", + "apps/api/src/services/WorkflowService.ts:468-490|apps/api/src/services/WorkflowService.ts:607-624", + "apps/api/src/services/NtfyService.ts:600-615|apps/api/src/services/NtfyService.ts:631-646", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:38-53|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:59-74", + "apps/landing/src/pages/privacy.tsx:267-282|apps/landing/src/pages/privacy.tsx:454-468", + "apps/api/src/services/AnalyticsService.ts:188-196|apps/api/src/services/AnalyticsService.ts:295-304", + "packages/shared/src/schemas/index.ts:139-143|packages/shared/src/schemas/index.ts:184-188", + "apps/web/src/components/CampaignSelectionDialog.tsx:305-322|apps/web/src/components/TemplateSelectionDialog.tsx:342-359", + "apps/web/src/components/CampaignSelectionDialog.tsx:324-341|apps/web/src/components/TemplateSelectionDialog.tsx:361-378", + "apps/landing/src/pages/privacy.tsx:1065-1076|apps/landing/src/pages/terms.tsx:140-153", + "apps/api/src/controllers/Campaigns.ts:18-23|apps/api/src/controllers/Templates.ts:54-59", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:130-144|apps/web/src/components/EmailEditor/Toolbar.tsx:239-253", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:311-325|apps/web/src/components/EmailEditor/Toolbar.tsx:409-423", + "apps/api/src/services/BillingLimitService.ts:594-602|apps/api/src/services/BillingLimitService.ts:646-654", + "apps/landing/src/pages/terms.tsx:185-205|apps/landing/src/pages/terms.tsx:562-583", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:347-364|apps/landing/src/pages/guides/what-is-spf.tsx:330-347", + "apps/web/src/pages/auth/reset-password.tsx:138-148|apps/web/src/pages/auth/verify-email.tsx:220-237", + "apps/landing/src/pages/dpa.tsx:590-605|apps/landing/src/pages/terms.tsx:507-523", + "apps/landing/src/pages/privacy.tsx:466-477|apps/landing/src/pages/terms.tsx:206-217", + "apps/api/src/services/MembershipService.ts:233-248|apps/api/src/services/MembershipService.ts:277-292", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:261-274|apps/landing/src/pages/guides/email-marketing-best-practices.tsx:281-295", + "apps/web/src/pages/contacts/index.tsx:678-689|apps/web/src/pages/contacts/index.tsx:953-963", + "apps/api/src/jobs/domain-verification.ts:158-166|apps/api/src/services/DomainService.ts:180-189", + "apps/web/src/pages/onboarding/developer.tsx:88-227|apps/web/src/pages/onboarding/workflows.tsx:98-233", + "apps/web/src/components/WorkflowBuilder.tsx:587-612|apps/web/src/components/WorkflowVisualizer.tsx:337-362", + "apps/landing/src/pages/dpa.tsx:655-670|apps/landing/src/pages/terms.tsx:171-187", + "apps/landing/src/pages/privacy.tsx:423-439|apps/landing/src/pages/terms.tsx:173-188", + "apps/landing/src/pages/privacy.tsx:923-939|apps/landing/src/pages/terms.tsx:274-290", + "apps/web/src/pages/templates/[id].tsx:133-143|apps/web/src/pages/templates/create.tsx:73-87", + "apps/web/src/pages/templates/[id].tsx:205-214|apps/web/src/pages/templates/create.tsx:127-136", + "apps/api/src/services/EmailService.ts:502-511|apps/api/src/services/EmailService.ts:518-527", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:447-461|apps/landing/src/pages/guides/email-open-rate.tsx:488-502", + "apps/landing/src/pages/guides/email-click-through-rate.tsx:208-218|apps/landing/src/pages/guides/email-open-rate.tsx:250-264", + "apps/landing/src/pages/dpa.tsx:268-281|apps/landing/src/pages/privacy.tsx:400-412", + "apps/web/src/components/WorkflowBuilder.tsx:380-393|apps/web/src/components/WorkflowVisualizer.tsx:203-215", + "apps/landing/src/pages/guides/email-marketing-best-practices.tsx:409-421|apps/landing/src/pages/guides/email-open-rate.tsx:453-465", + "apps/landing/src/components/FAQSection.tsx:38-52|apps/landing/src/pages/features/smtp.tsx:227-241", + "apps/web/src/pages/workflows/[id].tsx:1031-1071|apps/web/src/pages/workflows/[id].tsx:1932-1967", + "apps/api/src/controllers/Webhooks.ts:602-614|apps/api/src/controllers/Webhooks.ts:631-643", + "apps/web/src/components/WorkflowBuilder.tsx:518-524|apps/web/src/components/WorkflowBuilder.tsx:612-619", + "apps/landing/src/pages/made-by-humans.tsx:23-46|apps/landing/src/pages/pricing.tsx:83-102", + "apps/web/src/components/WorkflowBuilder.tsx:44-58|apps/web/src/components/WorkflowVisualizer.tsx:23-37", + "apps/web/src/components/WorkflowBuilder.tsx:560-569|apps/web/src/components/WorkflowVisualizer.tsx:312-323", + "apps/api/src/jobs/email-processor.ts:88-293|apps/api/src/services/EmailService.ts:328-455", + "apps/web/src/pages/templates/index.tsx:130-147|apps/web/src/pages/workflows/index.tsx:124-142", + "apps/landing/src/pages/dpa.tsx:500-517|apps/landing/src/pages/terms.tsx:539-555", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:299-313|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:446-458", + "apps/web/src/pages/templates/index.tsx:71-83|apps/web/src/pages/workflows/index.tsx:83-95", + "apps/api/src/jobs/email-processor.ts:57-68|apps/api/src/services/EmailService.ts:291-302", + "apps/web/src/components/DomainsSettings.tsx:482-496|apps/web/src/components/DomainsSettings.tsx:608-623", + "apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:425-436|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:451-463", + "apps/web/src/lib/network.ts:106-117|apps/web/src/lib/network.ts:63-74", + "apps/landing/src/pages/guides/email-sender-reputation.tsx:294-303|apps/landing/src/pages/guides/email-sender-reputation.tsx:317-327", + "apps/web/src/components/CommandPalette.tsx:339-348|apps/web/src/components/CommandPalette.tsx:360-369", + "apps/api/src/controllers/Domains.ts:117-123|apps/api/src/controllers/Domains.ts:153-158", + "apps/api/src/controllers/Analytics.ts:46-50|apps/api/src/controllers/Analytics.ts:94-98", + "apps/landing/src/pages/guides/what-is-dmarc.tsx:116-137|apps/landing/src/pages/guides/what-is-spf.tsx:116-135", + "apps/api/src/controllers/Oauth/Github.ts:80-94|apps/api/src/controllers/Oauth/Google.ts:70-84", + "apps/web/src/pages/auth/login.tsx:60-67|apps/web/src/pages/auth/signup.tsx:45-52", + "apps/landing/src/pages/terms.tsx:185-202|apps/landing/src/pages/terms.tsx:556-576", + "apps/api/src/services/ActivityService.ts:294-304|apps/api/src/services/ActivityService.ts:589-599", + "apps/landing/src/pages/index.tsx:287-315|apps/landing/src/pages/tools/index.tsx:103-130", + "apps/api/src/services/EmailService.ts:125-136|apps/api/src/services/EmailService.ts:187-198", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:59-83|apps/landing/src/pages/guides/email-open-rate.tsx:59-85", + "apps/landing/src/pages/guides/email-open-rate.tsx:456-467|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:507-518", + "apps/api/src/services/SecurityService.ts:728-740|apps/api/src/services/SecurityService.ts:982-994", + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:207-214|apps/landing/src/components/tools/MarkdownEmailToolbar.tsx:218-225", + "apps/landing/src/pages/guides/email-bounce-rate.tsx:176-186|apps/landing/src/pages/guides/transactional-vs-marketing-email.tsx:27-37", + "apps/landing/src/pages/privacy.tsx:236-245|apps/landing/src/pages/terms.tsx:208-218", + "apps/web/src/components/WorkflowBuilder.tsx:396-405|apps/web/src/components/WorkflowVisualizer.tsx:210-219", + "apps/web/src/pages/segments/[id].tsx:136-142|apps/web/src/pages/segments/new.tsx:54-59", + "apps/web/src/pages/auth/login.tsx:164-186|apps/web/src/pages/auth/signup.tsx:122-144", + "apps/api/src/services/ContactService.ts:856-864|apps/api/src/services/EventService.ts:514-523", + "apps/landing/src/pages/vs/mailgun.tsx:13-20|apps/landing/src/pages/vs/resend.tsx:13-20", + "apps/landing/src/pages/dpa.tsx:185-203|apps/landing/src/pages/terms.tsx:558-577", + "packages/email/src/emails/DomainUnverified.tsx:22-37|packages/email/src/emails/DomainVerified.tsx:22-37", + "apps/landing/src/pages/guides/what-is-spf.tsx:300-314|apps/landing/src/pages/guides/what-is-spf.tsx:315-329", + "apps/api/src/controllers/Campaigns.ts:81-93|apps/api/src/controllers/Templates.ts:27-39", + "apps/api/src/jobs/domain-verification-processor.ts:50-57|apps/api/src/jobs/segment-count-processor.ts:137-145", + "apps/api/src/services/ContactService.ts:836-844|apps/api/src/services/EventService.ts:494-502" + ], + "clone_fingerprints": [ + "dup:4441c2af:5", + "dup:8da69b1f:14", + "dup:e4e381d4:5", + "dup:932b3140:4", + "dup:8634405c:14", + "dup:1e5dd27e:2", + "dup:2d69789e:15", + "dup:ab35ebdb:4", + "dup:629c4e32:26", + "dup:b225e3b9:10", + "dup:e59fa495:16", + "dup:be7f72a1:3", + "dup:f2334e2c:2", + "dup:8920044c:2", + "dup:fc08dc68:2", + "dup:80df05c7:9", + "dup:d2393bcb:5", + "dup:ed06bd1e:3", + "dup:fbf3b858:3", + "dup:afd4e45b:4", + "dup:f5db6f5c:5", + "dup:42372278:2", + "dup:34c8348d:2", + "dup:f60c7726:4", + "dup:043183e9:4", + "dup:6396475b:2", + "dup:bb156711:5", + "dup:fdc0e259:5", + "dup:ddcd4804:3", + "dup:908f2809:4", + "dup:9ed76f19:2", + "dup:7e218e02:6", + "dup:d67dd3ab:9", + "dup:b93a07a9:9", + "dup:ea8456d8:9", + "dup:757cdf2a:9", + "dup:f099f02b:4", + "dup:b3b74cd2:3", + "dup:cdcd0700:4", + "dup:1e63b18a:2", + "dup:dac74886:4", + "dup:9f6c734e:5", + "dup:f139e5cd:2", + "dup:1cc3b740:2", + "dup:5acf36d7:3", + "dup:0d25728d:10", + "dup:e5d023b7:2", + "dup:7efdddad:6", + "dup:593d3777:7", + "dup:84c19500:2", + "dup:fab12c40:2", + "dup:36cf4081:2", + "dup:9c62606e:4", + "dup:f459043e:2", + "dup:a45a675b:2", + "dup:613d4e90:6", + "dup:20834b74:2", + "dup:457aeb61:5", + "dup:2e656059:2", + "dup:446a9bb2:6", + "dup:a38dfcbb:3", + "dup:1af1367d:6", + "dup:c5d349da:2", + "dup:5db5f463:3", + "dup:ea764080:2", + "dup:75410fbe:3", + "dup:662217aa:2", + "dup:511c68d7:3", + "dup:ee1b9a27:5", + "dup:7af35ce0:7", + "dup:67a87173:3", + "dup:efdabf33:2", + "dup:446bd15e:3", + "dup:1dfd14cd:2", + "dup:4c14e4c8:4", + "dup:a8d394d8:2", + "dup:76e3ee31:5", + "dup:9de5e885:3", + "dup:b025de66:3", + "dup:985638d9:6", + "dup:fdfb6c4c:2", + "dup:47f3072e:2", + "dup:d17bc6cd:5", + "dup:d7deb4a6:3", + "dup:3bf277af:2", + "dup:86d1b99d:3", + "dup:762da06a:3", + "dup:8173afb5:4", + "dup:7eac7d23:6", + "dup:76900e2b:2", + "dup:599f1567:2", + "dup:3c63db2a:2", + "dup:20125db4:3", + "dup:29da9f15:3", + "dup:0476debf:6", + "dup:e590d430:2", + "dup:9888b4a9:4", + "dup:7cc83279:2", + "dup:64feaff9:2", + "dup:05b315ad:5", + "dup:a90d76cb:3", + "dup:ffc58111:3", + "dup:b2bb74bd:2", + "dup:05a63d49:2", + "dup:fb433653:2", + "dup:7b8811bf:4", + "dup:9ce5b78a:2", + "dup:d6a2dc2c:4", + "dup:867266b9:2", + "dup:34d5340c:3", + "dup:b8425faa:5", + "dup:1dc35c6b:3", + "dup:134097f3:5", + "dup:20b5cfa9:3", + "dup:c51aee9a:3", + "dup:ed26ffc6:2", + "dup:12ce7430:2", + "dup:3ff2e4ce:3", + "dup:41d3b5be:2", + "dup:a9c1c120:2", + "dup:f14335a0:3", + "dup:ed9f092c:2", + "dup:3c64b6d2:3", + "dup:676c3a1d:3", + "dup:9169fa22:5", + "dup:f54f6ecd:2", + "dup:380fed59:2", + "dup:b1e8288b:2", + "dup:32091d38:2", + "dup:2032af4b:2", + "dup:1c55812d:2", + "dup:d9511b40:2", + "dup:4ad57012:5", + "dup:66a4356c:2", + "dup:9b324dc8:3", + "dup:0a2fb0c8:4", + "dup:3e8a100e:3", + "dup:2bd0c90f:2", + "dup:340db069:2", + "dup:93115ec1:2", + "dup:5c449ee0:2", + "dup:dc468eea:2", + "dup:8f6bc1d7:3", + "dup:c454df54:3", + "dup:e9d24791:2", + "dup:ee9999eb:2", + "dup:caf9afc5:3", + "dup:5cddb8e3:3", + "dup:8b2c6dc1:2", + "dup:6260df58:2", + "dup:d6fae4dd:2", + "dup:352c593a:2", + "dup:912fecbd:5", + "dup:723b03e3:3", + "dup:6d09f96e:2", + "dup:2d0c4450:4", + "dup:8aeb2db6:4", + "dup:5488e21d:3", + "dup:ce72daaa:2", + "dup:96fe494c:2", + "dup:5dc7b502:4", + "dup:df249f31:4", + "dup:3aba9611:2", + "dup:c042fc81:2", + "dup:d99f7714:2", + "dup:fdb9ed41:2", + "dup:ef97c676:2", + "dup:c89944ca:2", + "dup:3acb3b55:2", + "dup:47782bab:2", + "dup:e75454d1:2", + "dup:ef151ff5:2", + "dup:8e69b82f:3", + "dup:7b6cf1bb:4", + "dup:405e2fb3:2", + "dup:cad821c2:2", + "dup:60a8dcba:2", + "dup:893f2f94:2", + "dup:5c3ccd2b:3", + "dup:9cc8f02b:2", + "dup:5df65124:4", + "dup:c3d69dec:2", + "dup:05dc390a:2", + "dup:77c79043:4", + "dup:ed04d729:3", + "dup:b450ce8b:2", + "dup:6388bf38:3", + "dup:abe3d360:3", + "dup:6fe3e09c:3", + "dup:230f2b2d:3", + "dup:d6dd43b6:2", + "dup:b7d8ce05:4", + "dup:43b33cd3:3", + "dup:ffe572eb:2", + "dup:6eb21e51:2", + "dup:5852eb9d:2", + "dup:ff60d16f:2", + "dup:38392526:3", + "dup:4c539205:3", + "dup:4a2c964c:3", + "dup:389d358d:2", + "dup:b99d6728:2", + "dup:e43fd094:2", + "dup:78e3deee:2", + "dup:c9b32f62:2", + "dup:5c07da35:4", + "dup:6903f7ae:4", + "dup:35d2e9e5:2", + "dup:3d0f5eb1:2", + "dup:4cff3c0e:3", + "dup:b1da34b3:2", + "dup:497fc0e0:3", + "dup:7810a8f0:2", + "dup:2dc9230d:2", + "dup:1bee4d66:2", + "dup:6a30f07c:3", + "dup:f7b6224f:2", + "dup:2c43b558:2", + "dup:290ae583:3", + "dup:f03be829:3", + "dup:c92f176f:2", + "dup:ff9331eb:2", + "dup:5881a256:3", + "dup:d0d43273:2", + "dup:c6d459e0:2", + "dup:22bf3d3c:3", + "dup:87740c9b:3", + "dup:f3d94b57:3", + "dup:c41fd37d:2", + "dup:76b85f62:2", + "dup:5d183a97:2", + "dup:c4453588:2", + "dup:81b59e3d:2", + "dup:df201591:2", + "dup:645d4947:2", + "dup:8bdd7d92:2", + "dup:cd3cda22:3", + "dup:2eb06315:2", + "dup:b0521957:2", + "dup:270ffc3f:2", + "dup:b4ada3b3:2", + "dup:06fcffa2:2", + "dup:e7a037ff:2", + "dup:b83c17ce:2", + "dup:4fc661fd:2", + "dup:adf85903:3", + "dup:2f84369b:3", + "dup:05252db6:2", + "dup:66a4327d:2", + "dup:c199df18:3", + "dup:4b048da0:3", + "dup:663467a8:3", + "dup:fc82298a:2", + "dup:7a1838c3:2", + "dup:a084511a:2", + "dup:cace1cea:2", + "dup:fdf2efe5:3", + "dup:9f4783a1:2", + "dup:71347736:2", + "dup:2bde35d1:2", + "dup:f3157476:2", + "dup:ae101d6e:2", + "dup:adaba38f:2", + "dup:e2d0306d:2", + "dup:4a60c8ca:2", + "dup:593541ab:3", + "dup:78000d4f:3", + "dup:69f58b15:3", + "dup:d857a4e1:2", + "dup:08645453:2", + "dup:0d934db2:2", + "dup:22b8d563:2", + "dup:cafcd5e3:2", + "dup:2da83813:2", + "dup:2e833f64:2", + "dup:1f9be659:2", + "dup:3eb9ac56:2", + "dup:1ead3002:2", + "dup:74fd6522:2", + "dup:691cd088:2", + "dup:cecb3460:2", + "dup:c8aaa75b:2", + "dup:526e2390:2", + "dup:c6014b5f:2", + "dup:89acdd9b:2", + "dup:f9e0d0ad:2", + "dup:ef66fbf9:3", + "dup:4df8cdb0:2", + "dup:7c7d827f:2", + "dup:ccf72a56:2", + "dup:88710ccf:2", + "dup:13cf9b3a:2", + "dup:28869b39:2", + "dup:5ce4e684:2", + "dup:b46dfc59:2", + "dup:dca3bd9a:2", + "dup:be7425bb:2", + "dup:511ce6cb:2", + "dup:38e9e3b0:3", + "dup:32676044:2", + "dup:dd2a773e:2", + "dup:087fca3f:2", + "dup:adf7f5da:2", + "dup:d9de775c:2", + "dup:1859287a:2", + "dup:57d13bd7:2", + "dup:c688bde4:2", + "dup:5b37ca23:2", + "dup:7fe1b443:2", + "dup:8b94c907:2", + "dup:1e4d70b2:2", + "dup:bd507bc5:2", + "dup:fce945a3:2", + "dup:a1b02d3f:2", + "dup:02b13162:2", + "dup:68d4623d:2", + "dup:b80950e6:3", + "dup:04514319:3", + "dup:c9d8b85c:2", + "dup:d2c1432a:2", + "dup:3b964922:3", + "dup:d9b34eeb:3", + "dup:43474b01:2", + "dup:16352a66:2", + "dup:49135769:2", + "dup:8184cacb:3", + "dup:23cd5158:3", + "dup:88cc70b8:3", + "dup:0a318d55:2", + "dup:11753dee:2", + "dup:cf936ccd:2", + "dup:10214590:2", + "dup:59985249:2", + "dup:53bb52cb:2", + "dup:625c1337:2", + "dup:ca6fbe03:2", + "dup:9436d0ac:2", + "dup:c16e88ca:2", + "dup:bd0e2135:3", + "dup:236f3262:2", + "dup:9e0bcc7a:2", + "dup:9bcba03f:2", + "dup:4dec9030:2", + "dup:0e1cd4ef:2", + "dup:0427450b:2", + "dup:eb05911e:2", + "dup:625c84f1:2", + "dup:d63bce90:2", + "dup:42dcbce3:2", + "dup:ff505f0a:2", + "dup:c32bfc9c:2", + "dup:7376481d:2", + "dup:7d728a37:2", + "dup:58e29a45:2", + "dup:e219b979:2", + "dup:2bf40b56:2", + "dup:6d03cdc2:2", + "dup:c2e1df5f:2", + "dup:2ac371ba:2", + "dup:e504f0dd:2", + "dup:b1077676:2", + "dup:253e6e8b:2", + "dup:665bf048:2", + "dup:1a15cffe:2", + "dup:da1d2421:2", + "dup:e02d4967:2", + "dup:25cd1e85:2", + "dup:8ba98a6d:2", + "dup:aa4f6b32:2", + "dup:c6e17639:2", + "dup:2e028469:2", + "dup:d456df96:2", + "dup:12dfa390:2", + "dup:9b3835c0:2", + "dup:63ab3b45:2", + "dup:30a3c090:2", + "dup:07e0a1ee:2", + "dup:0d78d2a0:2", + "dup:e0b390b7:2", + "dup:b6d0a56a:2", + "dup:72330e61:2", + "dup:c529f75c:2", + "dup:127d9600:2", + "dup:fdf64abe:2", + "dup:955b49af:2", + "dup:15a180e1:2", + "dup:084b6fed:2", + "dup:1725c174:2", + "dup:e7d01617:2", + "dup:0535f597:2", + "dup:25959b5b:2", + "dup:545da3b4:2", + "dup:ec359842:2", + "dup:76b04f9f:2", + "dup:b2defe6b:2", + "dup:4d79a3cf:2", + "dup:ae27e34c:2", + "dup:3d108e2d:2", + "dup:24601867:2", + "dup:e1a932c3:2", + "dup:f3e75683:2", + "dup:3a3733f2:2", + "dup:1bc7a707:2", + "dup:17827e6f:2", + "dup:c8b3242b:2", + "dup:32a15229:2", + "dup:f7788f4d:2", + "dup:61886426:2", + "dup:55ace202:2", + "dup:e383ae9a:2", + "dup:88fc2e10:2", + "dup:1a69a3eb:2", + "dup:f22e880f:2", + "dup:f2dab61a:2", + "dup:6307445e:2", + "dup:d4fe2462:2", + "dup:475c55ce:2", + "dup:186f3581:2", + "dup:670b1e00:2", + "dup:cb0a66df:2", + "dup:b0967d33:2", + "dup:92456350:2", + "dup:2137d190:2", + "dup:2741ca6e:2", + "dup:fd0a9f8b:2", + "dup:0b76976c:2", + "dup:8e0dd7fc:2", + "dup:0b7cb9cf:2", + "dup:5b078fdb:2", + "dup:34ddcbf4:2", + "dup:5c91c311:2", + "dup:89aa860a:2", + "dup:3ed6c24f:2", + "dup:158163be:2", + "dup:6aab572f:2", + "dup:5dbd847a:2", + "dup:c21bb92d:2", + "dup:25c554b7:2", + "dup:d66cc5ce:2", + "dup:0aa20934:2", + "dup:1230c867:2", + "dup:6ccd5efc:2", + "dup:8eacc9fd:2", + "dup:6cc6ec04:2", + "dup:b82df677:2", + "dup:62432a09:2", + "dup:4d5ccb1e:2", + "dup:a850a9cf:2", + "dup:83a8a549:2", + "dup:1afae639:2", + "dup:bf5cfd07:2", + "dup:236a8ac7:2", + "dup:f7ea6b46:2", + "dup:0896f99d:2", + "dup:21e7725b:2", + "dup:19bca59d:2", + "dup:2f3c8656:2", + "dup:f0abc993:2", + "dup:d6d6828b:2", + "dup:a885f2ba:2", + "dup:226702ba:2", + "dup:17b17c59:2", + "dup:a6e3a1cb:2", + "dup:bce76a55:2", + "dup:f9ffce7f:2", + "dup:149cc955:2", + "dup:a8d3abae:2", + "dup:083e4c83:2", + "dup:cdb88345:2", + "dup:2ddd3973:2", + "dup:da96ed01:2", + "dup:033f9ce2:2", + "dup:97428d2b:2", + "dup:63293195:2", + "dup:b6bd359f:2", + "dup:f78c5a03:2", + "dup:fe8926c2:2", + "dup:0e540b56:2", + "dup:4737cc18:2", + "dup:ba23516a:2", + "dup:7b0d6ddc:2", + "dup:545bfab9:2", + "dup:fd640fea:2", + "dup:089bfb75:2", + "dup:2eed5c7c:2", + "dup:285f81fb:2", + "dup:6788b3f5:2", + "dup:52ca724c:2", + "dup:19b4a73b:2", + "dup:65703ca1:2", + "dup:5b2efa12:2", + "dup:4557b981:2", + "dup:babcf79f:2", + "dup:4999c02b:2", + "dup:378ecfdd:2", + "dup:5a7c4527:2", + "dup:6fbafb08:2", + "dup:1bd772fa:2", + "dup:ca710788:2", + "dup:6d10b6bc:2", + "dup:252cf4b0:2" + ], + "normalized_clone_fingerprints": [ + "dup:c77b3abb6f87acd9-264:5", + "dup:c77b3abb6f87acd9-112:14", + "dup:c77b3abb6f87acd9-187:5", + "dup:c77b3abb6f87acd9-298:4", + "dup:c77b3abb6f87acd9-200:14", + "dup:c77b3abb6f87acd9-311:2", + "dup:c77b3abb6f87acd9-236:15", + "dup:c77b3abb6f87acd9-27:4", + "dup:c77b3abb6f87acd9-97:26", + "dup:c77b3abb6f87acd9-415:10", + "dup:c77b3abb6f87acd9-175:16", + "dup:c77b3abb6f87acd9-386:3", + "dup:c77b3abb6f87acd9-389:2", + "dup:c77b3abb6f87acd9-71:2", + "dup:c77b3abb6f87acd9-84:2", + "dup:c77b3abb6f87acd9-407:9", + "dup:c77b3abb6f87acd9-154:5", + "dup:c77b3abb6f87acd9-327:3", + "dup:c77b3abb6f87acd9-299:3", + "dup:c77b3abb6f87acd9-213:4", + "dup:c77b3abb6f87acd9-332:5", + "dup:c77b3abb6f87acd9-322:2", + "dup:1307d8ec:2", + "dup:c77b3abb6f87acd9-178:4", + "dup:c77b3abb6f87acd9-421:4", + "dup:b9cd28c1:2", + "dup:c77b3abb6f87acd9-475:5", + "dup:c77b3abb6f87acd9-238:5", + "dup:c77b3abb6f87acd9-424:3", + "dup:c77b3abb6f87acd9-342:4", + "dup:c77b3abb6f87acd9-294:2", + "dup:c77b3abb6f87acd9-195:6", + "dup:c77b3abb6f87acd9-11:9", + "dup:c77b3abb6f87acd9-60:9", + "dup:c77b3abb6f87acd9-359:9", + "dup:c77b3abb6f87acd9-96:9", + "dup:c77b3abb6f87acd9-310:4", + "dup:c77b3abb6f87acd9-316:3", + "dup:c77b3abb6f87acd9-171:4", + "dup:c77b3abb6f87acd9-436:2", + "dup:c77b3abb6f87acd9-456:4", + "dup:c77b3abb6f87acd9-432:5", + "dup:c77b3abb6f87acd9-345:2", + "dup:c77b3abb6f87acd9-209:2", + "dup:c77b3abb6f87acd9-353:3", + "dup:c77b3abb6f87acd9-120:10", + "dup:c77b3abb6f87acd9-34:2", + "dup:c77b3abb6f87acd9-90:6", + "dup:c77b3abb6f87acd9-303:7", + "dup:c77b3abb6f87acd9-183:2", + "dup:c77b3abb6f87acd9-182:2", + "dup:c77b3abb6f87acd9-158:2", + "dup:c77b3abb6f87acd9-206:4", + "dup:c77b3abb6f87acd9-228:2", + "dup:c77b3abb6f87acd9-113:2", + "dup:c77b3abb6f87acd9-286:6", + "dup:c77b3abb6f87acd9-403:2", + "dup:c77b3abb6f87acd9-210:5", + "dup:c77b3abb6f87acd9-86:2", + "dup:c77b3abb6f87acd9-14:6", + "dup:c77b3abb6f87acd9-93:3", + "dup:ce0c87ee:6", + "dup:c77b3abb6f87acd9-405:2", + "dup:c77b3abb6f87acd9-269:3", + "dup:c77b3abb6f87acd9-127:2", + "dup:c77b3abb6f87acd9-136:3", + "dup:c77b3abb6f87acd9-18:2", + "dup:c77b3abb6f87acd9-78:3", + "dup:c77b3abb6f87acd9-198:5", + "dup:c77b3abb6f87acd9-450:7", + "dup:c77b3abb6f87acd9-431:3", + "dup:c77b3abb6f87acd9-222:2", + "dup:c77b3abb6f87acd9-313:3", + "dup:c77b3abb6f87acd9-266:2", + "dup:c77b3abb6f87acd9-241:4", + "dup:c77b3abb6f87acd9-242:2", + "dup:c77b3abb6f87acd9-153:5", + "dup:c77b3abb6f87acd9-61:3", + "dup:c77b3abb6f87acd9-254:3", + "dup:c77b3abb6f87acd9-321:6", + "dup:c77b3abb6f87acd9-20:2", + "dup:c77b3abb6f87acd9-5:2", + "dup:c77b3abb6f87acd9-59:5", + "dup:c77b3abb6f87acd9-58:3", + "dup:c77b3abb6f87acd9-105:2", + "dup:c77b3abb6f87acd9-352:3", + "dup:c77b3abb6f87acd9-302:3", + "dup:c77b3abb6f87acd9-446:4", + "dup:c77b3abb6f87acd9-387:6", + "dup:c77b3abb6f87acd9-385:2", + "dup:c77b3abb6f87acd9-192:2", + "dup:c77b3abb6f87acd9-208:2", + "dup:c77b3abb6f87acd9-164:3", + "dup:c77b3abb6f87acd9-89:3", + "dup:c77b3abb6f87acd9-429:6", + "dup:c77b3abb6f87acd9-203:2", + "dup:c77b3abb6f87acd9-204:4", + "dup:c77b3abb6f87acd9-168:2", + "dup:c77b3abb6f87acd9-338:2", + "dup:c77b3abb6f87acd9-63:5", + "dup:c77b3abb6f87acd9-300:3", + "dup:c77b3abb6f87acd9-125:3", + "dup:c77b3abb6f87acd9-51:2", + "dup:c77b3abb6f87acd9-347:2", + "dup:c77b3abb6f87acd9-406:2", + "dup:d8e7ae19:4", + "dup:c77b3abb6f87acd9-229:2", + "dup:c77b3abb6f87acd9-464:4", + "dup:c77b3abb6f87acd9-67:2", + "dup:c77b3abb6f87acd9-9:3", + "dup:c77b3abb6f87acd9-368:5", + "dup:c77b3abb6f87acd9-401:3", + "dup:c77b3abb6f87acd9-216:5", + "dup:c77b3abb6f87acd9-477:3", + "dup:c77b3abb6f87acd9-53:3", + "dup:c77b3abb6f87acd9-307:2", + "dup:c77b3abb6f87acd9-218:2", + "dup:c77b3abb6f87acd9-430:3", + "dup:c77b3abb6f87acd9-8:2", + "dup:c77b3abb6f87acd9-444:2", + "dup:c77b3abb6f87acd9-234:3", + "dup:c77b3abb6f87acd9-217:2", + "dup:c77b3abb6f87acd9-185:3", + "dup:c77b3abb6f87acd9-370:3", + "dup:c77b3abb6f87acd9-104:5", + "dup:c77b3abb6f87acd9-233:2", + "dup:c77b3abb6f87acd9-423:2", + "dup:c77b3abb6f87acd9-388:2", + "dup:fec55847:2", + "dup:c77b3abb6f87acd9-131:2", + "dup:c77b3abb6f87acd9-55:2", + "dup:c77b3abb6f87acd9-44:2", + "dup:c77b3abb6f87acd9-470:5", + "dup:c77b3abb6f87acd9-270:2", + "dup:c77b3abb6f87acd9-278:3", + "dup:c77b3abb6f87acd9-452:4", + "dup:c77b3abb6f87acd9-445:3", + "dup:c77b3abb6f87acd9-109:2", + "dup:c77b3abb6f87acd9-221:2", + "dup:c77b3abb6f87acd9-181:2", + "dup:c77b3abb6f87acd9-77:2", + "dup:c77b3abb6f87acd9-225:2", + "dup:c77b3abb6f87acd9-152:3", + "dup:c77b3abb6f87acd9-329:3", + "dup:c77b3abb6f87acd9-99:2", + "dup:c77b3abb6f87acd9-367:2", + "dup:c77b3abb6f87acd9-455:3", + "dup:c77b3abb6f87acd9-374:3", + "dup:c77b3abb6f87acd9-334:2", + "dup:c77b3abb6f87acd9-79:2", + "dup:6f5baa56:2", + "dup:c77b3abb6f87acd9-290:2", + "dup:c77b3abb6f87acd9-212:5", + "dup:c77b3abb6f87acd9-341:3", + "dup:c77b3abb6f87acd9-373:2", + "dup:c77b3abb6f87acd9-348:4", + "dup:c77b3abb6f87acd9-244:4", + "dup:c77b3abb6f87acd9-151:3", + "dup:c77b3abb6f87acd9-258:2", + "dup:c77b3abb6f87acd9-147:2", + "dup:c77b3abb6f87acd9-188:4", + "dup:c77b3abb6f87acd9-121:4", + "dup:c77b3abb6f87acd9-174:2", + "dup:c77b3abb6f87acd9-49:2", + "dup:c77b3abb6f87acd9-281:2", + "dup:c77b3abb6f87acd9-139:2", + "dup:c77b3abb6f87acd9-419:2", + "dup:c77b3abb6f87acd9-180:2", + "dup:c77b3abb6f87acd9-235:2", + "dup:c77b3abb6f87acd9-246:2", + "dup:c77b3abb6f87acd9-31:2", + "dup:c77b3abb6f87acd9-35:2", + "dup:c77b3abb6f87acd9-288:3", + "dup:c77b3abb6f87acd9-145:4", + "dup:3acef346:2", + "dup:c77b3abb6f87acd9-272:2", + "dup:c77b3abb6f87acd9-101:2", + "dup:10ba91fa:2", + "dup:5cce71cc:3", + "dup:c77b3abb6f87acd9-404:2", + "dup:00a716cb:4", + "dup:c77b3abb6f87acd9-165:2", + "dup:bcaf9e67:2", + "dup:c77b3abb6f87acd9-438:4", + "dup:c77b3abb6f87acd9-468:3", + "dup:c77b3abb6f87acd9-176:2", + "dup:c77b3abb6f87acd9-417:3", + "dup:c77b3abb6f87acd9-243:3", + "dup:c77b3abb6f87acd9-331:3", + "dup:c77b3abb6f87acd9-223:3", + "dup:c77b3abb6f87acd9-54:2", + "dup:c77b3abb6f87acd9-380:4", + "dup:c77b3abb6f87acd9-4:3", + "dup:c77b3abb6f87acd9-144:2", + "dup:c77b3abb6f87acd9-28:2", + "dup:c77b3abb6f87acd9-194:2", + "dup:c77b3abb6f87acd9-451:2", + "dup:c77b3abb6f87acd9-102:3", + "dup:c77b3abb6f87acd9-306:3", + "dup:c77b3abb6f87acd9-344:3", + "dup:c77b3abb6f87acd9-26:2", + "dup:c77b3abb6f87acd9-29:2", + "dup:c77b3abb6f87acd9-443:2", + "dup:c77b3abb6f87acd9-364:2", + "dup:c77b3abb6f87acd9-124:2", + "dup:c77b3abb6f87acd9-335:4", + "dup:c77b3abb6f87acd9-257:4", + "dup:c77b3abb6f87acd9-337:2", + "dup:c77b3abb6f87acd9-231:2", + "dup:c77b3abb6f87acd9-449:3", + "dup:c77b3abb6f87acd9-220:2", + "dup:c77b3abb6f87acd9-391:3", + "dup:c77b3abb6f87acd9-199:2", + "dup:c77b3abb6f87acd9-214:2", + "dup:c77b3abb6f87acd9-211:2", + "dup:c77b3abb6f87acd9-66:3", + "dup:c77b3abb6f87acd9-107:2", + "dup:c77b3abb6f87acd9-355:2", + "dup:c77b3abb6f87acd9-384:3", + "dup:c77b3abb6f87acd9-414:3", + "dup:c77b3abb6f87acd9-461:2", + "dup:c77b3abb6f87acd9-248:2", + "dup:c77b3abb6f87acd9-256:3", + "dup:c77b3abb6f87acd9-275:2", + "dup:c77b3abb6f87acd9-19:2", + "dup:c77b3abb6f87acd9-377:3", + "dup:c77b3abb6f87acd9-312:3", + "dup:c77b3abb6f87acd9-465:3", + "dup:c77b3abb6f87acd9-118:2", + "dup:c77b3abb6f87acd9-354:2", + "dup:c77b3abb6f87acd9-1:2", + "dup:c77b3abb6f87acd9-349:2", + "dup:c77b3abb6f87acd9-190:2", + "dup:c77b3abb6f87acd9-320:2", + "dup:c77b3abb6f87acd9-295:2", + "dup:c77b3abb6f87acd9-396:2", + "dup:c77b3abb6f87acd9-100:3", + "dup:c77b3abb6f87acd9-319:2", + "dup:c77b3abb6f87acd9-142:2", + "dup:c77b3abb6f87acd9-98:2", + "dup:c77b3abb6f87acd9-252:2", + "dup:c77b3abb6f87acd9-17:2", + "dup:c77b3abb6f87acd9-80:2", + "dup:6a0ccc8b:2", + "dup:c77b3abb6f87acd9-340:2", + "dup:c77b3abb6f87acd9-91:3", + "dup:c77b3abb6f87acd9-45:3", + "dup:c77b3abb6f87acd9-472:2", + "dup:c77b3abb6f87acd9-161:2", + "dup:c77b3abb6f87acd9-440:3", + "dup:c77b3abb6f87acd9-163:3", + "dup:c77b3abb6f87acd9-110:3", + "dup:c77b3abb6f87acd9-170:2", + "dup:c77b3abb6f87acd9-362:2", + "dup:c77b3abb6f87acd9-447:2", + "dup:bbb1f322:2", + "dup:94e052a3:3", + "dup:c77b3abb6f87acd9-39:2", + "dup:c77b3abb6f87acd9-280:2", + "dup:c77b3abb6f87acd9-479:2", + "dup:c77b3abb6f87acd9-309:2", + "dup:c77b3abb6f87acd9-260:2", + "dup:c77b3abb6f87acd9-172:2", + "dup:c77b3abb6f87acd9-21:2", + "dup:c77b3abb6f87acd9-130:2", + "dup:c77b3abb6f87acd9-123:3", + "dup:c77b3abb6f87acd9-32:3", + "dup:c77b3abb6f87acd9-56:3", + "dup:e401c880:2", + "dup:c77b3abb6f87acd9-94:2", + "dup:c77b3abb6f87acd9-268:2", + "dup:c77b3abb6f87acd9-285:2", + "dup:c77b3abb6f87acd9-149:2", + "dup:c77b3abb6f87acd9-108:2", + "dup:c77b3abb6f87acd9-132:2", + "dup:c77b3abb6f87acd9-115:2", + "dup:c77b3abb6f87acd9-262:2", + "dup:c77b3abb6f87acd9-274:2", + "dup:c77b3abb6f87acd9-261:2", + "dup:c77b3abb6f87acd9-469:2", + "dup:c77b3abb6f87acd9-304:2", + "dup:c77b3abb6f87acd9-219:2", + "dup:c77b3abb6f87acd9-74:2", + "dup:c77b3abb6f87acd9-409:2", + "dup:c77b3abb6f87acd9-378:2", + "dup:c77b3abb6f87acd9-460:2", + "dup:c77b3abb6f87acd9-184:3", + "dup:c77b3abb6f87acd9-69:2", + "dup:c77b3abb6f87acd9-88:2", + "dup:c77b3abb6f87acd9-240:2", + "dup:c77b3abb6f87acd9-10:2", + "dup:c77b3abb6f87acd9-428:2", + "dup:c77b3abb6f87acd9-133:2", + "dup:c77b3abb6f87acd9-315:2", + "dup:c77b3abb6f87acd9-402:2", + "dup:c77b3abb6f87acd9-167:2", + "dup:c77b3abb6f87acd9-318:2", + "dup:c77b3abb6f87acd9-292:2", + "dup:c77b3abb6f87acd9-439:3", + "dup:c77b3abb6f87acd9-95:2", + "dup:c77b3abb6f87acd9-92:2", + "dup:c77b3abb6f87acd9-191:2", + "dup:c77b3abb6f87acd9-282:2", + "dup:c77b3abb6f87acd9-205:2", + "dup:c77b3abb6f87acd9-413:2", + "dup:c77b3abb6f87acd9-425:2", + "dup:c77b3abb6f87acd9-83:2", + "dup:c77b3abb6f87acd9-365:2", + "dup:c77b3abb6f87acd9-82:2", + "dup:c77b3abb6f87acd9-308:2", + "dup:c77b3abb6f87acd9-324:2", + "dup:c77b3abb6f87acd9-146:2", + "dup:1d1f9421:2", + "dup:c77b3abb6f87acd9-251:2", + "dup:c77b3abb6f87acd9-328:2", + "dup:c77b3abb6f87acd9-87:2", + "dup:c77b3abb6f87acd9-250:3", + "dup:c77b3abb6f87acd9-394:3", + "dup:c77b3abb6f87acd9-36:2", + "dup:c77b3abb6f87acd9-245:2", + "dup:c77b3abb6f87acd9-85:3", + "dup:c77b3abb6f87acd9-271:3", + "dup:d2166dab:2", + "dup:c77b3abb6f87acd9-397:2", + "dup:c77b3abb6f87acd9-3:2", + "dup:79b13486:3", + "dup:c77b3abb6f87acd9-75:3", + "dup:c77b3abb6f87acd9-379:3", + "dup:c77b3abb6f87acd9-135:2", + "dup:c77b3abb6f87acd9-81:2", + "dup:c77b3abb6f87acd9-37:2", + "dup:c77b3abb6f87acd9-76:2", + "dup:c77b3abb6f87acd9-116:2", + "dup:c77b3abb6f87acd9-314:2", + "dup:c77b3abb6f87acd9-411:2", + "dup:c77b3abb6f87acd9-249:2", + "dup:c77b3abb6f87acd9-65:2", + "dup:c77b3abb6f87acd9-57:2", + "dup:c77b3abb6f87acd9-291:3", + "dup:c77b3abb6f87acd9-422:2", + "dup:c77b3abb6f87acd9-41:2", + "dup:c77b3abb6f87acd9-284:2", + "dup:c77b3abb6f87acd9-279:2", + "dup:c77b3abb6f87acd9-157:2", + "dup:c77b3abb6f87acd9-207:2", + "dup:c77b3abb6f87acd9-463:2", + "dup:c77b3abb6f87acd9-442:2", + "dup:c77b3abb6f87acd9-276:2", + "dup:c77b3abb6f87acd9-462:2", + "dup:c77b3abb6f87acd9-179:2", + "dup:c77b3abb6f87acd9-382:2", + "dup:c77b3abb6f87acd9-140:2", + "dup:c77b3abb6f87acd9-202:2", + "dup:c77b3abb6f87acd9-474:2", + "dup:c77b3abb6f87acd9-247:2", + "dup:c77b3abb6f87acd9-22:2", + "dup:c77b3abb6f87acd9-441:2", + "dup:c77b3abb6f87acd9-23:2", + "dup:c77b3abb6f87acd9-351:2", + "dup:c77b3abb6f87acd9-160:2", + "dup:c77b3abb6f87acd9-2:2", + "dup:c77b3abb6f87acd9-458:2", + "dup:c77b3abb6f87acd9-128:2", + "dup:c77b3abb6f87acd9-43:2", + "dup:c77b3abb6f87acd9-111:2", + "dup:c77b3abb6f87acd9-122:2", + "dup:c77b3abb6f87acd9-400:2", + "dup:c77b3abb6f87acd9-435:2", + "dup:c77b3abb6f87acd9-177:2", + "dup:c77b3abb6f87acd9-433:2", + "dup:c77b3abb6f87acd9-226:2", + "dup:c77b3abb6f87acd9-358:2", + "dup:c77b3abb6f87acd9-42:2", + "dup:c77b3abb6f87acd9-52:2", + "dup:c77b3abb6f87acd9-141:2", + "dup:c77b3abb6f87acd9-375:2", + "dup:c77b3abb6f87acd9-466:2", + "dup:c77b3abb6f87acd9-255:2", + "dup:c77b3abb6f87acd9-72:2", + "dup:c77b3abb6f87acd9-457:2", + "dup:c77b3abb6f87acd9-159:2", + "dup:c77b3abb6f87acd9-129:2", + "dup:c77b3abb6f87acd9-346:2", + "dup:c77b3abb6f87acd9-148:2", + "dup:c77b3abb6f87acd9-33:2", + "dup:c77b3abb6f87acd9-317:2", + "dup:c77b3abb6f87acd9-265:2", + "dup:c77b3abb6f87acd9-259:2", + "dup:c77b3abb6f87acd9-239:2", + "dup:c77b3abb6f87acd9-363:2", + "dup:c77b3abb6f87acd9-143:2", + "dup:c77b3abb6f87acd9-289:2", + "dup:c77b3abb6f87acd9-301:2", + "dup:555a759d:2", + "dup:c77b3abb6f87acd9-410:2", + "dup:c77b3abb6f87acd9-336:2", + "dup:c77b3abb6f87acd9-263:2", + "dup:c77b3abb6f87acd9-305:2", + "dup:c77b3abb6f87acd9-64:2", + "dup:c77b3abb6f87acd9-24:2", + "dup:c77b3abb6f87acd9-453:2", + "dup:c77b3abb6f87acd9-137:2", + "dup:c77b3abb6f87acd9-412:2", + "dup:c77b3abb6f87acd9-478:2", + "dup:c77b3abb6f87acd9-173:2", + "dup:c77b3abb6f87acd9-287:2", + "dup:c77b3abb6f87acd9-350:2", + "dup:c77b3abb6f87acd9-293:2", + "dup:c77b3abb6f87acd9-393:2", + "dup:c77b3abb6f87acd9-13:2", + "dup:c77b3abb6f87acd9-215:2", + "dup:c77b3abb6f87acd9-201:2", + "dup:c77b3abb6f87acd9-30:2", + "dup:c77b3abb6f87acd9-106:2", + "dup:c77b3abb6f87acd9-434:2", + "dup:c77b3abb6f87acd9-273:2", + "dup:c77b3abb6f87acd9-426:2", + "dup:c77b3abb6f87acd9-70:2", + "dup:c77b3abb6f87acd9-197:2", + "dup:c77b3abb6f87acd9-119:2", + "dup:c77b3abb6f87acd9-162:2", + "dup:c77b3abb6f87acd9-420:2", + "dup:967581fd:2", + "dup:c77b3abb6f87acd9-38:2", + "dup:c77b3abb6f87acd9-12:2", + "dup:c77b3abb6f87acd9-476:2", + "dup:c77b3abb6f87acd9-16:2", + "dup:c77b3abb6f87acd9-237:2", + "dup:c77b3abb6f87acd9-471:2", + "dup:c77b3abb6f87acd9-392:2", + "dup:c77b3abb6f87acd9-227:2", + "dup:c77b3abb6f87acd9-333:2", + "dup:c77b3abb6f87acd9-224:2", + "dup:c77b3abb6f87acd9-408:2", + "dup:c77b3abb6f87acd9-189:2", + "dup:c77b3abb6f87acd9-277:2", + "dup:c77b3abb6f87acd9-325:2", + "dup:11171ac6:2", + "dup:c77b3abb6f87acd9-339:2", + "dup:c77b3abb6f87acd9-6:2", + "dup:c77b3abb6f87acd9-46:2", + "dup:c77b3abb6f87acd9-138:2", + "dup:c77b3abb6f87acd9-448:2", + "dup:c77b3abb6f87acd9-467:2", + "dup:c77b3abb6f87acd9-330:2", + "dup:c77b3abb6f87acd9-369:2", + "dup:c77b3abb6f87acd9-134:2", + "dup:c77b3abb6f87acd9-297:2", + "dup:c77b3abb6f87acd9-68:2", + "dup:c77b3abb6f87acd9-7:2", + "dup:c77b3abb6f87acd9-437:2", + "dup:c77b3abb6f87acd9-326:2", + "dup:c77b3abb6f87acd9-253:2", + "dup:c77b3abb6f87acd9-150:2", + "dup:c77b3abb6f87acd9-343:2", + "dup:c77b3abb6f87acd9-155:2", + "dup:c77b3abb6f87acd9-361:2", + "dup:c77b3abb6f87acd9-50:2", + "dup:c77b3abb6f87acd9-230:2", + "dup:c77b3abb6f87acd9-62:2", + "dup:c77b3abb6f87acd9-399:2", + "dup:c77b3abb6f87acd9-73:2", + "dup:c77b3abb6f87acd9-473:2", + "dup:c77b3abb6f87acd9-114:2", + "dup:c77b3abb6f87acd9-47:2", + "dup:c77b3abb6f87acd9-156:2", + "dup:c77b3abb6f87acd9-169:2", + "dup:c77b3abb6f87acd9-416:2", + "dup:c77b3abb6f87acd9-427:2", + "dup:c77b3abb6f87acd9-25:2", + "dup:c77b3abb6f87acd9-48:2", + "dup:c77b3abb6f87acd9-166:2", + "dup:c77b3abb6f87acd9-296:2", + "dup:c77b3abb6f87acd9-356:2", + "dup:c77b3abb6f87acd9-323:2", + "dup:c77b3abb6f87acd9-267:2", + "dup:c77b3abb6f87acd9-103:2", + "dup:c77b3abb6f87acd9-395:2", + "dup:c77b3abb6f87acd9-186:2", + "dup:c77b3abb6f87acd9-193:2", + "dup:c77b3abb6f87acd9-418:2", + "dup:c77b3abb6f87acd9-454:2", + "dup:c77b3abb6f87acd9-383:2", + "dup:ac3904da:2", + "dup:c77b3abb6f87acd9-390:2", + "dup:c77b3abb6f87acd9-15:2", + "dup:c77b3abb6f87acd9-459:2", + "dup:c77b3abb6f87acd9-366:2", + "dup:c77b3abb6f87acd9-360:2", + "dup:c77b3abb6f87acd9-283:2", + "dup:c77b3abb6f87acd9-376:2", + "dup:c77b3abb6f87acd9-372:2", + "dup:c77b3abb6f87acd9-357:2", + "dup:c77b3abb6f87acd9-381:2", + "dup:c77b3abb6f87acd9-40:2", + "dup:c77b3abb6f87acd9-126:2", + "dup:c77b3abb6f87acd9-398:2", + "dup:c77b3abb6f87acd9-232:2", + "dup:c77b3abb6f87acd9-371:2", + "dup:c77b3abb6f87acd9-117:2", + "dup:c77b3abb6f87acd9-196:2" + ] +} \ No newline at end of file diff --git a/.fallow/baselines/health.json b/.fallow/baselines/health.json new file mode 100644 index 000000000..73d2d1a20 --- /dev/null +++ b/.fallow/baselines/health.json @@ -0,0 +1,1125 @@ +{ + "finding_counts": { + "apps/api/src/app.ts": { + "crap_critical": { + "count": 2 + } + }, + "apps/api/src/controllers/Actions.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/controllers/Activity.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Auth.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 3 + } + }, + "apps/api/src/controllers/Campaigns.ts": { + "crap_moderate": { + "count": 4 + } + }, + "apps/api/src/controllers/Contacts.ts": { + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 7 + } + }, + "apps/api/src/controllers/Domains.ts": { + "crap_high": { + "count": 1 + } + }, + "apps/api/src/controllers/Events.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Oauth/Github.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/controllers/Oauth/Google.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/controllers/Projects.ts": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Segments.ts": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Templates.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Uploads.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/controllers/Users.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 2 + }, + "crap_high": { + "count": 2 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/api/src/controllers/Webhooks.ts": { + "complexity_critical": { + "count": 2 + }, + "crap_critical": { + "count": 2 + } + }, + "apps/api/src/controllers/Workflows.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/jobs/bulk-contact-processor.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/jobs/domain-verification.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/jobs/email-processor.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/jobs/import-processor.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/jobs/segment-count-processor.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/middleware/__tests__/requestLogger.test.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/middleware/auth.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 3 + } + }, + "apps/api/src/middleware/requestLogger.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/services/ActivityService.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 4 + }, + "crap_high": { + "count": 2 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/AnalyticsService.ts": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/api/src/services/BillingLimitService.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/api/src/services/CampaignService.ts": { + "complexity_high": { + "count": 2 + }, + "complexity_moderate": { + "count": 1 + }, + "crap_high": { + "count": 2 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/ContactService.ts": { + "complexity_critical": { + "count": 1 + }, + "complexity_high": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/DomainService.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/services/EmailService.ts": { + "complexity_critical": { + "count": 2 + }, + "complexity_high": { + "count": 1 + }, + "crap_critical": { + "count": 2 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 3 + } + }, + "apps/api/src/services/EmailVerificationService.ts": { + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/api/src/services/EventService.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/QueueService.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/S3Service.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/api/src/services/SESService.ts": { + "complexity_high": { + "count": 1 + }, + "complexity_moderate": { + "count": 1 + } + }, + "apps/api/src/services/SecurityService.ts": { + "complexity_critical": { + "count": 1 + }, + "complexity_high": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/SegmentService.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/api/src/services/UserService.ts": { + "crap_high": { + "count": 1 + } + }, + "apps/api/src/services/WorkflowExecutionService.ts": { + "complexity_critical": { + "count": 3 + }, + "crap_critical": { + "count": 3 + }, + "crap_moderate": { + "count": 4 + } + }, + "apps/api/src/services/WorkflowService.ts": { + "complexity_high": { + "count": 1 + }, + "complexity_moderate": { + "count": 2 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 4 + } + }, + "apps/api/src/services/__tests__/SecurityService.test.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/components/CodeBlock.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/landing/src/components/ComparisonTable.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/components/Navbar/Navbar.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/components/guides/GuideLayout.tsx": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/components/guides/InfoBox.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/components/tools/EmailVerificationResult.tsx": { + "crap_critical": { + "count": 1 + } + }, + "apps/landing/src/components/tools/MarkdownEmailToolbar.tsx": { + "complexity_high": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/landing/src/lib/network.ts": { + "crap_high": { + "count": 1 + } + }, + "apps/landing/src/middleware.ts": { + "crap_moderate": { + "count": 3 + } + }, + "apps/landing/src/pages/api/verify-email.ts": { + "crap_high": { + "count": 1 + } + }, + "apps/landing/src/pages/features/email-editor.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/features/inbound-email.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/features/segments.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/features/smtp.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/features/workflows.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/index.tsx": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/landing/src/pages/tools/spam-checker.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/landing/src/pages/tools/verify-email.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/smtp/src/server.ts": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 2 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/ActivityFeed.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/ActivityItem.tsx": { + "complexity_critical": { + "count": 2 + }, + "crap_critical": { + "count": 4 + } + }, + "apps/web/src/components/ApiKeyDisplay.tsx": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/BillingConsumption.tsx": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/BillingInvoices.tsx": { + "crap_high": { + "count": 3 + } + }, + "apps/web/src/components/BillingLimits.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 2 + }, + "crap_moderate": { + "count": 4 + } + }, + "apps/web/src/components/CampaignSelectionDialog.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/CommandPalette.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 2 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/ContactPicker.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/DashboardLayout.tsx": { + "complexity_moderate": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/DataManagementSettings.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/components/DomainsSettings.tsx": { + "complexity_high": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 3 + } + }, + "apps/web/src/components/EmailDomainInput.tsx": { + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/EmailEditor/EmailEditor.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 4 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/components/EmailEditor/ResizableImage.tsx": { + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/components/EmailEditor/Toolbar.tsx": { + "complexity_high": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/EmailPreviewModal.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/EmailSettings.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/KeyValueEditor.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/QuickStart.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/SecuritySettings.tsx": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/SecurityWarningBanner.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/SegmentFilterBuilder.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 3 + }, + "crap_moderate": { + "count": 3 + } + }, + "apps/web/src/components/SmtpSettings.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/TeamSettings.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/TemplateSearchPicker.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/TemplateSelectionDialog.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/components/UnpaidInvoiceBanner.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/WorkflowBuilder.tsx": { + "complexity_critical": { + "count": 3 + }, + "crap_critical": { + "count": 5 + }, + "crap_high": { + "count": 4 + }, + "crap_moderate": { + "count": 5 + } + }, + "apps/web/src/components/WorkflowVisualizer.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 3 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/components/onboarding/CodeTabs.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/components/onboarding/OnboardingBanner.tsx": { + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/lib/contexts/ActiveProjectProvider.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/lib/hooks/useAnalytics.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/lib/hooks/useContacts.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/lib/hooks/useDashboardStats.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/lib/hooks/useOnboardingStatus.ts": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/lib/network.ts": { + "crap_critical": { + "count": 2 + } + }, + "apps/web/src/lib/validation.ts": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/_app.tsx": { + "crap_high": { + "count": 2 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/pages/activity/index.tsx": { + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/analytics/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/auth/login.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/auth/reset-password.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/auth/signup.tsx": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/auth/verify-email.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/pages/campaigns/[id].tsx": { + "complexity_critical": { + "count": 2 + }, + "crap_critical": { + "count": 3 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/campaigns/create.tsx": { + "complexity_critical": { + "count": 2 + }, + "crap_critical": { + "count": 2 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/campaigns/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 3 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/pages/contacts/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/contacts/index.tsx": { + "complexity_critical": { + "count": 5 + }, + "crap_critical": { + "count": 5 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/pages/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/manage/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + } + }, + "apps/web/src/pages/onboarding/developer.tsx": { + "crap_high": { + "count": 1 + } + }, + "apps/web/src/pages/onboarding/workflows.tsx": { + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/segments/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/pages/segments/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 2 + } + }, + "apps/web/src/pages/segments/new.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/settings/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 3 + } + }, + "apps/web/src/pages/subscribe/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/templates/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 2 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/templates/create.tsx": { + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/templates/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + } + }, + "apps/web/src/pages/unsubscribe/[id].tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "apps/web/src/pages/workflows/[id].tsx": { + "complexity_critical": { + "count": 7 + }, + "crap_critical": { + "count": 9 + }, + "crap_high": { + "count": 9 + }, + "crap_moderate": { + "count": 9 + } + }, + "apps/web/src/pages/workflows/index.tsx": { + "complexity_critical": { + "count": 1 + }, + "crap_critical": { + "count": 3 + } + }, + "apps/wiki/lib/remark-replace-env.mjs": { + "crap_moderate": { + "count": 1 + } + }, + "apps/wiki/middleware.ts": { + "crap_moderate": { + "count": 3 + } + }, + "packages/ui/src/components/atoms/Chart.tsx": { + "crap_critical": { + "count": 2 + }, + "crap_high": { + "count": 1 + }, + "crap_moderate": { + "count": 1 + } + }, + "test/helpers/factories.ts": { + "crap_moderate": { + "count": 1 + } + }, + "test/mocks/queue.mock.ts": { + "crap_moderate": { + "count": 2 + } + } + }, + "runtime_coverage_findings": [], + "target_keys": [ + "apps/api/src/services/DomainService.ts:complexity", + "apps/web/src/lib/hooks/useOnboardingPath.ts:high impact", + "apps/web/src/pages/campaigns/create.tsx:complexity", + "apps/api/src/services/ContactService.ts:complexity", + "apps/web/src/pages/workflows/[id].tsx:complexity", + "apps/api/src/jobs/email-processor.ts:complexity", + "apps/api/src/services/SecurityService.ts:complexity", + "apps/web/src/components/ContactPicker.tsx:complexity", + "apps/landing/src/middleware.ts:untested risk", + "apps/api/src/services/EmailService.ts:circular dependency", + "apps/api/src/services/WorkflowExecutionService.ts:circular dependency", + "apps/wiki/middleware.ts:untested risk", + "apps/web/src/lib/hooks/useOnboardingComplete.ts:high impact", + "apps/api/src/services/EventService.ts:circular dependency", + "apps/web/src/components/CommandPalette.tsx:complexity", + "apps/api/src/jobs/domain-verification.ts:complexity", + "apps/api/src/controllers/Actions.ts:complexity", + "apps/api/src/controllers/Webhooks.ts:complexity", + "apps/web/src/pages/campaigns/[id].tsx:complexity", + "apps/web/src/components/TemplateSelectionDialog.tsx:complexity", + "apps/web/src/components/EmailEditor/EmailEditor.tsx:complexity", + "apps/web/src/components/DataManagementSettings.tsx:complexity", + "apps/api/src/services/SegmentService.ts:complexity", + "apps/web/src/components/ActivityItem.tsx:complexity", + "apps/web/src/pages/contacts/index.tsx:complexity", + "apps/web/src/pages/segments/[id].tsx:complexity", + "apps/api/src/jobs/import-processor.ts:complexity", + "apps/web/src/pages/settings/index.tsx:complexity", + "apps/api/src/services/ActivityService.ts:complexity", + "apps/web/src/components/SegmentFilterBuilder.tsx:complexity", + "apps/web/src/pages/analytics/index.tsx:complexity", + "apps/web/src/components/EmailEditor/Toolbar.tsx:complexity", + "apps/smtp/src/server.ts:complexity" + ] +} \ No newline at end of file diff --git a/.fallowrc.json b/.fallowrc.json new file mode 100644 index 000000000..25425ef1b --- /dev/null +++ b/.fallowrc.json @@ -0,0 +1,77 @@ +{ + "$schema": "./node_modules/fallow/schema.json", + "entry": [ + "apps/api/src/app.ts", + "apps/api/src/jobs/worker.ts", + "apps/smtp/src/server.ts", + "apps/wiki/scripts/*.{js,mts}", + "apps/wiki/middleware.ts", + "apps/wiki/source.config.ts", + "test/setup.ts" + ], + "ignorePatterns": [ + ".claude/**", + ".turbo/**", + "**/.turbo/**", + "**/.next/**", + "**/dist/**", + "docker/**", + "packages/db/prisma/migrations/**", + "apps/wiki/.source/**", + "apps/wiki/content/**", + // Static assets served by URL convention (a