arkos 1.0.10-rc.1 → 1.0.11-beta

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 (212) hide show
  1. package/README.md +21 -183
  2. package/dist/cjs/app.js +1 -1
  3. package/dist/cjs/app.js.map +1 -1
  4. package/dist/cjs/exports/auth/index.js.map +1 -1
  5. package/dist/cjs/exports/index.js +3 -0
  6. package/dist/cjs/exports/index.js.map +1 -1
  7. package/dist/cjs/exports/prisma/index.js +3 -0
  8. package/dist/cjs/exports/prisma/index.js.map +1 -1
  9. package/dist/cjs/exports/services/index.js +4 -6
  10. package/dist/cjs/exports/services/index.js.map +1 -1
  11. package/dist/cjs/exports/utils/index.js +15 -3
  12. package/dist/cjs/exports/utils/index.js.map +1 -1
  13. package/dist/cjs/exports/validation/index.js +3 -1
  14. package/dist/cjs/exports/validation/index.js.map +1 -1
  15. package/dist/cjs/modules/auth/auth.controller.js +40 -197
  16. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  17. package/dist/cjs/modules/auth/auth.router.js +28 -30
  18. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  19. package/dist/cjs/modules/auth/auth.service.js +44 -22
  20. package/dist/cjs/modules/auth/auth.service.js.map +1 -1
  21. package/dist/cjs/modules/auth/utils/helpers/auth.helpers.js +19 -0
  22. package/dist/cjs/modules/auth/utils/helpers/auth.helpers.js.map +1 -0
  23. package/dist/cjs/modules/base/base.controller.js +108 -106
  24. package/dist/cjs/modules/base/base.controller.js.map +1 -1
  25. package/dist/cjs/modules/base/base.router.js +74 -61
  26. package/dist/cjs/modules/base/base.router.js.map +1 -1
  27. package/dist/cjs/modules/base/base.service.js +27 -35
  28. package/dist/cjs/modules/base/base.service.js.map +1 -1
  29. package/dist/cjs/modules/base/utils/helpers/base.helpers.js +183 -0
  30. package/dist/cjs/modules/base/utils/helpers/base.helpers.js.map +1 -0
  31. package/dist/cjs/modules/email/email.service.js +68 -13
  32. package/dist/cjs/modules/email/email.service.js.map +1 -1
  33. package/dist/cjs/modules/error-handler/error-handler.controller.js +5 -8
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js.map +1 -1
  35. package/dist/cjs/modules/error-handler/utils/catch-async.js +16 -5
  36. package/dist/cjs/modules/error-handler/utils/catch-async.js.map +1 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +30 -30
  38. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  39. package/dist/cjs/modules/file-uploader/file-uploader.controller.js +66 -69
  40. package/dist/cjs/modules/file-uploader/file-uploader.controller.js.map +1 -1
  41. package/dist/cjs/modules/file-uploader/file-uploader.router.js +30 -15
  42. package/dist/cjs/modules/file-uploader/file-uploader.router.js.map +1 -1
  43. package/dist/cjs/modules/file-uploader/file-uploader.service.js +214 -31
  44. package/dist/cjs/modules/file-uploader/file-uploader.service.js.map +1 -1
  45. package/dist/cjs/modules/file-uploader/utils/helpers/file-uploader.helpers.js +98 -0
  46. package/dist/cjs/modules/file-uploader/utils/helpers/file-uploader.helpers.js.map +1 -0
  47. package/dist/cjs/scripts/create-test.js +34 -0
  48. package/dist/cjs/scripts/create-test.js.map +1 -0
  49. package/dist/cjs/server.js +1 -1
  50. package/dist/cjs/server.js.map +1 -1
  51. package/dist/cjs/types/arkos-config.js +3 -0
  52. package/dist/cjs/types/arkos-config.js.map +1 -0
  53. package/dist/cjs/types/auth.js +3 -0
  54. package/dist/cjs/types/auth.js.map +1 -0
  55. package/dist/cjs/types/index.js +11 -0
  56. package/dist/cjs/types/index.js.map +1 -0
  57. package/dist/cjs/types/prisma-model-router-config.js +3 -0
  58. package/dist/cjs/types/prisma-model-router-config.js.map +1 -0
  59. package/dist/cjs/utils/features/api.features.js +5 -5
  60. package/dist/cjs/utils/features/api.features.js.map +1 -1
  61. package/dist/cjs/utils/features/change-case.features.js +67 -0
  62. package/dist/cjs/utils/features/change-case.features.js.map +1 -0
  63. package/dist/cjs/utils/helpers/api.features.helpers.js +26 -27
  64. package/dist/cjs/utils/helpers/api.features.helpers.js.map +1 -1
  65. package/dist/cjs/utils/helpers/base.controller.helpers.js +40 -0
  66. package/dist/cjs/utils/helpers/base.controller.helpers.js.map +1 -0
  67. package/dist/cjs/utils/helpers/change-case.helpers.js +185 -0
  68. package/dist/cjs/utils/helpers/change-case.helpers.js.map +1 -0
  69. package/dist/cjs/utils/helpers/deepmerge.helper.js +119 -0
  70. package/dist/cjs/utils/helpers/deepmerge.helper.js.map +1 -0
  71. package/dist/cjs/utils/helpers/global.helpers.js +51 -0
  72. package/dist/cjs/utils/helpers/global.helpers.js.map +1 -0
  73. package/dist/cjs/utils/helpers/models.helpers.js +103 -26
  74. package/dist/cjs/utils/helpers/models.helpers.js.map +1 -1
  75. package/dist/cjs/utils/helpers/prisma.helpers.js +27 -50
  76. package/dist/cjs/utils/helpers/prisma.helpers.js.map +1 -1
  77. package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -0
  78. package/dist/cjs/utils/helpers/query-parser.helpers.js.map +1 -0
  79. package/dist/cjs/utils/helpers/text.helpers.js +16 -0
  80. package/dist/cjs/utils/helpers/text.helpers.js.map +1 -1
  81. package/dist/cjs/utils/validate-dto.js +3 -7
  82. package/dist/cjs/utils/validate-dto.js.map +1 -1
  83. package/dist/cjs/utils/validate-schema.js +26 -0
  84. package/dist/cjs/utils/validate-schema.js.map +1 -0
  85. package/dist/es2020/app.js +1 -1
  86. package/dist/es2020/app.js.map +1 -1
  87. package/dist/es2020/exports/auth/index.js.map +1 -1
  88. package/dist/es2020/exports/index.js +2 -0
  89. package/dist/es2020/exports/index.js.map +1 -1
  90. package/dist/es2020/exports/prisma/index.js +2 -1
  91. package/dist/es2020/exports/prisma/index.js.map +1 -1
  92. package/dist/es2020/exports/services/index.js +2 -2
  93. package/dist/es2020/exports/services/index.js.map +1 -1
  94. package/dist/es2020/exports/utils/index.js +1 -2
  95. package/dist/es2020/exports/utils/index.js.map +1 -1
  96. package/dist/es2020/exports/validation/index.js +2 -1
  97. package/dist/es2020/exports/validation/index.js.map +1 -1
  98. package/dist/es2020/modules/auth/auth.controller.js +40 -197
  99. package/dist/es2020/modules/auth/auth.controller.js.map +1 -1
  100. package/dist/es2020/modules/auth/auth.router.js +27 -30
  101. package/dist/es2020/modules/auth/auth.router.js.map +1 -1
  102. package/dist/es2020/modules/auth/auth.service.js +45 -23
  103. package/dist/es2020/modules/auth/auth.service.js.map +1 -1
  104. package/dist/es2020/modules/auth/utils/helpers/auth.helpers.js +12 -0
  105. package/dist/es2020/modules/auth/utils/helpers/auth.helpers.js.map +1 -0
  106. package/dist/es2020/modules/base/base.controller.js +107 -105
  107. package/dist/es2020/modules/base/base.controller.js.map +1 -1
  108. package/dist/es2020/modules/base/base.router.js +73 -62
  109. package/dist/es2020/modules/base/base.router.js.map +1 -1
  110. package/dist/es2020/modules/base/base.service.js +11 -19
  111. package/dist/es2020/modules/base/base.service.js.map +1 -1
  112. package/dist/es2020/modules/base/utils/helpers/base.helpers.js +177 -0
  113. package/dist/es2020/modules/base/utils/helpers/base.helpers.js.map +1 -0
  114. package/dist/es2020/modules/email/email.service.js +68 -13
  115. package/dist/es2020/modules/email/email.service.js.map +1 -1
  116. package/dist/es2020/modules/error-handler/error-handler.controller.js +2 -8
  117. package/dist/es2020/modules/error-handler/error-handler.controller.js.map +1 -1
  118. package/dist/es2020/modules/error-handler/utils/catch-async.js +15 -4
  119. package/dist/es2020/modules/error-handler/utils/catch-async.js.map +1 -1
  120. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js +31 -31
  121. package/dist/es2020/modules/error-handler/utils/error-handler.helpers.js.map +1 -1
  122. package/dist/es2020/modules/file-uploader/file-uploader.controller.js +62 -65
  123. package/dist/es2020/modules/file-uploader/file-uploader.controller.js.map +1 -1
  124. package/dist/es2020/modules/file-uploader/file-uploader.router.js +29 -14
  125. package/dist/es2020/modules/file-uploader/file-uploader.router.js.map +1 -1
  126. package/dist/es2020/modules/file-uploader/file-uploader.service.js +212 -27
  127. package/dist/es2020/modules/file-uploader/file-uploader.service.js.map +1 -1
  128. package/dist/es2020/modules/file-uploader/utils/helpers/file-uploader.helpers.js +89 -0
  129. package/dist/es2020/modules/file-uploader/utils/helpers/file-uploader.helpers.js.map +1 -0
  130. package/dist/es2020/scripts/create-test.js +29 -0
  131. package/dist/es2020/scripts/create-test.js.map +1 -0
  132. package/dist/es2020/server.js +1 -1
  133. package/dist/es2020/server.js.map +1 -1
  134. package/dist/es2020/types/arkos-config.js +2 -0
  135. package/dist/es2020/types/arkos-config.js.map +1 -0
  136. package/dist/es2020/types/auth.js +2 -0
  137. package/dist/es2020/types/auth.js.map +1 -0
  138. package/dist/es2020/types/index.js +8 -0
  139. package/dist/es2020/types/index.js.map +1 -0
  140. package/dist/es2020/types/prisma-model-router-config.js +2 -0
  141. package/dist/es2020/types/prisma-model-router-config.js.map +1 -0
  142. package/dist/es2020/utils/features/api.features.js +1 -1
  143. package/dist/es2020/utils/features/api.features.js.map +1 -1
  144. package/dist/es2020/utils/features/change-case.features.js +31 -0
  145. package/dist/es2020/utils/features/change-case.features.js.map +1 -0
  146. package/dist/es2020/utils/helpers/api.features.helpers.js +26 -27
  147. package/dist/es2020/utils/helpers/api.features.helpers.js.map +1 -1
  148. package/dist/es2020/utils/helpers/base.controller.helpers.js +34 -0
  149. package/dist/es2020/utils/helpers/base.controller.helpers.js.map +1 -0
  150. package/dist/es2020/utils/helpers/change-case.helpers.js +169 -0
  151. package/dist/es2020/utils/helpers/change-case.helpers.js.map +1 -0
  152. package/dist/es2020/utils/helpers/deepmerge.helper.js +117 -0
  153. package/dist/es2020/utils/helpers/deepmerge.helper.js.map +1 -0
  154. package/dist/es2020/utils/helpers/global.helpers.js +15 -0
  155. package/dist/es2020/utils/helpers/global.helpers.js.map +1 -0
  156. package/dist/es2020/utils/helpers/models.helpers.js +96 -20
  157. package/dist/es2020/utils/helpers/models.helpers.js.map +1 -1
  158. package/dist/es2020/utils/helpers/prisma.helpers.js +23 -13
  159. package/dist/es2020/utils/helpers/prisma.helpers.js.map +1 -1
  160. package/dist/es2020/utils/helpers/query-parser.helpers.js +40 -0
  161. package/dist/es2020/utils/helpers/query-parser.helpers.js.map +1 -0
  162. package/dist/es2020/utils/helpers/text.helpers.js +13 -0
  163. package/dist/es2020/utils/helpers/text.helpers.js.map +1 -1
  164. package/dist/es2020/utils/validate-dto.js +3 -7
  165. package/dist/es2020/utils/validate-dto.js.map +1 -1
  166. package/dist/es2020/utils/validate-schema.js +20 -0
  167. package/dist/es2020/utils/validate-schema.js.map +1 -0
  168. package/dist/types/app.d.ts +2 -18
  169. package/dist/types/exports/auth/index.d.ts +1 -1
  170. package/dist/types/exports/index.d.ts +5 -0
  171. package/dist/types/exports/prisma/index.d.ts +3 -2
  172. package/dist/types/exports/services/index.d.ts +2 -2
  173. package/dist/types/exports/utils/index.d.ts +1 -2
  174. package/dist/types/exports/validation/index.d.ts +2 -1
  175. package/dist/types/modules/auth/auth.controller.d.ts +7 -17
  176. package/dist/types/modules/auth/auth.router.d.ts +2 -2
  177. package/dist/types/modules/auth/auth.service.d.ts +7 -6
  178. package/dist/types/modules/auth/utils/helpers/auth.helpers.d.ts +2 -0
  179. package/dist/types/modules/base/base.controller.d.ts +17 -13
  180. package/dist/types/modules/base/base.router.d.ts +2 -2
  181. package/dist/types/modules/base/utils/helpers/base.helpers.d.ts +5 -0
  182. package/dist/types/modules/email/email.service.d.ts +20 -5
  183. package/dist/types/modules/error-handler/utils/catch-async.d.ts +2 -2
  184. package/dist/types/modules/error-handler/utils/error-handler.helpers.d.ts +1 -1
  185. package/dist/types/modules/file-uploader/file-uploader.controller.d.ts +3 -4
  186. package/dist/types/modules/file-uploader/file-uploader.router.d.ts +2 -2
  187. package/dist/types/modules/file-uploader/file-uploader.service.d.ts +22 -11
  188. package/dist/types/modules/file-uploader/utils/helpers/file-uploader.helpers.d.ts +7 -0
  189. package/dist/types/scripts/create-test.d.ts +1 -0
  190. package/dist/types/server.d.ts +3 -3
  191. package/dist/types/types/arkos-config.d.ts +107 -0
  192. package/dist/types/types/auth.d.ts +16 -0
  193. package/dist/types/types/index.d.ts +71 -0
  194. package/dist/types/types/prisma-model-router-config.d.ts +18 -0
  195. package/dist/types/utils/features/change-case.features.d.ts +12 -0
  196. package/dist/types/utils/helpers/api.features.helpers.d.ts +1 -1
  197. package/dist/types/utils/helpers/base.controller.helpers.d.ts +2 -0
  198. package/dist/types/utils/helpers/change-case.helpers.d.ts +26 -0
  199. package/dist/types/utils/helpers/deepmerge.helper.d.ts +19 -0
  200. package/dist/types/utils/helpers/global.helpers.d.ts +1 -0
  201. package/dist/types/utils/helpers/models.helpers.d.ts +23 -9
  202. package/dist/types/utils/helpers/prisma.helpers.d.ts +3 -3
  203. package/dist/types/utils/helpers/query-parser.helpers.d.ts +11 -0
  204. package/dist/types/utils/helpers/text.helpers.d.ts +3 -0
  205. package/dist/types/utils/validate-dto.d.ts +0 -4
  206. package/dist/types/utils/validate-schema.d.ts +2 -0
  207. package/package.json +27 -17
  208. package/dist/cjs/modules/base/utils/base.helpers.js +0 -90
  209. package/dist/cjs/modules/base/utils/base.helpers.js.map +0 -1
  210. package/dist/es2020/modules/base/utils/base.helpers.js +0 -87
  211. package/dist/es2020/modules/base/utils/base.helpers.js.map +0 -1
  212. package/dist/types/modules/base/utils/base.helpers.d.ts +0 -4
