@arkyn/server 3.0.1-beta.99 → 3.0.2

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 (265) hide show
  1. package/LICENSE.txt +184 -1
  2. package/README.md +277 -224
  3. package/dist/http/api/_deleteRequest.d.ts +17 -0
  4. package/dist/http/api/_deleteRequest.d.ts.map +1 -0
  5. package/dist/http/api/_getRequest.d.ts +16 -0
  6. package/dist/http/api/_getRequest.d.ts.map +1 -0
  7. package/dist/http/api/_logMapperService.d.ts +86 -0
  8. package/dist/http/api/_logMapperService.d.ts.map +1 -0
  9. package/dist/{api/arkynLogRequest.d.ts → http/api/_logRequest.d.ts} +22 -19
  10. package/dist/{api/arkynLogRequest.d.ts.map → http/api/_logRequest.d.ts.map} +1 -1
  11. package/dist/http/api/_makeRequest.d.ts +61 -0
  12. package/dist/http/api/_makeRequest.d.ts.map +1 -0
  13. package/dist/http/api/_patchRequest.d.ts +17 -0
  14. package/dist/http/api/_patchRequest.d.ts.map +1 -0
  15. package/dist/http/api/_postRequest.d.ts +17 -0
  16. package/dist/http/api/_postRequest.d.ts.map +1 -0
  17. package/dist/http/api/_putRequest.d.ts +17 -0
  18. package/dist/http/api/_putRequest.d.ts.map +1 -0
  19. package/dist/http/badResponses/_badResponse.d.ts +21 -7
  20. package/dist/http/badResponses/_badResponse.d.ts.map +1 -1
  21. package/dist/http/badResponses/badGateway.d.ts +12 -23
  22. package/dist/http/badResponses/badGateway.d.ts.map +1 -1
  23. package/dist/http/badResponses/badRequest.d.ts +10 -23
  24. package/dist/http/badResponses/badRequest.d.ts.map +1 -1
  25. package/dist/http/badResponses/conflict.d.ts +10 -23
  26. package/dist/http/badResponses/conflict.d.ts.map +1 -1
  27. package/dist/http/badResponses/forbidden.d.ts +10 -23
  28. package/dist/http/badResponses/forbidden.d.ts.map +1 -1
  29. package/dist/http/badResponses/notFound.d.ts +10 -23
  30. package/dist/http/badResponses/notFound.d.ts.map +1 -1
  31. package/dist/http/badResponses/notImplemented.d.ts +10 -23
  32. package/dist/http/badResponses/notImplemented.d.ts.map +1 -1
  33. package/dist/http/badResponses/serverError.d.ts +10 -23
  34. package/dist/http/badResponses/serverError.d.ts.map +1 -1
  35. package/dist/http/badResponses/unauthorized.d.ts +10 -23
  36. package/dist/http/badResponses/unauthorized.d.ts.map +1 -1
  37. package/dist/http/badResponses/unprocessableEntity.d.ts +23 -33
  38. package/dist/http/badResponses/unprocessableEntity.d.ts.map +1 -1
  39. package/dist/http/successResponses/_successResponse.d.ts +21 -7
  40. package/dist/http/successResponses/_successResponse.d.ts.map +1 -1
  41. package/dist/http/successResponses/created.d.ts +11 -29
  42. package/dist/http/successResponses/created.d.ts.map +1 -1
  43. package/dist/http/successResponses/found.d.ts +11 -32
  44. package/dist/http/successResponses/found.d.ts.map +1 -1
  45. package/dist/http/successResponses/noContent.d.ts +10 -16
  46. package/dist/http/successResponses/noContent.d.ts.map +1 -1
  47. package/dist/http/successResponses/success.d.ts +11 -29
  48. package/dist/http/successResponses/success.d.ts.map +1 -1
  49. package/dist/http/successResponses/updated.d.ts +12 -29
  50. package/dist/http/successResponses/updated.d.ts.map +1 -1
  51. package/dist/index.d.ts +9 -10
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +1069 -38
  54. package/dist/index.js.map +1 -0
  55. package/dist/modules/http/api/_deleteRequest.js +15 -0
  56. package/dist/modules/http/api/_deleteRequest.js.map +1 -0
  57. package/dist/modules/http/api/_getRequest.js +14 -0
  58. package/dist/modules/http/api/_getRequest.js.map +1 -0
  59. package/dist/modules/http/api/_logMapperService.js +33 -0
  60. package/dist/modules/http/api/_logMapperService.js.map +1 -0
  61. package/dist/modules/http/api/_logRequest.js +58 -0
  62. package/dist/modules/http/api/_logRequest.js.map +1 -0
  63. package/dist/modules/http/api/_makeRequest.js +72 -0
  64. package/dist/modules/http/api/_makeRequest.js.map +1 -0
  65. package/dist/modules/http/api/_patchRequest.js +15 -0
  66. package/dist/modules/http/api/_patchRequest.js.map +1 -0
  67. package/dist/modules/http/api/_postRequest.js +15 -0
  68. package/dist/modules/http/api/_postRequest.js.map +1 -0
  69. package/dist/modules/http/api/_putRequest.js +15 -0
  70. package/dist/modules/http/api/_putRequest.js.map +1 -0
  71. package/dist/modules/http/badResponses/_badResponse.js +65 -0
  72. package/dist/modules/http/badResponses/_badResponse.js.map +1 -0
  73. package/dist/modules/http/badResponses/badGateway.js +26 -0
  74. package/dist/modules/http/badResponses/badGateway.js.map +1 -0
  75. package/dist/modules/http/badResponses/badRequest.js +26 -0
  76. package/dist/modules/http/badResponses/badRequest.js.map +1 -0
  77. package/dist/modules/http/badResponses/conflict.js +26 -0
  78. package/dist/modules/http/badResponses/conflict.js.map +1 -0
  79. package/dist/modules/http/badResponses/forbidden.js +26 -0
  80. package/dist/modules/http/badResponses/forbidden.js.map +1 -0
  81. package/dist/modules/http/badResponses/notFound.js +26 -0
  82. package/dist/modules/http/badResponses/notFound.js.map +1 -0
  83. package/dist/modules/http/badResponses/notImplemented.js +26 -0
  84. package/dist/modules/http/badResponses/notImplemented.js.map +1 -0
  85. package/dist/modules/http/badResponses/serverError.js +26 -0
  86. package/dist/modules/http/badResponses/serverError.js.map +1 -0
  87. package/dist/modules/http/badResponses/unauthorized.js +26 -0
  88. package/dist/modules/http/badResponses/unauthorized.js.map +1 -0
  89. package/dist/modules/http/badResponses/unprocessableEntity.js +30 -0
  90. package/dist/modules/http/badResponses/unprocessableEntity.js.map +1 -0
  91. package/dist/modules/http/successResponses/_successResponse.js +64 -0
  92. package/dist/modules/http/successResponses/_successResponse.js.map +1 -0
  93. package/dist/modules/http/successResponses/created.js +26 -0
  94. package/dist/modules/http/successResponses/created.js.map +1 -0
  95. package/dist/modules/http/successResponses/found.js +26 -0
  96. package/dist/modules/http/successResponses/found.js.map +1 -0
  97. package/dist/modules/http/successResponses/noContent.js +19 -0
  98. package/dist/modules/http/successResponses/noContent.js.map +1 -0
  99. package/dist/modules/http/successResponses/success.js +26 -0
  100. package/dist/modules/http/successResponses/success.js.map +1 -0
  101. package/dist/modules/http/successResponses/updated.js +26 -0
  102. package/dist/modules/http/successResponses/updated.js.map +1 -0
  103. package/dist/modules/services/apiService.js +111 -0
  104. package/dist/modules/services/apiService.js.map +1 -0
  105. package/dist/modules/services/debugService.js +38 -0
  106. package/dist/modules/services/debugService.js.map +1 -0
  107. package/dist/modules/services/logService.js +23 -0
  108. package/dist/modules/services/logService.js.map +1 -0
  109. package/dist/modules/utilities/decodeRequestBody.js +22 -0
  110. package/dist/modules/utilities/decodeRequestBody.js.map +1 -0
  111. package/dist/modules/utilities/decodeRequestErrorMessage.js +8 -0
  112. package/dist/modules/utilities/decodeRequestErrorMessage.js.map +1 -0
  113. package/dist/modules/utilities/errorHandler.js +41 -0
  114. package/dist/modules/utilities/errorHandler.js.map +1 -0
  115. package/dist/modules/utilities/flushDebugLogs.js +18 -0
  116. package/dist/modules/utilities/flushDebugLogs.js.map +1 -0
  117. package/dist/modules/utilities/formAsyncParse.js +16 -0
  118. package/dist/modules/utilities/formAsyncParse.js.map +1 -0
  119. package/dist/modules/utilities/formParse.js +16 -0
  120. package/dist/modules/utilities/formParse.js.map +1 -0
  121. package/dist/modules/utilities/getScopedParams.js +11 -0
  122. package/dist/modules/utilities/getScopedParams.js.map +1 -0
  123. package/dist/modules/utilities/schemaValidator.js +57 -0
  124. package/dist/modules/utilities/schemaValidator.js.map +1 -0
  125. package/dist/modules/validations/validateCep.js +11 -0
  126. package/dist/modules/validations/validateCep.js.map +1 -0
  127. package/dist/modules/validations/validateCnpj.js +56 -0
  128. package/dist/modules/validations/validateCnpj.js.map +1 -0
  129. package/dist/modules/validations/validateCpf.js +29 -0
  130. package/dist/modules/validations/validateCpf.js.map +1 -0
  131. package/dist/modules/validations/validateDate.js +28 -0
  132. package/dist/modules/validations/validateDate.js.map +1 -0
  133. package/dist/modules/validations/validateEmail.js +56 -0
  134. package/dist/modules/validations/validateEmail.js.map +1 -0
  135. package/dist/modules/validations/validatePassword.js +14 -0
  136. package/dist/modules/validations/validatePassword.js.map +1 -0
  137. package/dist/modules/validations/validatePhone.js +12 -0
  138. package/dist/modules/validations/validatePhone.js.map +1 -0
  139. package/dist/modules/validations/validateRg.js +10 -0
  140. package/dist/modules/validations/validateRg.js.map +1 -0
  141. package/dist/services/apiService.d.ts +25 -26
  142. package/dist/services/apiService.d.ts.map +1 -1
  143. package/dist/services/debugService.d.ts +15 -32
  144. package/dist/services/debugService.d.ts.map +1 -1
  145. package/dist/services/logService.d.ts +33 -0
  146. package/dist/services/logService.d.ts.map +1 -0
  147. package/dist/utilities/decodeRequestBody.d.ts +18 -0
  148. package/dist/utilities/decodeRequestBody.d.ts.map +1 -0
  149. package/dist/utilities/decodeRequestErrorMessage.d.ts +19 -0
  150. package/dist/utilities/decodeRequestErrorMessage.d.ts.map +1 -0
  151. package/dist/utilities/errorHandler.d.ts +25 -0
  152. package/dist/utilities/errorHandler.d.ts.map +1 -0
  153. package/dist/utilities/flushDebugLogs.d.ts +24 -0
  154. package/dist/utilities/flushDebugLogs.d.ts.map +1 -0
  155. package/dist/utilities/formAsyncParse.d.ts +38 -0
  156. package/dist/utilities/formAsyncParse.d.ts.map +1 -0
  157. package/dist/utilities/formParse.d.ts +38 -0
  158. package/dist/utilities/formParse.d.ts.map +1 -0
  159. package/dist/utilities/getScopedParams.d.ts +19 -0
  160. package/dist/utilities/getScopedParams.d.ts.map +1 -0
  161. package/dist/utilities/schemaValidator.d.ts +75 -0
  162. package/dist/utilities/schemaValidator.d.ts.map +1 -0
  163. package/dist/validations/validateCep.d.ts +6 -11
  164. package/dist/validations/validateCep.d.ts.map +1 -1
  165. package/dist/validations/validateCnpj.d.ts +2 -3
  166. package/dist/validations/validateCnpj.d.ts.map +1 -1
  167. package/dist/validations/validateCpf.d.ts +4 -12
  168. package/dist/validations/validateCpf.d.ts.map +1 -1
  169. package/dist/validations/validateDate.d.ts +13 -24
  170. package/dist/validations/validateDate.d.ts.map +1 -1
  171. package/dist/validations/validateEmail.d.ts +3 -4
  172. package/dist/validations/validateEmail.d.ts.map +1 -1
  173. package/dist/validations/validatePassword.d.ts +3 -4
  174. package/dist/validations/validatePassword.d.ts.map +1 -1
  175. package/dist/validations/validatePhone.d.ts +7 -20
  176. package/dist/validations/validatePhone.d.ts.map +1 -1
  177. package/dist/validations/validateRg.d.ts +1 -2
  178. package/dist/validations/validateRg.d.ts.map +1 -1
  179. package/package.json +317 -15
  180. package/dist/api/arkynLogRequest.js +0 -88
  181. package/dist/api/deleteRequest.d.ts +0 -13
  182. package/dist/api/deleteRequest.d.ts.map +0 -1
  183. package/dist/api/deleteRequest.js +0 -14
  184. package/dist/api/getRequest.d.ts +0 -12
  185. package/dist/api/getRequest.d.ts.map +0 -1
  186. package/dist/api/getRequest.js +0 -13
  187. package/dist/api/makeRequest.d.ts +0 -38
  188. package/dist/api/makeRequest.d.ts.map +0 -1
  189. package/dist/api/makeRequest.js +0 -107
  190. package/dist/api/patchRequest.d.ts +0 -13
  191. package/dist/api/patchRequest.d.ts.map +0 -1
  192. package/dist/api/patchRequest.js +0 -14
  193. package/dist/api/postRequest.d.ts +0 -13
  194. package/dist/api/postRequest.d.ts.map +0 -1
  195. package/dist/api/postRequest.js +0 -14
  196. package/dist/api/putRequest.d.ts +0 -13
  197. package/dist/api/putRequest.d.ts.map +0 -1
  198. package/dist/api/putRequest.js +0 -14
  199. package/dist/bundle.js +0 -1507
  200. package/dist/bundle.umd.cjs +0 -10
  201. package/dist/http/badResponses/_badResponse.js +0 -20
  202. package/dist/http/badResponses/badGateway.js +0 -58
  203. package/dist/http/badResponses/badRequest.js +0 -58
  204. package/dist/http/badResponses/conflict.js +0 -58
  205. package/dist/http/badResponses/forbidden.js +0 -58
  206. package/dist/http/badResponses/notFound.js +0 -58
  207. package/dist/http/badResponses/notImplemented.js +0 -58
  208. package/dist/http/badResponses/serverError.js +0 -58
  209. package/dist/http/badResponses/unauthorized.js +0 -58
  210. package/dist/http/badResponses/unprocessableEntity.js +0 -65
  211. package/dist/http/successResponses/_successResponse.js +0 -37
  212. package/dist/http/successResponses/created.js +0 -57
  213. package/dist/http/successResponses/found.js +0 -60
  214. package/dist/http/successResponses/noContent.js +0 -38
  215. package/dist/http/successResponses/success.js +0 -57
  216. package/dist/http/successResponses/updated.js +0 -57
  217. package/dist/mapper/arkynLogRequestMapper.d.ts +0 -30
  218. package/dist/mapper/arkynLogRequestMapper.d.ts.map +0 -1
  219. package/dist/mapper/arkynLogRequestMapper.js +0 -44
  220. package/dist/services/apiService.js +0 -133
  221. package/dist/services/arkynLogService.d.ts +0 -44
  222. package/dist/services/arkynLogService.d.ts.map +0 -1
  223. package/dist/services/arkynLogService.js +0 -46
  224. package/dist/services/debugService.js +0 -57
  225. package/dist/services/decodeErrorMessageFromRequest.d.ts +0 -17
  226. package/dist/services/decodeErrorMessageFromRequest.d.ts.map +0 -1
  227. package/dist/services/decodeErrorMessageFromRequest.js +0 -30
  228. package/dist/services/decodeRequestBody.d.ts +0 -17
  229. package/dist/services/decodeRequestBody.d.ts.map +0 -1
  230. package/dist/services/decodeRequestBody.js +0 -38
  231. package/dist/services/errorHandler.d.ts +0 -44
  232. package/dist/services/errorHandler.d.ts.map +0 -1
  233. package/dist/services/errorHandler.js +0 -93
  234. package/dist/services/flushDebugLogs.d.ts +0 -8
  235. package/dist/services/flushDebugLogs.d.ts.map +0 -1
  236. package/dist/services/flushDebugLogs.js +0 -20
  237. package/dist/services/formAsyncParse.d.ts +0 -59
  238. package/dist/services/formAsyncParse.d.ts.map +0 -1
  239. package/dist/services/formAsyncParse.js +0 -58
  240. package/dist/services/formParse.d.ts +0 -59
  241. package/dist/services/formParse.d.ts.map +0 -1
  242. package/dist/services/formParse.js +0 -58
  243. package/dist/services/getCaller.d.ts +0 -17
  244. package/dist/services/getCaller.d.ts.map +0 -1
  245. package/dist/services/getCaller.js +0 -60
  246. package/dist/services/getScopedParams.d.ts +0 -28
  247. package/dist/services/getScopedParams.d.ts.map +0 -1
  248. package/dist/services/getScopedParams.js +0 -34
  249. package/dist/services/measureRouteExecution.d.ts +0 -3
  250. package/dist/services/measureRouteExecution.d.ts.map +0 -1
  251. package/dist/services/measureRouteExecution.js +0 -24
  252. package/dist/services/schemaValidator.d.ts +0 -158
  253. package/dist/services/schemaValidator.d.ts.map +0 -1
  254. package/dist/services/schemaValidator.js +0 -207
  255. package/dist/types/ApiResponseDTO.d.ts +0 -17
  256. package/dist/types/ApiResponseDTO.d.ts.map +0 -1
  257. package/dist/types/ApiResponseDTO.js +0 -1
  258. package/dist/validations/validateCep.js +0 -33
  259. package/dist/validations/validateCnpj.js +0 -52
  260. package/dist/validations/validateCpf.js +0 -54
  261. package/dist/validations/validateDate.js +0 -73
  262. package/dist/validations/validateEmail.js +0 -123
  263. package/dist/validations/validatePassword.js +0 -34
  264. package/dist/validations/validatePhone.js +0 -44
  265. package/dist/validations/validateRg.js +0 -31
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateDate.js","names":[],"sources":["../../../src/validations/validateDate.ts"],"sourcesContent":["import { ValidateDateService } from \"@arkyn/shared\";\n\n/**\n * Validates a date string against a format and optional year bounds.\n *\n * @param date - The date string to validate.\n * @param config.inputFormat - Parsing format: `\"brazilianDate\"` (DD/MM/YYYY, default), `\"isoDate\"` (MM-DD-YYYY), or `\"timestamp\"` (YYYY-MM-DD).\n * @param config.minYear - Minimum allowed year. Defaults to 1900.\n * @param config.maxYear - Maximum allowed year. Defaults to 3000.\n * @returns `true` if the date is valid according to the format and bounds, otherwise `false`.\n *\n * @example\n * ```typescript\n * validateDate(\"31/12/2023\"); // true\n * validateDate(\"2023-12-31\", { inputFormat: \"timestamp\", minYear: 2000, maxYear: 2100 }); // true\n * validateDate(\"29/02/2023\"); // false (not a leap year)\n * ```\n */\n\nfunction validateDate(\n\tdate: string,\n\tconfig?: {\n\t\tinputFormat?: \"brazilianDate\" | \"isoDate\" | \"timestamp\";\n\t\tminYear?: number;\n\t\tmaxYear?: number;\n\t},\n): boolean {\n\tconst inputFormat = config?.inputFormat || \"brazilianDate\";\n\tconst minYear = config?.minYear || 1900;\n\tconst maxYear = config?.maxYear || 3000;\n\n\tconst validateDateService = new ValidateDateService();\n\tvalidateDateService.validateInputFormat(inputFormat);\n\n\tlet day: number, month: number, year: number;\n\tconst dateParts = date.split(/[-/]/).map(Number);\n\n\tif (dateParts.length !== 3) return false;\n\n\ttry {\n\t\tswitch (inputFormat) {\n\t\t\tcase \"brazilianDate\":\n\t\t\t\t[day, month, year] = dateParts;\n\t\t\t\tvalidateDateService.validateDateParts(year, month, day);\n\t\t\t\tbreak;\n\t\t\tcase \"isoDate\":\n\t\t\t\t[month, day, year] = dateParts;\n\t\t\t\tvalidateDateService.validateDateParts(year, month, day);\n\t\t\t\tbreak;\n\t\t\tcase \"timestamp\":\n\t\t\t\t[year, month, day] = dateParts;\n\t\t\t\tvalidateDateService.validateDateParts(year, month, day);\n\t\t\t\tbreak;\n\t\t}\n\t\tif (year < minYear || year > maxYear) return false;\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nexport { validateDate };\n"],"mappings":";;AAmBA,SAAS,EACR,GACA,GAKU;CACV,IAAM,IAAc,GAAQ,eAAe,iBACrC,IAAU,GAAQ,WAAW,MAC7B,IAAU,GAAQ,WAAW,KAE7B,IAAsB,IAAI,EAAoB;CACpD,EAAoB,oBAAoB,CAAW;CAEnD,IAAI,GAAa,GAAe,GAC1B,IAAY,EAAK,MAAM,MAAM,CAAC,CAAC,IAAI,MAAM;CAE/C,IAAI,EAAU,WAAW,GAAG,OAAO;CAEnC,IAAI;EACH,QAAQ,GAAR;GACC,KAAK;IAEJ,AADA,CAAC,GAAK,GAAO,KAAQ,GACrB,EAAoB,kBAAkB,GAAM,GAAO,CAAG;IACtD;GACD,KAAK;IAEJ,AADA,CAAC,GAAO,GAAK,KAAQ,GACrB,EAAoB,kBAAkB,GAAM,GAAO,CAAG;IACtD;GACD,KAAK;IAEJ,AADA,CAAC,GAAM,GAAO,KAAO,GACrB,EAAoB,kBAAkB,GAAM,GAAO,CAAG;IACtD;EACF;EAEA,OADA,EAAI,IAAO,KAAW,IAAO;CAE9B,QAAQ;EACP,OAAO;CACR;AACD"}
@@ -0,0 +1,56 @@
1
+ import e from "node:dns";
2
+ //#region src/validations/validateEmail.ts
3
+ function t(e) {
4
+ return /^[a-zA-Z0-9.!$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(e);
5
+ }
6
+ function n(e) {
7
+ return !(e.length === 0 || e.length > 64 || e.startsWith(".") || e.endsWith(".") || e.includes("..") || !/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+$/.test(e));
8
+ }
9
+ function r(e) {
10
+ return !(e.length === 0 || e.length > 63 || e.startsWith("-") || e.endsWith("-") || !/^[a-zA-Z0-9-]+$/.test(e));
11
+ }
12
+ function i(e) {
13
+ if (e.length === 0 || e.length > 253 || e.startsWith(".") || e.endsWith(".") || e.startsWith("-") || e.endsWith("-")) return !1;
14
+ let t = e.split(".");
15
+ if (t.length < 2) return !1;
16
+ for (let e of t) if (!r(e)) return !1;
17
+ let n = t[t.length - 1];
18
+ return !(n.length < 2 || !/^[a-zA-Z]+$/.test(n));
19
+ }
20
+ function a(e) {
21
+ let t = e.split("@");
22
+ if (t.length !== 2) return !1;
23
+ let [r, a] = t;
24
+ return !(!n(r) || !i(a));
25
+ }
26
+ function o(e) {
27
+ let t = e.split("@");
28
+ return t.length === 2 ? t[1].toLowerCase() : null;
29
+ }
30
+ var s = [
31
+ "MX",
32
+ "A",
33
+ "AAAA"
34
+ ];
35
+ async function c(t, n) {
36
+ try {
37
+ return await e?.promises?.resolve(t, n), !0;
38
+ } catch {
39
+ return !1;
40
+ }
41
+ }
42
+ async function l(e) {
43
+ for (let t of s) if (await c(e, t)) return !0;
44
+ return !1;
45
+ }
46
+ async function u(e) {
47
+ if (!e || typeof e != "string") return !1;
48
+ let n = e.trim();
49
+ if (!t(n) || !a(n)) return !1;
50
+ let r = o(n);
51
+ return r ? await l(r) : !1;
52
+ }
53
+ //#endregion
54
+ export { u as validateEmail };
55
+
56
+ //# sourceMappingURL=validateEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateEmail.js","names":[],"sources":["../../../src/validations/validateEmail.ts"],"sourcesContent":["import dns from \"node:dns\";\n\nfunction isValidBasicFormat(email: string): boolean {\n\tconst emailRegex =\n\t\t/^[a-zA-Z0-9.!$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n\n\treturn emailRegex.test(email);\n}\n\nfunction isValidLocalPart(localPart: string): boolean {\n\tif (localPart.length === 0 || localPart.length > 64) return false;\n\tif (localPart.startsWith(\".\") || localPart.endsWith(\".\")) return false;\n\tif (localPart.includes(\"..\")) return false;\n\n\tconst validLocalRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+$/;\n\tif (!validLocalRegex.test(localPart)) return false;\n\n\treturn true;\n}\n\nfunction isValidDomainLabel(label: string): boolean {\n\tif (label.length === 0 || label.length > 63) return false;\n\tif (label.startsWith(\"-\") || label.endsWith(\"-\")) return false;\n\tif (!/^[a-zA-Z0-9-]+$/.test(label)) return false;\n\treturn true;\n}\n\nfunction isValidDomainPart(domainPart: string): boolean {\n\tif (domainPart.length === 0 || domainPart.length > 253) return false;\n\n\tif (\n\t\tdomainPart.startsWith(\".\") ||\n\t\tdomainPart.endsWith(\".\") ||\n\t\tdomainPart.startsWith(\"-\") ||\n\t\tdomainPart.endsWith(\"-\")\n\t) {\n\t\treturn false;\n\t}\n\n\tconst labels = domainPart.split(\".\");\n\tif (labels.length < 2) return false;\n\n\tfor (const label of labels) if (!isValidDomainLabel(label)) return false;\n\n\tconst tld = labels[labels.length - 1];\n\tif (tld.length < 2 || !/^[a-zA-Z]+$/.test(tld)) return false;\n\n\treturn true;\n}\n\nfunction isValidAdvancedSyntax(email: string): boolean {\n\tconst parts = email.split(\"@\");\n\tif (parts.length !== 2) return false;\n\n\tconst [localPart, domainPart] = parts;\n\n\tif (!isValidLocalPart(localPart)) return false;\n\tif (!isValidDomainPart(domainPart)) return false;\n\treturn true;\n}\n\nfunction extractDomain(email: string): string | null {\n\tconst parts = email.split(\"@\");\n\treturn parts.length === 2 ? parts[1].toLowerCase() : null;\n}\n\nconst DNS_RECORD_TYPES = [\"MX\", \"A\", \"AAAA\"] as const;\n\nasync function tryResolveDnsRecord(\n\tdomain: string,\n\trecordType: string,\n): Promise<boolean> {\n\ttry {\n\t\tawait dns?.promises?.resolve(domain, recordType);\n\t\treturn true;\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nasync function isValidDns(domain: string): Promise<boolean> {\n\tfor (const recordType of DNS_RECORD_TYPES) {\n\t\tconst hasRecord = await tryResolveDnsRecord(domain, recordType);\n\t\tif (hasRecord) return true;\n\t}\n\treturn false;\n}\n\n/**\n * Validates if an email address is valid in all possible ways, including DNS validation.\n *\n * This function performs comprehensive email validation by:\n * - Checking basic email format and syntax\n * - Validating advanced RFC 5322 compliance rules\n * - Verifying that the domain has valid MX or A records in DNS\n *\n * @param rawEmail - The email address to validate.\n * @returns `true` if the email passes format checks and its domain resolves in DNS, otherwise `false`.\n *\n * @example\n * ```typescript\n * await validateEmail(\"user@gmail.com\"); // true\n * await validateEmail(\"user@gmil.com\"); // false (invalid domain)\n * await validateEmail(\"invalid-email\"); // false (invalid format)\n * ```\n */\n\nasync function validateEmail(rawEmail: string): Promise<boolean> {\n\tif (!rawEmail || typeof rawEmail !== \"string\") return false;\n\tconst email = rawEmail.trim();\n\n\tif (!isValidBasicFormat(email)) return false;\n\tif (!isValidAdvancedSyntax(email)) return false;\n\n\tconst domain = extractDomain(email);\n\tif (!domain) return false;\n\n\treturn await isValidDns(domain);\n}\n\nexport { validateEmail };\n"],"mappings":";;AAEA,SAAS,EAAmB,GAAwB;CAInD,OAAO,sIAAW,KAAK,CAAK;AAC7B;AAEA,SAAS,EAAiB,GAA4B;CAQrD,OAFA,EALI,EAAU,WAAW,KAAK,EAAU,SAAS,MAC7C,EAAU,WAAW,GAAG,KAAK,EAAU,SAAS,GAAG,KACnD,EAAU,SAAS,IAAI,KAGvB,CAAC,qCAAgB,KAAK,CAAS;AAGpC;AAEA,SAAS,EAAmB,GAAwB;CAInD,OADA,EAFI,EAAM,WAAW,KAAK,EAAM,SAAS,MACrC,EAAM,WAAW,GAAG,KAAK,EAAM,SAAS,GAAG,KAC3C,CAAC,kBAAkB,KAAK,CAAK;AAElC;AAEA,SAAS,EAAkB,GAA6B;CAGvD,IAFI,EAAW,WAAW,KAAK,EAAW,SAAS,OAGlD,EAAW,WAAW,GAAG,KACzB,EAAW,SAAS,GAAG,KACvB,EAAW,WAAW,GAAG,KACzB,EAAW,SAAS,GAAG,GAEvB,OAAO;CAGR,IAAM,IAAS,EAAW,MAAM,GAAG;CACnC,IAAI,EAAO,SAAS,GAAG,OAAO;CAE9B,KAAK,IAAM,KAAS,GAAQ,IAAI,CAAC,EAAmB,CAAK,GAAG,OAAO;CAEnE,IAAM,IAAM,EAAO,EAAO,SAAS;CAGnC,OAFA,EAAI,EAAI,SAAS,KAAK,CAAC,cAAc,KAAK,CAAG;AAG9C;AAEA,SAAS,EAAsB,GAAwB;CACtD,IAAM,IAAQ,EAAM,MAAM,GAAG;CAC7B,IAAI,EAAM,WAAW,GAAG,OAAO;CAE/B,IAAM,CAAC,GAAW,KAAc;CAIhC,OADA,EADI,CAAC,EAAiB,CAAS,KAC3B,CAAC,EAAkB,CAAU;AAElC;AAEA,SAAS,EAAc,GAA8B;CACpD,IAAM,IAAQ,EAAM,MAAM,GAAG;CAC7B,OAAO,EAAM,WAAW,IAAI,EAAM,EAAE,CAAC,YAAY,IAAI;AACtD;AAEA,IAAM,IAAmB;CAAC;CAAM;CAAK;AAAM;AAE3C,eAAe,EACd,GACA,GACmB;CACnB,IAAI;EAEH,OADA,MAAM,GAAK,UAAU,QAAQ,GAAQ,CAAU,GACxC;CACR,QAAQ;EACP,OAAO;CACR;AACD;AAEA,eAAe,EAAW,GAAkC;CAC3D,KAAK,IAAM,KAAc,GAExB,IAAI,MADoB,EAAoB,GAAQ,CAAU,GAC/C,OAAO;CAEvB,OAAO;AACR;AAqBA,eAAe,EAAc,GAAoC;CAChE,IAAI,CAAC,KAAY,OAAO,KAAa,UAAU,OAAO;CACtD,IAAM,IAAQ,EAAS,KAAK;CAG5B,IADI,CAAC,EAAmB,CAAK,KACzB,CAAC,EAAsB,CAAK,GAAG,OAAO;CAE1C,IAAM,IAAS,EAAc,CAAK;CAGlC,OAFK,IAEE,MAAM,EAAW,CAAM,IAFV;AAGrB"}
@@ -0,0 +1,14 @@
1
+ //#region src/validations/validatePassword.ts
2
+ function e(e) {
3
+ return e ? [
4
+ e.length >= 8,
5
+ /[A-Z]/.test(e),
6
+ /[a-z]/.test(e),
7
+ /\d/.test(e),
8
+ /[!@#$%^&*(),.?":;{}|<>_\-+=~`[\]\\/]/.test(e)
9
+ ].every((e) => e) : !1;
10
+ }
11
+ //#endregion
12
+ export { e as validatePassword };
13
+
14
+ //# sourceMappingURL=validatePassword.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatePassword.js","names":[],"sources":["../../../src/validations/validatePassword.ts"],"sourcesContent":["/**\n * Validates a password based on the following rules:\n * - At least 8 characters\n * - At least 1 uppercase letter\n * - At least 1 letter (any case)\n * - At least 1 number\n * - At least 1 special character\n *\n * @param rawPassword - The password string to validate.\n * @returns `true` if the password meets all rules, otherwise `false`.\n *\n * @example\n * ```ts\n * validatePassword(\"Senha@123\"); // true\n * validatePassword(\"senha123\"); // false (no uppercase, no special char)\n * ```\n */\n\nfunction validatePassword(rawPassword: string): boolean {\n\tif (!rawPassword) return false;\n\n\tconst hasMinLength = rawPassword.length >= 8;\n\tconst hasUppercase = /[A-Z]/.test(rawPassword);\n\tconst hasLetter = /[a-z]/.test(rawPassword);\n\tconst hasNumber = /\\d/.test(rawPassword);\n\tconst hasSpecialChar = /[!@#$%^&*(),.?\":;{}|<>_\\-+=~`[\\]\\\\/]/.test(\n\t\trawPassword,\n\t);\n\n\treturn [\n\t\thasMinLength,\n\t\thasUppercase,\n\t\thasLetter,\n\t\thasNumber,\n\t\thasSpecialChar,\n\t].every((condition) => condition);\n}\n\nexport { validatePassword };\n"],"mappings":";AAkBA,SAAS,EAAiB,GAA8B;CAWvD,OAVK,IAUE;EARc,EAAY,UAAU;EACtB,QAAQ,KAAK,CASjC;EARiB,QAAQ,KAAK,CAS9B;EARiB,KAAK,KAAK,CAS3B;EARsB,uCAAuC,KAC7D,CAQA;CACD,CAAC,CAAC,OAAO,MAAc,CAAS,IAhBP;AAiB1B"}
@@ -0,0 +1,12 @@
1
+ import { countries as e } from "@arkyn/templates";
2
+ import { isValidPhoneNumber as t, parsePhoneNumberWithError as n } from "libphonenumber-js";
3
+ //#region src/validations/validatePhone.ts
4
+ function r(r) {
5
+ if (!t(r)) return !1;
6
+ let i = n(r)?.country;
7
+ return !(!i || !e.find((e) => e.iso === i));
8
+ }
9
+ //#endregion
10
+ export { r as validatePhone };
11
+
12
+ //# sourceMappingURL=validatePhone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validatePhone.js","names":[],"sources":["../../../src/validations/validatePhone.ts"],"sourcesContent":["import { countries } from \"@arkyn/templates\";\nimport {\n\tisValidPhoneNumber,\n\tparsePhoneNumberWithError,\n} from \"libphonenumber-js\";\n\n/**\n * Validates an international phone number using `libphonenumber-js`, then confirms\n * the parsed country code is present in the supported countries list.\n *\n * @param rawPhone - Phone number in E.164 format (e.g. `\"+5532912345678\"`).\n * @returns `true` if the number is valid and the country is supported, otherwise `false`.\n *\n * @example\n * ```typescript\n * validatePhone(\"+5532912345678\"); // true (Brazil)\n * validatePhone(\"+55329123456178\"); // false (invalid)\n * ```\n */\n\nfunction validatePhone(rawPhone: string): boolean {\n\tif (!isValidPhoneNumber(rawPhone)) return false;\n\n\tconst parsedPhone = parsePhoneNumberWithError(rawPhone);\n\n\tconst countryCode = parsedPhone?.country;\n\tif (!countryCode) return false;\n\n\tconst country = countries.find((c) => c.iso === countryCode);\n\tif (!country) return false;\n\n\treturn true;\n}\n\nexport { validatePhone };\n"],"mappings":";;;AAoBA,SAAS,EAAc,GAA2B;CACjD,IAAI,CAAC,EAAmB,CAAQ,GAAG,OAAO;CAI1C,IAAM,IAFc,EAA0B,CAE1B,CAAA,EAAa;CAMjC,OAFA,EAHI,CAAC,KAGD,CADY,EAAU,MAAM,MAAM,EAAE,QAAQ,CAC3C;AAGN"}
@@ -0,0 +1,10 @@
1
+ //#region src/validations/validateRg.ts
2
+ function e(e) {
3
+ if (!e || !/^[0-9a-zA-Z.-]+$/.test(e)) return !1;
4
+ let t = e.replace(/[^a-zA-Z0-9]/g, "");
5
+ return t.length < 7 || t.length > 9 ? !1 : /^[0-9]{7,8}[0-9Xx]?$/.test(t);
6
+ }
7
+ //#endregion
8
+ export { e as validateRg };
9
+
10
+ //# sourceMappingURL=validateRg.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateRg.js","names":[],"sources":["../../../src/validations/validateRg.ts"],"sourcesContent":["/**\n * Validates a Brazilian RG (Registro Geral) in a generic way.\n *\n * This function does a basic structure validation:\n * - Removes non-alphanumeric characters.\n * - Ensures length is reasonable (7–9 digits).\n * - Optionally allows for a final letter (verifier).\n *\n * @param rawRg - RG string, possibly formatted.\n * @returns `true` if format seems valid, otherwise `false`.\n *\n * @example\n * ```ts\n * validateRg(\"12.345.678-9\"); // true\n * validateRg(\"MG-12.345.678\"); // false (not supported)\n * validateRg(\"12345678X\"); // true\n * ```\n */\n\nfunction validateRg(rawRg: string): boolean {\n\tif (!rawRg) return false;\n\n\tconst validFormat = /^[0-9a-zA-Z.-]+$/.test(rawRg);\n\tif (!validFormat) return false;\n\n\tconst rg = rawRg.replace(/[^a-zA-Z0-9]/g, \"\");\n\n\tif (rg.length < 7 || rg.length > 9) return false;\n\n\tconst isValidFormat = /^[0-9]{7,8}[0-9Xx]?$/.test(rg);\n\n\treturn isValidFormat;\n}\n\nexport { validateRg };\n"],"mappings":";AAmBA,SAAS,EAAW,GAAwB;CAI3C,IAHI,CAAC,KAGD,CADgB,mBAAmB,KAAK,CACvC,GAAa,OAAO;CAEzB,IAAM,IAAK,EAAM,QAAQ,iBAAiB,EAAE;CAM5C,OAJI,EAAG,SAAS,KAAK,EAAG,SAAS,IAAU,KAErB,uBAAuB,KAAK,CAE3C;AACR"}
@@ -1,48 +1,47 @@
1
1
  type ApiServiceConstructorProps = {
2
+ /** Base URL prepended to every request path (e.g. `"https://api.example.com"`). */
2
3
  baseUrl: string;
4
+ /** Default headers merged into every request. */
3
5
  baseHeaders?: HeadersInit;
6
+ /** Default Bearer token; can be overridden per request via `data.token`. */
4
7
  baseToken?: string | null;
8
+ /** When `true`, logs each request and response to the console in development. */
5
9
  enableDebug?: boolean;
6
10
  };
7
11
  type ApiRequestDataWithoutBodyProps = {
8
12
  headers?: HeadersInit;
9
13
  token?: string;
14
+ urlParams?: Record<string, string>;
10
15
  };
11
16
  type ApiRequestDataWithBodyProps = {
12
17
  body?: any;
13
18
  headers?: HeadersInit;
14
19
  token?: string;
20
+ urlParams?: Record<string, string>;
15
21
  };
16
22
  /**
17
- * Class representing an API instance to handle HTTP requests with base configurations.
23
+ * HTTP client for external API calls. Wraps fetch with base URL, default headers, optional auth token,
24
+ * and per-request overrides for all standard HTTP methods.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const api = new ApiService({
29
+ * baseUrl: "https://api.example.com",
30
+ * baseToken: session.token,
31
+ * enableDebug: true,
32
+ * });
33
+ *
34
+ * const { data } = await api.get("/users/me");
35
+ * const { data: created } = await api.post("/orders", { body: { productId: 1 } });
36
+ * ```
18
37
  */
19
38
  declare class ApiService {
20
39
  private baseUrl;
21
40
  private baseHeaders?;
22
41
  private baseToken?;
23
42
  private enableDebug?;
24
- /**
25
- * Creates an instance of ApiService.
26
- * @param props - The configuration properties for the API instance.
27
- * @param props.baseUrl - The base URL for the API.
28
- * @param props.baseHeaders - Optional base headers to include in all requests.
29
- * @param props.baseToken - Optional base token for authorization.
30
- * @param props.enableDebug - Optional flag to enable debug logging for requests.
31
- */
32
43
  constructor(props: ApiServiceConstructorProps);
33
- /**
34
- * Generates the full URL by appending the route to the base URL.
35
- * @param route - The route to append to the base URL.
36
- * @returns The full URL as a string.
37
- */
38
44
  private onDebug;
39
- private generateURL;
40
- /**
41
- * Generates the headers for a request by merging base headers, provided headers, and tokens.
42
- * @param initHeaders - Initial headers to include in the request.
43
- * @param token - Optional token to override the base token.
44
- * @returns The merged headers as a HeadersInit object.
45
- */
46
45
  private generateHeaders;
47
46
  /**
48
47
  * Sends a get request to the specified endpoint.
@@ -50,35 +49,35 @@ declare class ApiService {
50
49
  * @param data - The request data, including optional headers and token.
51
50
  * @returns The API response data.
52
51
  */
53
- get(endpoint: string, data?: ApiRequestDataWithoutBodyProps): Promise<import("../types/ApiResponseDTO").ApiResponseDTO<any>>;
52
+ get(endpoint: string, data?: ApiRequestDataWithoutBodyProps): Promise<import("../http/api/_makeRequest").ApiResponseDTO<any>>;
54
53
  /**
55
54
  * Sends a post request to the specified endpoint.
56
55
  * @param endpoint - The API endpoint to send the post request to.
57
56
  * @param data - The request data, including body, optional headers, and token.
58
57
  * @returns The API response data.
59
58
  */
60
- post(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../types/ApiResponseDTO").ApiResponseDTO<any>>;
59
+ post(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../http/api/_makeRequest").ApiResponseDTO<any>>;
61
60
  /**
62
61
  * Sends a put request to the specified endpoint.
63
62
  * @param endpoint - The API endpoint to send the put request to.
64
63
  * @param data - The request data, including body, optional headers, and token.
65
64
  * @returns The API response data.
66
65
  */
67
- put(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../types/ApiResponseDTO").ApiResponseDTO<any>>;
66
+ put(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../http/api/_makeRequest").ApiResponseDTO<any>>;
68
67
  /**
69
68
  * Sends a patch request to the specified endpoint.
70
69
  * @param endpoint - The API endpoint to send the patch request to.
71
70
  * @param data - The request data, including body, optional headers, and token.
72
71
  * @returns The API response data.
73
72
  */
74
- patch(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../types/ApiResponseDTO").ApiResponseDTO<any>>;
73
+ patch(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../http/api/_makeRequest").ApiResponseDTO<any>>;
75
74
  /**
76
75
  * Sends a delete request to the specified endpoint.
77
76
  * @param endpoint - The API endpoint to send the delete request to.
78
77
  * @param data - The request data, including body, optional headers, and token.
79
78
  * @returns The API response data.
80
79
  */
81
- delete(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../types/ApiResponseDTO").ApiResponseDTO<any>>;
80
+ delete(endpoint: string, data?: ApiRequestDataWithBodyProps): Promise<import("../http/api/_makeRequest").ApiResponseDTO<any>>;
82
81
  }
83
82
  export { ApiService };
84
83
  //# sourceMappingURL=apiService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apiService.d.ts","sourceRoot":"","sources":["../../src/services/apiService.ts"],"names":[],"mappings":"AAOA,KAAK,0BAA0B,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACpC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AAEH,cAAM,UAAU;IACd,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAU;IAE9B;;;;;;;OAOG;gBAES,KAAK,EAAE,0BAA0B;IAO7C;;;;OAIG;IAEH,OAAO,CAAC,OAAO;IAcf,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IAEH,OAAO,CAAC,eAAe;IAcvB;;;;;OAKG;IAEG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,8BAA8B;IAQjE;;;;;OAKG;IAEG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAS/D;;;;;OAKG;IAEG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAS9D;;;;;OAKG;IAEG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAShE;;;;;OAKG;IAEG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;CAQlE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"apiService.d.ts","sourceRoot":"","sources":["../../src/services/apiService.ts"],"names":[],"mappings":"AAOA,KAAK,0BAA0B,GAAG;IACjC,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iFAAiF;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,KAAK,8BAA8B,GAAG;IACrC,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAEF,KAAK,2BAA2B,GAAG;IAElC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC,CAAC;AAUF;;;;;;;;;;;;;;;GAeG;AACH,cAAM,UAAU;IACf,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAc;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAC3B,OAAO,CAAC,WAAW,CAAC,CAAU;gBAElB,KAAK,EAAE,0BAA0B;IAO7C,OAAO,CAAC,OAAO;IAiBf,OAAO,CAAC,eAAe;IAcvB;;;;;OAKG;IAEG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,8BAA8B;IAkBjE;;;;;OAKG;IAEG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAqB/D;;;;;OAKG;IAEG,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAqB9D;;;;;OAKG;IAEG,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;IAqBhE;;;;;OAKG;IAEG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,2BAA2B;CAoBjE;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,17 +1,11 @@
1
1
  /**
2
- * Service for managing HTTP debug configuration and behavior.
3
- *
4
- * This service provides functionality to configure how the `getCaller` function
5
- * identifies the actual caller in the stack trace by allowing specific files
6
- * to be ignored during stack trace analysis.
2
+ * Manages stack-trace configuration for debug output, allowing specific adapter/wrapper files
3
+ * to be skipped so logs show the actual business-logic caller.
7
4
  *
8
5
  * @example
9
6
  * ```typescript
10
- * // Configure to ignore httpAdapter.ts in stack traces
11
- * HttpDebugService.setIgnoreFile("httpAdapter.ts");
12
- *
13
- * // Now when httpDebug is called from within httpAdapter.ts,
14
- * // it will show the actual caller (e.g., cart.ts) instead
7
+ * // Skip httpAdapter.ts so debug output shows the calling route instead
8
+ * DebugService.setIgnoreFile("httpAdapter.ts");
15
9
  * ```
16
10
  */
17
11
  declare class DebugService {
@@ -21,34 +15,23 @@ declare class DebugService {
21
15
  */
22
16
  static ignoreFiles: string[];
23
17
  /**
24
- * Sets the file name to be ignored during stack trace analysis.
25
- *
26
- * This method configures the debug service to skip specific files when
27
- * determining the actual caller of a function. This is useful when you have
28
- * adapter or wrapper functions that you want to be transparent in the debug output.
29
- *
30
- * @param file - The name of the file to ignore in stack traces (e.g., "httpAdapter.ts")
18
+ * Adds a file name to the ignore list so it is skipped when resolving the caller in stack traces.
31
19
  *
32
- * @example
33
- * ```typescript
34
- * // Ignore the HTTP adapter file so debug shows the actual business logic caller
35
- * DebugService.setIgnoreFile("httpAdapter.ts");
36
- * ```
20
+ * @param file - File name to ignore (e.g. `"httpAdapter.ts"`).
37
21
  */
38
22
  static setIgnoreFile(file: string): void;
23
+ /** Resets the ignore list, restoring full stack trace analysis. */
24
+ static clearIgnoreFiles(): void;
39
25
  /**
40
- * Clears all configured ignore files.
41
- *
42
- * This method resets the ignore file configuration, allowing all files to be
43
- * considered in stack trace analysis again.
26
+ * Resolves the file path and function name of the code that triggered the current debug call,
27
+ * skipping internal node modules and any files registered with `setIgnoreFile`.
44
28
  *
45
- * @example
46
- * ```typescript
47
- * // Clear all ignore file configurations
48
- * DebugService.clearIgnoreFiles();
49
- * ```
29
+ * @returns `{ functionName, callerInfo }` — caller function name and file path relative to `process.cwd()`.
50
30
  */
51
- static clearIgnoreFiles(): void;
31
+ static getCaller(): {
32
+ functionName: string;
33
+ callerInfo: string;
34
+ };
52
35
  }
53
36
  export { DebugService };
54
37
  //# sourceMappingURL=debugService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"debugService.d.ts","sourceRoot":"","sources":["../../src/services/debugService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAM,YAAY;IAChB;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAElC;;;;;;;;;;;;;;OAcG;IAEH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM;IAIjC;;;;;;;;;;;OAWG;IAEH,MAAM,CAAC,gBAAgB;CAGxB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"debugService.d.ts","sourceRoot":"","sources":["../../src/services/debugService.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,cAAM,YAAY;IACjB;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IAElC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIxC,mEAAmE;IACnE,MAAM,CAAC,gBAAgB,IAAI,IAAI;IAI/B;;;;;OAKG;IACH,MAAM,CAAC,SAAS;;;;CAgEhB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Static service for log endpoint configuration and access.
3
+ *
4
+ * Stores a singleton configuration containing the traffic source identifier,
5
+ * user token, and log ingestion URL.
6
+ */
7
+ declare class LogService {
8
+ private static config?;
9
+ /**
10
+ * Sets the log service configuration once. Subsequent calls are ignored.
11
+ *
12
+ * @param config.trafficSourceId - Traffic source identifier.
13
+ * @param config.userToken - User token for authentication.
14
+ * @param config.logBaseApiUrl - Override the default log ingestion base URL.
15
+ */
16
+ static setConfig(config: {
17
+ trafficSourceId: string;
18
+ userToken: string;
19
+ logBaseApiUrl?: string;
20
+ }): void;
21
+ /** Returns the stored configuration, or `undefined` if `setConfig` has not been called. */
22
+ static getConfig(): {
23
+ trafficSourceId: string;
24
+ userToken: string;
25
+ apiUrl: string;
26
+ } | undefined;
27
+ /**
28
+ * Resets the stored configuration, allowing a new initialization.
29
+ */
30
+ static resetConfig(): void;
31
+ }
32
+ export { LogService };
33
+ //# sourceMappingURL=logService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logService.d.ts","sourceRoot":"","sources":["../../src/services/logService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,cAAM,UAAU;IACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAIpB;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE;QACxB,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,IAAI;IAUR,2FAA2F;IAC3F,MAAM,CAAC,SAAS,IACb;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAC9D,SAAS;IAIZ;;OAEG;IACH,MAAM,CAAC,WAAW;CAGlB;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Decodes a request body into a plain object, trying JSON first then URL-encoded form data.
3
+ * Throws `BadRequest` if neither format can be parsed.
4
+ *
5
+ * @param request - The incoming request whose body will be decoded.
6
+ * @returns The decoded body as a plain object.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * export async function action({ request }: ActionFunctionArgs) {
11
+ * const body = await decodeRequestBody(request);
12
+ * // body is now a plain JS object
13
+ * }
14
+ * ```
15
+ */
16
+ declare function decodeRequestBody(request: Request): Promise<any>;
17
+ export { decodeRequestBody };
18
+ //# sourceMappingURL=decodeRequestBody.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decodeRequestBody.d.ts","sourceRoot":"","sources":["../../src/utilities/decodeRequestBody.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAGH,iBAAe,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAuB/D;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Extracts a human-readable error message from an API response body or a `Response` object.
3
+ * Checks `data.message`, `data.operator_erro_message`, `data.error`, `data.error.message`,
4
+ * and `response.statusText` in that order. Falls back to `"Missing error message"`.
5
+ *
6
+ * @param data - Parsed response body that may contain error info.
7
+ * @param response - The raw `Response` object, used as a fallback for `statusText`.
8
+ * @returns The first non-empty string error message found.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const res = await fetch("/api/orders");
13
+ * const data = await res.json().catch(() => null);
14
+ * const message = decodeRequestErrorMessage(data, res);
15
+ * ```
16
+ */
17
+ declare function decodeRequestErrorMessage(data: any, response: Response): string;
18
+ export { decodeRequestErrorMessage };
19
+ //# sourceMappingURL=decodeRequestErrorMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decodeRequestErrorMessage.d.ts","sourceRoot":"","sources":["../../src/utilities/decodeRequestErrorMessage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,iBAAS,yBAAyB,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAyBxE;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Converts any thrown value into a `Response`. Recognizes all `@arkyn/server` success and error
3
+ * response classes, native `Response` objects, and falls back to a 500 `ServerError` for anything else.
4
+ *
5
+ * Intended to be used as the catch handler of a route action or loader:
6
+ *
7
+ * @param error - The thrown value to convert.
8
+ * @returns A `Response` with the appropriate HTTP status, headers, and JSON body.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * export async function action({ request }: ActionFunctionArgs) {
13
+ * try {
14
+ * const user = await findUser(id);
15
+ * if (!user) throw new NotFound("User not found");
16
+ * return new Success("User retrieved", { user }).toJson();
17
+ * } catch (error) {
18
+ * return errorHandler(error);
19
+ * }
20
+ * }
21
+ * ```
22
+ */
23
+ declare function errorHandler(error: any): Response;
24
+ export { errorHandler };
25
+ //# sourceMappingURL=errorHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../src/utilities/errorHandler.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,iBAAS,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,QAAQ,CAsC1C;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Writes colored `[name] message` lines to the console, but only when
3
+ * `NODE_ENV === "development"` or `DEBUG_MODE === "true"`. No-op in production.
4
+ *
5
+ * @param props.name - Label shown before each line (e.g. `"API"`, `"Auth"`).
6
+ * @param props.scheme - Color of the label tag: `"cyan"` info, `"green"` success, `"yellow"` warning, `"red"` error.
7
+ * @param props.debugs - Lines of text to print, one per console entry.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * flushDebugLogs({
12
+ * name: "API",
13
+ * scheme: "cyan",
14
+ * debugs: ["POST /api/users", "Status: 201"],
15
+ * });
16
+ * ```
17
+ */
18
+ declare function flushDebugLogs(props: {
19
+ scheme: "yellow" | "cyan" | "red" | "green";
20
+ name: string;
21
+ debugs: string[];
22
+ }): void;
23
+ export { flushDebugLogs };
24
+ //# sourceMappingURL=flushDebugLogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flushDebugLogs.d.ts","sourceRoot":"","sources":["../../src/utilities/flushDebugLogs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAS,cAAc,CAAC,KAAK,EAAE;IAC9B,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;CACjB,GAAG,IAAI,CAyBP;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ZodType } from "zod";
2
+ type SuccessResponse<T extends FormParseProps> = {
3
+ success: true;
4
+ data: T[1] extends ZodType<infer U> ? U : never;
5
+ };
6
+ type ErrorResponse = {
7
+ success: false;
8
+ fields: {
9
+ [x: string]: string;
10
+ };
11
+ fieldErrors: {
12
+ [x: string]: string;
13
+ };
14
+ };
15
+ type FormParseProps = [formData: {
16
+ [k: string]: any;
17
+ }, schema: ZodType];
18
+ type FormParseReturnType<T extends FormParseProps> = SuccessResponse<T> | ErrorResponse;
19
+ /**
20
+ * Async variant of `formParse` — uses `safeParseAsync` to support Zod schemas with async refinements.
21
+ * Returns `{ success: true, data }` on success or `{ success: false, fieldErrors, fields }` on failure.
22
+ *
23
+ * @param formData - The raw form data object to validate.
24
+ * @param schema - The Zod schema to validate against.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const schema = z.object({ email: z.string().email() });
29
+ * const result = await formAsyncParse([{ email: "bad" }, schema]);
30
+ *
31
+ * if (!result.success) {
32
+ * console.log(result.fieldErrors); // { email: "Invalid email" }
33
+ * }
34
+ * ```
35
+ */
36
+ declare function formAsyncParse<T extends FormParseProps>([formData, schema,]: T): Promise<FormParseReturnType<T>>;
37
+ export { formAsyncParse };
38
+ //# sourceMappingURL=formAsyncParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formAsyncParse.d.ts","sourceRoot":"","sources":["../../src/utilities/formAsyncParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,KAAK,eAAe,CAAC,CAAC,SAAS,cAAc,IAAI;IAChD,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CAChD,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,WAAW,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACrC,CAAC;AAGF,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAExE,KAAK,mBAAmB,CAAC,CAAC,SAAS,cAAc,IAC9C,eAAe,CAAC,CAAC,CAAC,GAClB,aAAa,CAAC;AAEjB;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAe,cAAc,CAAC,CAAC,SAAS,cAAc,EAAE,CACvD,QAAQ,EACR,MAAM,EACN,EAAE,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAqBrC;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { ZodType } from "zod";
2
+ type SuccessResponse<T extends FormParseProps> = {
3
+ success: true;
4
+ data: T[1] extends ZodType<infer U> ? U : never;
5
+ };
6
+ type ErrorResponse = {
7
+ success: false;
8
+ fields: {
9
+ [x: string]: string;
10
+ };
11
+ fieldErrors: {
12
+ [x: string]: string;
13
+ };
14
+ };
15
+ type FormParseProps = [formData: {
16
+ [k: string]: any;
17
+ }, schema: ZodType];
18
+ type FormParseReturnType<T extends FormParseProps> = SuccessResponse<T> | ErrorResponse;
19
+ /**
20
+ * Validates form data against a Zod schema synchronously.
21
+ * Returns `{ success: true, data }` on success or `{ success: false, fieldErrors, fields }` on failure.
22
+ *
23
+ * @param formData - The raw form data object to validate.
24
+ * @param schema - The Zod schema to validate against.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const schema = z.object({ name: z.string().min(1, "Required"), age: z.number().min(18) });
29
+ * const result = formParse([{ name: "", age: 15 }, schema]);
30
+ *
31
+ * if (!result.success) {
32
+ * console.log(result.fieldErrors); // { name: "Required", age: "..." }
33
+ * }
34
+ * ```
35
+ */
36
+ declare function formParse<T extends FormParseProps>([formData, schema,]: T): FormParseReturnType<T>;
37
+ export { formParse };
38
+ //# sourceMappingURL=formParse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formParse.d.ts","sourceRoot":"","sources":["../../src/utilities/formParse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,KAAK,eAAe,CAAC,CAAC,SAAS,cAAc,IAAI;IAChD,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;CAChD,CAAC;AAEF,KAAK,aAAa,GAAG;IACpB,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAChC,WAAW,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CACrC,CAAC;AAGF,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAExE,KAAK,mBAAmB,CAAC,CAAC,SAAS,cAAc,IAC9C,eAAe,CAAC,CAAC,CAAC,GAClB,aAAa,CAAC;AAEjB;;;;;;;;;;;;;;;;GAgBG;AAEH,iBAAS,SAAS,CAAC,CAAC,SAAS,cAAc,EAAE,CAC5C,QAAQ,EACR,MAAM,EACN,EAAE,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAqB5B;AAED,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Extracts URL search parameters from a request, optionally filtered by a namespace prefix
3
+ * (e.g. `scope:key` → `key`). Without a scope, returns all search params as-is.
4
+ *
5
+ * @param request - The incoming request whose URL will be parsed.
6
+ * @param scope - Namespace prefix to filter by (e.g. `"table"` matches `table:page`, `table:sort`).
7
+ * @returns A `URLSearchParams` object with the matching params, stripped of the scope prefix.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // URL: /products?table:page=2&table:sort=asc&other=1
12
+ * const params = getScopedParams(request, "table");
13
+ * params.get("page"); // "2"
14
+ * params.get("sort"); // "asc"
15
+ * ```
16
+ */
17
+ declare function getScopedParams(request: Request, scope?: string): URLSearchParams;
18
+ export { getScopedParams };
19
+ //# sourceMappingURL=getScopedParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getScopedParams.d.ts","sourceRoot":"","sources":["../../src/utilities/getScopedParams.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,GAAE,MAAW,mBAW5D;AAED,OAAO,EAAE,eAAe,EAAE,CAAC"}