alepha 0.20.2 → 0.20.4

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 (304) hide show
  1. package/README.md +0 -1
  2. package/assets/swagger-ui/swagger-ui-bundle.js +1 -1
  3. package/assets/swagger-ui/swagger-ui.css +1 -1
  4. package/dist/api/audits/index.browser.js +49 -0
  5. package/dist/api/audits/index.browser.js.map +1 -1
  6. package/dist/api/audits/index.js +49 -0
  7. package/dist/api/audits/index.js.map +1 -1
  8. package/dist/api/files/index.js.map +1 -1
  9. package/dist/api/jobs/index.d.ts +2 -61
  10. package/dist/api/jobs/index.d.ts.map +1 -1
  11. package/dist/api/jobs/index.js.map +1 -1
  12. package/dist/api/keys/index.d.ts +4 -4
  13. package/dist/api/keys/index.js.map +1 -1
  14. package/dist/api/notifications/index.d.ts +1 -10
  15. package/dist/api/notifications/index.d.ts.map +1 -1
  16. package/dist/api/parameters/index.browser.js +37 -0
  17. package/dist/api/parameters/index.browser.js.map +1 -1
  18. package/dist/api/parameters/index.d.ts +12 -68
  19. package/dist/api/parameters/index.d.ts.map +1 -1
  20. package/dist/api/parameters/index.js +57 -4
  21. package/dist/api/parameters/index.js.map +1 -1
  22. package/dist/api/payments/index.js.map +1 -1
  23. package/dist/api/users/index.browser.js +6 -0
  24. package/dist/api/users/index.browser.js.map +1 -1
  25. package/dist/api/users/index.d.ts +148 -227
  26. package/dist/api/users/index.d.ts.map +1 -1
  27. package/dist/api/users/index.js +60 -14
  28. package/dist/api/users/index.js.map +1 -1
  29. package/dist/api/verifications/index.d.ts.map +1 -1
  30. package/dist/api/verifications/index.js +2 -1
  31. package/dist/api/verifications/index.js.map +1 -1
  32. package/dist/bucket/index.d.ts +77 -107
  33. package/dist/bucket/index.d.ts.map +1 -1
  34. package/dist/bucket/index.js +153 -5
  35. package/dist/bucket/index.js.map +1 -1
  36. package/dist/bucket/index.workerd.js +12 -2
  37. package/dist/bucket/index.workerd.js.map +1 -1
  38. package/dist/cache/core/index.d.ts +26 -0
  39. package/dist/cache/core/index.d.ts.map +1 -1
  40. package/dist/cache/core/index.js +11 -1
  41. package/dist/cache/core/index.js.map +1 -1
  42. package/dist/cache/core/index.workerd.js +11 -1
  43. package/dist/cache/core/index.workerd.js.map +1 -1
  44. package/dist/captcha/index.js.map +1 -1
  45. package/dist/cli/config/index.d.ts +7 -5
  46. package/dist/cli/config/index.d.ts.map +1 -1
  47. package/dist/cli/config/index.js +2 -3
  48. package/dist/cli/config/index.js.map +1 -1
  49. package/dist/cli/core/index.d.ts +637 -11660
  50. package/dist/cli/core/index.d.ts.map +1 -1
  51. package/dist/cli/core/index.js +707 -532
  52. package/dist/cli/core/index.js.map +1 -1
  53. package/dist/cli/devtools/index.d.ts +4 -8
  54. package/dist/cli/devtools/index.d.ts.map +1 -1
  55. package/dist/cli/devtools/index.js +20 -16
  56. package/dist/cli/devtools/index.js.map +1 -1
  57. package/dist/cli/platform/index.d.ts +51 -77
  58. package/dist/cli/platform/index.d.ts.map +1 -1
  59. package/dist/cli/platform/index.js +65 -15
  60. package/dist/cli/platform/index.js.map +1 -1
  61. package/dist/cli/vendor/index.d.ts +10 -13
  62. package/dist/cli/vendor/index.d.ts.map +1 -1
  63. package/dist/cli/vendor/index.js +30 -12
  64. package/dist/cli/vendor/index.js.map +1 -1
  65. package/dist/command/index.js +1 -1
  66. package/dist/command/index.js.map +1 -1
  67. package/dist/core/index.browser.js +27 -3
  68. package/dist/core/index.browser.js.map +1 -1
  69. package/dist/core/index.d.ts +8 -11
  70. package/dist/core/index.d.ts.map +1 -1
  71. package/dist/core/index.js +27 -3
  72. package/dist/core/index.js.map +1 -1
  73. package/dist/core/index.native.js +27 -3
  74. package/dist/core/index.native.js.map +1 -1
  75. package/dist/core/index.workerd.js +27 -3
  76. package/dist/core/index.workerd.js.map +1 -1
  77. package/dist/crypto/index.js.map +1 -1
  78. package/dist/datetime/index.d.ts +69 -10
  79. package/dist/datetime/index.d.ts.map +1 -1
  80. package/dist/datetime/index.js +135 -13
  81. package/dist/datetime/index.js.map +1 -1
  82. package/dist/email/core/index.js.map +1 -1
  83. package/dist/email/smtp/index.js +130 -16
  84. package/dist/email/smtp/index.js.map +1 -1
  85. package/dist/fake/index.js.map +1 -1
  86. package/dist/lock/core/index.d.ts +30 -2
  87. package/dist/lock/core/index.d.ts.map +1 -1
  88. package/dist/lock/core/index.js +35 -12
  89. package/dist/lock/core/index.js.map +1 -1
  90. package/dist/lock/redis/index.js.map +1 -1
  91. package/dist/logger/index.js +32 -1
  92. package/dist/logger/index.js.map +1 -1
  93. package/dist/mcp/index.d.ts +238 -31
  94. package/dist/mcp/index.d.ts.map +1 -1
  95. package/dist/mcp/index.js +198 -67
  96. package/dist/mcp/index.js.map +1 -1
  97. package/dist/orm/core/index.browser.js +2 -362
  98. package/dist/orm/core/index.browser.js.map +1 -1
  99. package/dist/orm/core/index.bun.js +18 -409
  100. package/dist/orm/core/index.bun.js.map +1 -1
  101. package/dist/orm/core/index.d.ts +41 -194
  102. package/dist/orm/core/index.d.ts.map +1 -1
  103. package/dist/orm/core/index.js +27 -422
  104. package/dist/orm/core/index.js.map +1 -1
  105. package/dist/orm/postgres/index.bun.js +17 -20
  106. package/dist/orm/postgres/index.bun.js.map +1 -1
  107. package/dist/orm/postgres/index.d.ts +1 -5
  108. package/dist/orm/postgres/index.d.ts.map +1 -1
  109. package/dist/orm/postgres/index.js +17 -20
  110. package/dist/orm/postgres/index.js.map +1 -1
  111. package/dist/react/core/index.d.ts +102 -1
  112. package/dist/react/core/index.d.ts.map +1 -1
  113. package/dist/react/core/index.js +65 -1
  114. package/dist/react/core/index.js.map +1 -1
  115. package/dist/react/form/index.d.ts +6 -0
  116. package/dist/react/form/index.d.ts.map +1 -1
  117. package/dist/react/form/index.js +7 -7
  118. package/dist/react/form/index.js.map +1 -1
  119. package/dist/react/i18n/index.d.ts +7 -1
  120. package/dist/react/i18n/index.d.ts.map +1 -1
  121. package/dist/react/i18n/index.js +6 -0
  122. package/dist/react/i18n/index.js.map +1 -1
  123. package/dist/react/intro/index.js +22 -17
  124. package/dist/react/intro/index.js.map +1 -1
  125. package/dist/react/router/index.browser.js +98 -4
  126. package/dist/react/router/index.browser.js.map +1 -1
  127. package/dist/react/router/index.d.ts +58 -5
  128. package/dist/react/router/index.d.ts.map +1 -1
  129. package/dist/react/router/index.js +122 -6
  130. package/dist/react/router/index.js.map +1 -1
  131. package/dist/react/testing/{chunk-DBEY4PJZ.js → chunk-6Ep1yQYe.js} +1 -1
  132. package/dist/react/testing/index.js +1 -1
  133. package/dist/react/testing/index.js.map +1 -1
  134. package/dist/react/ui/index.d.ts +195 -1
  135. package/dist/react/ui/index.d.ts.map +1 -1
  136. package/dist/react/ui/index.js +64 -1
  137. package/dist/react/ui/index.js.map +1 -1
  138. package/dist/react/websocket/index.js.map +1 -1
  139. package/dist/redis/index.js.map +1 -1
  140. package/dist/scheduler/index.d.ts +1 -2
  141. package/dist/scheduler/index.d.ts.map +1 -1
  142. package/dist/scheduler/index.js +1 -1
  143. package/dist/scheduler/index.js.map +1 -1
  144. package/dist/scheduler/index.workerd.js +1 -1
  145. package/dist/scheduler/index.workerd.js.map +1 -1
  146. package/dist/security/index.browser.js.map +1 -1
  147. package/dist/security/index.d.ts.map +1 -1
  148. package/dist/security/index.js +2 -2
  149. package/dist/security/index.js.map +1 -1
  150. package/dist/server/auth/index.d.ts.map +1 -1
  151. package/dist/server/auth/index.js +24 -10
  152. package/dist/server/auth/index.js.map +1 -1
  153. package/dist/server/cookies/index.js.map +1 -1
  154. package/dist/server/core/index.browser.js +10 -3
  155. package/dist/server/core/index.browser.js.map +1 -1
  156. package/dist/server/core/index.d.ts +1 -4
  157. package/dist/server/core/index.d.ts.map +1 -1
  158. package/dist/server/core/index.js +47 -9
  159. package/dist/server/core/index.js.map +1 -1
  160. package/dist/server/links/index.browser.js.map +1 -1
  161. package/dist/server/links/index.js.map +1 -1
  162. package/dist/server/metrics/index.js +19 -1
  163. package/dist/server/metrics/index.js.map +1 -1
  164. package/dist/server/rate-limit/index.js.map +1 -1
  165. package/dist/server/static/index.js.map +1 -1
  166. package/dist/server/swagger/index.d.ts.map +1 -1
  167. package/dist/server/swagger/index.js +4 -5
  168. package/dist/server/swagger/index.js.map +1 -1
  169. package/dist/sms/index.js.map +1 -1
  170. package/dist/system/index.browser.js.map +1 -1
  171. package/dist/system/index.js.map +1 -1
  172. package/dist/system/index.workerd.js.map +1 -1
  173. package/dist/topic/core/index.js.map +1 -1
  174. package/dist/websocket/index.browser.js +32 -5
  175. package/dist/websocket/index.browser.js.map +1 -1
  176. package/dist/websocket/index.d.ts +3 -1
  177. package/dist/websocket/index.d.ts.map +1 -1
  178. package/dist/websocket/index.js +42 -6
  179. package/dist/websocket/index.js.map +1 -1
  180. package/package.json +685 -274
  181. package/src/api/files/__tests__/FileController.spec.ts +1 -1
  182. package/src/api/jobs/__tests__/$job.spec.ts +5 -1
  183. package/src/api/parameters/services/ParameterProvider.ts +21 -4
  184. package/src/api/users/__tests__/SessionService.spec.ts +99 -0
  185. package/src/api/users/__tests__/UserJobs.spec.ts +67 -0
  186. package/src/api/users/atoms/realmAuthSettingsAtom.ts +15 -0
  187. package/src/api/users/entities/sessions.ts +6 -0
  188. package/src/api/users/jobs/UserJobs.ts +44 -17
  189. package/src/api/users/providers/RealmProvider.ts +4 -0
  190. package/src/api/users/schemas/userQuerySchema.ts +0 -1
  191. package/src/api/users/services/SessionService.ts +27 -0
  192. package/src/api/users/services/UserService.ts +1 -5
  193. package/src/api/verifications/__tests__/CodeVerification.spec.ts +14 -0
  194. package/src/api/verifications/__tests__/LinkVerification.spec.ts +14 -0
  195. package/src/api/verifications/services/VerificationService.ts +1 -0
  196. package/src/bucket/__tests__/NodeS3BucketProvider.spec.ts +74 -0
  197. package/src/bucket/index.ts +19 -2
  198. package/src/bucket/primitives/$bucket.ts +9 -1
  199. package/src/bucket/providers/CloudflareR2Provider.ts +2 -137
  200. package/src/bucket/providers/NodeS3BucketProvider.ts +218 -0
  201. package/src/cache/core/index.ts +29 -0
  202. package/src/cache/core/primitives/$cache.ts +14 -1
  203. package/src/cli/config/defineConfig.ts +13 -15
  204. package/src/cli/core/__tests__/init.spec.ts +214 -7
  205. package/src/cli/core/commands/init.ts +12 -0
  206. package/src/cli/core/services/PackageManagerUtils.ts +23 -6
  207. package/src/cli/core/services/ProjectScaffolder.ts +315 -33
  208. package/src/cli/core/tasks/BuildCloudflareTask.ts +5 -0
  209. package/src/cli/core/tasks/BuildDockerTask.ts +9 -10
  210. package/src/cli/core/tasks/BuildServerTask.ts +8 -0
  211. package/src/cli/core/templates/agentMd.ts +2 -10
  212. package/src/cli/core/templates/apiIndexTs.ts +23 -1
  213. package/src/cli/core/templates/componentsJsonTs.ts +39 -0
  214. package/src/cli/core/templates/mainCss.ts +1 -0
  215. package/src/cli/core/templates/saasAdminLayoutTsx.ts +77 -0
  216. package/src/cli/core/templates/saasAdminPagesTsx.ts +26 -0
  217. package/src/cli/core/templates/saasAuthLayoutTsx.ts +20 -0
  218. package/src/cli/core/templates/saasAuthPagesTsx.ts +62 -0
  219. package/src/cli/core/templates/saasRealmProviderTs.ts +46 -0
  220. package/src/cli/core/templates/webAppRouterTs.ts +104 -1
  221. package/src/cli/core/templates/webIndexTs.ts +23 -1
  222. package/src/cli/devtools/index.ts +12 -26
  223. package/src/cli/platform/__tests__/SecretsCommand.spec.ts +2 -0
  224. package/src/cli/platform/index.ts +15 -24
  225. package/src/cli/vendor/atoms/vendorOptions.ts +1 -1
  226. package/src/cli/vendor/index.ts +14 -23
  227. package/src/command/providers/CliProvider.ts +1 -1
  228. package/src/core/Alepha.ts +11 -1
  229. package/src/core/helpers/ref.ts +18 -0
  230. package/src/core/index.shared.ts +1 -0
  231. package/src/core/interfaces/Service.ts +3 -1
  232. package/src/core/providers/SchemaValidator.ts +9 -1
  233. package/src/core/providers/TypeProvider.ts +2 -3
  234. package/src/datetime/REFACTORING.md +118 -0
  235. package/src/datetime/providers/DateTimeProvider.ts +203 -24
  236. package/src/lock/core/index.ts +31 -0
  237. package/src/lock/core/primitives/$lock.ts +14 -1
  238. package/src/logger/services/Logger.ts +1 -1
  239. package/src/mcp/__tests__/$resource.spec.ts +1 -1
  240. package/src/mcp/__tests__/$tool.spec.ts +1 -1
  241. package/src/mcp/__tests__/McpServerProvider.spec.ts +1 -1
  242. package/src/mcp/__tests__/jsonrpc.spec.ts +1 -1
  243. package/src/mcp/helpers/jsonrpc.ts +26 -1
  244. package/src/mcp/index.ts +10 -5
  245. package/src/mcp/interfaces/McpTypes.ts +83 -6
  246. package/src/mcp/primitives/$prompt.ts +18 -1
  247. package/src/mcp/primitives/$resource.ts +18 -1
  248. package/src/mcp/primitives/$tool.ts +83 -7
  249. package/src/mcp/providers/McpServerProvider.ts +74 -16
  250. package/src/mcp/transports/StreamableHttpMcpTransport.ts +226 -0
  251. package/src/orm/REFACTORING.md +330 -0
  252. package/src/orm/__tests__/$repository-tests.ts +1 -0
  253. package/src/orm/__tests__/orm-next-tests.ts +2 -67
  254. package/src/orm/__tests__/orm-next.spec.ts +0 -21
  255. package/src/orm/core/index.shared.ts +0 -2
  256. package/src/orm/core/index.ts +1 -2
  257. package/src/orm/core/primitives/$repository.ts +3 -6
  258. package/src/orm/core/primitives/$transactional.ts +11 -0
  259. package/src/orm/core/providers/drivers/DatabaseProvider.ts +0 -5
  260. package/src/orm/core/providers/drivers/NodeSqliteProvider.ts +11 -13
  261. package/src/orm/core/schemas/updateSchema.ts +1 -1
  262. package/src/orm/core/services/ModelBuilder.ts +1 -13
  263. package/src/orm/core/services/PgRelationManager.ts +4 -2
  264. package/src/orm/core/services/Repository.ts +1 -42
  265. package/src/orm/core/services/SqliteModelBuilder.ts +2 -33
  266. package/src/orm/postgres/services/PostgresModelBuilder.ts +10 -45
  267. package/src/react/core/__tests__/useQuery.browser.spec.tsx +86 -0
  268. package/src/react/core/hooks/useQuery.ts +153 -0
  269. package/src/react/core/index.ts +1 -0
  270. package/src/react/form/services/FormModel.ts +15 -6
  271. package/src/react/form/services/parseField.ts +8 -0
  272. package/src/react/i18n/providers/I18nProvider.ts +8 -2
  273. package/src/react/intro/components/GettingStartedAuthSlide.tsx +11 -4
  274. package/src/react/router/__tests__/$page.spec.tsx +0 -16
  275. package/src/react/router/__tests__/ReactBrowserProvider.browser.spec.ts +213 -2
  276. package/src/react/router/__tests__/ssr.spec.tsx +339 -0
  277. package/src/react/router/primitives/$page.ts +28 -4
  278. package/src/react/router/providers/ReactBrowserProvider.ts +73 -0
  279. package/src/react/router/providers/ReactBrowserRouterProvider.ts +1 -1
  280. package/src/react/router/providers/ReactPageProvider.ts +27 -9
  281. package/src/react/router/providers/ReactPreloadProvider.ts +1 -1
  282. package/src/react/router/providers/ReactServerProvider.ts +1 -0
  283. package/src/react/ui/atoms/uiThemeListAtom.ts +36 -0
  284. package/src/react/ui/index.ts +6 -0
  285. package/src/react/ui/services/SchemaControl.ts +209 -0
  286. package/src/scheduler/providers/CronProvider.ts +1 -1
  287. package/src/security/primitives/$basicAuth.ts +1 -1
  288. package/src/security/primitives/$issuer.ts +6 -3
  289. package/src/server/auth/providers/ServerAuthProvider.ts +5 -1
  290. package/src/server/core/__tests__/ServerRouterProvider-serializationError.spec.ts +75 -0
  291. package/src/server/core/__tests__/ServerRouterProvider-validationError.spec.ts +306 -0
  292. package/src/server/core/errors/ValidationError.ts +13 -1
  293. package/src/server/core/interfaces/ServerRequest.ts +1 -0
  294. package/src/server/core/primitives/$action.ts +16 -5
  295. package/src/server/core/providers/ServerProvider.ts +1 -1
  296. package/src/server/core/providers/ServerRouterProvider.ts +28 -6
  297. package/src/server/core/services/HttpClient.ts +1 -1
  298. package/src/server/swagger/providers/ServerSwaggerProvider.ts +6 -8
  299. package/src/websocket/providers/NodeWebSocketServerProvider.ts +10 -4
  300. package/src/websocket/services/WebSocketClient.ts +11 -5
  301. package/src/mcp/transports/SseMcpTransport.ts +0 -182
  302. package/src/orm/core/__tests__/parseQueryString.spec.ts +0 -196
  303. package/src/orm/core/helpers/parseQueryString.ts +0 -502
  304. package/src/orm/core/primitives/$view.ts +0 -88
