create-berna-stencil 1.0.9 → 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 (365) hide show
  1. package/.env.example +8 -0
  2. package/.gitignore +2 -1
  3. package/README.md +1 -5
  4. package/bin/create.js +2 -1
  5. package/package.json +71 -70
  6. package/src/api/vendor/autoload.php +22 -22
  7. package/src/api/vendor/composer/ClassLoader.php +579 -579
  8. package/src/api/vendor/composer/InstalledVersions.php +396 -396
  9. package/src/api/vendor/composer/LICENSE +21 -21
  10. package/src/api/vendor/composer/autoload_classmap.php +15 -15
  11. package/src/api/vendor/composer/autoload_files.php +12 -12
  12. package/src/api/vendor/composer/autoload_namespaces.php +9 -9
  13. package/src/api/vendor/composer/autoload_psr4.php +16 -16
  14. package/src/api/vendor/composer/autoload_real.php +50 -50
  15. package/src/api/vendor/composer/autoload_static.php +86 -86
  16. package/src/api/vendor/composer/installed.json +582 -582
  17. package/src/api/vendor/composer/installed.php +86 -86
  18. package/src/api/vendor/composer/platform_check.php +25 -25
  19. package/src/api/vendor/graham-campbell/result-type/.gitattributes +9 -0
  20. package/src/api/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
  21. package/src/api/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
  22. package/src/api/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
  23. package/src/api/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
  24. package/src/api/vendor/graham-campbell/result-type/.github/workflows/stale.yml +11 -0
  25. package/src/api/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
  26. package/src/api/vendor/graham-campbell/result-type/CHANGELOG.md +53 -0
  27. package/src/api/vendor/graham-campbell/result-type/LICENSE +21 -0
  28. package/src/api/vendor/graham-campbell/result-type/README.md +42 -0
  29. package/src/api/vendor/graham-campbell/result-type/composer.json +33 -0
  30. package/src/api/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
  31. package/src/api/vendor/graham-campbell/result-type/src/Error.php +121 -0
  32. package/src/api/vendor/graham-campbell/result-type/src/Result.php +69 -0
  33. package/src/api/vendor/graham-campbell/result-type/src/Success.php +120 -0
  34. package/src/api/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
  35. package/src/api/vendor/phpmailer/phpmailer/.codecov.yml +21 -0
  36. package/src/api/vendor/phpmailer/phpmailer/.editorconfig +15 -0
  37. package/src/api/vendor/phpmailer/phpmailer/.gitattributes +17 -0
  38. package/src/api/vendor/phpmailer/phpmailer/.github/FUNDING.yml +6 -0
  39. package/src/api/vendor/phpmailer/phpmailer/.github/ISSUE_TEMPLATE/bug_report.md +23 -0
  40. package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/Dockerfile +15 -0
  41. package/src/api/vendor/phpmailer/phpmailer/.github/actions/build-docs/entrypoint.sh +5 -0
  42. package/src/api/vendor/phpmailer/phpmailer/.github/dependabot.yml +21 -0
  43. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/docs.yaml +30 -0
  44. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/scorecards.yml +61 -0
  45. package/src/api/vendor/phpmailer/phpmailer/.github/workflows/tests.yml +237 -0
  46. package/src/api/vendor/phpmailer/phpmailer/.phan/config.php +41 -0
  47. package/src/api/vendor/phpmailer/phpmailer/COMMITMENT +46 -0
  48. package/src/api/vendor/phpmailer/phpmailer/LICENSE +502 -0
  49. package/src/api/vendor/phpmailer/phpmailer/README.md +232 -0
  50. package/src/api/vendor/phpmailer/phpmailer/SECURITY.md +37 -0
  51. package/src/api/vendor/phpmailer/phpmailer/SMTPUTF8.md +48 -0
  52. package/src/api/vendor/phpmailer/phpmailer/UPGRADING.md +125 -0
  53. package/src/api/vendor/phpmailer/phpmailer/VERSION +1 -0
  54. package/src/api/vendor/phpmailer/phpmailer/changelog.md +1122 -0
  55. package/src/api/vendor/phpmailer/phpmailer/composer.json +84 -0
  56. package/src/api/vendor/phpmailer/phpmailer/docs/README.md +9 -0
  57. package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_gen_keys.phps +81 -0
  58. package/src/api/vendor/phpmailer/phpmailer/examples/DKIM_sign.phps +46 -0
  59. package/src/api/vendor/phpmailer/phpmailer/examples/README.md +96 -0
  60. package/src/api/vendor/phpmailer/phpmailer/examples/azure_xoauth2.phps +126 -0
  61. package/src/api/vendor/phpmailer/phpmailer/examples/callback.phps +76 -0
  62. package/src/api/vendor/phpmailer/phpmailer/examples/contactform-ajax.phps +146 -0
  63. package/src/api/vendor/phpmailer/phpmailer/examples/contactform.phps +95 -0
  64. package/src/api/vendor/phpmailer/phpmailer/examples/contents.html +17 -0
  65. package/src/api/vendor/phpmailer/phpmailer/examples/contentsutf8.html +23 -0
  66. package/src/api/vendor/phpmailer/phpmailer/examples/exceptions.phps +40 -0
  67. package/src/api/vendor/phpmailer/phpmailer/examples/extending.phps +72 -0
  68. package/src/api/vendor/phpmailer/phpmailer/examples/gmail.phps +106 -0
  69. package/src/api/vendor/phpmailer/phpmailer/examples/gmail_xoauth.phps +121 -0
  70. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.afdesign +0 -0
  71. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.png +0 -0
  72. package/src/api/vendor/phpmailer/phpmailer/examples/images/PHPMailer card logo.svg +209 -0
  73. package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer.png +0 -0
  74. package/src/api/vendor/phpmailer/phpmailer/examples/images/phpmailer_mini.png +0 -0
  75. package/src/api/vendor/phpmailer/phpmailer/examples/mail.phps +35 -0
  76. package/src/api/vendor/phpmailer/phpmailer/examples/mailing_list.phps +96 -0
  77. package/src/api/vendor/phpmailer/phpmailer/examples/pop_before_smtp.phps +60 -0
  78. package/src/api/vendor/phpmailer/phpmailer/examples/send_file_upload.phps +60 -0
  79. package/src/api/vendor/phpmailer/phpmailer/examples/send_multiple_file_upload.phps +60 -0
  80. package/src/api/vendor/phpmailer/phpmailer/examples/sendmail.phps +37 -0
  81. package/src/api/vendor/phpmailer/phpmailer/examples/sendoauth2.phps +100 -0
  82. package/src/api/vendor/phpmailer/phpmailer/examples/simple_contact_form.phps +102 -0
  83. package/src/api/vendor/phpmailer/phpmailer/examples/smime_signed_mail.phps +99 -0
  84. package/src/api/vendor/phpmailer/phpmailer/examples/smtp.phps +62 -0
  85. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_check.phps +60 -0
  86. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_low_memory.phps +117 -0
  87. package/src/api/vendor/phpmailer/phpmailer/examples/smtp_no_auth.phps +53 -0
  88. package/src/api/vendor/phpmailer/phpmailer/examples/ssl_options.phps +81 -0
  89. package/src/api/vendor/phpmailer/phpmailer/get_oauth_token.php +182 -0
  90. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-af.php +26 -0
  91. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ar.php +27 -0
  92. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-as.php +35 -0
  93. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-az.php +27 -0
  94. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ba.php +27 -0
  95. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-be.php +27 -0
  96. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bg.php +27 -0
  97. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-bn.php +35 -0
  98. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ca.php +27 -0
  99. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-cs.php +28 -0
  100. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-da.php +39 -0
  101. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-de.php +28 -0
  102. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-el.php +33 -0
  103. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-eo.php +37 -0
  104. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-es.php +38 -0
  105. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-et.php +28 -0
  106. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fa.php +28 -0
  107. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fi.php +27 -0
  108. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fo.php +27 -0
  109. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-fr.php +36 -0
  110. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-gl.php +27 -0
  111. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-he.php +27 -0
  112. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hi.php +35 -0
  113. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hr.php +27 -0
  114. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hu.php +27 -0
  115. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-hy.php +27 -0
  116. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-id.php +31 -0
  117. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-it.php +28 -0
  118. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ja.php +37 -0
  119. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ka.php +27 -0
  120. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ko.php +27 -0
  121. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ku.php +27 -0
  122. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lt.php +27 -0
  123. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-lv.php +27 -0
  124. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mg.php +27 -0
  125. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-mn.php +27 -0
  126. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ms.php +27 -0
  127. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nb.php +37 -0
  128. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-nl.php +38 -0
  129. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pl.php +33 -0
  130. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt.php +34 -0
  131. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-pt_br.php +38 -0
  132. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ro.php +33 -0
  133. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ru.php +36 -0
  134. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-si.php +34 -0
  135. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sk.php +30 -0
  136. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sl.php +36 -0
  137. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr.php +28 -0
  138. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sr_latn.php +28 -0
  139. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-sv.php +27 -0
  140. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tl.php +28 -0
  141. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-tr.php +38 -0
  142. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-uk.php +28 -0
  143. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-ur.php +30 -0
  144. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-vi.php +27 -0
  145. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh.php +29 -0
  146. package/src/api/vendor/phpmailer/phpmailer/language/phpmailer.lang-zh_cn.php +36 -0
  147. package/src/api/vendor/phpmailer/phpmailer/phpcs.xml.dist +52 -0
  148. package/src/api/vendor/phpmailer/phpmailer/phpdoc.dist.xml +20 -0
  149. package/src/api/vendor/phpmailer/phpmailer/phpunit.xml.dist +36 -0
  150. package/src/api/vendor/phpmailer/phpmailer/src/DSNConfigurator.php +245 -0
  151. package/src/api/vendor/phpmailer/phpmailer/src/Exception.php +40 -0
  152. package/src/api/vendor/phpmailer/phpmailer/src/OAuth.php +139 -0
  153. package/src/api/vendor/phpmailer/phpmailer/src/OAuthTokenProvider.php +44 -0
  154. package/src/api/vendor/phpmailer/phpmailer/src/PHPMailer.php +5525 -0
  155. package/src/api/vendor/phpmailer/phpmailer/src/POP3.php +470 -0
  156. package/src/api/vendor/phpmailer/phpmailer/src/SMTP.php +1617 -0
  157. package/src/api/vendor/phpmailer/phpmailer/test/DebugLogTestListener.php +47 -0
  158. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/accessible.txt +1 -0
  159. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/FileIsAccessibleTest/inaccessible.txt +1 -0
  160. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-fr.php +10 -0
  161. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-nl.php +10 -0
  162. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xa_scri_cc.php +9 -0
  163. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xb_scri.php +9 -0
  164. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xc_cc.php +9 -0
  165. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_cc.php +9 -0
  166. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xd_scri.php +9 -0
  167. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xe.php +9 -0
  168. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-xx.php +9 -0
  169. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yy.php +16 -0
  170. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-yz.php +16 -0
  171. package/src/api/vendor/phpmailer/phpmailer/test/Fixtures/LocalizationTest/phpmailer.lang-zz.php +20 -0
  172. package/src/api/vendor/phpmailer/phpmailer/test/Language/TranslationCompletenessTest.php +97 -0
  173. package/src/api/vendor/phpmailer/phpmailer/test/OAuth/OAuthTest.php +76 -0
  174. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddEmbeddedImageTest.php +178 -0
  175. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringAttachmentTest.php +147 -0
  176. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddStringEmbeddedImageTest.php +161 -0
  177. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AddrFormatTest.php +70 -0
  178. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/AuthCRAMMD5Test.php +48 -0
  179. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/CustomHeaderTest.php +285 -0
  180. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMTest.php +258 -0
  181. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DKIMWithoutExceptionsTest.php +46 -0
  182. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/DSNConfiguratorTest.php +221 -0
  183. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeQTest.php +110 -0
  184. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/EncodeStringTest.php +135 -0
  185. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FileIsAccessibleTest.php +103 -0
  186. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/FilenameToTypeTest.php +74 -0
  187. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GenerateIdTest.php +75 -0
  188. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/GetLastMessageIDTest.php +110 -0
  189. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/HasLineLongerThanMaxTest.php +158 -0
  190. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Html2TextTest.php +231 -0
  191. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ICalTest.php +126 -0
  192. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsPermittedPathTest.php +108 -0
  193. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/IsValidHostTest.php +107 -0
  194. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/LocalizationTest.php +505 -0
  195. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MailTransportTest.php +261 -0
  196. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MbPathinfoTest.php +171 -0
  197. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/MimeTypesTest.php +70 -0
  198. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/NormalizeBreaksTest.php +111 -0
  199. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PHPMailerTest.php +1388 -0
  200. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ParseAddressesTest.php +321 -0
  201. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/PunyencodeAddressTest.php +141 -0
  202. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/QuotedStringTest.php +70 -0
  203. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ReplyToGetSetClearTest.php +444 -0
  204. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetErrorTest.php +154 -0
  205. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetFromTest.php +202 -0
  206. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetTest.php +81 -0
  207. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/SetWordWrapTest.php +120 -0
  208. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/Utf8CharBoundaryTest.php +66 -0
  209. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressCustomValidatorTest.php +116 -0
  210. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/ValidateAddressTest.php +485 -0
  211. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/WrapTextTest.php +125 -0
  212. package/src/api/vendor/phpmailer/phpmailer/test/PHPMailer/XMailerTest.php +75 -0
  213. package/src/api/vendor/phpmailer/phpmailer/test/POP3/PopBeforeSmtpTest.php +139 -0
  214. package/src/api/vendor/phpmailer/phpmailer/test/PreSendTestCase.php +46 -0
  215. package/src/api/vendor/phpmailer/phpmailer/test/Security/DenialOfServiceVectorsTest.php +52 -0
  216. package/src/api/vendor/phpmailer/phpmailer/test/SendTestCase.php +126 -0
  217. package/src/api/vendor/phpmailer/phpmailer/test/TestCase.php +392 -0
  218. package/src/api/vendor/phpmailer/phpmailer/test/fakepopserver.sh +126 -0
  219. package/src/api/vendor/phpmailer/phpmailer/test/fakesendmail.sh +22 -0
  220. package/src/api/vendor/phpmailer/phpmailer/test/runfakepopserver.sh +12 -0
  221. package/src/api/vendor/phpmailer/phpmailer/test/testbootstrap-dist.php +8 -0
  222. package/src/api/vendor/phpmailer/phpmailer/test/validators.php +12 -0
  223. package/src/api/vendor/phpoption/phpoption/.gitattributes +13 -0
  224. package/src/api/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
  225. package/src/api/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
  226. package/src/api/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
  227. package/src/api/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
  228. package/src/api/vendor/phpoption/phpoption/.github/workflows/static.yml +40 -0
  229. package/src/api/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
  230. package/src/api/vendor/phpoption/phpoption/LICENSE +201 -0
  231. package/src/api/vendor/phpoption/phpoption/Makefile +17 -0
  232. package/src/api/vendor/phpoption/phpoption/README.md +201 -0
  233. package/src/api/vendor/phpoption/phpoption/composer.json +50 -0
  234. package/src/api/vendor/phpoption/phpoption/phpstan-baseline.neon +44 -0
  235. package/src/api/vendor/phpoption/phpoption/phpstan.neon.dist +7 -0
  236. package/src/api/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
  237. package/src/api/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -0
  238. package/src/api/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -0
  239. package/src/api/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -0
  240. package/src/api/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -0
  241. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +72 -0
  242. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +357 -0
  243. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
  244. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +166 -0
  245. package/src/api/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
  246. package/src/api/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
  247. package/src/api/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
  248. package/src/api/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
  249. package/src/api/vendor/symfony/polyfill-ctype/LICENSE +19 -0
  250. package/src/api/vendor/symfony/polyfill-ctype/README.md +12 -0
  251. package/src/api/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
  252. package/src/api/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
  253. package/src/api/vendor/symfony/polyfill-ctype/composer.json +38 -0
  254. package/src/api/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
  255. package/src/api/vendor/symfony/polyfill-mbstring/Mbstring.php +1077 -0
  256. package/src/api/vendor/symfony/polyfill-mbstring/README.md +13 -0
  257. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
  258. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -0
  259. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
  260. package/src/api/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -0
  261. package/src/api/vendor/symfony/polyfill-mbstring/bootstrap.php +171 -0
  262. package/src/api/vendor/symfony/polyfill-mbstring/bootstrap80.php +167 -0
  263. package/src/api/vendor/symfony/polyfill-mbstring/composer.json +39 -0
  264. package/src/api/vendor/symfony/polyfill-php80/LICENSE +19 -0
  265. package/src/api/vendor/symfony/polyfill-php80/Php80.php +115 -0
  266. package/src/api/vendor/symfony/polyfill-php80/PhpToken.php +106 -0
  267. package/src/api/vendor/symfony/polyfill-php80/README.md +25 -0
  268. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -0
  269. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -0
  270. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -0
  271. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -0
  272. package/src/api/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -0
  273. package/src/api/vendor/symfony/polyfill-php80/bootstrap.php +42 -0
  274. package/src/api/vendor/symfony/polyfill-php80/composer.json +37 -0
  275. package/src/api/vendor/vlucas/phpdotenv/.editorconfig +15 -0
  276. package/src/api/vendor/vlucas/phpdotenv/.gitattributes +15 -0
  277. package/src/api/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
  278. package/src/api/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
  279. package/src/api/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
  280. package/src/api/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
  281. package/src/api/vendor/vlucas/phpdotenv/.github/workflows/static.yml +40 -0
  282. package/src/api/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
  283. package/src/api/vendor/vlucas/phpdotenv/LICENSE +30 -0
  284. package/src/api/vendor/vlucas/phpdotenv/Makefile +17 -0
  285. package/src/api/vendor/vlucas/phpdotenv/README.md +370 -0
  286. package/src/api/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
  287. package/src/api/vendor/vlucas/phpdotenv/composer.json +60 -0
  288. package/src/api/vendor/vlucas/phpdotenv/phpstan-baseline.neon +157 -0
  289. package/src/api/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
  290. package/src/api/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
  291. package/src/api/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -0
  292. package/src/api/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -0
  293. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -0
  294. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -0
  295. package/src/api/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -0
  296. package/src/api/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -0
  297. package/src/api/vendor/vlucas/phpdotenv/src/Loader/Loader.php +48 -0
  298. package/src/api/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -0
  299. package/src/api/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -0
  300. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -0
  301. package/src/api/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +299 -0
  302. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -0
  303. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -0
  304. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -0
  305. package/src/api/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -0
  306. package/src/api/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -0
  307. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -0
  308. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -0
  309. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -0
  310. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +88 -0
  311. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -0
  312. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -0
  313. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -0
  314. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -0
  315. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -0
  316. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -0
  317. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -0
  318. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +88 -0
  319. package/src/api/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -0
  320. package/src/api/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -0
  321. package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -0
  322. package/src/api/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -0
  323. package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -0
  324. package/src/api/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -0
  325. package/src/api/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -0
  326. package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -0
  327. package/src/api/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -0
  328. package/src/api/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -0
  329. package/src/api/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -0
  330. package/src/api/vendor/vlucas/phpdotenv/src/Util/Str.php +108 -0
  331. package/src/api/vendor/vlucas/phpdotenv/src/Validator.php +207 -0
  332. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
  333. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
  334. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
  335. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
  336. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
  337. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
  338. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
  339. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
  340. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
  341. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
  342. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
  343. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
  344. package/src/api/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
  345. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
  346. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
  347. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
  348. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
  349. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
  350. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
  351. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
  352. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
  353. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
  354. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
  355. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
  356. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
  357. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
  358. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
  359. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
  360. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
  361. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
  362. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
  363. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
  364. package/src/api/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
  365. package/src/api/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +15 -0
