arkos 1.3.1-beta → 1.3.2-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 (256) hide show
  1. package/dist/cjs/app.js +139 -1
  2. package/dist/cjs/exports/auth/index.js +6 -1
  3. package/dist/cjs/exports/controllers/index.js +11 -1
  4. package/dist/cjs/exports/error-handler/index.js +11 -1
  5. package/dist/cjs/exports/index.js +12 -1
  6. package/dist/cjs/exports/middlewares/index.js +7 -1
  7. package/dist/cjs/exports/prisma/index.js +13 -1
  8. package/dist/cjs/exports/services/index.js +48 -1
  9. package/dist/cjs/exports/utils/index.js +44 -1
  10. package/dist/cjs/exports/validation/index.js +11 -1
  11. package/dist/cjs/modules/auth/auth.controller.js +229 -1
  12. package/dist/cjs/modules/auth/auth.controller.js.map +1 -1
  13. package/dist/cjs/modules/auth/auth.router.js +82 -1
  14. package/dist/cjs/modules/auth/auth.router.js.map +1 -1
  15. package/dist/cjs/modules/auth/auth.service.js +226 -1
  16. package/dist/cjs/modules/auth/utils/auth-error-objects.js +10 -1
  17. package/dist/cjs/modules/auth/utils/helpers/auth.controller.helpers.js +83 -1
  18. package/dist/cjs/modules/auth/utils/services/auth-action.service.js +92 -1
  19. package/dist/cjs/modules/auth/utils/services/auth-action.service.js.map +1 -1
  20. package/dist/cjs/modules/base/base.controller.js +172 -1
  21. package/dist/cjs/modules/base/base.middlewares.js +92 -1
  22. package/dist/cjs/modules/base/base.router.js +22 -1
  23. package/dist/cjs/modules/base/base.service.js +507 -1
  24. package/dist/cjs/modules/base/base.service.js.map +1 -1
  25. package/dist/cjs/modules/base/types/base.service.types.js +3 -1
  26. package/dist/cjs/modules/base/types/base.service.types.js.map +1 -1
  27. package/dist/cjs/modules/base/utils/helpers/base.controller.helpers.js +80 -1
  28. package/dist/cjs/modules/base/utils/helpers/base.middlewares.helpers.js +50 -1
  29. package/dist/cjs/modules/base/utils/helpers/base.router.helpers.js +104 -1
  30. package/dist/cjs/modules/base/utils/helpers/base.service.helpers.js +208 -1
  31. package/dist/cjs/modules/base/utils/router-validator.js +16 -1
  32. package/dist/cjs/modules/base/utils/service-hooks-manager.js +19 -1
  33. package/dist/cjs/modules/email/email.service.js +104 -1
  34. package/dist/cjs/modules/error-handler/error-handler.controller.js +146 -4
  35. package/dist/cjs/modules/error-handler/utils/app-error.js +17 -1
  36. package/dist/cjs/modules/error-handler/utils/catch-async.js +21 -1
  37. package/dist/cjs/modules/error-handler/utils/error-handler.helpers.js +205 -3
  38. package/dist/cjs/modules/file-upload/file-upload.controller.js +233 -1
  39. package/dist/cjs/modules/file-upload/file-upload.router.js +60 -1
  40. package/dist/cjs/modules/file-upload/file-upload.service.js +322 -1
  41. package/dist/cjs/modules/file-upload/utils/helpers/file-upload.helpers.js +97 -1
  42. package/dist/cjs/modules/swagger/swagger.router.js +38 -1
  43. package/dist/cjs/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +338 -1
  44. package/dist/cjs/modules/swagger/utils/helpers/get-swagger-default-configs.js +64 -1
  45. package/dist/cjs/modules/swagger/utils/helpers/get-system-json-schema-paths.js +37 -1
  46. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +48 -1
  47. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +32 -1
  48. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +49 -1
  49. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +34 -1
  50. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +471 -1
  51. package/dist/cjs/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +572 -1
  52. package/dist/cjs/modules/swagger/utils/helpers/missing-json-schemas-generator.js +260 -1
  53. package/dist/cjs/modules/swagger/utils/helpers/swagger.router.helpers.js +112 -1
  54. package/dist/cjs/paths.js +9 -1
  55. package/dist/cjs/server.js +94 -5
  56. package/dist/cjs/types/arkos-config.js +3 -1
  57. package/dist/cjs/types/arkos-config.js.map +1 -1
  58. package/dist/cjs/types/auth.js +3 -1
  59. package/dist/cjs/types/index.js +11 -1
  60. package/dist/cjs/types/router-config.js +3 -1
  61. package/dist/cjs/utils/arkos-env.js +9 -1
  62. package/dist/cjs/utils/cli/build.js +214 -5
  63. package/dist/cjs/utils/cli/dev.js +154 -3
  64. package/dist/cjs/utils/cli/generate.js +109 -1
  65. package/dist/cjs/utils/cli/index.js +104 -1
  66. package/dist/cjs/utils/cli/index.js.map +1 -1
  67. package/dist/cjs/utils/cli/prisma-generate.js +120 -0
  68. package/dist/cjs/utils/cli/prisma-generate.js.map +1 -0
  69. package/dist/cjs/utils/cli/start.js +103 -1
  70. package/dist/cjs/utils/cli/utils/cli.helpers.js +24 -1
  71. package/dist/cjs/utils/cli/utils/smart-fs-watcher.js +73 -1
  72. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js +36 -0
  73. package/dist/cjs/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  74. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js +21 -0
  75. package/dist/cjs/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  76. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js +201 -0
  77. package/dist/cjs/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  78. package/dist/cjs/utils/cli/utils/template-generator/templates/middlewares-template.js +288 -0
  79. package/dist/cjs/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  80. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js +64 -0
  81. package/dist/cjs/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  82. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js +45 -0
  83. package/dist/cjs/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  84. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js +29 -0
  85. package/dist/cjs/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  86. package/dist/cjs/utils/cli/utils/template-generators.js +34 -2
  87. package/dist/cjs/utils/cli/utils/template-generators.js.map +1 -1
  88. package/dist/cjs/utils/cli/utils/watermark-stamper.js +17 -3
  89. package/dist/cjs/utils/dotenv.helpers.js +43 -1
  90. package/dist/cjs/utils/dynamic-loader.js +270 -9
  91. package/dist/cjs/utils/features/api.features.js +169 -1
  92. package/dist/cjs/utils/features/change-case.features.js +67 -1
  93. package/dist/cjs/utils/features/port-and-host-allocator.js +105 -1
  94. package/dist/cjs/utils/helpers/api.features.helpers.js +112 -1
  95. package/dist/cjs/utils/helpers/change-case.helpers.js +177 -1
  96. package/dist/cjs/utils/helpers/deepmerge.helper.js +115 -1
  97. package/dist/cjs/utils/helpers/dynamic-loader.helpers.js +76 -1
  98. package/dist/cjs/utils/helpers/fs.helpers.js +57 -1
  99. package/dist/cjs/utils/helpers/global.helpers.js +94 -1
  100. package/dist/cjs/utils/helpers/prisma.helpers.js +40 -1
  101. package/dist/cjs/utils/helpers/query-parser.helpers.js +45 -1
  102. package/dist/cjs/utils/helpers/routers.helpers.js +37 -1
  103. package/dist/cjs/utils/helpers/text.helpers.js +28 -1
  104. package/dist/cjs/utils/prisma/prisma-json-schema-generator.js +455 -1
  105. package/dist/cjs/utils/prisma/prisma-schema-parser.js +216 -4
  106. package/dist/cjs/utils/prisma/types.js +3 -1
  107. package/dist/cjs/utils/sheu.js +120 -1
  108. package/dist/cjs/utils/validate-dto.js +17 -1
  109. package/dist/cjs/utils/validate-schema.js +15 -1
  110. package/dist/esm/app.js +132 -1
  111. package/dist/esm/exports/auth/index.js +2 -1
  112. package/dist/esm/exports/controllers/index.js +4 -1
  113. package/dist/esm/exports/error-handler/index.js +4 -1
  114. package/dist/esm/exports/index.js +8 -1
  115. package/dist/esm/exports/middlewares/index.js +2 -1
  116. package/dist/esm/exports/prisma/index.js +6 -1
  117. package/dist/esm/exports/services/index.js +9 -1
  118. package/dist/esm/exports/utils/index.js +4 -1
  119. package/dist/esm/exports/validation/index.js +4 -1
  120. package/dist/esm/modules/auth/auth.controller.js +222 -1
  121. package/dist/esm/modules/auth/auth.controller.js.map +1 -1
  122. package/dist/esm/modules/auth/auth.router.js +76 -1
  123. package/dist/esm/modules/auth/auth.router.js.map +1 -1
  124. package/dist/esm/modules/auth/auth.service.js +219 -1
  125. package/dist/esm/modules/auth/utils/auth-error-objects.js +4 -1
  126. package/dist/esm/modules/auth/utils/helpers/auth.controller.helpers.js +73 -1
  127. package/dist/esm/modules/auth/utils/services/auth-action.service.js +90 -1
  128. package/dist/esm/modules/auth/utils/services/auth-action.service.js.map +1 -1
  129. package/dist/esm/modules/base/base.controller.js +165 -1
  130. package/dist/esm/modules/base/base.middlewares.js +81 -1
  131. package/dist/esm/modules/base/base.router.js +15 -1
  132. package/dist/esm/modules/base/base.service.js +500 -1
  133. package/dist/esm/modules/base/base.service.js.map +1 -1
  134. package/dist/esm/modules/base/types/base.service.types.js +2 -1
  135. package/dist/esm/modules/base/types/base.service.types.js.map +1 -1
  136. package/dist/esm/modules/base/utils/helpers/base.controller.helpers.js +76 -1
  137. package/dist/esm/modules/base/utils/helpers/base.middlewares.helpers.js +44 -1
  138. package/dist/esm/modules/base/utils/helpers/base.router.helpers.js +96 -1
  139. package/dist/esm/modules/base/utils/helpers/base.service.helpers.js +198 -1
  140. package/dist/esm/modules/base/utils/router-validator.js +14 -1
  141. package/dist/esm/modules/base/utils/service-hooks-manager.js +17 -1
  142. package/dist/esm/modules/email/email.service.js +97 -1
  143. package/dist/esm/modules/error-handler/error-handler.controller.js +107 -4
  144. package/dist/esm/modules/error-handler/utils/app-error.js +15 -1
  145. package/dist/esm/modules/error-handler/utils/catch-async.js +19 -1
  146. package/dist/esm/modules/error-handler/utils/error-handler.helpers.js +163 -3
  147. package/dist/esm/modules/file-upload/file-upload.controller.js +228 -1
  148. package/dist/esm/modules/file-upload/file-upload.router.js +54 -1
  149. package/dist/esm/modules/file-upload/file-upload.service.js +314 -1
  150. package/dist/esm/modules/file-upload/utils/helpers/file-upload.helpers.js +87 -1
  151. package/dist/esm/modules/swagger/swagger.router.js +32 -1
  152. package/dist/esm/modules/swagger/utils/helpers/get-authentication-json-schema-paths.js +333 -1
  153. package/dist/esm/modules/swagger/utils/helpers/get-swagger-default-configs.js +58 -1
  154. package/dist/esm/modules/swagger/utils/helpers/get-system-json-schema-paths.js +34 -1
  155. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-class-validator-json-schemas.js +42 -1
  156. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-prisma-json-schemas.js +26 -1
  157. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-system-json-schemas.js +46 -1
  158. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/generate-zod-json-schemas.js +28 -1
  159. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths.js +465 -1
  160. package/dist/esm/modules/swagger/utils/helpers/json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths.js +566 -1
  161. package/dist/esm/modules/swagger/utils/helpers/missing-json-schemas-generator.js +255 -1
  162. package/dist/esm/modules/swagger/utils/helpers/swagger.router.helpers.js +101 -1
  163. package/dist/esm/paths.js +3 -1
  164. package/dist/esm/server.js +85 -5
  165. package/dist/esm/types/arkos-config.js +2 -1
  166. package/dist/esm/types/arkos-config.js.map +1 -1
  167. package/dist/esm/types/auth.js +2 -1
  168. package/dist/esm/types/index.js +8 -1
  169. package/dist/esm/types/router-config.js +2 -1
  170. package/dist/esm/utils/arkos-env.js +7 -1
  171. package/dist/esm/utils/cli/build.js +208 -5
  172. package/dist/esm/utils/cli/dev.js +147 -3
  173. package/dist/esm/utils/cli/generate.js +103 -1
  174. package/dist/esm/utils/cli/index.js +94 -1
  175. package/dist/esm/utils/cli/index.js.map +1 -1
  176. package/dist/esm/utils/cli/prisma-generate.js +114 -0
  177. package/dist/esm/utils/cli/prisma-generate.js.map +1 -0
  178. package/dist/esm/utils/cli/start.js +96 -1
  179. package/dist/esm/utils/cli/utils/cli.helpers.js +16 -1
  180. package/dist/esm/utils/cli/utils/smart-fs-watcher.js +68 -1
  181. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js +33 -0
  182. package/dist/esm/utils/cli/utils/template-generator/templates/auth-configs-template.js.map +1 -0
  183. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js +18 -0
  184. package/dist/esm/utils/cli/utils/template-generator/templates/controller-template.js.map +1 -0
  185. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js +198 -0
  186. package/dist/esm/utils/cli/utils/template-generator/templates/hooks-template.js.map +1 -0
  187. package/dist/esm/utils/cli/utils/template-generator/templates/middlewares-template.js +285 -0
  188. package/dist/esm/utils/cli/utils/template-generator/templates/{generate-middlewares.js.map → middlewares-template.js.map} +1 -1
  189. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js +61 -0
  190. package/dist/esm/utils/cli/utils/template-generator/templates/query-options-template.js.map +1 -0
  191. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js +39 -0
  192. package/dist/esm/utils/cli/utils/template-generator/templates/router-template.js.map +1 -0
  193. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js +26 -0
  194. package/dist/esm/utils/cli/utils/template-generator/templates/service-template.js.map +1 -0
  195. package/dist/esm/utils/cli/utils/template-generators.js +28 -2
  196. package/dist/esm/utils/cli/utils/template-generators.js.map +1 -1
  197. package/dist/esm/utils/cli/utils/watermark-stamper.js +15 -3
  198. package/dist/esm/utils/dotenv.helpers.js +37 -1
  199. package/dist/esm/utils/dynamic-loader.js +254 -9
  200. package/dist/esm/utils/features/api.features.js +162 -1
  201. package/dist/esm/utils/features/change-case.features.js +31 -1
  202. package/dist/esm/utils/features/port-and-host-allocator.js +67 -1
  203. package/dist/esm/utils/helpers/api.features.helpers.js +106 -1
  204. package/dist/esm/utils/helpers/change-case.helpers.js +161 -1
  205. package/dist/esm/utils/helpers/deepmerge.helper.js +113 -1
  206. package/dist/esm/utils/helpers/dynamic-loader.helpers.js +69 -1
  207. package/dist/esm/utils/helpers/fs.helpers.js +48 -1
  208. package/dist/esm/utils/helpers/global.helpers.js +51 -1
  209. package/dist/esm/utils/helpers/prisma.helpers.js +32 -1
  210. package/dist/esm/utils/helpers/query-parser.helpers.js +40 -1
  211. package/dist/esm/utils/helpers/routers.helpers.js +29 -1
  212. package/dist/esm/utils/helpers/text.helpers.js +22 -1
  213. package/dist/esm/utils/prisma/prisma-json-schema-generator.js +448 -1
  214. package/dist/esm/utils/prisma/prisma-schema-parser.js +209 -4
  215. package/dist/esm/utils/prisma/types.js +2 -1
  216. package/dist/esm/utils/sheu.js +118 -1
  217. package/dist/esm/utils/validate-dto.js +11 -1
  218. package/dist/esm/utils/validate-schema.js +9 -1
  219. package/dist/types/modules/auth/utils/services/auth-action.service.d.ts +1 -1
  220. package/dist/types/modules/base/types/base.service.types.d.ts +12 -9
  221. package/dist/types/types/arkos-config.d.ts +3 -2
  222. package/dist/types/utils/cli/prisma-generate.d.ts +1 -0
  223. package/package.json +2 -2
  224. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  225. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  226. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  227. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  228. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  229. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  230. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  231. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  232. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  233. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  234. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  235. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  236. package/dist/cjs/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  237. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js +0 -21
  238. package/dist/esm/utils/cli/utils/template-generator/templates/generate-auth-configs-template.js.map +0 -1
  239. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js +0 -12
  240. package/dist/esm/utils/cli/utils/template-generator/templates/generate-controller-template.js.map +0 -1
  241. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js +0 -144
  242. package/dist/esm/utils/cli/utils/template-generator/templates/generate-hooks-template.js.map +0 -1
  243. package/dist/esm/utils/cli/utils/template-generator/templates/generate-middlewares.js +0 -256
  244. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js +0 -36
  245. package/dist/esm/utils/cli/utils/template-generator/templates/generate-prisma-query-options.js.map +0 -1
  246. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js +0 -18
  247. package/dist/esm/utils/cli/utils/template-generator/templates/generate-router-template.js.map +0 -1
  248. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js +0 -9
  249. package/dist/esm/utils/cli/utils/template-generator/templates/generate-service-template.js.map +0 -1
  250. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-auth-configs-template.d.ts → auth-configs-template.d.ts} +0 -0
  251. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-controller-template.d.ts → controller-template.d.ts} +0 -0
  252. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-hooks-template.d.ts → hooks-template.d.ts} +0 -0
  253. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-middlewares.d.ts → middlewares-template.d.ts} +0 -0
  254. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-prisma-query-options.d.ts → query-options-template.d.ts} +0 -0
  255. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-router-template.d.ts → router-template.d.ts} +0 -0
  256. /package/dist/types/utils/cli/utils/template-generator/templates/{generate-service-template.d.ts → service-template.d.ts} +0 -0
