commit 47a263cfe651fa83531aa5da509c3c503650eb00 Author: McElwain Date: Tue Jun 9 15:32:14 2026 -0500 Import word doc generator from webserver root diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8ee9016 --- /dev/null +++ b/.gitignore @@ -0,0 +1,8 @@ +node_modules/ +.env +*.log +.DS_Store +Thumbs.db +~$* +*.tmp +.vscode/ diff --git a/Canned-Emails.docx b/Canned-Emails.docx new file mode 100755 index 0000000..2530e0d Binary files /dev/null and b/Canned-Emails.docx differ diff --git a/Discovery/Abbot-Osborn-Jacobs_MO-DB-disco.docx b/Discovery/Abbot-Osborn-Jacobs_MO-DB-disco.docx new file mode 100755 index 0000000..7faf11f Binary files /dev/null and b/Discovery/Abbot-Osborn-Jacobs_MO-DB-disco.docx differ diff --git a/Discovery/Allen-Withrow_MO-OC-disco-RFAs.docx b/Discovery/Allen-Withrow_MO-OC-disco-RFAs.docx new file mode 100755 index 0000000..65af23e Binary files /dev/null and b/Discovery/Allen-Withrow_MO-OC-disco-RFAs.docx differ diff --git a/Discovery/Allen-Withrow_MO-OC-disco.docx b/Discovery/Allen-Withrow_MO-OC-disco.docx new file mode 100755 index 0000000..95e3df3 Binary files /dev/null and b/Discovery/Allen-Withrow_MO-OC-disco.docx differ diff --git a/Discovery/BQ-KS-disco-DB-CC.docx b/Discovery/BQ-KS-disco-DB-CC.docx new file mode 100755 index 0000000..e424209 Binary files /dev/null and b/Discovery/BQ-KS-disco-DB-CC.docx differ diff --git a/Discovery/BQ-KS-disco-DB-CC_Ryan.docx b/Discovery/BQ-KS-disco-DB-CC_Ryan.docx new file mode 100755 index 0000000..dbcffe6 Binary files /dev/null and b/Discovery/BQ-KS-disco-DB-CC_Ryan.docx differ diff --git a/Discovery/BQ-KS-disco-DB-Loan.docx b/Discovery/BQ-KS-disco-DB-Loan.docx new file mode 100755 index 0000000..0980e2e Binary files /dev/null and b/Discovery/BQ-KS-disco-DB-Loan.docx differ diff --git a/Discovery/BQ-KS-disco-DB-Loan_Ryan.docx b/Discovery/BQ-KS-disco-DB-Loan_Ryan.docx new file mode 100755 index 0000000..c9469ae Binary files /dev/null and b/Discovery/BQ-KS-disco-DB-Loan_Ryan.docx differ diff --git a/Discovery/BQ-KS-disco-OC-CC.docx b/Discovery/BQ-KS-disco-OC-CC.docx new file mode 100755 index 0000000..acc4a59 Binary files /dev/null and b/Discovery/BQ-KS-disco-OC-CC.docx differ diff --git a/Discovery/BQ-KS-disco-OC-CC_Ryan.docx b/Discovery/BQ-KS-disco-OC-CC_Ryan.docx new file mode 100755 index 0000000..8fca278 Binary files /dev/null and b/Discovery/BQ-KS-disco-OC-CC_Ryan.docx differ diff --git a/Discovery/BQ-KS-disco-OC-Deficiency.docx b/Discovery/BQ-KS-disco-OC-Deficiency.docx new file mode 100755 index 0000000..5703658 Binary files /dev/null and b/Discovery/BQ-KS-disco-OC-Deficiency.docx differ diff --git a/Discovery/BQ-KS-disco-OC-Deficiency_Ryan.docx b/Discovery/BQ-KS-disco-OC-Deficiency_Ryan.docx new file mode 100755 index 0000000..f620a93 Binary files /dev/null and b/Discovery/BQ-KS-disco-OC-Deficiency_Ryan.docx differ diff --git a/Discovery/BQ-MO-disco-DB-CC.docx b/Discovery/BQ-MO-disco-DB-CC.docx new file mode 100755 index 0000000..69e5dba Binary files /dev/null and b/Discovery/BQ-MO-disco-DB-CC.docx differ diff --git a/Discovery/BQ-MO-disco-OC-CC.docx b/Discovery/BQ-MO-disco-OC-CC.docx new file mode 100755 index 0000000..3abdc71 Binary files /dev/null and b/Discovery/BQ-MO-disco-OC-CC.docx differ diff --git a/Discovery/Berman-Rabin_MO-OC-CC.docx b/Discovery/Berman-Rabin_MO-OC-CC.docx new file mode 100755 index 0000000..e605872 Binary files /dev/null and b/Discovery/Berman-Rabin_MO-OC-CC.docx differ diff --git a/Discovery/Berman-Rabin_MO-OC-Loan-disco.docx b/Discovery/Berman-Rabin_MO-OC-Loan-disco.docx new file mode 100755 index 0000000..2cac803 Binary files /dev/null and b/Discovery/Berman-Rabin_MO-OC-Loan-disco.docx differ diff --git a/Discovery/BlittKS-DB-CC-disco-RFAs.docx b/Discovery/BlittKS-DB-CC-disco-RFAs.docx new file mode 100755 index 0000000..07c6ff7 Binary files /dev/null and b/Discovery/BlittKS-DB-CC-disco-RFAs.docx differ diff --git a/Discovery/BlittKS-DB-CC-disco-RFAs_Ryan.docx b/Discovery/BlittKS-DB-CC-disco-RFAs_Ryan.docx new file mode 100755 index 0000000..af739d6 Binary files /dev/null and b/Discovery/BlittKS-DB-CC-disco-RFAs_Ryan.docx differ diff --git a/Discovery/BlittKS-DB-CC-disco.docx b/Discovery/BlittKS-DB-CC-disco.docx new file mode 100755 index 0000000..f22ad22 Binary files /dev/null and b/Discovery/BlittKS-DB-CC-disco.docx differ diff --git a/Discovery/BlittKS-DB-CC-disco_Ryan.docx b/Discovery/BlittKS-DB-CC-disco_Ryan.docx new file mode 100755 index 0000000..e83eb63 Binary files /dev/null and b/Discovery/BlittKS-DB-CC-disco_Ryan.docx differ diff --git a/Discovery/BlittKS-OC-CC-disco-RFAs.docx b/Discovery/BlittKS-OC-CC-disco-RFAs.docx new file mode 100755 index 0000000..e4c1c96 Binary files /dev/null and b/Discovery/BlittKS-OC-CC-disco-RFAs.docx differ diff --git a/Discovery/BlittKS-OC-CC-disco-RFAs_Ryan.docx b/Discovery/BlittKS-OC-CC-disco-RFAs_Ryan.docx new file mode 100755 index 0000000..3b691b5 Binary files /dev/null and b/Discovery/BlittKS-OC-CC-disco-RFAs_Ryan.docx differ diff --git a/Discovery/BlittKS-disco - Copy.docx b/Discovery/BlittKS-disco - Copy.docx new file mode 100755 index 0000000..e7a1dd3 Binary files /dev/null and b/Discovery/BlittKS-disco - Copy.docx differ diff --git a/Discovery/BlittKS-disco.docx b/Discovery/BlittKS-disco.docx new file mode 100755 index 0000000..04046b6 Binary files /dev/null and b/Discovery/BlittKS-disco.docx differ diff --git a/Discovery/BlittKS-disco_Ryan.docx b/Discovery/BlittKS-disco_Ryan.docx new file mode 100755 index 0000000..660d6dd Binary files /dev/null and b/Discovery/BlittKS-disco_Ryan.docx differ diff --git a/Discovery/BlittMO-DB-CC-disco-RFAs.docx b/Discovery/BlittMO-DB-CC-disco-RFAs.docx new file mode 100755 index 0000000..d67da6d Binary files /dev/null and b/Discovery/BlittMO-DB-CC-disco-RFAs.docx differ diff --git a/Discovery/BlittMO-DB-CC-disco.docx b/Discovery/BlittMO-DB-CC-disco.docx new file mode 100755 index 0000000..a541eea Binary files /dev/null and b/Discovery/BlittMO-DB-CC-disco.docx differ diff --git a/Discovery/BlittMO-DB-disco.docx b/Discovery/BlittMO-DB-disco.docx new file mode 100755 index 0000000..1f0e30a Binary files /dev/null and b/Discovery/BlittMO-DB-disco.docx differ diff --git a/Discovery/BlittMO-OC-CC-disco.docx b/Discovery/BlittMO-OC-CC-disco.docx new file mode 100755 index 0000000..ea69c48 Binary files /dev/null and b/Discovery/BlittMO-OC-CC-disco.docx differ diff --git a/Discovery/BlittMO-disco-DB-Loan-DRAFT.docx b/Discovery/BlittMO-disco-DB-Loan-DRAFT.docx new file mode 100755 index 0000000..3c74fb8 Binary files /dev/null and b/Discovery/BlittMO-disco-DB-Loan-DRAFT.docx differ diff --git a/Discovery/BlittMO-disco-DB-Loan-RFAs.docx b/Discovery/BlittMO-disco-DB-Loan-RFAs.docx new file mode 100755 index 0000000..b437421 Binary files /dev/null and b/Discovery/BlittMO-disco-DB-Loan-RFAs.docx differ diff --git a/Discovery/BlittMO-disco.docx b/Discovery/BlittMO-disco.docx new file mode 100755 index 0000000..1b72561 Binary files /dev/null and b/Discovery/BlittMO-disco.docx differ diff --git a/Discovery/Burns-Walsh-KS-DB-CC.docx b/Discovery/Burns-Walsh-KS-DB-CC.docx new file mode 100755 index 0000000..c2d8c87 Binary files /dev/null and b/Discovery/Burns-Walsh-KS-DB-CC.docx differ diff --git a/Discovery/Burns-Walsh-KS-DB-CC_Ryan.docx b/Discovery/Burns-Walsh-KS-DB-CC_Ryan.docx new file mode 100755 index 0000000..bc0716f Binary files /dev/null and b/Discovery/Burns-Walsh-KS-DB-CC_Ryan.docx differ diff --git a/Discovery/Couch-Lambert_KS-OC-CC.docx b/Discovery/Couch-Lambert_KS-OC-CC.docx new file mode 100755 index 0000000..fbca9cb Binary files /dev/null and b/Discovery/Couch-Lambert_KS-OC-CC.docx differ diff --git a/Discovery/Couch-Lambert_KS-OC-CC_Ryan.docx b/Discovery/Couch-Lambert_KS-OC-CC_Ryan.docx new file mode 100755 index 0000000..34418d1 Binary files /dev/null and b/Discovery/Couch-Lambert_KS-OC-CC_Ryan.docx differ diff --git a/Discovery/Couch-Lambert_MO-OC-CC.docx b/Discovery/Couch-Lambert_MO-OC-CC.docx new file mode 100755 index 0000000..cfd5c2b Binary files /dev/null and b/Discovery/Couch-Lambert_MO-OC-CC.docx differ diff --git a/Discovery/Disco-Example-Responses.docx b/Discovery/Disco-Example-Responses.docx new file mode 100755 index 0000000..e585466 Binary files /dev/null and b/Discovery/Disco-Example-Responses.docx differ diff --git a/Discovery/Discovery-to-Plaintiff.docx b/Discovery/Discovery-to-Plaintiff.docx new file mode 100755 index 0000000..8a7ef82 Binary files /dev/null and b/Discovery/Discovery-to-Plaintiff.docx differ diff --git a/Discovery/Discovery-to-Plaintiff_Balance-Inquiry.docx b/Discovery/Discovery-to-Plaintiff_Balance-Inquiry.docx new file mode 100755 index 0000000..306d42f Binary files /dev/null and b/Discovery/Discovery-to-Plaintiff_Balance-Inquiry.docx differ diff --git a/Discovery/Discovery-to-Plaintiff_Debt-buyer-Balance-Inquiry_ROGs_RPDs.pdf.docx b/Discovery/Discovery-to-Plaintiff_Debt-buyer-Balance-Inquiry_ROGs_RPDs.pdf.docx new file mode 100755 index 0000000..1f717e9 Binary files /dev/null and b/Discovery/Discovery-to-Plaintiff_Debt-buyer-Balance-Inquiry_ROGs_RPDs.pdf.docx differ diff --git a/Discovery/Discovery-to-Plaintiff_ROGs-RPDs.docx b/Discovery/Discovery-to-Plaintiff_ROGs-RPDs.docx new file mode 100755 index 0000000..543c41c Binary files /dev/null and b/Discovery/Discovery-to-Plaintiff_ROGs-RPDs.docx differ diff --git a/Discovery/Discovery-to-Plaintiff_ROGs-RPDs_Westlake_MO.docx b/Discovery/Discovery-to-Plaintiff_ROGs-RPDs_Westlake_MO.docx new file mode 100755 index 0000000..759cb1d Binary files /dev/null and b/Discovery/Discovery-to-Plaintiff_ROGs-RPDs_Westlake_MO.docx differ diff --git a/Discovery/Faber-Brand-MO-DB-Auto-Deficiency-RFAs.docx b/Discovery/Faber-Brand-MO-DB-Auto-Deficiency-RFAs.docx new file mode 100755 index 0000000..2a373b9 Binary files /dev/null and b/Discovery/Faber-Brand-MO-DB-Auto-Deficiency-RFAs.docx differ diff --git a/Discovery/Faber-Brand-MO-DB-Loan-RFAs.docx b/Discovery/Faber-Brand-MO-DB-Loan-RFAs.docx new file mode 100755 index 0000000..e1afcd6 Binary files /dev/null and b/Discovery/Faber-Brand-MO-DB-Loan-RFAs.docx differ diff --git a/Discovery/Faber-Brand-MO-DB-Loan.docx b/Discovery/Faber-Brand-MO-DB-Loan.docx new file mode 100755 index 0000000..f9eea4e Binary files /dev/null and b/Discovery/Faber-Brand-MO-DB-Loan.docx differ diff --git a/Discovery/KF-KS-OC-CC.docx b/Discovery/KF-KS-OC-CC.docx new file mode 100755 index 0000000..0584c59 Binary files /dev/null and b/Discovery/KF-KS-OC-CC.docx differ diff --git a/Discovery/KF-KS-OC-CC_Ryan.docx b/Discovery/KF-KS-OC-CC_Ryan.docx new file mode 100755 index 0000000..41a16b7 Binary files /dev/null and b/Discovery/KF-KS-OC-CC_Ryan.docx differ diff --git a/Discovery/Mandarich-KS-disco-DB.docx b/Discovery/Mandarich-KS-disco-DB.docx new file mode 100755 index 0000000..028f6e5 Binary files /dev/null and b/Discovery/Mandarich-KS-disco-DB.docx differ diff --git a/Discovery/Mandarich-KS-disco-DB_Ryan.docx b/Discovery/Mandarich-KS-disco-DB_Ryan.docx new file mode 100755 index 0000000..c6a2607 Binary files /dev/null and b/Discovery/Mandarich-KS-disco-DB_Ryan.docx differ diff --git a/Discovery/Mandarich-KS-disco-OC.docx b/Discovery/Mandarich-KS-disco-OC.docx new file mode 100755 index 0000000..2e1af78 Binary files /dev/null and b/Discovery/Mandarich-KS-disco-OC.docx differ diff --git a/Discovery/Mandarich-KS-disco-OC_Ryan.docx b/Discovery/Mandarich-KS-disco-OC_Ryan.docx new file mode 100755 index 0000000..5072bff Binary files /dev/null and b/Discovery/Mandarich-KS-disco-OC_Ryan.docx differ diff --git a/Discovery/Mandarich-MO-disco.docx b/Discovery/Mandarich-MO-disco.docx new file mode 100755 index 0000000..e330964 Binary files /dev/null and b/Discovery/Mandarich-MO-disco.docx differ diff --git a/Discovery/PRA-KS-disco.docx b/Discovery/PRA-KS-disco.docx new file mode 100755 index 0000000..0b7a2a1 Binary files /dev/null and b/Discovery/PRA-KS-disco.docx differ diff --git a/Discovery/PRA-KS-disco_Ryan.docx b/Discovery/PRA-KS-disco_Ryan.docx new file mode 100755 index 0000000..9a6e8c8 Binary files /dev/null and b/Discovery/PRA-KS-disco_Ryan.docx differ diff --git a/Discovery/PRA-KS-disco_w-o-Signature.docx b/Discovery/PRA-KS-disco_w-o-Signature.docx new file mode 100755 index 0000000..7637750 Binary files /dev/null and b/Discovery/PRA-KS-disco_w-o-Signature.docx differ diff --git a/Discovery/PRA-KS-disco_w-o-Signature_Ryan.docx b/Discovery/PRA-KS-disco_w-o-Signature_Ryan.docx new file mode 100755 index 0000000..9580a0e Binary files /dev/null and b/Discovery/PRA-KS-disco_w-o-Signature_Ryan.docx differ diff --git a/Discovery/PRA-MO-disco.docx b/Discovery/PRA-MO-disco.docx new file mode 100755 index 0000000..f430de1 Binary files /dev/null and b/Discovery/PRA-MO-disco.docx differ diff --git a/Discovery/PRA-disco.docx b/Discovery/PRA-disco.docx new file mode 100755 index 0000000..0678baa Binary files /dev/null and b/Discovery/PRA-disco.docx differ diff --git a/Discovery/Pappas-KS-DB-disco.docx b/Discovery/Pappas-KS-DB-disco.docx new file mode 100755 index 0000000..d72702e Binary files /dev/null and b/Discovery/Pappas-KS-DB-disco.docx differ diff --git a/Discovery/Pappas-KS-DB-disco_Ryan.docx b/Discovery/Pappas-KS-DB-disco_Ryan.docx new file mode 100755 index 0000000..bf3660b Binary files /dev/null and b/Discovery/Pappas-KS-DB-disco_Ryan.docx differ diff --git a/Discovery/Pappas-KS-Loan-OC.docx b/Discovery/Pappas-KS-Loan-OC.docx new file mode 100755 index 0000000..89f0e95 Binary files /dev/null and b/Discovery/Pappas-KS-Loan-OC.docx differ diff --git a/Discovery/Pappas-KS-Loan-OC_Ryan.docx b/Discovery/Pappas-KS-Loan-OC_Ryan.docx new file mode 100755 index 0000000..a67fe62 Binary files /dev/null and b/Discovery/Pappas-KS-Loan-OC_Ryan.docx differ diff --git a/Discovery/Pappas-KS-OC-disco.docx b/Discovery/Pappas-KS-OC-disco.docx new file mode 100755 index 0000000..03fef75 Binary files /dev/null and b/Discovery/Pappas-KS-OC-disco.docx differ diff --git a/Discovery/Pappas-KS-OC-disco_Ryan.docx b/Discovery/Pappas-KS-OC-disco_Ryan.docx new file mode 100755 index 0000000..bf9c79c Binary files /dev/null and b/Discovery/Pappas-KS-OC-disco_Ryan.docx differ diff --git a/Discovery/Pappas-MO-DB-Consumer-Installment-Loan-disco.docx b/Discovery/Pappas-MO-DB-Consumer-Installment-Loan-disco.docx new file mode 100755 index 0000000..3c8423b Binary files /dev/null and b/Discovery/Pappas-MO-DB-Consumer-Installment-Loan-disco.docx differ diff --git a/Discovery/Pappas-MO-DB-disco.docx b/Discovery/Pappas-MO-DB-disco.docx new file mode 100755 index 0000000..04ebbd8 Binary files /dev/null and b/Discovery/Pappas-MO-DB-disco.docx differ diff --git a/Discovery/Pappas-MO-OC-disco.docx b/Discovery/Pappas-MO-OC-disco.docx new file mode 100755 index 0000000..9b2fecd Binary files /dev/null and b/Discovery/Pappas-MO-OC-disco.docx differ diff --git a/Discovery/Southlaw-MO-OC-disco.docx b/Discovery/Southlaw-MO-OC-disco.docx new file mode 100755 index 0000000..8f9edd1 Binary files /dev/null and b/Discovery/Southlaw-MO-OC-disco.docx differ diff --git a/Letters/Annual-Credit-Report-Request-Envelope.docx b/Letters/Annual-Credit-Report-Request-Envelope.docx new file mode 100644 index 0000000..95292ab Binary files /dev/null and b/Letters/Annual-Credit-Report-Request-Envelope.docx differ diff --git a/Letters/Annual-Credit-Report-Request-Form.docx b/Letters/Annual-Credit-Report-Request-Form.docx new file mode 100644 index 0000000..83a4202 Binary files /dev/null and b/Letters/Annual-Credit-Report-Request-Form.docx differ diff --git a/Letters/Envelope_Client.docx b/Letters/Envelope_Client.docx new file mode 100755 index 0000000..6d1fc65 Binary files /dev/null and b/Letters/Envelope_Client.docx differ diff --git a/Letters/Envelope_Client_without_Sender.docx b/Letters/Envelope_Client_without_Sender.docx new file mode 100644 index 0000000..7852f84 Binary files /dev/null and b/Letters/Envelope_Client_without_Sender.docx differ diff --git a/Letters/Envelope_OC.docx b/Letters/Envelope_OC.docx new file mode 100644 index 0000000..5a9a508 Binary files /dev/null and b/Letters/Envelope_OC.docx differ diff --git a/Letters/Intake-Cover-Letter_James.docx b/Letters/Intake-Cover-Letter_James.docx new file mode 100755 index 0000000..2fb8fe2 Binary files /dev/null and b/Letters/Intake-Cover-Letter_James.docx differ diff --git a/Letters/Intake-Cover-Letter_Ryan.docx b/Letters/Intake-Cover-Letter_Ryan.docx new file mode 100755 index 0000000..96f38f1 Binary files /dev/null and b/Letters/Intake-Cover-Letter_Ryan.docx differ diff --git a/Letters/Intake_case-expectations-long.docx b/Letters/Intake_case-expectations-long.docx new file mode 100644 index 0000000..878201b Binary files /dev/null and b/Letters/Intake_case-expectations-long.docx differ diff --git a/Letters/Intake_case-expectations-long.pdf b/Letters/Intake_case-expectations-long.pdf new file mode 100644 index 0000000..fa829ce Binary files /dev/null and b/Letters/Intake_case-expectations-long.pdf differ diff --git a/Letters/Intake_case-expectations.docx b/Letters/Intake_case-expectations.docx new file mode 100644 index 0000000..dcc0f79 Binary files /dev/null and b/Letters/Intake_case-expectations.docx differ diff --git a/Letters/Intake_general-information.docx b/Letters/Intake_general-information.docx new file mode 100644 index 0000000..5df41a5 Binary files /dev/null and b/Letters/Intake_general-information.docx differ diff --git a/Letters/Intake_welcome-letter.docx b/Letters/Intake_welcome-letter.docx new file mode 100644 index 0000000..51262bc Binary files /dev/null and b/Letters/Intake_welcome-letter.docx differ diff --git a/Letters/Post-Judgment_Garnishment-Notice_James.docx b/Letters/Post-Judgment_Garnishment-Notice_James.docx new file mode 100755 index 0000000..0cef1af Binary files /dev/null and b/Letters/Post-Judgment_Garnishment-Notice_James.docx differ diff --git a/Letters/Post-Judgment_Garnishment-Notice_Ryan.docx b/Letters/Post-Judgment_Garnishment-Notice_Ryan.docx new file mode 100755 index 0000000..6343c0b Binary files /dev/null and b/Letters/Post-Judgment_Garnishment-Notice_Ryan.docx differ diff --git a/Letters/Post-Judgment_Missed-Payment_James.docx b/Letters/Post-Judgment_Missed-Payment_James.docx new file mode 100755 index 0000000..ae11b6e Binary files /dev/null and b/Letters/Post-Judgment_Missed-Payment_James.docx differ diff --git a/Letters/Post-Judgment_Missed-Payment_Ryan.docx b/Letters/Post-Judgment_Missed-Payment_Ryan.docx new file mode 100755 index 0000000..27d2c96 Binary files /dev/null and b/Letters/Post-Judgment_Missed-Payment_Ryan.docx differ diff --git a/Letters/Post-Judgment_Returned-Check_James.docx b/Letters/Post-Judgment_Returned-Check_James.docx new file mode 100755 index 0000000..e9ac6c7 Binary files /dev/null and b/Letters/Post-Judgment_Returned-Check_James.docx differ diff --git a/Letters/Post-Judgment_Returned-Check_Ryan.docx b/Letters/Post-Judgment_Returned-Check_Ryan.docx new file mode 100755 index 0000000..ff1d6b4 Binary files /dev/null and b/Letters/Post-Judgment_Returned-Check_Ryan.docx differ diff --git a/Letters/authorization-disclosure-no-payment.docx b/Letters/authorization-disclosure-no-payment.docx new file mode 100644 index 0000000..7f5a22b Binary files /dev/null and b/Letters/authorization-disclosure-no-payment.docx differ diff --git a/Letters/authorization-disclosure.docx b/Letters/authorization-disclosure.docx new file mode 100644 index 0000000..19aaa53 Binary files /dev/null and b/Letters/authorization-disclosure.docx differ diff --git a/Letters/closeout_CJ_Information-Sheet.docx b/Letters/closeout_CJ_Information-Sheet.docx new file mode 100644 index 0000000..c1ec0a1 Binary files /dev/null and b/Letters/closeout_CJ_Information-Sheet.docx differ diff --git a/Letters/closeout_CJ_Ryan.docx b/Letters/closeout_CJ_Ryan.docx new file mode 100755 index 0000000..ff7837e Binary files /dev/null and b/Letters/closeout_CJ_Ryan.docx differ diff --git a/Letters/closeout_CJ_with-interest-costs.docx b/Letters/closeout_CJ_with-interest-costs.docx new file mode 100755 index 0000000..24d8693 Binary files /dev/null and b/Letters/closeout_CJ_with-interest-costs.docx differ diff --git a/Letters/closeout_DWOP-DB-by-Court_James.docx b/Letters/closeout_DWOP-DB-by-Court_James.docx new file mode 100755 index 0000000..1e5b13c Binary files /dev/null and b/Letters/closeout_DWOP-DB-by-Court_James.docx differ diff --git a/Letters/closeout_DWOP-DB-by-Court_Ryan.docx b/Letters/closeout_DWOP-DB-by-Court_Ryan.docx new file mode 100644 index 0000000..8e8fbfb Binary files /dev/null and b/Letters/closeout_DWOP-DB-by-Court_Ryan.docx differ diff --git a/Letters/closeout_DWOP-DB-by-Court_without-enclosures_James.docx b/Letters/closeout_DWOP-DB-by-Court_without-enclosures_James.docx new file mode 100755 index 0000000..6e5c354 Binary files /dev/null and b/Letters/closeout_DWOP-DB-by-Court_without-enclosures_James.docx differ diff --git a/Letters/closeout_DWOP-DB-by-Court_without-enclosures_Ryan.docx b/Letters/closeout_DWOP-DB-by-Court_without-enclosures_Ryan.docx new file mode 100644 index 0000000..502fb8b Binary files /dev/null and b/Letters/closeout_DWOP-DB-by-Court_without-enclosures_Ryan.docx differ diff --git a/Letters/closeout_DWOP-DB_James.docx b/Letters/closeout_DWOP-DB_James.docx new file mode 100755 index 0000000..90086e7 Binary files /dev/null and b/Letters/closeout_DWOP-DB_James.docx differ diff --git a/Letters/closeout_DWOP-DB_Ryan.docx b/Letters/closeout_DWOP-DB_Ryan.docx new file mode 100644 index 0000000..5989d5f Binary files /dev/null and b/Letters/closeout_DWOP-DB_Ryan.docx differ diff --git a/Letters/closeout_DWOP-Hardship_James.docx b/Letters/closeout_DWOP-Hardship_James.docx new file mode 100755 index 0000000..944bfe8 Binary files /dev/null and b/Letters/closeout_DWOP-Hardship_James.docx differ diff --git a/Letters/closeout_DWOP-Hardship_Ryan.docx b/Letters/closeout_DWOP-Hardship_Ryan.docx new file mode 100644 index 0000000..05aa96e Binary files /dev/null and b/Letters/closeout_DWOP-Hardship_Ryan.docx differ diff --git a/Letters/closeout_DWOP-OC-by-Court_James.docx b/Letters/closeout_DWOP-OC-by-Court_James.docx new file mode 100755 index 0000000..3e3784b Binary files /dev/null and b/Letters/closeout_DWOP-OC-by-Court_James.docx differ diff --git a/Letters/closeout_DWOP-OC-by-Court_Ryan.docx b/Letters/closeout_DWOP-OC-by-Court_Ryan.docx new file mode 100755 index 0000000..198d8df Binary files /dev/null and b/Letters/closeout_DWOP-OC-by-Court_Ryan.docx differ diff --git a/Letters/closeout_DWOP-OC-by-Court_without-enclosures_James.docx b/Letters/closeout_DWOP-OC-by-Court_without-enclosures_James.docx new file mode 100755 index 0000000..744791f Binary files /dev/null and b/Letters/closeout_DWOP-OC-by-Court_without-enclosures_James.docx differ diff --git a/Letters/closeout_DWOP-OC-by-Court_without-enclosures_Ryan.docx b/Letters/closeout_DWOP-OC-by-Court_without-enclosures_Ryan.docx new file mode 100755 index 0000000..0a83546 Binary files /dev/null and b/Letters/closeout_DWOP-OC-by-Court_without-enclosures_Ryan.docx differ diff --git a/Letters/closeout_DWOP-Trial_James.docx b/Letters/closeout_DWOP-Trial_James.docx new file mode 100755 index 0000000..b3fa8c8 Binary files /dev/null and b/Letters/closeout_DWOP-Trial_James.docx differ diff --git a/Letters/closeout_DWOP-Trial_Ryan.docx b/Letters/closeout_DWOP-Trial_Ryan.docx new file mode 100755 index 0000000..0ec5757 Binary files /dev/null and b/Letters/closeout_DWOP-Trial_Ryan.docx differ diff --git a/Letters/closeout_DWOP-generic_James.docx b/Letters/closeout_DWOP-generic_James.docx new file mode 100755 index 0000000..391a31a Binary files /dev/null and b/Letters/closeout_DWOP-generic_James.docx differ diff --git a/Letters/closeout_DWOP-generic_Ryan.docx b/Letters/closeout_DWOP-generic_Ryan.docx new file mode 100644 index 0000000..92dc4dc Binary files /dev/null and b/Letters/closeout_DWOP-generic_Ryan.docx differ diff --git a/Letters/closeout_DWOP_James.docx b/Letters/closeout_DWOP_James.docx new file mode 100755 index 0000000..08fbdd3 Binary files /dev/null and b/Letters/closeout_DWOP_James.docx differ diff --git a/Letters/closeout_DWOP_Ryan.docx b/Letters/closeout_DWOP_Ryan.docx new file mode 100755 index 0000000..6416eb6 Binary files /dev/null and b/Letters/closeout_DWOP_Ryan.docx differ diff --git a/Letters/closeout_DWP_James.docx b/Letters/closeout_DWP_James.docx new file mode 100755 index 0000000..eaf2f1e Binary files /dev/null and b/Letters/closeout_DWP_James.docx differ diff --git a/Letters/closeout_DWP_Ryan.docx b/Letters/closeout_DWP_Ryan.docx new file mode 100755 index 0000000..2c20b1f Binary files /dev/null and b/Letters/closeout_DWP_Ryan.docx differ diff --git a/Letters/closeout_FCRA-Notice-CJ.docx b/Letters/closeout_FCRA-Notice-CJ.docx new file mode 100644 index 0000000..2d8696c Binary files /dev/null and b/Letters/closeout_FCRA-Notice-CJ.docx differ diff --git a/Letters/closeout_FCRA-Notice-Rule-17.docx b/Letters/closeout_FCRA-Notice-Rule-17.docx new file mode 100644 index 0000000..f216d5e Binary files /dev/null and b/Letters/closeout_FCRA-Notice-Rule-17.docx differ diff --git a/Letters/closeout_MO-Traffic-Ticket_James.docx b/Letters/closeout_MO-Traffic-Ticket_James.docx new file mode 100755 index 0000000..d8f4573 Binary files /dev/null and b/Letters/closeout_MO-Traffic-Ticket_James.docx differ diff --git a/Letters/closeout_MO-Traffic-Ticket_Ryan.docx b/Letters/closeout_MO-Traffic-Ticket_Ryan.docx new file mode 100755 index 0000000..9e95bb3 Binary files /dev/null and b/Letters/closeout_MO-Traffic-Ticket_Ryan.docx differ diff --git a/Letters/closeout_PRA-Mutual-Release_James.docx b/Letters/closeout_PRA-Mutual-Release_James.docx new file mode 100755 index 0000000..77b1ab1 Binary files /dev/null and b/Letters/closeout_PRA-Mutual-Release_James.docx differ diff --git a/Letters/closeout_PRA-Mutual-Release_Ryan.docx b/Letters/closeout_PRA-Mutual-Release_Ryan.docx new file mode 100755 index 0000000..7cd5c2d Binary files /dev/null and b/Letters/closeout_PRA-Mutual-Release_Ryan.docx differ diff --git a/Letters/closeout_Rule-17_James.docx b/Letters/closeout_Rule-17_James.docx new file mode 100755 index 0000000..995e7a2 Binary files /dev/null and b/Letters/closeout_Rule-17_James.docx differ diff --git a/Letters/closeout_Rule-17_Ryan.docx b/Letters/closeout_Rule-17_Ryan.docx new file mode 100755 index 0000000..abfb612 Binary files /dev/null and b/Letters/closeout_Rule-17_Ryan.docx differ diff --git a/Letters/closeout_Settlement-Payment-DWP-no-due-date_James.docx b/Letters/closeout_Settlement-Payment-DWP-no-due-date_James.docx new file mode 100755 index 0000000..e8f15c3 Binary files /dev/null and b/Letters/closeout_Settlement-Payment-DWP-no-due-date_James.docx differ diff --git a/Letters/closeout_Settlement-Payment-DWP-no-due-date_Ryan.docx b/Letters/closeout_Settlement-Payment-DWP-no-due-date_Ryan.docx new file mode 100755 index 0000000..787d64f Binary files /dev/null and b/Letters/closeout_Settlement-Payment-DWP-no-due-date_Ryan.docx differ diff --git a/Letters/closeout_Settlement-Payment-DWP_James.docx b/Letters/closeout_Settlement-Payment-DWP_James.docx new file mode 100755 index 0000000..ca536f5 Binary files /dev/null and b/Letters/closeout_Settlement-Payment-DWP_James.docx differ diff --git a/Letters/closeout_Settlement-Payment-DWP_Ryan.docx b/Letters/closeout_Settlement-Payment-DWP_Ryan.docx new file mode 100755 index 0000000..80a44b1 Binary files /dev/null and b/Letters/closeout_Settlement-Payment-DWP_Ryan.docx differ diff --git a/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_James.docx b/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_James.docx new file mode 100755 index 0000000..89dc727 Binary files /dev/null and b/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_James.docx differ diff --git a/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_Ryan.docx b/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_Ryan.docx new file mode 100755 index 0000000..5005521 Binary files /dev/null and b/Letters/closeout_Settlement-Payment-Mutual-Release-DWP_Ryan.docx differ diff --git a/Letters/payment-receipt_Ryan.docx b/Letters/payment-receipt_Ryan.docx new file mode 100644 index 0000000..57b6271 Binary files /dev/null and b/Letters/payment-receipt_Ryan.docx differ diff --git a/Letters/representation-termination_James.docx b/Letters/representation-termination_James.docx new file mode 100755 index 0000000..099ef0e Binary files /dev/null and b/Letters/representation-termination_James.docx differ diff --git a/Letters/representation-termination_Ryan.docx b/Letters/representation-termination_Ryan.docx new file mode 100755 index 0000000..2b147f2 Binary files /dev/null and b/Letters/representation-termination_Ryan.docx differ diff --git a/Letters/unable-to-contact_James.docx b/Letters/unable-to-contact_James.docx new file mode 100755 index 0000000..39692c1 Binary files /dev/null and b/Letters/unable-to-contact_James.docx differ diff --git a/Letters/unable-to-contact_Ryan.docx b/Letters/unable-to-contact_Ryan.docx new file mode 100755 index 0000000..aaee339 Binary files /dev/null and b/Letters/unable-to-contact_Ryan.docx differ diff --git a/Pleadings/KS_Answer-Account-Stated-DB.docx b/Pleadings/KS_Answer-Account-Stated-DB.docx new file mode 100755 index 0000000..09acaa5 Binary files /dev/null and b/Pleadings/KS_Answer-Account-Stated-DB.docx differ diff --git a/Pleadings/KS_Answer.docx b/Pleadings/KS_Answer.docx new file mode 100755 index 0000000..d3c8a2e Binary files /dev/null and b/Pleadings/KS_Answer.docx differ diff --git a/Pleadings/KS_Answer_Account-Stated-OC.docx b/Pleadings/KS_Answer_Account-Stated-OC.docx new file mode 100755 index 0000000..ef47c24 Binary files /dev/null and b/Pleadings/KS_Answer_Account-Stated-OC.docx differ diff --git a/Pleadings/KS_EoA-Ryan.docx b/Pleadings/KS_EoA-Ryan.docx new file mode 100755 index 0000000..d88fcb5 Binary files /dev/null and b/Pleadings/KS_EoA-Ryan.docx differ diff --git a/Pleadings/KS_JOCO_Motion-to-Withdraw.docx b/Pleadings/KS_JOCO_Motion-to-Withdraw.docx new file mode 100755 index 0000000..30c9ae7 Binary files /dev/null and b/Pleadings/KS_JOCO_Motion-to-Withdraw.docx differ diff --git a/Pleadings/KS_Journal-Entry-DWOP.docx b/Pleadings/KS_Journal-Entry-DWOP.docx new file mode 100755 index 0000000..4b52eaf Binary files /dev/null and b/Pleadings/KS_Journal-Entry-DWOP.docx differ diff --git a/Pleadings/KS_MSAJ.docx b/Pleadings/KS_MSAJ.docx new file mode 100755 index 0000000..341d500 Binary files /dev/null and b/Pleadings/KS_MSAJ.docx differ diff --git a/Pleadings/KS_Motion-to-File-Out-of-Time.docx b/Pleadings/KS_Motion-to-File-Out-of-Time.docx new file mode 100755 index 0000000..6b51754 Binary files /dev/null and b/Pleadings/KS_Motion-to-File-Out-of-Time.docx differ diff --git a/Pleadings/KS_Motion-to-Withdraw.docx b/Pleadings/KS_Motion-to-Withdraw.docx new file mode 100755 index 0000000..1db0609 Binary files /dev/null and b/Pleadings/KS_Motion-to-Withdraw.docx differ diff --git a/Pleadings/KS_NoH.docx b/Pleadings/KS_NoH.docx new file mode 100755 index 0000000..bd67b63 Binary files /dev/null and b/Pleadings/KS_NoH.docx differ diff --git a/Pleadings/KS_Response-to-MSJ_Late-Response_Auto-Deficiency-Blitt.docx b/Pleadings/KS_Response-to-MSJ_Late-Response_Auto-Deficiency-Blitt.docx new file mode 100755 index 0000000..e7635e8 Binary files /dev/null and b/Pleadings/KS_Response-to-MSJ_Late-Response_Auto-Deficiency-Blitt.docx differ diff --git a/Pleadings/KS_Response-to-MSJ_Late-Responses-Blitt.docx b/Pleadings/KS_Response-to-MSJ_Late-Responses-Blitt.docx new file mode 100755 index 0000000..3b17f7e Binary files /dev/null and b/Pleadings/KS_Response-to-MSJ_Late-Responses-Blitt.docx differ diff --git a/Pleadings/KS_Service_Waiver.docx b/Pleadings/KS_Service_Waiver.docx new file mode 100755 index 0000000..75ef975 Binary files /dev/null and b/Pleadings/KS_Service_Waiver.docx differ diff --git a/Pleadings/MO_ADs_Account-Stated_Credit-Card_DB.docx b/Pleadings/MO_ADs_Account-Stated_Credit-Card_DB.docx new file mode 100755 index 0000000..e45d3a3 Binary files /dev/null and b/Pleadings/MO_ADs_Account-Stated_Credit-Card_DB.docx differ diff --git a/Pleadings/MO_ADs_Account-Stated_Credit-Card_OC.docx b/Pleadings/MO_ADs_Account-Stated_Credit-Card_OC.docx new file mode 100755 index 0000000..e709c61 Binary files /dev/null and b/Pleadings/MO_ADs_Account-Stated_Credit-Card_OC.docx differ diff --git a/Pleadings/MO_ADs_Account-Stated_Medical_OC.docx b/Pleadings/MO_ADs_Account-Stated_Medical_OC.docx new file mode 100755 index 0000000..2426f26 Binary files /dev/null and b/Pleadings/MO_ADs_Account-Stated_Medical_OC.docx differ diff --git a/Pleadings/MO_ADs_Breach-of-Contract_Auto-Deficiency_OC.docx b/Pleadings/MO_ADs_Breach-of-Contract_Auto-Deficiency_OC.docx new file mode 100755 index 0000000..e9033e5 Binary files /dev/null and b/Pleadings/MO_ADs_Breach-of-Contract_Auto-Deficiency_OC.docx differ diff --git a/Pleadings/MO_ADs_Breach-of-Contract_Credit-Card_OC.docx b/Pleadings/MO_ADs_Breach-of-Contract_Credit-Card_OC.docx new file mode 100755 index 0000000..d136381 Binary files /dev/null and b/Pleadings/MO_ADs_Breach-of-Contract_Credit-Card_OC.docx differ diff --git a/Pleadings/MO_ADs_Breach-of-Contract_Payday.docx b/Pleadings/MO_ADs_Breach-of-Contract_Payday.docx new file mode 100755 index 0000000..182aedd Binary files /dev/null and b/Pleadings/MO_ADs_Breach-of-Contract_Payday.docx differ diff --git a/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_DB.docx b/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_DB.docx new file mode 100755 index 0000000..5f1995c Binary files /dev/null and b/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_DB.docx differ diff --git a/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_OC.docx b/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_OC.docx new file mode 100755 index 0000000..687030f Binary files /dev/null and b/Pleadings/MO_ADs_Breach-of-Contract_Promissory-Note_OC.docx differ diff --git a/Pleadings/MO_Answer-ADs_Account-Stated_Credit-Card_OC.docx b/Pleadings/MO_Answer-ADs_Account-Stated_Credit-Card_OC.docx new file mode 100755 index 0000000..e5212e9 Binary files /dev/null and b/Pleadings/MO_Answer-ADs_Account-Stated_Credit-Card_OC.docx differ diff --git a/Pleadings/MO_Joint-MSAJ.docx b/Pleadings/MO_Joint-MSAJ.docx new file mode 100755 index 0000000..119cf60 Binary files /dev/null and b/Pleadings/MO_Joint-MSAJ.docx differ diff --git a/Pleadings/MO_Joint-Motion-Order-to-Continue-Hearing.docx b/Pleadings/MO_Joint-Motion-Order-to-Continue-Hearing.docx new file mode 100755 index 0000000..5cbfd94 Binary files /dev/null and b/Pleadings/MO_Joint-Motion-Order-to-Continue-Hearing.docx differ diff --git a/Pleadings/MO_Joint-Motion-Order-to-Continue-Trial.docx b/Pleadings/MO_Joint-Motion-Order-to-Continue-Trial.docx new file mode 100755 index 0000000..5a573b2 Binary files /dev/null and b/Pleadings/MO_Joint-Motion-Order-to-Continue-Trial.docx differ diff --git a/Pleadings/MO_Joint-Motion-to-Continue-Hearing.docx b/Pleadings/MO_Joint-Motion-to-Continue-Hearing.docx new file mode 100755 index 0000000..68ffc4a Binary files /dev/null and b/Pleadings/MO_Joint-Motion-to-Continue-Hearing.docx differ diff --git a/Pleadings/MO_Joint-Motion-to-Continue-Trial.docx b/Pleadings/MO_Joint-Motion-to-Continue-Trial.docx new file mode 100755 index 0000000..f5991f7 Binary files /dev/null and b/Pleadings/MO_Joint-Motion-to-Continue-Trial.docx differ diff --git a/Pleadings/MO_MSAJ.docx b/Pleadings/MO_MSAJ.docx new file mode 100755 index 0000000..7790170 Binary files /dev/null and b/Pleadings/MO_MSAJ.docx differ diff --git a/Pleadings/MO_Motion-to-File-Out-of-Time.docx b/Pleadings/MO_Motion-to-File-Out-of-Time.docx new file mode 100755 index 0000000..a0c8011 Binary files /dev/null and b/Pleadings/MO_Motion-to-File-Out-of-Time.docx differ diff --git a/Pleadings/MO_Motion-to-Quash-Garnishment-Exempt-Income.docx b/Pleadings/MO_Motion-to-Quash-Garnishment-Exempt-Income.docx new file mode 100755 index 0000000..1d47fd4 Binary files /dev/null and b/Pleadings/MO_Motion-to-Quash-Garnishment-Exempt-Income.docx differ diff --git a/Pleadings/MO_Motion-to-Quash-Garnishment.docx b/Pleadings/MO_Motion-to-Quash-Garnishment.docx new file mode 100755 index 0000000..b48384e Binary files /dev/null and b/Pleadings/MO_Motion-to-Quash-Garnishment.docx differ diff --git a/Pleadings/MO_Motion-to-Transfer-Venue.docx b/Pleadings/MO_Motion-to-Transfer-Venue.docx new file mode 100755 index 0000000..26a3e28 Binary files /dev/null and b/Pleadings/MO_Motion-to-Transfer-Venue.docx differ diff --git a/Pleadings/MO_Motion-to-Withdraw_Services-Terminated.docx b/Pleadings/MO_Motion-to-Withdraw_Services-Terminated.docx new file mode 100755 index 0000000..89bba36 Binary files /dev/null and b/Pleadings/MO_Motion-to-Withdraw_Services-Terminated.docx differ diff --git a/Pleadings/MO_Motion-to-Withdraw_Unable-to-Contact.docx b/Pleadings/MO_Motion-to-Withdraw_Unable-to-Contact.docx new file mode 100755 index 0000000..a019012 Binary files /dev/null and b/Pleadings/MO_Motion-to-Withdraw_Unable-to-Contact.docx differ diff --git a/Pleadings/MO_Mutual-DWP.docx b/Pleadings/MO_Mutual-DWP.docx new file mode 100755 index 0000000..d39f0be Binary files /dev/null and b/Pleadings/MO_Mutual-DWP.docx differ diff --git a/Pleadings/MO_NoH-to-Plaintiff.docx b/Pleadings/MO_NoH-to-Plaintiff.docx new file mode 100755 index 0000000..a94b254 Binary files /dev/null and b/Pleadings/MO_NoH-to-Plaintiff.docx differ diff --git a/Pleadings/MO_Proposed-Consent-Judgment.docx b/Pleadings/MO_Proposed-Consent-Judgment.docx new file mode 100755 index 0000000..18f2a74 Binary files /dev/null and b/Pleadings/MO_Proposed-Consent-Judgment.docx differ diff --git a/Pleadings/MO_Proposed-Consent-Judgment_Blitt.docx b/Pleadings/MO_Proposed-Consent-Judgment_Blitt.docx new file mode 100755 index 0000000..4dd18fb Binary files /dev/null and b/Pleadings/MO_Proposed-Consent-Judgment_Blitt.docx differ diff --git a/Pleadings/MO_Proposed-Consent-Judgment_Pappas.docx b/Pleadings/MO_Proposed-Consent-Judgment_Pappas.docx new file mode 100755 index 0000000..6e72a40 Binary files /dev/null and b/Pleadings/MO_Proposed-Consent-Judgment_Pappas.docx differ diff --git a/Pleadings/MO_Rule-17-Structured-Settlement-Memo.docx b/Pleadings/MO_Rule-17-Structured-Settlement-Memo.docx new file mode 100755 index 0000000..4be4303 Binary files /dev/null and b/Pleadings/MO_Rule-17-Structured-Settlement-Memo.docx differ diff --git a/Pleadings/MO_SoC.docx b/Pleadings/MO_SoC.docx new file mode 100755 index 0000000..5a0c0a5 Binary files /dev/null and b/Pleadings/MO_SoC.docx differ diff --git a/Pleadings/MO_Traffic_Amended Plea-Agreement.docx b/Pleadings/MO_Traffic_Amended Plea-Agreement.docx new file mode 100755 index 0000000..d3b1b44 Binary files /dev/null and b/Pleadings/MO_Traffic_Amended Plea-Agreement.docx differ diff --git a/Pleadings/MO_Traffic_Request-for-Plea.docx b/Pleadings/MO_Traffic_Request-for-Plea.docx new file mode 100755 index 0000000..0d072cc Binary files /dev/null and b/Pleadings/MO_Traffic_Request-for-Plea.docx differ diff --git a/amortization.xlsx b/amortization.xlsx new file mode 100644 index 0000000..e6e313b Binary files /dev/null and b/amortization.xlsx differ diff --git a/authorization-disclosure-no-payment.docx b/authorization-disclosure-no-payment.docx new file mode 100755 index 0000000..7f5a22b Binary files /dev/null and b/authorization-disclosure-no-payment.docx differ diff --git a/authorization-disclosure.docx b/authorization-disclosure.docx new file mode 100755 index 0000000..19aaa53 Binary files /dev/null and b/authorization-disclosure.docx differ diff --git a/cert-mailing.docx b/cert-mailing.docx new file mode 100644 index 0000000..8932b1f Binary files /dev/null and b/cert-mailing.docx differ diff --git a/closeout.docx b/closeout.docx new file mode 100755 index 0000000..8fa5d06 Binary files /dev/null and b/closeout.docx differ diff --git a/constants.js b/constants.js new file mode 100644 index 0000000..ff5f2d5 --- /dev/null +++ b/constants.js @@ -0,0 +1,105 @@ + +const fieldToCellMap = { +// client info +clientFirstName: 'A3', clientMiddleName: 'B3', clientLastName: 'C3', SSN: 'D3', +homeAddress: 'A5', homeCity: 'B5', homeState: 'C5', homeZip: 'D5', +homeCounty: 'A7', homePhone: 'B7', cellPhone: 'C7', email: 'D7', +dob: 'A9', alias: 'B9', clientNamePrefix: 'C9', clientNameSuffix: 'D9', +SSNLastFour : 'A11', dmcName: 'B11', +client2FirstName: 'A14', client2MiddleName: 'B14', client2LastName: 'C14', SSN2: 'D14', +client2homeAddress: 'A16', client2homeCity: 'B16', client2homeState: 'C16', client2homeZip: 'D16', +client2homeCounty: 'A18', client2homePhone: 'B18', client2cellPhone: 'C18', client2email: 'D18', +client2dob: 'A20', client2alias: 'B20', client2NamePrefix: 'C20', client2NameSuffix: 'D20', +SSN2LastFour: 'A22', +// case info +caseDesignation: 'A27', caseCounty: 'B27', caseState: 'C27', caseDivisionDesignation: 'D27', +caseNumber: 'A29', casePlaintiff: 'B29', caseDefendant: 'C29', caseOpposingCounsel: 'D29', +caseSuitAmount: 'A31', caseSuitTheory: 'B31', caseOriginalCreditor: 'C31', caseAccountNumber: 'D31', +caseAnswerDate: 'A33', caseDivisionNumber: 'B33', caseDivisionJudge: 'C33', discoCosDate: 'D33', +caseFilingDate: 'A35', caseFilingAttorney: 'B35', caseAccLastFour: 'C35', caseOCFileNumber: 'D35', +caseAnswerFiledDate: 'A37', caseDisposition: 'B37', caseDispositionDate: 'C37', +// settlement info +settlementAmount: 'A46', settlementInstallmentAmount: 'B46', settlementFirstPaymentDate: 'C46', settlementInstallmentNo: 'D46', +// fee info +fee: 'A54', installmentAmount: 'B54', installmentDate: 'C54', +nameOnCard: 'A56', cardNumber: 'B56', securityCode: 'C56', expiration: 'D56', +billingAddress: 'A58', billingZip: 'B58', +// debt collector info +debtCollector1Name: 'A68', debtCollector1Creditor: 'B68', debtCollector1Account: 'C68', debtCollector1Amount: 'D68', debtCollector1AddressLine1: 'A70', debtCollector1AddressLine2: 'C70', +debtCollector2Name: 'A74', debtCollector2Creditor: 'B74', debtCollector2Account: 'C74', debtCollector2Amount: 'D74', debtCollector2AddressLine1: 'A76', debtCollector2AddressLine2: 'C76', +debtCollector3Name: 'A80', debtCollector3Creditor: 'B80', debtCollector3Account: 'C80', debtCollector3Amount: 'D80', debtCollector3AddressLine1: 'A82', debtCollector3AddressLine2: 'C82', +debtCollector4Name: 'A86', debtCollector4Creditor: 'B86', debtCollector4Account: 'C86', debtCollector4Amount: 'D86', debtCollector4AddressLine1: 'A88', debtCollector4AddressLine2: 'C88', +debtCollector5Name: 'A92', debtCollector5Creditor: 'B92', debtCollector5Account: 'C92', debtCollector5Amount: 'D92', debtCollector5AddressLine1: 'A94', debtCollector5AddressLine2: 'C94', +debtCollector6Name: 'A98', debtCollector6Creditor: 'B98', debtCollector6Account: 'C98', debtCollector6Amount: 'D98', debtCollector6AddressLine1: 'A100', debtCollector6AddressLine2: 'C100', +debtCollector7Name: 'A104', debtCollector7Creditor: 'B104', debtCollector7Account: 'C104', debtCollector7Amount: 'D104', debtCollector7AddressLine1: 'A106', debtCollector7AddressLine2: 'C106', +debtCollector8Name: 'A110', debtCollector8Creditor: 'B110', debtCollector8Account: 'C110', debtCollector8Amount: 'D110', debtCollector8AddressLine1: 'A112', debtCollector8AddressLine2: 'C112', +debtCollector9Name: 'A116', debtCollector9Creditor: 'B116', debtCollector9Account: 'C116', debtCollector9Amount: 'D116', debtCollector9AddressLine1: 'A118', debtCollector9AddressLine2: 'C118', +debtCollector10Name: 'A122', debtCollector10Creditor: 'B122', debtCollector10Account: 'C122', debtCollector10Amount: 'D122', debtCollector10AddressLine1: 'A124', debtCollector10AddressLine2: 'C124', +debtCollector11Name: 'A128', debtCollector11Creditor: 'B128', debtCollector11Account: 'C128', debtCollector11Amount: 'D128', debtCollector11AddressLine1: 'A130', debtCollector11AddressLine2: 'C130', +debtCollector12Name: 'A134', debtCollector12Creditor: 'B134', debtCollector12Account: 'C134', debtCollector12Amount: 'D134', debtCollector12AddressLine1: 'A136', debtCollector12AddressLine2: 'C136', +debtCollector13Name: 'A140', debtCollector13Creditor: 'B140', debtCollector13Account: 'C140', debtCollector13Amount: 'D140', debtCollector13AddressLine1: 'A142', debtCollector13AddressLine2: 'C142', +debtCollector14Name: 'A146', debtCollector14Creditor: 'B146', debtCollector14Account: 'C146', debtCollector14Amount: 'D146', debtCollector14AddressLine1: 'A148', debtCollector14AddressLine2: 'C148', +debtCollector15Name: 'A152', debtCollector15Creditor: 'B152', debtCollector15Account: 'C152', debtCollector15Amount: 'D152', debtCollector15AddressLine1: 'A154', debtCollector15AddressLine2: 'C154', +debtCollector16Name: 'A158', debtCollector16Creditor: 'B158', debtCollector16Account: 'C158', debtCollector16Amount: 'D158', debtCollector16AddressLine1: 'A160', debtCollector16AddressLine2: 'C160', +debtCollector17Name: 'A164', debtCollector17Creditor: 'B164', debtCollector17Account: 'C164', debtCollector17Amount: 'D164', debtCollector17AddressLine1: 'A166', debtCollector17AddressLine2: 'C166', +debtCollector18Name: 'A170', debtCollector18Creditor: 'B170', debtCollector18Account: 'C170', debtCollector18Amount: 'D170', debtCollector18AddressLine1: 'A172', debtCollector18AddressLine2: 'C172', +debtCollector19Name: 'A176', debtCollector19Creditor: 'B176', debtCollector19Account: 'C176', debtCollector19Amount: 'D176', debtCollector19AddressLine1: 'A178', debtCollector19AddressLine2: 'C178', +debtCollector20Name: 'A182', debtCollector20Creditor: 'B182', debtCollector20Account: 'C182', debtCollector20Amount: 'D182', debtCollector20AddressLine1: 'A184', debtCollector20AddressLine2: 'C184', +debtCollector21Name: 'A188', debtCollector21Creditor: 'B188', debtCollector21Account: 'C188', debtCollector21Amount: 'D188', debtCollector21AddressLine1: 'A190', debtCollector21AddressLine2: 'C190', +debtCollector22Name: 'A194', debtCollector22Creditor: 'B194', debtCollector22Account: 'C194', debtCollector22Amount: 'D194', debtCollector22AddressLine1: 'A196', debtCollector22AddressLine2: 'C196', +debtCollector23Name: 'A200', debtCollector23Creditor: 'B200', debtCollector23Account: 'C200', debtCollector23Amount: 'D200', debtCollector23AddressLine1: 'A202', debtCollector23AddressLine2: 'C202', +debtCollector24Name: 'A206', debtCollector24Creditor: 'B206', debtCollector24Account: 'C206', debtCollector24Amount: 'D206', debtCollector24AddressLine1: 'A208', debtCollector24AddressLine2: 'C208', +debtCollector25Name: 'A212', debtCollector25Creditor: 'B212', debtCollector25Account: 'C212', debtCollector25Amount: 'D212', debtCollector25AddressLine1: 'A214', debtCollector25AddressLine2: 'C214', +debtCollector26Name: 'A218', debtCollector26Creditor: 'B218', debtCollector26Account: 'C218', debtCollector26Amount: 'D218', debtCollector26AddressLine1: 'A220', debtCollector26AddressLine2: 'C220', +debtCollector27Name: 'A224', debtCollector27Creditor: 'B224', debtCollector27Account: 'C224', debtCollector27Amount: 'D224', debtCollector27AddressLine1: 'A226', debtCollector27AddressLine2: 'C226', +debtCollector28Name: 'A230', debtCollector28Creditor: 'B230', debtCollector28Account: 'C230', debtCollector28Amount: 'D230', debtCollector28AddressLine1: 'A232', debtCollector28AddressLine2: 'C232', +debtCollector29Name: 'A236', debtCollector29Creditor: 'B236', debtCollector29Account: 'C236', debtCollector29Amount: 'D236', debtCollector29AddressLine1: 'A238', debtCollector29AddressLine2: 'C238', +debtCollector30Name: 'A242', debtCollector30Creditor: 'B242', debtCollector30Account: 'C242', debtCollector30Amount: 'D242', debtCollector30AddressLine1: 'A244', debtCollector30AddressLine2: 'C244', +notes: 'A63', +}; + + const fieldToCellMapOld = { + clientFirstName: 'A3', clientMiddleName: 'B3', clientLastName: 'C3', SSN: 'D3', + client2FirstName: 'A5', client2MiddleName: 'B5', client2LastName: 'C5', SSN2: 'D5', + homeAddress: 'A7', homeCity: 'B7', homeState: 'C7', homeZip: 'D7', + homeCounty: 'A9', homePhone: 'B9', cellPhone: 'C9', email: 'D9', + dob: 'A11', alias: 'B11', clientNameSuffix: 'C11', + caseDesignation: 'A15', caseCounty: 'B15', caseState: 'C15', caseDivisionDesignation: 'D15', + caseNumber: 'A17', casePlaintiff: 'B17', caseDefendant: 'C17', caseOpposingCounsel: 'D17', + caseSuitTheory: 'B19', caseSuitAmount: 'A19', caseOriginalCreditor: 'C19', caseAccountNumber: 'D19', + caseAnswerDate: 'A21', caseDivisionNumber: 'B21', caseDivisionJudge: 'C21', discoCosDate: 'D21', + fee: 'A25', installmentAmount: 'B25', installmentDate: 'C25', + nameOnCard: 'A27', cardNumber: 'B27', securityCode: 'C27', expiration: 'D27', + billingAddress: 'A29', billingZip: 'B29', + settlementAmount: 'A32', settlementInstallmentAmount: 'B32', settlementFirstPaymentDate: 'C32', settlementInstallmentNo: 'D32', + debtCollector1Name: 'A39', debtCollector1Creditor: 'B39', debtCollector1Account: 'C39', debtCollector1Amount: 'D39', + debtCollector1AddressLine1: 'A41', debtCollector1AddressLine2: 'C41', debtCollector2Name: 'A45', + debtCollector2Creditor: 'B45', debtCollector2Account: 'C45', debtCollector2Amount: 'D45', + debtCollector2AddressLine1: 'A47', debtCollector2AddressLine2: 'C47', + debtCollector3Name: 'A51', debtCollector3Creditor: 'B51', debtCollector3Account: 'C51', debtCollector3Amount: 'D51', + debtCollector3AddressLine1: 'A53', debtCollector3AddressLine2: 'C53', + debtCollector4Name: 'A57', debtCollector4Creditor: 'B57', debtCollector4Account: 'C57', debtCollector4Amount: 'D57', + debtCollector4AddressLine1: 'A59', debtCollector4AddressLine2: 'C59', + debtCollector5Name: 'A63', debtCollector5Creditor: 'B63', debtCollector5Account: 'C63', debtCollector5Amount: 'D63', + debtCollector5AddressLine1: 'A65', debtCollector5AddressLine2: 'C65', + debtCollector6Name: 'A69', debtCollector6Creditor: 'B69', debtCollector6Account: 'C69', debtCollector6Amount: 'D69', + debtCollector6AddressLine1: 'A71', debtCollector6AddressLine2: 'C71', + debtCollector7Name: 'A75', debtCollector7Creditor: 'B75', debtCollector7Account: 'C75', debtCollector7Amount: 'D75', + debtCollector7AddressLine1: 'A77', debtCollector7AddressLine2: 'C77', + debtCollector8Name: 'A81', debtCollector8Creditor: 'B81', debtCollector8Account: 'C81', debtCollector8Amount: 'D81', + debtCollector8AddressLine1: 'A83', debtCollector8AddressLine2: 'C83', + debtCollector9Name: 'A87', debtCollector9Creditor: 'B87', debtCollector9Account: 'C87', debtCollector9Amount: 'D87', + debtCollector9AddressLine1: 'A89', debtCollector9AddressLine2: 'C89', + debtCollector10Name: 'A91', debtCollector10Creditor: 'B91', debtCollector10Account: 'C91', debtCollector10Amount: 'D91', debtCollector10AddressLine1: 'A93', debtCollector10AddressLine2: 'C93', + debtCollector11Name: 'A95', debtCollector11Creditor: 'B95', debtCollector11Account: 'C95', debtCollector11Amount: 'D95', debtCollector11AddressLine1: 'A97', debtCollector11AddressLine2: 'C97', + debtCollector12Name: 'A101', debtCollector12Creditor: 'B101', debtCollector12Account: 'C101', debtCollector12Amount: 'D101', debtCollector12AddressLine1: 'A103', debtCollector12AddressLine2: 'C103', + debtCollector13Name: 'A105', debtCollector13Creditor: 'B105', debtCollector13Account: 'C105', debtCollector13Amount: 'D105', debtCollector13AddressLine1: 'A107', debtCollector13AddressLine2: 'C107', + debtCollector14Name: 'A109', debtCollector14Creditor: 'B109', debtCollector14Account: 'C109', debtCollector14Amount: 'D109', debtCollector14AddressLine1: 'A111', debtCollector14AddressLine2: 'C111', debtCollector15Name: 'A113', debtCollector15Creditor: 'B113', debtCollector15Account: 'C113', debtCollector15Amount: 'D113', debtCollector15AddressLine1: 'A115', debtCollector15AddressLine2: 'C115', debtCollector16Name: 'A117', debtCollector16Creditor: 'B117', debtCollector16Account: 'C117', debtCollector16Amount: 'D117', debtCollector16AddressLine1: 'A119', debtCollector16AddressLine2: 'C119', debtCollector17Name: 'A121', debtCollector17Creditor: 'B121', debtCollector17Account: 'C121', debtCollector17Amount: 'D121', debtCollector17AddressLine1: 'A123', debtCollector17AddressLine2: 'C123', debtCollector18Name: 'A125', debtCollector18Creditor: 'B125', debtCollector18Account: 'C125', debtCollector18Amount: 'D125', debtCollector18AddressLine1: 'A127', debtCollector18AddressLine2: 'C127', debtCollector19Name: 'A129', debtCollector19Creditor: 'B129', debtCollector19Account: 'C129', debtCollector19Amount: 'D129', debtCollector19AddressLine1: 'A131', debtCollector19AddressLine2: 'C131', debtCollector20Name: 'A133', debtCollector20Creditor: 'B133', debtCollector20Account: 'C133', debtCollector20Amount: 'D133', debtCollector20AddressLine1: 'A135', debtCollector20AddressLine2: 'C135', debtCollector21Name: 'A137', debtCollector21Creditor: 'B137', debtCollector21Account: 'C137', debtCollector21Amount: 'D137', debtCollector21AddressLine1: 'A139', debtCollector21AddressLine2: 'C139', debtCollector22Name: 'A141', debtCollector22Creditor: 'B141', debtCollector22Account: 'C141', debtCollector22Amount: 'D141', debtCollector22AddressLine1: 'A143', debtCollector22AddressLine2: 'C143', debtCollector23Name: 'A145', debtCollector23Creditor: 'B145', debtCollector23Account: 'C145', debtCollector23Amount: 'D145', debtCollector23AddressLine1: 'A147', debtCollector23AddressLine2: 'C147', debtCollector24Name: 'A149', debtCollector24Creditor: 'B149', debtCollector24Account: 'C149', debtCollector24Amount: 'D149', debtCollector24AddressLine1: 'A151', debtCollector24AddressLine2: 'C151', debtCollector25Name: 'A153', debtCollector25Creditor: 'B153', debtCollector25Account: 'C153', debtCollector25Amount: 'D153', debtCollector25AddressLine1: 'A155', debtCollector25AddressLine2: 'C155', debtCollector26Name: 'A157', debtCollector26Creditor: 'B157', debtCollector26Account: 'C157', debtCollector26Amount: 'D157', debtCollector26AddressLine1: 'A159', debtCollector26AddressLine2: 'C159', debtCollector27Name: 'A161', debtCollector27Creditor: 'B161', debtCollector27Account: 'C161', debtCollector27Amount: 'D161', debtCollector27AddressLine1: 'A163', debtCollector27AddressLine2: 'C163', debtCollector28Name: 'A165', debtCollector28Creditor: 'B165', debtCollector28Account: 'C165', debtCollector28Amount: 'D165', debtCollector28AddressLine1: 'A167', debtCollector28AddressLine2: 'C167', debtCollector29Name: 'A169', debtCollector29Creditor: 'B169', debtCollector29Account: 'C169', debtCollector29Amount: 'D169', debtCollector29AddressLine1: 'A171', debtCollector29AddressLine2: 'C171', + notes: 'B31' +}; + + + +module.exports = { + fieldToCellMap, fieldToCellMapOld, +}; \ No newline at end of file diff --git a/defenses.docx b/defenses.docx new file mode 100755 index 0000000..18d4b59 Binary files /dev/null and b/defenses.docx differ diff --git a/dispute-envelopes.docx b/dispute-envelopes.docx new file mode 100644 index 0000000..17e4ec9 Binary files /dev/null and b/dispute-envelopes.docx differ diff --git a/down.html b/down.html new file mode 100644 index 0000000..1af9402 --- /dev/null +++ b/down.html @@ -0,0 +1,11 @@ + + + + Word Document Generator Offline + + +

Word Document Generator

+

The service is currently offline.

+

Please try again shortly.

+ + diff --git a/entry.docx b/entry.docx new file mode 100755 index 0000000..3691bfc Binary files /dev/null and b/entry.docx differ diff --git a/isc-body.docx b/isc-body.docx new file mode 100644 index 0000000..9a94195 Binary files /dev/null and b/isc-body.docx differ diff --git a/letter.docx b/letter.docx new file mode 100644 index 0000000..4df592a Binary files /dev/null and b/letter.docx differ diff --git a/notes.docx b/notes.docx new file mode 100644 index 0000000..529bbf8 Binary files /dev/null and b/notes.docx differ diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0d04189 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3387 @@ +{ + "name": "word-doc-generator", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "word-doc-generator", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "axios": "^1.7.2", + "body-parser": "^1.20.2", + "dayjs": "^1.11.9", + "debug": "^4.3.6", + "docxtemplater": "^3.37.9", + "exceljs": "^4.3.0", + "express": "^4.18.2", + "ics": "^3.2.0", + "mammoth": "^1.6.0", + "net": "^1.0.2", + "number-to-words": "^1.2.4", + "open": "^10.1.0", + "pizzip": "^3.1.4", + "vcf": "^2.1.2", + "written-number": "^0.11.1" + } + }, + "node_modules/@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "node_modules/@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "dependencies": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/@types/node": { + "version": "14.18.53", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.53.tgz", + "integrity": "sha512-soGmOpVBUq+gaBMwom1M+krC/NNbWlosh4AtGA03SyWNDiqSKtwp7OulO1M6+mg8YkHMvJ/y0AkCeO8d1hNb7A==" + }, + "node_modules/@xmldom/xmldom": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.8.tgz", + "integrity": "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "dependencies": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "dependencies": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/archiver/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "dependencies": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "node_modules/body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, + "node_modules/buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==", + "engines": { + "node": ">=0.2.0" + } + }, + "node_modules/bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "dependencies": { + "run-applescript": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "dependencies": { + "traverse": ">=0.3.0 <0.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "dependencies": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/compress-commons/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "dependencies": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/crc32-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/dayjs": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + }, + "node_modules/debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "license": "MIT", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "dependencies": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" + }, + "node_modules/docxtemplater": { + "version": "3.37.9", + "resolved": "https://registry.npmjs.org/docxtemplater/-/docxtemplater-3.37.9.tgz", + "integrity": "sha512-0FYopqsEe8dpN2mILn8qINzXXXZ25qnbXYVJtgjxar3VI0IfUd7nPfZGRffWvAKgLQupPs2dGJDzjRI60TmD8A==", + "dependencies": { + "@xmldom/xmldom": "^0.8.7" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "dependencies": { + "underscore": "^1.13.1" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/exceljs": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz", + "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", + "dependencies": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.5.0", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/exceljs/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "license": "MIT", + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "dependencies": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/foldline": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/foldline/-/foldline-1.1.0.tgz", + "integrity": "sha512-9SheyADS50hjvFYjFJ3OB/GlDz2mD1T2CHd7auIk4Uto5YYWPBcw8iYo3F+gENJ+/SOeH9tT0loHZSqlUlumTA==" + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/fstream/node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ics": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ics/-/ics-3.2.0.tgz", + "integrity": "sha512-7YWa5LQBW7ao+9Yz+L0bdUWYXCUE/UBPMY/9w9UFU6Ho2dBz85caJKiB+Tm+qv8HN6pCpH8jaWemXJijs8+PiA==", + "dependencies": { + "nanoid": "^3.1.23", + "yup": "^1.2.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "node_modules/lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "dependencies": { + "readable-stream": "^2.0.5" + }, + "engines": { + "node": ">= 0.6.3" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "node_modules/lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" + }, + "node_modules/lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "node_modules/lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "node_modules/lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" + }, + "node_modules/lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "node_modules/lop": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", + "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", + "dependencies": { + "duck": "^0.1.12", + "option": "~0.2.1", + "underscore": "^1.13.1" + } + }, + "node_modules/mammoth": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.6.0.tgz", + "integrity": "sha512-jOwbj6BwJzxCf6jr2l1zmSemniIkLnchvELXnDJCANlJawhzyIKObIq48B8kWEPLgUUh57k7FtEO3DHFQMnjMg==", + "dependencies": { + "@xmldom/xmldom": "^0.8.6", + "argparse": "~1.0.3", + "base64-js": "^1.5.1", + "bluebird": "~3.4.0", + "dingbat-to-unicode": "^1.0.1", + "jszip": "^3.7.1", + "lop": "^0.4.1", + "path-is-absolute": "^1.0.0", + "underscore": "^1.13.1", + "xmlbuilder": "^10.0.0" + }, + "bin": { + "mammoth": "bin/mammoth" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-words": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/number-to-words/-/number-to-words-1.2.4.tgz", + "integrity": "sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==" + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "dependencies": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/option": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "node_modules/pizzip": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/pizzip/-/pizzip-3.1.4.tgz", + "integrity": "sha512-08yol1Of5Og1E0a1R56c+Z1jVkvfTEBUouwG9WYwCqpj8BjdcpEpLgZsrdLFNQYRgtxK0OOe0JpmBWJdrPr6Dg==", + "dependencies": { + "pako": "^2.1.0" + } + }, + "node_modules/pizzip/node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "dependencies": { + "minimatch": "^5.1.0" + } + }, + "node_modules/readdir-glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/readdir-glob/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "node_modules/traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", + "engines": { + "node": "*" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", + "dependencies": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vcf": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vcf/-/vcf-2.1.2.tgz", + "integrity": "sha512-oLYtZ+GJPjpKS950fw70+HavdP7ZO2Q+xMCMeCyiUKuXkJJJG1/wUjCKTagPryS1gApYjZOWW/khmdLsch8jxg==", + "dependencies": { + "camelcase": "^5.0.0", + "foldline": "^1.1.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/written-number": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/written-number/-/written-number-0.11.1.tgz", + "integrity": "sha512-LhQ68uUnzHH0bwm/QiGA9JwqgadSDOwqB2AIs/LBsrOY6ScqVXKRN2slTCeKAhstDBJ/Of/Yxcjn0pnQmVlmtg==" + }, + "node_modules/xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/yup": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.2.0.tgz", + "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", + "dependencies": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "node_modules/zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "dependencies": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/zip-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + } + }, + "dependencies": { + "@fast-csv/format": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@fast-csv/format/-/format-4.3.5.tgz", + "integrity": "sha512-8iRn6QF3I8Ak78lNAa+Gdl5MJJBM5vRHivFtMRUWINdevNo00K7OXxS2PshawLKTejVwieIlPmK5YlLu6w4u8A==", + "requires": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.isboolean": "^3.0.3", + "lodash.isequal": "^4.5.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0" + } + }, + "@fast-csv/parse": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@fast-csv/parse/-/parse-4.3.6.tgz", + "integrity": "sha512-uRsLYksqpbDmWaSmzvJcuApSEe38+6NQZBUsuAyMZKqHxH0g1wcJgsKUvN3WC8tewaqFjBMMGrkHmC+T7k8LvA==", + "requires": { + "@types/node": "^14.0.1", + "lodash.escaperegexp": "^4.1.2", + "lodash.groupby": "^4.6.0", + "lodash.isfunction": "^3.0.9", + "lodash.isnil": "^4.0.0", + "lodash.isundefined": "^3.0.1", + "lodash.uniq": "^4.5.0" + } + }, + "@types/node": { + "version": "14.18.53", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.53.tgz", + "integrity": "sha512-soGmOpVBUq+gaBMwom1M+krC/NNbWlosh4AtGA03SyWNDiqSKtwp7OulO1M6+mg8YkHMvJ/y0AkCeO8d1hNb7A==" + }, + "@xmldom/xmldom": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.8.tgz", + "integrity": "sha512-0LNz4EY8B/8xXY86wMrQ4tz6zEHZv9ehFMJPm8u2gq5lQ71cfRKdaKyxfJAx5aUoyzx0qzgURblTisPGgz3d+Q==" + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "archiver": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/archiver/-/archiver-5.3.1.tgz", + "integrity": "sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==", + "requires": { + "archiver-utils": "^2.1.0", + "async": "^3.2.3", + "buffer-crc32": "^0.2.1", + "readable-stream": "^3.6.0", + "readdir-glob": "^1.0.0", + "tar-stream": "^2.2.0", + "zip-stream": "^4.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "archiver-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", + "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", + "requires": { + "glob": "^7.1.4", + "graceful-fs": "^4.2.0", + "lazystream": "^1.0.0", + "lodash.defaults": "^4.2.0", + "lodash.difference": "^4.5.0", + "lodash.flatten": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.union": "^4.6.0", + "normalize-path": "^3.0.0", + "readable-stream": "^2.0.0" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" + }, + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "requires": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha512-D4H1y5KYwpJgK8wk1Cue5LLPgmwHKYSChkbspQg5JtVuR5ulGckxfR62H3AE9UDkdMC8yyXlqYihuz3Aqg2XZg==", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "bluebird": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", + "integrity": "sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==" + }, + "body-parser": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz", + "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.5", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.2", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, + "buffer-indexof-polyfill": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", + "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==" + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha512-9q/rDEGSb/Qsvv2qvzIzdluL5k7AaJOTrw23z9reQthrbF7is4CtlT0DXyO1oei2DCp4uojjzQ7igaSHp1kAEQ==" + }, + "bundle-name": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bundle-name/-/bundle-name-4.1.0.tgz", + "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", + "requires": { + "run-applescript": "^7.0.0" + } + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "compress-commons": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-4.1.1.tgz", + "integrity": "sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ==", + "requires": { + "buffer-crc32": "^0.2.13", + "crc32-stream": "^4.0.2", + "normalize-path": "^3.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==" + }, + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "crc32-stream": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.2.tgz", + "integrity": "sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w==", + "requires": { + "crc-32": "^1.2.0", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "dayjs": { + "version": "1.11.9", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.9.tgz", + "integrity": "sha512-QvzAURSbQ0pKdIye2txOzNaHmxtUBXerpY0FJsFXUMKbIZeFm5ht1LS/jFsrncjnmtv8HsG0W2g6c0zUjZWmpA==" + }, + "debug": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", + "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "requires": { + "ms": "2.1.2" + } + }, + "default-browser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/default-browser/-/default-browser-5.2.1.tgz", + "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", + "requires": { + "bundle-name": "^4.1.0", + "default-browser-id": "^5.0.0" + } + }, + "default-browser-id": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz", + "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==" + }, + "define-lazy-prop": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-3.0.0.tgz", + "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "dingbat-to-unicode": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dingbat-to-unicode/-/dingbat-to-unicode-1.0.1.tgz", + "integrity": "sha512-98l0sW87ZT58pU4i61wa2OHwxbiYSbuxsCBozaVnYX2iCnr3bLM3fIes1/ej7h1YdOKuKt/MLs706TVnALA65w==" + }, + "docxtemplater": { + "version": "3.37.9", + "resolved": "https://registry.npmjs.org/docxtemplater/-/docxtemplater-3.37.9.tgz", + "integrity": "sha512-0FYopqsEe8dpN2mILn8qINzXXXZ25qnbXYVJtgjxar3VI0IfUd7nPfZGRffWvAKgLQupPs2dGJDzjRI60TmD8A==", + "requires": { + "@xmldom/xmldom": "^0.8.7" + } + }, + "duck": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/duck/-/duck-0.1.12.tgz", + "integrity": "sha512-wkctla1O6VfP89gQ+J/yDesM0S7B7XLXjKGzXxMDVFg7uEn706niAtyYovKbyq1oT9YwDcly721/iUWoc8MVRg==", + "requires": { + "underscore": "^1.13.1" + } + }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "requires": { + "readable-stream": "^2.0.2" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "exceljs": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/exceljs/-/exceljs-4.3.0.tgz", + "integrity": "sha512-hTAeo5b5TPvf8Z02I2sKIT4kSfCnOO2bCxYX8ABqODCdAjppI3gI9VYiGCQQYVcBaBSKlFDMKlAQRqC+kV9O8w==", + "requires": { + "archiver": "^5.0.0", + "dayjs": "^1.8.34", + "fast-csv": "^4.3.1", + "jszip": "^3.5.0", + "readable-stream": "^3.6.0", + "saxes": "^5.0.1", + "tmp": "^0.2.0", + "unzipper": "^0.10.11", + "uuid": "^8.3.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "express": { + "version": "4.19.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.19.2.tgz", + "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.2", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.6.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "fast-csv": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/fast-csv/-/fast-csv-4.3.6.tgz", + "integrity": "sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==", + "requires": { + "@fast-csv/format": "4.3.5", + "@fast-csv/parse": "4.3.6" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "foldline": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/foldline/-/foldline-1.1.0.tgz", + "integrity": "sha512-9SheyADS50hjvFYjFJ3OB/GlDz2mD1T2CHd7auIk4Uto5YYWPBcw8iYo3F+gENJ+/SOeH9tT0loHZSqlUlumTA==" + }, + "follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ics": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ics/-/ics-3.2.0.tgz", + "integrity": "sha512-7YWa5LQBW7ao+9Yz+L0bdUWYXCUE/UBPMY/9w9UFU6Ho2dBz85caJKiB+Tm+qv8HN6pCpH8jaWemXJijs8+PiA==", + "requires": { + "nanoid": "^3.1.23", + "yup": "^1.2.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==" + }, + "is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "requires": { + "is-docker": "^3.0.0" + } + }, + "is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "requires": { + "is-inside-container": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "jszip": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", + "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", + "requires": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "requires": { + "readable-stream": "^2.0.5" + } + }, + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "requires": { + "immediate": "~3.0.5" + } + }, + "listenercount": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", + "integrity": "sha512-3mk/Zag0+IJxeDrxSgaDPy4zZ3w05PRZeJNnlWhzFz5OkX49J4krc+A8X2d2M69vGMBEX0uyl8M+W+8gH+kBqQ==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==" + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==" + }, + "lodash.escaperegexp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz", + "integrity": "sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw==" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==" + }, + "lodash.groupby": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.groupby/-/lodash.groupby-4.6.0.tgz", + "integrity": "sha512-5dcWxm23+VAoz+awKmBaiBvzox8+RqMgFhi7UvX9DHZr2HdxHXM/Wrf8cfKpsW37RNrvtPn6hSwNqurSILbmJw==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "lodash.isnil": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/lodash.isnil/-/lodash.isnil-4.0.0.tgz", + "integrity": "sha512-up2Mzq3545mwVnMhTDMdfoG1OurpA/s5t88JmQX809eH3C8491iu2sfKhTfhQtKY78oPNhiaHJUpT/dUDAAtng==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isundefined": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz", + "integrity": "sha512-MXB1is3s899/cD8jheYYE2V9qTHwKvt+npCwpD+1Sxm3Q3cECXCiYHjeHWXNwr6Q0SOBPrYUDxendrO6goVTEA==" + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==" + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" + }, + "lop": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/lop/-/lop-0.4.1.tgz", + "integrity": "sha512-9xyho9why2A2tzm5aIcMWKvzqKsnxrf9B5I+8O30olh6lQU8PH978LqZoI4++37RBgS1Em5i54v1TFs/3wnmXQ==", + "requires": { + "duck": "^0.1.12", + "option": "~0.2.1", + "underscore": "^1.13.1" + } + }, + "mammoth": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mammoth/-/mammoth-1.6.0.tgz", + "integrity": "sha512-jOwbj6BwJzxCf6jr2l1zmSemniIkLnchvELXnDJCANlJawhzyIKObIq48B8kWEPLgUUh57k7FtEO3DHFQMnjMg==", + "requires": { + "@xmldom/xmldom": "^0.8.6", + "argparse": "~1.0.3", + "base64-js": "^1.5.1", + "bluebird": "~3.4.0", + "dingbat-to-unicode": "^1.0.1", + "jszip": "^3.7.1", + "lop": "^0.4.1", + "path-is-absolute": "^1.0.0", + "underscore": "^1.13.1", + "xmlbuilder": "^10.0.0" + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "nanoid": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", + "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==" + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha512-kbhcj2SVVR4caaVnGLJKmlk2+f+oLkjqdKeQlmUtz6nGzOpbcobwVIeSURNgraV/v3tlmGIX82OcPCl0K6RbHQ==" + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "number-to-words": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/number-to-words/-/number-to-words-1.2.4.tgz", + "integrity": "sha512-/fYevVkXRcyBiZDg6yzZbm0RuaD6i0qRfn8yr+6D0KgBMOndFPxuW10qCHpzs50nN8qKuv78k8MuotZhcVX6Pw==" + }, + "object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "open": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/open/-/open-10.1.0.tgz", + "integrity": "sha512-mnkeQ1qP5Ue2wd+aivTD3NHd/lZ96Lu0jgf0pwktLPtx6cTZiH7tyeGRRHs0zX0rbrahXPnXlUnbeXyaBBuIaw==", + "requires": { + "default-browser": "^5.2.1", + "define-lazy-prop": "^3.0.0", + "is-inside-container": "^1.0.0", + "is-wsl": "^3.1.0" + } + }, + "option": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/option/-/option-0.2.4.tgz", + "integrity": "sha512-pkEqbDyl8ou5cpq+VsnQbe/WlEy5qS7xPzMS1U55OCG9KPvwFD46zDbxQIj3egJSFc3D+XhYOPUzz49zQAVy7A==" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + }, + "pizzip": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/pizzip/-/pizzip-3.1.4.tgz", + "integrity": "sha512-08yol1Of5Og1E0a1R56c+Z1jVkvfTEBUouwG9WYwCqpj8BjdcpEpLgZsrdLFNQYRgtxK0OOe0JpmBWJdrPr6Dg==", + "requires": { + "pako": "^2.1.0" + }, + "dependencies": { + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + } + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "property-expr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "readdir-glob": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.1.3.tgz", + "integrity": "sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==", + "requires": { + "minimatch": "^5.1.0" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "run-applescript": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/run-applescript/-/run-applescript-7.0.0.tgz", + "integrity": "sha512-9by4Ij99JUr/MCFBUkDKLWK3G9HVXmabKz9U5MlIAIuvuzkiOicRYs8XJLxX+xahD+mLiiCYDqF9dKAgtzKP1A==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "tiny-case": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", + "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==" + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" + }, + "unzipper": { + "version": "0.10.14", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.14.tgz", + "integrity": "sha512-ti4wZj+0bQTiX2KmKWuwj7lhV+2n//uXEotUmGuQqrbVZSEGFMbI68+c6JCQ8aAmUWYvtHEz2A8K6wXvueR/6g==", + "requires": { + "big-integer": "^1.6.17", + "binary": "~0.3.0", + "bluebird": "~3.4.1", + "buffer-indexof-polyfill": "~1.0.0", + "duplexer2": "~0.1.4", + "fstream": "^1.0.12", + "graceful-fs": "^4.2.2", + "listenercount": "~1.0.1", + "readable-stream": "~2.3.6", + "setimmediate": "~1.0.4" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" + }, + "vcf": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vcf/-/vcf-2.1.2.tgz", + "integrity": "sha512-oLYtZ+GJPjpKS950fw70+HavdP7ZO2Q+xMCMeCyiUKuXkJJJG1/wUjCKTagPryS1gApYjZOWW/khmdLsch8jxg==", + "requires": { + "camelcase": "^5.0.0", + "foldline": "^1.1.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "written-number": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/written-number/-/written-number-0.11.1.tgz", + "integrity": "sha512-LhQ68uUnzHH0bwm/QiGA9JwqgadSDOwqB2AIs/LBsrOY6ScqVXKRN2slTCeKAhstDBJ/Of/Yxcjn0pnQmVlmtg==" + }, + "xmlbuilder": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz", + "integrity": "sha512-OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "yup": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.2.0.tgz", + "integrity": "sha512-PPqYKSAXjpRCgLgLKVGPA33v5c/WgEx3wi6NFjIiegz90zSwyMpvTFp/uGcVnnbx6to28pgnzp/q8ih3QRjLMQ==", + "requires": { + "property-expr": "^2.0.5", + "tiny-case": "^1.0.3", + "toposort": "^2.0.2", + "type-fest": "^2.19.0" + } + }, + "zip-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d2da0ea --- /dev/null +++ b/package.json @@ -0,0 +1,29 @@ +{ + "name": "word-doc-generator", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "axios": "^1.7.2", + "body-parser": "^1.20.2", + "dayjs": "^1.11.9", + "debug": "^4.3.6", + "docxtemplater": "^3.37.9", + "exceljs": "^4.3.0", + "express": "^4.18.2", + "ics": "^3.2.0", + "mammoth": "^1.6.0", + "net": "^1.0.2", + "number-to-words": "^1.2.4", + "open": "^10.1.0", + "pizzip": "^3.1.4", + "vcf": "^2.1.2", + "written-number": "^0.11.1" + } +} diff --git a/public/casePlaintiffInfo.js b/public/casePlaintiffInfo.js new file mode 100644 index 0000000..e44b905 --- /dev/null +++ b/public/casePlaintiffInfo.js @@ -0,0 +1,374 @@ +export const casePlaintiffInfo = { + "AAA Checkmate/Brother Loan": { + status: "original creditor", + }, + "Absolute Resolutions Investments, LLC": { + status: "original creditor", + }, + "Accelerated Inventory Management, LLC": { + status: "original creditor", + }, + "AE Rentals of Lawrence": { + status: "original creditor", + }, + "American Express National Bank": { + status: "original creditor", + }, + "Americash Loans": { + status: "original creditor", + }, + "Arvest Bank": { + status: "original creditor", + }, + "Axiom Acquisition Ventures, LLC": { + status: "original creditor", + }, + "BCG Equities, LLC": { + status: "original creditor", + }, + "Bank of America, N.A.": { + status: "original creditor", + }, + "Bank of Blue Valley": { + status: "original creditor", + }, + "Bank of Odessa": { + status: "original creditor", + }, + "Barclays Bank Delaware": { + status: "original creditor", + }, + "Board of Trustees of NKC Hospital": { + status: "original creditor", + }, + "CARS Leasing": { + status: "original creditor", + }, + "CKS Prime Investments, LLC": { + status: "original creditor", + }, + "CU Alternative Lending Solutions, LLC": { + status: "original creditor", + }, + "Capital Federal Savings Bank": { + status: "original creditor", + }, + "Capital One, N.A.": { + status: "original creditor", + }, + "Cardinal Brush": { + status: "original creditor", + }, + "Cash Link USA, LLC": { + status: "original creditor", + }, + "Cavalry SPV I, LLC": { + status: "original creditor", + }, + "Citibank, N.A.": { + status: "original creditor", + }, + "Citizens Bank": { + status: "original creditor", + }, + "City Credit Union": { + status: "original creditor", + }, + "Collins Asset Group, LLC": { + status: "original creditor", + }, + "Commerce Bank": { + status: "original creditor", + }, + "Community America Credit Union": { + status: "original creditor", + }, + "Concord Finance": { + status: "original creditor", + }, + "Cornerstone Bank": { + status: "original creditor", + }, + "Credit Acceptance Corporation": { + status: "original creditor", + }, + "Credit Corp Solutions": { + status: "original creditor", + }, + "Credit Management Services": { + status: "original creditor", + }, + "Crown Asset Management, LLC": { + status: "original creditor", + }, + "Curry Investment Co.": { + status: "original creditor", + }, + "Denali Capital LLC": { + status: "original creditor", + }, + "DNF Associates": { + status: "original creditor", + }, + "Discover Bank": { + status: "original creditor", + }, + "Duke Capital": { + status: "original creditor", + }, + "Easy Cash ASAP, LLC": { + status: "original creditor", + }, + "Emergency Medicine Care": { + status: "original creditor", + }, + "Evergy": { + status: "original creditor", + }, + "Executive Investments, LLC": { + status: "original creditor", + }, + "Federal Home Loan Mortgage": { + status: "original creditor", + }, + "First Financial": { + status: "original creditor", + }, + "First Investors Servicing Corp, Servicing Agent / POA for First Investors Financial Services, Inc.": { + status: "original creditor", + }, + "First National Bank of Omaha": { + status: "original creditor", + }, + "First Portfolio Ventures": { + status: "original creditor", + }, + "Ford Motor Credit": { + status: "original creditor", + }, + "Forsythe Finance, LLC": { + status: "original creditor", + }, + "Galt Ventures": { + status: "original creditor", + }, + "Genesis Health Clubs Inc.": { + status: "original creditor", + }, + "GFS II, LLC": { + status: "original creditor", + }, + "Goldman Sachs USA": { + status: "original creditor", + }, + "Great Southern Bank": { + status: "original creditor", + }, + "Independence Capital Recovery": { + status: "original creditor", + }, + "Jefferson Capital Systems, LLC": { + status: "original creditor", + }, + "JPMorgan Chase Bank, N.A.": { + status: "original creditor", + }, + "Just Say Cash, LLC": { + status: "original creditor", + }, + "Kansas City Surgical Arts, LLC": { + status: "original creditor", + }, + "Kartsonis Pool": { + status: "original creditor", + }, + "KCK Police & Firemens CU": { + status: "original creditor", + }, + "Lakshmi Finance, LLC": { + status: "original creditor", + }, + "Lendmark Financial Services": { + status: "original creditor", + }, + "LVNV Funding, LLC": { + status: "original creditor", + }, + "Mainstreet CU": { + status: "original creditor", + }, + "Mariner Finance, LLC": { + status: "original creditor", + }, + "Mazuma Credit Union": { + status: "original creditor", + }, + "Meritrust Credit Union": { + status: "original creditor", + }, + "Merrick bank": { + status: "original creditor", + }, + "Midland Credit Management, Inc": { + status: "original creditor", + }, + "Midwest Title Loans": { + status: "original creditor", + }, + "Midwestern Health Mgmt": { + status: "original creditor", + }, + "N.A.R. Inc": { + status: "original creditor", + }, + "NCB Management Service": { + status: "original creditor", + }, + "National Management Recovery Corp": { + status: "original creditor", + }, + "Navy Federal Credit Union": { + status: "original creditor", + }, + "Nebraska Furniture Mart, Inc.": { + status: "original creditor", + }, + "North Kansas City Hospital": { + status: "original creditor", + }, + "OVERLAND PARK SURGICAL SUITES LLC": { + status: "original creditor", + }, + "OneMain Financial Group, LLC": { + status: "original creditor", + }, + "PCA Acquisitions V, LLC": { + status: "original creditor", + }, + "PYOD": { + status: "original creditor", + }, + "PayVantage, LLC": { + status: "original creditor", + }, + "PennyMac Loan Services": { + status: "original creditor", + }, + "Portfolio Recovery Associates, LLC": { + status: "original creditor", + }, + "Prestige Financial": { + status: "original creditor", + }, + "Pro Circuit": { + status: "original creditor", + }, + "Providence Medical Center": { + status: "original creditor", + }, + "Rental City, Inc.": { + status: "original creditor", + }, + "Republic Finance, LLC": { + status: "original creditor", + }, + "Resurgent Receivables LLC": { + status: "original creditor", + }, + "Rock Creek Capital": { + status: "original creditor", + }, + "SCIL, Inc.": { + status: "original creditor", + }, + "Safe Haven Security": { + status: "original creditor", + }, + "Second Round Sub": { + status: "original creditor", + }, + "Security Credit Services, LLC": { + status: "original creditor", + }, + "Skopos Financial, LLC": { + status: "original creditor", + }, + "Snap On Credit": { + status: "original creditor", + }, + "Sofi Lending": { + status: "original creditor", + }, + "Southwest National Bank": { + status: "original creditor", + }, + "Spring Oaks Capital SPV, LLC": { + status: "original creditor", + }, + "Stormont-Vail Healthcare, Inc.": { + status: "original creditor", + }, + "Sun Loan Company Missouri No 2 Inc.": { + status: "original creditor", + }, + "Swift Transport": { + status: "original creditor", + }, + "Synchrony Bank": { + status: "original creditor", + }, + "TBF Financial": { + status: "original creditor", + }, + "TD Bank USA, N.A.": { + status: "original creditor", + }, + "The University of Kansas Hospital Authority": { + status: "original creditor", + }, + "Tidewater": { + status: "original creditor", + }, + "Tower Loan of Missouri, LLC D/B/A Tower Loan of Lee's Summit": { + status: "original creditor", + }, + "U.S. Asset Management Inc.": { + status: "original creditor", + }, + "UHG I, LLC": { + status: "original creditor", + }, + "UMB Bank": { + status: "original creditor", + }, + "US Auto Mart": { + status: "original creditor", + }, + "US Bank": { + status: "original creditor", + }, + "Unifund CCR, LLC": { + status: "original creditor", + }, + "University of Kansas Hospital": { + status: "original creditor", + }, + "Velocity Investments, LLC": { + status: "original creditor", + }, + "Wakefield": { + status: "original creditor", + }, + "Wells Fargo Bank, N.A.": { + status: "original creditor", + }, + "Westlake Services, LLC": { + status: "original creditor", + }, + "Woden Finance, LLC": { + status: "original creditor", + }, + "Z&J Holdings": { + status: "original creditor", + } +}; diff --git a/public/client.js b/public/client.js new file mode 100644 index 0000000..dd06b55 --- /dev/null +++ b/public/client.js @@ -0,0 +1,1209 @@ +import { + fields, + stateToPostalCode, + specificNames, + specificTwoLetters, + postalCode, + fieldToCellMap, + fieldToCellMapOld, +} from './constants.js'; + +import { judgeInfo } from './judgeInformation.js'; +import { casePlaintiffInfo } from './casePlaintiffInfo.js'; + +import { + caseOpposingCounselInfo, + caseFilingAttorneyInfo, +} from './opposingCounselInfo.js'; + +import { generateLink } from './linkGenerator.js'; + +function toOrdinal(n) { + var s = ['th', 'st', 'nd', 'rd'], + v = n % 100; + return n + (s[(v - 20) % 10] || s[v] || s[0]); +} + +let savedData = {}; + +function byId(id) { + return document.getElementById(id); +} + +function onClick(id, handler) { + const el = byId(id); + if (el) el.addEventListener('click', handler); +} + +function onChange(id, handler) { + const el = byId(id); + if (el) el.addEventListener('change', handler); +} + +function onInput(id, handler) { + const el = byId(id); + if (el) el.addEventListener('input', handler); +} + +function onSubmit(id, handler) { + const el = byId(id); + if (el) el.addEventListener('submit', handler); +} + +function getFirstByName(name) { + const elements = document.getElementsByName(name); + return elements && elements.length > 0 ? elements[0] : null; +} + +function safeString(value) { + return value == null ? '' : String(value); +} + +function safeLastFour(value) { + const str = safeString(value); + return str ? str.slice(-4) : ''; +} + +function parseMoney(value) { + const parsed = parseFloat(safeString(value).replace(/,/g, '')); + return isNaN(parsed) ? 0 : parsed; +} + +window.addEventListener('load', () => { + let inputs = document.getElementsByTagName('input'); + for (let input of inputs) { + if (savedData[input.id] && !savedData[input.id].includes('xlsx')) { + input.value = savedData[input.id]; + } + input.addEventListener('input', function () { + savedData[this.id] = this.value; + }); + } + + generateFields(0); +}); + +function generateFields(numCollectors) { + let container = byId('collectorsContainer'); + if (!container) return; + + container.innerHTML = ''; + + for (let i = 1; i <= 30; i++) { + let div = document.createElement('div'); + div.id = 'collector' + i; + div.style.display = i <= numCollectors ? 'block' : 'none'; + div.innerHTML = ` +

Letter to Collector #${i}

+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ `; + + let inputs = div.querySelectorAll('input'); + inputs.forEach((input) => { + if (savedData[input.id]) { + input.value = savedData[input.id]; + } + + input.addEventListener('input', function () { + savedData[this.id] = this.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + }); + }); + + container.appendChild(div); + } +} +window.generateFields = generateFields; + +const numCollectorsEl = byId('numCollectors'); +if (numCollectorsEl) { + numCollectorsEl.onchange = function () { + const numCollectors = this.value; + for (let i = 1; i <= 30; i++) { + const div = byId('collector' + i); + if (div) { + div.style.display = i <= numCollectors ? 'block' : 'none'; + } + } + }; +} + +onClick('generateClientFolderLinkBtn', function () { + let container = byId('clientFolderLinkContainer'); + if (!container) return; + + const clientFirstName = safeString(byId('clientFirstName')?.value); + const clientLastName = safeString(byId('clientLastName')?.value); + const folderPath = `file:///D:/Bklistservinfo Dropbox/Ryan Callahan/clients/${clientLastName}, ${clientFirstName}`; + container.innerHTML = `Open Client Folder`; +}); + +onClick('generateCaseLinkBtn', function () { + let container = byId('caseLinkContainer'); + if (!container) return; + + const caseNumberInput = safeString(byId('caseNumber')?.value); + const link = generateLink(caseNumberInput); + + if (link) { + container.innerHTML = `Open Case`; + } +}); + +async function sendFormData(path, data, templateName) { + data.templateName = templateName; + + const normalizedPaths = []; + const seen = new Set(); + + const addPath = (p) => { + if (!p || seen.has(p)) return; + seen.add(p); + normalizedPaths.push(p); + }; + + addPath(path); + + if (path.startsWith('/')) { + addPath(path.slice(1)); + } else { + addPath(`/${path}`); + } + + let lastError = null; + + for (const candidate of normalizedPaths) { + try { + const response = await fetch(candidate, { + method: 'POST', + body: JSON.stringify(data), + headers: { + 'Content-Type': 'application/json', + }, + }); + + if (!response.ok) { + lastError = new Error(`Request failed for ${candidate}: ${response.status}`); + continue; + } + + const contentDisposition = response.headers.get('Content-Disposition'); + let filename = 'output.docx'; + + if (contentDisposition) { + const filenameMatch = contentDisposition.match(/filename="(.+)"/); + if (filenameMatch && filenameMatch.length === 2) { + filename = filenameMatch[1]; + } + } + + const blob = await response.blob(); + const downloadUrl = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = filename; + document.body.appendChild(a); + a.click(); + + setTimeout(() => { + document.body.removeChild(a); + URL.revokeObjectURL(downloadUrl); + }, 0); + + return; + } catch (error) { + lastError = error; + } + } + + console.error('sendFormData failed:', lastError); + alert('Unable to reach the document generation route.'); +} + +function getFormData() { + let data = {}; + fields.forEach((field) => { + data[field] = byId(field) ? byId(field).value : null; + }); + + data.today = dayjs().format('MMMM Do, YYYY'); + data.currentDate = dayjs().format('YYYY-MM-DD'); + data['currentDateMM-DD-YYYY'] = dayjs().format('MM-DD-YYYY'); + + if (data.dob) { + if (/^\d{4}$/.test(data.dob)) { + data.dob = data.dob; + } else { + data.dob = dayjs(data.dob).format('MM/DD/YYYY'); + } + } + + let installmentDate = dayjs(data.installmentDate); + data.installmentDate0 = installmentDate.format('MM/DD/YYYY'); + + for (let i = 1; i < 10; i++) { + installmentDate = installmentDate.add(1, 'month'); + data[`installmentDate${i}`] = installmentDate.format('MM/DD/YYYY'); + } + + if (data.caseAnswerDate) { + const [datePart = '', timePart = ''] = data.caseAnswerDate.split(';'); + const trimmedDatePart = datePart.trim(); + const trimmedTimePart = timePart.trim(); + + data['caseAnswerDateYYYY-MM-DD'] = dayjs(trimmedDatePart, 'MM/DD/YYYY').format('YYYY-MM-DD'); + data.caseAnswerDateTime = trimmedTimePart; + data.caseAnswerDateOnly = trimmedDatePart; + } + + let judgeLastName = safeString(data.caseDivisionJudge).split(' ').pop(); + + data.caseAppearanceInfo = + judgeInfo[judgeLastName] + ? `Division: ${judgeInfo[judgeLastName].division}; ${judgeInfo[judgeLastName].modality}` + : 'Modality: In-person; Access Code: N/A; Phone # / Link: N/A'; + + data.caseDivisionLocation = + judgeInfo[judgeLastName] && judgeInfo[judgeLastName].location + ? judgeInfo[judgeLastName].location + : ' '; + + let caseOpposingCounsel = safeString(getFirstByName('caseOpposingCounsel')?.value); + + data.caseOCAddressLine1 = + caseOpposingCounselInfo[caseOpposingCounsel] + ? caseOpposingCounselInfo[caseOpposingCounsel].caseOCAddressLine1 + : 'Address Line 1 Not Found'; + data.caseOCAddressLine2 = + caseOpposingCounselInfo[caseOpposingCounsel] + ? caseOpposingCounselInfo[caseOpposingCounsel].caseOCAddressLine2 + : 'Address Line 2 Not Found'; + data.caseOCPhone = + caseOpposingCounselInfo[caseOpposingCounsel] + ? caseOpposingCounselInfo[caseOpposingCounsel].caseOCPhone + : '111-111-1111'; + data.caseOCFax = + caseOpposingCounselInfo[caseOpposingCounsel] + ? caseOpposingCounselInfo[caseOpposingCounsel].caseOCFax + : '111-111-1112'; + data.caseOCEmail = + caseOpposingCounselInfo[caseOpposingCounsel] + ? caseOpposingCounselInfo[caseOpposingCounsel].caseOCEmail + : 'email@domain.com'; + data.paymentOptions1 = + caseOpposingCounselInfo[caseOpposingCounsel] && caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions1 + ? caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions1 + : 'Payment Options Not Found'; + data.paymentOptions2 = + caseOpposingCounselInfo[caseOpposingCounsel] && caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions2 + ? caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions2 + : ' '; + data.paymentOptions3 = + caseOpposingCounselInfo[caseOpposingCounsel] && caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions3 + ? caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions3 + : ' '; + data.paymentOptions4 = + caseOpposingCounselInfo[caseOpposingCounsel] && caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions4 + ? caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions4 + : ' '; + data.paymentOptions5 = + caseOpposingCounselInfo[caseOpposingCounsel] && caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions5 + ? caseOpposingCounselInfo[caseOpposingCounsel].paymentOptions5 + : ' '; + + const casePlaintiffEl = byId('casePlaintiff'); + const casePlaintiffValue = safeString(casePlaintiffEl?.value); + + if (caseOpposingCounselInfo && caseOpposingCounselInfo[caseOpposingCounsel]) { + if (caseOpposingCounselInfo[caseOpposingCounsel].settlementPayee === 'casePlaintiff') { + data.settlementPayee = casePlaintiffValue; + } else { + data.settlementPayee = caseOpposingCounselInfo[caseOpposingCounsel].settlementPayee; + } + } else { + data.settlementPayee = 'Payee not found'; + } + + let caseFilingAttorney = safeString(getFirstByName('caseFilingAttorney')?.value); + + data.caseAttyFirstName = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyFirstName + : 'First Name Not Found'; + data.caseAttyLastName = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyLastName + : 'Last Name Not Found'; + data.caseAttyAddressLine1 = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyAddressLine1 + : 'Address Line 1 Not Found'; + data.caseAttyAddressLine2 = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyAddressLine2 + : 'Address Line 2 Not Found'; + data.caseAttyPhone = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyPhone + : '111-111-1111'; + data.caseAttyFax = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyFax + : '111-111-1112'; + data.caseAttyEmail = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttyEmail + : 'email@domain.com'; + data.caseAttybarMO = + caseFilingAttorneyInfo[caseFilingAttorney] + ? caseFilingAttorneyInfo[caseFilingAttorney].caseAttybarMO + : '######'; + + function formatDateString(dateString) { + let date = new Date(dateString); + + if (!isNaN(date)) { + let day = date.getDate(); + let dayOrdinal = toOrdinal(day); + + return `${date.toLocaleDateString('en-US', { + month: 'long', + })} ${dayOrdinal}, ${date.getFullYear()}`; + } else { + console.error('Invalid Date'); + return 'Invalid Date'; + } + } + + data.caseDispositionDateString = formatDateString(data.caseDispositionDate); + data.caseFilingDateString = formatDateString(data.caseFilingDate); + data.caseAnswerDateString = formatDateString(data.caseAnswerDateOnly); + data.caseAnswerFiledDateString = formatDateString(data.caseAnswerFiledDate); + data.discoCosDateString = formatDateString(data.discoCosDate); + data.discoResponseCosDateString = formatDateString(data.discoResponseCosDate); + + let caseSuitAmount = parseMoney(data.caseSuitAmount); + let settlementAmount = parseMoney(data.settlementAmount); + let waivedAmount = caseSuitAmount - settlementAmount; + + let settlementOfferPercentExpected = data.settlementOfferPercentExpected ? parseFloat(data.settlementOfferPercentExpected) : 0; + let settlementOfferPercentCurrent = data.settlementOfferPercentCurrent ? parseFloat(data.settlementOfferPercentCurrent) : 0; + + let settlementOfferExpected = (caseSuitAmount * (settlementOfferPercentExpected / 100)).toFixed(2); + data.settlementOfferExpected = settlementOfferExpected; + + let settlementOfferCurrent = (caseSuitAmount * (settlementOfferPercentCurrent / 100)).toFixed(2); + data.settlementOfferCurrent = settlementOfferCurrent; + + let settlementOfferAmount = safeString(byId('settlementOfferAmount')?.value); + let settlementOffer = parseMoney(settlementOfferAmount).toFixed(2); + settlementOffer = parseFloat(settlementOffer).toLocaleString('en-US', { minimumFractionDigits: 2 }); + + data.settlementOffer = settlementOffer; + + data.waivedAmount = waivedAmount.toLocaleString('en-US', { + style: 'currency', + currency: 'USD', + }); + + let settlementFirstPaymentDate = new Date(data.settlementFirstPaymentDate); + + data.settlementFirstPaymentDateString = settlementFirstPaymentDate.toLocaleDateString('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', + }); + + let day = settlementFirstPaymentDate.getDate(); + data.settlementFirstPaymentDayString = toOrdinal(day); + + let settlementInstallmentAmount = parseMoney(data.settlementInstallmentAmount); + + data.settlementInstallmentAmountString = isNaN(settlementInstallmentAmount) + ? '' + : settlementInstallmentAmount.toLocaleString('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }); + + if (!isNaN(settlementInstallmentAmount)) { + const dollars = Math.floor(settlementInstallmentAmount); + const cents = Math.round((settlementInstallmentAmount - dollars) * 100); + const dollarsText = numberToWords.toWords(dollars); + const centsText = numberToWords.toWords(cents); + data.settlementInstallmentAmountWords = + `${dollarsText.charAt(0).toUpperCase() + dollarsText.slice(1)} Dollar${dollars !== 1 ? 's' : ''} and ${centsText.charAt(0).toUpperCase() + centsText.slice(1)} Cent${cents !== 1 ? 's' : ''}`; + } else { + data.settlementInstallmentAmountWords = ''; + } + + let settlementCheckDate = new Date(settlementFirstPaymentDate); + settlementCheckDate.setDate(settlementFirstPaymentDate.getDate() - 10); + + data.settlementCheckDate = settlementCheckDate.toLocaleDateString('en-US', { + year: 'numeric', + month: 'long', + day: 'numeric', + }); + + function adjustAndFormatDate(date) { + let day = date.getDate(); + let month = date.getMonth(); + let year = date.getFullYear(); + + let lastDayOfMonth = new Date(year, month + 1, 0).getDate(); + if (day > lastDayOfMonth) { + day = lastDayOfMonth; + } + + let adjustedDate = new Date(year, month, day); + + let formattedMonth = (adjustedDate.getMonth() + 1).toString().padStart(2, '0'); + let formattedDay = adjustedDate.getDate().toString().padStart(2, '0'); + let formattedYear = adjustedDate.getFullYear(); + return `${formattedMonth}/${formattedDay}/${formattedYear}`; + } + + data.settlementPaymentDate01 = settlementFirstPaymentDate.toLocaleDateString('en-US', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + }); + + for (let i = 1; i < 60; i++) { + let paymentDate = new Date(settlementFirstPaymentDate); + paymentDate.setMonth(paymentDate.getMonth() + i); + + let lastDayOfMonth = new Date(paymentDate.getFullYear(), paymentDate.getMonth() + 1, 0).getDate(); + if (settlementFirstPaymentDate.getDate() > lastDayOfMonth) { + paymentDate.setDate(lastDayOfMonth); + } + + let formattedDate = adjustAndFormatDate(paymentDate); + data[`settlementPaymentDate${(i + 1).toString().padStart(2, '0')}`] = formattedDate; + } + + for (let i = 1; i < 60; i++) { + let paymentDateKey = `settlementPaymentDate${(i + 1).toString().padStart(2, '0')}`; + let paymentDate = new Date(data[paymentDateKey]); + if (paymentDate.getDate() !== settlementFirstPaymentDate.getDate()) { + paymentDate.setMonth(paymentDate.getMonth() - 1); + paymentDate.setDate(new Date(paymentDate.getFullYear(), paymentDate.getMonth() + 1, 0).getDate()); + data[paymentDateKey] = adjustAndFormatDate(paymentDate); + } + } + + let settlementInstallmentNo = parseInt(data.settlementInstallmentNo, 10); + let settlementInterestRate = parseFloat(data.settlementInterestRate) || 0.00000000000000000001; + + settlementAmount = parseMoney(data.settlementAmount); + let settlementCaseCosts = parseMoney(data.settlementCaseCosts); + + let monthlyInterestRate = settlementInterestRate / 100 / 12; + + let settlementPaymentAmounts = []; + let settlementRemainingBalances = []; + let cumulativeInterest = 0; + + for (let i = 0; i < settlementInstallmentNo; i++) { + let interestPayment = settlementAmount * monthlyInterestRate; + let principalPayment = settlementInstallmentAmount - interestPayment; + + if (settlementAmount < principalPayment) { + principalPayment = settlementAmount; + settlementInstallmentAmount = principalPayment + interestPayment + settlementCaseCosts; + } + + settlementAmount -= principalPayment; + + settlementPaymentAmounts.push(settlementInstallmentAmount.toFixed(2)); + settlementRemainingBalances.push(settlementAmount.toFixed(2)); + cumulativeInterest += interestPayment; + + if (settlementAmount <= 0) { + break; + } + } + + if (settlementAmount > 0) { + let finalInterestPayment = settlementAmount * monthlyInterestRate; + let finalPayment = settlementAmount + finalInterestPayment + settlementCaseCosts; + settlementPaymentAmounts.push(finalPayment.toFixed(2)); + settlementRemainingBalances.push('0.00'); + cumulativeInterest += finalInterestPayment; + } + + for (let i = 0; i < 60; i++) { + data[`settlementPaymentAmount${(i + 1).toString().padStart(2, '0')}`] = settlementPaymentAmounts[i] || '0.00'; + data[`settlementRemaingBalance${(i + 1).toString().padStart(2, '0')}`] = settlementRemainingBalances[i] || '0.00'; + } + + data.settlementTotalInterest = cumulativeInterest.toFixed(2); + + data.remainingAmount = parseFloat(settlementAmount.toFixed(2)).toLocaleString('en-US', { + style: 'currency', + currency: 'USD', + }); + + data.SSNLastFour = safeLastFour(data.SSN); + data.SSN2LastFour = safeLastFour(data.client2SSN); + data.caseAccLastFour = safeLastFour(data.caseAccountNumber); + data.debtCollector1AccLastFour = safeLastFour(data.debtCollector1Account); + data.debtCollector2AccLastFour = safeLastFour(data.debtCollector2Account); + data.debtCollector3AccLastFour = safeLastFour(data.debtCollector3Account); + data.debtCollector4AccLastFour = safeLastFour(data.debtCollector4Account); + data.debtCollector5AccLastFour = safeLastFour(data.debtCollector5Account); + data.debtCollector6AccLastFour = safeLastFour(data.debtCollector6Account); + data.debtCollector7AccLastFour = safeLastFour(data.debtCollector7Account); + data.debtCollector8AccLastFour = safeLastFour(data.debtCollector8Account); + data.debtCollector9AccLastFour = safeLastFour(data.debtCollector9Account); + data.debtCollector10AccLastFour = safeLastFour(data.debtCollector10Account); + data.debtCollector11AccLastFour = safeLastFour(data.debtCollector11Account); + data.debtCollector12AccLastFour = safeLastFour(data.debtCollector12Account); + data.debtCollector13AccLastFour = safeLastFour(data.debtCollector13Account); + data.debtCollector14AccLastFour = safeLastFour(data.debtCollector14Account); + data.debtCollector15AccLastFour = safeLastFour(data.debtCollector15Account); + data.debtCollector16AccLastFour = safeLastFour(data.debtCollector16Account); + data.debtCollector17AccLastFour = safeLastFour(data.debtCollector17Account); + data.debtCollector18AccLastFour = safeLastFour(data.debtCollector18Account); + data.debtCollector19AccLastFour = safeLastFour(data.debtCollector19Account); + data.debtCollector20AccLastFour = safeLastFour(data.debtCollector20Account); + data.debtCollector21AccLastFour = safeLastFour(data.debtCollector21Account); + data.debtCollector22AccLastFour = safeLastFour(data.debtCollector22Account); + data.debtCollector23AccLastFour = safeLastFour(data.debtCollector23Account); + data.debtCollector24AccLastFour = safeLastFour(data.debtCollector24Account); + data.debtCollector25AccLastFour = safeLastFour(data.debtCollector25Account); + data.debtCollector26AccLastFour = safeLastFour(data.debtCollector26Account); + data.debtCollector27AccLastFour = safeLastFour(data.debtCollector27Account); + data.debtCollector28AccLastFour = safeLastFour(data.debtCollector28Account); + data.debtCollector29AccLastFour = safeLastFour(data.debtCollector29Account); + data.debtCollector30AccLastFour = safeLastFour(data.debtCollector30Account); + + data.casePlaintiffFileName = safeString(data.casePlaintiff).replace(/ /g, '-').replace(/[,.]/g, ''); + + return data; +} + +let counselDataList = byId('counsel-list'); +let counselNames = Object.keys(caseOpposingCounselInfo); + +if (counselDataList) { + for (let name of counselNames) { + let option = document.createElement('option'); + option.value = name; + counselDataList.appendChild(option); + } +} + +let filingAttorneyDataList = byId('attorney-list'); +let filingAttorneyNames = Object.keys(caseFilingAttorneyInfo); + +if (filingAttorneyDataList) { + for (let name of filingAttorneyNames) { + let option = document.createElement('option'); + option.value = name; + filingAttorneyDataList.appendChild(option); + } +} + +let plaintiffDataList = byId('plaintiff-list'); +let plaintiffNames = Object.keys(casePlaintiffInfo); + +if (plaintiffDataList) { + for (let name of plaintiffNames) { + let option = document.createElement('option'); + option.value = name; + plaintiffDataList.appendChild(option); + } +} + +let judgeDataList = byId('judge-list'); +let judgeNames = Object.keys(judgeInfo); + +if (judgeDataList) { + for (let name of judgeNames) { + let option = document.createElement('option'); + option.value = name; + judgeDataList.appendChild(option); + } +} + +onInput('caseDivisionJudge', function () { + let selectedJudge = this.value; + if (judgeInfo[selectedJudge]) { + if (byId('caseDivisionNumber')) byId('caseDivisionNumber').value = judgeInfo[selectedJudge].division; + if (byId('caseDesignation')) byId('caseDesignation').value = judgeInfo[selectedJudge].designation; + if (byId('caseCounty')) byId('caseCounty').value = judgeInfo[selectedJudge].county; + if (byId('caseState')) byId('caseState').value = judgeInfo[selectedJudge].state; + if (byId('caseDivisionDesignation')) byId('caseDivisionDesignation').value = judgeInfo[selectedJudge].divisionDesignation; + } else { + if (byId('caseDivisionNumber')) byId('caseDivisionNumber').value = ''; + if (byId('caseDesignation')) byId('caseDesignation').value = ''; + if (byId('caseCounty')) byId('caseCounty').value = ''; + if (byId('caseState')) byId('caseState').value = ''; + if (byId('caseDivisionDesignation')) byId('caseDivisionDesignation').value = ''; + } +}); + +onChange('excelFile', function (e) { + readExcelFile(e); +}); + +onChange('excelFileOld', function (e) { + readExcelFileOld(e); +}); + +function cellToRowCol(cell) { + const col = cell.toUpperCase().charCodeAt(0) - 'A'.charCodeAt(0); + const row = parseInt(cell.slice(1)) - 1; + return [col, row]; +} + +window.cellToRowCol = cellToRowCol; + +function readExcelFile(event) { + let input = event.target; + let reader = new FileReader(); + reader.onload = function () { + let data = new Uint8Array(reader.result); + let workbook = XLSX.read(data, { type: 'array' }); + let worksheet = workbook.Sheets[workbook.SheetNames[0]]; + let jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); + let formData = mapExcelDataToFormData(jsonData); + populateForm(formData); + }; + if (input.files[0]) { + reader.readAsArrayBuffer(input.files[0]); + } +} + +function mapExcelDataToFormData(data) { + let formData = {}; + for (let field in fieldToCellMap) { + let cell = fieldToCellMap[field]; + let rowIndex = parseInt(cell.substr(1)) - 1; + let colIndex = cell.charCodeAt(0) - 65; + formData[field] = data[rowIndex] && data[rowIndex][colIndex] !== undefined ? data[rowIndex][colIndex] : ''; + } + return formData; +} + +function readExcelFileOld(event) { + let input = event.target; + let reader = new FileReader(); + reader.onload = function () { + let data = new Uint8Array(reader.result); + let workbook = XLSX.read(data, { type: 'array' }); + let worksheet = workbook.Sheets[workbook.SheetNames[0]]; + let jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 }); + let formData = mapExcelDataToFormDataOld(jsonData); + populateForm(formData); + }; + if (input.files[0]) { + reader.readAsArrayBuffer(input.files[0]); + } +} + +function mapExcelDataToFormDataOld(data) { + let formData = {}; + for (let field in fieldToCellMapOld) { + let cell = fieldToCellMapOld[field]; + let rowIndex = parseInt(cell.substr(1)) - 1; + let colIndex = cell.charCodeAt(0) - 65; + formData[field] = data[rowIndex] && data[rowIndex][colIndex] !== undefined ? data[rowIndex][colIndex] : ''; + } + return formData; +} + +function populateForm(data) { + for (let field in data) { + let input = byId(field); + if (input) { + input.value = data[field]; + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + } + } + if (data.clientLastName && data.clientFirstName) { + document.title = `${data.clientLastName}, ${data.clientFirstName}`; + } +} + +function trimSpaces(input) { + input.value = input.value.trim(); +} + +window.trimSpaces = trimSpaces; + +function titleCase(input) { + input.value = input.value.trimStart(); + + if (!input.getAttribute('data-corrected')) { + input.value = input.value.trim().replace(/\b(\S+)\b/g, function (txt) { + if (txt.length === 2) { + const lowerCaseTxt = txt.toLowerCase(); + if (postalCode.hasOwnProperty(lowerCaseTxt)) { + return txt.toUpperCase(); + } else if (specificTwoLetters.hasOwnProperty(lowerCaseTxt)) { + return specificTwoLetters[lowerCaseTxt]; + } else { + return txt; + } + } + + if (specificNames.hasOwnProperty(txt.toLowerCase())) { + return specificNames[txt.toLowerCase()]; + } + + const mcMatch = txt.match(/^(mc)(.+)/i); + if (mcMatch) { + return 'Mc' + mcMatch[2].charAt(0).toUpperCase() + mcMatch[2].slice(1).toLowerCase(); + } + + const macMatch = txt.match(/^(mac)(.+)/i); + if (macMatch) { + return 'Mac' + macMatch[2].charAt(0).toUpperCase() + macMatch[2].slice(1).toLowerCase(); + } + + return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); + }); + input.setAttribute('data-corrected', true); + } +} + +window.titleCase = titleCase; + +function validateEmail(input) { + const emailErrorElement = byId('emailError'); + const trimmedValue = input.value.trim().toLowerCase(); + + if (trimmedValue !== '' && !input.getAttribute('data-corrected')) { + var emailRegex = /^\S+@\S+\.\S+$/; + + if (!emailRegex.test(trimmedValue)) { + if (emailErrorElement) emailErrorElement.textContent = 'Please enter a valid email address'; + input.focus(); + savedData[input.id] = trimmedValue; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + return false; + } else { + if (emailErrorElement) emailErrorElement.textContent = ''; + } + + input.setAttribute('data-corrected', 'true'); + } else { + if (emailErrorElement) emailErrorElement.textContent = ''; + } + + input.value = trimmedValue; +} + +window.validateEmail = validateEmail; + +function formatPhone(input, type) { + const typeToErrorElement = type === 'home' ? 'homePhoneError' : 'cellPhoneError'; + const phoneErrorElement = byId(typeToErrorElement); + + if (input.value.length > 0 && !input.getAttribute('data-corrected')) { + let value = input.value.replace(/[^0-9]/g, ''); + if (/^\d{10}$/.test(value)) { + input.value = value.slice(0, 3) + '-' + value.slice(3, 6) + '-' + value.slice(6); + if (phoneErrorElement) phoneErrorElement.textContent = ''; + input.setAttribute('data-corrected', 'true'); + } else { + input.value = ''; + if (phoneErrorElement) phoneErrorElement.textContent = 'Phone number must be 10 digits'; + input.focus(); + return false; + } + } + + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + return true; +} + +window.formatPhone = formatPhone; + +function formatCurrency(input) { + if (!input.getAttribute('data-corrected')) { + let value = input.value.replace(/[^0-9.]/g, ''); + value = parseFloat(value).toFixed(2); + input.value = isNaN(value) ? '' : value; + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + input.setAttribute('data-corrected', 'true'); + } +} + +window.formatCurrency = formatCurrency; + +function formatDateTime(input) { + if (!input.getAttribute('data-corrected')) { + let value = new Date(input.value); + if (!isNaN(value.getTime())) { + let formatted = + value.toLocaleDateString(undefined, { + day: '2-digit', + month: '2-digit', + year: 'numeric', + }) + + '; ' + + value.toLocaleTimeString(undefined, { + hour: '2-digit', + minute: '2-digit', + hour12: true, + }); + input.value = formatted; + } + input.setAttribute('data-corrected', 'true'); + } +} + +window.formatDateTime = formatDateTime; + +function formatExpiration(input) { + if (!input.getAttribute('data-corrected')) { + let value = input.value.replace(/[^0-9]/g, ''); + if (value.length === 4) { + input.value = value.slice(0, 2) + '/' + value.slice(2); + } + input.setAttribute('data-corrected', 'true'); + } +} + +window.formatExpiration = formatExpiration; + +function formatSSN(input, type) { + const typeToErrorElement = type === 'client' ? 'clientSSNError' : 'client2SSNError'; + const ssnErrorElement = byId(typeToErrorElement); + let lastFourDigits; + let wholeSSN; + + if (input.value && !input.getAttribute('data-corrected')) { + let value = input.value.replace(/[^0-9]/g, ''); + if (value.length === 9) { + lastFourDigits = value.slice(5); + input.value = value.slice(0, 3) + '-' + value.slice(3, 5) + '-' + lastFourDigits; + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + if (ssnErrorElement) ssnErrorElement.textContent = ''; + } else { + input.value = ''; + if (ssnErrorElement) ssnErrorElement.textContent = 'SSN must be 9 digits'; + input.focus(); + return false; + } + } + + wholeSSN = input.value; + return true; +} + +window.formatSSN = formatSSN; + +function formatState(input) { + const stateErrorElement = byId('homeStateError'); + + if (!input.getAttribute('data-corrected')) { + const stateInput = input.value.trim().toUpperCase().replace(/\s+/g, ' '); + const postalCode = stateToPostalCode[stateInput.toLowerCase()]; + + if (postalCode) { + input.value = postalCode.toUpperCase(); + if (stateErrorElement) stateErrorElement.textContent = ''; + } else if (Object.values(stateToPostalCode).includes(stateInput)) { + input.value = stateInput; + if (stateErrorElement) stateErrorElement.textContent = ''; + } else { + if (stateErrorElement) stateErrorElement.textContent = 'Invalid state name or code'; + input.focus(); + return false; + } + + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + } +} + +window.formatState = formatState; + +function validateHomeZip(input) { + let zip = input.value; + let errorMessage = byId('zipError'); + + if (zip.indexOf('-') !== -1 && zip.split('-')[1].length < 4) { + zip = zip.substring(0, 5); + input.value = zip; + } else if (zip.indexOf('-') === -1 && zip.length > 5) { + zip = zip.substring(0, 5); + input.value = zip; + } + + if (zip !== '' && !/^\d{5}(-\d{4})?$/.test(zip)) { + if (errorMessage) errorMessage.textContent = 'Format as 12345 or 12345-1234'; + input.focus(); + return false; + } else { + if (errorMessage) errorMessage.textContent = ''; + return true; + } +} + +window.validateHomeZip = validateHomeZip; + +function formatCaseState(input) { + const stateErrorElement = byId('caseStateError'); + + if (!input.getAttribute('data-corrected')) { + const stateInput = input.value.trim().toUpperCase().replace(/\s+/g, ' '); + const stateName = Object.keys(stateToPostalCode).find((key) => stateToPostalCode[key] === stateInput); + + if (stateName) { + input.value = stateName.charAt(0).toUpperCase() + stateName.slice(1).toLowerCase(); + if (stateErrorElement) stateErrorElement.textContent = ''; + } else if (stateToPostalCode.hasOwnProperty(stateInput.toLowerCase())) { + const fullStateName = Object.keys(stateToPostalCode).find((key) => stateToPostalCode[key] === stateInput); + input.value = fullStateName.charAt(0).toUpperCase() + fullStateName.slice(1).toLowerCase(); + if (stateErrorElement) stateErrorElement.textContent = ''; + } else { + if (stateErrorElement) stateErrorElement.textContent = 'Invalid state name or code'; + input.focus(); + return false; + } + + savedData[input.id] = input.value; + localStorage.setItem('collectorData', JSON.stringify(savedData)); + } +} + +window.formatCaseState = formatCaseState; + +onChange('excelFile', clearForm); +onChange('excelFileOld', clearForm); +onClick('clearForm', clearForm); + +function clearForm() { + let forms = document.getElementsByName('clientDataForm'); + if (forms.length > 0) { + let form = forms[0]; + form.reset(); + } + document.title = 'Client Intake Form'; + localStorage.removeItem('clientTitle'); +} + +function clearCaseInfo() { + let caseFields = document.querySelectorAll('.case-info'); + caseFields.forEach((field) => { + field.value = ''; + savedData[field.id] = ''; + }); + localStorage.setItem('collectorData', JSON.stringify(savedData)); +} + +onClick('clearCaseInfo', clearCaseInfo); + +onClick('generateClientFolderBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-client-folder', data); +}); + +onSubmit('generateClientDataFile', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-excel', data, 'output.xlsx'); +}); + +onClick('generatePaymentPlanBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-payment-plan', data, 'output.xlsx'); +}); + +onClick('generateIcsBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-ics', data); +}); + +onClick('generateDiscoIcsMOBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-MOdisco-ics', data); +}); + +onClick('generateDiscoBtn', function (event) { + generateDisco(event); +}); + +onClick('generateDiscoIcsKSBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-KSdisco-ics', data); +}); + +onClick('generateIcsBodyBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-ics-body', data); +}); + +onClick('generateContactBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-vCard', data); +}); + +onClick('generateRetainerBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-retainer', data); +}); + +onClick('generatePleadingBtn', function () { + generatePleading(); +}); + +onClick('generateLetterBtn', function () { + generateLetter(); +}); + +onClick('generateEoABtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-eoa', data); +}); + +onClick('generateNotesBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-notes', data); +}); + +onClick('generateSpreadsheetData', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-spreadsheet', data); +}); + +onClick('generateADsBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-ADs', data); +}); + +onClick('generateCloseOutBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-closeout', data); +}); + +onClick('generateServiceWaiverBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-waiver', data); +}); + +onClick('generateDisputeLetterBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-Dispute-Letter', data); +}); + +onClick('generateCannedEmailsBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-Canned-Emails', data); +}); + +onClick('generateDisputeEnvelopeBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-Dispute-Envelope', data); +}); + +onClick('generateDisputeCertBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-Dispute-Cert', data); +}); + +onClick('generateReminderICSBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-reminder-ics', data); +}); + +onClick('generateCreditAuthBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-credit-auth', data); +}); + +onClick('generateCreditAuthNoPaymentBtn', function (event) { + event.preventDefault(); + const data = getFormData(); + sendFormData('/generate-credit-auth-no-payment', data); +}); + +function generatePleading() { + var fileInput = byId('pleadingTemplateFile'); + var file = fileInput?.files?.[0]; + if (file) { + var templateName = file.name.split('.').slice(0, -1).join('.'); + var data = getFormData(); + sendFormData('/generate-pleading', data, templateName); + } else { + alert('Please select a file before clicking Generate'); + } +} + +function generateLetter() { + var fileInput = byId('letterTemplateFile'); + var file = fileInput?.files?.[0]; + if (file) { + var templateName = file.name.split('.').slice(0, -1).join('.'); + var data = getFormData(); + sendFormData('/generate-letter', data, templateName); + } else { + alert('Please select a file before clicking Generate'); + } +} + +function generateDisco(event) { + var fileInput = byId('discoTemplateFile'); + var file = fileInput?.files?.[0]; + if (file) { + var templateName = file.name.split('.').slice(0, -1).join('.'); + var data = getFormData(); + sendFormData('/generate-disco', data, templateName); + } else { + alert('Please select a file before clicking Generate'); + } +} \ No newline at end of file diff --git a/public/constants.js b/public/constants.js new file mode 100644 index 0000000..b4e301b --- /dev/null +++ b/public/constants.js @@ -0,0 +1,277 @@ +// [NOTE] moved all the constants here to make it easier to update + +export const postalCode = { + 'al': 'AL', 'ak': 'AK', 'az': 'AZ', 'ar': 'AR', 'ca': 'CA', 'co': 'CO', 'ct': 'CT', + 'de': 'DE', 'fl': 'FL', 'ga': 'GA', 'hi': 'HI', 'id': 'ID', 'il': 'IL', 'in': 'IN', + 'ia': 'IA', 'ks': 'KS', 'ky': 'KY', 'la': 'LA', 'me': 'ME', 'md': 'MD', 'ma': 'MA', + 'mi': 'MI', 'mn': 'MN', 'ms': 'MS', 'mo': 'MO', 'mt': 'MT', 'ne': 'NE', 'nv': 'NV', + 'nh': 'NH', 'nj': 'NJ', 'nm': 'NM', 'ny': 'NY', 'nc': 'NC', 'nd': 'ND', + 'oh': 'OH', 'ok': 'OK', 'or': 'OR', 'pa': 'PA', 'ri': 'RI', 'sc': 'SC', + 'sd': 'SD', 'tn': 'TN', 'tx': 'TX', 'ut': 'UT', 'vt': 'VT', 'va': 'VA', 'wa': 'WA', + 'wv': 'WV', 'wi': 'WI', 'wy': 'WY' +}; + +export const stateToPostalCode = { + 'alabama': 'AL', 'alaska': 'AK', 'arizona': 'AZ', 'arkansas': 'AR', + 'california': 'CA', 'colorado': 'CO', 'connecticut': 'CT', + 'delaware': 'DE', 'florida': 'FL', 'georgia': 'GA', 'hawaii': 'HI', + 'idaho': 'ID', 'illinois': 'IL', 'indiana': 'IN', 'iowa': 'IA', + 'kansas': 'KS', 'kentucky': 'KY', + 'louisiana': 'LA', + 'maine': 'ME', 'maryland': 'MD', 'massachusetts': 'MA', 'michigan': 'MI', 'minnesota': 'MN', 'mississippi': 'MS', 'missouri': 'MO', 'montana': 'MT', + 'nebraska': 'NE', 'nevada': 'NV', 'new hampshire': 'NH', 'new jersey': 'NJ', 'new mexico': 'NM', 'new york': 'NY', 'north carolina': 'NC', 'north dakota': 'ND', + 'ohio': 'OH', 'oklahoma': 'OK', 'oregon': 'OR', + 'pennsylvania': 'PA', + 'rhode island': 'RI', + 'south carolina': 'SC', 'south dakota': 'SD', + 'tennessee': 'TN', 'texas': 'TX', + 'utah': 'UT', + 'vermont': 'VT', 'virginia': 'VA', + 'washington': 'WA', 'west virginia': 'WV', 'wisconsin': 'WI', 'wyoming': 'WY', +}; +export const specificTwoLetters = { + 'of': 'of', + 'to': 'to', + 'in': 'in', + 'on': 'on', + 'at': 'at', + 'by': 'by', + 'an': 'an', + 'or': 'or', + 'as': 'as', + 'so': 'so', + // unique two letters + 'us': 'US', + 'bg': 'BG', + 'td': 'TD', + 'm4': 'M4', + 'po': 'PO', + +}; +export const specificNames = { + "and": "and", + "llp": "LLP", + "llc": "LLC", + "plc": "PLC", + "n.a.": "N.A.", + + 'usa': 'USA', + // unique names + 'jpmorgan': 'JPMorgan', + 'lvnv': 'LVNV', + 'pnc': 'PNC', + 'm&t': 'M&T', + "cks": "CKS", + 'cbe': 'CBE', + 'cit': 'CIT', + 'rsh': 'RSH', + 'dba': 'DBA', + 'spv': 'SPV', + 'uhg': 'UHG', + 'bmo': 'BMO', + +}; + +export const fields = [ + 'today', 'currentDate', 'currentDateMM-DD-YYYY', + // client info + 'clientFirstName', 'clientMiddleName', 'clientLastName','SSN', + 'homeAddress', 'homeCity', 'homeState', 'homeZip', + 'homeCounty', 'homePhone', 'cellPhone', 'email', + 'dob', 'alias', 'clientNamePrefix', 'clientNameSuffix', + 'SSNLastFour', 'dmcName', + 'client2FirstName', 'client2MiddleName', 'client2LastName','client2SSN', + 'client2homeAddress', 'client2homeCity', 'client2homeState','client2homeZip', + 'client2homeCounty', 'client2homePhone', 'client2cellPhone','client2email', + 'client2dob', 'client2alias', 'client2NamePrefix','client2NameSuffix', + 'SSN2LastFour', + // case info + 'caseDesignation', 'caseCounty', 'caseState', 'caseDivisionDesignation', 'caseDivisionLocation', + 'caseNumber', 'casePlaintiff', 'caseDefendant', 'caseOpposingCounsel', + 'caseSuitAmount', 'caseSuitTheory', 'caseOriginalCreditor', 'caseAccountNumber', + 'caseAnswerDate', 'caseDivisionNumber', 'caseDivisionJudge', 'discoCosDate', 'discoCosDateString', 'discoResponseCosDate', 'discoResponseCosDateString','discoDueDays', + 'caseFilingDate', 'caseFilingAttorney', 'caseAccLastFour', + + 'caseOCAddressLine1', 'caseOCAddressLine2', 'caseOCFileNumber', 'caseOCPhone', 'caseOCFax', 'caseOCEmail', + 'caseAttybarMO', 'caseAttybarKS','caseAttyAddressLine1', 'caseAttyAddressLine2', 'caseAttyPhone', 'caseAttyFax', 'caseAttyEmail', 'caseAttyEmail2', 'caseAttyFirm', + + 'caseAnswerDateOnly','caseFilingDateString','caseAnswerDateYYYY-MM-DD', 'caseAnswerDateTime', 'caseAnswerDateString', 'caseAnswerFiledDate', "caseAnswerFiledDateString", + 'caseAppearanceInfo', 'caseDisposition', 'caseDispositionDate', 'caseDispositionDateString', + + 'casePlaintiffFileName', + // settlement info + 'settlementOffer', 'settlementOfferAmount','settlementOfferPercent', 'settlementOfferPercentExpected', 'settlementOfferPercentCurrent', 'settlementOfferExpected', 'settlementOfferCurrent', + 'settlementAmount', 'settlementInstallmentAmount', 'settlementInstallmentAmountString', 'settlementFirstPaymentDate', 'settlementInstallmentNo', 'settlementInterestRate', 'settlementCaseCosts', 'settlementTotalInterest', + 'settlementPayee', 'paymentOptions', + 'settlementPaymentDate', + 'settlementPaymentDate00','settlementPaymentDate01','settlementPaymentDate02','settlementPaymentDate03','settlementPaymentDate04','settlementPaymentDate05','settlementPaymentDate06','settlementPaymentDate07','settlementPaymentDate08','settlementPaymentDate09', + 'settlementPaymentDate10','settlementPaymentDate11','settlementPaymentDate12','settlementPaymentDate13','settlementPaymentDate14','settlementPaymentDate15','settlementPaymentDate16','settlementPaymentDate17','settlementPaymentDate18','settlementPaymentDate19', + 'settlementPaymentDate20','settlementPaymentDate21','settlementPaymentDate22','settlementPaymentDate23','settlementPaymentDate24','settlementPaymentDate25','settlementPaymentDate26','settlementPaymentDate27','settlementPaymentDate28','settlementPaymentDate29', + 'settlementPaymentDate30','settlementPaymentDate31','settlementPaymentDate32','settlementPaymentDate33','settlementPaymentDate34','settlementPaymentDate35','settlementPaymentDate36','settlementPaymentDate37','settlementPaymentDate38','settlementPaymentDate39', + 'settlementPaymentDate40','settlementPaymentDate41','settlementPaymentDate42','settlementPaymentDate43','settlementPaymentDate44','settlementPaymentDate45','settlementPaymentDate46','settlementPaymentDate47','settlementPaymentDate48','settlementPaymentDate49', + 'settlementPaymentDate50','settlementPaymentDate51','settlementPaymentDate52','settlementPaymentDate53','settlementPaymentDate54','settlementPaymentDate55','settlementPaymentDate56','settlementPaymentDate57','settlementPaymentDate58','settlementPaymentDate59', + 'settlementPaymentDate60', + + 'settlementPaymentAmount00','settlementPaymentAmount01','settlementPaymentAmount02','settlementPaymentAmount03','settlementPaymentAmount04','settlementPaymentAmount05','settlementPaymentAmount06','settlementPaymentAmount07','settlementPaymentAmount08','settlementPaymentAmount09', + 'settlementPaymentAmount10','settlementPaymentAmount11','settlementPaymentAmount12','settlementPaymentAmount13','settlementPaymentAmount14','settlementPaymentAmount15','settlementPaymentAmount16','settlementPaymentAmount17','settlementPaymentAmount18','settlementPaymentAmount19', + 'settlementPaymentAmount20','settlementPaymentAmount21','settlementPaymentAmount22','settlementPaymentAmount23','settlementPaymentAmount24','settlementPaymentAmount25','settlementPaymentAmount26','settlementPaymentAmount27','settlementPaymentAmount28','settlementPaymentAmount29', + 'settlementPaymentAmount30','settlementPaymentAmount31','settlementPaymentAmount32','settlementPaymentAmount33','settlementPaymentAmount34','settlementPaymentAmount35','settlementPaymentAmount36','settlementPaymentAmount37','settlementPaymentAmount38','settlementPaymentAmount39', + 'settlementPaymentAmount40','settlementPaymentAmount41','settlementPaymentAmount42','settlementPaymentAmount43','settlementPaymentAmount44','settlementPaymentAmount45','settlementPaymentAmount46','settlementPaymentAmount47','settlementPaymentAmount48','settlementPaymentAmount49', + 'settlementPaymentAmount50','settlementPaymentAmount51','settlementPaymentAmount52','settlementPaymentAmount53','settlementPaymentAmount54','settlementPaymentAmount55','settlementPaymentAmount56','settlementPaymentAmount57','settlementPaymentAmount58','settlementPaymentAmount59', + 'settlementPaymentAmount60', + + 'settlementRemaingBalance00','settlementRemaingBalance01','settlementRemaingBalance02','settlementRemaingBalance03','settlementRemaingBalance04','settlementRemaingBalance05','settlementRemaingBalance06','settlementRemaingBalance07','settlementRemaingBalance08','settlementRemaingBalance09', + 'settlementRemaingBalance10','settlementRemaingBalance11','settlementRemaingBalance12','settlementRemaingBalance13','settlementRemaingBalance14','settlementRemaingBalance15','settlementRemaingBalance16','settlementRemaingBalance17','settlementRemaingBalance18','settlementRemaingBalance19', + 'settlementRemaingBalance20','settlementRemaingBalance21','settlementRemaingBalance22','settlementRemaingBalance23','settlementRemaingBalance24','settlementRemaingBalance25','settlementRemaingBalance26','settlementRemaingBalance27','settlementRemaingBalance28','settlementRemaingBalance29', + 'settlementRemaingBalance30','settlementRemaingBalance31','settlementRemaingBalance32','settlementRemaingBalance33','settlementRemaingBalance34','settlementRemaingBalance35','settlementRemaingBalance36','settlementRemaingBalance37','settlementRemaingBalance38','settlementRemaingBalance39', + 'settlementRemaingBalance40','settlementRemaingBalance41','settlementRemaingBalance42','settlementRemaingBalance43','settlementRemaingBalance44','settlementRemaingBalance45','settlementRemaingBalance46','settlementRemaingBalance47','settlementRemaingBalance48','settlementRemaingBalance49', + 'settlementRemaingBalance50','settlementRemaingBalance51','settlementRemaingBalance52','settlementRemaingBalance53','settlementRemaingBalance54','settlementRemaingBalance55','settlementRemaingBalance56','settlementRemaingBalance57','settlementRemaingBalance58','settlementRemaingBalance59', + 'settlementRemaingBalance60', + + // fee info + 'fee', 'discountRate', 'installmentAmount', 'installmentDate', 'installmentNumber', + 'nameOnCard', 'cardNumber', 'securityCode', 'expiration', + + 'installmentDate0', 'installmentDate1', 'installmentDate2', 'installmentDate3', 'installmentDate4', 'installmentDate5', + 'installmentDate6', 'installmentDate7', 'installmentDate8', 'installmentDate9', 'installmentDate10', + + 'installmentAmount0', 'installmentAmount1', 'installmentAmount2', 'installmentAmount3', 'installmentAmount4', 'installmentAmount5', + 'installmentAmount6', 'installmentAmount7', 'installmentAmount8', 'installmentAmount9', 'installmentAmount10', + + 'feeRemainingBalance0', 'feeRemainingBalance1', 'feeRemainingBalance2', 'feeRemainingBalance3', 'feeRemainingBalance4', 'feeRemainingBalance5', + 'feeRemainingBalance6', 'feeRemainingBalance7', 'feeRemainingBalance8', 'feeRemainingBalance9', 'feeRemainingBalance10', + + + 'billingAddress', 'billingZip', + // debt collector info + 'debtCollector1Name', 'debtCollector1Creditor', 'debtCollector1Account', 'debtCollector1Amount', 'debtCollector1AddressLine1', 'debtCollector1AddressLine2','debtCollector1AccLastFour', + 'debtCollector2Name', 'debtCollector2Creditor', 'debtCollector2Account', 'debtCollector2Amount', 'debtCollector2AddressLine1', 'debtCollector2AddressLine2', 'debtCollector2AccLastFour', + 'debtCollector3Name', 'debtCollector3Creditor', 'debtCollector3Account', 'debtCollector3Amount', 'debtCollector3AddressLine1', 'debtCollector3AddressLine2', 'debtCollector3AccLastFour', + 'debtCollector4Name', 'debtCollector4Creditor', 'debtCollector4Account', 'debtCollector4Amount', 'debtCollector4AddressLine1', 'debtCollector4AddressLine2', 'debtCollector4AccLastFour', + 'debtCollector5Name', 'debtCollector5Creditor', 'debtCollector5Account', 'debtCollector5Amount', 'debtCollector5AddressLine1', 'debtCollector5AddressLine2', 'debtCollector5AccLastFour', + 'debtCollector6Name', 'debtCollector6Creditor', 'debtCollector6Account', 'debtCollector6Amount', 'debtCollector6AddressLine1', 'debtCollector6AddressLine2', 'debtCollector6AccLastFour', + 'debtCollector7Name', 'debtCollector7Creditor', 'debtCollector7Account', 'debtCollector7Amount', 'debtCollector7AddressLine1', 'debtCollector7AddressLine2', 'debtCollector7AccLastFour', + 'debtCollector8Name', 'debtCollector8Creditor', 'debtCollector8Account', 'debtCollector8Amount', 'debtCollector8AddressLine1', 'debtCollector8AddressLine2', 'debtCollector8AccLastFour', + 'debtCollector9Name', 'debtCollector9Creditor', 'debtCollector9Account', 'debtCollector9Amount', 'debtCollector9AddressLine1', 'debtCollector9AddressLine2', 'debtCollector9AccLastFour', + 'debtCollector10Name', 'debtCollector10Creditor', 'debtCollector10Account', 'debtCollector10Amount', 'debtCollector10AddressLine1', 'debtCollector10AddressLine2', 'debtCollector10AccLastFour', + 'debtCollector11Name', 'debtCollector11Creditor', 'debtCollector11Account', 'debtCollector11Amount', 'debtCollector11AddressLine1', 'debtCollector11AddressLine2', 'debtCollector11AccLastFour', + 'debtCollector12Name', 'debtCollector12Creditor', 'debtCollector12Account', 'debtCollector12Amount', 'debtCollector12AddressLine1', 'debtCollector12AddressLine2', 'debtCollector12AccLastFour', + 'debtCollector13Name', 'debtCollector13Creditor', 'debtCollector13Account', 'debtCollector13Amount', 'debtCollector13AddressLine1', 'debtCollector13AddressLine2', 'debtCollector13AccLastFour', + 'debtCollector14Name', 'debtCollector14Creditor', 'debtCollector14Account', 'debtCollector14Amount', 'debtCollector14AddressLine1', 'debtCollector14AddressLine2', 'debtCollector14AccLastFour', + 'debtCollector15Name', 'debtCollector15Creditor', 'debtCollector15Account', 'debtCollector15Amount', 'debtCollector15AddressLine1', 'debtCollector15AddressLine2', 'debtCollector15AccLastFour', + 'debtCollector16Name', 'debtCollector16Creditor', 'debtCollector16Account', 'debtCollector16Amount', 'debtCollector16AddressLine1', 'debtCollector16AddressLine2', 'debtCollector16AccLastFour', + 'debtCollector17Name', 'debtCollector17Creditor', 'debtCollector17Account', 'debtCollector17Amount', 'debtCollector17AddressLine1', 'debtCollector17AddressLine2', 'debtCollector17AccLastFour', + 'debtCollector18Name', 'debtCollector18Creditor', 'debtCollector18Account', 'debtCollector18Amount', 'debtCollector18AddressLine1', 'debtCollector18AddressLine2', 'debtCollector18AccLastFour', + 'debtCollector19Name', 'debtCollector19Creditor', 'debtCollector19Account', 'debtCollector19Amount', 'debtCollector19AddressLine1', 'debtCollector19AddressLine2', 'debtCollector19AccLastFour', + 'debtCollector20Name', 'debtCollector20Creditor', 'debtCollector20Account', 'debtCollector20Amount', 'debtCollector20AddressLine1', 'debtCollector20AddressLine2', 'debtCollector20AccLastFour', + 'debtCollector21Name', 'debtCollector21Creditor', 'debtCollector21Account', 'debtCollector21Amount', 'debtCollector21AddressLine1', 'debtCollector21AddressLine2', 'debtCollector21AccLastFour', + 'debtCollector22Name', 'debtCollector22Creditor', 'debtCollector22Account', 'debtCollector22Amount', 'debtCollector22AddressLine1', 'debtCollector22AddressLine2', 'debtCollector22AccLastFour', + 'debtCollector23Name', 'debtCollector23Creditor', 'debtCollector23Account', 'debtCollector23Amount', 'debtCollector23AddressLine1', 'debtCollector23AddressLine2', 'debtCollector23AccLastFour', + 'debtCollector24Name', 'debtCollector24Creditor', 'debtCollector24Account', 'debtCollector24Amount', 'debtCollector24AddressLine1', 'debtCollector24AddressLine2', 'debtCollector24AccLastFour', + 'debtCollector25Name', 'debtCollector25Creditor', 'debtCollector25Account', 'debtCollector25Amount', 'debtCollector25AddressLine1', 'debtCollector25AddressLine2', 'debtCollector25AccLastFour', + 'debtCollector26Name', 'debtCollector26Creditor', 'debtCollector26Account', 'debtCollector26Amount', 'debtCollector26AddressLine1', 'debtCollector26AddressLine2', 'debtCollector26AccLastFour', + 'debtCollector27Name', 'debtCollector27Creditor', 'debtCollector27Account', 'debtCollector27Amount', 'debtCollector27AddressLine1', 'debtCollector27AddressLine2', 'debtCollector27AccLastFour', + 'debtCollector28Name', 'debtCollector28Creditor', 'debtCollector28Account', 'debtCollector28Amount', 'debtCollector28AddressLine1', 'debtCollector28AddressLine2', 'debtCollector28AccLastFour', + 'debtCollector29Name', 'debtCollector29Creditor', 'debtCollector29Account', 'debtCollector29Amount', 'debtCollector29AddressLine1', 'debtCollector29AddressLine2', 'debtCollector29AccLastFour', + 'debtCollector30Name', 'debtCollector30Creditor', 'debtCollector30Account', 'debtCollector30Amount', 'debtCollector30AddressLine1', 'debtCollector30AddressLine2', 'debtCollector30AccLastFour', + 'notes', +]; + +export const fieldToCellMap = { + // client info + clientFirstName: 'A3', clientMiddleName: 'B3', clientLastName: 'C3', SSN: 'D3', + homeAddress: 'A5', homeCity: 'B5', homeState: 'C5', homeZip: 'D5', + homeCounty: 'A7', homePhone: 'B7', cellPhone: 'C7', email: 'D7', + dob: 'A9', alias: 'B9', clientNamePrefix: 'C9', clientNameSuffix: 'D9', + SSNLastFour : 'A11', dmcName: 'B11', + client2FirstName: 'A14', client2MiddleName: 'B14', client2LastName: 'C14', SSN2: 'D14', + client2homeAddress: 'A16', client2homeCity: 'B16', client2homeState: 'C16', client2homeZip: 'D16', + client2homeCounty: 'A18', client2homePhone: 'B18', client2cellPhone: 'C18', client2email: 'D18', + client2dob: 'A20', client2alias: 'B20', client2NamePrefix: 'C20', client2NameSuffix: 'D20', + SSN2LastFour: 'A22', + // case info + caseDesignation: 'A27', caseCounty: 'B27', caseState: 'C27', caseDivisionDesignation: 'D27', + caseNumber: 'A29', casePlaintiff: 'B29', caseDefendant: 'C29', caseOpposingCounsel: 'D29', + caseSuitAmount: 'A31', caseSuitTheory: 'B31', caseOriginalCreditor: 'C31', caseAccountNumber: 'D31', + caseAnswerDate: 'A33', caseDivisionNumber: 'B33', caseDivisionJudge: 'C33', discoCosDate: 'D33', + caseFilingDate: 'A35', caseFilingAttorney: 'B35', caseAccLastFour: 'C35', caseOCFileNumber: 'D35', + caseAnswerFiledDate: 'A37', caseDisposition: 'B37', caseDispositionDate: 'C37', + // settlement info + settlementAmount: 'A46', settlementInstallmentAmount: 'B46', settlementFirstPaymentDate: 'C46', settlementInstallmentNo: 'D46', + // fee info + fee: 'A54', installmentAmount: 'B54', installmentDate: 'C54', + nameOnCard: 'A56', cardNumber: 'B56', securityCode: 'C56', expiration: 'D56', + billingAddress: 'A58', billingZip: 'B58', + // debt collector info + debtCollector1Name: 'A68', debtCollector1Creditor: 'B68', debtCollector1Account: 'C68', debtCollector1Amount: 'D68', debtCollector1AddressLine1: 'A70', debtCollector1AddressLine2: 'C70', + debtCollector2Name: 'A74', debtCollector2Creditor: 'B74', debtCollector2Account: 'C74', debtCollector2Amount: 'D74', debtCollector2AddressLine1: 'A76', debtCollector2AddressLine2: 'C76', + debtCollector3Name: 'A80', debtCollector3Creditor: 'B80', debtCollector3Account: 'C80', debtCollector3Amount: 'D80', debtCollector3AddressLine1: 'A82', debtCollector3AddressLine2: 'C82', + debtCollector4Name: 'A86', debtCollector4Creditor: 'B86', debtCollector4Account: 'C86', debtCollector4Amount: 'D86', debtCollector4AddressLine1: 'A88', debtCollector4AddressLine2: 'C88', + debtCollector5Name: 'A92', debtCollector5Creditor: 'B92', debtCollector5Account: 'C92', debtCollector5Amount: 'D92', debtCollector5AddressLine1: 'A94', debtCollector5AddressLine2: 'C94', + debtCollector6Name: 'A98', debtCollector6Creditor: 'B98', debtCollector6Account: 'C98', debtCollector6Amount: 'D98', debtCollector6AddressLine1: 'A100', debtCollector6AddressLine2: 'C100', + debtCollector7Name: 'A104', debtCollector7Creditor: 'B104', debtCollector7Account: 'C104', debtCollector7Amount: 'D104', debtCollector7AddressLine1: 'A106', debtCollector7AddressLine2: 'C106', + debtCollector8Name: 'A110', debtCollector8Creditor: 'B110', debtCollector8Account: 'C110', debtCollector8Amount: 'D110', debtCollector8AddressLine1: 'A112', debtCollector8AddressLine2: 'C112', + debtCollector9Name: 'A116', debtCollector9Creditor: 'B116', debtCollector9Account: 'C116', debtCollector9Amount: 'D116', debtCollector9AddressLine1: 'A118', debtCollector9AddressLine2: 'C118', + debtCollector10Name: 'A122', debtCollector10Creditor: 'B122', debtCollector10Account: 'C122', debtCollector10Amount: 'D122', debtCollector10AddressLine1: 'A124', debtCollector10AddressLine2: 'C124', + debtCollector11Name: 'A128', debtCollector11Creditor: 'B128', debtCollector11Account: 'C128', debtCollector11Amount: 'D128', debtCollector11AddressLine1: 'A130', debtCollector11AddressLine2: 'C130', + debtCollector12Name: 'A134', debtCollector12Creditor: 'B134', debtCollector12Account: 'C134', debtCollector12Amount: 'D134', debtCollector12AddressLine1: 'A136', debtCollector12AddressLine2: 'C136', + debtCollector13Name: 'A140', debtCollector13Creditor: 'B140', debtCollector13Account: 'C140', debtCollector13Amount: 'D140', debtCollector13AddressLine1: 'A142', debtCollector13AddressLine2: 'C142', + debtCollector14Name: 'A146', debtCollector14Creditor: 'B146', debtCollector14Account: 'C146', debtCollector14Amount: 'D146', debtCollector14AddressLine1: 'A148', debtCollector14AddressLine2: 'C148', + debtCollector15Name: 'A152', debtCollector15Creditor: 'B152', debtCollector15Account: 'C152', debtCollector15Amount: 'D152', debtCollector15AddressLine1: 'A154', debtCollector15AddressLine2: 'C154', + debtCollector16Name: 'A158', debtCollector16Creditor: 'B158', debtCollector16Account: 'C158', debtCollector16Amount: 'D158', debtCollector16AddressLine1: 'A160', debtCollector16AddressLine2: 'C160', + debtCollector17Name: 'A164', debtCollector17Creditor: 'B164', debtCollector17Account: 'C164', debtCollector17Amount: 'D164', debtCollector17AddressLine1: 'A166', debtCollector17AddressLine2: 'C166', + debtCollector18Name: 'A170', debtCollector18Creditor: 'B170', debtCollector18Account: 'C170', debtCollector18Amount: 'D170', debtCollector18AddressLine1: 'A172', debtCollector18AddressLine2: 'C172', + debtCollector19Name: 'A176', debtCollector19Creditor: 'B176', debtCollector19Account: 'C176', debtCollector19Amount: 'D176', debtCollector19AddressLine1: 'A178', debtCollector19AddressLine2: 'C178', + debtCollector20Name: 'A182', debtCollector20Creditor: 'B182', debtCollector20Account: 'C182', debtCollector20Amount: 'D182', debtCollector20AddressLine1: 'A184', debtCollector20AddressLine2: 'C184', + debtCollector21Name: 'A188', debtCollector21Creditor: 'B188', debtCollector21Account: 'C188', debtCollector21Amount: 'D188', debtCollector21AddressLine1: 'A190', debtCollector21AddressLine2: 'C190', + debtCollector22Name: 'A194', debtCollector22Creditor: 'B194', debtCollector22Account: 'C194', debtCollector22Amount: 'D194', debtCollector22AddressLine1: 'A196', debtCollector22AddressLine2: 'C196', + debtCollector23Name: 'A200', debtCollector23Creditor: 'B200', debtCollector23Account: 'C200', debtCollector23Amount: 'D200', debtCollector23AddressLine1: 'A202', debtCollector23AddressLine2: 'C202', + debtCollector24Name: 'A206', debtCollector24Creditor: 'B206', debtCollector24Account: 'C206', debtCollector24Amount: 'D206', debtCollector24AddressLine1: 'A208', debtCollector24AddressLine2: 'C208', + debtCollector25Name: 'A212', debtCollector25Creditor: 'B212', debtCollector25Account: 'C212', debtCollector25Amount: 'D212', debtCollector25AddressLine1: 'A214', debtCollector25AddressLine2: 'C214', + debtCollector26Name: 'A218', debtCollector26Creditor: 'B218', debtCollector26Account: 'C218', debtCollector26Amount: 'D218', debtCollector26AddressLine1: 'A220', debtCollector26AddressLine2: 'C220', + debtCollector27Name: 'A224', debtCollector27Creditor: 'B224', debtCollector27Account: 'C224', debtCollector27Amount: 'D224', debtCollector27AddressLine1: 'A226', debtCollector27AddressLine2: 'C226', + debtCollector28Name: 'A230', debtCollector28Creditor: 'B230', debtCollector28Account: 'C230', debtCollector28Amount: 'D230', debtCollector28AddressLine1: 'A232', debtCollector28AddressLine2: 'C232', + debtCollector29Name: 'A236', debtCollector29Creditor: 'B236', debtCollector29Account: 'C236', debtCollector29Amount: 'D236', debtCollector29AddressLine1: 'A238', debtCollector29AddressLine2: 'C238', + debtCollector30Name: 'A242', debtCollector30Creditor: 'B242', debtCollector30Account: 'C242', debtCollector30Amount: 'D242', debtCollector30AddressLine1: 'A244', debtCollector30AddressLine2: 'C244', + notes: 'A63', +}; + +export const fieldToCellMapOld = { + clientFirstName: 'A3', clientMiddleName: 'B3', clientLastName: 'C3', SSN: 'D3', + client2FirstName: 'A5', client2MiddleName: 'B5', client2LastName: 'C5', SSN2: 'D5', + homeAddress: 'A7', homeCity: 'B7', homeState: 'C7', homeZip: 'D7', + homeCounty: 'A9', homePhone: 'B9', cellPhone: 'C9', email: 'D9', + dob: 'A11', alias: 'B11', clientNameSuffix: 'C11', + caseDesignation: 'A15', caseCounty: 'B15', caseState: 'C15', caseDivisionDesignation: 'D15', + caseNumber: 'A17', casePlaintiff: 'B17', caseDefendant: 'C17', caseOpposingCounsel: 'D17', + caseSuitTheory: 'B19', caseSuitAmount: 'A19', caseOriginalCreditor: 'C19', caseAccountNumber: 'D19', + caseAnswerDate: 'A21', caseDivisionNumber: 'B21', caseDivisionJudge: 'C21', discoCosDate: 'D21', + fee: 'A25', installmentAmount: 'B25', installmentDate: 'C25', + nameOnCard: 'A27', cardNumber: 'B27', securityCode: 'C27', expiration: 'D27', + billingAddress: 'A29', billingZip: 'B29', + settlementAmount: 'A32', settlementInstallmentAmount: 'B32', settlementFirstPaymentDate: 'C32', settlementInstallmentNo: 'D32', + debtCollector1Name: 'A39', debtCollector1Creditor: 'B39', debtCollector1Account: 'C39', debtCollector1Amount: 'D39', + debtCollector1AddressLine1: 'A41', debtCollector1AddressLine2: 'C41', debtCollector2Name: 'A45', + debtCollector2Creditor: 'B45', debtCollector2Account: 'C45', debtCollector2Amount: 'D45', + debtCollector2AddressLine1: 'A47', debtCollector2AddressLine2: 'C47', + debtCollector3Name: 'A51', debtCollector3Creditor: 'B51', debtCollector3Account: 'C51', debtCollector3Amount: 'D51', + debtCollector3AddressLine1: 'A53', debtCollector3AddressLine2: 'C53', + debtCollector4Name: 'A57', debtCollector4Creditor: 'B57', debtCollector4Account: 'C57', debtCollector4Amount: 'D57', + debtCollector4AddressLine1: 'A59', debtCollector4AddressLine2: 'C59', + debtCollector5Name: 'A63', debtCollector5Creditor: 'B63', debtCollector5Account: 'C63', debtCollector5Amount: 'D63', + debtCollector5AddressLine1: 'A65', debtCollector5AddressLine2: 'C65', + debtCollector6Name: 'A69', debtCollector6Creditor: 'B69', debtCollector6Account: 'C69', debtCollector6Amount: 'D69', + debtCollector6AddressLine1: 'A71', debtCollector6AddressLine2: 'C71', + debtCollector7Name: 'A75', debtCollector7Creditor: 'B75', debtCollector7Account: 'C75', debtCollector7Amount: 'D75', + debtCollector7AddressLine1: 'A77', debtCollector7AddressLine2: 'C77', + debtCollector8Name: 'A81', debtCollector8Creditor: 'B81', debtCollector8Account: 'C81', debtCollector8Amount: 'D81', + debtCollector8AddressLine1: 'A83', debtCollector8AddressLine2: 'C83', + debtCollector9Name: 'A87', debtCollector9Creditor: 'B87', debtCollector9Account: 'C87', debtCollector9Amount: 'D87', + debtCollector9AddressLine1: 'A89', debtCollector9AddressLine2: 'C89', + debtCollector10Name: 'A91', debtCollector10Creditor: 'B91', debtCollector10Account: 'C91', debtCollector10Amount: 'D91', debtCollector10AddressLine1: 'A93', debtCollector10AddressLine2: 'C93', + debtCollector11Name: 'A95', debtCollector11Creditor: 'B95', debtCollector11Account: 'C95', debtCollector11Amount: 'D95', debtCollector11AddressLine1: 'A97', debtCollector11AddressLine2: 'C97', + debtCollector12Name: 'A101', debtCollector12Creditor: 'B101', debtCollector12Account: 'C101', debtCollector12Amount: 'D101', debtCollector12AddressLine1: 'A103', debtCollector12AddressLine2: 'C103', + debtCollector13Name: 'A105', debtCollector13Creditor: 'B105', debtCollector13Account: 'C105', debtCollector13Amount: 'D105', debtCollector13AddressLine1: 'A107', debtCollector13AddressLine2: 'C107', + debtCollector14Name: 'A109', debtCollector14Creditor: 'B109', debtCollector14Account: 'C109', debtCollector14Amount: 'D109', debtCollector14AddressLine1: 'A111', debtCollector14AddressLine2: 'C111', debtCollector15Name: 'A113', debtCollector15Creditor: 'B113', debtCollector15Account: 'C113', debtCollector15Amount: 'D113', debtCollector15AddressLine1: 'A115', debtCollector15AddressLine2: 'C115', debtCollector16Name: 'A117', debtCollector16Creditor: 'B117', debtCollector16Account: 'C117', debtCollector16Amount: 'D117', debtCollector16AddressLine1: 'A119', debtCollector16AddressLine2: 'C119', debtCollector17Name: 'A121', debtCollector17Creditor: 'B121', debtCollector17Account: 'C121', debtCollector17Amount: 'D121', debtCollector17AddressLine1: 'A123', debtCollector17AddressLine2: 'C123', debtCollector18Name: 'A125', debtCollector18Creditor: 'B125', debtCollector18Account: 'C125', debtCollector18Amount: 'D125', debtCollector18AddressLine1: 'A127', debtCollector18AddressLine2: 'C127', debtCollector19Name: 'A129', debtCollector19Creditor: 'B129', debtCollector19Account: 'C129', debtCollector19Amount: 'D129', debtCollector19AddressLine1: 'A131', debtCollector19AddressLine2: 'C131', debtCollector20Name: 'A133', debtCollector20Creditor: 'B133', debtCollector20Account: 'C133', debtCollector20Amount: 'D133', debtCollector20AddressLine1: 'A135', debtCollector20AddressLine2: 'C135', debtCollector21Name: 'A137', debtCollector21Creditor: 'B137', debtCollector21Account: 'C137', debtCollector21Amount: 'D137', debtCollector21AddressLine1: 'A139', debtCollector21AddressLine2: 'C139', debtCollector22Name: 'A141', debtCollector22Creditor: 'B141', debtCollector22Account: 'C141', debtCollector22Amount: 'D141', debtCollector22AddressLine1: 'A143', debtCollector22AddressLine2: 'C143', debtCollector23Name: 'A145', debtCollector23Creditor: 'B145', debtCollector23Account: 'C145', debtCollector23Amount: 'D145', debtCollector23AddressLine1: 'A147', debtCollector23AddressLine2: 'C147', debtCollector24Name: 'A149', debtCollector24Creditor: 'B149', debtCollector24Account: 'C149', debtCollector24Amount: 'D149', debtCollector24AddressLine1: 'A151', debtCollector24AddressLine2: 'C151', debtCollector25Name: 'A153', debtCollector25Creditor: 'B153', debtCollector25Account: 'C153', debtCollector25Amount: 'D153', debtCollector25AddressLine1: 'A155', debtCollector25AddressLine2: 'C155', debtCollector26Name: 'A157', debtCollector26Creditor: 'B157', debtCollector26Account: 'C157', debtCollector26Amount: 'D157', debtCollector26AddressLine1: 'A159', debtCollector26AddressLine2: 'C159', debtCollector27Name: 'A161', debtCollector27Creditor: 'B161', debtCollector27Account: 'C161', debtCollector27Amount: 'D161', debtCollector27AddressLine1: 'A163', debtCollector27AddressLine2: 'C163', debtCollector28Name: 'A165', debtCollector28Creditor: 'B165', debtCollector28Account: 'C165', debtCollector28Amount: 'D165', debtCollector28AddressLine1: 'A167', debtCollector28AddressLine2: 'C167', debtCollector29Name: 'A169', debtCollector29Creditor: 'B169', debtCollector29Account: 'C169', debtCollector29Amount: 'D169', debtCollector29AddressLine1: 'A171', debtCollector29AddressLine2: 'C171', + notes: 'B31' +}; \ No newline at end of file diff --git a/public/debtCollectorInfo.js b/public/debtCollectorInfo.js new file mode 100644 index 0000000..f977648 --- /dev/null +++ b/public/debtCollectorInfo.js @@ -0,0 +1,224 @@ + +export const debtCollectorInfo = { + "Aargon Agency, Inc.": { + debtCollectorName: "Aargon Agency, Inc.", + debtCollectorAddressLine1: "8668 Spring Mountain Rd., Ste. 110", + debtCollectorAddressLine2: "Las Vegas, NV 89117", + debtCollectorPhone: "1-800-326-7118", + debtCollectorFax: "702-220-7036", + debtCollectorEmail: "info@aargon.com", + }, + "Ability Recovery Services LLC": { + debtCollectorName: "Ability Recovery Services LLC", + debtCollectorAddressLine1: "284 Main St", + debtCollectorAddressLine2: "DuPont, PA 18641-1960", + debtCollectorFax: "", + }, + "Account Resolution Corporation": { + debtCollectorName: "Account Resolution Corporation", + debtCollectorAddressLine1: "700 Goddard Ave", + debtCollectorAddressLine2: "Chesterfield, MO 63005", + debtCollectorFax: "", + }, + "Automated Collections Services, Inc.": { + debtCollectorName: "Automated Collections Services, Inc.", + debtCollectorAddressLine1: "304 Northcreek Blvd.", + debtCollectorAddressLine2: "Goodlettsville, TN 37072", + debtCollectorFax: "", + }, + "The Bureaus, Inc": { + debtCollectorName: "The Bureaus, Inc", + debtCollectorAddressLine1: "650 Dundee Road Suite 370", + debtCollectorAddressLine2: "Northbrook, IL 60062", + debtCollectorFax: "", + }, + "Caine & Weiner": { + debtCollectorName: "Caine & Weiner", + debtCollectorAddressLine1: "5805 Sepulveda Blvd FL 4", + debtCollectorAddressLine2: "Sherman Oaks, CA 91411-2532", + debtCollectorFax: "", + }, + "Cavalry Portfolio Service": { + debtCollectorName: "Cavalry Portfolio Service", + debtCollectorAddressLine1: "500 Summit Lake Dr, Ste 400", + debtCollectorAddressLine2: "Valhalla, NY 10595", + debtCollectorFax: "", + }, + "CKS Prime Investments, LLC": { + debtCollectorName: "CKS Prime Investments, LLC", + debtCollectorAddressLine1: "1800 Route 34 N, Building 3, Suite 305", + debtCollectorAddressLine2: "Wall, NJ 07719", + debtCollectorFax: "", + }, + "Credence Resource Management": { + debtCollectorName: "Credence Resource Management", + debtCollectorAddressLine1: "4222 Trinity Mills, Ste. 260", + debtCollectorAddressLine2: "Dallas, TX 75287", + debtCollectorFax: "", + }, + "Credit Collection Services": { + debtCollectorName: "Credit Collection Services", + debtCollectorAddressLine1: "PO Box 607", + debtCollectorAddressLine2: "Norwood, MA 02062", + debtCollectorFax: "", + }, + "Credit Corp Solutions": { + debtCollectorName: "Credit Corp Solutions", + debtCollectorAddressLine1: "121 West Election Road, Suite 200", + debtCollectorAddressLine2: "Draper, Ut 84020", + debtCollectorFax: "", + }, + "Credit Management LP": { + debtCollectorName: "Credit Management LP", + debtCollectorAddressLine1: "631 S Royal Lane, Suite 100", + debtCollectorAddressLine2: "Coppell, TX 75019", + debtCollectorFax: "", + }, + "First Collection Services": { + debtCollectorName: "First Collection Services", + debtCollectorAddressLine1: "10925 Otter Creek East Blvd.", + debtCollectorAddressLine2: "Little Rock, AR 72103", + debtCollectorFax: "", + }, + "Frontline Asset Strategies": { + debtCollectorName: "Frontline Asset Strategies", + debtCollectorAddressLine1: "10550 Deerwood Park Blvd,Ste 309", + debtCollectorAddressLine2: "Jacksonville, FL 32256", + debtCollectorFax: "", + }, + "Hunter Warfield": { + debtCollectorName: "Hunter Warfield", + debtCollectorAddressLine1: "4620 Woodland Corporate Blvd.", + debtCollectorAddressLine2: "Tampa, FL 33614", + debtCollectorFax: "", + }, + "I.C. Systems, Inc.": { + debtCollectorName: "I.C. Systems, Inc.", + debtCollectorAddressLine1: "PO Box 64444", + debtCollectorAddressLine2: "St. Paul, MN 55127-0557", + debtCollectorFax: "", + }, + "Jefferson Capital Systems": { + debtCollectorName: "Jefferson Capital Systems", + debtCollectorAddressLine1: "16 McLeland Rd", + debtCollectorAddressLine2: "Saint Cloud, MN 56303", + debtCollectorFax: "", + }, + "Kansas Counselors Inc.": { + debtCollectorName: "Kansas Counselors Inc.", + debtCollectorAddressLine1: "8725 Rosehill Rd., Ste. 415", + debtCollectorAddressLine2: "Lenexa, KS 66215", + debtCollectorFax: "", + }, + "Law Offices MBA": { + debtCollectorName: "Law Offices MBA", + debtCollectorAddressLine1: "1313 North Travis Street, Suite 103", + debtCollectorAddressLine2: "Sherman, TX", + debtCollectorFax: "", + }, + "LVNV Funding, LLC": { + debtCollectorName: "LVNV Funding, LLC", + debtCollectorAddressLine1: "55 Beattie Place", + debtCollectorAddressLine2: "Greenville, SC 29601", + debtCollectorFax: "", + }, + "Mercantile Adjustment Bureau, LLC": { + debtCollectorName: "Mercantile Adjustment Bureau, LLC", + debtCollectorAddressLine1: "165 Lawrence Bell Drive, Suite 100", + debtCollectorAddressLine2: "Williamsville, NY 14221", + debtCollectorFax: "", + }, + "Midland Credit Management": { + debtCollectorName: "Midland Credit Management", + debtCollectorAddressLine1: "320 E Big Beaver Rd Ste 300", + debtCollectorAddressLine2: "Troy, MI 48083", + debtCollectorAddress2Line1: "350 Camino De La Reina, Ste. 300", + debtCollectorAddress2Line2: "San Diego, CA 92108", + debtCollectorFax: "", + }, + "National Credit Management": { + debtCollectorName: "National Credit Management", + debtCollectorAddressLine1: "PO Box 32900", + debtCollectorAddressLine2: "Saint Louis, MO 63132", + debtCollectorFax: "", + }, + "National Credit Adjusters": { + debtCollectorName: "National Credit Adjusters", + debtCollectorAddressLine1: "PO Box 3023", + debtCollectorAddressLine2: "Hutchinson, KS 67504", + debtCollectorFax: "", + }, + "NCB Management Service": { + debtCollectorName: "NCB Management Service", + debtCollectorAddressLine1: "1 Allied Dr.", + debtCollectorAddressLine2: "Trevose, PA 19053", + debtCollectorFax: "", + }, + "Oliphant USA LLC": { + debtCollectorName: "Oliphant USA LLC", + debtCollectorAddressLine1: "1800 2nd St, Suite 603", + debtCollectorAddressLine2: "Sarasota, FL 34236", + debtCollectorFax: "", + }, + "ONLINE Information Services, Inc.": { + debtCollectorName: "ONLINE Information Services, Inc.", + debtCollectorAddressLine1: "PO Box 1489", + debtCollectorAddressLine2: "Winterville, NC, 28590", + debtCollectorFax: "", + }, + "Payliance": { + debtCollectorName: "Payliance", + debtCollectorAddressLine1: "2 Easton Oval Ste 310", + debtCollectorAddressLine2: "Columbus, OH 43219-6193", + debtCollectorFax: "", + }, + "Plaza Services": { + debtCollectorName: "Plaza Services", + debtCollectorAddressLine1: "110 Hammond Drive", + debtCollectorAddressLine2: "Atlanta, GA 30328", + debtCollectorFax: "", + }, + "Portfolio Recovery Associates": { + debtCollectorName: "Portfolio Recovery Associates", + debtCollectorAddressLine1: "120 Corporate Blvd", + debtCollectorAddressLine2: "Norfolk, VA 23502", + debtCollectorFax: "", + }, + "ProCollect, Inc": { + debtCollectorName: "ProCollect, Inc", + debtCollectorAddressLine1: "12170 N. Abrams Rd., Suite 100", + debtCollectorAddressLine2: "Dallas, Texas 75243", + debtCollectorFax: "", + }, + "RC/Resurgent Receivables": { + debtCollectorName: "RC/Resurgent Receivables", + debtCollectorAddressLine1: "P.O. Box 10497", + debtCollectorAddressLine2: "Greenville, SC 29603", + debtCollectorFax: "Emailed", + }, + "RSH & Associates LLC": { + debtCollectorName: "RSH & Associates LLC", + debtCollectorAddressLine1: "PO Box 14515", + debtCollectorAddressLine2: "Lenexa, KS 66285", + debtCollectorFax: "", + }, + "SARMA Collections, Inc": { + debtCollectorName: "SARMA Collections, Inc", + debtCollectorAddressLine1: "555 East Ramsey", + debtCollectorAddressLine2: "San Antonio, TX 78216", + debtCollectorFax: "", + }, + "Structured Settlement": { + debtCollectorName: "Structured Settlement", + debtCollectorAddressLine1: "2764 N Green Valley Parkway", + debtCollectorAddressLine2: "Henderson, NV 89014", + debtCollectorFax: "", + }, + "Wakefield and Associates": { + debtCollectorName: "Wakefield and Associates", + debtCollectorAddressLine1: "10800 E. Bethany Dr., Ste. 450", + debtCollectorAddressLine2: "Aurora, CO 80044", + debtCollectorFax: "", + }, + // Add more debt collectors as needed +}; diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..e9c48d4 --- /dev/null +++ b/public/index.html @@ -0,0 +1,610 @@ + + + + Client Data Form + + + + + + + + + + +
+
+

Client Data Form

+
+ + + + + + + + + + +
+ + +
+ + +
+
+ + +
+ +
+ + +
+ + +
+
+ +

Client Contact Information

+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + + + +
+
+
+
+ + + + + +
+
+ + +
+
+ + + + + +
+
+
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+

Co-Client/Spouse Information

+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + + + +
+
+
+
+ + + + + +
+
+ + +
+
+ + + + +
+
+
+
+ + + + + +
+
+ + + + +
+
+ + + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+ +
+ + +
+
+
+

Case Information

+
+ +
+
+ + +
+
+ + +
+
+ + + +
+
+
+
+ + +
+
+ + +
+
+ + + +
+
+
+
+ + + +
+
+ + + +
+ +
+ + +
+
+
+
+ + +
+
+ + +
+
+ + + + + +
+
+
+
+ + + +
+
+ + +
+
+ + +
+
+
+
+ + +
+ + +
+ + + + + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+

Settlement Terms

+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +

Fee and Payment Information

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + +
+ +

Generate Documents

+
+
+ +
+
+ + + +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +

General Documents

+
+
+ +
+ +
+
+ +
+
+ +
+
+
+
+ + + +
+
+
+

FDCPA Letters

+
+
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+ +
+
+

Letters

+
+ +
+
+ + + +
+
+ +
+
+ +
+
+ +
+

Discovery Responses

+
+
+ + + +
+
+ + +
+
+ + + +
+
+ + +
+ + + + + + + \ No newline at end of file diff --git a/public/judgeInformation.js b/public/judgeInformation.js new file mode 100644 index 0000000..9a35f82 --- /dev/null +++ b/public/judgeInformation.js @@ -0,0 +1,116 @@ +// [NOTE] moved all the constants here to make it easier to update +export const judgeInfo = { + // 7th Circuit Court of Clay County, MO + 'Alexander': {'division': '1', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'role': 'Presiding Judge', 'modality': 'Modality: In-person', 'firstName': 'Shane', 'judicialAssistant': 'Jodi M. Fechtelkotter', 'phone': '816-407-3910', 'email': 'div1@circuit7.net'}, + 'Flook': {'division': '2', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Timothy', 'judicialAssistant': 'Lillian Blakely', 'phone': '816-407-3920', 'email': 'div2@circuit7.net'}, + "O'Hara": {'division': '3', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Alisha', 'judicialAssistant': 'Savannah Giles', 'phone': '816-407-3930', 'email': 'div3@circuit7.net'}, + 'Chamberlain': {'division': '4', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'David', 'judicialAssistant': 'Jacque M. Baker', 'phone': '816-407-3940', 'email': 'div4@circuit7.net'}, + 'McConkey': {'division': '5', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Calan', 'judicialAssistant': 'Michele McCrackin', 'phone': '816-407-3950', 'email': 'div5@circuit7.net'}, + 'Krauser': {'division': '6', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Karen', 'judicialAssistant': 'Karen Swing', 'phone': '816-407-3960', 'email': 'div6@circuit7.net'}, + 'Angles': {'division': '7', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Louis', 'judicialAssistant': 'Nancy A. Tootle', 'phone': '816-407-3970', 'email': 'div7@circuit7.net'}, + 'Roberts (Clay)': {'division': '8', 'designation': 'Commissioner', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Sherrill', 'judicialAssistant': 'Laura Dobbins', 'phone': '816-407-3980', 'email': 'div8@circuit7.net'}, + 'White': {'division': '9', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Daniel', 'judicialAssistant': 'Audrey E. Saulsbury', 'phone': '816-407-3990', 'email': 'div9@circuit7.net'}, // Daniel L. White +// ...existing code... + + 'White': {'division': '9', 'designation': 'Circuit', 'county': 'Clay', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Daniel'}, // Daniel L. White + + + // 16th Circuit Court of Jackson County, MO + 'Castle': {'division': '1', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Sarah', 'location': ", at Kansas City"}, // Sarah A. Castle + 'Garrett': {'division': '2', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person/WebEx(by permission); Link: https://mocourts.webex.com/meet/div2chambers', 'firstName': 'Kenneth', 'location': ", at Independence"}, // Kenneth R. Garrett III + 'Zhang': {'division': '3', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person/WebEx; Link: https://mocourts.webex.com/meet/div3chambers', 'firstName': 'Jerri', 'location': ", at Kansas City"}, // Jerri J. Zhang + 'Del Muro': {'division': '4', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Justine', 'location': ", at Kansas City"}, // Justine E. Del Muro - Retired + 'Edwards': {'division': '4', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person, 5th Floor', 'firstName': 'Justine', 'location': ", at Kansas City"}, // Patrick C. Edwards + 'Kanatzar': {'division': '5', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'James', 'location': ", at Independence"}, // James F. Kanatzar + 'Youngs': {'division': '6', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'J. Dale', 'location': ", at Kansas City"}, // J. Dale Youngs + 'Burnett': {'division': '7', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'S. Margene', 'location': ", at Kansas City"}, // S. Margene Burnett + 'Round': {'division': '8', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Bryan', 'location': ", at Kansas City"}, // Bryan E. Round + 'Fahnestock': {'division': '9', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Joel', 'location': ", at Kansas City"}, // Joel P. Fahnestock + 'Seaton': {'division': '10', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Marty', 'location': ", at Independence"}, // Marty W. Seaton + 'Caine': {'division': '11', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Adam', 'location': ", at Kansas City"}, // Adam L. Caine + 'Phillips': {'division': '12', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jennifer', 'location': ", at Independence"}, // Jennifer M. Phillips + 'McKenzie': {'division': '13', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Charles', 'location': ", at Kansas City"}, // Charles H. McKenzie + 'Torrence': {'division': '14', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'John', 'location': ", at Kansas City"}, // John M. Torrence + 'Otto': {'division': '15', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jalilah', 'location': ", at Kansas City"}, // Jalilah Otto + 'Agnelly': {'division': '16', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person/WebEx; Link: https://mocourts.webex.com/wbxmjs/joinservice/sites/mocourts/meeting/download/39f6da24c1b811c3ae5c394cde1b4dbf', 'firstName': 'Jessica', 'location': ", at Independence"}, // Jessica Agnelly + 'Atkins': {'division': '17', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Cory', 'location': ", at Independence"}, // Cory L. Atkins + 'Harrell': {'division': '18', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Kevin', 'location': ", at Kansas City"}, // Kevin D. Harrell + 'Styles, Jr.': {'division': '19', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Mark', 'location': ", at Kansas City"}, // Mark A. Styles, Jr. + 'DeGraeve': {'division': '19', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Amy', 'location': ", at Kansas City"}, // Amy B. DeGraeve + 'Tillema': {'division': '19', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Brian', 'location': ", at Kansas City"}, // Brian A. Tillema + 'Rothermich': {'division': '25', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Abbie', 'location': ", at Kansas City"}, // Abbie Rothermich + 'Willingham': {'division': '26', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'R. Travis', 'location': ", at Kansas City"}, // R. Travis Willingham used to be WebEx; Link: https://mocourts.webex.com/webappng/sites/mocourts/dashboard/pmr/rtravis.willingham + 'Bird-Riley': {'division': '27', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person/WebEx; Link: https://mocourts.webex.com/webappng/sites/mocourts/dashboard/pmr/div27courtroom', 'firstName': 'Kea', 'location': ", at Kansas City"}, // Kea S. Bird-Riley + 'Keal': {'division': '28', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jeffrey'}, // Jeffrey C. Keal + 'Rodecap': {'division': '29', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person/WebEx; Link: https://mocourts.webex.com/wbxmjs/joinservice/sites/mocourts/meeting/download/edd36da37a8642b477a33ab4e5b0be16', 'firstName': 'Janette', 'location': ", at Kansas City"}, // Janette K. Rodecap + 'Barrett': {'division': '30', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Lauren'}, // Lauren D. Barrett + 'Weir': {'division': '31', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person/Teleconference/WebEx; Access Code: 6536345; Phone: 877-810-9415; Link: https://mocourts.webex.com/webappng/sites/mocourts/dashboard/pmr/mary.weir', 'firstName': 'Mary', 'location': ", at Kansas City"}, // Mary F. Weir + 'Stockdale': {'division': '32', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person/Teleconference; Access Code: 1462421102; Phone: 1-408-418-9388', 'firstName': 'Kyndra', 'location': ", at Independence"}, // Kyndra J. Stockdale + 'Bushur': {'division': '33', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person/Teleconference; Access Code: 961-462-657; Phone: 1-408-418-9388', 'firstName': 'Jeffrey', 'location': ", at Independence"}, // Jeffrey Bushur + 'Long': {'division': '34', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Susan'}, // Susan E. Long + 'Alemifar': {'division': '44', 'designation': 'Circuit', 'county': 'Jackson', 'state': 'Missouri', 'divisionDesignation': 'Family Court Division', 'modality': 'Modality: In-person, Family Justice Center, 625 East 26th Street – 2nd Floor, Kansas City, Missouri 64108', 'firstName': 'Nancy'}, // Susan E. Long + + + // 17th Circuit Court of Cass County, MO + 'Lett': {'division': '1', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Stacey'}, // Stacey Lett + 'Wagner': {'division': '2', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Michael'}, // R. Michael Wagner + 'Eftink': {'division': '3', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jim'}, // Jim Eftink + 'Spencer': {'division': '4', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Derek'}, // Derek Spencer + 'Cox': {'division': '5', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jeff'}, // Jeff Cox + 'Howell': {'division': '6', 'designation': 'Circuit', 'county': 'Cass', 'state': 'Missouri', 'divisionDesignation': 'Associate Circuit Division', 'modality': 'Modality: In-person', 'firstName': 'Jason'}, // Jason Howell + + + // 1st Judicial District Court of Kansas - Leavenworth County, KS & Atchison County, KS + 'Kuckelman': {'division': '1', 'designation': 'District', 'county': 'Leavenworth', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-684-0709', 'firstName': 'Gerald'}, // Gerald Kuckelman + 'Sonntag': {'division': '2', 'designation': 'District', 'county': 'Atchison', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-804-6060', 'firstName': 'Geoffrey'}, // Geoffrey Sonntag + 'Wiley': {'division': '3', 'designation': 'District', 'county': 'Leavenworth', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-684-0714', 'firstName': 'Dan'}, // Dan Wiley + 'Fresh': {'division': '4', 'designation': 'District', 'county': 'Atchison', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-804-6060', 'firstName': 'John'}, // John Fresh + 'Lowdon': {'division': '5', 'designation': 'District', 'county': 'Leavenworth', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-684-0408', 'firstName': 'Joan'}, // Joan Lowdon + 'Bryant': {'division': '6', 'designation': 'District', 'county': 'Leavenworth', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'phone': '913-684-0787', 'firstName': 'John'}, // John Bryant + 'Lee': {'division': '7', 'designation': 'District', 'county': 'Leavenworth', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'phone': '913-684-0700', 'firstName': 'Clinton'}, // Clinton Lee + + + // 4th Judicial District Court of Franklin County, KS + 'Wine': {'division': '1', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Taylor'}, // Taylor J. Wine (D01) + 'Godderz': {'division': ' ', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Eric'}, // Eric W. Godderz (division unknown — please confirm) + 'Witteman': {'division': '2', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Douglas'}, // Douglas P. Witteman (D02) + 'Braun': {'division': 'M2', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'David'}, // David M. Braun (M02) + 'Breshears': {'division': 'M1', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Lori'}, // Lori D. Breshears (M01) + 'Reynolds': {'division': 'M3', 'designation': 'District', 'county': 'Franklin', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: Zoom Meeting ID # 893 0931 4311', 'firstName': 'Kara'}, // Kara L. Reynolds (M03) + + // 6th Judicial District Court of Miami County, KS + 'Harth': {'division': '1', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person YouTube: Division 01 YouTube: https://www.youtube.com/channel/UCxpfA49UwnLHmcr3u8j1Lag?view_as=subscriber', 'firstName': 'Amy L.'}, // Amy L. Harth + 'Purvis': {'division': '2', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: Zoom: https://app.zconnect.io/r/LJ011R YouTube: https://www.youtube.com/channel/UCwuW1B45GpHcl55GQaREVjw', 'firstName': 'Andrea E.'}, // Andrea E. Purvis + 'Ward': {'division': '3', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person YouTube: https://www.youtube.com/channel/UCftsxc51qGIkxLB-FlGiW7A', 'firstName': 'Mark A.'}, // Mark A. Ward + 'Stewart': {'division': '4', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Sarah E.'}, // Sarah E. Stewart + 'Fisher': {'division': '5', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person, Courtroom A', 'firstName': 'Richard M.'}, // Richard M. Fisher, Jr. + 'Sweeney-Reeder': {'division': '6', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: Zoom: https://app.zconnect.io/r/EVUKTM', 'firstName': 'Elizabeth H.'}, // Elizabeth H. Sweeney-Reeder + 'Cole': {'division': 'M1', 'designation': 'District', 'county': 'Miami', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: Zoom: https://app.zconnect.io/r/APZV90 ; YouTube: https://www.youtube.com/channel/UCjLtEJ932l54_Of-izPpihA', 'firstName': 'Rhonda E.'}, // Rhonda E. Cole + + + // 10th Judicial Circuit Court of Johnson County, KS + 'McEntee': {'division': 'M4', 'designation': 'District', 'county': 'Johnson', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person/Zoom; Meeting ID: 161 3588 0397, Phone: 1-346-248-7799 or 1-312-626-6799', 'firstName': 'John'}, // John McEntee + 'Mason': {'division': '4', 'designation': 'District', 'county': 'Johnson', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Rhonda K.'}, // Rhonda K. Mason + 'Vano': {'division': '2', 'designation': 'District', 'county': 'Johnson', 'state': 'Kansas', 'divisionDesignation': 'Civil Department', 'modality': 'Zoom; Meeting ID: 913 715 3760, URL: https://us02web.zoom.us/j/9137153760, Phone: 1-346-248-7799 or 1-312-626-6799', 'firstName': 'James F.'}, // James F. Vano + + // 29th Judicial District Court of Wyandotte County, KS +'Burns': {'division': '1', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Robert'}, // Robert Burns +'Alvey': {'division': '2', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Constance'}, // Constance Alvey +'Dupree': {'division': '3', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Timothy'}, // Timothy Dupree +'Russell': {'division': '4', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Michael'}, // Michael Russell +'Roberts': {'division': '5', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Aaron'}, // Aaron Roberts +'Klapper': {'division': '6', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Bill'}, // Bill Klapper +'Mahoney': {'division': '7', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'William'}, // William Mahoney +'Cahill': {'division': '8', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Daniel'}, // Daniel Cahill +'Myers': {'division': '9', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Jennifer'}, // Jennifer Myers +'Lynch': {'division': '10', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Kathleen'}, // Kathleen Lynch +'Alcaraz': {'division': '11', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Candace M.'}, // Candace M. Alcaraz +'Martinez': {'division': '12', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': 'Limited Actions Division', 'modality': 'Modality: In-person', 'firstName': 'Tony'}, // Tony Martinez +'Henry': {'division': '13', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Renee'}, // Renee Henry +'Wilson': {'division': '14', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Jane'}, // Jane Wilson +'York': {'division': '15', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Delia'}, // Delia York +'Mikesic': {'division': '16', 'designation': 'District', 'county': 'Wyandotte', 'state': 'Kansas', 'divisionDesignation': ' ', 'modality': 'Modality: In-person', 'firstName': 'Courtney'}, // Courtney Mikesic + + + + }; diff --git a/public/linkGenerator.html b/public/linkGenerator.html new file mode 100644 index 0000000..c49c6ec --- /dev/null +++ b/public/linkGenerator.html @@ -0,0 +1,58 @@ + + + + Case Link Generator + + + +

Case Link Generator

+ + + + + + + + + + + + + + + + diff --git a/public/linkGenerator.js b/public/linkGenerator.js new file mode 100644 index 0000000..017b9e7 --- /dev/null +++ b/public/linkGenerator.js @@ -0,0 +1,27 @@ +export function generateLink(caseNumberInput) { + const caseNumber = caseNumberInput.trim().toUpperCase(); + + if (caseNumber) { + const caseYear = caseNumber.substring(0, 2); + const caseType = caseNumber.substring(2, 4); + const caseRest = caseNumber.substring(4); + + let circuitId; + if (caseType === "CY") { + circuitId = "SMPDB0001_CT07"; // Clay County (7th Circuit) + } else if (caseType === "CA") { + circuitId = "CT17"; // Cass County (17th Circuit) + } else if (caseType === "16") { + circuitId = "CT16"; // Jackson County (16th Circuit) + } else if (caseType === "AE") { + circuitId = "SMPDB0001_CT06"; // Platte County (6th Circuit) + } else { + alert('Invalid case type.'); + return; + } + + const link = `https://www.courts.mo.gov/cnet/cases/newHeader.do?inputVO.caseNumber=${caseYear}${caseType}${caseRest}&inputVO.courtId=${circuitId}`; + + return link; + } +} diff --git a/public/opposingCounselInfo.js b/public/opposingCounselInfo.js new file mode 100644 index 0000000..ea414b6 --- /dev/null +++ b/public/opposingCounselInfo.js @@ -0,0 +1,1695 @@ +// Opposing Counsel Information, Attorney Infomation, and Payment Information + +export const caseOpposingCounselInfo = { + + "Bailey Law Firm, L.L.C.": { + caseOCAddressLine1: "4610 Mexico Rd.", + caseOCAddressLine2: "St. Peters, MO 63376", + caseOCPhone: "636-397-4500", + caseOCFax: "(314) 328-5654", + caseOCEmail: "david@baileylawstl.com", + settlementPayee: "Bailey Law Firm", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Telephone Payments: 1-571-707-4464, includes a processing fee", + paymentOptions3: "Online Payments: https://baileylawstl.com/payments/, includes a processing fee", + + }, + "The Barton Law Group, LLC": { + caseOCAddressLine1: "17600 Chesterfield Airport Rd., Ste. 201", + caseOCAddressLine2: "Chesterfield, MO 63005", + caseOCPhone: "636-778-9520", + caseOCFax: "636-216-6004", + settlementPayee: "The Barton Law Group, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Barton, Hall & Schnieders, P.C.": { + caseOCAddressLine1: "P.O. Box 110", + caseOCAddressLine2: "Oak Grove, MO 64075", + caseOCPhone: "(816) 690-4111", + caseOCFax: "(816) 690-6526", + settlementPayee: "Barton, Hall & Schnieders, P.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + "Berman & Rabin, P.A.": { + caseOCAddressLine1: "15280 Metcalf Ave.", + caseOCAddressLine2: "Overland Park, KS 66223", + caseOCPhone: "913-649-1555", + caseOCEmail: "drabin@bermanrabin.com", + settlementPayee: "casePlaintiff", + paymentOptions1: `Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check`, + paymentOptions2: `Online Payments:\twww.paybr.com`, + paymentOptions3: `Telephone Payments:\t913-649-1555 or 913-777-7193`, + }, + "Bessine Walterbach, LLP": { + caseOCAddressLine1: "2900 NE 60th St., Suite 150", + caseOCAddressLine2: "Kansas City, MO 64119", + caseOCPhone: "816-601-1100", + caseOCFax: "816-601-1101", + caseOCEmail: "admin@bw-llp.com", + settlementPayee: "Bessine Walterbach, LLP", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Blitt and Gaines, P.C.": { + caseOCAddressLine1: "775 Corporate Woods Pkwy", + caseOCAddressLine2: "Vernon Hills, IL 60061", + caseOCPhone: "844-762-8216", + caseOCFax: "847-499-7599", + caseOCEmail: "pleadings2@blittandgaines.com", + settlementPayee: "casePlaintiff", + paymentOptions1: `Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check`, + paymentOptions2: `Online Payments:\twww.bgpayment.com`, + paymentOptions3: `Telephone Payments:\t888-920-0620`, + }, + "Burns, Burns, Walsh & Walsh, P.A.": { + caseOCAddressLine1: "P.O. Box 487", + caseOCAddressLine2: "Lyndon, KS 66451", + caseOCPhone: "888-528-3186", + caseOCFax: "785-828-3269", + caseOCEmail: "bbww@bbwwlaw.com", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + "BQ & Associates, P.C., L.L.O.": { + caseOCAddressLine1: "14211 Arbor St. Suite #100", + caseOCAddressLine2: "Omaha, NE 68144", + caseOCLocalAddressLine1: "9140 Ward Parkway, Ste. 200", + caseOCLocalAddressLine2: "Kansas City, MO 64114", + caseOCPhone: "(800) 887-4747", + caseOCFax: "(402) 554-0339", + caseOCEmail: "bqks@bqlaw.com", + settlementPayee: "BQ & Associates, P.C., L.L.O.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: `Online Payments:\tbqlaw.com`, + paymentOptions3: `Telephone Payments:\t402-554-4400`, +}, +"Butler & Associates, P.A.": { + caseOCAddressLine1: "5835 SW 29th Street, Ste. 101", + caseOCAddressLine2: "Topeka, KS 66614", + caseOCPhone: "(785) 267-6444", + caseOCFax: "(785) 267-7341", + caseOCEmail: "cnc@butlerlaw.com", + settlementPayee: "Butler & Associates, P.A.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: `Online Payments:\thttps://www.butlerlaw.com/payments/`, + paymentOptions3: `Telephone Payments:\t785-267-6444`, +}, + + "City of Kansas City, MO": { + caseOCAddressLine1: "P.O. Box 801751", + caseOCAddressLine2: "Kansas City, MO 64180-1751", + settlementPayee: "KCMO City Treasurer", + paymentOptions1: "Payments Accepted: \tOnline, Check, or In-Person", + paymentOptions2: "Online Payments: \tkcmo.gov/quicktax", + }, + + "Clay County Prosecuting Attorney": { + caseOCAddressLine1: "11 South Water Street, Suite 200", + caseOCAddressLine2: "Liberty, MO 64068", + caseOCPhone: "816-407-3760", + caseOCFax: "816-407-3763", + caseOCEmail: "prosecutingattorney@claycountymo.gov", + settlementPayee: "Clay County Circuit Court", + paymentOptions1: "Payments Accepted:\tCash, Money Order, and Credit or Debit Card", + paymentOptions2: "Telephone Payments:\t816-407-3870 (Credit/Debit Card)", + paymentOptions3: "In-Person Payments:\tMonday-Friday except Wednesdays", + paymentOptions4: "Online Payments:\thttps://www.courts.mo.gov/pbw/search.do", + paymentOptions5: "Note: Personal checks not accepted, Only Attorney Trust Account Checks", + }, + + "Credit Management Services, Inc.": { + caseOCAddressLine1: "P.O. Box 1512", + caseOCAddressLine2: "Grand Island, NE 68802", + caseOCPhone: "308-398-3801", + caseOCFax: "308-384-5617", + caseOCEmail: "services@credit-mgmt.com", + settlementPayee: "Credit Management Services, Inc.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, Or Cashier’s Check", + paymentOptions2: "", + }, + "Couch Lambert, LLC": { + caseOCAddressLine1: "3501 North Causeway Blvd., Ste 800", + caseOCAddressLine2: "Metairie, LA 70002", + caseOCPhone: "504-838-7747", + caseOCFax: "", + caseOCEmail: "brock.rowatt@gulfsouthlegal.com", + settlementPayee: "Couch Lambert, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\twww.paycouch.com", + }, + "Evans and Dixon LLC": { + caseOCAddressLine1: "1100 Main Street, Suite 2000", + caseOCAddressLine2: "Kansas City, Missouri 64105", + caseOCPhone: "816-472-4600", + caseOCFax: "816-472-4013", + settlementPayee: "Evans and Dixon LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\thttps://www.evans-dixon.com/make-a-payment.aspx", + }, + "Evans & Mullinix, P.A.": { + caseOCAddressLine1: "7225 Renner Road, Suite 200", + caseOCAddressLine2: "Shawnee, KS 66217", + settlementPayee: "Nebraska Furniture Mart", + paymentOptions1: "Payments Accepted:\tCashier’s Check, Money Order, Bank Bill Pay, Debit by Phone", + paymentOptions2: "Telephone payments:\tAmanda N. Ludlum; direct line 913-890-7048", + paymentOptions3: "Online payments:\thttps://emlawkc.payweb360.com/login", + paymentOptions4: "NOTE:\t\t\tFile Number and SSN required for online payments", + }, + "Gamache & Myers, P.C.": { + caseOCAddressLine1: "1000 Camera Ave, Suite A", + caseOCAddressLine2: "Crestwood (St. Louis), MO 63126", + settlementPayee: "Gamache & Myers, P.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: `Online Payments:\tgmezpay.com`, + paymentOptions3: `Telephone Payments:\t1-800-404-0220`, + }, + "Heavner, Beyers & Milhar, LLC": { + caseOCAddressLine1: "P.O. Box 740", + caseOCAddressLine2: "Decatur, IL 62525", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\thttps://www.hsbattys.com/ ", + paymentOptions3: "Telephone payments:\t(217) 422-1719 Ext. # 6010", + }, + "Office of the City Attorney": { + caseOCAddressLine1: "1900 City Hall - 414 E. 12th Street", + caseOCAddressLine2: "Kansas City, Missouri 64106", + caseOCPhone: "816-513-3105", + caseOCFax: "816-513-3198", + caseOCEmail: "julie.sims@kcmo.org", + settlementPayee: "Office of the City Attorney", + paymentOptions1: "Payments Accepted:\tPersonal Check, Online, or In-Person", + paymentOptions2: "Online Payments:\tkcmo.gov/quicktax", + }, + "Kahrs Law Offices, P.A.": { + caseOCAddressLine1: "P.O. Box 780487", + caseOCAddressLine2: "Wichita, KS 67278", + caseOCPhone: "316-269-4343", + caseOCFax: "316-265-1206", + caseOCEmail: "Jill@kahrslaw.com", + settlementPayee: "Kahrs Law Offices, P.A.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Check by Phone:\t316-269-4343 and press option 1 after the automated message", + paymentOptions3: "Online Payments:\thttps://kahrslaw.com/payments.asp", +}, + "Klenda Austerman LLC": { + caseOCAddressLine1: "301 N. Main, 1600 Epic Center", + caseOCAddressLine2: "Wichita, KS 67202-4816", + caseOCPhone: "316-290-4518", + caseOCFax: "316-267-0315", + caseOCEmail: "chelm@klendalaw.com", + settlementPayee: "Klenda Austerman LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Kramer & Frank, PC": { + caseOCAddressLine1: "11960 Westline Industrial Dr., Suite 180", + caseOCAddressLine2: "St. Louis, MO 63146", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\thttps://www.kfpay.com/", + paymentOptions3: "Telephone payments:\t(314) 991-1835 ext. 6126", + }, + "Law Office of Amy E. Elliott": { + caseOCAddressLine1: "P.O. Box 4784", + caseOCAddressLine2: "Overland Park, KS 66204-0784", + caseOCPhone: "913-314-9073", + caseOCFax: "866-667-3949", + caseOCEmail: "atnyelliottesg@gmail.com", + settlementPayee: "Law Office of Amy E. Elliott", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + "The Law Office of Phillip M. Murphy II": { + caseOCAddressLine1: "4717 Grand Ave., Ste. 300", + caseOCAddressLine2: "Kansas City, MO 64112", + caseOCPhone: "(913) 661-2900", + caseOCEmail: "phillip@phillipmurphylaw.com", + settlementPayee: "The Law Office of Phillip M. Murphy II", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + "Mandarich Law Group, LLP": { + caseOCAddressLine1: "PO Box 109032", + caseOCAddressLine2: "Chicago, IL 60610", + settlementPayee: "Mandarich Law Group, LLP", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\thttps://mandarichlaw.com/payment-options/", + paymentOptions3: "Telephone payments:\t(877) 285-4918", + }, + "Merrick, Baker & Strauss, P.C.": { + caseOCAddressLine1: "1044 Main Street, Suite 500", + caseOCAddressLine2: "Kansas City, MO 64105", + caseOCPhone: "816-221-8855", + settlementPayee: "Merrick, Baker & Strauss, P.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Midland Credit Management, Inc.": { + caseOCAddressLine1: "P.O. Box 2039", + caseOCAddressLine2: "Warren, MI 48090-2039", + caseOCPhone: "866-300-8750", + caseOCFax: "877-627-7381", + caseOCEmail: "kansasfax@mcmcg.com", + settlementPayee: "Midland Credit Management, Inc.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Milby Law Offices, P.A.": { + caseOCAddressLine1: "P.O. Box 1030", + caseOCAddressLine2: "Wichita KS 67201", + settlementPayee: "Milby Law Offices, P.A.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online Payments:\tNot provided", + }, + "Morgan & Associates, PC": { + caseOCAddressLine1: "2601 NW Expressway, Ste. 205", + caseOCAddressLine2: "Oklahoma City, OK 73112-7229", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal check, money order, cashier’s check", + paymentOptions2: "Online payments:\tPaymorganlaw.com", + paymentOptions3: "Telephone payments:\t(405) 425-0700", + }, + "The Olsen Law Firm, LLC": { + caseOCAddressLine1: "118 N. Conistor Ln., Ste. B #290", + caseOCAddressLine2: "Liberty, MO 64068", + caseOCPhone: "(816) 521-8811", + caseOCFax: "(816) 278-9493", + caseOCEmail: "jill@olsenlawkc.com", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Osborn Jacobs & Hartung, PLC": { + caseOCAddressLine1: "974 73rd St., Ste. 20", + caseOCAddressLine2: "West Des Moines, IA 50265", + caseOCPhone: "800-617-7593", + caseOCFax: "515-223-6011", + caseOCEmail: "missouri@midwestlawgroup.com", + settlementPayee: "Osborn Jacobs & Hartung, PLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\thttps://www.midwestlawgroup.com/payment-center.asp", + paymentOptions3: "Telephone payments:\t(800) 617-7593", + }, + + "Pappas Hayden Westberg & Jackson PC": { + caseOCAddressLine1: "7500 West 110th Street, Suite 110", + caseOCAddressLine2: "Overland Park, KS 66210", + caseOCPhone: "913-469-2958, Option #5", + caseOCFax: "913-312-3137", + caseOCEmail: "docket@phwjlaw.com", + settlementPayee: "PHWJ PC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online Payments:\thttps://cmplaw.stratuspayments.net", + paymentOptions3: "Automated Phone:\t913-491-4050", + paymentOptions4: "Note:\tPayments made by any method other than wire transfer, cashier’s check, or money", + paymentOptions5: "order will be treated as unsecured and held for 10 days to allow the payment to clear.", + }, + "Pittenger Law Group, LLC": { + caseOCAddressLine1: "PO Box 7410", + caseOCAddressLine2: "Overland Park, KS 66207", + settlementPayee: "Pittenger Law Group, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Telephone payments:\t913-951-8375", + paymentOptions3: "Online:\thttps://pittengerlawgroup.stratuspayments.net/", + }, + "Portfolio Recovery Associates, LLC": { + caseOCAddressLine1: "PO Box 12914", + caseOCAddressLine2: "Norfolk, VA 23502", + settlementPayee: "Portfolio Recovery Associates, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Phone:\t(866) 428-8102", + paymentOptions3: "Online:\thttps://www.PRAPAY.com", + }, + + "Richard A. Abrams": { + caseOCAddressLine1: "9666 Olive Blvd., Suite 690", + caseOCAddressLine2: "St. Louis, MO 63132", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + "Wakefield & Associates": { + caseOCAddressLine1: "PO Box 1566", + caseOCAddressLine2: "Jefferson City, MO 65102", + settlementPayee: "Wakefield & Associates, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online Payments:\twww.wakefieldpaymentsolutions.com", + }, + "Simpson, Logback, Lynch, Norris, P.A.": { + caseOCAddressLine1: "Commerce Plaza II", + caseOCAddressLine2: "7400 W 110th Street, Suite 600", + caseOCPhone: "(913) 342-3613", + caseOCFax: "(913) 342-0348", + caseOCEmail: "tnorris@slln.com", + settlementPayee: "Simpson, Logback, Lynch, Norris, P.A.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, +"SouthLaw, P.C.": { + caseOCAddressLine1: "13160 Foster, Suite 100", + caseOCAddressLine2: "Overland Park, KS 66213-2660", + caseOCPhone: "1-877-730-8978", + caseOCFax: "", + caseOCEmail: "", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Phone Payments:\t1-877-730-8978", + paymentOptions3: "Mailed Payments:\tInclude File number in the memo with Defendant’s name", + }, + "Sher & Shabsin, P.C.": { + caseOCAddressLine1: "1 Campbell Plaza, Suite 1 A North", + caseOCAddressLine2: "St. Louis, Missouri 63139", + caseOCPhone: "(314) 644-5200", + caseOCFax: "(314) 644-5201", + caseOCEmail: "jsoeder@sherandshabsin.com", + settlementPayee: "Sher & Shabsin, P.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Phone Payments:\t314-644-5200", + paymentOptions3: "Online Payments:\twww.sherandshabsin.com", +}, + "Withrow & Brunson, PLLC": { + caseOCAddressLine1: "PO Box 17248", + caseOCAddressLine2: "Little Rock, AR 72222", + settlementPayee: "Withrow & Brunson, PLLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Telephone Payments: 501-227-2000", + paymentOptions3: "Online Payments: https://withrowbrunson.stratuspayments.net/", + }, + "Zimmerman & Zimmerman, P.A.": { + caseOCAddressLine1: "909 SE Quincy", + caseOCAddressLine2: "Topeka, KS 66612", + caseOCPhone: "785-357-0021", + caseOCFax: "785-357-1548", + caseOCEmail: "payzimmerman.com", + settlementPayee: "Zimmerman & Zimmerman, P.A.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + + "Law Office of Karen Nations": { + caseOCAddressLine1: "P.O. Box 13063", + caseOCAddressLine2: "Overland Park, Kansas 66282", + paymentOptions1: "Payments Accepted:\tMoney Order or Cashier’s Check", + paymentOptions2: "ACH Payments:\tPay with Credit/Debit Card via Authorization Form", + settlementPayee: "Karen Nations, Attorney at Law", + }, + // to finsih + + + + + + "Couch Lambert, LLC": { + caseOCAddressLine1: "3501 North Causeway Blvd., Suite 800", + caseOCAddressLine2: "Metairie LA 70002", + settlementPayee: "Couch Lambert, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\twww.paycouch.com", + + }, + + + "Faber and Brand L.L.C.": { + caseOCAddressLine1: "PO Box 10110", + caseOCAddressLine2: "Columbia, MO 65205-4000", + settlementPayee: "Faber and Brand L.L.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Online payments:\twww.payfandb.com", + }, + + "Millsap & Singer, LLC": { + caseOCAddressLine1: "PO Box ", + caseOCAddressLine2: "AnyTown, USA 12345", + settlementPayee: "Millsap & Singer, LLC", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + }, + + + "Werring Law, LLC": { + caseOCAddressLine1: "110 N. 5th Street", + caseOCAddressLine2: "Atchison, Kansas 66002", + settlementPayee: "Werring Law, LLC", + paymentOptions1: "Payments Accepted: Personal Check, Money Order, or Cashier’s Check", + + }, + + "Zwicker & Associates, P.C.": { + caseOCAddressLine1: "PO Box 12570", + caseOCAddressLine2: "Overland Park, KS 66282", + settlementPayee: "casePlaintiff", + paymentOptions1: "Payments Accepted: Personal Check, Money Order, or Cashier’s Check", + paymentOptions2: "Telephone payments:\t800-370-2251", + paymentOptions3: "Online Payments:\thttps://www.zwickerpc.com/make-payment", + }, + "Edwin M. Soltz": { + caseOCAddressLine1: "11709 Roe Ave., Ste. D155", + caseOCAddressLine2: "Leawood, KS 66211", + settlementPayee: "Edwin M. Soltz, Attorney at Law", + paymentOptions1: "Payments Accepted: Personal Check, Money Order, or Cashier’s Check", + }, + "Schwartzkopf Law Office, P.C.": { + caseOCAddressLine1: "2600 Forum Blvd. Ste A", + caseOCAddressLine2: "Columbia, MO 65203", + caseOCPhone: "573-234-1214", + caseOCFax: "833-411-5738", + caseOCEmail: "Kim@SchwartzkopfLaw.com", + settlementPayee: "Schwartzkopf Law Office, P.C.", + paymentOptions1: "Payments Accepted:\tPersonal Check, Money Order, or Cashier’s Check", + + }, +}; + + +export const caseFilingAttorneyInfo = { + "Richard A. Abrams": { + caseAttyFirstName: "Rick", + caseAttyLastName: "Abrams", + caseAttybarMO: "26128", + caseAttyAddressLine1: "9666 Olive Blvd., Suite 690", + caseAttyAddressLine2: "St. Louis, MO 63132", + caseAttyPhone: "314-721-5156", + caseAttyFax: "314-725-9720", + caseAttyEmail: "rabramslaw@gmail.com", + caseAttyFirm: "Richard A. Abrams", + }, + "Michael Albani": { + caseAttyFirstName: "Michael", + caseAttyLastName: "Albani", + caseAttybarMO: "65740", + caseAttyAddressLine1: "P.O. Box 109032", + caseAttyAddressLine2: "Chicago, IL 60610", + caseAttyPhone: "877.285.4918", + caseAttyFax: "818.888.1260", + caseAttyEmail: "Missouri@mandarichlaw.com", + caseAttyEmail2: "michaela@mandarichlaw.com", + caseAttyFirm: "Mandarich Law Group, LLP", + }, + "Wesley Bain": { + caseAttyFirstName: "Wesley", + caseAttyLastName: "Bain", + caseAttybarMO: "75899", + caseAttyAddressLine1: "9140 Ward Parkway, Ste. 200", + caseAttyAddressLine2: "Kansas City, MO 64114", + caseAttyPhone: "(800) 887-4747", + caseAttyFax: "(402) 554-0339", + caseAttyEmail: "bqmo@bqlaw.com", + caseAttyFirm: "BQ & Associates, P.C., L.L.O.", + caseAttyRole: "Attorneys for Plaintiff" + }, + "Gary J. Barrett": { + caseAttyFirstName: "Gary", + caseAttyLastName: "Barrett", + caseAttybarMO: "58047", + caseAttyAddressLine1: "12410 Cantrell Rd., Suite 100", + caseAttyAddressLine2: "Little Rock, AR 72223", + caseAttyPhone: "501-227-2000", + caseAttyFax: "501-707-1214", + caseAttyEmail: "gbarrett@allenwithrow.com", + caseAttyFirm: "Withrow & Brunson, PLLC", + }, + "Ashley Barton": { + caseAttyFirstName: "Ashley", + caseAttyLastName: "Barton", + caseAttybarMO: "62744", + + caseAttyAddressLine1: "1900 City Hall - 414 E. 12th Street", + caseAttyAddressLine2: "Kansas City, Missouri 64106", + caseAttyPhone: "816-513-3105", + caseAttyFax: "816-513-3198", + caseAttyEmail: "ashley.barton@kcmo.org", + caseAttyEmail2: "", + caseAttyFirm: "Office of the City Attorney", + }, + + "Matthew D. Bessine": { + caseAttyFirstName: "Matthew", + caseAttyLastName: "Bessine", + caseAttybarMO: "54018", + caseAttyAddressLine1: "3000 NE Brooktree Lane, Suite 100", + caseAttyAddressLine2: "Kansas City MO 64119", + caseAttyPhone: "[816] 601-1100", + caseAttyFax: "[816] 601-1101", + caseAttyEmail: "admin@bw-llp.com", + caseAttyFirm: "Bessine Walterbach, LLP", + }, + "Adam K. Berman": { + caseAttyFirstName: "Adam", + caseAttyLastName: "Berman", + caseAttybarMO: "56909", + caseAttyAddressLine1: "3000 NE Brooktree Lane, Suite 100", + caseAttyAddressLine2: "Kansas City MO 64119", + caseAttyPhone: "[816] 601-1100", + caseAttyFax: "[816] 601-1101", + caseAttyEmail: "adam@bw-llp.com", + caseAttyFirm: "Bessine Walterbach, LLP", + }, + "Steven W. Brookreson, II": { + caseAttyFirstName: "Steven", + caseAttyLastName: "Brookreson", + caseAttybarKS: "28106", + caseAttyAddressLine1: "500 State Avenue Suite 360", + caseAttyAddressLine2: "Kansas City, Kansas 66101", + caseAttyPhone: "913-551-6730", + caseAttyFax: "913-551-6541", + caseAttyEmail: "steven.brookreson@usdoj.gov", + caseAttyEmail2: "", + caseAttyFirm: "Assistant United States Attorney, District of Kansas" + }, + + "Kirk Brumbaugh": { + caseAttyFirstName: "Kirk", + caseAttyLastName: "Brumbaugh", + caseAttybarKS: "29135", + caseAttyAddressLine1: "9140 Ward Parkway, Ste. 200", + caseAttyAddressLine2: "Kansas City, MO 64114", + caseAttyPhone: "(800) 887-4747", + caseAttyFax: "(402) 554-0339", + caseAttyEmail: "bqks@bqlaw.com", + caseAttyFirm: "BO & Associates, P.C., L.L.O." +}, + + "Christopher Edward Bruson": { + caseAttyFirstName: "Chris", + caseAttyLastName: "Bruson", + caseAttybarMO: "76081", + caseAttyAddressLine1: "12410 Cantrell Rd. Ste.100", + caseAttyAddressLine2: "Little Rock, AR 72202", + caseAttyPhone: "(501) 227-2000 ext 113", + caseAttyFax: "501-707-1214", + caseAttyEmail: "chris.brunson@withrowbrunson.law", + caseAttyFirm: "Withrow & Brunson, PLLC", + }, +"Jared L. Buchanan": { + caseAttyFirstName: "Jared", + caseAttyLastName: "Buchanan", + caseAttybarMO: "65810", + + caseAttyAddressLine1: "PO Box 10110", + caseAttyAddressLine2: "Columbia, MO 65205", + caseAttyPhone: "(888) 233-3141", + caseAttyFax: "(573) 442-1072", + caseAttyEmail: "FandBLegal@gmail.com", + caseAttyEmail2: "JYB@faberandbrand.com", + caseAttyFirm: "Faber & Brand, L.L.C.", + }, + "Patrick S. Butler": { + caseAttyFirstName: "Patrick", + caseAttyLastName: "Butler", + caseAttybarMO: "43040", + caseAttyAddressLine1: "974 - 73rd Street, Suite 20", + caseAttyAddressLine2: "West Des Moines, IA 50265", + caseAttyPhone: "800-617-7593", + caseAttyFax: "515-223-6011", + caseAttyEmail: "Missouri@midwestlawgroup.com", + caseAttyEmail2: "", + caseAttyFirm: "Abbott Osborn Jacobs PLC", + }, + "Raymond P. Bozarth": { + caseAttyFirstName: "Raymond", + caseAttyLastName: "Bozarth", + caseAttybarMO: "52666", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "nthayne@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Allan Cameron, IV": { + caseAttyFirstName: "Allan", + caseAttyLastName: "Cameron", + caseAttybarMO: "74022", + + caseAttyAddressLine1: "PO Box 10110", + caseAttyAddressLine2: "Columbia, MO 65205", + caseAttyPhone: "(888) 233-3141", + caseAttyFax: "(573) 442-1072", + caseAttyEmail: "FandBLegal@gmail.com", + caseAttyEmail2: "AllanCameron@faberandbrand.com", + caseAttyFirm: "Faber & Brand, L.L.C.", + }, + "David Eugene Caviness": { + caseAttyFirstName: "Dave", + caseAttyLastName: "Caviness", + caseAttybarMO: "43955", + caseAttyAddressLine1: "P.O. BOX 410949", + caseAttyAddressLine2: "KANSAS CITY, MO 64141", + caseAttyPhone: "(866) 300-8750", + caseAttyFax: "(866) 629-6496", + caseAttyEmail: "il_mo@mcmcg.com", + caseAttyEmail2: "IL_MissouriFax@mcmcg.com", + }, + "David D. Backer": { + caseAttyFirstName: "David", + caseAttyLastName: "Backer", + caseAttybarMO: "41685", + caseAttyAddressLine1: "P.O. BOX 410949", + caseAttyAddressLine2: "KANSAS CITY, MO 64141", + caseAttyPhone: "(866) 300-8750", + caseAttyFax: "(866) 629-6496", + caseAttyEmail: "il_mo@mcmcg.com", + caseAttyEmail2: "IL_MissouriFax@mcmcg.com", + }, + "David H. Bailey, Jr.": { + caseAttyFirstName: "David", + caseAttyLastName: "Bailey", + caseAttybarMO: "37799", + caseAttyAddressLine1: "4610 Mexico Rd.", + caseAttyAddressLine2: "St. Peters, MO 63376", + caseAttyPhone: "636-397-4500", + caseAttyFax: "(314) 328-5654", + caseAttyEmail: "david@baileylawstl.com", + caseAttyEmail2: "david@baileylawstl.com", + caseAttyFirm: "The Bailey Law Firm, LLC", + }, + "James L. Baker": { + caseAttyFirstName: "James", + caseAttyLastName: "Baker", + caseAttybarKS: "22420", + + caseAttyAddressLine1: "1044 Main Street, Suite 500", + caseAttyAddressLine2: "Kansas City, MO 64105", + caseAttyPhone: "816-221-8855", + caseAttyFax: "816-221-7886", + caseAttyEmail: "jimb@merrickbakerstrauss.com", + caseAttyFirm: "Merrick, Baker & Strauss, P.C." + }, + "Dennis J. Barton III": { + caseAttyFirstName: "Dennis", + caseAttyLastName: "Barton", + caseAttybarMO: "55176", + + caseAttyAddressLine1: "17600 Chesterfield Airport Rd., Ste. 201", + caseAttyAddressLine2: "Chesterfield, MO 63005", + caseAttyPhone: "636-778-9520", + caseAttyFax: "(636) 216-6004", + caseAttyEmail: "info@bartonlawllc.com", + caseAttyFirm: "The Barton Law Group, LLC", + }, + "Kyle Custer": { + caseAttyFirstName: "Kyle", + caseAttyLastName: "Custer", + + caseAttybarKS: "27312", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "kcuster@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Robert Choromanski": { + caseAttyFirstName: "Robert", + caseAttyLastName: "Choromanski", + caseAttybarMO: "57051", + caseAttyAddressLine1: "13160 Foster, Suite 100", + caseAttyAddressLine2: "Overland Park, KS 66213-2660", + caseAttyPhone: "(913) 663-7600", + caseAttyFax: "(913) 663-7899", + caseAttyEmail: "Robert.Choromanski@southlaw.com", + caseAttyFirm: "SouthLaw, P.C.", + + }, + "Christopher Durso": { + caseAttyFirstName: "Christopher", + caseAttyLastName: "Durso", + + caseAttybarMO: "61035", + caseAttyAddressLine1: "211 North Broadway Suite 2500", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "314-436-6757", + caseAttyFax: "314-436-2066", + caseAttyEmail: "cdurso@evans-dixon.com", + caseAttyFirm: "Evans and Dixon, LLC", + }, + "Max A. Eulert": { + caseAttyFirstName: "Max", + caseAttyLastName: "Eulert", + caseAttybarKS: "15687", + caseAttyAddressLine1: "707 North Second Street, Suite 306", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "(888) 920-0620 TTY: 711", + caseAttyFax: "(847) 499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "meulert@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + caseAttyRole: "Attorney for Plaintiff" + }, + "Kevin D. Evers": { + caseAttyFirstName: "Kevin", + caseAttyLastName: "Evers", + caseAttybarMO: "74922", + caseAttybarKS: "30542", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "kevers@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + "Amy E. Elliott": { + caseAttyFirstName: "Amy", + caseAttyLastName: "Elliott", + + caseAttybarKS: "20383", + caseAttyAddressLine1: "P.O. Box 4784", + caseAttyAddressLine2: "Overland Park, KS 66204-0784", + caseAttyPhone: "913-314-9073", + caseAttyFax: "866-667-3949", + caseAttyEmail: "atnyelliottesg@gmail.com", + caseAttyFirm: "Law Office of Amy E. Elliott", + }, + "Angela S. Fitle": { + caseAttyFirstName: "Angela", + caseAttyLastName: "Fitle", + caseAttybarMO: "67663", + caseAttybarKS: "27014", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "afitle@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Dana Kay Fries": { + caseAttyFirstName: "Dana Kay", + caseAttyLastName: "Fries", + caseAttybarKS: "24148", + caseAttyAddressLine1: "P.O. Box 1512", + caseAttyAddressLine2: "Grand Island, NE 68802", + caseAttyPhone: "308-398-3801", + caseAttyFax: "308-384-5617", + caseAttyEmail: "services@credit-mgmt.com", + caseAttyFirm: "Credit Management Services, Inc.", + }, + "Steve N. Gatzoulis": { + caseAttyFirstName: "Steve", + caseAttyLastName: "Gatzoulis", + caseAttybarMO: "58057", + caseAttybarKS: "22176", + caseAttyAddressLine1: "7225 Renner Road, Suite 200", + caseAttyAddressLine2: "Shawnee, KS 66217", + caseAttyPhone: "913-962-8700", + caseAttyFax: "913-962-8702", + caseAttyEmail: "sgatzoulis@emlawkc.com", + caseAttyEmail2: "", + caseAttyFirm: "Evans & Mullinix, P.A.", + }, + "Cecilia O'Hara": { + caseAttyFirstName: "Cecilia", + caseAttyLastName: "O'Hara", + caseAttybarMO: "66822", + caseAttyAddressLine1: "10680 Treena St., Suite 500", + caseAttyAddressLine2: "San Diego, CA, 92131", + caseAttyPhone: "866-428-8102", + caseAttyFax: "757-518-0860", + caseAttyEmail: "LitigationFilingKS@portfoliorecovery.com", + caseAttyEmail2: "cecilia.OHara@portfoliorecovery.com", + caseAttyFirm: "Portfolio Recovery Associates, LLC", + }, + "Brooke E. Harris": { + caseAttyFirstName: "Brooke", + caseAttyLastName: "Harris", + caseAttybarMO: "70301", + caseAttyAddressLine1: "1117 South Broadway | P.O. Box 110", + caseAttyAddressLine2: "Oak Grove, MO 64075", + caseAttyPhone: "(816) 690-4111", + caseAttyFax: "(816) 690-6526", + caseAttyEmail: "brooke@bartonhall.net", + caseAttyFirm: "Barton, Hall & Schnieders, P.C.", + }, + "Matthew Hawkins": { + caseAttyFirstName: "Matthew", + caseAttyLastName: "Hawkins", + caseAttybarMO: "69125", + caseAttyEmail: "mhawkins@zwickerpc.com", + caseAttyPhone: "1-866-200-9338", + caseAttyAddressLine1: "7300 West 110th Street, Commerce Plaza I 7th Floor", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyFax: "1-913-800-4360", + caseAttyFirm: "Zwicker & Associates, P.C.", +}, + "Robert J. Hawkins": { + caseAttyFirstName: "Robert", + caseAttyLastName: "Hawkins", + caseAttybarMO: "75601", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "rhawkins@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + + "Austin B. Hayden": { + caseAttyFirstName: "Austin", + caseAttyLastName: "Hayden", + caseAttybarMO: "63872", + caseAttybarKS: "25258", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "ahayden@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + + "Jennifer Hays": { + caseAttyFirstName: "Jennifer", + caseAttyLastName: "Hays", + caseAttybarMO: "22711", + caseAttyAddressLine1: "10680 Treena St., Ste 500", + caseAttyAddressLine2: "San Diego, CA 92131", + caseAttyPhone: "(866) 428-8102", + caseAttyFax: "757-518-0860", + caseAttyEmail: "LitigationFilingKS@portfoliorecovery.com", + caseAttyEmail2: "jennifer.hays@portfoliorecovery.com", + caseAttyFirm: "Portfolio Recovery Associates, LLC", + caseAttyRole: "Attorneys for Plaintiff" + }, + + "Chasity M. Helm": { + caseAttyFirstName: "Chasity", + caseAttyLastName: "Helm", + caseAttybarMO: "", + caseAttybarKS: "21605", + caseAttyAddressLine1: "301 N. Main, 1600 Epic Center", + caseAttyAddressLine2: "Wichita, KS 67202-4816", + caseAttyPhone: "316-290-4518", + caseAttyFax: "316-267-0315", + caseAttyEmail: "chelm@klendalaw.com", + caseAttyEmail2: "", + caseAttyFirm: "Klenda Austerman LLC", + }, + "Ferdinand Hernandez": { + caseAttyFirstName: "Ferdinand", + caseAttyLastName: "Hernandez", + caseAttybarMO: "74478", + + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "fhernandez@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Geoffry W. Hetley": { + caseAttyFirstName: "Geoff", + caseAttyLastName: "Hetley", + caseAttybarMO: "39668", + caseAttyAddressLine1: "6900 College Blvd., Suite 325", + caseAttyAddressLine2: "Overland Park KS 66211", + caseAttyPhone: "913-323-4595", + caseAttyFax: "913-661-1747", + caseAttyEmail: "collection@pittengerlawgroup.com", + caseAttyEmail2: "ghetley@pittengerlawgroup.com", + caseAttyFirm: "Pittenger Law Group, LLC", + }, + "Benjamin N. Hutnick": { + caseAttyFirstName: "Benjamin", + caseAttyLastName: "Hutnick", + caseAttybarMO: "63668", + caseAttybarKS: "23666", + caseAttyAddressLine1: "15280 Metcalf Ave.", + caseAttyAddressLine2: "Overland Park, KS 66223", + caseAttyPhone: "913-649-1555", + caseAttyFax: "913-652-9474", + caseAttyEmail: "bhutnick@bermanrabin.com", + caseAttyEmail2: "", + caseAttyFirm: "Berman & Rabin, P.A.", + }, + "Danielle Ihle": { + caseAttyFirstName: "Danielle", + caseAttyLastName: "Ihle", + caseAttybarMO: "27828", + caseAttyAddressLine1: "P.O. Box 1512", + caseAttyAddressLine2: "Grand Island, NE 68802", + caseAttyPhone: "308-398-3801", + caseAttyFax: "308-384-5617", + caseAttyEmail: "services@credit-mgmt.com", + caseAttyFirm: "Credit Management Services, Inc.", + }, + "Kathryn E. Jackson": { + caseAttyFirstName: "Kathryn", + caseAttyLastName: "Jackson", + caseAttybarMO: "66056", + caseAttybarKS: "26523", + caseAttybarCO: "57203", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "kjackson@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + "Matthew T. M. Jones": { + caseAttyFirstName: "Matthew T. M.", + caseAttyLastName: "Jones", + caseAttybarMO: "71956", + + caseAttyAddressLine1: "1900 City Hall - 414 E. 12th Street", + caseAttyAddressLine2: "Kansas City, Missouri 64106", + caseAttyPhone: "816-513-3105", + caseAttyFax: "816-513-3198", + caseAttyEmail: "matthew.jones@kcmo.org", + caseAttyEmail2: "", + caseAttyFirm: "Office of the City Attorney", + }, + "Mark A. Kahrs": { + caseAttyFirstName: "Mark", + caseAttyLastName: "Kahrs", + caseAttybarMO: "61328", + caseAttybarKS: "15047", + caseAttybarCO: "", + caseAttyAddressLine1: "P.O. Box 780487", + caseAttyAddressLine2: "Wichita, KS 67278", + caseAttyPhone: "316-269-4343", + caseAttyFax: "316-265-1206", + caseAttyEmail: "Jill@kahrslaw.com", + caseAttyEmail2: "", + caseAttyFirm: "Kahrs Law Offices, P.A." + }, + "Zachary A. King": { + caseAttyFirstName: "Zachary", + caseAttyLastName: "King", + caseAttybarKS: "21578", + + caseAttyAddressLine1: "5835 SW 29th Street, Ste. 101", + caseAttyAddressLine2: "Topeka, KS 66614", + caseAttyPhone: "(785) 267-6444", + caseAttyFax: "(785) 267-7341", + caseAttyEmail: "cnc@butlerlaw.com", + caseAttyEmail2: "zking@butlerlaw.com", + caseAttyFirm: "Butler & Associates, P.A." + }, + "Kenneth M. Krome": { + caseAttyFirstName: "Ken", + caseAttyLastName: "Krome", + caseAttybarMO: "66020", + caseAttyAddressLine1: "13160 Foster Street, Suite 100", + caseAttyAddressLine2: "Overland Park, Kansas 66213", + caseAttyPhone: "(913) 663-7600", + caseAttyFax: "(913) 663-7899", + caseAttyEmail: "Kenneth.Krome@southlaw.com", + caseAttyFirm: "SouthLaw, P.C.", + }, + "Rebecca J. Ledford": { + caseAttyFirstName: "Rebecca J.", + caseAttyLastName: "Ledford", + caseAttybarMO: "73154", + caseAttyAddressLine1: "15280 Metcalf", + caseAttyAddressLine2: "Overland Park, KS 66223", + caseAttyPhone: "913-649-1555 ext. 121", + caseAttyFax: "913-652-9474", + caseAttyEmail: "rledford@bermanrabin.com", + caseAttyEmail2: "", + caseAttyFirm: "Berman & Rabin, P.A.", + }, +"Hayden L. Lovelace": { + caseAttyFirstName: "Hayden", + caseAttyLastName: "Lovelace", + caseAttybarMO: "70686", + + caseAttyAddressLine1: "P.O. Box 271", + caseAttyAddressLine2: "Bentonville, AR 72712-0271", + caseAttyPhone: "877-551-3377", + caseAttyFax: "479-273-3419", + caseAttyEmail: "hlovelace@hoodandstacy.com", + caseAttyEmail2: "", + caseAttyFirm: "Hood & Stacy, P.A." + }, + "John Makhamreh": { + caseAttyFirstName: "John", + caseAttyLastName: "Makhamreh", + caseAttybarMO: "70687", + caseAttyAddressLine1: "11960 Westline. Ind. Dr., Ste 180", + caseAttyAddressLine2: "St. Louis, MO 63146", + caseAttyPhone: "314-991-1177", + caseAttyFax: "314-991-0485", + caseAttyEmail: "KFattorneys@lawusa.com", + caseAttyEmail2: "John.Makhamreh@lawusa.com", + caseAttyFirm: "Kramer & Frank, PC" + }, + + "M. Henry Martin": { + caseAttyFirstName: "Henry", + caseAttyLastName: "Martin", + caseAttybarMO: "76372", + caseAttyAddressLine1: "11960 Westline. Ind. Dr., Ste 180", + caseAttyAddressLine2: "St. Louis, MO 63146", + caseAttyPhone: "314-991-1177", + caseAttyFax: "314-991-0485", + caseAttyEmail: "KFattorneys@lawusa.com", + caseAttyEmail: "Henry.Martin@lawusa.com", + caseAttyFirm: "Kramer & Frank, PC", + }, + "Lisa L. Livingston-Martin": { + caseAttyFirstName: "Lisa", + caseAttyLastName: "Livingston-Martin", + caseAttybarMO: "41116", + caseAttyAddressLine1: "7500 West 110th Street, Suite 110", + caseAttyAddressLine2: "Overland Park, Kansas 66210", + caseAttyPhone: "(913) 469-2958", + caseAttyFax: "(913) 312-3137", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC", + }, + "T. Ryan Merrigan": { + caseAttyFirstName: "Ryan", + caseAttyLastName: "Merrigan", + caseAttybarMO: "62073", + caseAttybarKS: "24438", + caseAttyAddressLine1: "707 North Second Street, Suite 306", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "(800) 541-3796", + caseAttyFax: "(847) 499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "ryanmerrigan@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + + "Faiq Mihlar": { + caseAttyFirstName: "Faiq", + caseAttyLastName: "Mihlar", + caseAttybarMO: "50501", + caseAttyAddressLine1: "P.O. Box 740", + caseAttyAddressLine2: "Decatur, IL 62525", + caseAttyPhone: "(217) 422-1719", + caseAttyEmail: "MissouriFilings@hsbattys.com", + caseAttyFirm: "Heavner, Beyers & Mihlar, LLC", + }, +"Dana Manweiler Milby": { + caseAttyFirstName: "Dana", + caseAttyLastName: "Manweiler Milby", + + caseAttybarKS: "42918", + caseAttyAddressLine1: "PO BOX 1030", + caseAttyAddressLine2: "Wichita KS 67201", + caseAttyPhone: "316-267-8677", + caseAttyFax: "316-267-8059", + caseAttyEmail: "serviceinfo@milbylaw.com", + caseAttyEmail2: "", + caseAttyFirm: "Milby Law Offices, P.A." +}, + +"Veronika J. Miles": { + caseAttyFirstName: "Veronika", + caseAttyLastName: "Miles", + caseAttybarMO: "67254", + caseAttyAddressLine1: "P.O. Box 740", + caseAttyAddressLine2: "Decatur, IL 62525", + caseAttyPhone: "(217) 422-1719", + caseAttyEmail: "MissouriFilings@hsbattys.com", + caseAttyFirm: "Heavner, Beyers & Mihlar, LLC", +}, + +"Christina M. Milien": { + caseAttyFirstName: "Christina", + caseAttyLastName: "Milien", + caseAttyAddressLine1: "P.O. Box 109032", + caseAttyAddressLine2: "Chicago, IL 60610", + caseAttyPhone: "877-285-4918", + caseAttyFax: "818-888-1260", + caseAttyFirm: "Mandarich Law Group, LLP", +}, +"Kliment Mitreski": { + caseAttyFirstName: "Kliment", + caseAttyLastName: "Mitreski", + + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "kmitreski@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + +}, + + "Phillip M. Murphy II": { + caseAttyFirstName: "Phillip", + caseAttyLastName: "Murphy II", + caseAttybarMO: "61467", + caseAttyAddressLine1: "4717 Grand Ave., Ste. 300", + caseAttyAddressLine2: "Kansas City, MO 64112", + caseAttyPhone: "(913) 661-2900", + caseAttyFax: "", + caseAttyEmail: "phillip@phillipmurphylaw.com", + caseAttyFirm: "The Law Office of Phillip M. Murphy II", + caseAttyRole: "Attorney for Applicant" + }, + +"Barbara Nilsen": { + caseAttyFirstName: "Barbara", + caseAttyLastName: "Nilsen", + caseAttybarMO: "68654", + caseAttyAddressLine1: "707 North Second Street, Suite 306", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "(800) 541-3796", + caseAttyFax: "(847) 499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Todd A. Norris": { + caseAttyFirstName: "Todd", + caseAttyLastName: "Norris", + caseAttybarMO: "39723", + caseAttybarKS: "14495", + caseAttyAddressLine1: "Commerce Plaza II", + caseAttyAddressLine2: "7400 W 110th Street, Suite 600", + caseAttyPhone: "(913) 342-3613", + caseAttyFax: "(913) 342-0348", + caseAttyEmail: "tnorris@slln.com", + caseAttyFirm: "Simpson, Logback, Lynch, Norris, P.A.", + }, +"Nicole R. Thayne": { + caseAttyFirstName: "Nicole", + caseAttyLastName: "Thayne", + caseAttybarMO: "69380", + caseAttybarKS: "27853", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "nthayne@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", +}, + + "Edward J. Myers": { + caseAttyFirstName: "Edward", + caseAttyLastName: "Myers", + caseAttybarMO: "34975", + caseAttyAddressLine1: "1000 Camera Ave, Suite A", + caseAttyAddressLine2: "Crestwood (St. Louis), MO 63126", + caseAttyPhone: "314-835-6602", + caseAttyFax: "314-835-6604", + + caseAttyEmail2: "EdwardMyers@gmcollects.com", + caseAttyFirm: "Gamache & Myers, P.C.", + }, + "Karen Nations": { + caseAttyFirstName: "Karen", + caseAttyLastName: "Nations", + caseAttybarKS: "21153", + caseAttyAddressLine1: "P.O. Box 13063", + caseAttyAddressLine2: "Overland Park, Kansas 66282", + caseAttyPhone: "(913) 825-1455", + caseAttyEmail: "Karen@nationslaw.us", + caseAttyFirm: "Law Offices of Karen Nations", + }, + "Barbara Nilsen": { + caseAttyFirstName: "Barbara", + caseAttyLastName: "Nilsen", + caseAttybarMO: "68654", + + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "bnilsen@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Ryan A. Oberman": { + caseAttyFirstName: "Ryan", + caseAttyLastName: "Oberman", + caseAttybarMO: "70281", + + caseAttyAddressLine1: "1000 Camera Ave, Suite A", + caseAttyAddressLine2: "Crestwood (St. Louis), MO 63126", + caseAttyPhone: "314-835-6602", + caseAttyFax: "314-835-6604", + caseAttyEmail: "RyanOberman@GMCollects.com", + caseAttyFirm: "Gamache & Myers, P.C.", + }, + "Jill D. Olsen": { + caseAttyFirstName: "Jill", + caseAttyLastName: "Olsen", + caseAttybarKS: "20105", + + caseAttyAddressLine1: "118 N. Conistor Ln., Ste. B #290", + caseAttyAddressLine2: "Liberty, MO 64068", + caseAttyPhone: "(816) 521-8811", + caseAttyFax: "(816) 278-9493", + caseAttyEmail: "jill@olsenlawkc.com", + caseAttyFirm: "The Olsen Law Firm, LLC", + }, + + "David Page": { + caseAttyFirstName: "Dave", + caseAttyLastName: "Page", + caseAttybarMO: "58948", + caseAttybarKS: "27437", + caseAttyAddressLine1: "11960 Westline. Ind. Dr., Ste 180", + caseAttyAddressLine2: "St. Louis, MO 63146", + caseAttyPhone: "314-991-1177", + caseAttyFax: "314-991-0485", + caseAttyEmail: "KFattorneys@lawusa.com", + caseAttyEmail2: "David.Page@lawusa.com", + caseAttyFirm: "Kramer & Frank, PC" + }, + + + "Gregory J. Pappas": { + caseAttyFirstName: "Gregory", + caseAttyLastName: "Pappas", + caseAttybarMO: "39266", + caseAttybarKS: "11993", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "gpappas@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + "John Parker": { + caseAttyFirstName: "John", + caseAttyMiddleName: "Charles", + caseAttyLastName: "Parker", + caseAttybarMO: "70285", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "jparker@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C." + }, + "Brandon T. Pittenger": { + caseAttyFirstName: "Brandon", + caseAttyLastName: "Pittenger", + caseAttybarMO: "53544", + caseAttybarKS: "20296", + caseAttyAddressLine1: "6900 College Blvd., Suite 325", + caseAttyAddressLine2: "Overland Park KS 66211", + caseAttyPhone: "913-323-4595", + caseAttyFax: "913-661-1747", + caseAttyEmail: "collection@pittengerlawgroup.com", + caseAttyFirm: "Pittenger Law Group, LLC", + }, + "Anthony F. Porto": { + caseAttyFirstName: "Tony", + caseAttyLastName: "Porto", + caseAttybarMO: "53469", + caseAttyAddressLine1: "P.O. Box 109032", + caseAttyAddressLine2: "Chicago, IL 60610", + caseAttyPhone: "877.285.4918", + caseAttyFax: "818.888.1260", + caseAttyEmail: "Missouri@mandarichlaw.com", + caseAttyFirm: "Mandarich Law Group, LLP", + }, + "Anthony Pritchett": { + caseAttyFirstName: "Anthony", + caseAttyLastName: "Pritchett", + caseAttybarMO: "72246", + caseAttyAddressLine1: "707 North Second Street, Suite 306", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "(800) 541-3796", + caseAttyFax: "(847) 499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Daniel S. Rabin": { + caseAttyFirstName: "Daniel", + caseAttyLastName: "Rabin", + caseAttybarKS: "13253", + caseAttyAddressLine1: "15280 Metcalf Aveue", + caseAttyAddressLine2: "Overland Park, KS 66223", + caseAttyPhone: "913-649-1555", + caseAttyFax: "913-649-2335", + caseAttyEmail: "drabin@bermanrabin.com", + caseAttyFirm: "Berman & Rabin, P.A.", + }, + "J. Brock Rowatt": { + caseAttyFirstName: "Brock", + caseAttyLastName: "Rowatt", + caseAttybarMO: "43325", + caseAttybarKS: "16741", + caseAttyAddressLine1: "3501 North Causeway Blvd., Ste 800", + caseAttyAddressLine2: "Metairie, LA 70002", + caseAttyPhone: "504-838-7747", + caseAttyFax: "", + caseAttyEmail: "brock.rowatt@gulfsouthlegal.com", + caseAttyEmail2: "", + caseAttyFirm: "Couch Lambert, LLC", + }, + "Thomas A. Ryczek": { + caseAttyFirstName: "Thomas", + caseAttyLastName: "Ryczek", + caseAttybarMO: "64132", + caseAttyAddressLine1: "707 North Second Street, Suite 306", + caseAttyAddressLine2: "St. Louis, MO 63102", + caseAttyPhone: "(800) 541-3796", + caseAttyFax: "(847) 499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Brian Schierding": { + caseAttyFirstName: "Brian", + caseAttyLastName: "Schierding", + caseAttybarMO: "63220", + + caseAttyAddressLine1: "P.O. Box 1566", + caseAttyAddressLine2: "Jefferson City, MO 65102", + caseAttyPhone: "(573) 886-9009", + caseAttyFax: "(573) 644-7007", + caseAttyEmail: "MissouriLegal@wakeassoc.com", + caseAttyEmail2: "", + caseAttyFirm: "Wakefield & Associates, Inc." + }, + + "Ryan L. Settles": { + caseAttyFirstName: "Ryan", + caseAttyLastName: "Settles", + caseAttybarMO: "75761", + + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "rsettles@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + + "Jennifer Shipman": { + caseAttyFirstName: "Jenny", + caseAttyLastName: "Shipman", + caseAttybarMO: "58363", + caseAttybarKS: "21975", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "jshipman@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Jonathan L. Shoener": { + caseAttyFirstName: "Jonathan", + caseAttyMiddleName: "Lewis", + caseAttyLastName: "Shoener", + caseAttybarMO: "60626", + caseAttyAddressLine1: "PO Box 10110", + caseAttyAddressLine2: "Columbia, MO 65205", + caseAttyPhone: "(573) 777-8144", + caseAttyFax: "(573) 442-1072", + caseAttyEmail: "FandBLegal@gmail.com", + caseAttyEmail2: "jonathan@faberandbrand.com", + caseAttyFirm: "Faber & Brand, L.L.C.", + }, + "Julie Sims": { + caseAttyFirstName: "Julie", + caseAttyLastName: "Sims", + caseAttybarMO: "71178", + + caseAttyAddressLine1: "City Hall, 19th Floor, Suite 1903", + caseAttyAddressLine2: "414 E. 12th Street, Kansas City, Missouri 64106", + caseAttyPhone: "816-513-3163", + caseAttyFax: "816-513-3198", + caseAttyEmail: "julie.sims@kcmo.org", + caseAttyEmail2: "", + caseAttyFirm: "Office of the City Attorney", + }, + "Nikola Smith": { + caseAttyFirstName: "Nikola", + caseAttyLastName: "Smith", + caseAttybarMO: "58685", + + caseAttyAddressLine1: "1900 City Hall - 414 E. 12th Street", + caseAttyAddressLine2: "Kansas City, Missouri 64106", + caseAttyPhone: "816-513-3105", + caseAttyFax: "816-513-3198", + caseAttyEmail: "nikola.smith@kcmo.org", + caseAttyEmail2: "", + caseAttyFirm: "Office of the City Attorney", + }, + "John H. Soeder, III": { + caseAttyFirstName: "John", + caseAttyLastName: "Soeder", + caseAttybarMO: "55142", + caseAttyAddressLine1: "1 Campbell Plaza, Suite 1 A North", + caseAttyAddressLine2: "St. Louis, Missouri 63139", + caseAttyPhone: "(314) 644-5200", + caseAttyFax: "(314) 644-5201", + caseAttyEmail: "jsoeder@sherandshabsin.com", + caseAttyFirm: "Sher & Shabsin, P.C.", +}, + "Edwin M. Soltz": { + caseAttyFirstName: "Ed", + caseAttyLastName: "Soltz", + caseAttybarMO: "29442", + caseAttybarKS: "13050", + caseAttyAddressLine1: "11709 Roe Ave., Ste. D155", + caseAttyAddressLine2: "Leawood, KS 66211", + caseAttyPhone: "913 341-0303", + caseAttyFirm: "Edwin M. Soltz", + caseAttyEmail: "esoltzlaw@gmail.com", + }, + "Eulan Burton Stacy": { + caseAttyFirstName: "Eulan Burton", + caseAttyLastName: "Stacy", + caseAttybarMO: "51767", + caseAttyAddressLine1: "P.O. Box 271", + caseAttyAddressLine2: "Bentonville, AR 72712-0271", + caseAttyPhone: "877-551-3377", + caseAttyFax: "479-273-3419", + caseAttyEmail: "bstacy@hoodandstacy.com", + caseAttyEmail2: "hlovelace@hoodandstacy.com", + caseAttyFirm: "Hood & Stacy, P.A." + }, + +"Nathan V. Swoyer": { + caseAttyFirstName: "Nathan", + caseAttyMiddleName: "V.", + caseAttyLastName: "Swoyer", + caseAttybarMO: "75174", + caseAttyAddressLine1: "974 - 73rd Street, Suite 20", + caseAttyAddressLine2: "West Des Moines, IA 50265", + caseAttyPhone: "800-617-7593", + caseAttyFax: "515-223-6011", + caseAttyEmail: "Missouri@midwestlawgroup.com", + caseAttyEmail2: "nswoyer@midwestlawgroup.com", + caseAttyFirm: "Abbott Osborn Jacobs PLC" +}, +"Christian Taylor": { + caseAttyFirstName: "Christian", + caseAttyLastName: "Taylor", + caseAttybarMO: "73039", + + caseAttyAddressLine1: "9140 Ward Parkway, Ste. 200", + caseAttyAddressLine2: "Kansas City, MO 64114", + caseAttyPhone: "(800) 887-4747", + caseAttyFax: "(402) 554-0339", + caseAttyEmail: "bqmo@bqlaw.com", + caseAttyEmail2: "ctaylor@bqlaw.com", + caseAttyFirm: "BQ & Associates, P.C., L.L.O.", +}, + + "Joseph A. Terry": { + caseAttyFirstName: "Joe", + caseAttyLastName: "Terry", + caseAttybarMO: "60421", + caseAttyAddressLine1: "1000 Camera Ave, Suite A", + caseAttyAddressLine2: "Crestwood (St. Louis), MO 63126", + caseAttyPhone: "314-835-6602", + caseAttyFax: "314-835-6604", + + caseAttyEmail2: "JosephTerry@gmcollects.com", + caseAttyFirm: "Gamache & Myers, P.C.", + }, + "Nicole R. Thayne": { + caseAttyFirstName: "Nicole", + caseAttyLastName: "Thayne", + caseAttybarMO: "69380", + caseAttybarKS: "27853", + caseAttyAddressLine1: "707 N Second St, Ste 306", + caseAttyAddressLine2: "St Louis, MO 63102", + caseAttyPhone: "844-762-8216", + caseAttyFax: "847-499-7599", + caseAttyEmail: "pleadings2@blittandgaines.com", + caseAttyEmail2: "nthayne@blittandgaines.com", + caseAttyFirm: "Blitt and Gaines, P.C.", + }, + "Adam K. Trimble": { + caseAttyFirstName: "Adam", + caseAttyLastName: "Trimble", + caseAttybarKS: "29338", + caseAttyAddressLine1: "15280 Metcalf Aveue", + caseAttyAddressLine2: "Overland Park, KS 66223", + caseAttyPhone: "913-649-1555", + caseAttyFax: "913-649-2335", + caseAttyEmail: "atrimble@bermanrabin.com", + caseAttyFirm: "Berman & Rabin, P.A.", + }, + "Thomas M. Voigt": { + caseAttyFirstName: "Thomas", + caseAttyLastName: "Voigt", + caseAttybarMO: "74281", + caseAttyAddressLine1: "P.O. Box 740", + caseAttyAddressLine2: "Decatur, IL 62525", + caseAttyPhone: "(217) 422-1719", + caseAttyEmail: "MissouriFilings@hsbattys.com", + caseAttyFirm: "Heavner, Beyers & Mihlar, LLC", + }, + "Melissa A. Watts": { + caseAttyFirstName: "Melissa", + caseAttyLastName: "Watts", + caseAttybarMO: "53314", + caseAttybarKS: "19881", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-3059", + caseAttyEmail: "mwatts@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC", + }, +"Patrick G. Walsh": { + caseAttyFirstName: "Patrick", + caseAttyLastName: "Walsh", + caseAttybarKS: "13294", + caseAttyAddressLine1: "P.O. Box 487", + caseAttyAddressLine2: "Lyndon, KS 66451", + caseAttyPhone: "888-528-3186", + caseAttyFax: "785-828-3269", + caseAttyEmail: "bbww@bbwwlaw.com", + caseAttyEmail2: "pat@bbwwlaw.com", + caseAttyFirm: "Burns, Burns, Walsh & Walsh, P.A.", +}, + + "Scott F. Walterbach": { + caseAttyFirstName: "Scott", + caseAttyLastName: "Walterbach", + caseAttybarMO: "60094", + caseAttyAddressLine1: "3000 NE Brooktree Lane, Suite 100", + caseAttyAddressLine2: "Kansas City MO 64119", + caseAttyPhone: "[816] 601-1100", + caseAttyFax: "[816] 601-1101", + caseAttyEmail: "admin@bw-llp.com", + caseAttyFirm: "Bessine Walterbach, LLP", + }, + "Andrew Werring": { + caseAttyFirstName: "Andrew", + caseAttyLastName: "Werring", + caseAttybarKS: "22184", + caseAttyAddressLine1: "110 N. 5th Street", + caseAttyAddressLine2: "Atchison, Kansas 66002", + caseAttyPhone: "913-367-2424", + caseAttyFax: "913-367-7017", + caseAttyEmail: "andrew@werringlaw.com", + caseAttyFirm: "Werring Law, LLC", + }, + + "Joshua R. Westberg": { + caseAttyFirstName: "Josh", + caseAttyLastName: "Westberg", + caseAttybarMO: "67795", + caseAttybarKS: "26969", + caseAttybarCO: "52860", + caseAttyAddressLine1: "7500 West 110th St., Suite 110", + caseAttyAddressLine2: "Overland Park, KS 66210", + caseAttyPhone: "913-491-4050", + caseAttyFax: "913-491-9318", + caseAttyEmail: "docket@phwjlaw.com", + caseAttyEmail2: "jwestberg@phwjlaw.com", + caseAttyFirm: "Pappas Hayden Westberg & Jackson PC" + }, + "Eric Bryson Wetzel": { + caseAttyFirstName: "Eric", + caseAttyLastName: "Wetzel", + caseAttybarMO: "63314", + caseAttybarKS: "25093", + caseAttyAddressLine1: "10680 Treena St., Ste 500", + caseAttyAddressLine2: "San Diego, CA 92131", + caseAttyPhone: "(866) 428-8102", + caseAttyFax: "757-518-0860", + caseAttyEmail: "LitigationFilingKS@portfoliorecovery.com", + caseAttyEmail2: "Eric.Wetzel@portfoliorecovery.com", + caseAttyFirm: "Portfolio Recovery Associates, LLC", + }, + "Kelly L. Williams": { + caseAttyFirstName: "Kelly", + caseAttyLastName: "Williams", + caseAttybarKS: "26939", + caseAttyAddressLine1: "10680 Treena St., Ste 500", + caseAttyAddressLine2: "San Diego, CA 92131", + caseAttyPhone: "(866) 428-8102", + caseAttyFax: "757-518-0860", + caseAttyEmail: "LitigationFilingKS@portfoliorecovery.com", + caseAttyFirm: "Portfolio Recovery Associates, LLC", + + }, + + "Ashlee N. Yager": { + caseAttyFirstName: "Ashlee", + caseAttyLastName: "Yager", + caseAttybarMO: "67664", + caseAttybarKS: "26456", + caseAttyAddressLine1: "13160 Foster, Suite 100", + caseAttyAddressLine2: "Overland Park, KS 66213-2660", + caseAttyPhone: "913-663-7600 Ext. 138", + caseAttyFax: "913-663-7899", + caseAttyEmail: "Ashlee.Yager@southlaw.com", + caseAttyEmail2: "", + caseAttyFirm: "SOUTHLAW, P.C." + }, + + "Brandon York": { + caseAttyFirstName: "Brandon", + caseAttyMiddleName: "Michael", + caseAttyLastName: "York", + caseAttybarMO: "71620", + caseAttybarKS: "28491", + caseAttyAddressLine1: "9140 Ward Parkway, Ste. 200", + caseAttyAddressLine2: "Kansas City, MO 64114", + caseAttyPhone: "(800) 887-4747", + caseAttyFax: "(402) 554-0339", + caseAttyEmail: "bqks@bqlaw.com", + caseAttyEmail2: "byork@bqlaw.com", + caseAttyFirm: "BO & Associates, P.C., L.L.O." +}, + + "Kevin Adam Sommer": { + caseAttyFirstName: "Adam", + + caseAttyLastName: "Sommer", + caseAttybarMO: "65613", + caseAttyAddressLine1: "206 North Holden", + caseAttyAddressLine2: "Warrensburg, MO 64093", + caseAttyPhone: "(660) 747-8131", + caseAttyEmail: "adam@warrensburglaw.com", + caseAttyFirm: "Municipal Prosecutor, City of Knob Noster", + }, + + "Angel R. Zimmerman": { + caseAttyFirstName: "Angel", + caseAttyLastName: "Zimmerman", + caseAttybarKS: "22546", + caseAttyAddressLine1: "909 SE Quincy", + caseAttyAddressLine2: "Topeka, KS 66612", + caseAttyPhone: "785-357-0021", + caseAttyFax: "785-357-1548", + caseAttyEmail: "payzimmerman.com", + caseAttyFirm: "Zimmerman & Zimmerman, P.A.", + }, + "Larry N. Zimmerman": { + caseAttyFirstName: "Larry", + caseAttyLastName: "Zimmerman", + caseAttybarKS: "19906", + caseAttyAddressLine1: "909 SE Quincy", + caseAttyAddressLine2: "Topeka, KS 66612", + caseAttyPhone: "785-357-0021", + caseAttyFax: "785-357-1548", + caseAttyEmail: "payzimmerman.com", + caseAttyFirm: "Zimmerman & Zimmerman, P.A.", + }, + + // Add more attorneys as needed... +} + diff --git a/public/styles.css b/public/styles.css new file mode 100644 index 0000000..d9b92cf --- /dev/null +++ b/public/styles.css @@ -0,0 +1,161 @@ +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + background-color: #f0f0f0; +} + +.container { + max-width: 800px; + margin: 20px auto; + padding: 20px; + background-color: #fff; + border-radius: 8px; + box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.1); +} + +.heading { + text-align: center; + margin-bottom: 20px; +} + +.heading h1 { + font-size: 24px; + margin: 0; + color: #333; +} + +h2 { + font-size: 20px; + margin: 20px 0 10px; + color: #555; +} + +h3 { + font-size: 18px; + margin: 10px 0 5px; + color: #666; +} + +details { + font-size: 14px; /* Adjust this value to your liking */ + color: #777; +} + +.form-row { + display: flex; + flex-wrap: wrap; + margin-bottom: 15px; + justify-content: space-between; +} + +.form-group { + flex-basis: calc(33.33% - 10px); + padding: 0 10px; + box-sizing: border-box; + margin: 5px; +} + +.form-group.col-md-2 { + flex-basis: 50%; + box-sizing: border-box; + padding: 0 10px; /* Optional: add some padding */ +} + +.form-group-full { + flex-basis: 100%; + padding: 0 10px; + box-sizing: border-box; +} + +.form-group label { + font-weight: bold; + display: block; + margin-bottom: 5px; + color: #333; +} + +.form-group input { + width: 100%; + padding: 8px; + border: 1px solid #ccc; + border-radius: 5px; + box-sizing: border-box; +} + +.form-group input:focus { + border-color: #007bff; + outline: none; +} + +.form-group-full label { + display: block; + margin-bottom: 5px; +} + +.form-group-full textarea { + width: 600px; + height: 100px; + padding: 10px; + font-size: 16px; + border: 1px solid #ccc; + border-radius: 5px; + box-sizing: border-box; +} + +.submit-group { + text-align: center; + margin-top: 20px; +} + +.submit-group input[type="submit"] { + width: auto; + padding: 10px 30px; + font-size: 16px; + border: none; + color: #fff; + background-color: #007BFF; + cursor: pointer; + border-radius: 5px; +} + +.submit-group input[type="submit"]:hover { + background-color: #0056b3; +} + +.btn { + padding: 10px 20px; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; +} + +.btn-primary { + background-color: #007bff; + color: #fff; +} + +.btn-secondary { + background-color: #6c757d; + color: #fff; +} + +.btn-danger { + background-color: #dc3545; + color: #fff; +} + +.btn-success { + background-color: #28a745; + color: #fff; +} + +.error-message { + color: red; + font-size: 14px; +} + +label { + font-size: 14px; /* Adjust this value to your liking */ +} \ No newline at end of file diff --git a/retainer.docx b/retainer.docx new file mode 100644 index 0000000..34562fa Binary files /dev/null and b/retainer.docx differ diff --git a/server.js b/server.js new file mode 100644 index 0000000..22fc674 --- /dev/null +++ b/server.js @@ -0,0 +1,581 @@ +const express = require('express'); +const bodyParser = require('body-parser'); +const fs = require('fs'); +const path = require('path'); + +const PizZip = require('pizzip'); +const vCard = require('vcf'); +const Docxtemplater = require('docxtemplater'); +const ExcelJS = require('exceljs'); +const ics = require('ics'); +const dayjs = require('dayjs'); +const advancedFormat = require('dayjs/plugin/advancedFormat'); +const numberToWords = require('number-to-words'); + +const { fieldToCellMap } = require('./constants'); + +// Define directoryPath for Client Folder Location + +// Define possible directory paths +const linuxPath = '/mnt/DropBox/clients'; +const windowsPath = 'D:\\Bklistservinfo Dropbox\\Ryan Callahan\\clients'; + +// Function to check if a directory exists and is accessible +function isDirectoryAccessible(path) { + try { + if (!fs.existsSync(path)) { + console.log(`Path does not exist: ${path}`); + return false; + } + if (!fs.statSync(path).isDirectory()) { + console.log(`Path is not a directory: ${path}`); + return false; + } + fs.accessSync(path, fs.constants.W_OK); + return true; + } catch (err) { + console.log(`No access to path: ${path}, Error: ${err.message}`); + return false; + } +} + +// Use the Linux path if it's accessible; otherwise, fallback to Windows path +const directoryPath = isDirectoryAccessible(linuxPath) ? linuxPath : windowsPath; + +console.log(`Using directory path: ${directoryPath}`); + + + + +dayjs.extend(advancedFormat); + +let today = dayjs(); +console.log(today.format('MMMM Do, YYYY')); // Output: July 14th, 2023 + +const app = express(); + +// Default to root for local dev — set BASE_PATH to "/" locally or to "/your-base" behind Apache +const BASE_PATH = process.env.BASE_PATH || '/'; + +const router = express.Router(); + +// Apply JSON/body-parser and static middleware to the router so routes are mounted under BASE_PATH +router.use(bodyParser.json()); +router.use(express.json()); // Middleware to parse JSON bodies +router.use(express.static(path.join(__dirname, 'public'))); + + + +function generateDocument(data, documentPath) { + let content = fs.readFileSync( + path.resolve(__dirname, documentPath), + 'binary' + ); + let zip = new PizZip(content); + let doc = new Docxtemplater(); + doc.loadZip(zip); + doc.setData(data); + + try { + doc.render(); + } catch (error) { + var e = { + message: error.message, + name: error.name, + stack: error.stack, + properties: error.properties, + }; + console.log(JSON.stringify({ error: e })); + throw error; + } + return doc.getZip().generate({ type: 'nodebuffer' }); +} + + +async function generateClientFolder(data) { + const folderPath = directoryPath; // Path for the folder + + // Check if directoryPath exists + if (!fs.existsSync(folderPath)) { + console.error(`Error: The directory path ${folderPath} does not exist.`); + return; // Exit the function without crashing the code + } + + const subFolderPath = path.join(folderPath, `${data.clientLastName}, ${data.clientFirstName}`); // Path for the subfolder + const subfolderCasePath = path.join(subFolderPath, `${data.caseNumber}_${data.casePlaintiffFileName}`); // Path for the case subfolder + + // Check if the main "client" folder exists + if (!fs.existsSync(folderPath)) { + // If it doesn't exist, create the "client" folder + fs.mkdirSync(folderPath, { recursive: true }); + console.log(`Folder created at: ${folderPath}`); + } + + // Check if the subfolder for the client exists + if (!fs.existsSync(subFolderPath)) { + // If it doesn't exist, create the subfolder + fs.mkdirSync(subFolderPath, { recursive: true }); + console.log(`Subfolder created at: ${subFolderPath}`); + } else { + console.log(`Subfolder already exists at: ${subFolderPath}`); + } + + // Check if the case documents subfolder exists + if (!fs.existsSync(subfolderCasePath)) { + // If it doesn't exist, create the case documents subfolder + fs.mkdirSync(subfolderCasePath, { recursive: true }); + console.log(`Case documents subfolder created at: ${subfolderCasePath}`); + } else { + console.log(`Case documents subfolder already exists at: ${subfolderCasePath}`); + } + + /* Dynamically import the 'open' module and open the subfolder + try { + const open = (await import('open')).default; + await open(subFolderPath); + console.log(`Opened ${subFolderPath}`); + } catch (err) { + console.error(`Failed to open ${subFolderPath}:`, err); + } + */ +} + + +function createVCard(data) { + let card = new vCard(); + + // Set the fields in the vCard + card.set( + 'fn', + `${data.clientFirstName} ${data.clientMiddleName} ${data.clientLastName} ${data.clientNameSuffix}` + ); + card.set( + 'n', + `${data.clientLastName};${data.clientFirstName};${data.clientMiddleName};;${data.clientNameSuffix}` + ); + card.set('email', data.email); + card.add('tel', data.homePhone, { type: 'home' }); + card.add('tel', data.cellPhone, { type: 'cell' }); + card.add( + 'adr', + `;;${data.homeAddress};${data.homeCity};${data.homeState};${data.homeZip}`, + { type: 'home' } + ); // Set the 'adr' field with a type of 'home' + card.set('bday', data.dob); + card.set( + 'note', + `Representation on ${data.casePlaintiff} v. ${data.caseDefendant}, ${data.caseNumber}` + ); + card.set('org', `Clients - ${data.homeState}`); + + return card.toString(); +} + + + +async function generateExcel(data) { + const workbook = new ExcelJS.Workbook(); + await workbook.xlsx.readFile(path.resolve(__dirname, 'template.xlsx')); + const worksheet = workbook.getWorksheet(1); + for (let field in fieldToCellMap) { + if (fieldToCellMap.hasOwnProperty(field) && data.hasOwnProperty(field)) { + worksheet.getCell(fieldToCellMap[field]).value = data[field]; + } + } + return await workbook.xlsx.writeBuffer(); +} + +router.post('/generate-excel', async (req, res) => { + const data = req.body; + let buf = await generateExcel(data); + let filename = `${data.clientLastName}-${data.clientFirstName}_${data.caseNumber}_Data.xlsx`; + res.setHeader( + 'Content-Type', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' + ); + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + + + +router.post('/generate-ics', (req, res) => { + const data = req.body; + const eventName = `${data.casePlaintiff} v. ${data.caseDefendant}`; + const location = `${data.caseCounty} County ${data.caseDesignation} Court, Div ${data.caseDivisionNumber}`; + const startDateArray = dayjs(data.caseAnswerDate) + .format('YYYY-M-D-H-m') + .split('-') + .map(Number); + const endDateArray = dayjs(data.caseAnswerDate) + .add(30, 'minute') + .format('YYYY-M-D-H-m') + .split('-') + .map(Number); + + // Create the HTML table + const description = `Case No: ${data.caseNumber}\t Client Name: ${data.clientFirstName} ${data.clientLastName} + Appearance Information: Judge: ${data.caseDivisionJudge}; Suit Amount: $${data.caseSuitAmount}; + Case Information: First Court Date: ${data.caseAnswerDate}; Opposing Counsel: ${data.caseOpposingCounsel}; Suit Theory: ${data.caseSuitTheory}`; + + const { error, value } = ics.createEvent({ + start: startDateArray, + end: endDateArray, + title: eventName, + description: description, // Add the description here + location: location, + }); + + if (error) { + console.log(error); + return res.status(500).send({ error }); + } + + let filename = `${eventName}.ics`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(value); +}); + +router.post('/generate-MOdisco-ics', (req, res) => { + const data = req.body; + + // Get the Discovery CoS Date from the request body + const discoCosDate = data.discoCosDate; + + // Parse the Discovery CoS Date and add 30 days to get the discovery response date + const discoveryResponseDate = dayjs(discoCosDate).add(30, 'days'); + const startDateArray = discoveryResponseDate + .format('YYYY-M-D') + .split('-') + .map(Number); + const endDateArray = discoveryResponseDate + .add(1, 'day') + .format('YYYY-M-D') + .split('-') + .map(Number); + + // Set the event title, description, and location + const eventName = `DISCO due on ${data.casePlaintiff} v. ${data.caseDefendant}, ${data.caseNumber}`; + const description = `CoS Date: ${discoCosDate}`; // Add the CoD Date to the description + const location = `${data.caseCounty} County ${data.caseDesignation} Court, Div ${data.caseDivisionNumber}`; + + const { error, value } = ics.createEvent({ + start: startDateArray, + end: endDateArray, + title: eventName, + description: description, + location: location, + }); + + if (error) { + console.log(error); + return res.status(500).send({ error }); + } + + let filename = `${eventName}.ics`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(value); +}); + +router.post('/generate-KSdisco-ics', (req, res) => { + const data = req.body; + + // Get the Discovery CoS Date from the request body + const discoCosDate = data.discoCosDate; + + // Parse the Discovery CoS Date and add 30 days to get the discovery response date + const discoveryResponseDate = dayjs(discoCosDate).add(14, 'days'); + const startDateArray = discoveryResponseDate + .format('YYYY-M-D') + .split('-') + .map(Number); + const endDateArray = discoveryResponseDate + .add(1, 'day') + .format('YYYY-M-D') + .split('-') + .map(Number); + + // Set the event title, description, and location + const eventName = `DISCO due on ${data.casePlaintiff} v. ${data.caseDefendant}, ${data.caseNumber}`; + const description = `CoS Date: ${discoCosDate}`; // Add the CoD Date to the description + const location = `${data.caseCounty} County ${data.caseDesignation} Court, Div ${data.caseDivisionNumber}`; + + const { error, value } = ics.createEvent({ + start: startDateArray, + end: endDateArray, + title: eventName, + description: description, + location: location, + }); + + if (error) { + console.log(error); + return res.status(500).send({ error }); + } + + let filename = `${eventName}.ics`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(value); +}); + +router.post('/generate-vCard', (req, res) => { + const data = req.body; // This is your form data + let vCardString = createVCard(data); + + let filename = `${data.caseNumber}-contact.vcf`; // Modify this line to use your desired filename + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.type('text/vcard'); + res.send(vCardString); +}); + +router.post('/generate-reminder-ics', (req, res) => { + const data = req.body; + + // Get the current date + const today = dayjs(); + + // Add 45 days to the current date + const futureDate = today.add(45, 'days'); + const startDateArray = futureDate + .format('YYYY-M-D') + .split('-') + .map(Number); + const endDateArray = futureDate + .add(1, 'day') + .format('YYYY-M-D') + .split('-') + .map(Number); + + // Set the event title, description, and location + const todayDate = dayjs().format('MM/DD/YYYY'); + const eventName = `REMINDER - ${data.clientFirstName} ${data.clientLastName} - Check Credit Dispute Reporting`; + let description = `FDCPA Disputes were mailed on ${todayDate} to:\n`; + + for (let i = 1; i <= 9; i++) { + let name = data[`debtCollector${i}Name`]; + let creditor = data[`debtCollector${i}Creditor`]; + let account = data[`debtCollector${i}Account`]; + let amount = data[`debtCollector${i}Amount`]; + + if (name) { + description += `- ${name} \n \tregarding a ${creditor} account (Acc. No. ${account}) for $${amount},\n`; + } + } + + // Remove the last comma and newline + description = description.trim().slice(0, -1); + + + const { error, value } = ics.createEvent({ + start: startDateArray, + end: endDateArray, + title: eventName, + description: description, + }); + + if (error) { + console.log(error); + return res.status(500).send({ error }); + } + + let filename = `${eventName}.ics`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(value); +}); + +router.post('/generate-vCard', (req, res) => { + const data = req.body; // This is your form data + let vCardString = createVCard(data); + + let filename = `${data.caseNumber}-contact.vcf`; // Modify this line to use your desired filename + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.type('text/vcard'); + res.send(vCardString); +}); + + + +router.post('/generate-ics-body', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'isc-body.docx'); + let filename = `${data.caseNumber}-ics-body.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-retainer', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'retainer.docx'); + let filename = `${data.clientLastName}-${data.clientFirstName}_${data.caseNumber}_Representation-and-Fee-Agreement.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-eoa', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'entry.docx'); + let filename = `${data.caseNumber}_EoA.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-notes', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'notes.docx'); + let filename = `${data.clientLastName}-${data.clientFirstName} - Intake and Notes.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-spreadsheet', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'spreadsheets.docx'); + let filename = `${data.clientLastName}-${data.clientFirstName}_Spreadsheets.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-ADs', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'defenses.docx'); + let filename = `${data.caseNumber}_Affirmative-Defenses.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-closeout', (req, res) => { + const data = req.body; + + let buf = generateDocument(data, 'closeout.docx'); + let filename = `${data.caseNumber}_${data.clientLastName}_Closeout-Letter.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-closeout-with-costs', (req, res) => { + const data = req.body; + + let buf = generateDocument(data, 'closeout_CJ_with-interest-costs.docx'); + let filename = `${data.caseNumber}_${data.clientLastName}_Closeout.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-waiver', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'waiver.docx'); + let filename = `${data.caseNumber}_Service-Waiver.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-pleading', (req, res) => { + const data = req.body; + let templateName = data.templateName; // This should be sent from the client side + if (!templateName) { + res.status(400).send('Template name is required'); + return; + } + let templatePath = path.join(__dirname, 'Pleadings', `${templateName}.docx`); + let buf = generateDocument(data, templatePath); + let filename = `${data.caseNumber}_Pleading.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-disco', (req, res) => { + const data = req.body; + let templateName = data.templateName; // This should be sent from the client side + if (!templateName) { + res.status(400).send('Template name is required'); + return; + } + let templatePath = path.join(__dirname, 'Discovery', `${templateName}.docx`); + let buf = generateDocument(data, templatePath); + let filename = `${data.caseNumber}_Disco-Responses.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-letter', (req, res) => { + const data = req.body; + let templateName = data.templateName; // This should be sent from the client side + if (!templateName) { + res.status(400).send('Template name is required'); + return; + } + let templatePath = path.join(__dirname, 'Letters', `${templateName}.docx`); + let buf = generateDocument(data, templatePath); + let filename = `${data.clientLastName}-${data.clientFirstName}_${data.caseNumber}_Letter.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-Canned-Emails', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'Canned-Emails.docx'); + let filename = `${data.caseNumber}_Canned-Emails.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-Dispute-Letter', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'letter.docx'); + let date = dayjs().format('YYYY-MM-DD'); + let filename = `${data.clientLastName}_FDCPA-Disputes_${date}.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-Dispute-Envelope', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'dispute-envelopes.docx'); + let date = dayjs().format('YYYY-MM-DD'); + let filename = `${data.clientLastName}_FDCPA-Disputes_${date}_Envelopes.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-Dispute-Cert', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'cert-mailing.docx'); + let date = dayjs().format('YYYY-MM-DD'); + let filename = `${data.clientLastName}_FDCPA-Disputes_${date}_Mail-Cert.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-client-folder', (req, res) => { + const data = req.body; + let buf = generateClientFolder(data); + + res.send(buf); +}); + +router.post('/generate-credit-auth', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'authorization-disclosure.docx'); + let filename = `${data.clientLastName}-${data.clientFirstName}_Credit-Authorization.docx`; + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +router.post('/generate-credit-auth-no-payment', (req, res) => { + const data = req.body; + let buf = generateDocument(data, 'authorization-disclosure-no-payment.docx'); + let filename = `${data.clientLastName}-${data.clientFirstName}_Credit-Authorization-No-Payment.docx`; + + res.setHeader('Content-Disposition', `attachment; filename="${filename}"`); + res.send(buf); +}); + +// Mount router under BASE_PATH +if (BASE_PATH === '/') { + app.use('/', router); // local dev +} else { + app.use(BASE_PATH, router); // behind Apache or with a base path +} + +const PORT = process.env.PORT || 3001; +app.listen(PORT, '0.0.0.0', () => console.log(`Server is running and accessible on ${BASE_PATH} at port ${PORT}`)); diff --git a/spreadsheets.docx b/spreadsheets.docx new file mode 100644 index 0000000..9fac1bf Binary files /dev/null and b/spreadsheets.docx differ diff --git a/template.xlsx b/template.xlsx new file mode 100644 index 0000000..40e32e7 Binary files /dev/null and b/template.xlsx differ diff --git a/waiver.docx b/waiver.docx new file mode 100755 index 0000000..a140f96 Binary files /dev/null and b/waiver.docx differ