@@ -0,0 +1,126 @@
1
+ <?php
2
+
3
+ /**
4
+ * PHPMailer - PHP email transport unit tests.
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\PHPMailer;
15
+
16
+ use PHPMailer\Test\PreSendTestCase;
17
+
18
+ /**
19
+ * Test ICal calendar events handling.
20
+ */
21
+ final class ICalTest extends PreSendTestCase
22
+ {
23
+ /**
24
+ * Test ICal method.
25
+ *
26
+ * @dataProvider dataICalMethod
27
+ * @covers \PHPMailer\PHPMailer\PHPMailer::createBody
28
+ *
29
+ * @param string $methodLine The Ical method line to use.
30
+ * @param string $expected The expected method in the content type header.
31
+ */
32
+ public function testICalMethod($methodLine, $expected)
33
+ {
34
+ $this->Mail->Subject .= ': ICal method';
35
+ $this->Mail->Body = '<h3>ICal method test.</h3>';
36
+ $this->Mail->AltBody = 'ICal method test.';
37
+ $this->Mail->Ical = 'BEGIN:VCALENDAR'
38
+ . "\r\nVERSION:2.0"
39
+ . "\r\nPRODID:-//PHPMailer//PHPMailer Calendar Plugin 1.0//EN"
40
+ . $methodLine
41
+ . "\r\nCALSCALE:GREGORIAN"
42
+ . "\r\nX-MICROSOFT-CALSCALE:GREGORIAN"
43
+ . "\r\nBEGIN:VEVENT"
44
+ . "\r\nUID:201909250755-42825@test"
45
+ . "\r\nDTSTART;20190930T080000Z"
46
+ . "\r\nSEQUENCE:2"
47
+ . "\r\nTRANSP:OPAQUE"
48
+ . "\r\nSTATUS:CONFIRMED"
49
+ . "\r\nDTEND:20190930T084500Z"
50
+ . "\r\nLOCATION:[London] London Eye"
51
+ . "\r\nSUMMARY:Test ICal method"
52
+ . "\r\nATTENDEE;CN=Attendee, Test;ROLE=OPT-PARTICIPANT;PARTSTAT=NEEDS-ACTION;RSVP="
53
+ . "\r\n TRUE:MAILTO:attendee-test@example.com"
54
+ . "\r\nCLASS:PUBLIC"
55
+ . "\r\nDESCRIPTION:Some plain text"
56
+ . "\r\nORGANIZER;CN=\"Example, Test\":MAILTO:test@example.com"
57
+ . "\r\nDTSTAMP:20190925T075546Z"
58
+ . "\r\nCREATED:20190925T075709Z"
59
+ . "\r\nLAST-MODIFIED:20190925T075546Z"
60
+ . "\r\nEND:VEVENT"
61
+ . "\r\nEND:VCALENDAR";
62
+ $this->buildBody();
63
+ $this->Mail->preSend();
64
+
65
+ $expected = 'Content-Type: text/calendar; method=' . $expected . ';';
66
+
67
+ self::assertStringContainsString(
68
+ $expected,
69
+ $this->Mail->getSentMIMEMessage(),
70
+ 'Wrong ICal method in Content-Type header'
71
+ );
72
+ }
73
+
74
+ /**
75
+ * Data provider.
76
+ *
77
+ * @return array
78
+ */
79
+ public function dataICalMethod()
80
+ {
81
+ return [
82
+ 'Valid method: request (default)' => [
83
+ 'methodLine' => "\r\nMETHOD:REQUEST",
84
+ 'expected' => 'REQUEST',
85
+ ],
86
+ 'Valid method: publish' => [
87
+ 'methodLine' => "\r\nMETHOD:PUBLISH",
88
+ 'expected' => 'PUBLISH',
89
+ ],
90
+ 'Valid method: reply' => [
91
+ 'methodLine' => "\r\nMETHOD:REPLY",
92
+ 'expected' => 'REPLY',
93
+ ],
94
+ 'Valid method: add' => [
95
+ 'methodLine' => "\r\nMETHOD:ADD",
96
+ 'expected' => 'ADD',
97
+ ],
98
+ 'Valid method: cancel' => [
99
+ 'methodLine' => "\r\nMETHOD:CANCEL",
100
+ 'expected' => 'CANCEL',
101
+ ],
102
+ 'Valid method: refresh' => [
103
+ 'methodLine' => "\r\nMETHOD:REFRESH",
104
+ 'expected' => 'REFRESH',
105
+ ],
106
+ 'Valid method: counter' => [
107
+ 'methodLine' => "\r\nMETHOD:COUNTER",
108
+ 'expected' => 'COUNTER',
109
+ ],
110
+ 'Valid method: declinecounter' => [
111
+ 'methodLine' => "\r\nMETHOD:DECLINECOUNTER",
112
+ 'expected' => 'DECLINECOUNTER',
113
+ ],
114
+ // Test ICal invalid method to use default (REQUEST).
115
+ 'Invalid method' => [
116
+ 'methodLine' => "\r\nMETHOD:INVALID",
117
+ 'expected' => 'REQUEST',
118
+ ],
119
+ // Test ICal missing method to use default (REQUEST).
120
+ 'Missing method' => [
121
+ 'methodLine' => '',
122
+ 'expected' => 'REQUEST',
123
+ ],
124
+ ];
125
+ }
126
+ }
@@ -0,0 +1,108 @@
1
+ <?php
2
+
3
+ /**
4
+ * PHPMailer - PHP email transport unit tests.
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\PHPMailer;
15
+
16
+ use PHPMailer\PHPMailer\PHPMailer;
17
+ use ReflectionMethod;
18
+ use Yoast\PHPUnitPolyfills\TestCases\TestCase;
19
+
20
+ /**
21
+ * Test path validation functionality.
22
+ *
23
+ * @covers \PHPMailer\PHPMailer\PHPMailer::isPermittedPath
24
+ */
25
+ final class IsPermittedPathTest extends TestCase
26
+ {
27
+ /**
28
+ * Test whether the validation of whether a path is of a permitted type works correctly.
29
+ *
30
+ * @dataProvider dataIsPermittedPath
31
+ *
32
+ * @param string $input A relative or absolute path to a file.
33
+ * @param bool $expected The expected function return value.
34
+ */
35
+ public function testIsPermittedPath($input, $expected)
36
+ {
37
+ $reflMethod = new ReflectionMethod(PHPMailer::class, 'isPermittedPath');
38
+ (\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(true);
39
+ $result = $reflMethod->invoke(null, $input);
40
+ (\PHP_VERSION_ID < 80100) && $reflMethod->setAccessible(false);
41
+
42
+ self::assertSame($expected, $result);
43
+ }
44
+
45
+ /**
46
+ * Data provider.
47
+ *
48
+ * @return array
49
+ */
50
+ public function dataIsPermittedPath()
51
+ {
52
+ return [
53
+ 'Valid: full, local path; Linux style, forward slashes' => [
54
+ 'input' => '/usr/sbin/subdir/docs.pdf',
55
+ 'expected' => true,
56
+ ],
57
+ 'Valid: full, local path; Windows style, backslashes' => [
58
+ 'input' => 'D:\subdir\with spaces\subdir\myapp.zip',
59
+ 'expected' => true,
60
+ ],
61
+ 'Valid: full, local path; Windows style, forward slashes' => [
62
+ 'input' => 'D:/subdir/with spaces/subdir/',
63
+ 'expected' => true,
64
+ ],
65
+ 'Valid: relative local path; forward slashes' => [
66
+ 'input' => '/etc/hostname',
67
+ 'expected' => true,
68
+ ],
69
+ 'Valid: relative local path; forward slashes, path traversal' => [
70
+ 'input' => './../../subdir/.htaccess',
71
+ 'expected' => true,
72
+ ],
73
+ 'Valid: relative local path; backslashes, path traversal' => [
74
+ 'input' => '..\subdir\\',
75
+ 'expected' => true,
76
+ ],
77
+ 'Valid: file name only' => [
78
+ 'input' => 'composer.json',
79
+ 'expected' => true,
80
+ ],
81
+ 'Valid: UNC path' => [
82
+ 'input' => '\\\\nowhere\\nothing',
83
+ 'expected' => true,
84
+ ],
85
+
86
+ 'Invalid: phar file reference' => [
87
+ 'input' => 'phar://phar.php',
88
+ 'expected' => false,
89
+ ],
90
+ 'Invalid: external URL; protocol: https' => [
91
+ 'input' => 'https://github.com/PHPMailer/PHPMailer/',
92
+ 'expected' => false,
93
+ ],
94
+ 'Invalid: external URL; protocol: http (uppercase)' => [
95
+ 'input' => 'HTTP://github.com/PHPMailer/PHPMailer/',
96
+ 'expected' => false,
97
+ ],
98
+ 'Invalid: external URL; protocol: ssh2.sftp' => [
99
+ 'input' => 'ssh2.sftp://user:pass@attacker-controlled.example.com:22/tmp/payload.phar',
100
+ 'expected' => false,
101
+ ],
102
+ 'Invalid: external URL; protocol: x-1.cd+-' => [
103
+ 'input' => 'x-1.cd+-://example.com/test.php',
104
+ 'expected' => false,
105
+ ],
106
+ ];
107
+ }
108
+ }
@@ -0,0 +1,107 @@
1
+ <?php
2
+
3
+ /**
4
+ * PHPMailer - PHP email transport unit tests.
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\PHPMailer;
15
+
16
+ use PHPMailer\PHPMailer\PHPMailer;
17
+ use Yoast\PHPUnitPolyfills\TestCases\TestCase;
18
+
19
+ /**
20
+ * Test host validation functionality.
21
+ *
22
+ * @covers \PHPMailer\PHPMailer\PHPMailer::isValidHost
23
+ */
24
+ final class IsValidHostTest extends TestCase
25
+ {
26
+ /**
27
+ * Test host validation when a valid host is passed.
28
+ *
29
+ * @dataProvider dataValidHost
30
+ *
31
+ * @param string $input Input text string.
32
+ */
33
+ public function testValidHost($input)
34
+ {
35
+ self::assertTrue(PHPMailer::isValidHost($input), 'Good hostname denied');
36
+ }
37
+
38
+ /**
39
+ * Data provider.
40
+ *
41
+ * @return array
42
+ */
43
+ public function dataValidHost()
44
+ {
45
+ return [
46
+ 'localhost' => ['localhost'],
47
+ 'Domain alias' => ['a'],
48
+ 'Domain: lowercase' => ['example.com'],
49
+ 'Domain: uppercase' => ['EXAMPLE.COM'],
50
+ 'Domain: mixed case' => ['Example.Com'],
51
+ 'Domain: with dash' => ['my-example.com'],
52
+ 'Domain: with subdomain' => ['smtp.gmail.com'],
53
+ 'IPv4 address: 127.0.0.1' => ['127.0.0.1'],
54
+ 'IPv4 address: external' => ['27.145.58.181'],
55
+ 'Long hex address' => [trim(str_repeat('a0123456789.', 21), '.')],
56
+ 'Bracketed IPv6: localhost' => ['[::1]'],
57
+ 'Bracketed IPv6' => ['[0:1234:dc0:41:216:3eff:fe67:3e01]'],
58
+ 'Bracketed IPv6 uppercase' => ['[0:1234:DC0:41:216:3EFF:FE67:3E01]'],
59
+ ];
60
+ }
61
+
62
+ /**
63
+ * Test host validation when an invalid host is passed.
64
+ *
65
+ * @dataProvider dataInvalidHost
66
+ *
67
+ * @param string $input Input text string.
68
+ */
69
+ public function testInvalidHost($input)
70
+ {
71
+ self::assertFalse(PHPMailer::isValidHost($input), 'Bad hostname accepted');
72
+ }
73
+
74
+ /**
75
+ * Data provider.
76
+ *
77
+ * @return array
78
+ */
79
+ public function dataInvalidHost()
80
+ {
81
+ return [
82
+ 'Invalid type: null' => [null],
83
+ 'Invalid type: int' => [123],
84
+ 'Invalid type: float' => [1.5],
85
+ 'Invalid type: object' => [new \stdClass()],
86
+ 'Invalid type: array' => [[]],
87
+ 'Invalid input: empty string' => [''],
88
+ 'Invalid input: domain - empty subdomain' => ['.example.com'],
89
+ 'Invalid input: domain - with underscore' => ['my_example.com'],
90
+ 'Invalid input: IPv4, no dots' => ['127001'],
91
+ 'Invalid input: IPv4, too few groups' => ['168.0.001'],
92
+ 'Invalid input: IPv4, too many groups' => ['22.55.14.73.9'],
93
+ 'Invalid input: IPv4 address outside range' => ['999.0.0.0'],
94
+ 'Invalid input: hex address, wrong size' => [trim(str_repeat('a0123456789.', 22), '.')],
95
+ 'Invalid input: bracketed, not IPv6 (num)' => ['[1234]'],
96
+ 'Invalid input: bracketed, not IPv6 (hex)' => ['[abCDef]'],
97
+ 'Invalid input: bracketed, triple :' => ['[1234:::1]'],
98
+ 'Invalid input: IPv6 empty brackets' => ['[]'],
99
+ 'Invalid input: IPv6 without brackets' => ['0:1234:dc0:41:216:3eff:fe67:3e01'],
100
+ 'Invalid input: IPv6 too few groups' => ['[0:1234:dc0:41]'],
101
+ 'Invalid input: IPv6 too many groups' => ['[012q:1234:dc0:41:216:3eff:fe67:3e01:6fa5]'],
102
+ 'Invalid input: IPv6 non-hex char' => ['[012q:1234:dc0:41:216:3eff:fe67:3e01]'],
103
+ 'Invalid input: IPv6 disallowed chars' => ['[0:12_4:dc$:41:216:3e+f:fe67:3e01]'],
104
+ 'Invalid input: IPv6 double bracketed' => ['[[::1]]'],
105
+ ];
106
+ }
107
+ }