@@ -9,7 +9,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
9
  var __getOwnPropNames = Object.getOwnPropertyNames;
10
10
  var __getProtoOf = Object.getPrototypeOf;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
- var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
12
+ var __commonJSMin = (cb, mod) => () => (mod || (cb((mod = { exports: {} }).exports, mod), cb = null), mod.exports);
13
13
  var __copyProps = (to, from, except, desc) => {
14
14
  if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
15
15
  key = keys[i];
@@ -203,7 +203,7 @@ 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.5",
206
+ "version": "8.0.7",
207
207
  "description": "Easy as cake e-mail sending from your Node.js applications",
208
208
  "main": "lib/nodemailer.js",
209
209
  "scripts": {
@@ -226,20 +226,19 @@ var require_package = /* @__PURE__ */ __commonJSMin(((exports, module) => {
226
226
  "bugs": { "url": "https://github.com/nodemailer/nodemailer/issues" },
227
227
  "homepage": "https://nodemailer.com/",
228
228
  "devDependencies": {
229
- "@aws-sdk/client-sesv2": "3.1025.0",
229
+ "@aws-sdk/client-sesv2": "3.1037.0",
230
230
  "bunyan": "1.8.15",
231
231
  "c8": "11.0.0",
232
- "eslint": "10.2.0",
232
+ "eslint": "10.2.1",
233
233
  "eslint-config-prettier": "10.1.8",
234
- "globals": "17.4.0",
234
+ "globals": "17.5.0",
235
235
  "libbase64": "1.3.0",
236
- "libmime": "5.3.7",
236
+ "libmime": "5.3.8",
237
237
  "libqp": "2.1.1",
238
- "nodemailer-ntlm-auth": "1.0.4",
239
- "prettier": "3.8.1",
238
+ "prettier": "3.8.3",
240
239
  "proxy": "1.0.2",
241
240
  "proxy-test-server": "1.0.0",
242
- "smtp-server": "3.18.3"
241
+ "smtp-server": "3.18.4"
243
242
  },
244
243
  "engines": { "node": ">=6.0.0" }
245
244
  };
@@ -3720,7 +3719,19 @@ var require_punycode = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3720
3719
  });
3721
3720
  };
3722
3721
  module.exports = {
3722
+ /**
3723
+ * A string representing the current Punycode.js version number.
3724
+ * @memberOf punycode
3725
+ * @type String
3726
+ */
3723
3727
  version: "2.3.1",
3728
+ /**
3729
+ * An object of methods to convert from JavaScript's internal character
3730
+ * representation (UCS-2) to Unicode code points, and back.
3731
+ * @see <https://mathiasbynens.be/notes/javascript-encoding>
3732
+ * @memberOf punycode
3733
+ * @type Object
3734
+ */
3724
3735
  ucs2: {
3725
3736
  decode: ucs2decode,
3726
3737
  encode: ucs2encode
@@ -3761,11 +3772,11 @@ var require_base64 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3761
3772
  const chunkLength = lineLength * 1024;
3762
3773
  const wrapRegex = new RegExp(".{" + lineLength + "}", "g");
3763
3774
  while (pos < str.length) {
3764
- const wrappedLines = str.substr(pos, chunkLength).replace(wrapRegex, "$&\r\n");
3775
+ const wrappedLines = str.substr(pos, chunkLength).replace(wrapRegex, "$&\r\n").trim();
3765
3776
  result.push(wrappedLines);
3766
3777
  pos += chunkLength;
3767
3778
  }
3768
- return result.join("");
3779
+ return result.join("\r\n").trim();
3769
3780
  }
3770
3781
  /**
3771
3782
  * Creates a transform stream for encoding data to base64 encoding
@@ -3803,12 +3814,12 @@ var require_base64 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3803
3814
  if (lastLF < 0) {
3804
3815
  this._curLine = b64;
3805
3816
  b64 = "";
3806
- } else {
3817
+ } else if (lastLF === b64.length - 1) this._curLine = "";
3818
+ else {
3807
3819
  this._curLine = b64.substring(lastLF + 1);
3808
3820
  b64 = b64.substring(0, lastLF + 1);
3809
- if (b64 && !b64.endsWith("\r\n")) b64 += "\r\n";
3810
3821
  }
3811
- } else this._curLine = "";
3822
+ }
3812
3823
  if (b64) {
3813
3824
  this.outputBytes += b64.length;
3814
3825
  this.push(Buffer.from(b64, "ascii"));
@@ -3818,6 +3829,7 @@ var require_base64 = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3818
3829
  _flush(done) {
3819
3830
  if (this._remainingBytes && this._remainingBytes.length) this._curLine += encode(this._remainingBytes);
3820
3831
  if (this._curLine) {
3832
+ this._curLine = wrap(this._curLine, this.options.lineLength);
3821
3833
  this.outputBytes += this._curLine.length;
3822
3834
  this.push(Buffer.from(this._curLine, "ascii"));
3823
3835
  this._curLine = "";
@@ -3993,13 +4005,38 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3993
4005
  const qp = require_qp();
3994
4006
  const mimeTypes = require_mime_types();
3995
4007
  module.exports = {
4008
+ /**
4009
+ * Checks if a value is plaintext string (uses only printable 7bit chars)
4010
+ *
4011
+ * @param {String} value String to be tested
4012
+ * @returns {Boolean} true if it is a plaintext string
4013
+ */
3996
4014
  isPlainText(value, isParam) {
3997
4015
  return typeof value === "string" && !(isParam ? /[\x00-\x08\x0b\x0c\x0e-\x1f"\u0080-\uFFFF]/ : /[\x00-\x08\x0b\x0c\x0e-\x1f\u0080-\uFFFF]/).test(value);
3998
4016
  },
4017
+ /**
4018
+ * Checks if a multi line string containes lines longer than the selected value.
4019
+ *
4020
+ * Useful when detecting if a mail message needs any processing at all –
4021
+ * if only plaintext characters are used and lines are short, then there is
4022
+ * no need to encode the values in any way. If the value is plaintext but has
4023
+ * longer lines then allowed, then use format=flowed
4024
+ *
4025
+ * @param {Number} lineLength Max line length to check for
4026
+ * @returns {Boolean} Returns true if there is at least one line longer than lineLength chars
4027
+ */
3999
4028
  hasLongerLines(str, lineLength) {
4000
4029
  if (str.length > 128 * 1024) return true;
4001
4030
  return new RegExp("^.{" + (lineLength + 1) + ",}", "m").test(str);
4002
4031
  },
4032
+ /**
4033
+ * Encodes a string or an Buffer to an UTF-8 MIME Word (rfc2047)
4034
+ *
4035
+ * @param {String|Buffer} data String to be encoded
4036
+ * @param {String} mimeWordEncoding='Q' Encoding for the mime word, either Q or B
4037
+ * @param {Number} [maxLength=0] If set, split mime words into several chunks if needed
4038
+ * @return {String} Single or several mime words joined together
4039
+ */
4003
4040
  encodeWord(data, mimeWordEncoding, maxLength) {
4004
4041
  mimeWordEncoding = (mimeWordEncoding || "Q").toString().toUpperCase().trim().charAt(0);
4005
4042
  maxLength = maxLength || 0;
@@ -4035,6 +4072,15 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4035
4072
  else if (mimeWordEncoding === "B") encodedStr = base64.encode(data);
4036
4073
  return "=?" + toCharset + "?" + mimeWordEncoding + "?" + encodedStr + (encodedStr.substr(-2) === "?=" ? "" : "?=");
4037
4074
  },
4075
+ /**
4076
+ * Finds word sequences with non ascii text and converts these to mime words
4077
+ *
4078
+ * @param {String} value String to be encoded
4079
+ * @param {String} mimeWordEncoding='Q' Encoding for the mime word, either Q or B
4080
+ * @param {Number} [maxLength=0] If set, split mime words into several chunks if needed
4081
+ * @param {Boolean} [encodeAll=false] If true and the value needs encoding then encodes entire string, not just the smallest match
4082
+ * @return {String} String with possible mime words
4083
+ */
4038
4084
  encodeWords(value, mimeWordEncoding, maxLength, encodeAll) {
4039
4085
  maxLength = maxLength || 0;
4040
4086
  const firstMatch = value.match(/(?:^|\s)([^\s]*["\u0080-\uFFFF])/);
@@ -4046,6 +4092,13 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4046
4092
  const endIndex = lastMatch.index + (lastMatch[1] || "").length;
4047
4093
  return (startIndex ? value.substr(0, startIndex) : "") + this.encodeWord(value.substring(startIndex, endIndex), mimeWordEncoding || "Q", maxLength) + (endIndex < value.length ? value.substr(endIndex) : "");
4048
4094
  },
4095
+ /**
4096
+ * Joins parsed header value together as 'value; param1=value1; param2=value2'
4097
+ * PS: We are following RFC 822 for the list of special characters that we need to keep in quotes.
4098
+ * Refer: https://www.w3.org/Protocols/rfc1341/4_Content-Type.html
4099
+ * @param {Object} structured Parsed header value
4100
+ * @return {String} joined header value
4101
+ */
4049
4102
  buildHeaderValue(structured) {
4050
4103
  const paramsArray = [];
4051
4104
  Object.keys(structured.params || {}).forEach((param) => {
@@ -4059,6 +4112,21 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4059
4112
  });
4060
4113
  return structured.value + (paramsArray.length ? "; " + paramsArray.join("; ") : "");
4061
4114
  },
4115
+ /**
4116
+ * Encodes a string or an Buffer to an UTF-8 Parameter Value Continuation encoding (rfc2231)
4117
+ * Useful for splitting long parameter values.
4118
+ *
4119
+ * For example
4120
+ * title="unicode string"
4121
+ * becomes
4122
+ * title*0*=utf-8''unicode
4123
+ * title*1*=%20string
4124
+ *
4125
+ * @param {String|Buffer} data String to be encoded
4126
+ * @param {Number} [maxLength=50] Max length for generated chunks
4127
+ * @param {String} [fromCharset='UTF-8'] Source sharacter set
4128
+ * @return {Array} A list of encoded keys and headers
4129
+ */
4062
4130
  buildHeaderParam(key, data, maxLength) {
4063
4131
  const list = [];
4064
4132
  let encodedStr = typeof data === "string" ? data : (data || "").toString();
@@ -4135,6 +4203,21 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4135
4203
  value: item.line
4136
4204
  }));
4137
4205
  },
4206
+ /**
4207
+ * Parses a header value with key=value arguments into a structured
4208
+ * object.
4209
+ *
4210
+ * parseHeaderValue('content-type: text/plain; CHARSET='UTF-8'') ->
4211
+ * {
4212
+ * 'value': 'text/plain',
4213
+ * 'params': {
4214
+ * 'charset': 'UTF-8'
4215
+ * }
4216
+ * }
4217
+ *
4218
+ * @param {String} str Header value
4219
+ * @return {Object} Header value as a parsed structure
4220
+ */
4138
4221
  parseHeaderValue(str) {
4139
4222
  const response = {
4140
4223
  value: false,
@@ -4207,8 +4290,31 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4207
4290
  });
4208
4291
  return response;
4209
4292
  },
4293
+ /**
4294
+ * Returns file extension for a content type string. If no suitable extensions
4295
+ * are found, 'bin' is used as the default extension
4296
+ *
4297
+ * @param {String} mimeType Content type to be checked for
4298
+ * @return {String} File extension
4299
+ */
4210
4300
  detectExtension: (mimeType) => mimeTypes.detectExtension(mimeType),
4301
+ /**
4302
+ * Returns content type for a file extension. If no suitable content types
4303
+ * are found, 'application/octet-stream' is used as the default content type
4304
+ *
4305
+ * @param {String} extension Extension to be checked for
4306
+ * @return {String} File extension
4307
+ */
4211
4308
  detectMimeType: (extension) => mimeTypes.detectMimeType(extension),
4309
+ /**
4310
+ * Folds long lines, useful for folding header lines (afterSpace=false) and
4311
+ * flowed text (afterSpace=true)
4312
+ *
4313
+ * @param {String} str String to be folded
4314
+ * @param {Number} [lineLength=76] Maximum length of a line
4315
+ * @param {Boolean} afterSpace If true, leave a space in th end of a line
4316
+ * @return {String} String with folded lines
4317
+ */
4212
4318
  foldLines(str, lineLength, afterSpace) {
4213
4319
  str = (str || "").toString();
4214
4320
  lineLength = lineLength || 76;
@@ -4235,6 +4341,13 @@ var require_mime_funcs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
4235
4341
  }
4236
4342
  return result;
4237
4343
  },
4344
+ /**
4345
+ * Splits a mime encoded string. Needed for dividing mime words into smaller chunks
4346
+ *
4347
+ * @param {String} str Mime encoded string to be split up
4348
+ * @param {Number} maxlen Maximum length of characters for one part (minimum 12)
4349
+ * @return {Array} Split string
4350
+ */
4238
4351
  splitMimeEncodedString: (str, maxlen) => {
4239
4352
  const lines = [];
4240
4353
  let curLine, match, chr, done;
@@ -5509,9 +5622,10 @@ var require_mime_node = /* @__PURE__ */ __commonJSMin(((exports, module) => {
5509
5622
  if (lastAt < 0) return address;
5510
5623
  let user = address.substr(0, lastAt);
5511
5624
  const domain = address.substr(lastAt + 1);
5512
- let encodedDomain;
5625
+ let encodedDomain = domain;
5513
5626
  try {
5514
- encodedDomain = punycode.toASCII(domain.toLowerCase());
5627
+ if (/[\x80-\uFFFF]/.test(user)) encodedDomain = punycode.toUnicode(domain.toLowerCase());
5628
+ else encodedDomain = punycode.toASCII(domain.toLowerCase());
5515
5629
  } catch (_err) {}
5516
5630
  if (user.indexOf(" ") >= 0) {
5517
5631
  if (user.charAt(0) !== "\"") user = "\"" + user;