create-berna-stencil 1.0.8 → 1.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/.eleventy.js +3 -1
  2. package/.env.example +8 -0
  3. package/.gitignore +2 -1
  4. package/README.md +1 -5
  5. package/bin/create.js +2 -1
  6. package/package.json +71 -70
  7. package/src/.htaccess +18 -0
  8. package/src/api/.htaccess +12 -0
  9. package/src/api/composer.json +6 -0
  10. package/src/api/composer.lock +574 -0
  11. package/src/api/endpoints/protected/secret.php +16 -0
  12. package/src/api/endpoints/protected/send-mail.php +75 -0
  13. package/src/api/endpoints/public/ping.php +16 -0
  14. package/src/api/index.php +95 -0
  15. package/src/api/init.php +43 -0
  16. package/src/api/modules/Response.php +37 -0
  17. package/src/api/vendor/autoload.php +22 -0
  18. package/src/api/vendor/composer/ClassLoader.php +579 -0
  19. package/src/api/vendor/composer/InstalledVersions.php +396 -0
  20. package/src/api/vendor/composer/LICENSE +21 -0
  21. package/src/api/vendor/composer/autoload_classmap.php +15 -0
  22. package/src/api/vendor/composer/autoload_files.php +12 -0
  23. package/src/api/vendor/composer/autoload_namespaces.php +9 -0
  24. package/src/api/vendor/composer/autoload_psr4.php +16 -0
  25. package/src/api/vendor/composer/autoload_real.php +50 -0
  26. package/src/api/vendor/composer/autoload_static.php +86 -0
  27. package/src/api/vendor/composer/installed.json +582 -0
  28. package/src/api/vendor/composer/installed.php +86 -0
  29. package/src/api/vendor/composer/platform_check.php +25 -0
  30. package/src/api/vendor/graham-campbell/result-type/.gitattributes +9 -0
  31. package/src/api/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
  32. package/src/api/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
  33. package/src/api/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
  34. package/src/api/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
  35. package/src/api/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
  36. package/src/api/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
  37. package/src/api/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
  38. package/src/api/vendor/graham-campbell/result-type/LICENSE +21 -0
  39. package/src/api/vendor/graham-campbell/result-type/README.md +42 -0
  40. package/src/api/vendor/graham-campbell/result-type/composer.json +33 -0
  41. package/src/api/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
  42. package/src/api/vendor/graham-campbell/result-type/src/Error.php +121 -0
  43. package/src/api/vendor/graham-campbell/result-type/src/Result.php +69 -0
  44. package/src/api/vendor/graham-campbell/result-type/src/Success.php +120 -0
  45. package/src/api/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
  46. package/src/api/vendor/phpmailer/phpmailer/.codecov.yml +21 -0
  47. package/src/api/vendor/phpmailer/phpmailer/.editorconfig +15 -0
  48. package/src/api/vendor/phpmailer/phpmailer/.gitattributes +17 -0
  49. package/src/api/vendor/phpmailer/phpmailer/.github/FUNDING.yml +6 -0
  50. package/src/api/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
  51. package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/Dockerfile +15 -0
  52. package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/entrypoint.sh +5 -0
  53. package/src/api/vendor/phpmailer/phpmailer/.github/dependabot.yml +21 -0
  54. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/docs.yaml +30 -0
  55. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/scorecards.yml +61 -0
  56. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/tests.yml +237 -0
  57. package/src/api/vendor/phpmailer/phpmailer/.phan/config.php +41 -0
  58. package/src/api/vendor/phpmailer/phpmailer/COMMITMENT +46 -0
  59. package/src/api/vendor/phpmailer/phpmailer/LICENSE +502 -0
  60. package/src/api/vendor/phpmailer/phpmailer/README.md +232 -0
  61. package/src/api/vendor/phpmailer/phpmailer/SECURITY.md +37 -0
  62. package/src/api/vendor/phpmailer/phpmailer/SMTPUTF8.md +48 -0
  63. package/src/api/vendor/phpmailer/phpmailer/UPGRADING.md +125 -0
  64. package/src/api/vendor/phpmailer/phpmailer/VERSION +1 -0
  65. package/src/api/vendor/phpmailer/phpmailer/changelog.md +1122 -0
  66. package/src/api/vendor/phpmailer/phpmailer/composer.json +84 -0
  67. package/src/api/vendor/phpmailer/phpmailer/docs/README.md +9 -0
  68. package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_gen_keys.phps +81 -0
  69. package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_sign.phps +46 -0
  70. package/src/api/vendor/phpmailer/phpmailer/examples/README.md +96 -0
  71. package/src/api/vendor/phpmailer/phpmailer/examples/azure_xoauth2.phps +126 -0
  72. package/src/api/vendor/phpmailer/phpmailer/examples/callback.phps +76 -0
  73. package/src/api/vendor/phpmailer/phpmailer/examples/contactform-ajax.phps +146 -0
  74. package/src/api/vendor/phpmailer/phpmailer/examples/contactform.phps +95 -0
  75. package/src/api/vendor/phpmailer/phpmailer/examples/contents.html +17 -0
  76. package/src/api/vendor/phpmailer/phpmailer/examples/contentsutf8.html +23 -0
  77. package/src/api/vendor/phpmailer/phpmailer/examples/exceptions.phps +40 -0
  78. package/src/api/vendor/phpmailer/phpmailer/examples/extending.phps +72 -0
  79. package/src/api/vendor/phpmailer/phpmailer/examples/gmail.phps +106 -0
  80. package/src/api/vendor/phpmailer/phpmailer/examples/gmail_xoauth.phps +121 -0
  81. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.afdesign +0 -0
  82. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.png +0 -0
  83. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.svg +209 -0
  84. package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer.png +0 -0
  85. package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer_mini.png +0 -0
  86. package/src/api/vendor/phpmailer/phpmailer/examples/mail.phps +35 -0
  87. package/src/api/vendor/phpmailer/phpmailer/examples/mailing_list.phps +96 -0
  88. package/src/api/vendor/phpmailer/phpmailer/examples/pop_before_smtp.phps +60 -0
  89. package/src/api/vendor/phpmailer/phpmailer/examples/send_file_upload.phps +60 -0
  90. package/src/api/vendor/phpmailer/phpmailer/examples/send_multiple_file_upload.phps +60 -0
  91. package/src/api/vendor/phpmailer/phpmailer/examples/sendmail.phps +37 -0
  92. package/src/api/vendor/phpmailer/phpmailer/examples/sendoauth2.phps +100 -0
  93. package/src/api/vendor/phpmailer/phpmailer/examples/simple_contact_form.phps +102 -0
  94. package/src/api/vendor/phpmailer/phpmailer/examples/smime_signed_mail.phps +99 -0
  95. package/src/api/vendor/phpmailer/phpmailer/examples/smtp.phps +62 -0
  96. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_check.phps +60 -0
  97. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_low_memory.phps +117 -0
  98. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_no_auth.phps +53 -0
  99. package/src/api/vendor/phpmailer/phpmailer/examples/ssl_options.phps +81 -0
  100. package/src/api/vendor/phpmailer/phpmailer/get_oauth_token.php +182 -0
  101. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php +26 -0
  102. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php +27 -0
  103. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-as.php +35 -0
  104. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php +27 -0
  105. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php +27 -0
  106. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php +27 -0
  107. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php +27 -0
  108. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bn.php +35 -0
  109. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php +27 -0
  110. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php +28 -0
  111. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php +39 -0
  112. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php +28 -0
  113. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php +33 -0
  114. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php +37 -0
  115. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php +38 -0
  116. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php +28 -0
  117. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php +28 -0
  118. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php +27 -0
  119. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php +27 -0
  120. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php +36 -0
  121. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php +27 -0
  122. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php +27 -0
  123. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php +35 -0
  124. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php +27 -0
  125. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php +27 -0
  126. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php +27 -0
  127. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php +31 -0
  128. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php +28 -0
  129. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php +37 -0
  130. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php +27 -0
  131. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php +27 -0
  132. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ku.php +27 -0
  133. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php +27 -0
  134. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php +27 -0
  135. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php +27 -0
  136. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php +27 -0
  137. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php +27 -0
  138. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php +37 -0
  139. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php +38 -0
  140. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php +33 -0
  141. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php +34 -0
  142. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php +38 -0
  143. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php +33 -0
  144. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php +36 -0
  145. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-si.php +34 -0
  146. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php +30 -0
  147. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php +36 -0
  148. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php +28 -0
  149. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php +28 -0
  150. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php +27 -0
  151. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php +28 -0
  152. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php +38 -0
  153. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php +28 -0
  154. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ur.php +30 -0
  155. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php +27 -0
  156. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php +29 -0
  157. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php +36 -0
  158. package/src/api/vendor/phpmailer/phpmailer/phpcs.xml.dist +52 -0
  159. package/src/api/vendor/phpmailer/phpmailer/phpdoc.dist.xml +20 -0
  160. package/src/api/vendor/phpmailer/phpmailer/phpunit.xml.dist +36 -0
  161. package/src/api/vendor/phpmailer/phpmailer/src/DSNConfigurator.php +245 -0
  162. package/src/api/vendor/phpmailer/phpmailer/src/Exception.php +40 -0
  163. package/src/api/vendor/phpmailer/phpmailer/src/OAuth.php +139 -0
  164. package/src/api/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php +44 -0
  165. package/src/api/vendor/phpmailer/phpmailer/src/PHPMailer.php +5525 -0
  166. package/src/api/vendor/phpmailer/phpmailer/src/POP3.php +470 -0
  167. package/src/api/vendor/phpmailer/phpmailer/src/SMTP.php +1617 -0
  168. package/src/api/vendor/phpmailer/phpmailer/test/DebugLogTestListener.php +47 -0
  169. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/accessible.txt +1 -0
  170. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/inaccessible.txt +1 -0
  171. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-fr.php +10 -0
  172. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-nl.php +10 -0
  173. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xa_scri_cc.php +9 -0
  174. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xb_scri.php +9 -0
  175. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xc_cc.php +9 -0
  176. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_cc.php +9 -0
  177. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_scri.php +9 -0
  178. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xe.php +9 -0
  179. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xx.php +9 -0
  180. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yy.php +16 -0
  181. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yz.php +16 -0
  182. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-zz.php +20 -0
  183. package/src/api/vendor/phpmailer/phpmailer/test/Language/TranslationCompletenessTest.php +97 -0
  184. package/src/api/vendor/phpmailer/phpmailer/test/OAuth/OAuthTest.php +76 -0
  185. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddEmbeddedImageTest.php +178 -0
  186. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringAttachmentTest.php +147 -0
  187. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringEmbeddedImageTest.php +161 -0
  188. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddrFormatTest.php +70 -0
  189. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AuthCRAMMD5Test.php +48 -0
  190. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/CustomHeaderTest.php +285 -0
  191. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMTest.php +258 -0
  192. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMWithoutExceptionsTest.php +46 -0
  193. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DSNConfiguratorTest.php +221 -0
  194. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeQTest.php +110 -0
  195. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeStringTest.php +135 -0
  196. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FileIsAccessibleTest.php +103 -0
  197. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FilenameToTypeTest.php +74 -0
  198. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GenerateIdTest.php +75 -0
  199. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GetLastMessageIDTest.php +110 -0
  200. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/HasLineLongerThanMaxTest.php +158 -0
  201. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Html2TextTest.php +231 -0
  202. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ICalTest.php +126 -0
  203. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsPermittedPathTest.php +108 -0
  204. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsValidHostTest.php +107 -0
  205. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/LocalizationTest.php +505 -0
  206. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MailTransportTest.php +261 -0
  207. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MbPathinfoTest.php +171 -0
  208. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MimeTypesTest.php +70 -0
  209. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/NormalizeBreaksTest.php +111 -0
  210. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PHPMailerTest.php +1388 -0
  211. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ParseAddressesTest.php +321 -0
  212. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PunyencodeAddressTest.php +141 -0
  213. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/QuotedStringTest.php +70 -0
  214. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ReplyToGetSetClearTest.php +444 -0
  215. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetErrorTest.php +154 -0
  216. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetFromTest.php +202 -0
  217. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetTest.php +81 -0
  218. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetWordWrapTest.php +120 -0
  219. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Utf8CharBoundaryTest.php +66 -0
  220. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressCustomValidatorTest.php +116 -0
  221. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressTest.php +485 -0
  222. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/WrapTextTest.php +125 -0
  223. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/XMailerTest.php +75 -0
  224. package/src/api/vendor/phpmailer/phpmailer/test/POP3/PopBeforeSmtpTest.php +139 -0
  225. package/src/api/vendor/phpmailer/phpmailer/test/PreSendTestCase.php +46 -0
  226. package/src/api/vendor/phpmailer/phpmailer/test/Security/DenialOfServiceVectorsTest.php +52 -0
  227. package/src/api/vendor/phpmailer/phpmailer/test/SendTestCase.php +126 -0
  228. package/src/api/vendor/phpmailer/phpmailer/test/TestCase.php +392 -0
  229. package/src/api/vendor/phpmailer/phpmailer/test/fakepopserver.sh +126 -0
  230. package/src/api/vendor/phpmailer/phpmailer/test/fakesendmail.sh +22 -0
  231. package/src/api/vendor/phpmailer/phpmailer/test/runfakepopserver.sh +12 -0
  232. package/src/api/vendor/phpmailer/phpmailer/test/testbootstrap-dist.php +8 -0
  233. package/src/api/vendor/phpmailer/phpmailer/test/validators.php +12 -0
  234. package/src/api/vendor/phpoption/phpoption/.gitattributes +13 -0
  235. package/src/api/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
  236. package/src/api/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
  237. package/src/api/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
  238. package/src/api/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
  239. package/src/api/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
  240. package/src/api/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
  241. package/src/api/vendor/phpoption/phpoption/LICENSE +201 -0
  242. package/src/api/vendor/phpoption/phpoption/Makefile +17 -0
  243. package/src/api/vendor/phpoption/phpoption/README.md +201 -0
  244. package/src/api/vendor/phpoption/phpoption/composer.json +50 -0
  245. package/src/api/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
  246. package/src/api/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
  247. package/src/api/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
  248. package/src/api/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -0
  249. package/src/api/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -0
  250. package/src/api/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -0
  251. package/src/api/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -0
  252. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
  253. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
  254. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
  255. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
  256. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
  257. package/src/api/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
  258. package/src/api/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
  259. package/src/api/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
  260. package/src/api/vendor/symfony/polyfill-ctype/LICENSE +19 -0
  261. package/src/api/vendor/symfony/polyfill-ctype/README.md +12 -0
  262. package/src/api/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
  263. package/src/api/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
  264. package/src/api/vendor/symfony/polyfill-ctype/composer.json +38 -0
  265. package/src/api/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
  266. package/src/api/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -0
  267. package/src/api/vendor/symfony/polyfill-mbstring/README.md +13 -0
  268. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
  269. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -0
  270. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
  271. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -0
  272. package/src/api/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -0
  273. package/src/api/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
  274. package/src/api/vendor/symfony/polyfill-mbstring/composer.json +39 -0
  275. package/src/api/vendor/symfony/polyfill-php80/LICENSE +19 -0
  276. package/src/api/vendor/symfony/polyfill-php80/Php80.php +115 -0
  277. package/src/api/vendor/symfony/polyfill-php80/PhpToken.php +106 -0
  278. package/src/api/vendor/symfony/polyfill-php80/README.md +25 -0
  279. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -0
  280. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -0
  281. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -0
  282. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -0
  283. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -0
  284. package/src/api/vendor/symfony/polyfill-php80/bootstrap.php +42 -0
  285. package/src/api/vendor/symfony/polyfill-php80/composer.json +37 -0
  286. package/src/api/vendor/vlucas/phpdotenv/.editorconfig +15 -0
  287. package/src/api/vendor/vlucas/phpdotenv/.gitattributes +15 -0
  288. package/src/api/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
  289. package/src/api/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
  290. package/src/api/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
  291. package/src/api/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
  292. package/src/api/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
  293. package/src/api/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
  294. package/src/api/vendor/vlucas/phpdotenv/LICENSE +30 -0
  295. package/src/api/vendor/vlucas/phpdotenv/Makefile +17 -0
  296. package/src/api/vendor/vlucas/phpdotenv/README.md +370 -0
  297. package/src/api/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
  298. package/src/api/vendor/vlucas/phpdotenv/composer.json +60 -0
  299. package/src/api/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
  300. package/src/api/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
  301. package/src/api/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
  302. package/src/api/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -0
  303. package/src/api/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -0
  304. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -0
  305. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -0
  306. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -0
  307. package/src/api/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -0
  308. package/src/api/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -0
  309. package/src/api/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -0
  310. package/src/api/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -0
  311. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -0
  312. package/src/api/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -0
  313. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -0
  314. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -0
  315. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -0
  316. package/src/api/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -0
  317. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -0
  318. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -0
  319. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -0
  320. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -0
  321. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -0
  322. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -0
  323. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -0
  324. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -0
  325. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -0
  326. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -0
  327. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -0
  328. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -0
  329. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -0
  330. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -0
  331. package/src/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -0
  332. package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -0
  333. package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -0
  334. package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -0
  335. package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -0
  336. package/src/api/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -0
  337. package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -0
  338. package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -0
  339. package/src/api/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -0
  340. package/src/api/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -0
  341. package/src/api/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -0
  342. package/src/api/vendor/vlucas/phpdotenv/src/Validator.php +207 -0
  343. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
  344. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
  345. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
  346. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
  347. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
  348. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
  349. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
  350. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
  351. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
  352. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
  353. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
  354. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
  355. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
  356. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
  357. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
  358. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
  359. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
  360. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
  361. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
  362. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
  363. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
  364. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
  365. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
  366. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
  367. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
  368. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
  369. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
  370. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
  371. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
  372. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
  373. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
  374. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
  375. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
  376. package/src/api/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
  377. package/src/api/configExample.php +0 -28
  378. package/src/api/sendEmail.php +0 -131
