apeframework 0.0.0-dev.2 → 0.0.0-dev.21

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 (462) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -46
  3. package/cipher/Algorithm.d.ts +6 -0
  4. package/cipher/Algorithm.js +7 -0
  5. package/cipher/Cipher.d.ts +12 -0
  6. package/cipher/Cipher.js +32 -0
  7. package/cipher/errors/DecryptError.d.ts +5 -0
  8. package/cipher/errors/DecryptError.js +7 -0
  9. package/cipher/errors/SecretLengthError.d.ts +5 -0
  10. package/cipher/errors/SecretLengthError.js +7 -0
  11. package/cipher/validateSecretLength.d.ts +3 -0
  12. package/cipher/validateSecretLength.js +13 -0
  13. package/cli/Args.d.ts +5 -0
  14. package/cli/Args.js +1 -0
  15. package/cli/Command.d.ts +3 -0
  16. package/cli/Command.js +1 -0
  17. package/cli/getArgs.d.ts +3 -0
  18. package/cli/getArgs.js +5 -0
  19. package/cli/parseArgs.d.ts +3 -0
  20. package/cli/parseArgs.js +25 -0
  21. package/cli/utils/exit.d.ts +2 -0
  22. package/cli/utils/exit.js +4 -0
  23. package/cli/utils/formatList.d.ts +2 -0
  24. package/cli/utils/formatList.js +7 -0
  25. package/cli/utils/formatTable.d.ts +2 -0
  26. package/cli/utils/formatTable.js +19 -0
  27. package/cli/utils/formatText.d.ts +2 -0
  28. package/cli/utils/formatText.js +5 -0
  29. package/cli/utils/print.d.ts +2 -0
  30. package/cli/utils/print.js +4 -0
  31. package/cli/utils/printLn.d.ts +2 -0
  32. package/cli/utils/printLn.js +5 -0
  33. package/config/Config.d.ts +2 -0
  34. package/config/Config.js +1 -0
  35. package/config/Properties.d.ts +8 -0
  36. package/config/Properties.js +1 -0
  37. package/config/errors/FileReadError.d.ts +5 -0
  38. package/config/errors/FileReadError.js +7 -0
  39. package/config/errors/PropertyNameError.d.ts +5 -0
  40. package/config/errors/PropertyNameError.js +7 -0
  41. package/config/errors/PropertyParseError.d.ts +5 -0
  42. package/config/errors/PropertyParseError.js +7 -0
  43. package/config/getConfig.d.ts +14 -0
  44. package/config/getConfig.js +18 -0
  45. package/config/getPropertyEnvVar.d.ts +2 -0
  46. package/config/getPropertyEnvVar.js +10 -0
  47. package/config/parseProperty.d.ts +3 -0
  48. package/config/parseProperty.js +34 -0
  49. package/config/readFile.d.ts +2 -0
  50. package/config/readFile.js +25 -0
  51. package/config/validatePropertyName.d.ts +2 -0
  52. package/config/validatePropertyName.js +8 -0
  53. package/env/Env.d.ts +2 -0
  54. package/env/Env.js +1 -0
  55. package/env/errors/FileReadError.d.ts +5 -0
  56. package/env/errors/FileReadError.js +7 -0
  57. package/env/getEnv.d.ts +8 -0
  58. package/env/getEnv.js +12 -0
  59. package/env/readFile.d.ts +3 -0
  60. package/env/readFile.js +18 -0
  61. package/error/BaseError.d.ts +4 -0
  62. package/error/BaseError.js +9 -0
  63. package/jwt/Algorithm.d.ts +6 -0
  64. package/jwt/Algorithm.js +7 -0
  65. package/jwt/Jwt.d.ts +13 -0
  66. package/jwt/Jwt.js +32 -0
  67. package/jwt/Payload.d.ts +11 -0
  68. package/jwt/Payload.js +1 -0
  69. package/jwt/errors/SecretLengthError.d.ts +5 -0
  70. package/jwt/errors/SecretLengthError.js +7 -0
  71. package/jwt/validateSecretLength.d.ts +3 -0
  72. package/jwt/validateSecretLength.js +13 -0
  73. package/logger/Level.d.ts +10 -0
  74. package/logger/Level.js +11 -0
  75. package/logger/Logger.d.ts +10 -0
  76. package/logger/Logger.js +3 -0
  77. package/logger/Severity.d.ts +9 -0
  78. package/logger/Severity.js +10 -0
  79. package/logger/adapters/file/FileLogger.d.ts +20 -0
  80. package/logger/adapters/file/FileLogger.js +64 -0
  81. package/logger/adapters/file/errors/FileInitError.d.ts +5 -0
  82. package/logger/adapters/file/errors/FileInitError.js +7 -0
  83. package/logger/adapters/file/initFile.d.ts +2 -0
  84. package/logger/adapters/file/initFile.js +14 -0
  85. package/logger/adapters/noop/NoopLogger.d.ts +11 -0
  86. package/logger/adapters/noop/NoopLogger.js +11 -0
  87. package/logger/adapters/stdio/StdioLogger.d.ts +20 -0
  88. package/logger/adapters/stdio/StdioLogger.js +67 -0
  89. package/mailer/Address.d.ts +5 -0
  90. package/mailer/Address.js +1 -0
  91. package/mailer/Attachment.d.ts +7 -0
  92. package/mailer/Attachment.js +1 -0
  93. package/mailer/Event.d.ts +16 -0
  94. package/mailer/Event.js +1 -0
  95. package/mailer/List.d.ts +7 -0
  96. package/mailer/List.js +1 -0
  97. package/mailer/Location.d.ts +9 -0
  98. package/mailer/Location.js +1 -0
  99. package/mailer/Mail.d.ts +19 -0
  100. package/mailer/Mail.js +1 -0
  101. package/mailer/Mailer.d.ts +7 -0
  102. package/mailer/Mailer.js +47 -0
  103. package/mailer/Method.d.ts +5 -0
  104. package/mailer/Method.js +6 -0
  105. package/mailer/adapters/noop/NoopMailer.d.ts +7 -0
  106. package/mailer/adapters/noop/NoopMailer.js +9 -0
  107. package/mailer/adapters/smtp/SmtpMailer.d.ts +18 -0
  108. package/mailer/adapters/smtp/SmtpMailer.js +54 -0
  109. package/mailer/adapters/smtp/getAddress.d.ts +4 -0
  110. package/mailer/adapters/smtp/getAddress.js +9 -0
  111. package/mailer/adapters/smtp/getAddresses.d.ts +4 -0
  112. package/mailer/adapters/smtp/getAddresses.js +11 -0
  113. package/mailer/adapters/smtp/getAttachments.d.ts +4 -0
  114. package/mailer/adapters/smtp/getAttachments.js +14 -0
  115. package/mailer/errors/AddressEmailError.d.ts +5 -0
  116. package/mailer/errors/AddressEmailError.js +7 -0
  117. package/mailer/errors/EventAttachmentUrlError.d.ts +5 -0
  118. package/mailer/errors/EventAttachmentUrlError.js +7 -0
  119. package/mailer/errors/EventGeolocationError.d.ts +5 -0
  120. package/mailer/errors/EventGeolocationError.js +7 -0
  121. package/mailer/errors/EventUrlError.d.ts +5 -0
  122. package/mailer/errors/EventUrlError.js +7 -0
  123. package/mailer/errors/ListUrlError.d.ts +5 -0
  124. package/mailer/errors/ListUrlError.js +7 -0
  125. package/mailer/getIcalendar.d.ts +3 -0
  126. package/mailer/getIcalendar.js +32 -0
  127. package/mailer/validateAddressEmail.d.ts +2 -0
  128. package/mailer/validateAddressEmail.js +8 -0
  129. package/mailer/validateEventAttachmentUrl.d.ts +2 -0
  130. package/mailer/validateEventAttachmentUrl.js +8 -0
  131. package/mailer/validateEventGeolocation.d.ts +2 -0
  132. package/mailer/validateEventGeolocation.js +8 -0
  133. package/mailer/validateEventUrl.d.ts +2 -0
  134. package/mailer/validateEventUrl.js +8 -0
  135. package/mailer/validateListUrl.d.ts +2 -0
  136. package/mailer/validateListUrl.js +8 -0
  137. package/package.json +31 -32
  138. package/parser/Parser.d.ts +2 -0
  139. package/parser/Parser.js +1 -0
  140. package/parser/errors/ParseError.d.ts +5 -0
  141. package/parser/errors/ParseError.js +7 -0
  142. package/parser/factories/enum/createEnumParser.d.ts +6 -0
  143. package/parser/factories/enum/createEnumParser.js +10 -0
  144. package/parser/factories/unit/Unit.d.ts +5 -0
  145. package/parser/factories/unit/Unit.js +1 -0
  146. package/parser/factories/unit/createUnitParser.d.ts +7 -0
  147. package/parser/factories/unit/createUnitParser.js +33 -0
  148. package/parser/parseBoolean.d.ts +3 -0
  149. package/parser/parseBoolean.js +28 -0
  150. package/parser/parseBytes.d.ts +2 -0
  151. package/parser/parseBytes.js +51 -0
  152. package/parser/parseInteger.d.ts +3 -0
  153. package/parser/parseInteger.js +16 -0
  154. package/parser/parseMilliseconds.d.ts +2 -0
  155. package/parser/parseMilliseconds.js +27 -0
  156. package/parser/parseNumber.d.ts +3 -0
  157. package/parser/parseNumber.js +15 -0
  158. package/parser/parseString.d.ts +3 -0
  159. package/parser/parseString.js +11 -0
  160. package/pwd/Pwd.d.ts +9 -0
  161. package/pwd/Pwd.js +16 -0
  162. package/pwd/errors/HashRoundsError.d.ts +5 -0
  163. package/pwd/errors/HashRoundsError.js +7 -0
  164. package/pwd/validateHashRounds.d.ts +2 -0
  165. package/pwd/validateHashRounds.js +7 -0
  166. package/server/ErrorHandler.d.ts +3 -0
  167. package/server/ErrorHandler.js +1 -0
  168. package/server/Format.d.ts +9 -0
  169. package/server/Format.js +1 -0
  170. package/server/Handler.d.ts +3 -0
  171. package/server/Handler.js +1 -0
  172. package/server/Method.d.ts +8 -0
  173. package/server/Method.js +9 -0
  174. package/server/OpenApiFormat.d.ts +5 -0
  175. package/server/OpenApiFormat.js +6 -0
  176. package/server/Route.d.ts +12 -0
  177. package/server/Route.js +1 -0
  178. package/server/Schema.d.ts +9 -0
  179. package/server/Schema.js +1 -0
  180. package/server/Server.d.ts +37 -0
  181. package/server/Server.js +86 -0
  182. package/server/getAjv.d.ts +4 -0
  183. package/server/getAjv.js +19 -0
  184. package/tls/Tls.d.ts +7 -0
  185. package/tls/Tls.js +1 -0
  186. package/tls/errors/FileReadError.d.ts +5 -0
  187. package/tls/errors/FileReadError.js +7 -0
  188. package/tls/getTls.d.ts +8 -0
  189. package/tls/getTls.js +14 -0
  190. package/tls/readFile.d.ts +2 -0
  191. package/tls/readFile.js +14 -0
  192. package/utils/getRandomHexString.d.ts +2 -0
  193. package/utils/getRandomHexString.js +5 -0
  194. package/utils/getTimestamp.d.ts +2 -0
  195. package/utils/getTimestamp.js +4 -0
  196. package/utils/isValidEmail.d.ts +2 -0
  197. package/utils/isValidEmail.js +5 -0
  198. package/utils/isValidGeolocation.d.ts +2 -0
  199. package/utils/isValidGeolocation.js +7 -0
  200. package/utils/isValidHexString.d.ts +2 -0
  201. package/utils/isValidHexString.js +5 -0
  202. package/utils/isValidIsoDate.d.ts +2 -0
  203. package/utils/isValidIsoDate.js +5 -0
  204. package/utils/isValidJwtToken.d.ts +2 -0
  205. package/utils/isValidJwtToken.js +5 -0
  206. package/utils/isValidUrl.d.ts +2 -0
  207. package/utils/isValidUrl.js +16 -0
  208. package/utils/isValidUuid.d.ts +2 -0
  209. package/utils/isValidUuid.js +5 -0
  210. package/utils/wait.d.ts +2 -0
  211. package/utils/wait.js +6 -0
  212. package/api/api.d.ts +0 -7
  213. package/api/api.js +0 -2
  214. package/api/api.ts +0 -8
  215. package/api/auth.d.ts +0 -9
  216. package/api/auth.js +0 -11
  217. package/api/auth.ts +0 -9
  218. package/api/config.d.ts +0 -13
  219. package/api/config.js +0 -59
  220. package/api/config.ts +0 -69
  221. package/api/endpoint.d.ts +0 -20
  222. package/api/endpoint.js +0 -5
  223. package/api/endpoint.ts +0 -23
  224. package/api/handler.d.ts +0 -8
  225. package/api/handler.js +0 -13
  226. package/api/handler.ts +0 -23
  227. package/api/index.d.ts +0 -7
  228. package/api/index.js +0 -187
  229. package/api/index.ts +0 -97
  230. package/api/route.d.ts +0 -6
  231. package/api/route.js +0 -2
  232. package/api/route.ts +0 -4
  233. package/api/router.d.ts +0 -4
  234. package/api/router.js +0 -111
  235. package/api/router.ts +0 -36
  236. package/api/schema.d.ts +0 -29
  237. package/api/schema.js +0 -69
  238. package/api/schema.ts +0 -98
  239. package/app/app.d.ts +0 -6
  240. package/app/app.js +0 -2
  241. package/app/app.ts +0 -7
  242. package/app/boot.d.ts +0 -4
  243. package/app/boot.js +0 -2
  244. package/app/boot.ts +0 -5
  245. package/app/bundle.d.ts +0 -14
  246. package/app/bundle.js +0 -2
  247. package/app/bundle.ts +0 -15
  248. package/app/config.d.ts +0 -4
  249. package/app/config.js +0 -9
  250. package/app/config.ts +0 -9
  251. package/app/index.d.ts +0 -9
  252. package/app/index.js +0 -103
  253. package/app/index.ts +0 -32
  254. package/bin/ape-cli-ts.js +0 -4
  255. package/bin/ape-cli.js +0 -2
  256. package/cli/command.d.ts +0 -4
  257. package/cli/command.js +0 -2
  258. package/cli/command.ts +0 -7
  259. package/cli/index.d.ts +0 -2
  260. package/cli/index.js +0 -103
  261. package/cli/index.ts +0 -41
  262. package/cli/internal/api.d.ts +0 -3
  263. package/cli/internal/api.js +0 -110
  264. package/cli/internal/api.ts +0 -38
  265. package/cli/internal/index.d.ts +0 -2
  266. package/cli/internal/index.js +0 -13
  267. package/cli/internal/index.ts +0 -9
  268. package/cli/internal/migration.d.ts +0 -3
  269. package/cli/internal/migration.js +0 -214
  270. package/cli/internal/migration.ts +0 -110
  271. package/cli/internal/queue.d.ts +0 -3
  272. package/cli/internal/queue.js +0 -147
  273. package/cli/internal/queue.ts +0 -60
  274. package/cli/utils.d.ts +0 -18
  275. package/cli/utils.js +0 -52
  276. package/cli/utils.ts +0 -48
  277. package/config/config.d.ts +0 -5
  278. package/config/config.js +0 -2
  279. package/config/config.ts +0 -6
  280. package/config/configuration.d.ts +0 -63
  281. package/config/configuration.js +0 -2
  282. package/config/configuration.ts +0 -72
  283. package/config/default.d.ts +0 -33
  284. package/config/default.js +0 -34
  285. package/config/default.ts +0 -40
  286. package/config/env.d.ts +0 -66
  287. package/config/env.js +0 -72
  288. package/config/env.ts +0 -79
  289. package/config/index.d.ts +0 -8
  290. package/config/index.js +0 -91
  291. package/config/index.ts +0 -101
  292. package/config/loadFile.d.ts +0 -2
  293. package/config/loadFile.js +0 -13
  294. package/config/loadFile.ts +0 -9
  295. package/config/node.d.ts +0 -5
  296. package/config/node.js +0 -11
  297. package/config/node.ts +0 -7
  298. package/config/store.d.ts +0 -6
  299. package/config/store.js +0 -20
  300. package/config/store.ts +0 -15
  301. package/db/config/index.d.ts +0 -10
  302. package/db/config/index.js +0 -43
  303. package/db/config/index.ts +0 -35
  304. package/db/config/memory.d.ts +0 -3
  305. package/db/config/memory.js +0 -15
  306. package/db/config/memory.ts +0 -13
  307. package/db/config/mysql.d.ts +0 -3
  308. package/db/config/mysql.js +0 -56
  309. package/db/config/mysql.ts +0 -58
  310. package/db/config/postgres.d.ts +0 -3
  311. package/db/config/postgres.js +0 -59
  312. package/db/config/postgres.ts +0 -61
  313. package/db/config/sqlite.d.ts +0 -3
  314. package/db/config/sqlite.js +0 -21
  315. package/db/config/sqlite.ts +0 -20
  316. package/db/database.d.ts +0 -3
  317. package/db/database.js +0 -3
  318. package/db/database.ts +0 -5
  319. package/db/index.d.ts +0 -10
  320. package/db/index.js +0 -32
  321. package/db/index.ts +0 -26
  322. package/db/postProcess.d.ts +0 -3
  323. package/db/postProcess.js +0 -25
  324. package/db/postProcess.ts +0 -27
  325. package/db/schema/builder/_.d.ts +0 -30
  326. package/db/schema/builder/_.js +0 -87
  327. package/db/schema/builder/_.ts +0 -101
  328. package/db/schema/builder/columnBuilder.d.ts +0 -7
  329. package/db/schema/builder/columnBuilder.js +0 -14
  330. package/db/schema/builder/columnBuilder.ts +0 -15
  331. package/db/schema/builder/dataType.d.ts +0 -28
  332. package/db/schema/builder/dataType.js +0 -170
  333. package/db/schema/builder/dataType.ts +0 -184
  334. package/db/schema/builder/index.d.ts +0 -15
  335. package/db/schema/builder/index.js +0 -42
  336. package/db/schema/builder/index.ts +0 -50
  337. package/db/schema/builder/tableBuilder.d.ts +0 -45
  338. package/db/schema/builder/tableBuilder.js +0 -307
  339. package/db/schema/builder/tableBuilder.ts +0 -409
  340. package/db/schema/config.d.ts +0 -4
  341. package/db/schema/config.js +0 -5
  342. package/db/schema/config.ts +0 -3
  343. package/db/schema/index.d.ts +0 -7
  344. package/db/schema/index.js +0 -252
  345. package/db/schema/index.ts +0 -88
  346. package/db/schema/migration.d.ts +0 -6
  347. package/db/schema/migration.js +0 -2
  348. package/db/schema/migration.ts +0 -7
  349. package/db/schema/migrationList.d.ts +0 -5
  350. package/db/schema/migrationList.js +0 -2
  351. package/db/schema/migrationList.ts +0 -5
  352. package/db/schema/migrationSource.d.ts +0 -10
  353. package/db/schema/migrationSource.js +0 -60
  354. package/db/schema/migrationSource.ts +0 -24
  355. package/db/schema/schema.d.ts +0 -6
  356. package/db/schema/schema.js +0 -2
  357. package/db/schema/schema.ts +0 -7
  358. package/db/utils/index.d.ts +0 -7
  359. package/db/utils/index.js +0 -10
  360. package/db/utils/index.ts +0 -8
  361. package/db/utils/insertGetKey.d.ts +0 -8
  362. package/db/utils/insertGetKey.js +0 -109
  363. package/db/utils/insertGetKey.ts +0 -80
  364. package/i18n/config.d.ts +0 -4
  365. package/i18n/config.js +0 -9
  366. package/i18n/config.ts +0 -9
  367. package/i18n/i18n.d.ts +0 -5
  368. package/i18n/i18n.js +0 -2
  369. package/i18n/i18n.ts +0 -6
  370. package/i18n/index.d.ts +0 -8
  371. package/i18n/index.js +0 -155
  372. package/i18n/index.ts +0 -42
  373. package/i18n/internationalization.d.ts +0 -3
  374. package/i18n/internationalization.js +0 -2
  375. package/i18n/internationalization.ts +0 -5
  376. package/i18n/translation.d.ts +0 -4
  377. package/i18n/translation.js +0 -2
  378. package/i18n/translation.ts +0 -4
  379. package/jwt/config.d.ts +0 -5
  380. package/jwt/config.js +0 -12
  381. package/jwt/config.ts +0 -11
  382. package/jwt/index.d.ts +0 -8
  383. package/jwt/index.js +0 -90
  384. package/jwt/index.ts +0 -60
  385. package/jwt/jwt.d.ts +0 -6
  386. package/jwt/jwt.js +0 -2
  387. package/jwt/jwt.ts +0 -19
  388. package/jwt/user.d.ts +0 -4
  389. package/jwt/user.js +0 -2
  390. package/jwt/user.ts +0 -4
  391. package/log/config.d.ts +0 -23
  392. package/log/config.js +0 -47
  393. package/log/config.ts +0 -43
  394. package/log/index.d.ts +0 -4
  395. package/log/index.js +0 -9
  396. package/log/index.ts +0 -9
  397. package/log/logger.d.ts +0 -3
  398. package/log/logger.js +0 -2
  399. package/log/logger.ts +0 -5
  400. package/mail/config.d.ts +0 -4
  401. package/mail/config.js +0 -5
  402. package/mail/config.ts +0 -3
  403. package/mail/email.d.ts +0 -20
  404. package/mail/email.js +0 -2
  405. package/mail/email.ts +0 -21
  406. package/mail/index.d.ts +0 -2
  407. package/mail/index.js +0 -4
  408. package/mail/index.ts +0 -3
  409. package/mail/mail.d.ts +0 -12
  410. package/mail/mail.js +0 -2
  411. package/mail/mail.ts +0 -13
  412. package/mail/module/bypass/index.d.ts +0 -6
  413. package/mail/module/bypass/index.js +0 -74
  414. package/mail/module/bypass/index.ts +0 -9
  415. package/mail/module/config.d.ts +0 -11
  416. package/mail/module/config.js +0 -24
  417. package/mail/module/config.ts +0 -25
  418. package/mail/module/index.d.ts +0 -8
  419. package/mail/module/index.js +0 -107
  420. package/mail/module/index.ts +0 -61
  421. package/mail/module/smtp/config.d.ts +0 -6
  422. package/mail/module/smtp/config.js +0 -25
  423. package/mail/module/smtp/config.ts +0 -25
  424. package/mail/module/smtp/index.d.ts +0 -9
  425. package/mail/module/smtp/index.js +0 -104
  426. package/mail/module/smtp/index.ts +0 -36
  427. package/mq/index.d.ts +0 -3
  428. package/mq/index.js +0 -27
  429. package/mq/index.ts +0 -4
  430. package/mq/module/bypass/index.d.ts +0 -13
  431. package/mq/module/bypass/index.js +0 -86
  432. package/mq/module/bypass/index.ts +0 -20
  433. package/mq/module/config.d.ts +0 -6
  434. package/mq/module/config.js +0 -15
  435. package/mq/module/config.ts +0 -14
  436. package/mq/module/index.d.ts +0 -9
  437. package/mq/module/index.js +0 -93
  438. package/mq/module/index.ts +0 -24
  439. package/mq/module/redis/config.d.ts +0 -27
  440. package/mq/module/redis/config.js +0 -37
  441. package/mq/module/redis/config.ts +0 -34
  442. package/mq/module/redis/index.d.ts +0 -15
  443. package/mq/module/redis/index.js +0 -132
  444. package/mq/module/redis/index.ts +0 -60
  445. package/mq/mq.d.ts +0 -15
  446. package/mq/mq.js +0 -2
  447. package/mq/mq.ts +0 -18
  448. package/mq/queue.d.ts +0 -9
  449. package/mq/queue.js +0 -2
  450. package/mq/queue.ts +0 -11
  451. package/pwd/config.d.ts +0 -4
  452. package/pwd/config.js +0 -9
  453. package/pwd/config.ts +0 -9
  454. package/pwd/index.d.ts +0 -6
  455. package/pwd/index.js +0 -21
  456. package/pwd/index.ts +0 -20
  457. package/pwd/pwd.d.ts +0 -4
  458. package/pwd/pwd.js +0 -2
  459. package/pwd/pwd.ts +0 -4
  460. package/utils/index.d.ts +0 -25
  461. package/utils/index.js +0 -72
  462. package/utils/index.ts +0 -56
