apeframework 0.0.0-dev.9 → 0.1.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 (423) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +47 -1
  3. package/{cipher → dist/cipher}/Algorithm.js +2 -4
  4. package/{cipher → dist/cipher}/Cipher.d.ts +1 -1
  5. package/dist/cipher/Cipher.js +32 -0
  6. package/{cipher → dist/cipher}/errors/DecryptError.d.ts +1 -1
  7. package/dist/cipher/errors/DecryptError.js +7 -0
  8. package/{cipher → dist/cipher}/errors/SecretLengthError.d.ts +1 -1
  9. package/dist/cipher/errors/SecretLengthError.js +7 -0
  10. package/{cipher → dist/cipher}/validateSecretLength.d.ts +1 -1
  11. package/dist/cipher/validateSecretLength.js +13 -0
  12. package/{cli → dist/cli}/Args.d.ts +1 -1
  13. package/dist/cli/Args.js +1 -0
  14. package/{cli → dist/cli}/Command.d.ts +1 -1
  15. package/dist/cli/Command.js +1 -0
  16. package/{cli → dist/cli}/getArgs.d.ts +1 -1
  17. package/dist/cli/getArgs.js +5 -0
  18. package/{cli → dist/cli}/parseArgs.d.ts +1 -1
  19. package/{cli → dist/cli}/parseArgs.js +3 -9
  20. package/dist/cli/utils/exit.js +4 -0
  21. package/dist/cli/utils/formatList.js +7 -0
  22. package/{cli → dist/cli}/utils/formatTable.js +3 -6
  23. package/dist/cli/utils/formatText.js +5 -0
  24. package/dist/cli/utils/print.js +4 -0
  25. package/dist/cli/utils/printLn.js +5 -0
  26. package/dist/config/Config.d.ts +2 -0
  27. package/dist/config/Config.js +1 -0
  28. package/{config → dist/config}/Properties.d.ts +1 -1
  29. package/dist/config/Properties.js +1 -0
  30. package/{config → dist/config}/errors/FileReadError.d.ts +1 -1
  31. package/dist/config/errors/FileReadError.js +7 -0
  32. package/{config → dist/config}/errors/PropertyNameError.d.ts +1 -1
  33. package/dist/config/errors/PropertyNameError.js +7 -0
  34. package/{config → dist/config}/errors/PropertyParseError.d.ts +1 -1
  35. package/dist/config/errors/PropertyParseError.js +7 -0
  36. package/{config → dist/config}/getConfig.d.ts +4 -4
  37. package/dist/config/getConfig.js +18 -0
  38. package/{config → dist/config}/getPropertyEnvVar.js +1 -4
  39. package/{config → dist/config}/parseProperty.d.ts +1 -1
  40. package/{config → dist/config}/parseProperty.js +3 -6
  41. package/dist/config/readFile.js +25 -0
  42. package/dist/config/validatePropertyName.js +8 -0
  43. package/dist/env/Env.js +1 -0
  44. package/{env → dist/env}/errors/FileReadError.d.ts +1 -1
  45. package/dist/env/errors/FileReadError.js +7 -0
  46. package/{env → dist/env}/getEnv.d.ts +1 -1
  47. package/dist/env/getEnv.js +12 -0
  48. package/{env → dist/env}/readFile.d.ts +1 -1
  49. package/dist/env/readFile.js +18 -0
  50. package/{error → dist/error}/BaseError.js +1 -4
  51. package/dist/jwt/Algorithm.js +7 -0
  52. package/{jwt → dist/jwt}/Jwt.d.ts +2 -2
  53. package/{jwt → dist/jwt}/Jwt.js +6 -9
  54. package/dist/jwt/Payload.js +1 -0
  55. package/{jwt → dist/jwt}/errors/SecretLengthError.d.ts +1 -1
  56. package/dist/jwt/errors/SecretLengthError.js +7 -0
  57. package/{jwt → dist/jwt}/validateSecretLength.d.ts +1 -1
  58. package/dist/jwt/validateSecretLength.js +13 -0
  59. package/{logger → dist/logger}/Level.js +2 -4
  60. package/dist/logger/Logger.js +3 -0
  61. package/{logger → dist/logger}/Severity.js +2 -4
  62. package/{logger → dist/logger}/adapters/file/FileLogger.d.ts +2 -2
  63. package/{logger → dist/logger}/adapters/file/FileLogger.js +11 -17
  64. package/{logger → dist/logger}/adapters/file/errors/FileInitError.d.ts +1 -1
  65. package/dist/logger/adapters/file/errors/FileInitError.js +7 -0
  66. package/dist/logger/adapters/file/initFile.js +14 -0
  67. package/{logger → dist/logger}/adapters/noop/NoopLogger.d.ts +1 -1
  68. package/dist/logger/adapters/noop/NoopLogger.js +11 -0
  69. package/{logger → dist/logger}/adapters/stdio/StdioLogger.d.ts +2 -2
  70. package/{logger → dist/logger}/adapters/stdio/StdioLogger.js +11 -17
  71. package/dist/mailer/Address.js +1 -0
  72. package/{mailer → dist/mailer}/Attachment.d.ts +1 -1
  73. package/dist/mailer/Attachment.js +1 -0
  74. package/{mailer → dist/mailer}/Event.d.ts +2 -2
  75. package/dist/mailer/Event.js +1 -0
  76. package/dist/mailer/List.js +1 -0
  77. package/dist/mailer/Location.js +1 -0
  78. package/{mailer → dist/mailer}/Mail.d.ts +4 -4
  79. package/dist/mailer/Mail.js +1 -0
  80. package/{mailer → dist/mailer}/Mailer.d.ts +1 -1
  81. package/dist/mailer/Mailer.js +47 -0
  82. package/dist/mailer/Method.js +6 -0
  83. package/{mailer → dist/mailer}/adapters/noop/NoopMailer.d.ts +2 -2
  84. package/dist/mailer/adapters/noop/NoopMailer.js +9 -0
  85. package/{mailer → dist/mailer}/adapters/smtp/SmtpMailer.d.ts +3 -3
  86. package/dist/mailer/adapters/smtp/SmtpMailer.js +54 -0
  87. package/dist/mailer/adapters/smtp/getAddress.d.ts +7 -0
  88. package/{mailer → dist/mailer}/adapters/smtp/getAddress.js +1 -4
  89. package/dist/mailer/adapters/smtp/getAddresses.d.ts +7 -0
  90. package/dist/mailer/adapters/smtp/getAddresses.js +11 -0
  91. package/dist/mailer/adapters/smtp/getAttachments.d.ts +10 -0
  92. package/{mailer → dist/mailer}/adapters/smtp/getAttachments.js +1 -4
  93. package/{mailer → dist/mailer}/errors/AddressEmailError.d.ts +1 -1
  94. package/dist/mailer/errors/AddressEmailError.js +7 -0
  95. package/{mailer → dist/mailer}/errors/EventAttachmentUrlError.d.ts +1 -1
  96. package/dist/mailer/errors/EventAttachmentUrlError.js +7 -0
  97. package/{mailer → dist/mailer}/errors/EventGeolocationError.d.ts +1 -1
  98. package/dist/mailer/errors/EventGeolocationError.js +7 -0
  99. package/{mailer → dist/mailer}/errors/EventUrlError.d.ts +1 -1
  100. package/dist/mailer/errors/EventUrlError.js +7 -0
  101. package/{mailer → dist/mailer}/errors/ListUrlError.d.ts +1 -1
  102. package/dist/mailer/errors/ListUrlError.js +7 -0
  103. package/{mailer → dist/mailer}/getIcalendar.d.ts +1 -1
  104. package/{mailer → dist/mailer}/getIcalendar.js +3 -6
  105. package/dist/mailer/validateAddressEmail.js +8 -0
  106. package/dist/mailer/validateEventAttachmentUrl.js +8 -0
  107. package/dist/mailer/validateEventGeolocation.js +8 -0
  108. package/dist/mailer/validateEventUrl.js +8 -0
  109. package/dist/mailer/validateListUrl.js +8 -0
  110. package/dist/parser/Parser.js +1 -0
  111. package/{parser → dist/parser}/errors/ParseError.d.ts +1 -1
  112. package/dist/parser/errors/ParseError.js +7 -0
  113. package/dist/parser/factories/enum/createEnumParser.d.ts +6 -0
  114. package/dist/parser/factories/enum/createEnumParser.js +10 -0
  115. package/dist/parser/factories/unit/Unit.js +1 -0
  116. package/{parser → dist/parser}/factories/unit/createUnitParser.d.ts +2 -2
  117. package/{parser → dist/parser}/factories/unit/createUnitParser.js +8 -11
  118. package/{parser → dist/parser}/parseBoolean.d.ts +1 -1
  119. package/dist/parser/parseBoolean.js +28 -0
  120. package/dist/parser/parseBytes.d.ts +2 -0
  121. package/{parser → dist/parser}/parseBytes.js +3 -6
  122. package/{parser → dist/parser}/parseInteger.d.ts +1 -1
  123. package/dist/parser/parseInteger.js +16 -0
  124. package/dist/parser/parseMilliseconds.d.ts +2 -0
  125. package/{parser → dist/parser}/parseMilliseconds.js +3 -6
  126. package/{parser → dist/parser}/parseNumber.d.ts +1 -1
  127. package/dist/parser/parseNumber.js +15 -0
  128. package/{parser → dist/parser}/parseString.d.ts +1 -1
  129. package/dist/parser/parseString.js +11 -0
  130. package/dist/pwd/Algorithm.d.ts +6 -0
  131. package/dist/pwd/Algorithm.js +7 -0
  132. package/dist/pwd/Pwd.d.ts +18 -0
  133. package/dist/pwd/Pwd.js +36 -0
  134. package/dist/pwd/errors/HashLengthError.d.ts +5 -0
  135. package/dist/pwd/errors/HashLengthError.js +7 -0
  136. package/dist/pwd/errors/MemoryCostError.d.ts +5 -0
  137. package/dist/pwd/errors/MemoryCostError.js +7 -0
  138. package/dist/pwd/errors/ParallelismError.d.ts +5 -0
  139. package/dist/pwd/errors/ParallelismError.js +7 -0
  140. package/dist/pwd/errors/TimeCostError.d.ts +5 -0
  141. package/dist/pwd/errors/TimeCostError.js +7 -0
  142. package/dist/pwd/validateHashLength.d.ts +2 -0
  143. package/dist/pwd/validateHashLength.js +7 -0
  144. package/dist/pwd/validateMemoryCost.d.ts +2 -0
  145. package/dist/pwd/validateMemoryCost.js +7 -0
  146. package/dist/pwd/validateParallelism.d.ts +2 -0
  147. package/dist/pwd/validateParallelism.js +7 -0
  148. package/dist/pwd/validateTimeCost.d.ts +2 -0
  149. package/dist/pwd/validateTimeCost.js +7 -0
  150. package/dist/server/ErrorHandler.d.ts +5 -0
  151. package/dist/server/ErrorHandler.js +1 -0
  152. package/dist/server/Format.d.ts +9 -0
  153. package/dist/server/Format.js +1 -0
  154. package/dist/server/Handler.d.ts +4 -0
  155. package/dist/server/Handler.js +1 -0
  156. package/{api → dist/server}/Method.js +2 -4
  157. package/dist/server/OpenApiFormat.d.ts +5 -0
  158. package/dist/server/OpenApiFormat.js +6 -0
  159. package/dist/server/Request.d.ts +5 -0
  160. package/dist/server/Request.js +1 -0
  161. package/dist/server/Response.d.ts +8 -0
  162. package/dist/server/Response.js +1 -0
  163. package/dist/server/Route.d.ts +12 -0
  164. package/dist/server/Route.js +1 -0
  165. package/dist/server/Schema.js +1 -0
  166. package/dist/server/Server.d.ts +47 -0
  167. package/dist/server/Server.js +98 -0
  168. package/dist/server/getAjv.d.ts +4 -0
  169. package/dist/server/getAjv.js +19 -0
  170. package/dist/tls/Tls.js +1 -0
  171. package/{tls → dist/tls}/errors/FileReadError.d.ts +1 -1
  172. package/dist/tls/errors/FileReadError.js +7 -0
  173. package/{tls → dist/tls}/getTls.d.ts +1 -1
  174. package/dist/tls/getTls.js +14 -0
  175. package/dist/tls/readFile.js +14 -0
  176. package/dist/utils/getRandomHexString.js +5 -0
  177. package/dist/utils/getRandomIntString.d.ts +2 -0
  178. package/dist/utils/getRandomIntString.js +9 -0
  179. package/dist/utils/getTimestamp.d.ts +2 -0
  180. package/dist/utils/getTimestamp.js +4 -0
  181. package/dist/utils/isValidEmail.js +5 -0
  182. package/{utils → dist/utils}/isValidGeolocation.js +1 -4
  183. package/dist/utils/isValidHexString.js +5 -0
  184. package/dist/utils/isValidIntString.d.ts +2 -0
  185. package/dist/utils/isValidIntString.js +5 -0
  186. package/dist/utils/isValidIsoDate.d.ts +2 -0
  187. package/dist/utils/isValidIsoDate.js +5 -0
  188. package/dist/utils/isValidJwtToken.js +5 -0
  189. package/{utils → dist/utils}/isValidUrl.js +1 -4
  190. package/{utils → dist/utils}/isValidUuid.js +1 -4
  191. package/{utils → dist/utils}/wait.js +1 -4
  192. package/package.json +722 -25
  193. package/api/Api.d.ts +0 -30
  194. package/api/Api.js +0 -78
  195. package/api/Api.ts +0 -112
  196. package/api/Endpoint.d.ts +0 -12
  197. package/api/Endpoint.js +0 -2
  198. package/api/Endpoint.ts +0 -16
  199. package/api/ErrorHandler.d.ts +0 -3
  200. package/api/ErrorHandler.js +0 -2
  201. package/api/ErrorHandler.ts +0 -11
  202. package/api/Handler.d.ts +0 -3
  203. package/api/Handler.js +0 -2
  204. package/api/Handler.ts +0 -10
  205. package/api/Method.ts +0 -11
  206. package/api/Schema.js +0 -2
  207. package/api/Schema.ts +0 -13
  208. package/cipher/Algorithm.ts +0 -9
  209. package/cipher/Cipher.js +0 -38
  210. package/cipher/Cipher.ts +0 -46
  211. package/cipher/errors/DecryptError.js +0 -10
  212. package/cipher/errors/DecryptError.ts +0 -11
  213. package/cipher/errors/SecretLengthError.js +0 -10
  214. package/cipher/errors/SecretLengthError.ts +0 -11
  215. package/cipher/validateSecretLength.js +0 -16
  216. package/cipher/validateSecretLength.ts +0 -18
  217. package/cli/Args.js +0 -2
  218. package/cli/Args.ts +0 -8
  219. package/cli/Command.js +0 -2
  220. package/cli/Command.ts +0 -7
  221. package/cli/getArgs.js +0 -8
  222. package/cli/getArgs.ts +0 -10
  223. package/cli/parseArgs.ts +0 -34
  224. package/cli/utils/exit.js +0 -7
  225. package/cli/utils/exit.ts +0 -7
  226. package/cli/utils/formatList.js +0 -10
  227. package/cli/utils/formatList.ts +0 -11
  228. package/cli/utils/formatTable.ts +0 -25
  229. package/cli/utils/formatText.js +0 -8
  230. package/cli/utils/formatText.ts +0 -9
  231. package/cli/utils/print.js +0 -7
  232. package/cli/utils/print.ts +0 -7
  233. package/cli/utils/printLn.js +0 -8
  234. package/cli/utils/printLn.ts +0 -9
  235. package/config/Config.d.ts +0 -2
  236. package/config/Config.js +0 -2
  237. package/config/Config.ts +0 -5
  238. package/config/Properties.js +0 -2
  239. package/config/Properties.ts +0 -12
  240. package/config/errors/FileReadError.js +0 -10
  241. package/config/errors/FileReadError.ts +0 -11
  242. package/config/errors/PropertyNameError.js +0 -10
  243. package/config/errors/PropertyNameError.ts +0 -11
  244. package/config/errors/PropertyParseError.js +0 -10
  245. package/config/errors/PropertyParseError.ts +0 -11
  246. package/config/getConfig.js +0 -21
  247. package/config/getConfig.ts +0 -47
  248. package/config/getPropertyEnvVar.ts +0 -15
  249. package/config/parseProperty.ts +0 -47
  250. package/config/readFile.js +0 -31
  251. package/config/readFile.ts +0 -34
  252. package/config/validatePropertyName.js +0 -11
  253. package/config/validatePropertyName.ts +0 -13
  254. package/env/Env.js +0 -2
  255. package/env/Env.ts +0 -5
  256. package/env/errors/FileReadError.js +0 -10
  257. package/env/errors/FileReadError.ts +0 -11
  258. package/env/getEnv.js +0 -15
  259. package/env/getEnv.ts +0 -24
  260. package/env/readFile.js +0 -24
  261. package/env/readFile.ts +0 -24
  262. package/error/BaseError.ts +0 -12
  263. package/jwt/Algorithm.js +0 -9
  264. package/jwt/Algorithm.ts +0 -9
  265. package/jwt/Jwt.ts +0 -49
  266. package/jwt/Payload.js +0 -2
  267. package/jwt/Payload.ts +0 -14
  268. package/jwt/errors/SecretLengthError.js +0 -10
  269. package/jwt/errors/SecretLengthError.ts +0 -11
  270. package/jwt/validateSecretLength.js +0 -16
  271. package/jwt/validateSecretLength.ts +0 -18
  272. package/logger/Level.ts +0 -13
  273. package/logger/Logger.js +0 -6
  274. package/logger/Logger.ts +0 -19
  275. package/logger/Severity.ts +0 -12
  276. package/logger/adapters/file/FileLogger.ts +0 -87
  277. package/logger/adapters/file/errors/FileInitError.js +0 -10
  278. package/logger/adapters/file/errors/FileInitError.ts +0 -11
  279. package/logger/adapters/file/initFile.js +0 -20
  280. package/logger/adapters/file/initFile.ts +0 -18
  281. package/logger/adapters/noop/NoopLogger.js +0 -14
  282. package/logger/adapters/noop/NoopLogger.ts +0 -21
  283. package/logger/adapters/stdio/StdioLogger.ts +0 -89
  284. package/mailer/Address.js +0 -2
  285. package/mailer/Address.ts +0 -8
  286. package/mailer/Attachment.js +0 -2
  287. package/mailer/Attachment.ts +0 -11
  288. package/mailer/Event.js +0 -2
  289. package/mailer/Event.ts +0 -20
  290. package/mailer/List.js +0 -2
  291. package/mailer/List.ts +0 -10
  292. package/mailer/Location.js +0 -2
  293. package/mailer/Location.ts +0 -12
  294. package/mailer/Mail.js +0 -2
  295. package/mailer/Mail.ts +0 -23
  296. package/mailer/Mailer.js +0 -50
  297. package/mailer/Mailer.ts +0 -69
  298. package/mailer/Method.js +0 -8
  299. package/mailer/Method.ts +0 -8
  300. package/mailer/adapters/noop/NoopMailer.js +0 -12
  301. package/mailer/adapters/noop/NoopMailer.ts +0 -15
  302. package/mailer/adapters/smtp/SmtpMailer.js +0 -60
  303. package/mailer/adapters/smtp/SmtpMailer.ts +0 -74
  304. package/mailer/adapters/smtp/getAddress.d.ts +0 -4
  305. package/mailer/adapters/smtp/getAddress.ts +0 -15
  306. package/mailer/adapters/smtp/getAddresses.d.ts +0 -4
  307. package/mailer/adapters/smtp/getAddresses.js +0 -14
  308. package/mailer/adapters/smtp/getAddresses.ts +0 -17
  309. package/mailer/adapters/smtp/getAttachments.d.ts +0 -4
  310. package/mailer/adapters/smtp/getAttachments.ts +0 -20
  311. package/mailer/errors/AddressEmailError.js +0 -10
  312. package/mailer/errors/AddressEmailError.ts +0 -11
  313. package/mailer/errors/EventAttachmentUrlError.js +0 -10
  314. package/mailer/errors/EventAttachmentUrlError.ts +0 -11
  315. package/mailer/errors/EventGeolocationError.js +0 -10
  316. package/mailer/errors/EventGeolocationError.ts +0 -11
  317. package/mailer/errors/EventUrlError.js +0 -10
  318. package/mailer/errors/EventUrlError.ts +0 -11
  319. package/mailer/errors/ListUrlError.js +0 -10
  320. package/mailer/errors/ListUrlError.ts +0 -11
  321. package/mailer/getIcalendar.ts +0 -39
  322. package/mailer/validateAddressEmail.js +0 -11
  323. package/mailer/validateAddressEmail.ts +0 -12
  324. package/mailer/validateEventAttachmentUrl.js +0 -11
  325. package/mailer/validateEventAttachmentUrl.ts +0 -12
  326. package/mailer/validateEventGeolocation.js +0 -11
  327. package/mailer/validateEventGeolocation.ts +0 -15
  328. package/mailer/validateEventUrl.js +0 -11
  329. package/mailer/validateEventUrl.ts +0 -12
  330. package/mailer/validateListUrl.js +0 -11
  331. package/mailer/validateListUrl.ts +0 -12
  332. package/parser/Parser.js +0 -2
  333. package/parser/Parser.ts +0 -5
  334. package/parser/errors/ParseError.js +0 -10
  335. package/parser/errors/ParseError.ts +0 -11
  336. package/parser/factories/unit/Unit.js +0 -2
  337. package/parser/factories/unit/Unit.ts +0 -8
  338. package/parser/factories/unit/createUnitParser.ts +0 -50
  339. package/parser/parseBoolean.js +0 -14
  340. package/parser/parseBoolean.ts +0 -16
  341. package/parser/parseBytes.d.ts +0 -2
  342. package/parser/parseBytes.ts +0 -55
  343. package/parser/parseInteger.js +0 -19
  344. package/parser/parseInteger.ts +0 -23
  345. package/parser/parseMilliseconds.d.ts +0 -2
  346. package/parser/parseMilliseconds.ts +0 -31
  347. package/parser/parseNumber.js +0 -18
  348. package/parser/parseNumber.ts +0 -22
  349. package/parser/parseString.js +0 -20
  350. package/parser/parseString.ts +0 -20
  351. package/pwd/Pwd.d.ts +0 -9
  352. package/pwd/Pwd.js +0 -22
  353. package/pwd/Pwd.ts +0 -31
  354. package/pwd/errors/HashRoundsError.d.ts +0 -5
  355. package/pwd/errors/HashRoundsError.js +0 -10
  356. package/pwd/errors/HashRoundsError.ts +0 -11
  357. package/pwd/validateHashRounds.d.ts +0 -2
  358. package/pwd/validateHashRounds.js +0 -10
  359. package/pwd/validateHashRounds.ts +0 -11
  360. package/tls/Tls.js +0 -2
  361. package/tls/Tls.ts +0 -10
  362. package/tls/errors/FileReadError.js +0 -10
  363. package/tls/errors/FileReadError.ts +0 -11
  364. package/tls/getTls.js +0 -17
  365. package/tls/getTls.ts +0 -24
  366. package/tls/readFile.js +0 -20
  367. package/tls/readFile.ts +0 -18
  368. package/utils/getRandomHexString.js +0 -8
  369. package/utils/getRandomHexString.ts +0 -9
  370. package/utils/getTimestamp.d.ts +0 -2
  371. package/utils/getTimestamp.js +0 -7
  372. package/utils/getTimestamp.ts +0 -7
  373. package/utils/isValidEmail.js +0 -8
  374. package/utils/isValidEmail.ts +0 -9
  375. package/utils/isValidGeolocation.ts +0 -10
  376. package/utils/isValidHexString.js +0 -8
  377. package/utils/isValidHexString.ts +0 -9
  378. package/utils/isValidJwtToken.js +0 -8
  379. package/utils/isValidJwtToken.ts +0 -9
  380. package/utils/isValidUrl.ts +0 -21
  381. package/utils/isValidUuid.ts +0 -10
  382. package/utils/wait.ts +0 -9
  383. /package/{cipher → dist/cipher}/Algorithm.d.ts +0 -0
  384. /package/{cli → dist/cli}/utils/exit.d.ts +0 -0
  385. /package/{cli → dist/cli}/utils/formatList.d.ts +0 -0
  386. /package/{cli → dist/cli}/utils/formatTable.d.ts +0 -0
  387. /package/{cli → dist/cli}/utils/formatText.d.ts +0 -0
  388. /package/{cli → dist/cli}/utils/print.d.ts +0 -0
  389. /package/{cli → dist/cli}/utils/printLn.d.ts +0 -0
  390. /package/{config → dist/config}/getPropertyEnvVar.d.ts +0 -0
  391. /package/{config → dist/config}/readFile.d.ts +0 -0
  392. /package/{config → dist/config}/validatePropertyName.d.ts +0 -0
  393. /package/{env → dist/env}/Env.d.ts +0 -0
  394. /package/{error → dist/error}/BaseError.d.ts +0 -0
  395. /package/{jwt → dist/jwt}/Algorithm.d.ts +0 -0
  396. /package/{jwt → dist/jwt}/Payload.d.ts +0 -0
  397. /package/{logger → dist/logger}/Level.d.ts +0 -0
  398. /package/{logger → dist/logger}/Logger.d.ts +0 -0
  399. /package/{logger → dist/logger}/Severity.d.ts +0 -0
  400. /package/{logger → dist/logger}/adapters/file/initFile.d.ts +0 -0
  401. /package/{mailer → dist/mailer}/Address.d.ts +0 -0
  402. /package/{mailer → dist/mailer}/List.d.ts +0 -0
  403. /package/{mailer → dist/mailer}/Location.d.ts +0 -0
  404. /package/{mailer → dist/mailer}/Method.d.ts +0 -0
  405. /package/{mailer → dist/mailer}/validateAddressEmail.d.ts +0 -0
  406. /package/{mailer → dist/mailer}/validateEventAttachmentUrl.d.ts +0 -0
  407. /package/{mailer → dist/mailer}/validateEventGeolocation.d.ts +0 -0
  408. /package/{mailer → dist/mailer}/validateEventUrl.d.ts +0 -0
  409. /package/{mailer → dist/mailer}/validateListUrl.d.ts +0 -0
  410. /package/{parser → dist/parser}/Parser.d.ts +0 -0
  411. /package/{parser → dist/parser}/factories/unit/Unit.d.ts +0 -0
  412. /package/{api → dist/server}/Method.d.ts +0 -0
  413. /package/{api → dist/server}/Schema.d.ts +0 -0
  414. /package/{tls → dist/tls}/Tls.d.ts +0 -0
  415. /package/{tls → dist/tls}/readFile.d.ts +0 -0
  416. /package/{utils → dist/utils}/getRandomHexString.d.ts +0 -0
  417. /package/{utils → dist/utils}/isValidEmail.d.ts +0 -0
  418. /package/{utils → dist/utils}/isValidGeolocation.d.ts +0 -0
  419. /package/{utils → dist/utils}/isValidHexString.d.ts +0 -0
  420. /package/{utils → dist/utils}/isValidJwtToken.d.ts +0 -0
  421. /package/{utils → dist/utils}/isValidUrl.d.ts +0 -0
  422. /package/{utils → dist/utils}/isValidUuid.d.ts +0 -0
  423. /package/{utils → dist/utils}/wait.d.ts +0 -0
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  MIT License
2
2
 
