alepha 0.21.2 → 0.23.0

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 (519) hide show
  1. package/README.md +0 -1
  2. package/dist/api/audits/index.browser.js.map +1 -1
  3. package/dist/api/audits/index.d.ts +393 -403
  4. package/dist/api/audits/index.d.ts.map +1 -1
  5. package/dist/api/audits/index.js +25 -56
  6. package/dist/api/audits/index.js.map +1 -1
  7. package/dist/api/files/index.browser.js +31 -1
  8. package/dist/api/files/index.browser.js.map +1 -1
  9. package/dist/api/files/index.d.ts +313 -208
  10. package/dist/api/files/index.d.ts.map +1 -1
  11. package/dist/api/files/index.js +152 -42
  12. package/dist/api/files/index.js.map +1 -1
  13. package/dist/api/jobs/index.browser.js +2 -2
  14. package/dist/api/jobs/index.browser.js.map +1 -1
  15. package/dist/api/jobs/index.d.ts +282 -285
  16. package/dist/api/jobs/index.d.ts.map +1 -1
  17. package/dist/api/jobs/index.js +39 -33
  18. package/dist/api/jobs/index.js.map +1 -1
  19. package/dist/api/keys/index.d.ts +217 -222
  20. package/dist/api/keys/index.d.ts.map +1 -1
  21. package/dist/api/keys/index.js.map +1 -1
  22. package/dist/api/notifications/index.browser.js.map +1 -1
  23. package/dist/api/notifications/index.d.ts +188 -195
  24. package/dist/api/notifications/index.d.ts.map +1 -1
  25. package/dist/api/notifications/index.js.map +1 -1
  26. package/dist/api/oauth/index.d.ts +71 -76
  27. package/dist/api/oauth/index.d.ts.map +1 -1
  28. package/dist/api/oauth/index.js.map +1 -1
  29. package/dist/api/organizations/index.browser.js.map +1 -1
  30. package/dist/api/organizations/index.d.ts +104 -109
  31. package/dist/api/organizations/index.d.ts.map +1 -1
  32. package/dist/api/organizations/index.js.map +1 -1
  33. package/dist/api/parameters/index.browser.js +43 -16
  34. package/dist/api/parameters/index.browser.js.map +1 -1
  35. package/dist/api/parameters/index.d.ts +488 -344
  36. package/dist/api/parameters/index.d.ts.map +1 -1
  37. package/dist/api/parameters/index.js +175 -35
  38. package/dist/api/parameters/index.js.map +1 -1
  39. package/dist/api/payments/index.d.ts +396 -402
  40. package/dist/api/payments/index.d.ts.map +1 -1
  41. package/dist/api/payments/index.js.map +1 -1
  42. package/dist/api/subscriptions/index.d.ts +644 -652
  43. package/dist/api/subscriptions/index.d.ts.map +1 -1
  44. package/dist/api/subscriptions/index.js +1 -1
  45. package/dist/api/subscriptions/index.js.map +1 -1
  46. package/dist/api/users/index.browser.js +7 -0
  47. package/dist/api/users/index.browser.js.map +1 -1
  48. package/dist/api/users/index.d.ts +1106 -1005
  49. package/dist/api/users/index.d.ts.map +1 -1
  50. package/dist/api/users/index.js +307 -64
  51. package/dist/api/users/index.js.map +1 -1
  52. package/dist/api/verifications/index.browser.js.map +1 -1
  53. package/dist/api/verifications/index.d.ts +137 -143
  54. package/dist/api/verifications/index.d.ts.map +1 -1
  55. package/dist/api/verifications/index.js.map +1 -1
  56. package/dist/background/index.d.ts +95 -0
  57. package/dist/background/index.d.ts.map +1 -0
  58. package/dist/background/index.js +121 -0
  59. package/dist/background/index.js.map +1 -0
  60. package/dist/background/index.workerd.js +110 -0
  61. package/dist/background/index.workerd.js.map +1 -0
  62. package/dist/batch/index.d.ts +5 -7
  63. package/dist/batch/index.d.ts.map +1 -1
  64. package/dist/batch/index.js.map +1 -1
  65. package/dist/bin/index.js.map +1 -1
  66. package/dist/bucket/index.d.ts +76 -54
  67. package/dist/bucket/index.d.ts.map +1 -1
  68. package/dist/bucket/index.js +58 -11
  69. package/dist/bucket/index.js.map +1 -1
  70. package/dist/bucket/index.workerd.js +200 -5
  71. package/dist/bucket/index.workerd.js.map +1 -1
  72. package/dist/cache/core/index.d.ts +7 -10
  73. package/dist/cache/core/index.d.ts.map +1 -1
  74. package/dist/cache/core/index.js.map +1 -1
  75. package/dist/cache/core/index.workerd.js.map +1 -1
  76. package/dist/cache/database/index.d.ts +22 -26
  77. package/dist/cache/database/index.d.ts.map +1 -1
  78. package/dist/cache/database/index.js.map +1 -1
  79. package/dist/cache/redis/index.d.ts +4 -7
  80. package/dist/cache/redis/index.d.ts.map +1 -1
  81. package/dist/cache/redis/index.js.map +1 -1
  82. package/dist/captcha/index.d.ts +3 -6
  83. package/dist/captcha/index.d.ts.map +1 -1
  84. package/dist/captcha/index.js.map +1 -1
  85. package/dist/cli/config/index.d.ts.map +1 -1
  86. package/dist/cli/config/index.js.map +1 -1
  87. package/dist/cli/core/index.d.ts +458 -249
  88. package/dist/cli/core/index.d.ts.map +1 -1
  89. package/dist/cli/core/index.js +372 -660
  90. package/dist/cli/core/index.js.map +1 -1
  91. package/dist/cli/devtools/index.d.ts +3 -5
  92. package/dist/cli/devtools/index.d.ts.map +1 -1
  93. package/dist/cli/devtools/index.js.map +1 -1
  94. package/dist/cli/i18n/index.d.ts +20 -17
  95. package/dist/cli/i18n/index.d.ts.map +1 -1
  96. package/dist/cli/i18n/index.js +45 -11
  97. package/dist/cli/i18n/index.js.map +1 -1
  98. package/dist/cli/platform/index.d.ts +126 -1342
  99. package/dist/cli/platform/index.d.ts.map +1 -1
  100. package/dist/cli/platform/index.js +136 -2374
  101. package/dist/cli/platform/index.js.map +1 -1
  102. package/dist/cli/platform-lib/index.d.ts +1472 -0
  103. package/dist/cli/platform-lib/index.d.ts.map +1 -0
  104. package/dist/cli/platform-lib/index.js +2660 -0
  105. package/dist/cli/platform-lib/index.js.map +1 -0
  106. package/dist/cli/vendor/index.d.ts +17 -21
  107. package/dist/cli/vendor/index.d.ts.map +1 -1
  108. package/dist/cli/vendor/index.js.map +1 -1
  109. package/dist/command/index.d.ts +20 -19
  110. package/dist/command/index.d.ts.map +1 -1
  111. package/dist/command/index.js +39 -10
  112. package/dist/command/index.js.map +1 -1
  113. package/dist/{containers → container}/core/index.d.ts +13 -15
  114. package/dist/container/core/index.d.ts.map +1 -0
  115. package/dist/{containers → container}/core/index.js +23 -14
  116. package/dist/container/core/index.js.map +1 -0
  117. package/dist/{containers → container}/core/index.workerd.js +37 -22
  118. package/dist/container/core/index.workerd.js.map +1 -0
  119. package/dist/core/index.browser.js +27 -1
  120. package/dist/core/index.browser.js.map +1 -1
  121. package/dist/core/index.d.ts +48 -24
  122. package/dist/core/index.d.ts.map +1 -1
  123. package/dist/core/index.js +27 -1
  124. package/dist/core/index.js.map +1 -1
  125. package/dist/core/index.native.js +27 -1
  126. package/dist/core/index.native.js.map +1 -1
  127. package/dist/core/index.workerd.js +27 -1
  128. package/dist/core/index.workerd.js.map +1 -1
  129. package/dist/crypto/index.browser.js.map +1 -1
  130. package/dist/crypto/index.d.ts +5 -8
  131. package/dist/crypto/index.d.ts.map +1 -1
  132. package/dist/crypto/index.js.map +1 -1
  133. package/dist/datetime/index.d.ts +3 -4
  134. package/dist/datetime/index.d.ts.map +1 -1
  135. package/dist/datetime/index.js.map +1 -1
  136. package/dist/email/brevo/index.d.ts +2 -4
  137. package/dist/email/brevo/index.d.ts.map +1 -1
  138. package/dist/email/brevo/index.js.map +1 -1
  139. package/dist/email/cloudflare/index.d.ts +20 -7
  140. package/dist/email/cloudflare/index.d.ts.map +1 -1
  141. package/dist/email/cloudflare/index.js +46 -9
  142. package/dist/email/cloudflare/index.js.map +1 -1
  143. package/dist/email/core/index.d.ts +6 -9
  144. package/dist/email/core/index.d.ts.map +1 -1
  145. package/dist/email/core/index.js.map +1 -1
  146. package/dist/email/core/index.workerd.js.map +1 -1
  147. package/dist/email/smtp/index.d.ts +10 -13
  148. package/dist/email/smtp/index.d.ts.map +1 -1
  149. package/dist/email/smtp/index.js +107 -32
  150. package/dist/email/smtp/index.js.map +1 -1
  151. package/dist/fake/index.d.ts +1 -2
  152. package/dist/fake/index.d.ts.map +1 -1
  153. package/dist/fake/index.js.map +1 -1
  154. package/dist/lock/core/index.d.ts +9 -14
  155. package/dist/lock/core/index.d.ts.map +1 -1
  156. package/dist/lock/core/index.js.map +1 -1
  157. package/dist/lock/redis/index.d.ts +2 -4
  158. package/dist/lock/redis/index.d.ts.map +1 -1
  159. package/dist/lock/redis/index.js.map +1 -1
  160. package/dist/logger/index.d.ts +105 -76
  161. package/dist/logger/index.d.ts.map +1 -1
  162. package/dist/logger/index.js +196 -174
  163. package/dist/logger/index.js.map +1 -1
  164. package/dist/mcp/index.d.ts +25 -20
  165. package/dist/mcp/index.d.ts.map +1 -1
  166. package/dist/mcp/index.js +23 -0
  167. package/dist/mcp/index.js.map +1 -1
  168. package/dist/orm/core/index.browser.js.map +1 -1
  169. package/dist/orm/core/index.bun.js +19 -1
  170. package/dist/orm/core/index.bun.js.map +1 -1
  171. package/dist/orm/core/index.d.ts +76 -62
  172. package/dist/orm/core/index.d.ts.map +1 -1
  173. package/dist/orm/core/index.js +20 -2
  174. package/dist/orm/core/index.js.map +1 -1
  175. package/dist/orm/postgres/index.bun.js.map +1 -1
  176. package/dist/orm/postgres/index.d.ts +28 -20
  177. package/dist/orm/postgres/index.d.ts.map +1 -1
  178. package/dist/orm/postgres/index.js.map +1 -1
  179. package/dist/queue/core/index.d.ts +12 -15
  180. package/dist/queue/core/index.d.ts.map +1 -1
  181. package/dist/queue/core/index.js.map +1 -1
  182. package/dist/queue/core/index.workerd.js.map +1 -1
  183. package/dist/queue/redis/index.d.ts +3 -5
  184. package/dist/queue/redis/index.d.ts.map +1 -1
  185. package/dist/queue/redis/index.js.map +1 -1
  186. package/dist/react/auth/index.browser.js +9 -2
  187. package/dist/react/auth/index.browser.js.map +1 -1
  188. package/dist/react/auth/index.d.ts +14 -9
  189. package/dist/react/auth/index.d.ts.map +1 -1
  190. package/dist/react/auth/index.js +9 -2
  191. package/dist/react/auth/index.js.map +1 -1
  192. package/dist/react/core/index.d.ts +7 -8
  193. package/dist/react/core/index.d.ts.map +1 -1
  194. package/dist/react/core/index.js +6 -3
  195. package/dist/react/core/index.js.map +1 -1
  196. package/dist/react/form/index.d.ts +2 -5
  197. package/dist/react/form/index.d.ts.map +1 -1
  198. package/dist/react/form/index.js +16 -15
  199. package/dist/react/form/index.js.map +1 -1
  200. package/dist/react/head/index.browser.js.map +1 -1
  201. package/dist/react/head/index.d.ts +2 -4
  202. package/dist/react/head/index.d.ts.map +1 -1
  203. package/dist/react/head/index.js.map +1 -1
  204. package/dist/react/i18n/index.d.ts +90 -11
  205. package/dist/react/i18n/index.d.ts.map +1 -1
  206. package/dist/react/i18n/index.js +147 -11
  207. package/dist/react/i18n/index.js.map +1 -1
  208. package/dist/react/intro/index.d.ts +1 -2
  209. package/dist/react/intro/index.d.ts.map +1 -1
  210. package/dist/react/intro/index.js +2 -2
  211. package/dist/react/intro/index.js.map +1 -1
  212. package/dist/react/router/index.browser.js +193 -24
  213. package/dist/react/router/index.browser.js.map +1 -1
  214. package/dist/react/router/index.d.ts +434 -222
  215. package/dist/react/router/index.d.ts.map +1 -1
  216. package/dist/react/router/index.js +249 -35
  217. package/dist/react/router/index.js.map +1 -1
  218. package/dist/react/sitemap/index.browser.js +35 -0
  219. package/dist/react/sitemap/index.browser.js.map +1 -0
  220. package/dist/react/sitemap/index.d.ts +92 -0
  221. package/dist/react/sitemap/index.d.ts.map +1 -0
  222. package/dist/react/sitemap/index.js +131 -0
  223. package/dist/react/sitemap/index.js.map +1 -0
  224. package/dist/react/testing/index.d.ts +1 -2
  225. package/dist/react/testing/index.d.ts.map +1 -1
  226. package/dist/react/testing/index.js +16 -17
  227. package/dist/react/testing/index.js.map +1 -1
  228. package/dist/react/ui/index.d.ts +20 -25
  229. package/dist/react/ui/index.d.ts.map +1 -1
  230. package/dist/react/ui/index.js.map +1 -1
  231. package/dist/redis/index.bun.js.map +1 -1
  232. package/dist/redis/index.d.ts +17 -19
  233. package/dist/redis/index.d.ts.map +1 -1
  234. package/dist/redis/index.js.map +1 -1
  235. package/dist/retry/index.d.ts +2 -4
  236. package/dist/retry/index.d.ts.map +1 -1
  237. package/dist/retry/index.js.map +1 -1
  238. package/dist/router/index.d.ts.map +1 -1
  239. package/dist/router/index.js.map +1 -1
  240. package/dist/scheduler/index.d.ts +10 -13
  241. package/dist/scheduler/index.d.ts.map +1 -1
  242. package/dist/scheduler/index.js.map +1 -1
  243. package/dist/scheduler/index.workerd.js.map +1 -1
  244. package/dist/security/index.browser.js.map +1 -1
  245. package/dist/security/index.d.ts +45 -48
  246. package/dist/security/index.d.ts.map +1 -1
  247. package/dist/security/index.js.map +1 -1
  248. package/dist/server/auth/index.browser.js.map +1 -1
  249. package/dist/server/auth/index.d.ts +272 -173
  250. package/dist/server/auth/index.d.ts.map +1 -1
  251. package/dist/server/auth/index.js +1608 -15
  252. package/dist/server/auth/index.js.map +1 -1
  253. package/dist/server/cookies/index.browser.js.map +1 -1
  254. package/dist/server/cookies/index.d.ts +20 -7
  255. package/dist/server/cookies/index.d.ts.map +1 -1
  256. package/dist/server/cookies/index.js +22 -3
  257. package/dist/server/cookies/index.js.map +1 -1
  258. package/dist/server/core/index.browser.js.map +1 -1
  259. package/dist/server/core/index.d.ts +106 -73
  260. package/dist/server/core/index.d.ts.map +1 -1
  261. package/dist/server/core/index.js +44 -0
  262. package/dist/server/core/index.js.map +1 -1
  263. package/dist/server/cors/index.d.ts +11 -14
  264. package/dist/server/cors/index.d.ts.map +1 -1
  265. package/dist/server/cors/index.js.map +1 -1
  266. package/dist/server/etag/index.d.ts +6 -9
  267. package/dist/server/etag/index.d.ts.map +1 -1
  268. package/dist/server/etag/index.js.map +1 -1
  269. package/dist/server/health/index.d.ts +18 -21
  270. package/dist/server/health/index.d.ts.map +1 -1
  271. package/dist/server/health/index.js.map +1 -1
  272. package/dist/server/links/index.browser.js +2 -0
  273. package/dist/server/links/index.browser.js.map +1 -1
  274. package/dist/server/links/index.d.ts +63 -67
  275. package/dist/server/links/index.d.ts.map +1 -1
  276. package/dist/server/links/index.js +2 -0
  277. package/dist/server/links/index.js.map +1 -1
  278. package/dist/server/metrics/index.d.ts +5 -7
  279. package/dist/server/metrics/index.d.ts.map +1 -1
  280. package/dist/server/metrics/index.js.map +1 -1
  281. package/dist/server/proxy/index.d.ts +3 -5
  282. package/dist/server/proxy/index.d.ts.map +1 -1
  283. package/dist/server/proxy/index.js.map +1 -1
  284. package/dist/server/rate-limit/index.d.ts +10 -13
  285. package/dist/server/rate-limit/index.d.ts.map +1 -1
  286. package/dist/server/rate-limit/index.js.map +1 -1
  287. package/dist/server/static/index.d.ts +3 -5
  288. package/dist/server/static/index.d.ts.map +1 -1
  289. package/dist/server/static/index.js.map +1 -1
  290. package/dist/server/swagger/index.d.ts +5 -8
  291. package/dist/server/swagger/index.d.ts.map +1 -1
  292. package/dist/server/swagger/index.js.map +1 -1
  293. package/dist/sms/index.d.ts +3 -5
  294. package/dist/sms/index.d.ts.map +1 -1
  295. package/dist/sms/index.js.map +1 -1
  296. package/dist/system/index.browser.js.map +1 -1
  297. package/dist/system/index.d.ts +2 -4
  298. package/dist/system/index.d.ts.map +1 -1
  299. package/dist/system/index.js.map +1 -1
  300. package/dist/system/index.workerd.js.map +1 -1
  301. package/dist/topic/core/index.d.ts +4 -6
  302. package/dist/topic/core/index.d.ts.map +1 -1
  303. package/dist/topic/core/index.js.map +1 -1
  304. package/dist/topic/redis/index.d.ts +5 -8
  305. package/dist/topic/redis/index.d.ts.map +1 -1
  306. package/dist/topic/redis/index.js.map +1 -1
  307. package/package.json +59 -23
  308. package/src/api/audits/__tests__/AuditService.spec.ts +18 -110
  309. package/src/api/audits/controllers/AdminAuditController.ts +14 -0
  310. package/src/api/audits/services/AuditService.ts +21 -88
  311. package/src/api/files/__tests__/FileService.spec.ts +207 -2
  312. package/src/api/files/index.ts +3 -0
  313. package/src/api/files/schemas/fileCreatorSummarySchema.ts +22 -0
  314. package/src/api/files/schemas/fileResourceSchema.ts +10 -1
  315. package/src/api/files/services/FileService.ts +170 -72
  316. package/src/api/jobs/__tests__/$job.spec.ts +24 -1
  317. package/src/api/jobs/index.ts +4 -3
  318. package/src/api/jobs/primitives/$job.ts +7 -3
  319. package/src/api/jobs/providers/DirectJobDispatcher.ts +17 -36
  320. package/src/api/jobs/providers/JobProvider.ts +53 -24
  321. package/src/api/jobs/schemas/jobConfigAtom.ts +1 -1
  322. package/src/api/jobs/schemas/jobExecutionResourceSchema.ts +4 -1
  323. package/src/api/keys/schemas/adminApiKeyResourceSchema.ts +3 -1
  324. package/src/api/parameters/__tests__/$parameter.spec.ts +19 -2
  325. package/src/api/parameters/audits/ParameterAudits.ts +17 -0
  326. package/src/api/parameters/controllers/AdminParameterController.ts +95 -19
  327. package/src/api/parameters/index.ts +3 -0
  328. package/src/api/parameters/schemas/activateParameterBodySchema.ts +3 -3
  329. package/src/api/parameters/schemas/createParameterVersionBodySchema.ts +3 -2
  330. package/src/api/parameters/schemas/parameterCreatorSummarySchema.ts +25 -0
  331. package/src/api/parameters/schemas/parameterResponseSchema.ts +5 -0
  332. package/src/api/parameters/schemas/rollbackParameterBodySchema.ts +4 -2
  333. package/src/api/parameters/services/ParameterProvider.ts +69 -6
  334. package/src/api/subscriptions/jobs/SubscriptionJobs.ts +1 -1
  335. package/src/api/users/__tests__/AdminSessionController.spec.ts +37 -0
  336. package/src/api/users/audits/SessionAudits.ts +33 -0
  337. package/src/api/users/audits/UserAudits.ts +19 -43
  338. package/src/api/users/controllers/AdminUserController.ts +66 -1
  339. package/src/api/users/controllers/RealmController.ts +1 -0
  340. package/src/api/users/entities/sessions.ts +6 -0
  341. package/src/api/users/entities/users.ts +2 -0
  342. package/src/api/users/index.ts +9 -1
  343. package/src/api/users/primitives/$realm.ts +29 -0
  344. package/src/api/users/providers/RealmProvider.ts +15 -0
  345. package/src/api/users/schemas/realmConfigSchema.ts +14 -0
  346. package/src/api/users/schemas/sessionResourceSchema.ts +16 -0
  347. package/src/api/users/schemas/updateUserSchema.ts +1 -8
  348. package/src/api/users/schemas/userQuerySchema.ts +7 -0
  349. package/src/api/users/services/CredentialService.ts +15 -6
  350. package/src/api/users/services/IdentityService.ts +2 -1
  351. package/src/api/users/services/RegistrationService.ts +2 -1
  352. package/src/api/users/services/SessionCrudService.ts +19 -2
  353. package/src/api/users/services/SessionService.ts +39 -19
  354. package/src/api/users/services/UserService.ts +106 -8
  355. package/src/background/__tests__/BackgroundTaskProvider.spec.ts +96 -0
  356. package/src/background/index.ts +37 -0
  357. package/src/background/index.workerd.ts +28 -0
  358. package/src/background/providers/BackgroundTaskProvider.ts +70 -0
  359. package/src/background/providers/WorkerdBackgroundTaskProvider.ts +43 -0
  360. package/src/bucket/__tests__/$bucket.spec.ts +18 -0
  361. package/src/bucket/__tests__/LocalFileStorageProvider.spec.ts +5 -0
  362. package/src/bucket/__tests__/MemoryFileStorageProvider.spec.ts +5 -0
  363. package/src/bucket/__tests__/NodeS3BucketProvider.spec.ts +23 -4
  364. package/src/bucket/__tests__/shared.ts +30 -0
  365. package/src/bucket/index.ts +5 -5
  366. package/src/bucket/index.workerd.ts +11 -4
  367. package/src/bucket/primitives/$bucket.ts +27 -0
  368. package/src/bucket/providers/FileStorageProvider.ts +13 -0
  369. package/src/bucket/providers/LocalFileStorageProvider.ts +17 -1
  370. package/src/bucket/providers/MemoryFileStorageProvider.ts +7 -0
  371. package/src/bucket/providers/{CloudflareR2Provider.ts → R2FileStorageProvider.ts} +10 -1
  372. package/src/bucket/providers/{NodeS3BucketProvider.ts → S3FileStorageProvider.ts} +27 -5
  373. package/src/cli/core/__tests__/BuildDockerTask.spec.ts +25 -1
  374. package/src/cli/core/__tests__/init.spec.ts +0 -219
  375. package/src/cli/core/atoms/buildOptions.ts +0 -12
  376. package/src/cli/core/commands/__tests__/BuildCommand.spec.ts +43 -0
  377. package/src/cli/core/commands/build.ts +105 -37
  378. package/src/cli/core/commands/init.ts +0 -12
  379. package/src/cli/core/commands/pack.ts +133 -0
  380. package/src/cli/core/index.ts +3 -3
  381. package/src/cli/core/providers/ViteDevServerProvider.ts +40 -16
  382. package/src/cli/core/services/PackageManagerUtils.ts +0 -16
  383. package/src/cli/core/services/ProjectScaffolder.ts +29 -291
  384. package/src/cli/core/tasks/BuildCloudflareTask.ts +382 -56
  385. package/src/cli/core/tasks/BuildDockerTask.ts +33 -3
  386. package/src/cli/core/tasks/BuildPrerenderTask.ts +44 -7
  387. package/src/cli/core/tasks/BuildTask.ts +34 -0
  388. package/src/cli/core/templates/apiIndexTs.ts +1 -22
  389. package/src/cli/core/templates/mainCss.ts +0 -1
  390. package/src/cli/core/templates/webAppRouterTs.ts +0 -99
  391. package/src/cli/core/templates/webIndexTs.ts +1 -22
  392. package/src/cli/i18n/__tests__/I18nCheckService.spec.ts +48 -0
  393. package/src/cli/i18n/services/I18nCheckService.ts +65 -11
  394. package/src/cli/platform/__tests__/SecretsCommand.spec.ts +5 -3
  395. package/src/cli/platform/commands/SecretsCommand.ts +8 -6
  396. package/src/cli/platform/commands/platform.ts +192 -46
  397. package/src/cli/platform/index.ts +12 -52
  398. package/src/cli/{platform → platform-lib}/__tests__/CloudflareAdapter.spec.ts +426 -169
  399. package/src/cli/{platform → platform-lib}/__tests__/NamingService.spec.ts +91 -4
  400. package/src/cli/{platform → platform-lib}/__tests__/VercelAdapter.spec.ts +56 -85
  401. package/src/cli/{platform → platform-lib}/adapters/CloudflareAdapter.ts +519 -190
  402. package/src/cli/{platform → platform-lib}/adapters/PlatformAdapter.ts +62 -35
  403. package/src/cli/{platform → platform-lib}/adapters/VercelAdapter.ts +6 -10
  404. package/src/cli/{platform → platform-lib}/atoms/platformOptions.ts +34 -1
  405. package/src/cli/platform-lib/index.ts +67 -0
  406. package/src/cli/platform-lib/services/NamingService.ts +136 -0
  407. package/src/cli/{platform → platform-lib}/services/PlatformInspector.ts +60 -13
  408. package/src/cli/{platform → platform-lib}/services/PlatformOrchestrator.ts +54 -43
  409. package/src/cli/{platform → platform-lib}/services/WranglerApi.ts +4 -2
  410. package/src/command/__tests__/Runner.spec.ts +20 -0
  411. package/src/command/helpers/EnvUtils.ts +19 -3
  412. package/src/command/helpers/Runner.ts +12 -2
  413. package/src/command/providers/CliProvider.ts +34 -1
  414. package/src/{containers → container}/core/__tests__/$container.spec.ts +5 -5
  415. package/src/{containers → container}/core/index.ts +4 -4
  416. package/src/{containers → container}/core/index.workerd.ts +19 -3
  417. package/src/{containers → container}/core/primitives/$container.ts +1 -1
  418. package/src/{containers → container}/core/providers/CloudflareContainerProvider.ts +17 -19
  419. package/src/{containers → container}/core/providers/ContainerProvider.ts +16 -2
  420. package/src/{containers → container}/core/providers/MockContainerProvider.ts +1 -1
  421. package/src/core/Alepha.ts +49 -1
  422. package/src/core/__tests__/$env.spec.ts +42 -0
  423. package/src/core/__tests__/dump.spec.ts +47 -0
  424. package/src/email/cloudflare/__tests__/CloudflareEmailProvider.spec.ts +42 -10
  425. package/src/email/cloudflare/index.ts +14 -5
  426. package/src/email/cloudflare/providers/CloudflareEmailProvider.ts +54 -9
  427. package/src/logger/__tests__/Logger.spec.ts +55 -0
  428. package/src/logger/index.ts +13 -0
  429. package/src/logger/services/Logger.ts +31 -1
  430. package/src/mcp/__tests__/McpServerProvider.spec.ts +71 -0
  431. package/src/mcp/providers/McpServerProvider.ts +55 -0
  432. package/src/orm/__tests__/orm-showcase-tests.ts +27 -0
  433. package/src/orm/__tests__/orm-showcase.spec.ts +12 -0
  434. package/src/orm/core/interfaces/PgQuery.ts +4 -1
  435. package/src/orm/core/services/Repository.ts +27 -11
  436. package/src/react/auth/hooks/useAuth.ts +10 -5
  437. package/src/react/core/__tests__/useQuery.browser.spec.tsx +25 -0
  438. package/src/react/core/hooks/useAction.ts +14 -3
  439. package/src/react/core/hooks/useQuery.ts +24 -4
  440. package/src/react/form/__tests__/FormModel-submit-loading.spec.ts +71 -0
  441. package/src/react/form/__tests__/form-submitting-reactive.browser.spec.tsx +96 -0
  442. package/src/react/form/services/FormModel.ts +57 -39
  443. package/src/react/i18n/__tests__/I18nProvider.spec.ts +89 -0
  444. package/src/react/i18n/__tests__/locale-routing.spec.ts +107 -0
  445. package/src/react/i18n/components/Translate.tsx +47 -0
  446. package/src/react/i18n/index.ts +2 -0
  447. package/src/react/i18n/providers/I18nProvider.ts +171 -12
  448. package/src/react/intro/components/GettingStartedAdminSlide.tsx +2 -2
  449. package/src/react/router/__tests__/$page.spec.tsx +3 -2
  450. package/src/react/router/__tests__/RouterLocaleProvider.spec.ts +127 -0
  451. package/src/react/router/__tests__/page-can.spec.ts +18 -13
  452. package/src/react/router/hooks/useQueryParams.ts +114 -14
  453. package/src/react/router/index.browser.ts +4 -0
  454. package/src/react/router/index.shared.ts +1 -0
  455. package/src/react/router/index.ts +9 -0
  456. package/src/react/router/primitives/$page.ts +85 -4
  457. package/src/react/router/providers/ReactBrowserRouterProvider.ts +18 -8
  458. package/src/react/router/providers/ReactPageProvider.ts +12 -1
  459. package/src/react/router/providers/ReactServerProvider.ts +96 -14
  460. package/src/react/router/providers/RootComponentsProvider.ts +13 -0
  461. package/src/react/router/providers/RouterLocaleProvider.ts +125 -0
  462. package/src/react/router/providers/__tests__/RootComponentsProvider.spec.ts +15 -0
  463. package/src/react/router/providers/__tests__/rootComponents.ssr.browser.spec.tsx +67 -0
  464. package/src/react/sitemap/__tests__/$sitemap.spec.ts +131 -0
  465. package/src/react/sitemap/index.browser.ts +21 -0
  466. package/src/react/sitemap/index.ts +25 -0
  467. package/src/react/sitemap/primitives/$sitemap.browser.ts +26 -0
  468. package/src/react/sitemap/primitives/$sitemap.ts +196 -0
  469. package/src/react/ui/services/SchemaControl.ts +3 -4
  470. package/src/server/auth/__tests__/appleClientSecret.spec.ts +34 -0
  471. package/src/server/auth/__tests__/authFederationClient.spec.ts +40 -0
  472. package/src/server/auth/__tests__/federationAssertion.spec.ts +146 -0
  473. package/src/server/auth/__tests__/federationRedirectReplay.spec.ts +44 -0
  474. package/src/server/auth/helpers/appleClientSecret.ts +24 -0
  475. package/src/server/auth/helpers/federationAssertion.ts +74 -0
  476. package/src/server/auth/helpers/jtiReplayGuard.ts +41 -0
  477. package/src/server/auth/helpers/safeRedirectPath.ts +19 -0
  478. package/src/server/auth/index.ts +4 -0
  479. package/src/server/auth/primitives/$authFederationBroker.ts +273 -0
  480. package/src/server/auth/primitives/$authFederationClient.ts +89 -0
  481. package/src/server/auth/providers/ServerAuthProvider.ts +18 -4
  482. package/src/server/cookies/__tests__/ServerCookiesProvider.spec.ts +70 -0
  483. package/src/server/cookies/providers/ServerCookiesProvider.ts +23 -3
  484. package/src/server/core/interfaces/ServerRequest.ts +8 -0
  485. package/src/server/core/primitives/$route.ts +27 -0
  486. package/src/server/core/providers/ServerMultipartProvider.ts +19 -0
  487. package/src/server/links/providers/LinkProvider.ts +10 -0
  488. package/dist/containers/core/index.d.ts.map +0 -1
  489. package/dist/containers/core/index.js.map +0 -1
  490. package/dist/containers/core/index.workerd.js.map +0 -1
  491. package/src/cli/core/tasks/BuildSitemapTask.ts +0 -130
  492. package/src/cli/core/templates/componentsJsonTs.ts +0 -39
  493. package/src/cli/core/templates/saasAdminLayoutTsx.ts +0 -77
  494. package/src/cli/core/templates/saasAdminPagesTsx.ts +0 -26
  495. package/src/cli/core/templates/saasAuthLayoutTsx.ts +0 -22
  496. package/src/cli/core/templates/saasAuthPagesTsx.ts +0 -62
  497. package/src/cli/core/templates/saasRealmProviderTs.ts +0 -52
  498. package/src/cli/platform/services/NamingService.ts +0 -54
  499. /package/dist/orm/core/{chunk-o8xxKEmq.js → chunk-B4FMCO8f.js} +0 -0
  500. /package/dist/react/testing/{chunk-6Ep1yQYe.js → chunk-BpyX8vjI.js} +0 -0
  501. /package/src/cli/{platform → platform-lib}/__tests__/GitHubSecretStore.spec.ts +0 -0
  502. /package/src/cli/{platform → platform-lib}/__tests__/PlatformCacheProvider.spec.ts +0 -0
  503. /package/src/cli/{platform → platform-lib}/__tests__/PlatformInspector.spec.ts +0 -0
  504. /package/src/cli/{platform → platform-lib}/__tests__/PlatformOrchestrator.spec.ts +0 -0
  505. /package/src/cli/{platform → platform-lib}/__tests__/SecretFilterService.spec.ts +0 -0
  506. /package/src/cli/{platform → platform-lib}/__tests__/detectResources.spec.ts +0 -0
  507. /package/src/cli/{platform → platform-lib}/providers/GitHubSecretStore.ts +0 -0
  508. /package/src/cli/{platform → platform-lib}/providers/MemorySecretStore.ts +0 -0
  509. /package/src/cli/{platform → platform-lib}/providers/PlatformCacheProvider.ts +0 -0
  510. /package/src/cli/{platform → platform-lib}/providers/SecretStoreProvider.ts +0 -0
  511. /package/src/cli/{platform → platform-lib}/schemas/cloudflare.ts +0 -0
  512. /package/src/cli/{platform → platform-lib}/schemas/platform.ts +0 -0
  513. /package/src/cli/{platform → platform-lib}/schemas/vercel.ts +0 -0
  514. /package/src/cli/{platform → platform-lib}/services/CloudflareApi.ts +0 -0
  515. /package/src/cli/{platform → platform-lib}/services/SecretFilterService.ts +0 -0
  516. /package/src/cli/{platform → platform-lib}/services/VercelApi.ts +0 -0
  517. /package/src/cli/{platform → platform-lib}/services/VercelCli.ts +0 -0
  518. /package/src/{containers → container}/core/interfaces/ContainerOptions.ts +0 -0
  519. /package/src/{containers → container}/core/providers/NodeContainerProvider.ts +0 -0