@@ -0,0 +1,9 @@
1
+ const getAddress = (address) => {
2
+ return address
3
+ ? {
4
+ address: address.email,
5
+ name: address.name ?? '',
6
+ }
7
+ : undefined;
8
+ };
9
+ export { getAddress, };
@@ -0,0 +1,4 @@
1
+ import type { Address } from '../../Address';
2
+ import type { Address as NodemailerAddress } from 'nodemailer/lib/mailer';
3
+ declare const getAddresses: (addresses?: Address[]) => NodemailerAddress[];
4
+ export { getAddresses, };
@@ -0,0 +1,11 @@
1
+ import { getAddress } from './getAddress';
2
+ const getAddresses = (addresses) => {
3
+ return addresses
4
+ ? addresses
5
+ .map(getAddress)
6
+ .filter((address) => {
7
+ return address !== undefined;
8
+ })
9
+ : [];
10
+ };
11
+ export { getAddresses, };
@@ -0,0 +1,4 @@
1
+ import type { Attachment } from '../../Attachment';
2
+ import type { Attachment as NodemailerAttachment } from 'nodemailer/lib/mailer';
3
+ declare const getAttachments: (attachments?: Attachment[]) => NodemailerAttachment[];
4
+ export { getAttachments, };
@@ -0,0 +1,14 @@
1
+ const getAttachments = (attachments) => {
2
+ return attachments
3
+ ? attachments
4
+ .map((attachment) => {
5
+ return {
6
+ filename: attachment.fileName,
7
+ cid: attachment.fileName,
8
+ contentType: attachment.contentType,
9
+ content: attachment.content,
10
+ };
11
+ })
12
+ : [];
13
+ };
14
+ export { getAttachments, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class AddressEmailError extends BaseError {
3
+ constructor(email: string);
4
+ }
5
+ export { AddressEmailError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class AddressEmailError extends BaseError {
3
+ constructor(email) {
4
+ super(`invalid address email "${email}"`);
5
+ }
6
+ }
7
+ export { AddressEmailError, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class EventAttachmentUrlError extends BaseError {
3
+ constructor(url: string);
4
+ }
5
+ export { EventAttachmentUrlError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class EventAttachmentUrlError extends BaseError {
3
+ constructor(url) {
4
+ super(`invalid event attachment url "${url}"`);
5
+ }
6
+ }
7
+ export { EventAttachmentUrlError, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class EventGeolocationError extends BaseError {
3
+ constructor(latitude: number, longitude: number);
4
+ }
5
+ export { EventGeolocationError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class EventGeolocationError extends BaseError {
3
+ constructor(latitude, longitude) {
4
+ super(`invalid event geolocation "${latitude}, ${longitude}"`);
5
+ }
6
+ }
7
+ export { EventGeolocationError, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class EventUrlError extends BaseError {
3
+ constructor(url: string);
4
+ }
5
+ export { EventUrlError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class EventUrlError extends BaseError {
3
+ constructor(url) {
4
+ super(`invalid event url "${url}"`);
5
+ }
6
+ }
7
+ export { EventUrlError, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class ListUrlError extends BaseError {
3
+ constructor(property: string, url: string);
4
+ }
5
+ export { ListUrlError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class ListUrlError extends BaseError {
3
+ constructor(property, url) {
4
+ super(`invalid list ${property} url "${url}"`);
5
+ }
6
+ }
7
+ export { ListUrlError, };
@@ -0,0 +1,3 @@
1
+ import type { Event } from './Event';
2
+ declare const getIcalendar: (event: Event) => string;
3
+ export { getIcalendar, };
@@ -0,0 +1,32 @@
1
+ import { ICalCalendar } from 'ical-generator';
2
+ const getIcalendar = (event) => {
3
+ const calendar = new ICalCalendar({
4
+ method: event.method,
5
+ events: [
6
+ {
7
+ id: event.id,
8
+ start: event.start,
9
+ end: event.end,
10
+ allDay: event.allDay,
11
+ summary: event.name,
12
+ description: event.description,
13
+ url: event.url,
14
+ location: event.location
15
+ ? {
16
+ title: event.location.name,
17
+ address: event.location.address,
18
+ geo: event.location.geo
19
+ ? {
20
+ lat: event.location.geo.latitude,
21
+ lon: event.location.geo.longitude,
22
+ }
23
+ : undefined,
24
+ }
25
+ : undefined,
26
+ attachments: event.attachments,
27
+ },
28
+ ],
29
+ });
30
+ return calendar.toString();
31
+ };
32
+ export { getIcalendar, };
@@ -0,0 +1,2 @@
1
+ declare const validateAddressEmail: (email: string) => void;
2
+ export { validateAddressEmail, };
@@ -0,0 +1,8 @@
1
+ import { isValidEmail } from 'utils/isValidEmail';
2
+ import { AddressEmailError } from './errors/AddressEmailError';
3
+ const validateAddressEmail = (email) => {
4
+ if (!isValidEmail(email)) {
5
+ throw new AddressEmailError(email);
6
+ }
7
+ };
8
+ export { validateAddressEmail, };
@@ -0,0 +1,2 @@
1
+ declare const validateEventAttachmentUrl: (url: string) => void;
2
+ export { validateEventAttachmentUrl, };
@@ -0,0 +1,8 @@
1
+ import { isValidUrl } from 'utils/isValidUrl';
2
+ import { EventAttachmentUrlError } from './errors/EventAttachmentUrlError';
3
+ const validateEventAttachmentUrl = (url) => {
4
+ if (!isValidUrl(url)) {
5
+ throw new EventAttachmentUrlError(url);
6
+ }
7
+ };
8
+ export { validateEventAttachmentUrl, };
@@ -0,0 +1,2 @@
1
+ declare const validateEventGeolocation: (latitude: number, longitude: number) => void;
2
+ export { validateEventGeolocation, };
@@ -0,0 +1,8 @@
1
+ import { isValidGeolocation } from 'utils/isValidGeolocation';
2
+ import { EventGeolocationError } from './errors/EventGeolocationError';
3
+ const validateEventGeolocation = (latitude, longitude) => {
4
+ if (!isValidGeolocation(latitude, longitude)) {
5
+ throw new EventGeolocationError(latitude, longitude);
6
+ }
7
+ };
8
+ export { validateEventGeolocation, };
@@ -0,0 +1,2 @@
1
+ declare const validateEventUrl: (url: string) => void;
2
+ export { validateEventUrl, };
@@ -0,0 +1,8 @@
1
+ import { isValidUrl } from 'utils/isValidUrl';
2
+ import { EventUrlError } from './errors/EventUrlError';
3
+ const validateEventUrl = (url) => {
4
+ if (!isValidUrl(url)) {
5
+ throw new EventUrlError(url);
6
+ }
7
+ };
8
+ export { validateEventUrl, };
@@ -0,0 +1,2 @@
1
+ declare const validateListUrl: (property: string, url: string) => void;
2
+ export { validateListUrl, };
@@ -0,0 +1,8 @@
1
+ import { isValidUrl } from 'utils/isValidUrl';
2
+ import { ListUrlError } from './errors/ListUrlError';
3
+ const validateListUrl = (property, url) => {
4
+ if (!isValidUrl(url)) {
5
+ throw new ListUrlError(property, url);
6
+ }
7
+ };
8
+ export { validateListUrl, };
package/package.json CHANGED
@@ -1,53 +1,52 @@
1
1
  {
2
2
  "name": "apeframework",
3
- "version": "0.0.0-dev.2",
3
+ "version": "0.0.0-dev.21",
4
4
  "license": "MIT",
5
5
  "author": "Matthieu Symoens",
6
- "description": "Node.js API framework.",
6
+ "description": "Node.js app framework",
7
7
  "keywords": [
8
8
  "ape",
9
- "framework"
9
+ "framework",
10
+ "nodejs"
10
11
  ],
11
12
  "repository": {
12
13
  "type": "git",
13
- "url": "git+https://github.com/ApeCommerce/ape-framework.git"
14
+ "url": "git+https://github.com/ApeFramework/apeframework.git"
14
15
  },
15
16
  "publishConfig": {
16
17
  "access": "public"
17
18
  },
18
- "main": "index.js",
19
- "types": "index.d.ts",
20
- "bin": {
21
- "ape-cli": "bin/ape-cli.js",
22
- "ape-cli-ts": "bin/ape-cli-ts.js"
23
- },
19
+ "type": "module",
24
20
  "engines": {
25
- "node": "^18"
21
+ "node": "^22"
26
22
  },
27
23
  "dependencies": {
28
- "@fastify/cors": "^8.4",
29
- "@fastify/response-validation": "^2.5",
30
- "@fastify/swagger": "^8.10",
31
- "bcrypt": "^5.1",
32
- "bullmq": "^4.11",
33
- "bytes": "^3.1",
34
- "dotenv": "^16.3",
35
- "fastify": "^4.23",
36
- "fs-extra": "^11.1",
37
- "i18next": "^23.5",
38
- "ioredis": "^5.3",
39
- "jose": "^4.14",
40
- "knex": "^2.5",
41
- "mailgen": "^2.0",
42
- "mysql2": "^3.6",
24
+ "@fastify/compress": "^8.0",
25
+ "@fastify/cors": "^10.0",
26
+ "@fastify/response-validation": "^3.0",
27
+ "@fastify/swagger": "^9.4",
28
+ "@types/bcryptjs": "^2.4",
29
+ "@types/fs-extra": "^11.0",
30
+ "@types/nodemailer": "^6.4",
31
+ "@types/yargs-parser": "^21.0",
32
+ "ajv": "^8.17",
33
+ "bcryptjs": "^2.4",
34
+ "bullmq": "^5.34",
35
+ "dotenv": "^16.4",
36
+ "fast-uri": "^3.0",
37
+ "fastify": "^5.2",
38
+ "fs-extra": "^11.2",
39
+ "ical-generator": "^8.0",
40
+ "ioredis": "^5.4",
41
+ "jose": "^5.9",
43
42
  "nodemailer": "^6.9",
44
43
  "openapi-types": "^12.1",
45
- "parse-duration": "^1.1",
46
- "pg": "^8.11",
47
- "pino": "^8.15",
48
- "pino-pretty": "^10.2",
49
- "sonic-boom": "^3.3",
50
- "sqlite3": "^5.1",
44
+ "pino": "^9.5",
45
+ "pino-pretty": "^13.0",
51
46
  "yargs-parser": "^21.1"
47
+ },
48
+ "peerDependencies": {
49
+ "@types/node": "^22.10",
50
+ "typescript": "^5.7"
52
51
  }
53
52
  }
@@ -0,0 +1,2 @@
1
+ type Parser<Type> = (input: any) => Type;
2
+ export { type Parser, };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class ParseError extends BaseError {
3
+ constructor(type: string);
4
+ }
5
+ export { ParseError, };
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ class ParseError extends BaseError {
3
+ constructor(type) {
4
+ super(`failed parsing ${type}`);
5
+ }
6
+ }
7
+ export { ParseError, };
@@ -0,0 +1,6 @@
1
+ import type { Parser } from '../../Parser';
2
+ declare const createEnumParser: <Type extends Record<string, string | number>>(params: {
3
+ type: string;
4
+ enum: Type;
5
+ }) => Parser<Type[keyof Type]>;
6
+ export { createEnumParser, };
@@ -0,0 +1,10 @@
1
+ import { ParseError } from '../../errors/ParseError';
2
+ const createEnumParser = (params) => {
3
+ return (input) => {
4
+ if (!Object.values(params.enum).includes(input)) {
5
+ throw new ParseError(params.type);
6
+ }
7
+ return input;
8
+ };
9
+ };
10
+ export { createEnumParser, };
@@ -0,0 +1,5 @@
1
+ interface Unit {
2
+ symbol: string;
3
+ value: number;
4
+ }
5
+ export { type Unit, };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,7 @@
1
+ import type { Unit } from './Unit';
2
+ import type { Parser } from '../../Parser';
3
+ declare const createUnitParser: (params: {
4
+ type: string;
5
+ units: Unit[];
6
+ }) => Parser<number>;
7
+ export { createUnitParser, };
@@ -0,0 +1,33 @@
1
+ import { ParseError } from '../../errors/ParseError';
2
+ import { parseNumber } from '../../parseNumber';
3
+ import { parseString } from '../../parseString';
4
+ const createUnitParser = (params) => {
5
+ return (input) => {
6
+ let string;
7
+ try {
8
+ string = parseString(input);
9
+ }
10
+ catch (error) {
11
+ throw new ParseError(params.type);
12
+ }
13
+ const units = [];
14
+ params.units.forEach((u) => {
15
+ units.push(u, { ...u, symbol: ` ${u.symbol}` });
16
+ });
17
+ units.sort((a, b) => {
18
+ return b.symbol.length - a.symbol.length;
19
+ });
20
+ const unit = units.find((u) => {
21
+ return string.toUpperCase().endsWith(u.symbol.toUpperCase());
22
+ });
23
+ let number;
24
+ try {
25
+ number = parseNumber(string.substring(0, string.length - (unit?.symbol.length ?? 0)));
26
+ }
27
+ catch (error) {
28
+ throw new ParseError(params.type);
29
+ }
30
+ return number * (unit?.value ?? 1);
31
+ };
32
+ };
33
+ export { createUnitParser, };
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './Parser';
2
+ declare const parseBoolean: Parser<boolean>;
3
+ export { parseBoolean, };
@@ -0,0 +1,28 @@
1
+ import { ParseError } from './errors/ParseError';
2
+ const parseBoolean = (input) => {
3
+ if ([
4
+ true,
5
+ 1,
6
+ BigInt(1),
7
+ '1',
8
+ 'TRUE',
9
+ 'true',
10
+ ].includes(input)) {
11
+ return true;
12
+ }
13
+ else if ([
14
+ undefined,
15
+ null,
16
+ false,
17
+ 0,
18
+ BigInt(0),
19
+ '',
20
+ '0',
21
+ 'FALSE',
22
+ 'false',
23
+ ].includes(input)) {
24
+ return false;
25
+ }
26
+ throw new ParseError('boolean');
27
+ };
28
+ export { parseBoolean, };
@@ -0,0 +1,2 @@
1
+ declare const parseBytes: import("./Parser").Parser<number>;
2
+ export { parseBytes, };
@@ -0,0 +1,51 @@
1
+ import { createUnitParser } from './factories/unit/createUnitParser';
2
+ const parseBytes = createUnitParser({
3
+ type: 'bytes',
4
+ units: [
5
+ {
6
+ symbol: 'B',
7
+ value: 1,
8
+ },
9
+ {
10
+ symbol: 'kB',
11
+ value: 1000,
12
+ },
13
+ {
14
+ symbol: 'MB',
15
+ value: 1000000,
16
+ },
17
+ {
18
+ symbol: 'GB',
19
+ value: 1000000000,
20
+ },
21
+ {
22
+ symbol: 'TB',
23
+ value: 1000000000000,
24
+ },
25
+ {
26
+ symbol: 'PB',
27
+ value: 1000000000000000,
28
+ },
29
+ {
30
+ symbol: 'KiB',
31
+ value: 1024,
32
+ },
33
+ {
34
+ symbol: 'MiB',
35
+ value: 131072,
36
+ },
37
+ {
38
+ symbol: 'GiB',
39
+ value: 134200000,
40
+ },
41
+ {
42
+ symbol: 'TiB',
43
+ value: 137400000000,
44
+ },
45
+ {
46
+ symbol: 'PiB',
47
+ value: 140700000000000,
48
+ },
49
+ ],
50
+ });
51
+ export { parseBytes, };
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './Parser';
2
+ declare const parseInteger: Parser<number>;
3
+ export { parseInteger, };
@@ -0,0 +1,16 @@
1
+ import { ParseError } from './errors/ParseError';
2
+ import { parseNumber } from './parseNumber';
3
+ const parseInteger = (input) => {
4
+ let number;
5
+ try {
6
+ number = parseNumber(input);
7
+ }
8
+ catch (error) {
9
+ throw new ParseError('integer');
10
+ }
11
+ if (!Number.isSafeInteger(number)) {
12
+ throw new ParseError('integer');
13
+ }
14
+ return number;
15
+ };
16
+ export { parseInteger, };
@@ -0,0 +1,2 @@
1
+ declare const parseMilliseconds: import("./Parser").Parser<number>;
2
+ export { parseMilliseconds, };
@@ -0,0 +1,27 @@
1
+ import { createUnitParser } from './factories/unit/createUnitParser';
2
+ const parseMilliseconds = createUnitParser({
3
+ type: 'milliseconds',
4
+ units: [
5
+ {
6
+ symbol: 'ms',
7
+ value: 1,
8
+ },
9
+ {
10
+ symbol: 's',
11
+ value: 1000,
12
+ },
13
+ {
14
+ symbol: 'm',
15
+ value: 60000,
16
+ },
17
+ {
18
+ symbol: 'h',
19
+ value: 3600000,
20
+ },
21
+ {
22
+ symbol: 'd',
23
+ value: 86400000,
24
+ },
25
+ ],
26
+ });
27
+ export { parseMilliseconds, };
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './Parser';
2
+ declare const parseNumber: Parser<number>;
3
+ export { parseNumber, };
@@ -0,0 +1,15 @@
1
+ import { ParseError } from './errors/ParseError';
2
+ const parseNumber = (input) => {
3
+ if ([undefined, null].includes(input)) {
4
+ return 0;
5
+ }
6
+ else if (['object', 'function', 'symbol'].includes(typeof input)) {
7
+ throw new ParseError('number');
8
+ }
9
+ const number = Number(input);
10
+ if (!Number.isFinite(number)) {
11
+ throw new ParseError('number');
12
+ }
13
+ return number;
14
+ };
15
+ export { parseNumber, };
@@ -0,0 +1,3 @@
1
+ import type { Parser } from './Parser';
2
+ declare const parseString: Parser<string>;
3
+ export { parseString, };
@@ -0,0 +1,11 @@
1
+ import { ParseError } from './errors/ParseError';
2
+ const parseString = (input) => {
3
+ if ([undefined, null].includes(input)) {
4
+ return '';
5
+ }
6
+ else if (['object', 'function', 'symbol'].includes(typeof input)) {
7
+ throw new ParseError('string');
8
+ }
9
+ return String(input);
10
+ };
11
+ export { parseString, };
package/pwd/Pwd.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ declare class Pwd {
2
+ private readonly hashRounds;
3
+ constructor(params: {
4
+ hashRounds: number;
5
+ });
6
+ hashPassword(password: string): Promise<string>;
7
+ verifyPassword(password: string, hash: string): Promise<boolean>;
8
+ }
9
+ export { Pwd, };
package/pwd/Pwd.js ADDED
@@ -0,0 +1,16 @@
1
+ import bcrypt from 'bcryptjs';
2
+ import { validateHashRounds } from './validateHashRounds';
3
+ class Pwd {
4
+ hashRounds;
5
+ constructor(params) {
6
+ validateHashRounds(params.hashRounds);
7
+ this.hashRounds = params.hashRounds;
8
+ }
9
+ async hashPassword(password) {
10
+ return bcrypt.hashSync(password, this.hashRounds);
11
+ }
12
+ async verifyPassword(password, hash) {
13
+ return bcrypt.compareSync(password, hash);
14
+ }
15
+ }
16
+ export { Pwd, };
@@ -0,0 +1,5 @@
1
+ import { BaseError } from '../../error/BaseError';
2
+ declare class HashRoundsError extends BaseError {
3
+ constructor(hashRounds: number);
4
+ }
5
+ export { HashRoundsError, };