3
- Copyright (c) 2023 Matthieu Symoens
3
+ Copyright (c) 2025 Matthieu Symoens
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -4,10 +4,56 @@
4
4
 
5
5
  NPM package: [apeframework](https://www.npmjs.com/package/apeframework).
6
6
 
7
- GitHub repository: [ApeFramework/apeframework](https://github.com/ApeFramework/apeframework).
7
+ GitHub repository: [MattSyms/apeframework](https://github.com/MattSyms/apeframework).
8
8
 
9
9
  ## Installation
10
10
 
11
11
  ```
12
12
  yarn add apeframework
13
13
  ```
14
+
15
+ ## Development
16
+
17
+ Install dependencies:
18
+
19
+ ```
20
+ yarn
21
+ ```
22
+
23
+ Update dependencies:
24
+
25
+ ```
26
+ yarn update
27
+ ```
28
+
29
+ Compile:
30
+
31
+ ```
32
+ yarn compile
33
+ ```
34
+
35
+ Lint:
36
+
37
+ ```
38
+ yarn lint
39
+ ```
40
+
41
+ ## Release:
42
+
43
+ Tag stable release:
44
+
45
+ ```
46
+ git tag v<major>.<minor>.<patch>
47
+ ```
48
+
49
+ Tag dev release:
50
+
51
+ ```
52
+ git tag v0.0.0-dev.<number>
53
+ ```
54
+
55
+ Push tags:
56
+
57
+ ```
58
+ git push --tags
59
+ ```
@@ -1,9 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Algorithm = void 0;
4
1
  var Algorithm;
5
2
  (function (Algorithm) {
6
3
  Algorithm["AES128"] = "aes-128-cbc";
7
4
  Algorithm["AES192"] = "aes-192-cbc";
8
5
  Algorithm["AES256"] = "aes-256-cbc";
9
- })(Algorithm || (exports.Algorithm = Algorithm = {}));
6
+ })(Algorithm || (Algorithm = {}));
7
+ export { Algorithm, };
@@ -1,4 +1,4 @@
1
- import type { Algorithm } from './Algorithm';
1
+ import type { Algorithm } from './Algorithm.js';
2
2
  declare class Cipher {
3
3
  private readonly algorithm;
4
4
  private readonly secret;
@@ -0,0 +1,32 @@
1
+ import { createCipheriv, createDecipheriv, randomBytes } from 'node:crypto';
2
+ import { DecryptError } from './errors/DecryptError.js';
3
+ import { validateSecretLength } from './validateSecretLength.js';
4
+ class Cipher {
5
+ algorithm;
6
+ secret;
7
+ constructor(params) {
8
+ validateSecretLength(params.algorithm, params.secret);
9
+ this.algorithm = params.algorithm;
10
+ this.secret = Buffer.from(params.secret, 'utf8');
11
+ }
12
+ encrypt(string) {
13
+ const iv = randomBytes(16);
14
+ const cipher = createCipheriv(this.algorithm, this.secret, iv);
15
+ return iv.toString('hex')
16
+ + cipher.update(string, 'utf8', 'hex')
17
+ + cipher.final('hex');
18
+ }
19
+ decrypt(string) {
20
+ const buffer = Buffer.from(string, 'hex');
21
+ const iv = buffer.subarray(0, 16);
22
+ const decipher = createDecipheriv(this.algorithm, this.secret, iv);
23
+ try {
24
+ return decipher.update(buffer.subarray(16), undefined, 'utf8')
25
+ + decipher.final('utf8');
26
+ }
27
+ catch (error) {
28
+ throw new DecryptError(error.message);
29
+ }
30
+ }
31
+ }
32
+ export { Cipher, };
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class DecryptError extends BaseError {
3
3
  constructor(message: string);
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class DecryptError extends BaseError {
3
+ constructor(message) {
4
+ super(`failed decrypting string: ${message}`);
5
+ }
6
+ }
7
+ export { DecryptError, };
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class SecretLengthError extends BaseError {
3
3
  constructor();
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class SecretLengthError extends BaseError {
3
+ constructor() {
4
+ super('invalid secret length');
5
+ }
6
+ }
7
+ export { SecretLengthError, };
@@ -1,3 +1,3 @@
1
- import { Algorithm } from './Algorithm';
1
+ import { Algorithm } from './Algorithm.js';
2
2
  declare const validateSecretLength: (algorithm: Algorithm, secret: string) => void;
3
3
  export { validateSecretLength, };
@@ -0,0 +1,13 @@
1
+ import { Algorithm } from './Algorithm.js';
2
+ import { SecretLengthError } from './errors/SecretLengthError.js';
3
+ const secretLength = {
4
+ [Algorithm.AES128]: 16,
5
+ [Algorithm.AES192]: 24,
6
+ [Algorithm.AES256]: 32,
7
+ };
8
+ const validateSecretLength = (algorithm, secret) => {
9
+ if (Buffer.from(secret).length !== secretLength[algorithm]) {
10
+ throw new SecretLengthError();
11
+ }
12
+ };
13
+ export { validateSecretLength, };
@@ -1,5 +1,5 @@
1
1
  interface Args {
2
2
  positional: string[];
3
- optional: Record<string, boolean | string>;
3
+ optional: Record<string, boolean | string | undefined>;
4
4
  }
5
5
  export { type Args, };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,3 @@
1
- import type { Args } from './Args';
1
+ import type { Args } from './Args.js';
2
2
  type Command = (args: Args) => Promise<void>;
3
3
  export { type Command, };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,3 +1,3 @@
1
- import type { Args } from './Args';
1
+ import type { Args } from './Args.js';
2
2
  declare const getArgs: () => Args;
3
3
  export { getArgs, };
@@ -0,0 +1,5 @@
1
+ import { parseArgs } from './parseArgs.js';
2
+ const getArgs = () => {
3
+ return parseArgs(process.argv.slice(2));
4
+ };
5
+ export { getArgs, };
@@ -1,3 +1,3 @@
1
- import type { Args } from './Args';
1
+ import type { Args } from './Args.js';
2
2
  declare const parseArgs: (args: string[]) => Args;
3
3
  export { parseArgs, };
@@ -1,12 +1,6 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.parseArgs = void 0;
7
- const yargs_parser_1 = __importDefault(require("yargs-parser"));
1
+ import yargsParser from 'yargs-parser';
8
2
  const parseArgs = (args) => {
9
- const parsed = (0, yargs_parser_1.default)(args, {
3
+ const parsed = yargsParser(args, {
10
4
  configuration: {
11
5
  'boolean-negation': false,
12
6
  'camel-case-expansion': true,
@@ -28,4 +22,4 @@ const parseArgs = (args) => {
28
22
  optional,
29
23
  };
30
24
  };
31
- exports.parseArgs = parseArgs;
25
+ export { parseArgs, };
@@ -0,0 +1,4 @@
1
+ const exit = (code) => {
2
+ process.exit(code);
3
+ };
4
+ export { exit, };
@@ -0,0 +1,7 @@
1
+ import { EOL } from 'node:os';
2
+ const formatList = (list) => {
3
+ return list
4
+ .map((item) => { return ` ${item}`; })
5
+ .join(EOL);
6
+ };
7
+ export { formatList, };
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.formatTable = void 0;
4
- const os_1 = require("os");
1
+ import { EOL } from 'node:os';
5
2
  const formatTable = (table) => {
6
3
  const colLength = [];
7
4
  table.forEach((row) => {
@@ -17,6 +14,6 @@ const formatTable = (table) => {
17
14
  .map((col, i) => { return col.padEnd(colLength[i], ' '); })
18
15
  .join(' ');
19
16
  })
20
- .join(os_1.EOL);
17
+ .join(EOL);
21
18
  };
22
- exports.formatTable = formatTable;
19
+ export { formatTable, };
@@ -0,0 +1,5 @@
1
+ import { EOL } from 'node:os';
2
+ const formatText = (text) => {
3
+ return text.join(EOL);
4
+ };
5
+ export { formatText, };
@@ -0,0 +1,4 @@
1
+ const print = (s) => {
2
+ process.stdout.write(s);
3
+ };
4
+ export { print, };
@@ -0,0 +1,5 @@
1
+ import { EOL } from 'node:os';
2
+ const printLn = (s) => {
3
+ process.stdout.write(`${s}${EOL}`);
4
+ };
5
+ export { printLn, };
@@ -0,0 +1,2 @@
1
+ type Config = Record<string, any>;
2
+ export { type Config, };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import type { Parser } from '../parser/Parser';
1
+ import type { Parser } from '../parser/Parser.js';
2
2
  type Properties<Type> = {
3
3
  [Property in keyof Type]: {
4
4
  parser: Parser<Type[Property]>;
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class FileReadError extends BaseError {
3
3
  constructor(path: string, message: string);
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class FileReadError extends BaseError {
3
+ constructor(path, message) {
4
+ super(`failed reading file "${path}": ${message}`);
5
+ }
6
+ }
7
+ export { FileReadError, };
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class PropertyNameError extends BaseError {
3
3
  constructor(name: string);
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class PropertyNameError extends BaseError {
3
+ constructor(name) {
4
+ super(`invalid property name "${name}"`);
5
+ }
6
+ }
7
+ export { PropertyNameError, };
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class PropertyParseError extends BaseError {
3
3
  constructor(name: string, source: string, message: string);
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class PropertyParseError extends BaseError {
3
+ constructor(name, source, message) {
4
+ super(`failed parsing property "${name}" from ${source}: ${message}`);
5
+ }
6
+ }
7
+ export { PropertyParseError, };
@@ -1,7 +1,7 @@
1
- import type { Config } from './Config';
2
- import type { Properties } from './Properties';
3
- import type { Args } from '../cli/Args';
4
- import type { Env } from '../env/Env';
1
+ import type { Config } from './Config.js';
2
+ import type { Properties } from './Properties.js';
3
+ import type { Args } from '../cli/Args.js';
4
+ import type { Env } from '../env/Env.js';
5
5
  declare const getConfig: <Type extends Config>(params: {
6
6
  properties: Properties<Type>;
7
7
  file?: {
@@ -0,0 +1,18 @@
1
+ import { getPropertyEnvVar } from './getPropertyEnvVar.js';
2
+ import { parseProperty } from './parseProperty.js';
3
+ import { readFile } from './readFile.js';
4
+ import { validatePropertyName } from './validatePropertyName.js';
5
+ const getConfig = (params) => {
6
+ const file = params.file
7
+ ? readFile(params.file.path, params.file.required)
8
+ : {};
9
+ const env = params.env ?? {};
10
+ const args = params.args ?? { positional: [], optional: {} };
11
+ const config = {};
12
+ for (const name in params.properties) {
13
+ validatePropertyName(name);
14
+ config[name] = parseProperty(name, params.properties[name].parser, params.properties[name].default, file[name], env[getPropertyEnvVar(name)], args.optional[name]);
15
+ }
16
+ return config;
17
+ };
18
+ export { getConfig, };
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPropertyEnvVar = void 0;
4
1
  const capitalLetterRegex = /[A-Z]/gu;
5
2
  const capitalLetterReplacer = (letter) => {
6
3
  return `_${letter}`;
@@ -10,4 +7,4 @@ const getPropertyEnvVar = (name) => {
10
7
  .replace(capitalLetterRegex, capitalLetterReplacer)
11
8
  .toUpperCase();
12
9
  };
13
- exports.getPropertyEnvVar = getPropertyEnvVar;
10
+ export { getPropertyEnvVar, };
@@ -1,3 +1,3 @@
1
- import type { Parser } from '../parser/Parser';
1
+ import type { Parser } from '../parser/Parser.js';
2
2
  declare const parseProperty: <Type>(name: string, parser: Parser<Type>, defaultValue: any, fileValue: any, envValue: any, argsValue: any) => Type;
3
3
  export { parseProperty, };
@@ -1,7 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseProperty = void 0;
4
- const PropertyParseError_1 = require("./errors/PropertyParseError");
1
+ import { PropertyParseError } from './errors/PropertyParseError.js';
5
2
  const parseProperty = (name, parser, defaultValue, fileValue, envValue, argsValue) => {
6
3
  const sources = [
7
4
  {
@@ -31,7 +28,7 @@ const parseProperty = (name, parser, defaultValue, fileValue, envValue, argsValu
31
28
  return parser(source.value);
32
29
  }
33
30
  catch (error) {
34
- throw new PropertyParseError_1.PropertyParseError(name, source.name, error.message);
31
+ throw new PropertyParseError(name, source.name, error.message);
35
32
  }
36
33
  };
37
- exports.parseProperty = parseProperty;
34
+ export { parseProperty, };
@@ -0,0 +1,25 @@
1
+ import fs from 'fs-extra';
2
+ import { FileReadError } from './errors/FileReadError.js';
3
+ const readFile = (path, required = false) => {
4
+ let json = {};
5
+ let fileExists;
6
+ try {
7
+ fileExists = fs.existsSync(path);
8
+ if (fileExists) {
9
+ json = fs.readJsonSync(path);
10
+ }
11
+ }
12
+ catch (error) {
13
+ throw new FileReadError(path, error.message);
14
+ }
15
+ if (required && !fileExists) {
16
+ throw new FileReadError(path, 'missing file');
17
+ }
18
+ if (typeof json !== 'object'
19
+ || Array.isArray(json)
20
+ || json === null) {
21
+ throw new FileReadError(path, 'invalid content');
22
+ }
23
+ return json;
24
+ };
25
+ export { readFile, };
@@ -0,0 +1,8 @@
1
+ import { PropertyNameError } from './errors/PropertyNameError.js';
2
+ const propertyNameRegex = /^[a-z](?:[0-9A-Za-z])*$/u;
3
+ const validatePropertyName = (name) => {
4
+ if (!propertyNameRegex.test(name)) {
5
+ throw new PropertyNameError(name);
6
+ }
7
+ };
8
+ export { validatePropertyName, };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class FileReadError extends BaseError {
3
3
  constructor(path: string, message: string);
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class FileReadError extends BaseError {
3
+ constructor(path, message) {
4
+ super(`failed reading file "${path}": ${message}`);
5
+ }
6
+ }
7
+ export { FileReadError, };
@@ -1,4 +1,4 @@
1
- import type { Env } from './Env';
1
+ import type { Env } from './Env.js';
2
2
  declare const getEnv: (params?: {
3
3
  file?: {
4
4
  path: string;
@@ -0,0 +1,12 @@
1
+ import { readFile } from './readFile.js';
2
+ const getEnv = (params) => {
3
+ let file = {};
4
+ if (params?.file) {
5
+ file = readFile(params.file.path, params.file.required);
6
+ }
7
+ return {
8
+ ...file,
9
+ ...process.env,
10
+ };
11
+ };
12
+ export { getEnv, };
@@ -1,3 +1,3 @@
1
- import type { Env } from './Env';
1
+ import type { Env } from './Env.js';
2
2
  declare const readFile: (path: string, required?: boolean) => Env;
3
3
  export { readFile, };
@@ -0,0 +1,18 @@
1
+ import dotenv from 'dotenv';
2
+ import fs from 'fs-extra';
3
+ import { FileReadError } from './errors/FileReadError.js';
4
+ const readFile = (path, required = false) => {
5
+ try {
6
+ if (fs.existsSync(path)) {
7
+ return dotenv.parse(fs.readFileSync(path));
8
+ }
9
+ }
10
+ catch (error) {
11
+ throw new FileReadError(path, error.message);
12
+ }
13
+ if (required) {
14
+ throw new FileReadError(path, 'missing file');
15
+ }
16
+ return {};
17
+ };
18
+ export { readFile, };
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BaseError = void 0;
4
1
  class BaseError extends Error {
5
2
  constructor(message) {
6
3
  super(message);
@@ -9,4 +6,4 @@ class BaseError extends Error {
9
6
  Object.setPrototypeOf(this, new.target.prototype);
10
7
  }
11
8
  }
12
- exports.BaseError = BaseError;
9
+ export { BaseError, };
@@ -0,0 +1,7 @@
1
+ var Algorithm;
2
+ (function (Algorithm) {
3
+ Algorithm["HS256"] = "HS256";
4
+ Algorithm["HS384"] = "HS384";
5
+ Algorithm["HS512"] = "HS512";
6
+ })(Algorithm || (Algorithm = {}));
7
+ export { Algorithm, };
@@ -1,5 +1,5 @@
1
- import type { Algorithm } from './Algorithm';
2
- import type { Payload } from './Payload';
1
+ import type { Algorithm } from './Algorithm.js';
2
+ import type { Payload } from './Payload.js';
3
3
  declare class Jwt {
4
4
  private readonly algorithm;
5
5
  private readonly secret;
@@ -1,18 +1,15 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Jwt = void 0;
4
- const jose_1 = require("jose");
5
- const validateSecretLength_1 = require("./validateSecretLength");
1
+ import { jwtVerify, SignJWT } from 'jose';
2
+ import { validateSecretLength } from './validateSecretLength.js';
6
3
  class Jwt {
7
4
  algorithm;
8
5
  secret;
9
6
  constructor(params) {
10
- (0, validateSecretLength_1.validateSecretLength)(params.algorithm, params.secret);
7
+ validateSecretLength(params.algorithm, params.secret);
11
8
  this.algorithm = params.algorithm;
12
9
  this.secret = new TextEncoder().encode(params.secret);
13
10
  }
14
11
  async createToken(payload) {
15
- return new jose_1.SignJWT(payload)
12
+ return new SignJWT(payload)
16
13
  .setProtectedHeader({
17
14
  typ: 'JWT',
18
15
  alg: this.algorithm,
@@ -21,7 +18,7 @@ class Jwt {
21
18
  }
22
19
  async verifyToken(token, timestamp) {
23
20
  try {
24
- const { payload } = await (0, jose_1.jwtVerify)(token, this.secret, {
21
+ const { payload } = await jwtVerify(token, this.secret, {
25
22
  typ: 'JWT',
26
23
  currentDate: new Date(timestamp * 1000),
27
24
  });
@@ -32,4 +29,4 @@ class Jwt {
32
29
  }
33
30
  }
34
31
  }
35
- exports.Jwt = Jwt;
32
+ export { Jwt, };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,4 +1,4 @@
1
- import { BaseError } from '../../error/BaseError';
1
+ import { BaseError } from '../../error/BaseError.js';
2
2
  declare class SecretLengthError extends BaseError {
3
3
  constructor();
4
4
  }
@@ -0,0 +1,7 @@
1
+ import { BaseError } from '../../error/BaseError.js';
2
+ class SecretLengthError extends BaseError {
3
+ constructor() {
4
+ super('invalid secret length');
5
+ }
6
+ }
7
+ export { SecretLengthError, };
@@ -1,3 +1,3 @@
1
- import { Algorithm } from './Algorithm';
1
+ import { Algorithm } from './Algorithm.js';
2
2
  declare const validateSecretLength: (algorithm: Algorithm, secret: string) => void;
3
3
  export { validateSecretLength, };
@@ -0,0 +1,13 @@
1
+ import { Algorithm } from './Algorithm.js';
2
+ import { SecretLengthError } from './errors/SecretLengthError.js';
3
+ const minSecretLength = {
4
+ [Algorithm.HS256]: 32,
5
+ [Algorithm.HS384]: 48,
6
+ [Algorithm.HS512]: 64,
7
+ };
8
+ const validateSecretLength = (algorithm, secret) => {
9
+ if (Buffer.from(secret).length < minSecretLength[algorithm]) {
10
+ throw new SecretLengthError();
11
+ }
12
+ };
13
+ export { validateSecretLength, };