@paralect/hive 0.1.50-alpha.3 → 0.1.50

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 (294) hide show
  1. package/.claude/settings.local.json +13 -0
  2. package/cli/helpers/execCommand.js +10 -10
  3. package/cli/helpers/isProjectInit.js +3 -3
  4. package/cli/helpers/mergeDirs.js +1 -1
  5. package/cli/hive.js +105 -105
  6. package/{test-app → framework}/.cursor/commands/add-service.md +6 -6
  7. package/{test-app → framework}/.cursor/skills/hive-overview/SKILL.md +1 -1
  8. package/{test-app → framework}/.cursor/skills/hive-service/SKILL.md +2 -2
  9. package/framework/bin/start.sh +2 -0
  10. package/{.hive/bootstrap-hive.js → framework/bootstrap-hive.ts} +4 -4
  11. package/{.hive → framework}/package-lock.json +212 -156
  12. package/framework/package.json +42 -0
  13. package/{.hive/src/app.js → framework/src/app.ts} +1 -1
  14. package/{.hive/src/bullMqBus.js → framework/src/bullMqBus.ts} +1 -1
  15. package/{.hive/src/bullMqWrapper.js → framework/src/bullMqWrapper.ts} +1 -1
  16. package/{.hive/src/app-config/index.js → framework/src/config/index.ts} +7 -7
  17. package/{.hive/src/db.js → framework/src/db.ts} +21 -6
  18. package/framework/src/endpoint.ts +132 -0
  19. package/framework/src/helpers/generateDbTypes.ts +47 -0
  20. package/{.hive/src/helpers/getMiddlewares.js → framework/src/helpers/getMiddlewares.ts} +1 -1
  21. package/{.hive/src/helpers/getResourceEndpoints.js → framework/src/helpers/getResourceEndpoints.ts} +8 -8
  22. package/{.hive/src/helpers/getResources.js → framework/src/helpers/getResources.ts} +1 -1
  23. package/{.hive/src/helpers/getSchemas.js → framework/src/helpers/getSchemas.ts} +13 -13
  24. package/framework/src/index.ts +3 -0
  25. package/{.hive/src/ioEmitter.js → framework/src/ioEmitter.ts} +1 -1
  26. package/{.hive/src/lib/node-mongo/src/mongo-query-service.js → framework/src/lib/node-mongo/src/mongo-query-service.ts} +18 -7
  27. package/{.hive/src/lib/node-mongo/src/mongo-service.js → framework/src/lib/node-mongo/src/mongo-service.ts} +17 -9
  28. package/{starter/src/logger.js → framework/src/logger.ts} +4 -3
  29. package/{.hive/src/migrations/migrations-log/migration-log.schema.js → framework/src/migrations/migrations-log/migration-log.schema.ts} +1 -1
  30. package/{.hive/src/migrations/migrations-log/migration-log.service.js → framework/src/migrations/migrations-log/migration-log.service.ts} +1 -1
  31. package/{.hive/src/migrations/migrations.schema.js → framework/src/migrations/migrations.schema.ts} +1 -1
  32. package/{.hive/src/resources/_dev/endpoints/triggerSchedulerHandler.js → framework/src/resources/_dev/endpoints/triggerSchedulerHandler.ts} +2 -1
  33. package/framework/src/resources/health/endpoints/get.ts +14 -0
  34. package/{.hive/src/resources/schemaMappings/schemaMappings.schema.js → framework/src/resources/schemaMappings/schemaMappings.schema.ts} +1 -1
  35. package/{.hive/src/routes/index.js → framework/src/routes/index.ts} +23 -27
  36. package/framework/src/schema.ts +3 -0
  37. package/{.hive/src/services/emailService.js → framework/src/services/emailService.ts} +1 -1
  38. package/{.hive/src/socketIo.js → framework/src/socketIo.ts} +1 -1
  39. package/{.hive → framework}/tsconfig.json +17 -13
  40. package/package.json +43 -51
  41. package/starter/hive/autoMap/schemaMappings.json +1 -0
  42. package/starter/hive/config/.env.example +11 -0
  43. package/starter/hive/config/app.ts +19 -0
  44. package/{.hive/src/services/setCookie.js → starter/hive/helpers/setCookie.ts} +1 -2
  45. package/starter/hive/middlewares/_global.ts +9 -0
  46. package/{.hive/src/middlewares/attachUser.js → starter/hive/middlewares/attachUser.ts} +2 -2
  47. package/{.hive/src/middlewares/shouldExist.js → starter/hive/middlewares/shouldExist.ts} +1 -1
  48. package/{.hive/src/middlewares/shouldNotExist.js → starter/hive/middlewares/shouldNotExist.ts} +1 -1
  49. package/starter/hive/resources/files/endpoints/upload.ts +25 -0
  50. package/starter/hive/resources/files/files.schema.ts +20 -0
  51. package/{.hive/src/resources/tokens/methods/storeToken.js → starter/hive/resources/tokens/methods/storeToken.ts} +3 -3
  52. package/{.hive/src/resources/tokens/tokens.schema.js → starter/hive/resources/tokens/tokens.schema.ts} +1 -2
  53. package/starter/hive/resources/users/endpoints/getCurrentUser.ts +12 -0
  54. package/starter/hive/resources/users/endpoints/getUserProfile.ts +17 -0
  55. package/{.hive/src/resources/users/users.schema.js → starter/hive/resources/users/users.schema.ts} +1 -2
  56. package/starter/hive/services/cloudStorage.ts +102 -0
  57. package/starter/package.json +9 -98
  58. package/starter/tsconfig.json +16 -20
  59. package/.cursor/commands/deslop.md +0 -12
  60. package/.hive/.cursor/commands/add-service.md +0 -188
  61. package/.hive/.cursor/skills/hive-overview/SKILL.md +0 -50
  62. package/.hive/.cursor/skills/hive-service/SKILL.md +0 -90
  63. package/.hive/bin/start.sh +0 -2
  64. package/.hive/package.json +0 -98
  65. package/.hive/src/logger.js +0 -43
  66. package/.hive/src/middlewares/global/tryToAttachUser.js +0 -33
  67. package/.hive/src/resources/health/endpoints/get.js +0 -19
  68. package/.hive/src/resources/tokens/methods/setToken.js +0 -8
  69. package/.hive/src/resources/users/endpoints/getCurrentUser.js +0 -14
  70. package/.hive/src/resources/users/endpoints/getUserProfile.js +0 -19
  71. package/.hive/src/resources/users/methods/ensureUserCreated.js +0 -68
  72. package/.hive/src/security.util.js +0 -38
  73. package/.hive/src/services/globalTest.js +0 -0
  74. package/cli/helpers/docker.js +0 -59
  75. package/cli/helpers/envCheck.js +0 -127
  76. package/cli/helpers/findPort.js +0 -32
  77. package/starter/.babelrc +0 -6
  78. package/starter/.cursor/commands/add-endpoint.md +0 -262
  79. package/starter/.cursor/commands/add-handler.md +0 -137
  80. package/starter/.cursor/commands/add-middleware.md +0 -95
  81. package/starter/.cursor/commands/add-resource.md +0 -71
  82. package/starter/.cursor/commands/add-scheduler.md +0 -138
  83. package/starter/.cursor/commands/add-service.md +0 -188
  84. package/starter/.cursor/skills/hive-auth/SKILL.md +0 -134
  85. package/starter/.cursor/skills/hive-database/SKILL.md +0 -103
  86. package/starter/.cursor/skills/hive-endpoint/SKILL.md +0 -103
  87. package/starter/.cursor/skills/hive-handler/SKILL.md +0 -88
  88. package/starter/.cursor/skills/hive-mapping/SKILL.md +0 -85
  89. package/starter/.cursor/skills/hive-middleware/SKILL.md +0 -104
  90. package/starter/.cursor/skills/hive-overview/SKILL.md +0 -50
  91. package/starter/.cursor/skills/hive-scheduler/SKILL.md +0 -94
  92. package/starter/.cursor/skills/hive-schema/SKILL.md +0 -73
  93. package/starter/.cursor/skills/hive-service/SKILL.md +0 -90
  94. package/starter/.dockerignore +0 -1
  95. package/starter/Dockerfile +0 -22
  96. package/starter/Dockerfile.dev +0 -33
  97. package/starter/Dockerfile.prod +0 -29
  98. package/starter/README.md +0 -11
  99. package/starter/bin/deploy.sh +0 -5
  100. package/starter/bin/start.sh +0 -2
  101. package/starter/bootstrap-hive.js +0 -118
  102. package/starter/deploy/api/Chart.yaml +0 -6
  103. package/starter/deploy/api/staging.yaml +0 -3
  104. package/starter/deploy/api/templates/deployment.yaml +0 -44
  105. package/starter/deploy/api/templates/ingress.yaml +0 -26
  106. package/starter/deploy/api/templates/service.yaml +0 -14
  107. package/starter/deploy/script/Dockerfile +0 -39
  108. package/starter/deploy/script/package-lock.json +0 -1499
  109. package/starter/deploy/script/package.json +0 -12
  110. package/starter/deploy/script/src/config.js +0 -48
  111. package/starter/deploy/script/src/index.js +0 -108
  112. package/starter/deploy/script/src/util.js +0 -19
  113. package/starter/initial-data.json +0 -176
  114. package/starter/loader.mjs +0 -40
  115. package/starter/package-lock.json +0 -13492
  116. package/starter/register.mjs +0 -6
  117. package/starter/ship_logo.png +0 -0
  118. package/starter/src/app-config/app.js +0 -3
  119. package/starter/src/app-config/assertEnv.js +0 -15
  120. package/starter/src/app-config/index.js +0 -65
  121. package/starter/src/app.js +0 -65
  122. package/starter/src/assets/emails/components/header.mjml +0 -13
  123. package/starter/src/assets/emails/dist/.gitkeep +0 -0
  124. package/starter/src/assets/emails/signup-welcome.mjml +0 -34
  125. package/starter/src/assets/emails/styles/index.mjml +0 -77
  126. package/starter/src/autoMap/addHandlers.js +0 -142
  127. package/starter/src/autoMap/getDependentFields.js +0 -37
  128. package/starter/src/autoMap/mapSchema.js +0 -99
  129. package/starter/src/autoMap/schemaMappings.js +0 -13
  130. package/starter/src/autoMap/schemaMappings.json +0 -3
  131. package/starter/src/bullMqBus.js +0 -21
  132. package/starter/src/bullMqWrapper.js +0 -23
  133. package/starter/src/db.js +0 -53
  134. package/starter/src/emails/MyEmailComponent.jsx +0 -14
  135. package/starter/src/emails/compiled/MyEmailComponent.js +0 -6
  136. package/starter/src/emails/compiled/compiled/MyEmailComponent.js +0 -6
  137. package/starter/src/emails/compiled/compiled/compiled/MyEmailComponent.js +0 -6
  138. package/starter/src/emails/compiled/compiled/compiled/compiled/MyEmailComponent.js +0 -6
  139. package/starter/src/helpers/db/ifUpdated.js +0 -22
  140. package/starter/src/helpers/esm.js +0 -56
  141. package/starter/src/helpers/getMiddlewares.js +0 -41
  142. package/starter/src/helpers/getResourceEndpoints.js +0 -31
  143. package/starter/src/helpers/getResources.js +0 -35
  144. package/starter/src/helpers/getSchemas.js +0 -53
  145. package/starter/src/helpers/importHandlers.js +0 -20
  146. package/starter/src/helpers/isZodArray.js +0 -13
  147. package/starter/src/helpers/prettierFormat.js +0 -8
  148. package/starter/src/helpers/schema/db.schema.js +0 -9
  149. package/starter/src/helpers/schema/pagination.schema.js +0 -14
  150. package/starter/src/ioEmitter.js +0 -9
  151. package/starter/src/jsconfig.json +0 -5
  152. package/starter/src/lib/node-mongo/.github/workflows/npm-publish.yml +0 -32
  153. package/starter/src/lib/node-mongo/API.md +0 -654
  154. package/starter/src/lib/node-mongo/CHANGELOG.md +0 -98
  155. package/starter/src/lib/node-mongo/README.md +0 -97
  156. package/starter/src/lib/node-mongo/package-lock.json +0 -3682
  157. package/starter/src/lib/node-mongo/package.json +0 -74
  158. package/starter/src/lib/node-mongo/src/index.js +0 -64
  159. package/starter/src/lib/node-mongo/src/mongo-query-service.js +0 -78
  160. package/starter/src/lib/node-mongo/src/mongo-service-error.js +0 -15
  161. package/starter/src/lib/node-mongo/src/mongo-service.js +0 -303
  162. package/starter/src/middlewares/attachUser.js +0 -41
  163. package/starter/src/middlewares/global/extractUserTokens.js +0 -15
  164. package/starter/src/middlewares/global/tryToAttachUser.js +0 -33
  165. package/starter/src/middlewares/isAuthorized.js +0 -18
  166. package/starter/src/middlewares/shouldExist.js +0 -37
  167. package/starter/src/middlewares/shouldNotExist.js +0 -19
  168. package/starter/src/middlewares/uploadFile.js +0 -5
  169. package/starter/src/middlewares/validate.js +0 -32
  170. package/starter/src/migrations/migration.js +0 -8
  171. package/starter/src/migrations/migration.service.js +0 -76
  172. package/starter/src/migrations/migrations/1.js +0 -22
  173. package/starter/src/migrations/migrations-log/migration-log.schema.js +0 -13
  174. package/starter/src/migrations/migrations-log/migration-log.service.js +0 -50
  175. package/starter/src/migrations/migrations.schema.js +0 -6
  176. package/starter/src/migrations/migrator.js +0 -75
  177. package/starter/src/migrator.js +0 -3
  178. package/starter/src/resources/_dev/endpoints/triggerSchedulerHandler.js +0 -32
  179. package/starter/src/resources/health/endpoints/get.js +0 -19
  180. package/starter/src/resources/schemaMappings/schemaMappings.schema.js +0 -6
  181. package/starter/src/resources/tokens/methods/generateSecureToken.js +0 -9
  182. package/starter/src/resources/tokens/methods/setToken.js +0 -8
  183. package/starter/src/resources/tokens/methods/storeToken.js +0 -35
  184. package/starter/src/resources/tokens/tokens.schema.js +0 -11
  185. package/starter/src/resources/users/endpoints/getCurrentUser.js +0 -14
  186. package/starter/src/resources/users/endpoints/getUserProfile.js +0 -19
  187. package/starter/src/resources/users/handlers/test.js +0 -1
  188. package/starter/src/resources/users/methods/ensureUserCreated.js +0 -68
  189. package/starter/src/resources/users/users.schema.js +0 -16
  190. package/starter/src/routes/index.js +0 -172
  191. package/starter/src/routes/middlewares/attachCustomErrors.js +0 -28
  192. package/starter/src/routes/middlewares/routeErrorHandler.js +0 -27
  193. package/starter/src/scheduler.js +0 -35
  194. package/starter/src/security.util.js +0 -38
  195. package/starter/src/services/emailService.js +0 -15
  196. package/starter/src/services/globalTest.js +0 -0
  197. package/starter/src/services/setCookie.js +0 -21
  198. package/starter/src/socketIo.js +0 -99
  199. package/test-app/.cursor/commands/add-endpoint.md +0 -262
  200. package/test-app/.cursor/commands/add-handler.md +0 -137
  201. package/test-app/.cursor/commands/add-middleware.md +0 -95
  202. package/test-app/.cursor/commands/add-resource.md +0 -71
  203. package/test-app/.cursor/commands/add-scheduler.md +0 -138
  204. package/test-app/.cursor/skills/hive-auth/SKILL.md +0 -134
  205. package/test-app/.cursor/skills/hive-database/SKILL.md +0 -103
  206. package/test-app/.cursor/skills/hive-endpoint/SKILL.md +0 -103
  207. package/test-app/.cursor/skills/hive-handler/SKILL.md +0 -88
  208. package/test-app/.cursor/skills/hive-mapping/SKILL.md +0 -85
  209. package/test-app/.cursor/skills/hive-middleware/SKILL.md +0 -104
  210. package/test-app/.cursor/skills/hive-scheduler/SKILL.md +0 -94
  211. package/test-app/.cursor/skills/hive-schema/SKILL.md +0 -73
  212. package/test-app/package-lock.json +0 -462
  213. package/test-app/package.json +0 -25
  214. package/test-app/src/resources/tasks/tasks.schema.js +0 -2
  215. /package/{.hive → framework}/.babelrc +0 -0
  216. /package/{.hive → framework}/.cursor/commands/add-endpoint.md +0 -0
  217. /package/{.hive → framework}/.cursor/commands/add-handler.md +0 -0
  218. /package/{.hive → framework}/.cursor/commands/add-middleware.md +0 -0
  219. /package/{.hive → framework}/.cursor/commands/add-resource.md +0 -0
  220. /package/{.hive → framework}/.cursor/commands/add-scheduler.md +0 -0
  221. /package/{.hive → framework}/.cursor/skills/hive-auth/SKILL.md +0 -0
  222. /package/{.hive → framework}/.cursor/skills/hive-database/SKILL.md +0 -0
  223. /package/{.hive → framework}/.cursor/skills/hive-endpoint/SKILL.md +0 -0
  224. /package/{.hive → framework}/.cursor/skills/hive-handler/SKILL.md +0 -0
  225. /package/{.hive → framework}/.cursor/skills/hive-mapping/SKILL.md +0 -0
  226. /package/{.hive → framework}/.cursor/skills/hive-middleware/SKILL.md +0 -0
  227. /package/{.hive → framework}/.cursor/skills/hive-scheduler/SKILL.md +0 -0
  228. /package/{.hive → framework}/.cursor/skills/hive-schema/SKILL.md +0 -0
  229. /package/{.hive → framework}/.dockerignore +0 -0
  230. /package/{.hive → framework}/Dockerfile +0 -0
  231. /package/{.hive → framework}/Dockerfile.dev +0 -0
  232. /package/{.hive → framework}/Dockerfile.prod +0 -0
  233. /package/{.hive → framework}/README.md +0 -0
  234. /package/{.hive → framework}/bin/deploy.sh +0 -0
  235. /package/{.hive → framework}/deploy/api/Chart.yaml +0 -0
  236. /package/{.hive → framework}/deploy/api/staging.yaml +0 -0
  237. /package/{.hive → framework}/deploy/api/templates/deployment.yaml +0 -0
  238. /package/{.hive → framework}/deploy/api/templates/ingress.yaml +0 -0
  239. /package/{.hive → framework}/deploy/api/templates/service.yaml +0 -0
  240. /package/{.hive → framework}/deploy/script/Dockerfile +0 -0
  241. /package/{.hive → framework}/deploy/script/package-lock.json +0 -0
  242. /package/{.hive → framework}/deploy/script/package.json +0 -0
  243. /package/{.hive/deploy/script/src/config.js → framework/deploy/script/src/config.ts} +0 -0
  244. /package/{.hive/deploy/script/src/index.js → framework/deploy/script/src/index.ts} +0 -0
  245. /package/{.hive/deploy/script/src/util.js → framework/deploy/script/src/util.ts} +0 -0
  246. /package/{.hive → framework}/initial-data.json +0 -0
  247. /package/{.hive → framework}/ship_logo.png +0 -0
  248. /package/{.hive → framework}/src/assets/emails/components/header.mjml +0 -0
  249. /package/{.hive → framework}/src/assets/emails/dist/.gitkeep +0 -0
  250. /package/{.hive → framework}/src/assets/emails/signup-welcome.mjml +0 -0
  251. /package/{.hive → framework}/src/assets/emails/styles/index.mjml +0 -0
  252. /package/{.hive/src/autoMap/addHandlers.js → framework/src/autoMap/addHandlers.ts} +0 -0
  253. /package/{.hive/src/autoMap/getDependentFields.js → framework/src/autoMap/getDependentFields.ts} +0 -0
  254. /package/{.hive/src/autoMap/mapSchema.js → framework/src/autoMap/mapSchema.ts} +0 -0
  255. /package/{.hive → framework}/src/autoMap/schemaMappings.json +0 -0
  256. /package/{.hive/src/autoMap/schemaMappings.js → framework/src/autoMap/schemaMappings.ts} +0 -0
  257. /package/{.hive/src/helpers/schema/db.schema.js → framework/src/common/schema/db.schema.ts} +0 -0
  258. /package/{.hive/src/helpers/schema/pagination.schema.js → framework/src/common/schema/pagination.schema.ts} +0 -0
  259. /package/{.hive/src/app-config/app.js → framework/src/config/app.ts} +0 -0
  260. /package/{.hive/src/app-config/assertEnv.js → framework/src/config/assertEnv.ts} +0 -0
  261. /package/{.hive/src/emails/MyEmailComponent.jsx → framework/src/emails/MyEmailComponent.tsx} +0 -0
  262. /package/{.hive/src/emails/compiled/MyEmailComponent.js → framework/src/emails/compiled/MyEmailComponent.ts} +0 -0
  263. /package/{.hive/src/emails/compiled/compiled/MyEmailComponent.js → framework/src/emails/compiled/compiled/MyEmailComponent.ts} +0 -0
  264. /package/{.hive/src/helpers/db/ifUpdated.js → framework/src/helpers/db/ifUpdated.ts} +0 -0
  265. /package/{.hive/src/helpers/importHandlers.js → framework/src/helpers/importHandlers.ts} +0 -0
  266. /package/{.hive/src/helpers/isZodArray.js → framework/src/helpers/isZodArray.ts} +0 -0
  267. /package/{.hive/src/helpers/prettierFormat.js → framework/src/helpers/prettierFormat.ts} +0 -0
  268. /package/{.hive → framework}/src/jsconfig.json +0 -0
  269. /package/{.hive → framework}/src/lib/node-mongo/.github/workflows/npm-publish.yml +0 -0
  270. /package/{.hive → framework}/src/lib/node-mongo/API.md +0 -0
  271. /package/{.hive → framework}/src/lib/node-mongo/CHANGELOG.md +0 -0
  272. /package/{.hive → framework}/src/lib/node-mongo/README.md +0 -0
  273. /package/{.hive → framework}/src/lib/node-mongo/package-lock.json +0 -0
  274. /package/{.hive → framework}/src/lib/node-mongo/package.json +0 -0
  275. /package/{.hive/src/lib/node-mongo/src/index.js → framework/src/lib/node-mongo/src/index.ts} +0 -0
  276. /package/{.hive/src/lib/node-mongo/src/mongo-service-error.js → framework/src/lib/node-mongo/src/mongo-service-error.ts} +0 -0
  277. /package/{.hive/src/middlewares/allowNoAuth.js → framework/src/middlewares/allowNoAuth.ts} +0 -0
  278. /package/{.hive/src/middlewares/global/extractUserTokens.js → framework/src/middlewares/global/extractUserTokens.ts} +0 -0
  279. /package/{.hive/src/middlewares/validate.js → framework/src/middlewares/validate.ts} +0 -0
  280. /package/{.hive/src/migrations/migration.service.js → framework/src/migrations/migration.service.ts} +0 -0
  281. /package/{.hive/src/migrations/migration.js → framework/src/migrations/migration.ts} +0 -0
  282. /package/{.hive/src/migrations/migrations/1.js → framework/src/migrations/migrations/1.ts} +0 -0
  283. /package/{.hive/src/migrations/migrator.js → framework/src/migrations/migrator.ts} +0 -0
  284. /package/{.hive/src/migrator.js → framework/src/migrator.ts} +0 -0
  285. /package/{.hive/src/routes/middlewares/attachCustomErrors.js → framework/src/routes/middlewares/attachCustomErrors.ts} +0 -0
  286. /package/{.hive/src/routes/middlewares/routeErrorHandler.js → framework/src/routes/middlewares/routeErrorHandler.ts} +0 -0
  287. /package/{.hive/src/scheduler/handlers/sendDailyReport.example.js → framework/src/scheduler/handlers/sendDailyReport.example.ts} +0 -0
  288. /package/{.hive/src/scheduler.js → framework/src/scheduler.ts} +0 -0
  289. /package/starter/{src/middlewares/allowNoAuth.js → hive/middlewares/allowNoAuth.ts} +0 -0
  290. /package/{.hive/src/middlewares/isAuthorized.js → starter/hive/middlewares/isAuthorized.ts} +0 -0
  291. /package/{.hive/src/middlewares/uploadFile.js → starter/hive/middlewares/uploadFile.ts} +0 -0
  292. /package/{.hive/src/resources/tokens/methods/generateSecureToken.js → starter/hive/resources/tokens/methods/generateSecureToken.ts} +0 -0
  293. /package/{.hive/src/resources/users/handlers/test.js → starter/hive/resources/users/handlers/test.ts} +0 -0
  294. /package/starter/{src/scheduler/handlers/sendDailyReport.example.js → hive/scheduler/handlers/dailyExample.ts} +0 -0