@@ -0,0 +1,392 @@
1
+ <?php
2
+
3
+ /**
4
+ * PHPMailer - Base test class.
5
+ * PHP version 5.5.
6
+ *
7
+ * @author Marcus Bointon <phpmailer@synchromedia.co.uk>
8
+ * @author Andy Prevost
9
+ * @copyright 2012 - 2020 Marcus Bointon
10
+ * @copyright 2004 - 2009 Andy Prevost
11
+ * @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
12
+ */
13
+
14
+ namespace PHPMailer\Test;
15
+
16
+ use PHPMailer\PHPMailer\PHPMailer;
17
+ use PHPMailer\PHPMailer\SMTP;
18
+ use ReflectionClass;
19
+ use ReflectionProperty;
20
+ use Yoast\PHPUnitPolyfills\TestCases\TestCase as PolyfillTestCase;
21
+
22
+ /**
23
+ * PHPMailer - Base test class.
24
+ */
25
+ abstract class TestCase extends PolyfillTestCase
26
+ {
27
+ /**
28
+ * Whether or not to initialize the PHPMailer object to throw exceptions.
29
+ *
30
+ * Overload this constant in a concrete test class and set the value to `true`
31
+ * to initialize PHPMailer with Exceptions turned on.
32
+ *
33
+ * @var bool|null
34
+ */
35
+ const USE_EXCEPTIONS = null;
36
+
37
+ /**
38
+ * Property names and their values for the test instance of the PHPMailer class.
39
+ *
40
+ * These (public) properties will be set in the `set_up()` method.
41
+ *
42
+ * This property can be enhanced/overloaded in concrete test classes to change the presets
43
+ * or add additional properties.
44
+ *
45
+ * It is the responsibility of the individual test classes to ensure that
46
+ * property values of the correct type are passed.
47
+ *
48
+ * @var array Key is the property name, value the desired value for the PHPMailer instance.
49
+ */
50
+ protected $propertyChanges = [
51
+ 'SMTPDebug' => SMTP::DEBUG_CONNECTION, // Full debug output.
52
+ 'Debugoutput' => ['PHPMailer\Test\DebugLogTestListener', 'debugLog'],
53
+ ];
54
+
55
+ /**
56
+ * Holds the PHPMailer instance.
57
+ *
58
+ * @var PHPMailer
59
+ */
60
+ protected $Mail;
61
+
62
+ /**
63
+ * Holds the change log.
64
+ *
65
+ * @var string[]
66
+ */
67
+ private $ChangeLog = [];
68
+
69
+ /**
70
+ * Holds the note log.
71
+ *
72
+ * @var string[]
73
+ */
74
+ private $NoteLog = [];
75
+
76
+ /*
77
+ * List of *public* properties which we don't want listed in the changelog
78
+ * as they will already be included in the mail/debug information
79
+ * created in `buildBody()` anyway.
80
+ *
81
+ * Note: no need to include protected or private properties as the tests don't
82
+ * have access to those anyway.
83
+ *
84
+ * @var array Key is the property name, value irrelevant.
85
+ */
86
+ private $changelogExclude = [
87
+ // These are always set in set_up().
88
+ 'SMTPDebug' => true,
89
+ 'Debugoutput' => true,
90
+
91
+ // These are part of the message body anyway.
92
+ 'Subject' => true,
93
+ 'Body' => true,
94
+ 'AltBody' => true,
95
+ 'Ical' => true,
96
+
97
+ // These will always change.
98
+ 'MessageID' => true,
99
+ 'MessageDate' => true,
100
+
101
+ // These are always explicitly added via buildBody() anyway.
102
+ 'ContentType' => true,
103
+ 'CharSet' => true,
104
+ 'Host' => true,
105
+ ];
106
+
107
+ /**
108
+ * List of *static* properties in the PHPMailer class which _may_ be changed from within a test,
109
+ * with their default values.
110
+ *
111
+ * This list is used by the {@see `TestCase::resetStaticProperties()`} method, as well as
112
+ * in the {@see `TestCase::checkChanges()`} method.
113
+ *
114
+ * {@internal The default values have to be (manually) maintained here as the Reflection
115
+ * extension does not provide accurate information on the default values of static properties.}
116
+ *
117
+ * @var array Key is the property name, value the default as per the PHPMailer class.
118
+ */
119
+ private $PHPMailerStaticProps = [
120
+ 'LE' => PHPMailer::CRLF,
121
+ 'validator' => 'php',
122
+ 'language' => [],
123
+ ];
124
+
125
+ /**
126
+ * Run before each test class.
127
+ */
128
+ public static function set_up_before_class()
129
+ {
130
+ if (defined('PHPMAILER_INCLUDE_DIR') === false) {
131
+ /*
132
+ * Set up default include path.
133
+ * Default to the dir above the test dir, i.e. the project home dir.
134
+ */
135
+ define('PHPMAILER_INCLUDE_DIR', dirname(__DIR__));
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Run before each test is started.
141
+ */
142
+ protected function set_up()
143
+ {
144
+ // Initialize the PHPMailer class.
145
+ if (is_bool(static::USE_EXCEPTIONS)) {
146
+ $this->Mail = new PHPMailer(static::USE_EXCEPTIONS);
147
+ } else {
148
+ $this->Mail = new PHPMailer();
149
+ }
150
+
151
+ // Set initial property values.
152
+ foreach ($this->propertyChanges as $key => $value) {
153
+ if ($key === 'to' || $key === 'cc' || $key === 'bcc' || $key === 'ReplyTo') {
154
+ if (is_array($value) && isset($value['address'], $value['name'])) {
155
+ $this->setAddress($value['address'], $value['name'], $key);
156
+ } elseif (is_string($value)) {
157
+ $this->setAddress($value, '', $key);
158
+ }
159
+
160
+ continue;
161
+ }
162
+
163
+ $this->Mail->{$key} = $value;
164
+ }
165
+
166
+ if ($this->Mail->Host != '') {
167
+ $this->Mail->isSMTP();
168
+ } else {
169
+ $this->Mail->isMail();
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Run after each test is completed.
175
+ */
176
+ protected function tear_down()
177
+ {
178
+ // Make sure that any changes to static variables are undone after each test.
179
+ $this->resetStaticProperties();
180
+
181
+ // Clean test class native properties between tests.
182
+ $this->Mail = null;
183
+ $this->ChangeLog = [];
184
+ $this->NoteLog = [];
185
+ }
186
+
187
+ /**
188
+ * Reset the static properties in the PHPMailer class to their default values.
189
+ */
190
+ protected function resetStaticProperties()
191
+ {
192
+ $reflClass = new ReflectionClass(PHPMailer::class);
193
+ $staticPropValues = $reflClass->getStaticProperties();
194
+
195
+ foreach ($this->PHPMailerStaticProps as $name => $default) {
196
+ if (isset($staticPropValues[$name]) && $staticPropValues[$name] === $default) {
197
+ continue;
198
+ }
199
+
200
+ self::updateStaticProperty(PHPMailer::class, $name, $default);
201
+ }
202
+ }
203
+
204
+ /**
205
+ * Update the value of a - potentially inaccessible - static property in a class.
206
+ *
207
+ * @param string $className The target class.
208
+ * @param string $propertyName The name of the static property.
209
+ * @param mixed $value The new value for the property.
210
+ */
211
+ public static function updateStaticProperty($className, $propertyName, $value)
212
+ {
213
+ $reflProp = new ReflectionProperty($className, $propertyName);
214
+ if (PHP_VERSION_ID < 80100) {
215
+ //setAccessible is only needed in PHP < 8.1
216
+ $isPublic = $reflProp->isPublic();
217
+ if ($isPublic !== true) {
218
+ $reflProp->setAccessible(true);
219
+ }
220
+ }
221
+
222
+ $reflProp->setValue(null, $value);
223
+
224
+ if (PHP_VERSION_ID < 80100) {
225
+ if ($isPublic !== true) {
226
+ $reflProp->setAccessible(false);
227
+ }
228
+ }
229
+ }
230
+
231
+ /**
232
+ * Build the body of the message in the appropriate format.
233
+ */
234
+ protected function buildBody()
235
+ {
236
+ $this->checkChanges();
237
+
238
+ // Determine line endings for message.
239
+ if ('text/html' === $this->Mail->ContentType || $this->Mail->AltBody !== '') {
240
+ $eol = "<br>\r\n";
241
+ $bullet_start = '<li>';
242
+ $bullet_end = "</li>\r\n";
243
+ $list_start = "<ul>\r\n";
244
+ $list_end = "</ul>\r\n";
245
+ } else {
246
+ $eol = "\r\n";
247
+ $bullet_start = ' - ';
248
+ $bullet_end = "\r\n";
249
+ $list_start = '';
250
+ $list_end = '';
251
+ }
252
+
253
+ $ReportBody = '';
254
+
255
+ $ReportBody .= '---------------------' . $eol;
256
+ $ReportBody .= 'Unit Test Information' . $eol;
257
+ $ReportBody .= '---------------------' . $eol;
258
+ $ReportBody .= 'phpmailer version: ' . PHPMailer::VERSION . $eol;
259
+ $ReportBody .= 'Content Type: ' . $this->Mail->ContentType . $eol;
260
+ $ReportBody .= 'CharSet: ' . $this->Mail->CharSet . $eol;
261
+
262
+ if ($this->Mail->Host !== '') {
263
+ $ReportBody .= 'Host: ' . $this->Mail->Host . $eol;
264
+ }
265
+
266
+ // If attachments then create an attachment list.
267
+ $attachments = $this->Mail->getAttachments();
268
+ if (count($attachments) > 0) {
269
+ $ReportBody .= 'Attachments:' . $eol;
270
+ $ReportBody .= $list_start;
271
+ foreach ($attachments as $attachment) {
272
+ $ReportBody .= $bullet_start . 'Name: ' . $attachment[1] . ', ';
273
+ $ReportBody .= 'Encoding: ' . $attachment[3] . ', ';
274
+ $ReportBody .= 'Type: ' . $attachment[4] . $bullet_end;
275
+ }
276
+ $ReportBody .= $list_end . $eol;
277
+ }
278
+
279
+ // If there are changes then list them.
280
+ if (count($this->ChangeLog) > 0) {
281
+ $ReportBody .= 'Changes' . $eol;
282
+ $ReportBody .= '-------' . $eol;
283
+
284
+ $ReportBody .= $list_start;
285
+ foreach ($this->ChangeLog as $iValue) {
286
+ $ReportBody .= $bullet_start . $iValue[0] . ' was changed to [' .
287
+ $iValue[1] . ']' . $bullet_end;
288
+ }
289
+ $ReportBody .= $list_end . $eol . $eol;
290
+ }
291
+
292
+ // If there are notes then list them.
293
+ if (count($this->NoteLog) > 0) {
294
+ $ReportBody .= 'Notes' . $eol;
295
+ $ReportBody .= '-----' . $eol;
296
+
297
+ $ReportBody .= $list_start;
298
+ foreach ($this->NoteLog as $iValue) {
299
+ $ReportBody .= $bullet_start . $iValue . $bullet_end;
300
+ }
301
+ $ReportBody .= $list_end;
302
+ }
303
+
304
+ // Re-attach the original body.
305
+ $this->Mail->Body .= $eol . $ReportBody;
306
+ }
307
+
308
+ /**
309
+ * Check which default settings have been changed for the report.
310
+ */
311
+ protected function checkChanges()
312
+ {
313
+ // Get the default values of all public properties.
314
+ $defaults = get_class_vars(PHPMailer::class);
315
+
316
+ foreach ($defaults as $propertyName => $value) {
317
+ if (isset($this->changelogExclude[$propertyName])) {
318
+ continue;
319
+ }
320
+
321
+ if (isset($this->PHPMailerStaticProps[$propertyName])) {
322
+ // Nested static access is not supported in PHP < 7.0, so we need an interim variable.
323
+ $mail = $this->Mail;
324
+ if ($mail::${$propertyName} !== $this->PHPMailerStaticProps[$propertyName]) {
325
+ $this->addChange($propertyName, var_export($mail::${$propertyName}, true));
326
+ }
327
+
328
+ continue;
329
+ }
330
+
331
+ // Check against the TestCase specific defaults.
332
+ if (
333
+ isset($this->propertyChanges[$propertyName])
334
+ && $this->Mail->{$propertyName} !== $this->propertyChanges[$propertyName]
335
+ ) {
336
+ $this->addChange($propertyName, var_export($this->Mail->{$propertyName}, true));
337
+ continue;
338
+ }
339
+
340
+ // Check against the PHPMailer class defaults.
341
+ if ($this->Mail->{$propertyName} !== $value) {
342
+ $this->addChange($propertyName, var_export($this->Mail->{$propertyName}, true));
343
+ }
344
+ }
345
+ }
346
+
347
+ /**
348
+ * Add a changelog entry.
349
+ *
350
+ * @param string $sName
351
+ * @param string $sNewValue
352
+ */
353
+ protected function addChange($sName, $sNewValue)
354
+ {
355
+ $this->ChangeLog[] = [$sName, $sNewValue];
356
+ }
357
+
358
+ /**
359
+ * Adds a simple note to the message.
360
+ *
361
+ * @param string $sValue
362
+ */
363
+ protected function addNote($sValue)
364
+ {
365
+ $this->NoteLog[] = $sValue;
366
+ }
367
+
368
+ /**
369
+ * Adds all of the addresses.
370
+ *
371
+ * @param string $sAddress
372
+ * @param string $sName
373
+ * @param string $sType
374
+ *
375
+ * @return bool
376
+ */
377
+ protected function setAddress($sAddress, $sName = '', $sType = 'to')
378
+ {
379
+ switch ($sType) {
380
+ case 'to':
381
+ return $this->Mail->addAddress($sAddress, $sName);
382
+ case 'cc':
383
+ return $this->Mail->addCC($sAddress, $sName);
384
+ case 'bcc':
385
+ return $this->Mail->addBCC($sAddress, $sName);
386
+ case 'ReplyTo':
387
+ return $this->Mail->addReplyTo($sAddress, $sName);
388
+ }
389
+
390
+ return false;
391
+ }
392
+ }
@@ -0,0 +1,126 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Fake POP3 server
4
+ # By Marcus Bointon <phpmailer@synchromedia.co.uk>
5
+ # Copyright 2010 - 2020 Marcus Bointon
6
+ # Based on code by 'Frater' found at https://www.linuxquestions.org/questions/programming-9/fake-pop3-server-to-capture-pop3-passwords-933733/
7
+ # Does not actually serve any mail, but supports commands sufficient to test POP-before SMTP
8
+ # Can be run directly from a shell like this:
9
+ # mkfifo fifo; nc -l 1100 <fifo |./fakepopserver.sh >fifo; rm fifo
10
+ # It will accept any user name and will return a positive response for the password 'test'
11
+
12
+ # Licensed under the GNU Lesser General Public License: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html
13
+
14
+ # Enable debug output
15
+ #set -xv
16
+ export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
17
+
18
+ LOGFOLDER=/tmp
19
+
20
+ LOGFILE=${LOGFOLDER}/fakepop.log
21
+
22
+ LOGGING=1
23
+ DEBUG=1
24
+ TIMEOUT=60
25
+
26
+ POP_USER=
27
+ POP_PASSWRD=test
28
+
29
+ LINES=1
30
+ BREAK=0
31
+
32
+ write_log () {
33
+ if [ ${LINES} -eq 1 ] ; then
34
+ echo '---' >>${LOGFILE}
35
+ fi
36
+ let LINES+=1
37
+ [ ${LOGGING} = 0 ] || echo -e "`date '+%b %d %H:%M'` pop3 $*" >>${LOGFILE}
38
+ }
39
+
40
+ ANSWER="+OK Fake POP3 Service Ready"
41
+
42
+ while [ ${BREAK} -eq 0 ] ; do
43
+ echo -en "${ANSWER}\r\n"
44
+
45
+ REPLY=""
46
+
47
+ #Input appears in $REPLY
48
+ read -t ${TIMEOUT}
49
+
50
+ ANSWER="+OK "
51
+ COMMAND=""
52
+ ARGS=""
53
+ TIMEOUT=30
54
+
55
+ if [ "$REPLY" ] ; then
56
+ write_log "RAW input: '`echo "${REPLY}" | tr -cd '[ -~]'`'"
57
+
58
+ COMMAND="`echo "${REPLY}" | awk '{print $1}' | tr -cd '\40-\176' | tr 'a-z' 'A-Z'`"
59
+ ARGS="`echo "${REPLY}" | tr -cd '\40-\176' | awk '{for(i=2;i<=NF;i++){printf "%s ", $i};printf "\n"}' | sed 's/ $//'`"
60
+
61
+ write_log "Command: \"${COMMAND}\""
62
+ write_log "Arguments: \"${ARGS}\""
63
+
64
+ case "$COMMAND" in
65
+ QUIT)
66
+ break
67
+ ;;
68
+ USER)
69
+ if [ -n "${ARGS}" ] ; then
70
+ POP_USER="${ARGS}"
71
+ ANSWER="+OK Please send PASS command"
72
+ fi
73
+ ;;
74
+ AUTH)
75
+ ANSWER="+OK \r\n."
76
+ ;;
77
+ CAPA)
78
+ ANSWER="+OK Capabilities include\r\nUSER\r\nCAPA\r\n."
79
+ ;;
80
+ PASS)
81
+ if [ "${POP_PASSWRD}" == "${ARGS}" ] ; then
82
+ ANSWER="+OK Logged in."
83
+ AUTH=1
84
+ else
85
+ ANSWER="-ERR Login failed."
86
+ fi
87
+ ;;
88
+ LIST)
89
+ if [ "${AUTH}" = 0 ] ; then
90
+ ANSWER="-ERR Not authenticated"
91
+ else
92
+ if [ -z "${ARGS}" ] ; then
93
+ ANSWER="+OK No messages, really\r\n."
94
+ else
95
+ ANSWER="-ERR No messages, no list, no status"
96
+ fi
97
+ fi
98
+ ;;
99
+ RSET)
100
+ ANSWER="+OK Resetting or whatever\r\n."
101
+ ;;
102
+ LAST)
103
+ if [ "${AUTH}" = 0 ] ; then
104
+ ANSWER="-ERR Not authenticated"
105
+ else
106
+ ANSWER="+OK 0"
107
+ fi
108
+ ;;
109
+ STAT)
110
+ if [ "${AUTH}" = 0 ] ; then
111
+ ANSWER="-ERR Not authenticated"
112
+ else
113
+ ANSWER="+OK 0 0"
114
+ fi
115
+ ;;
116
+ NOOP)
117
+ ANSWER="+OK Hang on, doing nothing"
118
+ ;;
119
+ esac
120
+ else
121
+ echo "+OK Connection timed out"
122
+ break
123
+ fi
124
+ done
125
+
126
+ echo -en "+OK Bye!\r\n"
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env bash
2
+ #Fake sendmail script, adapted from:
3
+ #https://github.com/mrded/MNPP/blob/ee64fb2a88efc70ba523b78e9ce61f9f1ed3b4a9/init/fake-sendmail.sh
4
+
5
+ #Create a temp folder to put messages in
6
+ numPath="${TMPDIR-/tmp/}fakemail"
7
+ umask 037
8
+ mkdir -p ${numPath}
9
+
10
+ if [ ! -f ${numPath}/num ]; then
11
+ echo "0" > ${numPath}/num
12
+ fi
13
+ num=`cat ${numPath}/num`
14
+ num=$((${num} + 1))
15
+ echo ${num} > ${numPath}/num
16
+
17
+ name="${numPath}/message_${num}.eml"
18
+ while read line
19
+ do
20
+ echo ${line} >> ${name}
21
+ done
22
+ exit 0
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -xv
4
+
5
+ # Run the fake pop server from bash
6
+ # Defaults to port 1100 so it can be run by unpriv users and not clash with a real server
7
+ # Optionally, pass in a port number as the first arg
8
+
9
+ rm -f fifo
10
+ mkfifo fifo
11
+ nc -l ${1:-1100} <fifo |bash ./fakepopserver.sh >fifo
12
+ rm fifo
@@ -0,0 +1,8 @@
1
+ <?php
2
+
3
+ $_REQUEST['submitted'] = 1;
4
+ $_REQUEST['mail_to'] = 'somebody@example.com';
5
+ $_REQUEST['mail_from'] = 'phpunit@example.com';
6
+ $_REQUEST['mail_cc'] = 'cc@example.com';
7
+ $_REQUEST['mail_host'] = 'localhost';
8
+ $_REQUEST['mail_port'] = 2500;
@@ -0,0 +1,12 @@
1
+ <?php
2
+
3
+ //These are global functions without a namespace used for testing validator injection
4
+ function php()
5
+ {
6
+ return false;
7
+ }
8
+
9
+ function phpx()
10
+ {
11
+ return false;
12
+ }
@@ -0,0 +1,13 @@
1
+ * text=auto
2
+
3
+ /tests export-ignore
4
+ /.gitattributes export-ignore
5
+ /.github export-ignore
6
+ /.gitignore export-ignore
7
+ /.travis.yml export-ignore
8
+ /Makefile export-ignore
9
+ /phpstan-baseline.neon export-ignore
10
+ /phpstan.neon.dist export-ignore
11
+ /phpunit.xml.dist export-ignore
12
+ /README.md export-ignore
13
+ /vendor-bin export-ignore