@@ -203,12 +203,12 @@ var require_cookies = /* @__PURE__ */ __commonJSMin(((exports, module) => {
203
203
  var require_package = /* @__PURE__ */ __commonJSMin(((exports, module) => {
204
204
  module.exports = {
205
205
  "name": "nodemailer",
206
- "version": "8.0.7",
206
+ "version": "8.0.10",
207
207
  "description": "Easy as cake e-mail sending from your Node.js applications",
208
208
  "main": "lib/nodemailer.js",
209
209
  "scripts": {
210
- "test": "node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",
211
- "test:coverage": "c8 node --test --test-concurrency=1 test/**/*.test.js test/**/*-test.js",
210
+ "test": "node --test --test-concurrency=1 $(find test \\( -name '*-test.js' -o -name '*.test.js' \\))",
211
+ "test:coverage": "c8 node --test --test-concurrency=1 $(find test \\( -name '*-test.js' -o -name '*.test.js' \\))",
212
212
  "format": "prettier --write \"**/*.{js,json,md}\"",
213
213
  "format:check": "prettier --check \"**/*.{js,json,md}\"",
214
214
  "lint": "eslint .",
@@ -490,6 +490,7 @@ var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
490
490
  const util$1 = __require("util");
491
491
  const fs$2 = __require("fs");
492
492
  const nmfetch = require_fetch();
493
+ const errors = require_errors();
493
494
  const dns$1 = __require("dns");
494
495
  const net$3 = __require("net");
495
496
  const os$1 = __require("os");
@@ -695,7 +696,16 @@ var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
695
696
  module.exports._logFunc = (logger, level, defaults, data, message, ...args) => {
696
697
  const entry = Object.assign({}, defaults || {}, data || {});
697
698
  delete entry.level;
698
- logger[level](entry, message, ...args);
699
+ let logLevel = level;
700
+ if (typeof logger[logLevel] !== "function") logLevel = [
701
+ "info",
702
+ "debug",
703
+ "log",
704
+ "trace",
705
+ "warn",
706
+ "error"
707
+ ].find((name) => typeof logger[name] === "function");
708
+ if (logLevel) logger[logLevel](entry, message, ...args);
699
709
  };
700
710
  /**
701
711
  * Returns a bunyan-compatible logger interface. Uses either provided logger or
@@ -802,9 +812,15 @@ var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
802
812
  *
803
813
  * @param {Object} data An object or an Array you want to resolve an element for
804
814
  * @param {String|Number} key Property name or an Array index
815
+ * @param {Object} [options] Optional access policy: { disableFileAccess, disableUrlAccess }
805
816
  * @param {Function} callback Callback function with (err, value)
806
817
  */
807
- module.exports.resolveContent = (data, key, callback) => {
818
+ module.exports.resolveContent = (data, key, options, callback) => {
819
+ if (!callback && typeof options === "function") {
820
+ callback = options;
821
+ options = false;
822
+ }
823
+ options = options || {};
808
824
  let promise;
809
825
  if (!callback) promise = new Promise((resolve, reject) => {
810
826
  callback = module.exports.callbackPromise(resolve, reject);
@@ -819,12 +835,25 @@ var require_shared = /* @__PURE__ */ __commonJSMin(((exports, module) => {
819
835
  else data[key] = value;
820
836
  callback(null, value);
821
837
  });
822
- else if (/^https?:\/\//i.test(content.path || content.href)) return resolveStream(nmfetch(content.path || content.href), callback);
823
- else if (/^data:/i.test(content.path || content.href)) {
838
+ else if (/^https?:\/\//i.test(content.path || content.href)) {
839
+ if (options.disableUrlAccess) return setImmediate(() => {
840
+ const err = /* @__PURE__ */ new Error("Url access rejected for " + (content.path || content.href));
841
+ err.code = errors.EURLACCESS;
842
+ callback(err);
843
+ });
844
+ return resolveStream(nmfetch(content.path || content.href), callback);
845
+ } else if (/^data:/i.test(content.path || content.href)) {
824
846
  const parsedDataUri = module.exports.parseDataURI(content.path || content.href);
825
847
  if (!parsedDataUri || !parsedDataUri.data) return callback(null, Buffer.from(0));
826
848
  return callback(null, parsedDataUri.data);
827
- } else if (content.path) return resolveStream(fs$2.createReadStream(content.path), callback);
849
+ } else if (content.path) {
850
+ if (options.disableFileAccess) return setImmediate(() => {
851
+ const err = /* @__PURE__ */ new Error("File access rejected for " + content.path);
852
+ err.code = errors.EFILEACCESS;
853
+ callback(err);
854
+ });
855
+ return resolveStream(fs$2.createReadStream(content.path), callback);
856
+ }
828
857
  }
829
858
  if (typeof data[key].content === "string" && ![
830
859
  "utf8",
@@ -3593,8 +3622,8 @@ var require_punycode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3593
3622
  let k = 0;
3594
3623
  delta = firstTime ? floor(delta / damp) : delta >> 1;
3595
3624
  delta += floor(delta / numPoints);
3596
- for (; delta > baseMinusTMin * tMax >> 1; k += base) delta = floor(delta / baseMinusTMin);
3597
- return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
3625
+ for (; delta > 455; k += base) delta = floor(delta / baseMinusTMin);
3626
+ return floor(k + 36 * delta / (delta + skew));
3598
3627
  };
3599
3628
  /**
3600
3629
  * Converts a Punycode string of ASCII-only symbols to a string of Unicode
@@ -4041,7 +4070,6 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4041
4070
  mimeWordEncoding = (mimeWordEncoding || "Q").toString().toUpperCase().trim().charAt(0);
4042
4071
  maxLength = maxLength || 0;
4043
4072
  let encodedStr;
4044
- const toCharset = "UTF-8";
4045
4073
  if (maxLength && maxLength > 12) maxLength -= 12;
4046
4074
  if (mimeWordEncoding === "Q") encodedStr = qp.encode(data).replace(/[^a-z0-9!*+\-/=]/gi, (chr) => {
4047
4075
  const ord = chr.charCodeAt(0).toString(16).toUpperCase();
@@ -4052,7 +4080,7 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4052
4080
  encodedStr = typeof data === "string" ? data : base64.encode(data);
4053
4081
  maxLength = maxLength ? Math.max(3, (maxLength - maxLength % 4) / 4 * 3) : 0;
4054
4082
  }
4055
- if (maxLength && (mimeWordEncoding !== "B" ? encodedStr : base64.encode(data)).length > maxLength) if (mimeWordEncoding === "Q") encodedStr = this.splitMimeEncodedString(encodedStr, maxLength).join("?= =?" + toCharset + "?" + mimeWordEncoding + "?");
4083
+ if (maxLength && (mimeWordEncoding !== "B" ? encodedStr : base64.encode(data)).length > maxLength) if (mimeWordEncoding === "Q") encodedStr = this.splitMimeEncodedString(encodedStr, maxLength).join("?= =?UTF-8?" + mimeWordEncoding + "?");
4056
4084
  else {
4057
4085
  const parts = [];
4058
4086
  let lpart = "";
@@ -4066,11 +4094,11 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4066
4094
  }
4067
4095
  }
4068
4096
  if (lpart) parts.push(base64.encode(lpart));
4069
- if (parts.length > 1) encodedStr = parts.join("?= =?" + toCharset + "?" + mimeWordEncoding + "?");
4097
+ if (parts.length > 1) encodedStr = parts.join("?= =?UTF-8?" + mimeWordEncoding + "?");
4070
4098
  else encodedStr = parts.join("");
4071
4099
  }
4072
4100
  else if (mimeWordEncoding === "B") encodedStr = base64.encode(data);
4073
- return "=?" + toCharset + "?" + mimeWordEncoding + "?" + encodedStr + (encodedStr.substr(-2) === "?=" ? "" : "?=");
4101
+ return "=?UTF-8?" + mimeWordEncoding + "?" + encodedStr + (encodedStr.substr(-2) === "?=" ? "" : "?=");
4074
4102
  },
4075
4103
  /**
4076
4104
  * Finds word sequences with non ascii text and converts these to mime words
@@ -6636,7 +6664,10 @@ var require_mail_message = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6636
6664
  if (pos >= keys.length) return callback(null, this.data);
6637
6665
  const args = keys[pos++];
6638
6666
  if (!args[0] || !args[0][args[1]]) return resolveNext();
6639
- shared.resolveContent(...args, (err, value) => {
6667
+ shared.resolveContent(...args, {
6668
+ disableFileAccess: this.data.disableFileAccess,
6669
+ disableUrlAccess: this.data.disableUrlAccess
6670
+ }, (err, value) => {
6640
6671
  if (err) return callback(err);
6641
6672
  const node = { content: value };
6642
6673
  if (args[0][args[1]] && typeof args[0][args[1]] === "object" && !Buffer.isBuffer(args[0][args[1]])) Object.keys(args[0][args[1]]).forEach((key) => {
@@ -6747,12 +6778,12 @@ var require_mail_message = /* @__PURE__ */ __commonJSMin(((exports, module) => {
6747
6778
  if (typeof value === "string") value = { url: value };
6748
6779
  if (value && value.url) {
6749
6780
  if (key.toLowerCase().trim() === "id") {
6750
- let comment = value.comment || "";
6781
+ let comment = (value.comment || "").toString().replace(/\r?\n|\r/g, " ");
6751
6782
  if (mimeFuncs.isPlainText(comment)) comment = "\"" + comment + "\"";
6752
6783
  else comment = mimeFuncs.encodeWord(comment);
6753
6784
  return (value.comment ? comment + " " : "") + this._formatListUrl(value.url).replace(/^<[^:]+\/{,2}/, "");
6754
6785
  }
6755
- let comment = value.comment || "";
6786
+ let comment = (value.comment || "").toString().replace(/\r?\n|\r/g, " ");
6756
6787
  if (!mimeFuncs.isPlainText(comment)) comment = mimeFuncs.encodeWord(comment);
6757
6788
  return this._formatListUrl(value.url) + (value.comment ? " (" + comment + ")" : "");
6758
6789
  }
@@ -7031,7 +7062,10 @@ var require_mailer = /* @__PURE__ */ __commonJSMin(((exports, module) => {
7031
7062
  }
7032
7063
  _convertDataImages(mail, callback) {
7033
7064
  if (!this.options.attachDataUrls && !mail.data.attachDataUrls || !mail.data.html) return callback();
7034
- mail.resolveContent(mail.data, "html", (err, html) => {
7065
+ mail.resolveContent(mail.data, "html", {
7066
+ disableFileAccess: mail.data.disableFileAccess,
7067
+ disableUrlAccess: mail.data.disableUrlAccess
7068
+ }, (err, html) => {
7035
7069
  if (err) return callback(err);
7036
7070
  let cidCounter = 0;
7037
7071
  html = (html || "").toString().replace(/(<img\b[^<>]{0,1024} src\s{0,20}=[\s"']{0,20})(data:([^;]+);[^"'>\s]+)/gi, (match, prefix, dataUri, mimeType) => {
@@ -7308,6 +7342,12 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7308
7342
  */
7309
7343
  this._closing = false;
7310
7344
  /**
7345
+ * Message DATA stream currently piped to the socket, if any. Tracked so
7346
+ * close() can unpipe it before tearing the socket down.
7347
+ * @private
7348
+ */
7349
+ this._currentDataStream = false;
7350
+ /**
7311
7351
  * Callbacks for socket's listeners
7312
7352
  */
7313
7353
  this._onSocketData = (chunk) => this._onData(chunk);
@@ -7480,6 +7520,12 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7480
7520
  const closeMethod = this.stage === "init" ? "destroy" : "end";
7481
7521
  this.logger.debug({ tnx: "smtp" }, "Closing connection to the server using \"%s\"", closeMethod);
7482
7522
  const socket = this._socket && this._socket.socket || this._socket;
7523
+ if (this._currentDataStream) {
7524
+ try {
7525
+ this._currentDataStream.unpipe(this._socket);
7526
+ } catch (_E) {}
7527
+ this._currentDataStream = false;
7528
+ }
7483
7529
  if (socket && !socket.destroyed) try {
7484
7530
  socket.setTimeout(0);
7485
7531
  socket.removeListener("data", this._onSocketData);
@@ -7776,7 +7822,7 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7776
7822
  * @event
7777
7823
  */
7778
7824
  _onEnd() {
7779
- if (this._socket && !this._socket.destroyed) this._socket.destroy();
7825
+ if (this._socket && !this._socket.destroyed) this._socket.end();
7780
7826
  }
7781
7827
  /**
7782
7828
  * 'timeout' listener for the socket
@@ -7809,18 +7855,22 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7809
7855
  host: this.host
7810
7856
  }, this.options.tls || {});
7811
7857
  if (this.servername && !opts.servername) opts.servername = this.servername;
7858
+ const removePlainSocketListeners = () => {
7859
+ socketPlain.removeListener("close", this._onSocketClose);
7860
+ socketPlain.removeListener("end", this._onSocketEnd);
7861
+ socketPlain.removeListener("error", this._onSocketError);
7862
+ };
7812
7863
  this.upgrading = true;
7813
7864
  try {
7814
7865
  this._socket = tls.connect(opts, () => {
7815
7866
  this.secure = true;
7816
7867
  this.upgrading = false;
7817
7868
  this._socket.on("data", this._onSocketData);
7818
- socketPlain.removeListener("close", this._onSocketClose);
7819
- socketPlain.removeListener("end", this._onSocketEnd);
7820
- socketPlain.removeListener("error", this._onSocketError);
7869
+ removePlainSocketListeners();
7821
7870
  return callback(null, true);
7822
7871
  });
7823
7872
  } catch (err) {
7873
+ removePlainSocketListeners();
7824
7874
  return callback(err);
7825
7875
  }
7826
7876
  this._socket.on("error", this._onSocketError);
@@ -7971,6 +8021,7 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7971
8021
  else this._responseActions.push((str) => {
7972
8022
  this._actionSMTPStream(str, callback);
7973
8023
  });
8024
+ this._currentDataStream = dataStream;
7974
8025
  dataStream.pipe(this._socket, { end: false });
7975
8026
  if (this.options.debug) {
7976
8027
  const logStream = new PassThrough();
@@ -7981,6 +8032,7 @@ var require_smtp_connection = /* @__PURE__ */ __commonJSMin(((exports, module) =
7981
8032
  dataStream.pipe(logStream);
7982
8033
  }
7983
8034
  dataStream.once("end", () => {
8035
+ if (this._currentDataStream === dataStream) this._currentDataStream = false;
7984
8036
  this.logger.info({
7985
8037
  tnx: "message",
7986
8038
  inByteCount: dataStream.inByteCount,
@@ -8403,6 +8455,7 @@ var require_xoauth2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
8403
8455
  * @param {Number} options.expires Optional Access Token expire time in ms
8404
8456
  * @param {Number} options.timeout Optional TTL for Access Token in seconds
8405
8457
  * @param {Function} options.provisionCallback Function to run when a new access token is required
8458
+ * @param {Object} options.tls Optional TLS options forwarded to the HTTPS token request. Defaults to strict cert validation; supply { rejectUnauthorized: false } only for self-hosted OAuth providers on private CAs.
8406
8459
  */
8407
8460
  var XOAuth2 = class extends Stream {
8408
8461
  constructor(options, logger) {
@@ -8647,12 +8700,14 @@ var require_xoauth2 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
8647
8700
  let returned = false;
8648
8701
  const chunks = [];
8649
8702
  let chunklen = 0;
8650
- const req = nmfetch(url, {
8703
+ const fetchOptions = {
8651
8704
  method: "post",
8652
8705
  headers: params.customHeaders,
8653
8706
  body: payload,
8654
8707
  allowErrorResponse: true
8655
- });
8708
+ };
8709
+ if (/^https:/i.test(url)) fetchOptions.tls = Object.assign({ rejectUnauthorized: true }, params.tls || {});
8710
+ const req = nmfetch(url, fetchOptions);
8656
8711
  req.on("readable", () => {
8657
8712
  let chunk;
8658
8713
  while ((chunk = req.read()) !== null) {
@@ -9960,9 +10015,15 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
9960
10015
  options = Object.assign(shared.assign(false, options), socketOptions);
9961
10016
  }
9962
10017
  const connection = new SMTPConnection(options);
10018
+ let perCallAuth;
10019
+ const cleanupPerCallAuth = () => {
10020
+ if (perCallAuth && perCallAuth !== this.auth && perCallAuth.oauth2) perCallAuth.oauth2.removeAllListeners();
10021
+ perCallAuth = null;
10022
+ };
9963
10023
  connection.once("error", (err) => {
9964
10024
  if (returned) return;
9965
10025
  returned = true;
10026
+ cleanupPerCallAuth();
9966
10027
  connection.close();
9967
10028
  return callback(err);
9968
10029
  });
@@ -9971,6 +10032,7 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
9971
10032
  const timer = setTimeout(() => {
9972
10033
  if (returned) return;
9973
10034
  returned = true;
10035
+ cleanupPerCallAuth();
9974
10036
  const err = /* @__PURE__ */ new Error("Unexpected socket close");
9975
10037
  if (connection && connection._socket && connection._socket.upgrading) err.code = errors.ETLS;
9976
10038
  callback(err);
@@ -9992,6 +10054,7 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
9992
10054
  }, "Sending message %s to <%s>", messageId, recipients.join(", "));
9993
10055
  connection.send(envelope, mail.message.createReadStream(), (err, info) => {
9994
10056
  returned = true;
10057
+ cleanupPerCallAuth();
9995
10058
  connection.close();
9996
10059
  if (err) {
9997
10060
  this.logger.error({
@@ -10017,9 +10080,9 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
10017
10080
  };
10018
10081
  connection.connect(() => {
10019
10082
  if (returned) return;
10020
- const auth = this.getAuth(mail.data.auth);
10021
- if (auth && (connection.allowsAuth || options.forceAuth)) connection.login(auth, (err) => {
10022
- if (auth && auth !== this.auth && auth.oauth2) auth.oauth2.removeAllListeners();
10083
+ perCallAuth = this.getAuth(mail.data.auth);
10084
+ if (perCallAuth && (connection.allowsAuth || options.forceAuth)) connection.login(perCallAuth, (err) => {
10085
+ cleanupPerCallAuth();
10023
10086
  if (returned) return;
10024
10087
  if (err) {
10025
10088
  returned = true;
@@ -10058,27 +10121,36 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
10058
10121
  }
10059
10122
  const connection = new SMTPConnection(options);
10060
10123
  let returned = false;
10124
+ let perCallAuth;
10125
+ const cleanupPerCallAuth = () => {
10126
+ if (perCallAuth && perCallAuth !== this.auth && perCallAuth.oauth2) perCallAuth.oauth2.removeAllListeners();
10127
+ perCallAuth = null;
10128
+ };
10061
10129
  connection.once("error", (err) => {
10062
10130
  if (returned) return;
10063
10131
  returned = true;
10132
+ cleanupPerCallAuth();
10064
10133
  connection.close();
10065
10134
  return callback(err);
10066
10135
  });
10067
10136
  connection.once("end", () => {
10068
10137
  if (returned) return;
10069
10138
  returned = true;
10139
+ cleanupPerCallAuth();
10070
10140
  return callback(/* @__PURE__ */ new Error("Connection closed"));
10071
10141
  });
10072
10142
  const finalize = () => {
10073
10143
  if (returned) return;
10074
10144
  returned = true;
10145
+ cleanupPerCallAuth();
10075
10146
  connection.quit();
10076
10147
  return callback(null, true);
10077
10148
  };
10078
10149
  connection.connect(() => {
10079
10150
  if (returned) return;
10080
- const authData = this.getAuth({});
10081
- if (authData && (connection.allowsAuth || options.forceAuth)) connection.login(authData, (err) => {
10151
+ perCallAuth = this.getAuth({});
10152
+ if (perCallAuth && (connection.allowsAuth || options.forceAuth)) connection.login(perCallAuth, (err) => {
10153
+ cleanupPerCallAuth();
10082
10154
  if (returned) return;
10083
10155
  if (err) {
10084
10156
  returned = true;
@@ -10087,10 +10159,11 @@ var require_smtp_transport = /* @__PURE__ */ __commonJSMin(((exports, module) =>
10087
10159
  }
10088
10160
  finalize();
10089
10161
  });
10090
- else if (!authData && connection.allowsAuth && options.forceAuth) {
10162
+ else if (!perCallAuth && connection.allowsAuth && options.forceAuth) {
10091
10163
  const err = /* @__PURE__ */ new Error("Authentication info was not provided");
10092
10164
  err.code = errors.ENOAUTH;
10093
10165
  returned = true;
10166
+ cleanupPerCallAuth();
10094
10167
  connection.close();
10095
10168
  return callback(err);
10096
10169
  } else finalize();
@@ -10596,12 +10669,14 @@ var import_nodemailer = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin((
10596
10669
  version: packageData.version
10597
10670
  };
10598
10671
  if (ETHEREAL_API_KEY) requestHeaders.Authorization = "Bearer " + ETHEREAL_API_KEY;
10599
- const req = nmfetch(apiUrl + "/user", {
10672
+ const fetchOptions = {
10600
10673
  contentType: "application/json",
10601
10674
  method: "POST",
10602
10675
  headers: requestHeaders,
10603
10676
  body: Buffer.from(JSON.stringify(requestBody))
10604
- });
10677
+ };
10678
+ if (/^https:/i.test(apiUrl)) fetchOptions.tls = { rejectUnauthorized: true };
10679
+ const req = nmfetch(apiUrl + "/user", fetchOptions);
10605
10680
  req.on("readable", () => {
10606
10681
  let chunk;
10607
10682
  while ((chunk = req.read()) !== null) {