@@ -1 +1,260 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(exports,"__esModule",{value:!0});const prisma_json_schema_generator_1=__importDefault(require("../../../../utils/prisma/prisma-json-schema-generator"));class MissingJsonSchemasGenerator{extractModelNameFromSchemaRef(e){const t=e.match(/#\/components\/schemas\/(?:Create|Update|UpdateMany|FindOne|FindMany|CreateMany)?(.+?)(?:ModelSchema|Schema)$/);if(t){let n=t[1];return n.toLowerCase()==="auth"||n.toLowerCase()==="login"||n.toLowerCase()==="signup"||n.toLowerCase()==="getme"||n.toLowerCase()==="updateme"||n.toLowerCase()==="updatepassword"?"Auth":n}return null}extractActionFromOperationId(e){return e?e.includes("createMany")?"createMany":e.includes("updateMany")?"updateMany":e.includes("deleteMany")?"deleteMany":e.includes("updateMe")?"updateMe":e.includes("updatePassword")?"updatePassword":e.startsWith("create")?"createOne":e.startsWith("update")?"updateOne":e.startsWith("delete")?"deleteOne":e.startsWith("find")&&(e.includes("ById")||e.includes("One"))?"findOne":e.startsWith("find")?"findMany":e.includes("login")||e==="login"?"login":e.includes("signup")||e==="signup"?"signup":e.includes("getMe")||e==="getMe"?"getMe":e.includes("updateMe")||e==="updateMe"?"updateMe":e.includes("updatePassword")||e==="updatePassword"?"updatePassword":null:null}extractModelNameFromOperationId(e){if(!e)return null;let t=e.replace(/^(create|update|delete|find)Many/i,"").replace(/^(create|update|delete|find)/i,"").replace(/ById$/i,"").replace(/s$/,"");return e.toLowerCase().includes("login")||e.toLowerCase().includes("signup")||e.toLowerCase().includes("getme")||e.toLowerCase().includes("updateme")||e.toLowerCase().includes("updatepassword")?"Auth":t||null}extractSchemaRefsWithContext(e,t=new Map,n={}){return typeof e!="object"||e===null?t:Array.isArray(e)?(e.forEach(c=>this.extractSchemaRefsWithContext(c,t,n)),t):(e.operationId&&typeof e.operationId=="string"&&(n={...n,operationId:e.operationId}),e.$ref&&typeof e.$ref=="string"&&t.set(e.$ref,{...n}),Object.values(e).forEach(c=>{this.extractSchemaRefsWithContext(c,t,n)}),t)}extractPathSchemaRefs(e){const t=new Map;return Object.entries(e).forEach(([n,c])=>{c&&Object.entries(c).forEach(([f,u])=>{if(!u||typeof u!="object")return;const o={method:f,path:n,operationId:u.operationId};this.extractSchemaRefsWithContext(u,t,o)})}),t}getSchemaNameFromRef(e){const t=e.match(/#\/components\/schemas\/(.+)$/);return t?t[1]:null}async generateMissingJsonSchemas(e,t,n){const c={},f=this.extractPathSchemaRefs(e),u=new Map;for(const[o,l]of f){const i=this.getSchemaNameFromRef(o);if(!i||t[i]||!i.includes("ModelSchema")&&!i.includes("Schema"))continue;let s=null,a=null;l.operationId&&(s=this.extractModelNameFromOperationId(l.operationId),a=this.extractActionFromOperationId(l.operationId)),(!s||!a)&&(s=s||this.extractModelNameFromSchemaRef(o),a=a||this.extractActionFromSchemaRef(o)),s&&a&&(u.has(s)||u.set(s,new Set),u.get(s).add(a))}for(const[o,l]of u)try{const i=Array.from(l),s=await prisma_json_schema_generator_1.default.generateModelSchemas({modelName:o,arkosConfig:n,schemasToGenerate:i});Object.entries(s).forEach(([a,d])=>{let r=a;["auth","login","me","password","me"].includes(o.toLowerCase())?a==="LoginSchema"?r="LoginSchema":a==="SignupSchema"?r="SignupSchema":a==="GetMeSchema"?r="GetMeSchema":a==="UpdateMeSchema"?r="UpdateMeSchema":a==="UpdatePasswordSchema"&&(r="UpdatePasswordSchema"):a.includes("ModelSchema")?r=a:r=`${a}ModelSchema`,c[r]=d})}catch{}return c}extractActionFromSchemaRef(e){return e.includes("CreateMany")?"createMany":e.includes("Create")?"createOne":e.includes("UpdateMany")?"updateMany":e.includes("Update")&&!e.includes("UpdateMe")&&!e.includes("UpdatePassword")?"updateOne":e.includes("FindMany")?"findMany":e.includes("FindOne")?"findOne":e.includes("Login")?"login":e.includes("Signup")?"signup":e.includes("GetMe")?"getMe":e.includes("UpdateMe")?"updateMe":e.includes("UpdatePassword")?"updatePassword":null}analyzeMissingSchemas(e,t){const n=this.extractPathSchemaRefs(e),c=[],f=[],u=[],o=[];for(const[l,i]of n){const s={ref:l,context:i};c.push(s);const a=this.getSchemaNameFromRef(l);if(a)if(t[a])u.push(s);else{f.push(s);let d=null,r=null;i.operationId&&(d=this.extractModelNameFromOperationId(i.operationId),r=this.extractActionFromOperationId(i.operationId)),(!d||!r)&&(d=d||this.extractModelNameFromSchemaRef(l),r=r||this.extractActionFromSchemaRef(l)),d&&r&&o.push({model:d,action:r,ref:l,operationId:i.operationId})}}return{allRefs:c,missingRefs:f,existingRefs:u,modelActions:o}}}const missingJsonSchemaGenerator=new MissingJsonSchemasGenerator;exports.default=missingJsonSchemaGenerator;
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const prisma_json_schema_generator_1 = __importDefault(require("../../../../utils/prisma/prisma-json-schema-generator"));
7
+ class MissingJsonSchemasGenerator {
8
+ extractModelNameFromSchemaRef(schemaRef) {
9
+ const match = schemaRef.match(/#\/components\/schemas\/(?:Create|Update|UpdateMany|FindOne|FindMany|CreateMany)?(.+?)(?:ModelSchema|Schema)$/);
10
+ if (match) {
11
+ let modelName = match[1];
12
+ if (modelName.toLowerCase() === "auth" ||
13
+ modelName.toLowerCase() === "login" ||
14
+ modelName.toLowerCase() === "signup" ||
15
+ modelName.toLowerCase() === "getme" ||
16
+ modelName.toLowerCase() === "updateme" ||
17
+ modelName.toLowerCase() === "updatepassword") {
18
+ return "Auth";
19
+ }
20
+ return modelName;
21
+ }
22
+ return null;
23
+ }
24
+ extractActionFromOperationId(operationId) {
25
+ if (!operationId)
26
+ return null;
27
+ if (operationId.includes("createMany"))
28
+ return "createMany";
29
+ if (operationId.includes("updateMany"))
30
+ return "updateMany";
31
+ if (operationId.includes("deleteMany"))
32
+ return "deleteMany";
33
+ if (operationId.includes("updateMe"))
34
+ return "updateMe";
35
+ if (operationId.includes("updatePassword"))
36
+ return "updatePassword";
37
+ if (operationId.startsWith("create"))
38
+ return "createOne";
39
+ if (operationId.startsWith("update"))
40
+ return "updateOne";
41
+ if (operationId.startsWith("delete"))
42
+ return "deleteOne";
43
+ if (operationId.startsWith("find") &&
44
+ (operationId.includes("ById") || operationId.includes("One")))
45
+ return "findOne";
46
+ if (operationId.startsWith("find"))
47
+ return "findMany";
48
+ if (operationId.includes("login") || operationId === "login")
49
+ return "login";
50
+ if (operationId.includes("signup") || operationId === "signup")
51
+ return "signup";
52
+ if (operationId.includes("getMe") || operationId === "getMe")
53
+ return "getMe";
54
+ if (operationId.includes("updateMe") || operationId === "updateMe")
55
+ return "updateMe";
56
+ if (operationId.includes("updatePassword") ||
57
+ operationId === "updatePassword")
58
+ return "updatePassword";
59
+ return null;
60
+ }
61
+ extractModelNameFromOperationId(operationId) {
62
+ if (!operationId)
63
+ return null;
64
+ let modelName = operationId
65
+ .replace(/^(create|update|delete|find)Many/i, "")
66
+ .replace(/^(create|update|delete|find)/i, "")
67
+ .replace(/ById$/i, "")
68
+ .replace(/s$/, "");
69
+ if (operationId.toLowerCase().includes("login") ||
70
+ operationId.toLowerCase().includes("signup") ||
71
+ operationId.toLowerCase().includes("getme") ||
72
+ operationId.toLowerCase().includes("updateme") ||
73
+ operationId.toLowerCase().includes("updatepassword")) {
74
+ return "Auth";
75
+ }
76
+ return modelName || null;
77
+ }
78
+ extractSchemaRefsWithContext(obj, refs = new Map(), context = {}) {
79
+ if (typeof obj !== "object" || obj === null) {
80
+ return refs;
81
+ }
82
+ if (Array.isArray(obj)) {
83
+ obj.forEach((item) => this.extractSchemaRefsWithContext(item, refs, context));
84
+ return refs;
85
+ }
86
+ if (obj.operationId && typeof obj.operationId === "string") {
87
+ context = { ...context, operationId: obj.operationId };
88
+ }
89
+ if (obj.$ref && typeof obj.$ref === "string") {
90
+ refs.set(obj.$ref, { ...context });
91
+ }
92
+ Object.values(obj).forEach((value) => {
93
+ this.extractSchemaRefsWithContext(value, refs, context);
94
+ });
95
+ return refs;
96
+ }
97
+ extractPathSchemaRefs(paths) {
98
+ const refs = new Map();
99
+ Object.entries(paths).forEach(([path, pathItem]) => {
100
+ if (!pathItem)
101
+ return;
102
+ Object.entries(pathItem).forEach(([method, operation]) => {
103
+ if (!operation || typeof operation !== "object")
104
+ return;
105
+ const context = {
106
+ method,
107
+ path,
108
+ operationId: operation.operationId,
109
+ };
110
+ this.extractSchemaRefsWithContext(operation, refs, context);
111
+ });
112
+ });
113
+ return refs;
114
+ }
115
+ getSchemaNameFromRef(ref) {
116
+ const match = ref.match(/#\/components\/schemas\/(.+)$/);
117
+ return match ? match[1] : null;
118
+ }
119
+ async generateMissingJsonSchemas(currentPaths, currentJsonSchemas, arkosConfig) {
120
+ const missingSchemas = {};
121
+ const schemaRefsWithContext = this.extractPathSchemaRefs(currentPaths);
122
+ const modelActions = new Map();
123
+ for (const [ref, context] of schemaRefsWithContext) {
124
+ const schemaName = this.getSchemaNameFromRef(ref);
125
+ if (!schemaName)
126
+ continue;
127
+ if (currentJsonSchemas[schemaName])
128
+ continue;
129
+ if (!schemaName.includes("ModelSchema") && !schemaName.includes("Schema"))
130
+ continue;
131
+ let modelName = null;
132
+ let action = null;
133
+ if (context.operationId) {
134
+ modelName = this.extractModelNameFromOperationId(context.operationId);
135
+ action = this.extractActionFromOperationId(context.operationId);
136
+ }
137
+ if (!modelName || !action) {
138
+ modelName = modelName || this.extractModelNameFromSchemaRef(ref);
139
+ action = action || this.extractActionFromSchemaRef(ref);
140
+ }
141
+ if (modelName && action) {
142
+ if (!modelActions.has(modelName))
143
+ modelActions.set(modelName, new Set());
144
+ modelActions.get(modelName).add(action);
145
+ }
146
+ }
147
+ for (const [modelName, actions] of modelActions) {
148
+ try {
149
+ const actionsArray = Array.from(actions);
150
+ const generatedSchemas = await prisma_json_schema_generator_1.default.generateModelSchemas({
151
+ modelName,
152
+ arkosConfig,
153
+ schemasToGenerate: actionsArray,
154
+ });
155
+ Object.entries(generatedSchemas).forEach(([key, schema]) => {
156
+ let mappedKey = key;
157
+ const authModuleModel = ["auth", "login", "me", "password", "me"];
158
+ if (authModuleModel.includes(modelName.toLowerCase())) {
159
+ if (key === "LoginSchema")
160
+ mappedKey = "LoginSchema";
161
+ else if (key === "SignupSchema")
162
+ mappedKey = "SignupSchema";
163
+ else if (key === "GetMeSchema")
164
+ mappedKey = "GetMeSchema";
165
+ else if (key === "UpdateMeSchema")
166
+ mappedKey = "UpdateMeSchema";
167
+ else if (key === "UpdatePasswordSchema")
168
+ mappedKey = "UpdatePasswordSchema";
169
+ }
170
+ else {
171
+ if (key.includes("ModelSchema")) {
172
+ mappedKey = key;
173
+ }
174
+ else {
175
+ mappedKey = `${key}ModelSchema`;
176
+ }
177
+ }
178
+ missingSchemas[mappedKey] = schema;
179
+ });
180
+ }
181
+ catch (error) {
182
+ }
183
+ }
184
+ return missingSchemas;
185
+ }
186
+ extractActionFromSchemaRef(schemaRef) {
187
+ if (schemaRef.includes("CreateMany"))
188
+ return "createMany";
189
+ if (schemaRef.includes("Create"))
190
+ return "createOne";
191
+ if (schemaRef.includes("UpdateMany"))
192
+ return "updateMany";
193
+ if (schemaRef.includes("Update") &&
194
+ !schemaRef.includes("UpdateMe") &&
195
+ !schemaRef.includes("UpdatePassword"))
196
+ return "updateOne";
197
+ if (schemaRef.includes("FindMany"))
198
+ return "findMany";
199
+ if (schemaRef.includes("FindOne"))
200
+ return "findOne";
201
+ if (schemaRef.includes("Login"))
202
+ return "login";
203
+ if (schemaRef.includes("Signup"))
204
+ return "signup";
205
+ if (schemaRef.includes("GetMe"))
206
+ return "getMe";
207
+ if (schemaRef.includes("UpdateMe"))
208
+ return "updateMe";
209
+ if (schemaRef.includes("UpdatePassword"))
210
+ return "updatePassword";
211
+ return null;
212
+ }
213
+ analyzeMissingSchemas(currentPaths, currentJsonSchemas) {
214
+ const schemaRefsWithContext = this.extractPathSchemaRefs(currentPaths);
215
+ const allRefs = [];
216
+ const missingRefs = [];
217
+ const existingRefs = [];
218
+ const modelActions = [];
219
+ for (const [ref, context] of schemaRefsWithContext) {
220
+ const refWithContext = { ref, context };
221
+ allRefs.push(refWithContext);
222
+ const schemaName = this.getSchemaNameFromRef(ref);
223
+ if (!schemaName)
224
+ continue;
225
+ if (currentJsonSchemas[schemaName]) {
226
+ existingRefs.push(refWithContext);
227
+ }
228
+ else {
229
+ missingRefs.push(refWithContext);
230
+ let modelName = null;
231
+ let action = null;
232
+ if (context.operationId) {
233
+ modelName = this.extractModelNameFromOperationId(context.operationId);
234
+ action = this.extractActionFromOperationId(context.operationId);
235
+ }
236
+ if (!modelName || !action) {
237
+ modelName = modelName || this.extractModelNameFromSchemaRef(ref);
238
+ action = action || this.extractActionFromSchemaRef(ref);
239
+ }
240
+ if (modelName && action) {
241
+ modelActions.push({
242
+ model: modelName,
243
+ action,
244
+ ref,
245
+ operationId: context.operationId,
246
+ });
247
+ }
248
+ }
249
+ }
250
+ return {
251
+ allRefs,
252
+ missingRefs,
253
+ existingRefs,
254
+ modelActions,
255
+ };
256
+ }
257
+ }
258
+ const missingJsonSchemaGenerator = new MissingJsonSchemasGenerator();
259
+ exports.default = missingJsonSchemaGenerator;
260
+ //# sourceMappingURL=missing-json-schemas-generator.js.map
@@ -1 +1,112 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.getOpenAPIJsonSchemasByConfigMode=getOpenAPIJsonSchemasByConfigMode,exports.getCorrectJsonSchemaName=getCorrectJsonSchemaName,exports.kebabToHuman=kebabToHuman,exports.getSchemaRef=getSchemaRef,exports.generatePathsForModels=generatePathsForModels,exports.localValidatorFileExists=localValidatorFileExists;const utils_1=require("../../../../exports/utils"),get_system_json_schema_paths_1=require("./get-system-json-schema-paths"),get_authentication_json_schema_paths_1=__importDefault(require("./get-authentication-json-schema-paths")),generate_zod_json_schemas_1=__importDefault(require("./json-schema-generators/generate-zod-json-schemas")),generate_class_validator_json_schemas_1=require("./json-schema-generators/generate-class-validator-json-schemas"),generate_prisma_json_schemas_1=require("./json-schema-generators/generate-prisma-json-schemas"),generate_prisma_model_main_routes_paths_1=require("./json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths"),generate_prisma_model_parent_routes_paths_1=__importDefault(require("./json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths")),sheu_1=__importDefault(require("../../../../utils/sheu")),prisma_schema_parser_1=__importDefault(require("../../../../utils/prisma/prisma-schema-parser")),dynamic_loader_1=require("../../../../utils/dynamic-loader");async function getOpenAPIJsonSchemasByConfigMode(e){switch(e?.swagger.mode){case"prisma":return await(0,generate_prisma_json_schemas_1.generatePrismaJsonSchemas)(e);case"class-validator":return await(0,generate_class_validator_json_schemas_1.generateClassValidatorJsonSchemas)();case"zod":return await(0,generate_zod_json_schemas_1.default)();default:throw Error("Unknown mode for auto documentation, supported values are prisma, class-validator, zod or json-schemas")}}function getCorrectJsonSchemaName(e,t,s){const a=(0,utils_1.pascalCase)(t);return`${{model:a,create:`Create${a}`,createMany:`CreateMany${a}`,findOne:`FindOne${a}`,findMany:`FindMany${a}`,update:`Update${a}`,updateMany:`UpdateMany${a}`,query:`Query${a}`,login:"Login",signup:"Signup",updateMe:"UpdateMe",updatePassword:"UpdatePassword"}[e]??(0,utils_1.pascalCase)(e)}${s}`}function kebabToHuman(e){return e.split("-").map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function getSchemaRef(e,t){if(e=(0,utils_1.pascalCase)(e),["getme","updateme","login","signup","updatepassword","password","me"].some(r=>r===e.toLowerCase())&&t==="prisma")return`#/components/schemas/${e}Schema`;switch(t){case"prisma":return`#/components/schemas/${e}ModelSchema`;case"zod":return`#/components/schemas/${e}Schema`;case"class-validator":return`#/components/schemas/${e}Dto`;default:return sheu_1.default.error(`Unknown Arkos.js swagger documentation provided, available options are prisma, zod or class-validator but received ${t}`),""}}async function generatePathsForModels(e){if(!e?.swagger)return{};let s={};const a=prisma_schema_parser_1.default.getModelsAsArrayOfStrings();for(const r of a)await(0,generate_prisma_model_main_routes_paths_1.generatePrismaModelMainRoutesPaths)(r,s,e),await(0,generate_prisma_model_parent_routes_paths_1.default)(r,s,e);return s={...s,...(0,get_system_json_schema_paths_1.getSystemJsonSchemaPaths)()},s={...s,...await(0,get_authentication_json_schema_paths_1.default)(e)||{}},s}async function localValidatorFileExists(e,t,s){return s?.swagger?.mode==="prisma"?!1:!!(0,dynamic_loader_1.getModuleComponents)(t)?.[s.validation?.resolver==="zod"?"schemas":"dtos"]?.[(0,utils_1.camelCase)(e)]}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getOpenAPIJsonSchemasByConfigMode = getOpenAPIJsonSchemasByConfigMode;
7
+ exports.getCorrectJsonSchemaName = getCorrectJsonSchemaName;
8
+ exports.kebabToHuman = kebabToHuman;
9
+ exports.getSchemaRef = getSchemaRef;
10
+ exports.generatePathsForModels = generatePathsForModels;
11
+ exports.localValidatorFileExists = localValidatorFileExists;
12
+ const utils_1 = require("../../../../exports/utils");
13
+ const get_system_json_schema_paths_1 = require("./get-system-json-schema-paths");
14
+ const get_authentication_json_schema_paths_1 = __importDefault(require("./get-authentication-json-schema-paths"));
15
+ const generate_zod_json_schemas_1 = __importDefault(require("./json-schema-generators/generate-zod-json-schemas"));
16
+ const generate_class_validator_json_schemas_1 = require("./json-schema-generators/generate-class-validator-json-schemas");
17
+ const generate_prisma_json_schemas_1 = require("./json-schema-generators/generate-prisma-json-schemas");
18
+ const generate_prisma_model_main_routes_paths_1 = require("./json-schema-generators/prisma-models/generate-prisma-model-main-routes-paths");
19
+ const generate_prisma_model_parent_routes_paths_1 = __importDefault(require("./json-schema-generators/prisma-models/generate-prisma-model-parent-routes-paths"));
20
+ const sheu_1 = __importDefault(require("../../../../utils/sheu"));
21
+ const prisma_schema_parser_1 = __importDefault(require("../../../../utils/prisma/prisma-schema-parser"));
22
+ const dynamic_loader_1 = require("../../../../utils/dynamic-loader");
23
+ async function getOpenAPIJsonSchemasByConfigMode(arkosConfig) {
24
+ switch (arkosConfig?.swagger.mode) {
25
+ case "prisma":
26
+ return await (0, generate_prisma_json_schemas_1.generatePrismaJsonSchemas)(arkosConfig);
27
+ case "class-validator":
28
+ return await (0, generate_class_validator_json_schemas_1.generateClassValidatorJsonSchemas)();
29
+ case "zod":
30
+ return await (0, generate_zod_json_schemas_1.default)();
31
+ default:
32
+ throw Error("Unknown mode for auto documentation, supported values are prisma, class-validator, zod or json-schemas");
33
+ }
34
+ }
35
+ function getCorrectJsonSchemaName(type, modelName, suffix) {
36
+ const pascalModelName = (0, utils_1.pascalCase)(modelName);
37
+ const map = {
38
+ model: pascalModelName,
39
+ create: `Create${pascalModelName}`,
40
+ createMany: `CreateMany${pascalModelName}`,
41
+ findOne: `FindOne${pascalModelName}`,
42
+ findMany: `FindMany${pascalModelName}`,
43
+ update: `Update${pascalModelName}`,
44
+ updateMany: `UpdateMany${pascalModelName}`,
45
+ query: `Query${pascalModelName}`,
46
+ login: "Login",
47
+ signup: "Signup",
48
+ updateMe: "UpdateMe",
49
+ updatePassword: "UpdatePassword",
50
+ };
51
+ const baseName = map[type] ?? (0, utils_1.pascalCase)(type);
52
+ return `${baseName}${suffix}`;
53
+ }
54
+ function kebabToHuman(kebabStr) {
55
+ return kebabStr
56
+ .split("-")
57
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
58
+ .join(" ");
59
+ }
60
+ function getSchemaRef(schemaName, mode) {
61
+ schemaName = (0, utils_1.pascalCase)(schemaName);
62
+ const specialCases = [
63
+ "getme",
64
+ "updateme",
65
+ "login",
66
+ "signup",
67
+ "updatepassword",
68
+ "password",
69
+ "me",
70
+ ];
71
+ const isSpecialCase = specialCases.some((keyword) => keyword === schemaName.toLowerCase());
72
+ if (isSpecialCase && mode === "prisma")
73
+ return `#/components/schemas/${schemaName}Schema`;
74
+ switch (mode) {
75
+ case "prisma":
76
+ return `#/components/schemas/${schemaName}ModelSchema`;
77
+ case "zod":
78
+ return `#/components/schemas/${schemaName}Schema`;
79
+ case "class-validator":
80
+ return `#/components/schemas/${schemaName}Dto`;
81
+ default:
82
+ sheu_1.default.error(`Unknown Arkos.js swagger documentation provided, available options are prisma, zod or class-validator but received ${mode}`);
83
+ return "";
84
+ }
85
+ }
86
+ async function generatePathsForModels(arkosConfig) {
87
+ const swaggerConfig = arkosConfig?.swagger;
88
+ if (!swaggerConfig)
89
+ return {};
90
+ let paths = {};
91
+ const models = prisma_schema_parser_1.default.getModelsAsArrayOfStrings();
92
+ for (const model of models) {
93
+ await (0, generate_prisma_model_main_routes_paths_1.generatePrismaModelMainRoutesPaths)(model, paths, arkosConfig);
94
+ await (0, generate_prisma_model_parent_routes_paths_1.default)(model, paths, arkosConfig);
95
+ }
96
+ paths = {
97
+ ...paths,
98
+ ...(0, get_system_json_schema_paths_1.getSystemJsonSchemaPaths)(),
99
+ };
100
+ paths = {
101
+ ...paths,
102
+ ...((await (0, get_authentication_json_schema_paths_1.default)(arkosConfig)) || {}),
103
+ };
104
+ return paths;
105
+ }
106
+ async function localValidatorFileExists(action, modelName, arkosConfig) {
107
+ if (arkosConfig?.swagger?.mode === "prisma")
108
+ return false;
109
+ const moduleComponents = (0, dynamic_loader_1.getModuleComponents)(modelName);
110
+ return !!moduleComponents?.[arkosConfig.validation?.resolver === "zod" ? "schemas" : "dtos"]?.[(0, utils_1.camelCase)(action)];
111
+ }
112
+ //# sourceMappingURL=swagger.router.helpers.js.map
package/dist/cjs/paths.js CHANGED
@@ -1 +1,9 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.ROOT_DIR=void 0;const path_1=__importDefault(require("path"));exports.ROOT_DIR=path_1.default.resolve(__dirname,"../..");
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.ROOT_DIR = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ exports.ROOT_DIR = path_1.default.resolve(__dirname, "../..");
9
+ //# sourceMappingURL=paths.js.map
@@ -1,5 +1,94 @@
1
- "use strict";var __importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.server=exports._arkosConfig=void 0,exports.terminateApplicationRunningProcessAndServer=terminateApplicationRunningProcessAndServer,exports.getArkosConfig=getArkosConfig,exports.getExpressApp=getExpressApp,exports.initApp=initApp;const app_1=require("./app"),deepmerge_helper_1=__importDefault(require("./utils/helpers/deepmerge.helper")),http_1=__importDefault(require("http")),sheu_1=__importDefault(require("./utils/sheu")),text_helpers_1=require("./utils/helpers/text.helpers"),port_and_host_allocator_1=__importDefault(require("./utils/features/port-and-host-allocator"));process.on("uncaughtException",e=>{e.message.includes("EPIPE")||(sheu_1.default.error(`
2
- UNCAUGHT EXCEPTION! SHUTTING DOWN...
3
- `,{timestamp:!0,bold:!0}),console.error(e.name,e.message),console.error(e),process.exit(1))});let server,_app;exports._arkosConfig={welcomeMessage:"Welcome to our RESTful API generated by Arkos, find out more about Arkos at www.arkosjs.com",port:Number(process.env.CLI_PORT)||Number(process.env.PORT)||8e3,host:process.env.CLI_HOST||process.env.HOST||"localhost",fileUpload:{baseUploadDir:"uploads",baseRoute:"/api/uploads"},routers:{strict:!1},available:!1};async function initApp(e={}){try{exports._arkosConfig.available=!0;const r=await port_and_host_allocator_1.default.getHostAndAvailablePort(process.env,e);exports._arkosConfig=(0,deepmerge_helper_1.default)(exports._arkosConfig,e),_app=await(0,app_1.bootstrap)(exports._arkosConfig);const t=new Date().toTimeString().split(" ")[0];return"port"in e&&e?.port!==void 0||!("port"in e)?(exports.server=server=http_1.default.createServer(_app),exports._arkosConfig?.configureServer&&await exports._arkosConfig.configureServer(server),server.listen(Number(r?.port),r.host==="localhost"?"127.0.0.1":r.host,()=>{const o=`${sheu_1.default.gray(t)} {{server}} waiting on http://${r?.host}:${r?.port}`;sheu_1.default.ready(o.replace("{{server}}",`${(0,text_helpers_1.capitalize)(process.env.NODE_ENV||"development")} server`)),exports._arkosConfig?.swagger?.mode&&sheu_1.default.ready(`${o.replace("{{server}}","Documentation")}${exports._arkosConfig?.swagger?.endpoint||"/api/docs"}`)})):sheu_1.default.warn(`${sheu_1.default.gray(t)} Port set to undefined, hence no internal http server was setup.`),_app}catch(r){sheu_1.default.error(r?.message||"Something went wrong while starting your application!"),console.error(r)}}process.on("unhandledRejection",e=>{sheu_1.default.error(`
4
- UNHANDLED REJECTION! SHUTTING DOWN...
5
- `,{timestamp:!0,bold:!0}),console.error(e.name,e.message),console.error(e),server?.close(()=>{process.exit(1)})});function terminateApplicationRunningProcessAndServer(){server?.close(()=>{process.exit(1)})}function getArkosConfig(){return exports._arkosConfig}function getExpressApp(){return _app}
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.server = exports._arkosConfig = void 0;
7
+ exports.terminateApplicationRunningProcessAndServer = terminateApplicationRunningProcessAndServer;
8
+ exports.getArkosConfig = getArkosConfig;
9
+ exports.getExpressApp = getExpressApp;
10
+ exports.initApp = initApp;
11
+ const app_1 = require("./app");
12
+ const deepmerge_helper_1 = __importDefault(require("./utils/helpers/deepmerge.helper"));
13
+ const http_1 = __importDefault(require("http"));
14
+ const sheu_1 = __importDefault(require("./utils/sheu"));
15
+ const text_helpers_1 = require("./utils/helpers/text.helpers");
16
+ const port_and_host_allocator_1 = __importDefault(require("./utils/features/port-and-host-allocator"));
17
+ process.on("uncaughtException", (err) => {
18
+ if (err.message.includes("EPIPE"))
19
+ return;
20
+ sheu_1.default.error("\nUNCAUGHT EXCEPTION! SHUTTING DOWN...\n", {
21
+ timestamp: true,
22
+ bold: true,
23
+ });
24
+ console.error(err.name, err.message);
25
+ console.error(err);
26
+ process.exit(1);
27
+ });
28
+ let server;
29
+ let _app;
30
+ exports._arkosConfig = {
31
+ welcomeMessage: "Welcome to our RESTful API generated by Arkos, find out more about Arkos at www.arkosjs.com",
32
+ port: Number(process.env.CLI_PORT) || Number(process.env.PORT) || 8000,
33
+ host: process.env.CLI_HOST || process.env.HOST || "localhost",
34
+ fileUpload: {
35
+ baseUploadDir: "uploads",
36
+ baseRoute: "/api/uploads",
37
+ },
38
+ routers: {
39
+ strict: false,
40
+ },
41
+ available: false,
42
+ };
43
+ async function initApp(arkosConfig = {}) {
44
+ try {
45
+ exports._arkosConfig.available = true;
46
+ const portAndHost = await port_and_host_allocator_1.default.getHostAndAvailablePort(process.env, arkosConfig);
47
+ exports._arkosConfig = (0, deepmerge_helper_1.default)(exports._arkosConfig, arkosConfig);
48
+ _app = await (0, app_1.bootstrap)(exports._arkosConfig);
49
+ const time = new Date().toTimeString().split(" ")[0];
50
+ if (("port" in arkosConfig && arkosConfig?.port !== undefined) ||
51
+ !("port" in arkosConfig)) {
52
+ exports.server = server = http_1.default.createServer(_app);
53
+ if (exports._arkosConfig?.configureServer)
54
+ await exports._arkosConfig.configureServer(server);
55
+ server.listen(Number(portAndHost?.port), portAndHost.host === "localhost" ? "127.0.0.1" : portAndHost.host, () => {
56
+ const message = `${sheu_1.default.gray(time)} {{server}} waiting on http://${portAndHost?.host}:${portAndHost?.port}`;
57
+ sheu_1.default.ready(message.replace("{{server}}", `${(0, text_helpers_1.capitalize)(process.env.NODE_ENV || "development")} server`));
58
+ if (exports._arkosConfig?.swagger?.mode)
59
+ sheu_1.default.ready(`${message.replace("{{server}}", "Documentation")}${exports._arkosConfig?.swagger?.endpoint || "/api/docs"}`);
60
+ });
61
+ }
62
+ else {
63
+ sheu_1.default.warn(`${sheu_1.default.gray(time)} Port set to undefined, hence no internal http server was setup.`);
64
+ }
65
+ return _app;
66
+ }
67
+ catch (err) {
68
+ sheu_1.default.error(err?.message || "Something went wrong while starting your application!");
69
+ console.error(err);
70
+ }
71
+ }
72
+ process.on("unhandledRejection", (err) => {
73
+ sheu_1.default.error("\nUNHANDLED REJECTION! SHUTTING DOWN...\n", {
74
+ timestamp: true,
75
+ bold: true,
76
+ });
77
+ console.error(err.name, err.message);
78
+ console.error(err);
79
+ server?.close(() => {
80
+ process.exit(1);
81
+ });
82
+ });
83
+ function terminateApplicationRunningProcessAndServer() {
84
+ server?.close(() => {
85
+ process.exit(1);
86
+ });
87
+ }
88
+ function getArkosConfig() {
89
+ return exports._arkosConfig;
90
+ }
91
+ function getExpressApp() {
92
+ return _app;
93
+ }
94
+ //# sourceMappingURL=server.js.map
@@ -1 +1,3 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=arkos-config.js.map