package/README.md CHANGED
@@ -1,199 +1,37 @@
1
- ![Header Image](https://lh3.googleusercontent.com/fife/ALs6j_FI9nS50W4dcqqGJhLerYqqQEQwEGzDFpgm9jvfg4zFzOxdMmBt4jXnQ02DXtqbSmeBQOx_cgDwUUluVCmnX4Yd5oxeNsZSBZ-xNZTm1VocSsJKc6OXGZXGKZ9wvxvaW1XdSKuxCtbsvI5Tuuu1l5sfXGmkxpo3l3FnS6BBOMqBjhQefSLR72NU6_QNpNpY9zPMepHBjRZ6R3VyES8oJw_P6lbJzKJu5ENZ-Z6I__0tuFpSed78fWWGI7mjoMhr9vM08jn66pYl9mGucQvV2_46CCCXtaRp7PskIx8fljmEjsYVhwr2Mmaa_wr_5YBaS8L72ah5C_5pLwvhXuez9hZI8JR8oEA2GKNwxCEnA66B8j6gBm0WsIkR3mJCZTTK8L4iR23SC8Z2JKoK3DehJ2lOxzwQs59jMTOk3uMb0Z_nBYqi2qUxYtN1wb5HRtO9POmfBJr42ZDnLhgHCy6ULus9KJYztDb3yBERi7zS6JIcxcGfW0B2VHQLiTDM--gOmuRNfdjeZREnvj3CrQh1DtfcF6rJ4uPx_ITrsb-yN88A4NHVjIct2ge1avxnfFFszi_vqFKYn5UCql2PM-1lOmWK3tLOjnzpQpBvO8Zny9phV5glHlrZLKPzklN7XE64qD-qFY9akLdukJjxMF56KTVfT3c06RLNhVDmaHaAZPJ3ESmojPAjvVrN4mdqmp1rjOG3HIa1z2Y-UUthzPCjY0XdMJFzPjoXSFV73rt9gpUPehXPMNNgL161cG7Kf_YW6XU5yBkKcbh4QojNe32bJQVPSnvD_GlkpVhefHqq3N54W8-pajIHfoHbboaGs129yju22UQ9zZI1HY1oQP7sVlzJsYCXTLN9kJSnLpzmIcIbai2jFHtD5icsKLLx0RHJJZPe5Uw0cBLnFEN9udEXSur9vuIg0saMT-b_Uc5A-B2ZMZngXCWC3ObC4NRArnSRiauoEKWuMOwpPsXunrCtPn5LOKtE2PoU7fbmXkTbuWCsmoKrBZIuakRzrLig7NrtRIM8DfbvItFGIxEG2kJTpkyzQI4HzVGLRKJX6AiwTBqh-L67iciYrVGhUSzM4p1E4iN-16z_KqnhSU-6GgXA_l-FPLd9wDfRt0BKl9mmFz5iif44aKflCWS449bZh12SEJeAhCwu442E2Ldc4kiwn29r7AdH09fVx7st9WWMbhhcGfhbNEY9rvjrLKx_gamfZdnXI0nof3rqb-U5hLjYY2wUW5XTE2vHquX5JYHsUD_iYEPUOhdPzowKsKDqRTn2v9fLJe9lDutfm7Ywvax_W8oosxNT9jTbSAXnMuia3Lqr8UZwVNyJRm50VPDbtYriYv7p6YbbuV_HwTk29oskRoRVAcPB0U2nuNiJ1hWChzeGCa9XNcfThEr3BEo2b1jNcl-WOcLnRN2p3XzMe4ltGNECME31k8MmFTe64UeeidJtGAu9TCi1GOo7NQeD_62Jhn0OgByExoJ0WTf9J5HXhwSJo5wVk7Ua8tl6yO7X-LUeqI4EMNbYtdCVAUTyE4ij8OxYcvx8ciV4UNZJmu35tlRDnKsYCbSUSQMkDeGBND00sAAovkrMzmgKhvFdfTDJOwtj1so1sDVS_ZC1AXzAog=w2688-h1984)
1
+ ![Header Image](https://www.arkosjs.com/img/arkos-readme-header.webp)
2
2
 
3
- ### **What is Arkos**
3
+ # Arkos
4
4
 
5
- **Arkos** is a **lightweight backend framework** for **Express.js and Prisma** that simplifies API development by providing automatic route generation, built-in authentication, error handling, and file upload optimization. Designed to be a foundational layer for backend applications, Arkos allows developers to quickly set up a secure and scalable server with minimal configuration.
5
+ ### The Express And Prisma Framework For RESTful API
6
6
 
7
- ---
8
-
9
- ### **Key Features**
10
-
11
- - 🚀 **Automatic API Generation** – Instantly create RESTful API routes for Prisma models.
12
-
13
- - 🔐 **Built-in Authentication** – Supports JWT-based authentication with effortless setup.
14
-
15
- - ⚡ **Express Middlewares** – Pre-configured security, request parsing, and error handling.
16
-
17
- - 🛡️ **Built-in Data Validation** – using class-validator and class-transformer or zod, just drop a create-post.dto.ts or create-user.schema.ts.
18
-
19
- - ⬆️ **File Upload & Optimization** – Efficient image, video, docs, raw-file handling.
20
-
21
- - 💠 **Prisma Integration** – Seamless connection with Prisma ORM for database management with relation feilds handling.
22
-
23
- - 👨‍💻 **Interceptors Middlewares** – Tailor as you want, intercept, customize, for example using beforeCreateOne, afterSignUp.
24
-
25
- - ✉️ **Nodemailer Integration** – Seamless nodemailer integration for sending emails.
26
-
27
- With Arkos, developers can **bootstrap their backend in seconds**, focusing on building features rather than repetitive setup tasks.
28
-
29
- ### 1. **Install the Package**
30
-
31
- Before running the code, make sure your package (`arkos`) is installed in your project. You can do this by running:
32
-
33
- ```bash
34
- npm install arkos
35
- ```
36
-
37
- or if you are using `pnpm`:
7
+ Used to simplify the development of a secure and scalable RESTful API with minimal configuration, allowing developers to focus on what really matters for the business
38
8
 
39
- ```bash
40
- pnpm install arkos
41
- ```
9
+ ## Features
42
10
 
43
- ### 2. **Setup Prisma Client**
11
+ - 🚀 **Automatic API Generation** - Instantly create RESTful routes from Prisma models
12
+ - 🔐 **Built-in Authentication** - JWT-based authentication with minimal setup
13
+ - ⚡ **Express Middlewares** - Pre-configured security, parsing, and error handling
14
+ - 🛡️ **Data Validation** - Using class-validator/class-transformer or zod
15
+ - 💠 **Prisma Integration** - Seamless database management with relation fields support
16
+ - ⬆️ **File Upload & Optimization** - Efficient handling of images, videos, and documents
17
+ - 👨‍💻 **Interceptors Middlewares** - Customize request/response flow with hooks
18
+ - ✉️ **Nodemailer Integration** - Easy email sending functionality
19
+ - 📝 **Swagger API Documentation** - Automatically generate API documentation
44
20
 
45
- Here's how Prisma should be set up to use seamlessly with arkos:
21
+ **BETA VERSION**
46
22
 
47
- 1. **Install Prisma and initialize it:**
48
- Make sure you have Prisma installed in your project. You can install it using:
23
+ ## Documentation
49
24
 
50
- ```bash
51
- npm install @prisma/client
52
- npm install prisma --save-dev
53
- ```
25
+ For detailed documentation, visit our [official docs](https://arkosjs.com/docs/intro).
54
26
 
55
- 2. **Set up your Prisma schema:**
56
- You should have your `prisma/schema.prisma` file properly configured and migrate the database with Prisma commands:
57
-
58
- ```bash
59
- npx prisma generate
60
- npx prisma migrate dev
61
- ```
62
-
63
- 3. **Initialize Prisma client:**
64
- You'll need to have the `prisma` client initialized in your `src/utils/prisma.ts` file. For example:
65
-
66
- ```typescript
67
- // src/utils/prisma.ts
68
- import { PrismaClient } from "@prisma/client";
69
-
70
- export const prisma = new PrismaClient();
71
- ```
72
-
73
- ### 3. **Using `init` from `arkos`**
74
-
75
- The `init` function from your `arkos` package is used to initialize the app with required configurations. Here's how you can structure it:
76
-
77
- ```typescript
78
- // src/app.ts
79
- import arkos from "arkos"; // Import arkos.init() from arkos package
80
- import express from "express"; // Import express
81
-
82
- // Initialize the Express app
83
- const app = express();
84
-
85
- // Call init and pass the Express app for configuration, app will listen in 8000 by default or set PORT in .env.developement or .env.production
86
- arkos.init(app);
87
- ```
88
-
89
- ### 4. **How `arkos.init()` Works:**
90
-
91
- - **Initialization**: The `arkos.init()` function is called with two arguments, the second being optional:
92
- - `app`: The Express application instance.
93
- - `options`: An object containing configurations for toggle `authentication` and pass the desired `port`.
94
- - **What happens under the hood**:
95
- - **Authentication Setup**: The package will set (read further to learn how to prepare the environment) up authentication routes, middleware, and necessary handlers for managing user sessions and JWT tokens.
96
- - **Error Handling**: Automatic error handling middleware could be added.
97
- - **File Upload**: Arkos will configure necessary middleware to handle file uploads, image upload optimization, and route generation.
98
- - **Prisma Integration**: The prisma instance must be export as default or as prisma under scr/utils/prisma.ts.
99
-
100
- ### 5. **Additional Configuration (Optional)**
101
-
102
- You can customize additional settings such as routes for file uploads, email handling, and more, based on what your `arkos` package offers. The `arkos.init()` function may have additional configuration options, depending on how flexible and customizable the package is.
103
-
104
- ---
105
-
106
- ### Example Directory Structure
107
-
108
- Here is how the directory structure might look for this project:
109
-
110
- ```
111
- project-root/
112
-
113
- ├── node_modules/
114
-
115
- ├── src/
116
- │ ├── utils/
117
- │ │ └── prisma.ts # Prisma client initialization
118
- │ ├── app.ts # Express app setup with arkos.init()
119
-
120
- ├── package.json # Your project dependencies
121
- └── prisma/
122
- └── schema/
123
- └── schema.prisma # Your Prisma schema file
124
- └── post.prisma # Your Post model file
125
- ```
126
-
127
- ---
128
-
129
- ### Example of `prisma/schema.prisma`:
130
-
131
- Ensure you have a basic Prisma schema like this:
132
-
133
- ```typescript
134
- // prisma/schema.prisma
135
- datasource db {
136
- provider = "sqlite" // Replace with your database provider (e.g., 'mongodb', 'mysql', 'sqlite', 'postgresql')
137
- url = env("DATABASE_URL")
138
- }
139
-
140
- generator client {
141
- provider = "prisma-client-js"
142
- previewFeatures = ["prismaSchemaFolder"]
143
- }
144
-
145
- model Post {
146
- id Int @id @default(autoincrement())
147
- title String @unique
148
- content String
149
- createdAt DateTime @default(now())
150
- }
151
- ```
152
-
153
- Run the following to generate the Prisma client:
154
-
155
- ```bash
156
- npx prisma generate
157
- ```
158
-
159
- After all there will be routes for
160
-
161
- - Find many, GET: /api/posts
162
- - Find one, GET: /api/posts/:id
163
- - Create one POST: /api/posts
164
- - Update one, PATCH: /api/posts/:id
165
- - Delete one, DELETE: /api/posts/:id
166
-
167
- ---
168
-
169
- ### Recap
170
-
171
- - You need `prisma` properly set up.
172
- - Once `arkos.init()` is invoked with your `express` app the package will handle routing, authentication, file uploads, etc., automatically.
173
- - Ensure you have all dependencies installed (`arkos`, `prisma`, `express`, etc.) before running the app.
174
-
175
- ---
176
-
177
- ## 📝 License
27
+ ## License
178
28
 
179
29
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
180
30
 
181
- ---
182
-
183
- ## 📫 Contact
184
-
185
- For any issues or questions, please open an issue or contact [Uanela Como](mailto:uanelaluiswayne@gmail.com).
186
-
187
- Feel free to reach out for questions, suggestions, or contributions ❤️.
188
-
189
- ---
190
-
191
- ### **Origin of the Name "Arkos"**
192
-
193
- The name **"Arkos"** is derived from the Greek word **ἀρχή (Arkhē)**, which means **"beginning"** or **"foundation"**. This interpretation perfectly aligns with the core purpose of the package — to serve as a **foundational layer** for quickly setting up backend systems. Just as **ἀρχή** represents the starting point or origin, Arkos is designed to **initiate** and **structure** backend projects, providing developers with a robust base to build upon.
31
+ ## Contact
194
32
 
195
- This makes Arkos an essential tool for **bootstrapping** and organizing backend applications, helping developers focus on features rather than repetitive setup tasks.
33
+ For questions or issues, please open a GitHub issue or contact [Uanela Como](mailto:uanelaluiswayne@gmail.com).
196
34
 
197
35
  ---
198
36
 
199
- ### NB: More documentation coming soon
37
+ _The name "Arkos" comes from the Greek word "ἀρχή" (Arkhē), meaning "beginning" or "foundation", reflecting our goal of providing a solid foundation for backend development._
package/dist/cjs/app.js CHANGED
@@ -1 +1 @@
1
- "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,r,s,t){t===void 0&&(t=s);var o=Object.getOwnPropertyDescriptor(r,s);(!o||("get"in o?!r.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return r[s]}}),Object.defineProperty(e,t,o)}:function(e,r,s,t){t===void 0&&(t=s),e[t]=r[s]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,r){Object.defineProperty(e,"default",{enumerable:!0,value:r})}:function(e,r){e.default=r}),__importStar=this&&this.__importStar||function(){var e=function(r){return e=Object.getOwnPropertyNames||function(s){var t=[];for(var o in s)Object.prototype.hasOwnProperty.call(s,o)&&(t[t.length]=o);return t},e(r)};return function(r){if(r&&r.__esModule)return r;var s={};if(r!=null)for(var t=e(r),o=0;o<t.length;o++)t[o]!=="default"&&__createBinding(s,r,t[o]);return __setModuleDefault(s,r),s}}(),__awaiter=this&&this.__awaiter||function(e,r,s,t){function o(u){return u instanceof s?u:new s(function(i){i(u)})}return new(s||(s=Promise))(function(u,i){function c(n){try{a(t.next(n))}catch(l){i(l)}}function d(n){try{a(t.throw(n))}catch(l){i(l)}}function a(n){n.done?u(n.value):o(n.value).then(c,d)}a((t=t.apply(e,r||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.bootstrap=bootstrap;const express_1=__importDefault(require("express")),body_parser_1=__importDefault(require("body-parser")),cors_1=__importDefault(require("cors")),cookie_parser_1=__importDefault(require("cookie-parser")),express_query_parser_1=require("express-query-parser"),auth_router_1=__importDefault(require("./modules/auth/auth.router")),base_router_1=__importDefault(require("./modules/base/base.router")),error_handler_controller_1=__importDefault(require("./modules/error-handler/error-handler.controller")),express_rate_limit_1=require("express-rate-limit"),path_1=__importDefault(require("path")),dotenv=__importStar(require("dotenv")),compression_1=__importDefault(require("compression")),base_middlewares_1=require("./modules/base/base.middlewares"),prisma_helpers_1=require("./utils/helpers/prisma.helpers"),file_uploader_router_1=require("./modules/file-uploader/file-uploader.router"),ENV=process.env.NODE_ENV;let envPath=".env";ENV==="production"?envPath=path_1.default.resolve(process.cwd(),".env.production"):ENV==="staging"?envPath=path_1.default.resolve(process.cwd(),".env.staging"):ENV==="development"?envPath=path_1.default.resolve(process.cwd(),".env.development"):ENV==="local"?envPath=path_1.default.resolve(process.cwd(),".env.local"):ENV==="test"?envPath=path_1.default.resolve(process.cwd(),".env.test"):ENV==="qa"&&(envPath=path_1.default.resolve(process.cwd(),".env.qa")),dotenv.config({path:envPath});let initConfigs,prisma;__awaiter(void 0,void 0,void 0,function*(){prisma=yield(0,prisma_helpers_1.loadPrismaModule)()});function bootstrap(e,r){return __awaiter(this,void 0,void 0,function*(){prisma=yield(0,prisma_helpers_1.loadPrismaModule)(),initConfigs=r,e.use((0,compression_1.default)());const s=(0,express_rate_limit_1.rateLimit)({windowMs:60*1e3,limit:1e3,standardHeaders:"draft-7",legacyHeaders:!1});return e.use(s),e.set("trust proxy",1),e.use("/api/uploads",express_1.default.static(path_1.default.join("uploads"),{maxAge:"1y",etag:!0,lastModified:!0,dotfiles:"ignore",fallthrough:!0,index:!1,cacheControl:!0})),e.use((0,cors_1.default)({origin:(t,o)=>{o(null,!0)},methods:["GET","POST","PUT","DELETE","PATCH","OPTION"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0})),e.use(express_1.default.json()),e.use(body_parser_1.default.json()),e.use((0,cookie_parser_1.default)()),e.use((0,express_query_parser_1.queryParser)({parseNull:!0,parseUndefined:!0,parseBoolean:!0,parseNumber:!0})),e.use(prisma_helpers_1.checkDatabaseConnection),e.use(base_middlewares_1.handleRequestLogs),r.authentication&&e.use("/api",auth_router_1.default),e.use("/api",base_router_1.default),e.use("/api",file_uploader_router_1.fileUploaderRouter),e.use(error_handler_controller_1.default),e})}
1
+ "use strict";var __createBinding=this&&this.__createBinding||(Object.create?function(e,t,i,r){r===void 0&&(r=i);var l=Object.getOwnPropertyDescriptor(t,i);(!l||("get"in l?!t.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,l)}:function(e,t,i,r){r===void 0&&(r=i),e[r]=t[i]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(){var e=function(t){return e=Object.getOwnPropertyNames||function(i){var r=[];for(var l in i)Object.prototype.hasOwnProperty.call(i,l)&&(r[r.length]=l);return r},e(t)};return function(t){if(t&&t.__esModule)return t;var i={};if(t!=null)for(var r=e(t),l=0;l<r.length;l++)r[l]!=="default"&&__createBinding(i,t,r[l]);return __setModuleDefault(i,t),i}}(),__awaiter=this&&this.__awaiter||function(e,t,i,r){function l(u){return u instanceof i?u:new i(function(d){d(u)})}return new(i||(i=Promise))(function(u,d){function o(s){try{n(r.next(s))}catch(a){d(a)}}function c(s){try{n(r.throw(s))}catch(a){d(a)}}function n(s){s.done?u(s.value):l(s.value).then(o,c)}n((r=r.apply(e,t||[])).next())})},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.bootstrap=bootstrap;const express_1=__importDefault(require("express")),cors_1=__importDefault(require("cors")),cookie_parser_1=__importDefault(require("cookie-parser")),auth_router_1=require("./modules/auth/auth.router"),base_router_1=require("./modules/base/base.router"),error_handler_controller_1=__importDefault(require("./modules/error-handler/error-handler.controller")),express_rate_limit_1=require("express-rate-limit"),path_1=__importDefault(require("path")),dotenv=__importStar(require("dotenv")),compression_1=__importDefault(require("compression")),base_middlewares_1=require("./modules/base/base.middlewares"),prisma_helpers_1=require("./utils/helpers/prisma.helpers"),file_uploader_router_1=require("./modules/file-uploader/file-uploader.router"),query_parser_helpers_1=require("./utils/helpers/query-parser.helpers"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),ENV=process.env.NODE_ENV;let envPath=".env";ENV==="production"?envPath=path_1.default.resolve(process.cwd(),".env.production"):ENV==="staging"?envPath=path_1.default.resolve(process.cwd(),".env.staging"):ENV==="development"?envPath=path_1.default.resolve(process.cwd(),".env.development"):ENV==="local"?envPath=path_1.default.resolve(process.cwd(),".env.local"):ENV==="test"?envPath=path_1.default.resolve(process.cwd(),".env.test"):ENV==="qa"&&(envPath=path_1.default.resolve(process.cwd(),".env.qa")),dotenv.config({path:envPath});const app=(0,express_1.default)();function bootstrap(e){return __awaiter(this,void 0,void 0,function*(){var t,i,r;yield(0,prisma_helpers_1.loadPrismaModule)(),e.configureApp&&(yield e.configureApp(app));const l=e?.middlewares,u=l?.disable||[],d=l?.replace||{};u.includes("compression")||app.use(d.compression||(0,compression_1.default)(e?.compressionOptions)),u.includes("global-rate-limit")||app.use(d.globalRateLimit||(0,express_rate_limit_1.rateLimit)((0,deepmerge_helper_1.default)({windowMs:60*1e3,limit:1e3,standardHeaders:"draft-7",legacyHeaders:!1},e?.globalRequestRateLimitOptions||{}))),u.includes("cors")||app.use(d.cors||(0,cors_1.default)(!((t=e?.cors)===null||t===void 0)&&t.customHandler?e.cors.customHandler:(0,deepmerge_helper_1.default)({origin:(s,a)=>{var v;const p=(v=e?.cors)===null||v===void 0?void 0:v.allowedOrigins;p==="*"?a(null,!0):Array.isArray(p)?a(null,!s||p.includes(s)):typeof p=="string"?a(null,!s||p===s):a(null,!1)},methods:["GET","POST","PUT","DELETE","PATCH","OPTIONS"],allowedHeaders:["Content-Type","Authorization","Connection"],credentials:!0},((i=e?.cors)===null||i===void 0?void 0:i.options)||{}))),u.includes("express-json")||app.use(d.expressJson||express_1.default.json(e?.jsonBodyParserOptions)),u.includes("cookie-parser")||app.use(d.cookieParser||(0,cookie_parser_1.default)(...e?.cookieParserParameters||[])),u.includes("query-parser")||app.use(d.queryParser||(0,query_parser_helpers_1.queryParser)((0,deepmerge_helper_1.default)({parseNull:!0,parseUndefined:!0,parseBoolean:!0},e?.queryParserOptions||{}))),u.includes("database-connection")||app.use(d.databaseConnection||prisma_helpers_1.checkDatabaseConnection),u.includes("request-logger")||app.use(d.requestLogger||base_middlewares_1.handleRequestLogs),!((r=e?.middlewares)===null||r===void 0)&&r.additionals&&e.middlewares.additionals.forEach(s=>{app.use(s)});const o=e?.routers,c=o?.disable||[],n=o?.replace||{};if(c.includes("welcome-endpoint")||app.get("/api",n.welcomeEndpoint||((s,a)=>{a.status(200).json({message:e.welcomeMessage})})),!c.includes("file-uploader")){const s=n.fileUploader?yield n.fileUploader(e):yield(0,file_uploader_router_1.getFileUploaderRouter)(e);app.use(s)}if(!c.includes("auth-router")&&e.authentication){const s=n.authRouter?yield n.authRouter(e):yield(0,auth_router_1.getAuthRouter)(e);app.use("/api",s)}if(!c.includes("prisma-models-router")){const s=n.prismaModelsRouter?yield n.prismaModelsRouter(e):yield(0,base_router_1.getPrismaModelsRouter)();app.use("/api",s)}return app.use("/api",(0,base_router_1.getAvailableResourcesAndRoutesRouter)()),o?.additionals&&o.additionals.forEach(s=>{app.use(s)}),u.includes("global-error-handler")||app.use(d.globalErrorHandler||error_handler_controller_1.default),app})}
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\";\nimport bodyParser from \"body-parser\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { queryParser } from \"express-query-parser\";\nimport authRouter from \"./modules/auth/auth.router\";\nimport baseRouter from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport path from \"path\";\nimport * as dotenv from \"dotenv\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport {\n checkDatabaseConnection,\n loadPrismaModule,\n} from \"./utils/helpers/prisma.helpers\";\nimport { ClassValidatorInitConfigsOptions } from \"./utils/validate-dto\";\nimport { fileUploaderRouter } from \"./modules/file-uploader/file-uploader.router\";\n\nconst ENV = process.env.NODE_ENV;\nlet envPath = \".env\";\n\n// Default to `.env.local` if available in any environment\nif (ENV === \"production\") {\n envPath = path.resolve(process.cwd(), \".env.production\");\n} else if (ENV === \"staging\") {\n envPath = path.resolve(process.cwd(), \".env.staging\");\n} else if (ENV === \"development\") {\n envPath = path.resolve(process.cwd(), \".env.development\");\n} else if (ENV === \"local\") {\n // For local development, .env.local can be used\n envPath = path.resolve(process.cwd(), \".env.local\");\n}\n\n// Optionally, add support for `.env.test`, `.env.qa`, or other environments if required\nelse if (ENV === \"test\") {\n envPath = path.resolve(process.cwd(), \".env.test\");\n} else if (ENV === \"qa\") {\n envPath = path.resolve(process.cwd(), \".env.qa\");\n}\n\ndotenv.config({ path: envPath });\n\nexport type InitConfigsAuthenticationOptions = {\n signup?: {\n /** Defines wether the api will look for isVerified = true in order to login or make an operation that authentication is required. */\n requireEmailVerification?: boolean;\n };\n login?: {\n /** Defines wether to send the access token in response after login or only send as cookie, defeault is both.*/\n sendAccessTokenThrough?: \"cookie-only\" | \"response-only\" | \"both\";\n };\n};\n\nexport type InitConfigs = {\n port?: number;\n authentication?: InitConfigsAuthenticationOptions | boolean;\n validation?:\n | ClassValidatorInitConfigsOptions\n | {\n resolver?: \"zod\";\n validationOptions?: Record<string, any>;\n }\n | boolean;\n};\n\nlet initConfigs: InitConfigs;\nlet prisma: any;\n\n(async () => {\n prisma = await loadPrismaModule();\n})();\n\nexport async function bootstrap(app: express.Express, configs: InitConfigs) {\n prisma = await loadPrismaModule();\n\n initConfigs = configs;\n\n app.use(compression());\n\n const limiter = rateLimit({\n windowMs: 60 * 1000,\n limit: 1000,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n });\n\n app.use(limiter);\n\n app.set(\"trust proxy\", 1);\n\n app.use(\n \"/api/uploads\",\n express.static(path.join(\"uploads\"), {\n maxAge: \"1y\",\n etag: true,\n lastModified: true,\n dotfiles: \"ignore\",\n fallthrough: true,\n index: false,\n cacheControl: true,\n })\n );\n\n app.use(\n cors({\n origin: (origin, callback) => {\n callback(null, true);\n },\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTION\"],\n allowedHeaders: [\"Content-Type\", \"Authorization\", \"Connection\"],\n credentials: true,\n })\n );\n\n app.use(express.json());\n app.use(bodyParser.json());\n app.use(cookieParser());\n app.use(\n queryParser({\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n parseNumber: true,\n })\n );\n\n app.use(checkDatabaseConnection);\n\n app.use(handleRequestLogs);\n\n if (configs.authentication) app.use(\"/api\", authRouter);\n app.use(\"/api\", baseRouter);\n app.use(\"/api\", fileUploaderRouter);\n app.use(errorHandler);\n\n return app;\n}\n"]}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"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","sourcesContent":["import express from \"express\";\nimport cors from \"cors\";\nimport cookieParser from \"cookie-parser\";\nimport { getAuthRouter } from \"./modules/auth/auth.router\";\nimport {\n getPrismaModelsRouter,\n getAvailableResourcesAndRoutesRouter,\n} from \"./modules/base/base.router\";\nimport errorHandler from \"./modules/error-handler/error-handler.controller\";\nimport { rateLimit } from \"express-rate-limit\";\nimport path from \"path\";\nimport * as dotenv from \"dotenv\";\nimport compression from \"compression\";\nimport { handleRequestLogs } from \"./modules/base/base.middlewares\";\nimport {\n checkDatabaseConnection,\n loadPrismaModule,\n} from \"./utils/helpers/prisma.helpers\";\nimport { getFileUploaderRouter } from \"./modules/file-uploader/file-uploader.router\";\nimport { ArkosConfig } from \"./types/arkos-config\";\nimport { queryParser } from \"./utils/helpers/query-parser.helpers\";\nimport deepmerge from \"./utils/helpers/deepmerge.helper\";\n\nconst ENV = process.env.NODE_ENV;\nlet envPath = \".env\";\n\n// Default to `.env.local` if available in any environment\nif (ENV === \"production\") {\n envPath = path.resolve(process.cwd(), \".env.production\");\n} else if (ENV === \"staging\") {\n envPath = path.resolve(process.cwd(), \".env.staging\");\n} else if (ENV === \"development\") {\n envPath = path.resolve(process.cwd(), \".env.development\");\n} else if (ENV === \"local\") {\n // For local development, .env.local can be used\n envPath = path.resolve(process.cwd(), \".env.local\");\n}\n\n// Optionally, add support for `.env.test`, `.env.qa`, or other environments if required\nelse if (ENV === \"test\") {\n envPath = path.resolve(process.cwd(), \".env.test\");\n} else if (ENV === \"qa\") {\n envPath = path.resolve(process.cwd(), \".env.qa\");\n}\n\ndotenv.config({ path: envPath });\n\nconst app = express();\n\nexport async function bootstrap(\n arkosConfig: ArkosConfig\n): Promise<express.Express> {\n await loadPrismaModule();\n\n if (arkosConfig.configureApp) await arkosConfig.configureApp(app);\n\n const middlewaresConfig = arkosConfig?.middlewares;\n const disabledMiddlewares = middlewaresConfig?.disable || [];\n const replacedMiddlewares = middlewaresConfig?.replace || {};\n\n // Compression middleware\n if (!disabledMiddlewares.includes(\"compression\"))\n app.use(\n replacedMiddlewares.compression ||\n compression(arkosConfig?.compressionOptions)\n );\n\n // Global rate limit middleware\n if (!disabledMiddlewares.includes(\"global-rate-limit\"))\n app.use(\n replacedMiddlewares.globalRateLimit ||\n rateLimit(\n deepmerge(\n {\n windowMs: 60 * 1000,\n limit: 1000,\n standardHeaders: \"draft-7\",\n legacyHeaders: false,\n },\n arkosConfig?.globalRequestRateLimitOptions || {}\n )\n )\n );\n\n // CORS middleware\n if (!disabledMiddlewares.includes(\"cors\"))\n app.use(\n replacedMiddlewares.cors ||\n cors(\n arkosConfig?.cors?.customHandler\n ? arkosConfig.cors.customHandler\n : deepmerge(\n {\n origin: (\n origin: string,\n cb: (err: Error | null, allow?: boolean) => void\n ) => {\n const allowed = arkosConfig?.cors?.allowedOrigins;\n\n if (allowed === \"*\") {\n cb(null, true);\n } else if (Array.isArray(allowed)) {\n cb(null, !origin || allowed.includes(origin));\n } else if (typeof allowed === \"string\") {\n cb(null, !origin || allowed === origin);\n } else {\n cb(null, false);\n }\n },\n methods: [\"GET\", \"POST\", \"PUT\", \"DELETE\", \"PATCH\", \"OPTIONS\"],\n allowedHeaders: [\n \"Content-Type\",\n \"Authorization\",\n \"Connection\",\n ],\n credentials: true,\n },\n arkosConfig?.cors?.options || {}\n )\n )\n );\n\n // JSON body parser middleware\n if (!disabledMiddlewares.includes(\"express-json\"))\n app.use(\n replacedMiddlewares.expressJson ||\n express.json(arkosConfig?.jsonBodyParserOptions)\n );\n\n // Cookie parser middleware\n if (!disabledMiddlewares.includes(\"cookie-parser\"))\n app.use(\n replacedMiddlewares.cookieParser ||\n cookieParser(...[...(arkosConfig?.cookieParserParameters || [])])\n );\n\n // Query parser middleware\n if (!disabledMiddlewares.includes(\"query-parser\"))\n app.use(\n replacedMiddlewares.queryParser ||\n queryParser(\n deepmerge(\n {\n parseNull: true,\n parseUndefined: true,\n parseBoolean: true,\n },\n arkosConfig?.queryParserOptions || {}\n )\n )\n );\n\n // Database connection check middleware\n if (!disabledMiddlewares.includes(\"database-connection\"))\n app.use(replacedMiddlewares.databaseConnection || checkDatabaseConnection);\n\n // Request logger middleware\n if (!disabledMiddlewares.includes(\"request-logger\"))\n app.use(replacedMiddlewares.requestLogger || handleRequestLogs);\n\n // Additional custom middlewares\n if (arkosConfig?.middlewares?.additionals)\n arkosConfig.middlewares.additionals.forEach((middleware) => {\n app.use(middleware);\n });\n\n // Configure routers\n const routersConfig = arkosConfig?.routers;\n const disabledRouters = routersConfig?.disable || [];\n const replacedRouters = routersConfig?.replace || {};\n\n // Welcome endpoint\n if (!disabledRouters.includes(\"welcome-endpoint\"))\n app.get(\n \"/api\",\n replacedRouters.welcomeEndpoint ||\n ((req, res) => {\n res.status(200).json({ message: arkosConfig.welcomeMessage });\n })\n );\n\n // File uploader router\n if (!disabledRouters.includes(\"file-uploader\")) {\n const fileUploaderRouter = replacedRouters.fileUploader\n ? await replacedRouters.fileUploader(arkosConfig)\n : await getFileUploaderRouter(arkosConfig);\n app.use(fileUploaderRouter);\n }\n\n // Auth router\n if (!disabledRouters.includes(\"auth-router\") && arkosConfig.authentication) {\n const authRouter = replacedRouters.authRouter\n ? await replacedRouters.authRouter(arkosConfig)\n : await getAuthRouter(arkosConfig);\n app.use(\"/api\", authRouter);\n }\n\n // Prisma models router\n if (!disabledRouters.includes(\"prisma-models-router\")) {\n const modelsRouter = replacedRouters.prismaModelsRouter\n ? await replacedRouters.prismaModelsRouter(arkosConfig)\n : await getPrismaModelsRouter();\n app.use(\"/api\", modelsRouter);\n }\n\n app.use(\"/api\", getAvailableResourcesAndRoutesRouter());\n\n // Additional custom routers\n if (routersConfig?.additionals) {\n routersConfig.additionals.forEach((router) => {\n app.use(router);\n });\n }\n\n // Global error handler middleware (must be last)\n if (!disabledMiddlewares.includes(\"global-error-handler\"))\n app.use(replacedMiddlewares.globalErrorHandler || errorHandler);\n\n return app;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/auth/index.ts"],"names":[],"mappings":";;;AAAA,0EAAiF;AAGxE,0GAHA,2CAAyB,OAGA","sourcesContent":["import { defaultExcludedUserFields } from \"./../../modules/auth/auth.controller\";\nimport { AuthConfigs, AuthJwtPayload } from \"./../../types/index.d\";\n\nexport { defaultExcludedUserFields, AuthConfigs, AuthJwtPayload };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/auth/index.ts"],"names":[],"mappings":";;;AAAA,0EAAiF;AAGxE,0GAHA,2CAAyB,OAGA","sourcesContent":["import { defaultExcludedUserFields } from \"./../../modules/auth/auth.controller\";\nimport { AuthConfigs, AuthJwtPayload } from \"../../types/auth\";\n\nexport { defaultExcludedUserFields, AuthConfigs, AuthJwtPayload };\n"]}
@@ -1,5 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseController = void 0;
4
+ const base_controller_1 = require("./../modules/base/base.controller");
5
+ Object.defineProperty(exports, "BaseController", { enumerable: true, get: function () { return base_controller_1.BaseController; } });
3
6
  const server_1 = require("../server");
4
7
  const arkos = {
5
8
  init: server_1.initApp,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;AAAA,sCAAoC;AAQpC,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,gBAAO;CACd,CAAC;AAOF,kBAAe,KAAK,CAAC","sourcesContent":["import { initApp } from \"../server\";\n\n/**\n * Initializes the Arkos application.\n *\n * @module arkos\n * @property {Function} init - Function to initialize the app.\n */\nconst arkos = {\n init: initApp,\n};\n\n/**\n * Main entry point for the Arkos module.\n *\n * @module arkos\n */\nexport default arkos;\n\n// export * from \"./services\";\n// export * from \"./utils\";\n// export * from \"./validation\";\n// export * from \"./error-handler\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exports/index.ts"],"names":[],"mappings":";;;AACA,uEAAmE;AAyBjE,+FAzBO,gCAAc,OAyBP;AAxBhB,sCAAoC;AAepC,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,gBAAO;CACd,CAAC;AAiBF,kBAAe,KAAK,CAAC","sourcesContent":["import { PrismaModelRouterConfig } from \"../types/prisma-model-router-config\";\nimport { BaseController } from \"./../modules/base/base.controller\";\nimport { initApp } from \"../server\";\nimport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n} from \"../types\";\nimport { ArkosConfig } from \"../types/arkos-config\";\n\n/**\n * Initializes the Arkos application.\n *\n * @module arkos\n * @property {Function} init - Function to initialize the app.\n */\nconst arkos = {\n init: initApp,\n};\n\nexport {\n ArkosRequest,\n ArkosResponse,\n ArkosNextFunction,\n ArkosRequestHandler,\n BaseController,\n ArkosConfig,\n PrismaModelRouterConfig,\n};\n\n/**\n * Main entry point for the Arkos module.\n *\n * @module arkos\n */\nexport default arkos;\n"]}
@@ -1,3 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPrismaModels = void 0;
4
+ const models_helpers_1 = require("../../utils/helpers/models.helpers");
5
+ Object.defineProperty(exports, "getPrismaModels", { enumerable: true, get: function () { return models_helpers_1.getModels; } });
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/prisma/index.ts"],"names":[],"mappings":"","sourcesContent":["import { PrismaQueryOptions } from \"./../../types/index.d\";\n\nexport { PrismaQueryOptions };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/prisma/index.ts"],"names":[],"mappings":";;;AACA,uEAA+D;AAErB,gGAFjC,0BAAS,OAEuC","sourcesContent":["import { PrismaQueryOptions } from \"../../types\";\nimport { getModels } from \"../../utils/helpers/models.helpers\";\n\nexport { PrismaQueryOptions, getModels as getPrismaModels };\n"]}
@@ -36,17 +36,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.fileUploaderService = exports.videoUploaderService = exports.documentUploaderService = exports.imageUploaderService = exports.EmailService = exports.emailService = exports.getBaseServices = exports.BaseService = exports.authService = void 0;
39
+ exports.FileUploaderService = exports.getFileUploaderServices = exports.EmailService = exports.emailService = exports.getBaseServices = exports.BaseService = exports.authService = void 0;
40
+ const file_uploader_service_1 = require("../../modules/file-uploader/file-uploader.service");
41
+ Object.defineProperty(exports, "getFileUploaderServices", { enumerable: true, get: function () { return file_uploader_service_1.getFileUploaderServices; } });
42
+ Object.defineProperty(exports, "FileUploaderService", { enumerable: true, get: function () { return file_uploader_service_1.FileUploaderService; } });
40
43
  const auth_service_1 = __importDefault(require("../../modules/auth/auth.service"));