@@ -1,5 +0,0 @@
1
- import multer from '@koa/multer';
2
-
3
- const storage = multer.memoryStorage();
4
-
5
- export default multer({ storage });
@@ -1,32 +0,0 @@
1
-
2
- const formatError = (zodError) => {
3
- const errors = {};
4
-
5
- zodError.issues.forEach((error) => {
6
- const key = error.path.join('.');
7
-
8
- if (!errors[key]) {
9
- errors[key] = [];
10
- }
11
-
12
- (errors[key]).push(error.message);
13
- });
14
-
15
- return errors;
16
- };
17
-
18
- const validate = (schema) => async (ctx, next) => {
19
- const result = await schema.passthrough().safeParseAsync({
20
- ...(ctx.request.body),
21
- ...ctx.query,
22
- ...ctx.params,
23
- });
24
-
25
- if (!result.success) ctx.throw(400, { clientErrors: formatError(result.error) });
26
-
27
- ctx.validatedData = result.data;
28
-
29
- await next();
30
- };
31
-
32
- export default validate;
@@ -1,8 +0,0 @@
1
- class Migration {
2
- constructor(version, description) {
3
- this.version = version;
4
- this.description = description;
5
- }
6
- }
7
-
8
- export default Migration;
@@ -1,76 +0,0 @@
1
- import db from "#hive/db";
2
- import fs from "fs";
3
- import path from "path";
4
- import _ from "lodash";
5
- import validateSchema from "./migrations.schema";
6
- import { getDirname } from '#hive/helpers/esm';
7
-
8
- const __dirname = getDirname(import.meta.url);
9
-
10
- const service = db.createService("__migrationVersion", {
11
- validate: validateSchema,
12
- });
13
-
14
- const migrationsPath = path.join(__dirname, "migrations");
15
-
16
- const _id = "migration_version";
17
-
18
- const getMigrationNames = () =>
19
- new Promise((resolve, reject) => {
20
- fs.readdir(migrationsPath, (err, files) => {
21
- if (err) {
22
- reject(err);
23
- return;
24
- }
25
- resolve(files);
26
- });
27
- });
28
-
29
- service.getCurrentMigrationVersion = () =>
30
- service.findOne({ _id }).then((doc) => {
31
- if (!doc) {
32
- return 0;
33
- }
34
- return doc.version;
35
- });
36
-
37
- service.getMigrations = () => {
38
- let migrations = null;
39
- return getMigrationNames()
40
- .then((names) => {
41
- migrations = names.map((name) => {
42
- const migrationPath = path.join(migrationsPath, name);
43
- // eslint-disable-next-line import/no-dynamic-require, global-require
44
- // return require(migrationPath);
45
- });
46
- return migrations;
47
- })
48
- .catch((err) => {
49
- throw err;
50
- });
51
- };
52
-
53
- service.setNewMigrationVersion = (version) =>
54
- service.atomic.findOneAndUpdate(
55
- { _id },
56
- {
57
- $set: {
58
- version,
59
- },
60
- $setOnInsert: {
61
- _id,
62
- },
63
- },
64
- { upsert: true }
65
- );
66
-
67
- service.promiseLimit = (documents = [], limit, operator) => {
68
- const chunks = _.chunk(documents, limit);
69
- return chunks.reduce((init, chunk) => {
70
- return init.then(() => {
71
- return Promise.all(chunk.map((c) => operator(c)));
72
- });
73
- }, Promise.resolve());
74
- };
75
-
76
- export default service;
@@ -1,22 +0,0 @@
1
- import Migration from 'migrations/migration';
2
- // const migrationService = require('migrations/migration.service');
3
- //
4
- // const userService = require('resources/user/user.service');
5
-
6
- const migration = new Migration(1, "Example");
7
-
8
- migration.migrate = async () => {
9
- // const userIds = await userService.distinct('_id', {
10
- // isEmailVerified: true,
11
- // });
12
- //
13
- // await migrationService.promiseLimit(userIds, 50, (userId) => userService.updateOne(
14
- // { _id: userId },
15
- // (old) => ({
16
- // ...old,
17
- // isEmailVerified: false,
18
- // }),
19
- // ));
20
- };
21
-
22
- export default migration;
@@ -1,13 +0,0 @@
1
- import { z } from 'zod';
2
- import dbSchema from '#hive/helpers/schema/db.schema';
3
-
4
- export default dbSchema.extend({
5
- startTime: z.date(),
6
- finishTime: z.date().optional(),
7
- status: z.string(),
8
- error: z.string().optional(),
9
- errorStack: z.string().optional(),
10
- duration: z.string().optional(),
11
- migrationVersion: z.number(),
12
- });
13
-
@@ -1,50 +0,0 @@
1
- import db from '#hive/db';
2
- import validateSchema from './migration-log.schema.js';
3
-
4
- const service = db.createService("__migrationLog", {
5
- validate: validateSchema,
6
- });
7
-
8
- service.startMigrationLog = (_id, startTime, migrationVersion) => {
9
- return service.atomic.findOneAndUpdate(
10
- { _id },
11
- {
12
- $set: {
13
- migrationVersion,
14
- startTime,
15
- status: "running",
16
- },
17
- $setOnInsert: {
18
- _id,
19
- },
20
- },
21
- { upsert: true }
22
- );
23
- };
24
-
25
- service.failMigrationLog = (_id, finishTime, err) =>
26
- service.atomic.update(
27
- { _id },
28
- {
29
- $set: {
30
- finishTime,
31
- status: "failed",
32
- error: err.message,
33
- errorStack: err.stack,
34
- },
35
- }
36
- );
37
-
38
- service.finishMigrationLog = (_id, finishTime, duration) =>
39
- service.atomic.update(
40
- { _id },
41
- {
42
- $set: {
43
- finishTime,
44
- status: "completed",
45
- duration,
46
- },
47
- }
48
- );
49
-
50
- export default service;
@@ -1,6 +0,0 @@
1
- import { z } from 'zod';
2
- import dbSchema from '#hive/helpers/schema/db.schema';
3
-
4
- export default dbSchema.extend({
5
- version: z.number(),
6
- });
@@ -1,75 +0,0 @@
1
- import 'moment-duration-format';
2
- import moment from 'moment';
3
- import logger from '#hive/logger';
4
- import migrationLogService from './migrations-log/migration-log.service';
5
- import migrationService from './migration.service';
6
-
7
- const migrator = {};
8
-
9
- const run = async (migrations, curVersion) => {
10
- const newMigrations = migrations
11
- .filter((migration) => migration.version > curVersion)
12
- .sort((a, b) => a.version - b.version);
13
-
14
- if (!newMigrations.length) {
15
- logger.info(`No new migrations found, stopping the process.
16
- Current database version is ${curVersion}`);
17
- return;
18
- }
19
-
20
- let migrationLogId;
21
- let migration;
22
- let lastMigrationVersion;
23
-
24
- try {
25
- for (migration of newMigrations) {
26
- //eslint-disable-line
27
- migrationLogId = migrationService.generateId();
28
- const startTime = new Date();
29
- await migrationLogService.startMigrationLog(
30
- migrationLogId,
31
- startTime,
32
- migration.version
33
- ); //eslint-disable-line
34
- logger.info(
35
- `Migration #${migration.version} is running: ${migration.description}`
36
- );
37
- await migration.migrate(); //eslint-disable-line
38
-
39
- lastMigrationVersion = migration.version;
40
- await migrationService.setNewMigrationVersion(migration.version); //eslint-disable-line
41
- const finishTime = new Date();
42
- const duration = moment
43
- .duration(finishTime - startTime)
44
- .format("h [hrs], m [min], s [sec], S [ms]");
45
-
46
- await migrationLogService.finishMigrationLog(
47
- migrationLogId,
48
- finishTime,
49
- duration
50
- ); //eslint-disable-line
51
- logger.info(
52
- `Database has been updated to the version #${migration.version}`
53
- );
54
- logger.info(`Time of migration #${migration.version}: ${duration}`);
55
- }
56
- logger.info(`All migrations has been finished, stopping the process.
57
- Current database version is: ${lastMigrationVersion}`);
58
- } catch (err) {
59
- logger.error(`Failed to update migration to version ${migration.version}`);
60
- logger.error(err);
61
- await migrationLogService.failMigrationLog(migrationLogId, new Date(), err);
62
- throw err;
63
- }
64
- };
65
-
66
- migrator.exec = async () => {
67
- const [migrations, currentVersion] = await Promise.all([
68
- migrationService.getMigrations(),
69
- migrationService.getCurrentMigrationVersion(),
70
- ]);
71
- await run(migrations, currentVersion);
72
- process.exit(0);
73
- };
74
-
75
- export default migrator;
@@ -1,3 +0,0 @@
1
- import migrator from "#hive/migrations/migrator";
2
-
3
- migrator.exec();
@@ -1,32 +0,0 @@
1
- import { z } from 'zod';
2
-
3
- export const endpoint = {
4
- method: "put",
5
- url: "/trigger-scheduler-handler",
6
- };
7
-
8
- export const requestSchema = z.object({
9
- name: z.string(),
10
- });
11
-
12
- export const handler = async (ctx) => {
13
- const { name } = ctx.validatedData;
14
-
15
- const schedulerHandler = await (import(`${process.env.HIVE_SRC}/scheduler/handlers/${name}`));
16
-
17
- try {
18
- const data = await schedulerHandler.handler();
19
-
20
- ctx.body = {
21
- ok: true,
22
- data,
23
- };
24
- } catch (err) {
25
- ctx.body = {
26
- ok: false,
27
- err: err.message,
28
- };
29
- }
30
- };
31
-
32
- export const middlewares = ['allowNoAuth'];
@@ -1,19 +0,0 @@
1
- import { render } from '@react-email/render';
2
- import { MyEmailComponent } from '#hive/emails/compiled/MyEmailComponent';
3
- import React from 'react';
4
-
5
- export const handler = (ctx) => {
6
- const emailHtml = render(React.createElement(MyEmailComponent, { name: 'test' }));
7
-
8
- ctx.body = emailHtml;
9
- ctx.status = 200;
10
- };
11
-
12
- export const endpoint = {
13
- method: "get",
14
- url: "/",
15
- };
16
-
17
- export default {
18
- handler, endpoint
19
- }
@@ -1,6 +0,0 @@
1
- import { z } from 'zod';
2
- import dbSchema from '#hive/helpers/schema/db.schema';
3
-
4
- export default dbSchema.extend({
5
- mappings: z.object({}),
6
- });
@@ -1,9 +0,0 @@
1
- import crypto from 'crypto';
2
- import util from 'util';
3
-
4
- const randomBytes = util.promisify(crypto.randomBytes, crypto);
5
-
6
- export default async (tokenLength = 32) => {
7
- const buf = await randomBytes(tokenLength);
8
- return buf.toString('hex');
9
- };
@@ -1,8 +0,0 @@
1
- import db from '#hive/db';
2
- const tokenService = db.services.tokens;
3
-
4
- export default async () => {
5
- const { results } = await tokenService.aggregate([]);
6
-
7
- return results;
8
- };
@@ -1,35 +0,0 @@
1
- import db from '#hive/db';
2
- import crypto from 'crypto';
3
- import util from 'util';
4
-
5
- const randomBytes = util.promisify(crypto.randomBytes, crypto);
6
-
7
- import setCookie from '#hive/services/setCookie';
8
-
9
- const tokenService = db.services.tokens;
10
-
11
- const generateSecureToken = async (tokenLength = 32) => {
12
- const buf = await randomBytes(tokenLength);
13
- return buf.toString('hex');
14
- };
15
-
16
- export default async (ctx, { userId, metadata = null }) => {
17
- const token = await generateSecureToken();
18
- const otp = await generateSecureToken();
19
-
20
- await tokenService.create({
21
- token,
22
- user: {
23
- _id: userId,
24
- },
25
- otp,
26
- ...(metadata ? { metadata } : {})
27
- });
28
-
29
- setCookie(ctx, { name: 'access_token', value: token });
30
-
31
- return {
32
- token,
33
- otp,
34
- };
35
- };
@@ -1,11 +0,0 @@
1
- import { z } from 'zod';
2
- import dbSchema from '#hive/helpers/schema/db.schema';
3
-
4
- export default dbSchema.extend({
5
- user: z.object({
6
- _id: z.string(),
7
- }),
8
- token: z.string(),
9
- otp: z.string().nullable().optional(),
10
- metadata: z.object({}).optional()
11
- });
@@ -1,14 +0,0 @@
1
- import { z } from 'zod';
2
- import isAuthorized from '#hive/middlewares/isAuthorized';
3
-
4
- export const handler = async (ctx) => {
5
- ctx.body = ctx.state.user;
6
- };
7
-
8
- export const middlewares = [isAuthorized];
9
- export const requestSchema = z.object({});
10
-
11
- export const endpoint = {
12
- method: "GET",
13
- url: "/me",
14
- };
@@ -1,19 +0,0 @@
1
- import { z } from 'zod';
2
- import db from '#hive/db';
3
-
4
- const userService = db.services.users;
5
-
6
- export const handler = async (ctx) => {
7
- const { userId } = ctx.params;
8
- const user = await userService.findOne({ _id: userId });
9
- ctx.body = user;
10
- };
11
-
12
- export const requestSchema = z.object({
13
- userId: z.string(),
14
- });
15
-
16
- export const endpoint = {
17
- method: "GET",
18
- url: "/profile/:userId",
19
- };
@@ -1 +0,0 @@
1
- console.log('hello from handler');
@@ -1,68 +0,0 @@
1
- import db from '#hive/db';
2
- import _ from 'lodash';
3
- import slug from 'slug';
4
-
5
- const userService = db.services.users;
6
-
7
- const formatUsername = ({ username, fullName, email }) => {
8
- return (
9
- username ||
10
- fullName ? slug(`${fullName.split(' ')[0]} ${fullName.split(' ')[1] || ''}`, '.') : email?.split('@')[0]
11
- );
12
- };
13
-
14
- const createUserAccount = async (userData) => {
15
- let username = formatUsername({ fullName: userData.fullName, email: userData.email });
16
-
17
- if (await userService.exists({ username })) {
18
- username += _.random(1000, 9999);
19
- }
20
-
21
- const user = await userService.create({
22
- fullName: userData.fullName,
23
- username,
24
- email: userData.email,
25
- isEmailVerified: true,
26
- avatarUrl: userData.avatarUrl,
27
- oauth: userData.oauth,
28
- });
29
-
30
- return user;
31
- };
32
-
33
- const ensureUserCreated = async (userData) => {
34
- const user = await userService.findOne({ email: userData.email });
35
-
36
- if (user) {
37
- if (userData.oauth) {
38
- const changedUser = await userService.updateOne(
39
- { _id: user._id },
40
- (old) => {
41
- const newUser = old;
42
- newUser.oauth = old.oauth || {};
43
- newUser.oauth = {
44
- ...newUser.oauth,
45
- ...userData.oauth
46
- }
47
- newUser.isEmailVerified = true;
48
-
49
- return newUser;
50
- }
51
- );
52
-
53
- return { user: changedUser, isNew: false };
54
- } else {
55
- return { user, isNew: false };
56
- }
57
- }
58
-
59
- return {
60
- user: await createUserAccount(userData),
61
- isNew: true,
62
- };
63
- };
64
-
65
- export default async (userData) => {
66
- const { user, isNew } = await ensureUserCreated(userData);
67
- return user;
68
- };
@@ -1,16 +0,0 @@
1
- import { z } from 'zod';
2
- import dbSchema from '#hive/helpers/schema/db.schema';
3
-
4
- const users = dbSchema.extend({
5
- email: z.string().email(),
6
- fullName: z.string(),
7
- avatarUrl: z.string().url().optional(),
8
-
9
- password: z.string(),
10
-
11
- oauth: z.object({
12
- google: z.object({}),
13
- }).optional(),
14
- });
15
-
16
- export default users;