41
44
  exports.authService = auth_service_1.default;
42
45
  const email_service_1 = __importStar(require("../../modules/email/email.service"));
43
46
  exports.emailService = email_service_1.default;
44
47
  Object.defineProperty(exports, "EmailService", { enumerable: true, get: function () { return email_service_1.EmailService; } });
45
- const file_uploader_service_1 = require("../../modules/file-uploader/file-uploader.service");
46
- Object.defineProperty(exports, "imageUploaderService", { enumerable: true, get: function () { return file_uploader_service_1.imageUploaderService; } });
47
- Object.defineProperty(exports, "documentUploaderService", { enumerable: true, get: function () { return file_uploader_service_1.documentUploaderService; } });
48
- Object.defineProperty(exports, "videoUploaderService", { enumerable: true, get: function () { return file_uploader_service_1.videoUploaderService; } });
49
- Object.defineProperty(exports, "fileUploaderService", { enumerable: true, get: function () { return file_uploader_service_1.fileUploaderService; } });
50
48
  const base_service_1 = require("../../modules/base/base.service");
51
49
  Object.defineProperty(exports, "BaseService", { enumerable: true, get: function () { return base_service_1.BaseService; } });
52
50
  Object.defineProperty(exports, "getBaseServices", { enumerable: true, get: function () { return base_service_1.getBaseServices; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,mFAA0D;AAajD,sBAbF,sBAAW,CAaE;AAZpB,mFAA+E;AAsBtE,uBAtBF,uBAAY,CAsBE;AAAE,6FAtBA,4BAAY,OAsBA;AArBnC,6FAK2D;AAsBzD,qGA1BA,4CAAoB,OA0BA;AACpB,wGA1BA,+CAAuB,OA0BA;AACvB,qGA1BA,4CAAoB,OA0BA;AACpB,oGA1BA,2CAAmB,OA0BA;AAxBrB,kEAA+E;AAUtE,4FAVA,0BAAW,OAUA;AAAE,gGAVA,8BAAe,OAUA","sourcesContent":["import { EmailOptions } from \"../../modules/email/email.service\";\nimport authService from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport {\n imageUploaderService,\n documentUploaderService,\n videoUploaderService,\n fileUploaderService,\n} from \"../../modules/file-uploader/file-uploader.service\";\nimport { BaseService, getBaseServices } from \"../../modules/base/base.service\";\n\n/**\n * Authentication service.\n */\nexport { authService };\n\n/**\n * Base service.\n */\nexport { BaseService, getBaseServices };\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport {\n imageUploaderService,\n documentUploaderService,\n videoUploaderService,\n fileUploaderService,\n};\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6FAG2D;AAwBlD,wGA1BP,+CAAuB,OA0BO;AAAE,oGAzBhC,2CAAmB,OAyBgC;AAtBrD,mFAA0D;AAOjD,sBAPF,sBAAW,CAOE;AANpB,mFAA+E;AAgBtE,uBAhBF,uBAAY,CAgBE;AAAE,6FAhBA,4BAAY,OAgBA;AAfnC,kEAA+E;AAUtE,4FAVA,0BAAW,OAUA;AAAE,gGAVA,8BAAe,OAUA","sourcesContent":["import {\n getFileUploaderServices,\n FileUploaderService,\n} from \"../../modules/file-uploader/file-uploader.service\";\nimport { EmailOptions } from \"../../modules/email/email.service\";\nimport authService from \"../../modules/auth/auth.service\";\nimport emailService, { EmailService } from \"../../modules/email/email.service\";\nimport { BaseService, getBaseServices } from \"../../modules/base/base.service\";\n\n/**\n * Authentication service.\n */\nexport { authService };\n\n/**\n * Base service.\n */\nexport { BaseService, getBaseServices };\n\n/**\n * Email service.\n */\nexport { emailService, EmailService, EmailOptions };\n\n/**\n * File upload services.\n */\nexport { getFileUploaderServices, FileUploaderService };\n"]}
@@ -1,6 +1,18 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPrismaModels = void 0;
4
- const models_helpers_1 = require("../../utils/helpers/models.helpers");
5
- Object.defineProperty(exports, "getPrismaModels", { enumerable: true, get: function () { return models_helpers_1.getModels; } });
17
+ __exportStar(require("../../utils/features/change-case.features"), exports);
6
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":";;;AAAA,uEAA+D;AAEzC,gGAFb,0BAAS,OAEmB","sourcesContent":["import { getModels } from \"../../utils/helpers/models.helpers\";\n\nexport { getModels as getPrismaModels };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4EAA0D","sourcesContent":["export * from \"../../utils/features/change-case.features\";\n"]}
@@ -3,7 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.validateDto = void 0;
6
+ exports.validateSchema = exports.validateDto = void 0;
7
7
  const validate_dto_1 = __importDefault(require("../../utils/validate-dto"));
8
8
  exports.validateDto = validate_dto_1.default;
9
+ const validate_schema_1 = __importDefault(require("../../utils/validate-schema"));
10
+ exports.validateSchema = validate_schema_1.default;
9
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/validation/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAmD;AAE1C,sBAFF,sBAAW,CAEE","sourcesContent":["import validateDto from \"../../utils/validate-dto\";\n\nexport { validateDto };\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/exports/validation/index.ts"],"names":[],"mappings":";;;;;;AAAA,4EAAmD;AAG1C,sBAHF,sBAAW,CAGE;AAFpB,kFAAyD;AAEnC,yBAFf,yBAAc,CAEe","sourcesContent":["import validateDto from \"../../utils/validate-dto\";\nimport validateSchema from \"../../utils/validate-schema\";\n\nexport { validateDto, validateSchema };\n"]}