mm-share-lib 0.0.6 → 0.0.7

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 (415) hide show
  1. package/.eslintrc.js +25 -25
  2. package/.prettierrc +3 -3
  3. package/README.md +73 -73
  4. package/dist/index.d.ts +1 -0
  5. package/dist/index.js +18 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/auth/apple/apple.module.d.ts +2 -0
  8. package/dist/src/auth/apple/apple.module.js +22 -0
  9. package/dist/src/auth/apple/apple.module.js.map +1 -0
  10. package/dist/src/auth/apple/apple.service.d.ts +9 -0
  11. package/dist/src/auth/apple/apple.service.js +38 -0
  12. package/dist/src/auth/apple/apple.service.js.map +1 -0
  13. package/dist/src/auth/apple/dto/apple-login.dto.d.ts +5 -0
  14. package/dist/src/auth/apple/dto/apple-login.dto.js +33 -0
  15. package/dist/src/auth/apple/dto/apple-login.dto.js.map +1 -0
  16. package/dist/src/auth/apple/dto/index.d.ts +1 -0
  17. package/dist/src/auth/apple/dto/index.js +18 -0
  18. package/dist/src/auth/apple/dto/index.js.map +1 -0
  19. package/dist/src/auth/apple/index.d.ts +3 -0
  20. package/dist/src/auth/apple/index.js +20 -0
  21. package/dist/src/auth/apple/index.js.map +1 -0
  22. package/dist/src/auth/config/apple.config.d.ts +3 -0
  23. package/dist/src/auth/config/apple.config.js +29 -0
  24. package/dist/src/auth/config/apple.config.js.map +1 -0
  25. package/dist/src/auth/config/auth.config.d.ts +3 -0
  26. package/dist/src/auth/config/auth.config.js +42 -0
  27. package/dist/src/auth/config/auth.config.js.map +1 -0
  28. package/dist/src/auth/config/facebook.config.d.ts +3 -0
  29. package/dist/src/auth/config/facebook.config.js +34 -0
  30. package/dist/src/auth/config/facebook.config.js.map +1 -0
  31. package/dist/src/auth/config/file.config.d.ts +3 -0
  32. package/dist/src/auth/config/file.config.js +66 -0
  33. package/dist/src/auth/config/file.config.js.map +1 -0
  34. package/dist/src/auth/config/google.config.d.ts +3 -0
  35. package/dist/src/auth/config/google.config.js +34 -0
  36. package/dist/src/auth/config/google.config.js.map +1 -0
  37. package/dist/src/auth/config/index.d.ts +6 -0
  38. package/dist/src/auth/config/index.js +23 -0
  39. package/dist/src/auth/config/index.js.map +1 -0
  40. package/dist/src/auth/config/twitter.config.d.ts +8 -0
  41. package/dist/src/auth/config/twitter.config.js +34 -0
  42. package/dist/src/auth/config/twitter.config.js.map +1 -0
  43. package/dist/src/auth/facebook/dto/facebook-login.dto.d.ts +3 -0
  44. package/dist/src/auth/facebook/dto/facebook-login.dto.js +23 -0
  45. package/dist/src/auth/facebook/dto/facebook-login.dto.js.map +1 -0
  46. package/dist/src/auth/facebook/dto/index.d.ts +1 -0
  47. package/dist/src/auth/facebook/dto/index.js +18 -0
  48. package/dist/src/auth/facebook/dto/index.js.map +1 -0
  49. package/dist/src/auth/facebook/facebook.module.d.ts +2 -0
  50. package/dist/src/auth/facebook/facebook.module.js +23 -0
  51. package/dist/src/auth/facebook/facebook.module.js.map +1 -0
  52. package/dist/src/auth/facebook/facebook.service.d.ts +10 -0
  53. package/dist/src/auth/facebook/facebook.service.js +50 -0
  54. package/dist/src/auth/facebook/facebook.service.js.map +1 -0
  55. package/dist/src/auth/facebook/index.d.ts +4 -0
  56. package/dist/src/auth/facebook/index.js +21 -0
  57. package/dist/src/auth/facebook/index.js.map +1 -0
  58. package/dist/src/auth/facebook/interface/facebook.interface.d.ts +6 -0
  59. package/dist/src/auth/facebook/interface/facebook.interface.js +3 -0
  60. package/dist/src/auth/facebook/interface/facebook.interface.js.map +1 -0
  61. package/dist/src/auth/facebook/interface/index.d.ts +1 -0
  62. package/dist/src/auth/facebook/interface/index.js +18 -0
  63. package/dist/src/auth/facebook/interface/index.js.map +1 -0
  64. package/dist/src/auth/google/dto/google-login.dto.d.ts +3 -0
  65. package/dist/src/auth/google/dto/google-login.dto.js +23 -0
  66. package/dist/src/auth/google/dto/google-login.dto.js.map +1 -0
  67. package/dist/src/auth/google/dto/index.d.ts +1 -0
  68. package/dist/src/auth/google/dto/index.js +18 -0
  69. package/dist/src/auth/google/dto/index.js.map +1 -0
  70. package/dist/src/auth/google/google.module.d.ts +2 -0
  71. package/dist/src/auth/google/google.module.js +22 -0
  72. package/dist/src/auth/google/google.module.js.map +1 -0
  73. package/dist/src/auth/google/google.service.d.ts +10 -0
  74. package/dist/src/auth/google/google.service.js +49 -0
  75. package/dist/src/auth/google/google.service.js.map +1 -0
  76. package/dist/src/auth/google/index.d.ts +3 -0
  77. package/dist/src/auth/google/index.js +20 -0
  78. package/dist/src/auth/google/index.js.map +1 -0
  79. package/dist/src/auth/index.d.ts +5 -0
  80. package/dist/src/auth/index.js +22 -0
  81. package/dist/src/auth/index.js.map +1 -0
  82. package/dist/src/auth/twitter/dto/index.d.ts +1 -0
  83. package/dist/src/auth/twitter/dto/index.js +18 -0
  84. package/dist/src/auth/twitter/dto/index.js.map +1 -0
  85. package/dist/src/auth/twitter/dto/twitter-login.dto.d.ts +4 -0
  86. package/dist/src/auth/twitter/dto/twitter-login.dto.js +28 -0
  87. package/dist/src/auth/twitter/dto/twitter-login.dto.js.map +1 -0
  88. package/dist/src/auth/twitter/index.d.ts +3 -0
  89. package/dist/src/auth/twitter/index.js +20 -0
  90. package/dist/src/auth/twitter/index.js.map +1 -0
  91. package/dist/src/auth/twitter/twitter.module.d.ts +2 -0
  92. package/dist/src/auth/twitter/twitter.module.js +23 -0
  93. package/dist/src/auth/twitter/twitter.module.js.map +1 -0
  94. package/dist/src/auth/twitter/twitter.service.d.ts +9 -0
  95. package/dist/src/auth/twitter/twitter.service.js +49 -0
  96. package/dist/src/auth/twitter/twitter.service.js.map +1 -0
  97. package/dist/src/config/index.d.ts +1 -0
  98. package/dist/src/config/index.js +18 -0
  99. package/dist/src/config/index.js.map +1 -0
  100. package/dist/src/config/type.config.d.ts +79 -0
  101. package/dist/src/config/type.config.js +3 -0
  102. package/dist/src/config/type.config.js.map +1 -0
  103. package/dist/src/dto/base-filter.dto.d.ts +4 -0
  104. package/dist/src/dto/base-filter.dto.js +11 -0
  105. package/dist/src/dto/base-filter.dto.js.map +1 -0
  106. package/dist/src/dto/index.d.ts +2 -0
  107. package/dist/src/dto/index.js +19 -0
  108. package/dist/src/dto/index.js.map +1 -0
  109. package/dist/src/dto/pagination.dto.d.ts +5 -0
  110. package/dist/src/dto/pagination.dto.js +37 -0
  111. package/dist/src/dto/pagination.dto.js.map +1 -0
  112. package/dist/src/exception/bad-request-error.exception.d.ts +4 -0
  113. package/dist/src/exception/bad-request-error.exception.js +12 -0
  114. package/dist/src/exception/bad-request-error.exception.js.map +1 -0
  115. package/dist/src/exception/base.exception.d.ts +21 -0
  116. package/dist/src/exception/base.exception.js +16 -0
  117. package/dist/src/exception/base.exception.js.map +1 -0
  118. package/dist/src/exception/conflict-error.exception.d.ts +4 -0
  119. package/dist/src/exception/conflict-error.exception.js +12 -0
  120. package/dist/src/exception/conflict-error.exception.js.map +1 -0
  121. package/dist/src/exception/forbidden-error.exception.d.ts +4 -0
  122. package/dist/src/exception/forbidden-error.exception.js +12 -0
  123. package/dist/src/exception/forbidden-error.exception.js.map +1 -0
  124. package/dist/src/exception/index.d.ts +7 -0
  125. package/dist/src/exception/index.js +23 -0
  126. package/dist/src/exception/index.js.map +1 -1
  127. package/dist/src/exception/internal-server-error.exception.d.ts +4 -0
  128. package/dist/src/exception/internal-server-error.exception.js +12 -0
  129. package/dist/src/exception/internal-server-error.exception.js.map +1 -0
  130. package/dist/src/exception/not-found-error.exception.d.ts +4 -0
  131. package/dist/src/exception/not-found-error.exception.js +12 -0
  132. package/dist/src/exception/not-found-error.exception.js.map +1 -0
  133. package/dist/src/exception/unauthorized-error.exception.d.ts +4 -0
  134. package/dist/src/exception/unauthorized-error.exception.js +12 -0
  135. package/dist/src/exception/unauthorized-error.exception.js.map +1 -0
  136. package/dist/src/filter/http-exception.filter.d.ts +4 -0
  137. package/dist/src/filter/http-exception.filter.js +27 -0
  138. package/dist/src/filter/http-exception.filter.js.map +1 -0
  139. package/dist/src/filter/index.d.ts +1 -0
  140. package/dist/src/filter/index.js +18 -0
  141. package/dist/src/filter/index.js.map +1 -0
  142. package/dist/src/filter/rpc-exception.filter.d.ts +6 -0
  143. package/dist/src/filter/rpc-exception.filter.js +21 -0
  144. package/dist/src/filter/rpc-exception.filter.js.map +1 -0
  145. package/dist/src/index.d.ts +9 -0
  146. package/dist/src/index.js +26 -0
  147. package/dist/src/index.js.map +1 -0
  148. package/dist/src/interface/index.d.ts +1 -0
  149. package/dist/src/interface/index.js +18 -0
  150. package/dist/src/interface/index.js.map +1 -0
  151. package/dist/src/interface/social.interface.d.ts +6 -0
  152. package/dist/src/interface/social.interface.js +3 -0
  153. package/dist/src/interface/social.interface.js.map +1 -0
  154. package/dist/src/lib/index.d.ts +3 -0
  155. package/dist/src/lib/index.js +20 -0
  156. package/dist/src/lib/index.js.map +1 -0
  157. package/dist/src/lib/mailer/config/index.d.ts +1 -0
  158. package/dist/src/lib/mailer/config/index.js +18 -0
  159. package/dist/src/lib/mailer/config/index.js.map +1 -0
  160. package/dist/src/lib/mailer/config/mailer.config.d.ts +3 -0
  161. package/dist/src/lib/mailer/config/mailer.config.js +72 -0
  162. package/dist/src/lib/mailer/config/mailer.config.js.map +1 -0
  163. package/dist/src/lib/mailer/index.d.ts +2 -0
  164. package/dist/src/lib/mailer/index.js +19 -0
  165. package/dist/src/lib/mailer/index.js.map +1 -0
  166. package/dist/src/lib/mailer/mailer.module.d.ts +2 -0
  167. package/dist/src/lib/mailer/mailer.module.js +20 -0
  168. package/dist/src/lib/mailer/mailer.module.js.map +1 -0
  169. package/dist/src/lib/mailer/mailer.service.d.ts +12 -0
  170. package/dist/src/lib/mailer/mailer.service.js +66 -0
  171. package/dist/src/lib/mailer/mailer.service.js.map +1 -0
  172. package/dist/src/lib/redis/index.d.ts +0 -0
  173. package/dist/src/lib/redis/index.js +1 -0
  174. package/dist/src/lib/redis/index.js.map +1 -0
  175. package/dist/src/lib/search-engine/document/base.document.d.ts +3 -0
  176. package/dist/src/lib/search-engine/document/base.document.js +7 -0
  177. package/dist/src/lib/search-engine/document/base.document.js.map +1 -0
  178. package/dist/src/lib/search-engine/document/index.d.ts +1 -0
  179. package/dist/src/lib/search-engine/document/index.js +18 -0
  180. package/dist/src/lib/search-engine/document/index.js.map +1 -0
  181. package/dist/src/lib/search-engine/index.d.ts +1 -0
  182. package/dist/src/lib/search-engine/index.js +18 -0
  183. package/dist/src/lib/search-engine/index.js.map +1 -0
  184. package/dist/src/lib/search-engine/interface/index.d.ts +2 -0
  185. package/dist/src/lib/search-engine/interface/index.js +19 -0
  186. package/dist/src/lib/search-engine/interface/index.js.map +1 -0
  187. package/dist/src/lib/search-engine/interface/search-document.interface.d.ts +4 -0
  188. package/dist/src/lib/search-engine/interface/search-document.interface.js +3 -0
  189. package/dist/src/lib/search-engine/interface/search-document.interface.js.map +1 -0
  190. package/dist/src/lib/search-engine/interface/transform-service.interface.d.ts +6 -0
  191. package/dist/src/lib/search-engine/interface/transform-service.interface.js +3 -0
  192. package/dist/src/lib/search-engine/interface/transform-service.interface.js.map +1 -0
  193. package/dist/src/lib/search-engine/schema/generic.schema.d.ts +2 -0
  194. package/dist/src/lib/search-engine/schema/generic.schema.js +7 -0
  195. package/dist/src/lib/search-engine/schema/generic.schema.js.map +1 -0
  196. package/dist/src/lib/search-engine/schema/index.d.ts +1 -0
  197. package/dist/src/lib/search-engine/schema/index.js +18 -0
  198. package/dist/src/lib/search-engine/schema/index.js.map +1 -0
  199. package/dist/src/lib/search-engine/typesense/collection/index.d.ts +1 -0
  200. package/dist/src/lib/search-engine/typesense/collection/index.js +18 -0
  201. package/dist/src/lib/search-engine/typesense/collection/index.js.map +1 -0
  202. package/dist/src/lib/search-engine/typesense/document/index.d.ts +1 -0
  203. package/dist/src/lib/search-engine/typesense/document/index.js +18 -0
  204. package/dist/src/lib/search-engine/typesense/document/index.js.map +1 -0
  205. package/dist/src/lib/search-engine/typesense/index.d.ts +4 -0
  206. package/dist/src/lib/search-engine/typesense/index.js +21 -0
  207. package/dist/src/lib/search-engine/typesense/index.js.map +1 -0
  208. package/dist/src/lib/search-engine/typesense/metadata/index.d.ts +2 -0
  209. package/dist/src/lib/search-engine/typesense/metadata/index.js +19 -0
  210. package/dist/src/lib/search-engine/typesense/metadata/index.js.map +1 -0
  211. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.d.ts +12 -0
  212. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js +3 -0
  213. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js.map +1 -0
  214. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.d.ts +10 -0
  215. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js +33 -0
  216. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js.map +1 -0
  217. package/dist/src/lib/search-engine/typesense/service/client.service.d.ts +34 -0
  218. package/dist/src/lib/search-engine/typesense/service/client.service.js +200 -0
  219. package/dist/src/lib/search-engine/typesense/service/client.service.js.map +1 -0
  220. package/dist/src/lib/search-engine/typesense/service/index.d.ts +1 -0
  221. package/dist/src/lib/search-engine/typesense/service/index.js +18 -0
  222. package/dist/src/lib/search-engine/typesense/service/index.js.map +1 -0
  223. package/dist/src/lib/search-engine/typesense/typesense-module.interface.d.ts +27 -0
  224. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js +3 -0
  225. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js.map +1 -0
  226. package/dist/src/lib/search-engine/typesense/typesense.constants.d.ts +1 -0
  227. package/dist/src/lib/search-engine/typesense/typesense.constants.js +5 -0
  228. package/dist/src/lib/search-engine/typesense/typesense.constants.js.map +1 -0
  229. package/dist/src/lib/search-engine/typesense/typesense.module.d.ts +8 -0
  230. package/dist/src/lib/search-engine/typesense/typesense.module.js +68 -0
  231. package/dist/src/lib/search-engine/typesense/typesense.module.js.map +1 -0
  232. package/dist/src/lib/search-engine/typesense/typesense.module.test.d.ts +1 -0
  233. package/dist/src/lib/search-engine/typesense/typesense.module.test.js +89 -0
  234. package/dist/src/lib/search-engine/typesense/typesense.module.test.js.map +1 -0
  235. package/dist/src/lib/search-engine/typesense/typesense.providers.d.ts +4 -0
  236. package/dist/src/lib/search-engine/typesense/typesense.providers.js +40 -0
  237. package/dist/src/lib/search-engine/typesense/typesense.providers.js.map +1 -0
  238. package/dist/src/lib/storage/index.d.ts +0 -0
  239. package/dist/src/lib/storage/index.js +1 -0
  240. package/dist/src/lib/storage/index.js.map +1 -0
  241. package/dist/src/lib/typesense/client/index.d.ts +1 -0
  242. package/dist/src/lib/typesense/client/index.js +6 -0
  243. package/dist/src/lib/typesense/client/index.js.map +1 -0
  244. package/dist/src/lib/typesense/collection/index.d.ts +1 -0
  245. package/dist/src/lib/typesense/collection/index.js +18 -0
  246. package/dist/src/lib/typesense/collection/index.js.map +1 -0
  247. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.d.ts +10 -0
  248. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js +42 -0
  249. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js.map +1 -0
  250. package/dist/src/lib/typesense/decorator/field.decorator.d.ts +9 -0
  251. package/dist/src/lib/typesense/decorator/field.decorator.js +15 -0
  252. package/dist/src/lib/typesense/decorator/field.decorator.js.map +1 -0
  253. package/dist/src/lib/typesense/decorator/index.d.ts +2 -0
  254. package/dist/src/lib/typesense/decorator/index.js +19 -0
  255. package/dist/src/lib/typesense/decorator/index.js.map +1 -0
  256. package/dist/src/lib/typesense/decorator/schema.decorator.d.ts +7 -0
  257. package/dist/src/lib/typesense/decorator/schema.decorator.js +16 -0
  258. package/dist/src/lib/typesense/decorator/schema.decorator.js.map +1 -0
  259. package/dist/src/lib/typesense/document/base.document.d.ts +3 -0
  260. package/dist/src/lib/typesense/document/base.document.js +7 -0
  261. package/dist/src/lib/typesense/document/base.document.js.map +1 -0
  262. package/dist/src/lib/typesense/document/index.d.ts +1 -0
  263. package/dist/src/lib/typesense/document/index.js +18 -0
  264. package/dist/src/lib/typesense/document/index.js.map +1 -0
  265. package/dist/src/lib/typesense/index.d.ts +4 -0
  266. package/dist/src/lib/typesense/index.js +21 -0
  267. package/dist/src/lib/typesense/index.js.map +1 -0
  268. package/dist/src/lib/typesense/metadata/index.d.ts +4 -0
  269. package/dist/src/lib/typesense/metadata/index.js +21 -0
  270. package/dist/src/lib/typesense/metadata/index.js.map +1 -0
  271. package/dist/src/lib/typesense/metadata/schema.metadata.d.ts +19 -0
  272. package/dist/src/lib/typesense/metadata/schema.metadata.js +3 -0
  273. package/dist/src/lib/typesense/metadata/schema.metadata.js.map +1 -0
  274. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.d.ts +7 -0
  275. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js +47 -0
  276. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js.map +1 -0
  277. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.d.ts +14 -0
  278. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js +50 -0
  279. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js.map +1 -0
  280. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.d.ts +10 -0
  281. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js +33 -0
  282. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js.map +1 -0
  283. package/dist/src/lib/typesense/module/index.d.ts +4 -0
  284. package/dist/src/lib/typesense/module/index.js +21 -0
  285. package/dist/src/lib/typesense/module/index.js.map +1 -0
  286. package/dist/src/lib/typesense/module/interface.module.d.ts +27 -0
  287. package/dist/src/lib/typesense/module/interface.module.js +3 -0
  288. package/dist/src/lib/typesense/module/interface.module.js.map +1 -0
  289. package/dist/src/lib/typesense/module/typesense.constant.d.ts +1 -0
  290. package/dist/src/lib/typesense/module/typesense.constant.js +5 -0
  291. package/dist/src/lib/typesense/module/typesense.constant.js.map +1 -0
  292. package/dist/src/lib/typesense/module/typesense.module.d.ts +8 -0
  293. package/dist/src/lib/typesense/module/typesense.module.js +74 -0
  294. package/dist/src/lib/typesense/module/typesense.module.js.map +1 -0
  295. package/dist/src/lib/typesense/module/typesense.provider.d.ts +5 -0
  296. package/dist/src/lib/typesense/module/typesense.provider.js +48 -0
  297. package/dist/src/lib/typesense/module/typesense.provider.js.map +1 -0
  298. package/dist/src/response/base-entity.response.d.ts +3 -0
  299. package/dist/src/response/base-entity.response.js +23 -0
  300. package/dist/src/response/base-entity.response.js.map +1 -0
  301. package/dist/src/response/index.d.ts +2 -0
  302. package/dist/src/response/index.js +19 -0
  303. package/dist/src/response/index.js.map +1 -0
  304. package/dist/src/response/login.response.d.ts +0 -0
  305. package/dist/src/response/login.response.js +1 -0
  306. package/dist/src/response/login.response.js.map +1 -0
  307. package/dist/src/response/pagination.response.d.ts +17 -0
  308. package/dist/src/response/pagination.response.js +68 -0
  309. package/dist/src/response/pagination.response.js.map +1 -0
  310. package/dist/src/setup/index.d.ts +1 -0
  311. package/dist/src/setup/index.js +18 -0
  312. package/dist/src/setup/index.js.map +1 -0
  313. package/dist/src/setup/microservice.setup.d.ts +2 -0
  314. package/dist/src/setup/microservice.setup.js +25 -0
  315. package/dist/src/setup/microservice.setup.js.map +1 -0
  316. package/dist/src/setup/swagger.setup.d.ts +0 -0
  317. package/dist/src/setup/swagger.setup.js +1 -0
  318. package/dist/src/setup/swagger.setup.js.map +1 -0
  319. package/dist/src/util/app.utils.d.ts +4 -0
  320. package/dist/src/util/app.utils.js +21 -0
  321. package/dist/src/util/app.utils.js.map +1 -0
  322. package/dist/src/util/date.util.d.ts +2 -0
  323. package/dist/src/util/date.util.js +14 -0
  324. package/dist/src/util/date.util.js.map +1 -0
  325. package/dist/src/util/generator.util.d.ts +4 -0
  326. package/dist/src/util/generator.util.js +29 -0
  327. package/dist/src/util/generator.util.js.map +1 -0
  328. package/dist/src/util/index.d.ts +4 -0
  329. package/dist/src/util/index.js +21 -0
  330. package/dist/src/util/index.js.map +1 -0
  331. package/dist/src/util/validate-config.d.ts +2 -0
  332. package/dist/src/util/validate-config.js +19 -0
  333. package/dist/src/util/validate-config.js.map +1 -0
  334. package/dist/tsconfig.build.tsbuildinfo +1 -0
  335. package/index.ts +1 -1
  336. package/nest-cli.json +8 -8
  337. package/package.json +92 -91
  338. package/src/auth/facebook/facebook.service.ts +4 -4
  339. package/src/auth/google/google.service.ts +5 -7
  340. package/src/auth/twitter/twitter.service.ts +4 -4
  341. package/src/constant/entity-state.constant.ts +4 -4
  342. package/src/constant/index.ts +1 -1
  343. package/src/dto/index.ts +2 -2
  344. package/src/exception/bad-request-error.exception.spec.ts +24 -24
  345. package/src/exception/bad-request-error.exception.ts +8 -8
  346. package/src/exception/base.exception.ts +36 -36
  347. package/src/exception/conflict-error.exception.spec.ts +23 -23
  348. package/src/exception/conflict-error.exception.ts +8 -8
  349. package/src/exception/forbidden-error.exception.spec.ts +23 -23
  350. package/src/exception/forbidden-error.exception.ts +8 -8
  351. package/src/exception/index.ts +7 -7
  352. package/src/exception/internal-server-error.exception.spec.ts +23 -23
  353. package/src/exception/internal-server-error.exception.ts +12 -12
  354. package/src/exception/not-found-error.exception.spec.ts +23 -23
  355. package/src/exception/not-found-error.exception.ts +8 -8
  356. package/src/exception/unauthorized-error.exception.spec.ts +23 -23
  357. package/src/exception/unauthorized-error.exception.ts +12 -12
  358. package/src/filter/http-exception.filter.ts +23 -23
  359. package/src/filter/index.ts +1 -1
  360. package/src/filter/rpc-exception.filter.ts +15 -15
  361. package/src/generic/entity/entity.generic.ts +34 -34
  362. package/src/generic/entity/index.ts +1 -1
  363. package/src/generic/index.ts +2 -2
  364. package/src/generic/service/index.ts +1 -1
  365. package/src/generic/service/service.generic.ts +112 -112
  366. package/src/lib/index.ts +3 -3
  367. package/src/lib/search-engine/document/base.document.ts +3 -3
  368. package/src/lib/search-engine/index.ts +1 -1
  369. package/src/lib/search-engine/interface/index.ts +1 -1
  370. package/src/lib/search-engine/interface/search-document.interface.ts +13 -13
  371. package/src/lib/search-engine/interface/transform-service.interface.ts +10 -10
  372. package/src/lib/search-engine/schema/generic.schema.ts +1 -1
  373. package/src/lib/search-engine/schema/index.ts +1 -1
  374. package/src/lib/search-engine/typesense/metadata/index.ts +1 -1
  375. package/src/lib/search-engine/typesense/metadata/schema.metadata.ts +13 -13
  376. package/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.ts +28 -28
  377. package/src/lib/search-engine/typesense/typesense-module.interface.ts +36 -36
  378. package/src/lib/search-engine/typesense/typesense.constants.ts +1 -1
  379. package/src/lib/search-engine/typesense/typesense.module.test.ts +94 -94
  380. package/src/lib/search-engine/typesense/typesense.module.ts +76 -76
  381. package/src/lib/search-engine/typesense/typesense.providers.ts +42 -42
  382. package/src/lib/typesense/client/index.ts +1 -1
  383. package/src/lib/typesense/collection/index.ts +1 -1
  384. package/src/lib/typesense/collection/typesense-colletctions.creator.ts +29 -0
  385. package/src/lib/typesense/decorator/field.decorator.spec.ts +89 -89
  386. package/src/lib/typesense/decorator/field.decorator.ts +44 -44
  387. package/src/lib/typesense/decorator/index.ts +2 -2
  388. package/src/lib/typesense/decorator/schema.decorator.ts +23 -23
  389. package/src/lib/typesense/document/base.document.ts +3 -3
  390. package/src/lib/typesense/document/index.ts +1 -1
  391. package/src/lib/typesense/index.ts +6 -6
  392. package/src/lib/typesense/metadata/index.ts +4 -4
  393. package/src/lib/typesense/metadata/schema.metadata.ts +21 -21
  394. package/src/lib/typesense/metadata/typesense.metadata-accessor.ts +37 -37
  395. package/src/lib/typesense/metadata/typesense.metadata-explorer.spec.ts +56 -56
  396. package/src/lib/typesense/metadata/typesense.metadata-explorer.ts +41 -41
  397. package/src/lib/typesense/metadata/typesense.metadata-registry.ts +28 -28
  398. package/src/lib/typesense/module/index.ts +4 -4
  399. package/src/lib/typesense/module/interface.module.ts +4 -2
  400. package/src/lib/typesense/module/typesense.constant.ts +1 -1
  401. package/src/lib/typesense/module/typesense.module.spec.ts +94 -94
  402. package/src/lib/typesense/module/typesense.module.ts +87 -87
  403. package/src/lib/typesense/module/typesense.provider.ts +9 -9
  404. package/src/setup/index.ts +1 -1
  405. package/src/setup/microservice.setup.ts +29 -29
  406. package/src/util/app.utils.ts +18 -18
  407. package/src/util/date.util.spec.ts +49 -49
  408. package/src/util/date.util.ts +10 -10
  409. package/src/util/generator.util.spec.ts +79 -79
  410. package/src/util/generator.util.ts +34 -34
  411. package/src/util/index.ts +4 -4
  412. package/test/app.e2e-spec.ts +24 -24
  413. package/test/jest-e2e.json +9 -9
  414. package/tsconfig.build.json +4 -4
  415. package/tsconfig.json +21 -21
@@ -1,23 +1,23 @@
1
- import { InternalServerException } from './internal-server-error.exception';
2
- import { HttpStatus } from '@nestjs/common';
3
-
4
- describe('InternalServerException', () => {
5
- it('should set default message and status code if no parameters are provided', () => {
6
- const error = new InternalServerException();
7
-
8
- expect(error.message).toBe('InternalServerException');
9
- expect(error.statusCode).toBe(HttpStatus.INTERNAL_SERVER_ERROR);
10
- expect(error.parameters).toBeUndefined();
11
- });
12
-
13
- it('should set custom message, status code, and parameters if provided', () => {
14
- const customMessage = 'Custom message';
15
- const customStatusCode = HttpStatus.INTERNAL_SERVER_ERROR;
16
- const customParameters = { key: 'value' };
17
- const error = new InternalServerException(customMessage, customParameters);
18
-
19
- expect(error.message).toBe(customMessage);
20
- expect(error.statusCode).toBe(customStatusCode);
21
- expect(error.parameters).toEqual(customParameters);
22
- });
23
- });
1
+ import { InternalServerException } from './internal-server-error.exception';
2
+ import { HttpStatus } from '@nestjs/common';
3
+
4
+ describe('InternalServerException', () => {
5
+ it('should set default message and status code if no parameters are provided', () => {
6
+ const error = new InternalServerException();
7
+
8
+ expect(error.message).toBe('InternalServerException');
9
+ expect(error.statusCode).toBe(HttpStatus.INTERNAL_SERVER_ERROR);
10
+ expect(error.parameters).toBeUndefined();
11
+ });
12
+
13
+ it('should set custom message, status code, and parameters if provided', () => {
14
+ const customMessage = 'Custom message';
15
+ const customStatusCode = HttpStatus.INTERNAL_SERVER_ERROR;
16
+ const customParameters = { key: 'value' };
17
+ const error = new InternalServerException(customMessage, customParameters);
18
+
19
+ expect(error.message).toBe(customMessage);
20
+ expect(error.statusCode).toBe(customStatusCode);
21
+ expect(error.parameters).toEqual(customParameters);
22
+ });
23
+ });
@@ -1,12 +1,12 @@
1
- import { HttpStatus } from '@nestjs/common';
2
- import { BaseException, ParametersType } from './base.exception';
3
-
4
- export class InternalServerException extends BaseException {
5
- constructor(message?: string, parameters?: ParametersType) {
6
- super(
7
- message ?? 'InternalServerException',
8
- HttpStatus.INTERNAL_SERVER_ERROR,
9
- parameters,
10
- );
11
- }
12
- }
1
+ import { HttpStatus } from '@nestjs/common';
2
+ import { BaseException, ParametersType } from './base.exception';
3
+
4
+ export class InternalServerException extends BaseException {
5
+ constructor(message?: string, parameters?: ParametersType) {
6
+ super(
7
+ message ?? 'InternalServerException',
8
+ HttpStatus.INTERNAL_SERVER_ERROR,
9
+ parameters,
10
+ );
11
+ }
12
+ }
@@ -1,23 +1,23 @@
1
- import { NotFoundException } from './not-found-error.exception';
2
- import { HttpStatus } from '@nestjs/common';
3
-
4
- describe('NotFoundException', () => {
5
- it('should set default message and status code if no parameters are provided', () => {
6
- const error = new NotFoundException();
7
-
8
- expect(error.message).toBe('NotFoundException');
9
- expect(error.statusCode).toBe(HttpStatus.NOT_FOUND);
10
- expect(error.parameters).toBeUndefined();
11
- });
12
-
13
- it('should set custom message, status code, and parameters if provided', () => {
14
- const customMessage = 'Custom message';
15
- const customStatusCode = HttpStatus.INTERNAL_SERVER_ERROR;
16
- const customParameters = { key: 'value' };
17
- const error = new NotFoundException(customMessage, customParameters);
18
-
19
- expect(error.message).toBe(customMessage);
20
- expect(error.statusCode).toBe(customStatusCode);
21
- expect(error.parameters).toEqual(customParameters);
22
- });
23
- });
1
+ import { NotFoundException } from './not-found-error.exception';
2
+ import { HttpStatus } from '@nestjs/common';
3
+
4
+ describe('NotFoundException', () => {
5
+ it('should set default message and status code if no parameters are provided', () => {
6
+ const error = new NotFoundException();
7
+
8
+ expect(error.message).toBe('NotFoundException');
9
+ expect(error.statusCode).toBe(HttpStatus.NOT_FOUND);
10
+ expect(error.parameters).toBeUndefined();
11
+ });
12
+
13
+ it('should set custom message, status code, and parameters if provided', () => {
14
+ const customMessage = 'Custom message';
15
+ const customStatusCode = HttpStatus.INTERNAL_SERVER_ERROR;
16
+ const customParameters = { key: 'value' };
17
+ const error = new NotFoundException(customMessage, customParameters);
18
+
19
+ expect(error.message).toBe(customMessage);
20
+ expect(error.statusCode).toBe(customStatusCode);
21
+ expect(error.parameters).toEqual(customParameters);
22
+ });
23
+ });
@@ -1,8 +1,8 @@
1
- import { HttpStatus } from '@nestjs/common';
2
- import { BaseException, ParametersType } from './base.exception';
3
-
4
- export class NotFoundException extends BaseException {
5
- constructor(message?: string, parameters?: ParametersType) {
6
- super(message ?? 'NotFoundException', HttpStatus.NOT_FOUND, parameters);
7
- }
8
- }
1
+ import { HttpStatus } from '@nestjs/common';
2
+ import { BaseException, ParametersType } from './base.exception';
3
+
4
+ export class NotFoundException extends BaseException {
5
+ constructor(message?: string, parameters?: ParametersType) {
6
+ super(message ?? 'NotFoundException', HttpStatus.NOT_FOUND, parameters);
7
+ }
8
+ }
@@ -1,23 +1,23 @@
1
- import { UnauthorizedException } from './unauthorized-error.exception';
2
- import { HttpStatus } from '@nestjs/common';
3
-
4
- describe('UnauthorizedException', () => {
5
- it('should set default message and status code if no parameters are provided', () => {
6
- const error = new UnauthorizedException();
7
-
8
- expect(error.message).toBe('UnauthorizedException');
9
- expect(error.statusCode).toBe(HttpStatus.UNAUTHORIZED);
10
- expect(error.parameters).toBeUndefined();
11
- });
12
-
13
- it('should set custom message, status code, and parameters if provided', () => {
14
- const customMessage = 'Custom message';
15
- const customStatusCode = HttpStatus.UNAUTHORIZED;
16
- const customParameters = { key: 'value' };
17
- const error = new UnauthorizedException(customMessage, customParameters);
18
-
19
- expect(error.message).toBe(customMessage);
20
- expect(error.statusCode).toBe(customStatusCode);
21
- expect(error.parameters).toEqual(customParameters);
22
- });
23
- });
1
+ import { UnauthorizedException } from './unauthorized-error.exception';
2
+ import { HttpStatus } from '@nestjs/common';
3
+
4
+ describe('UnauthorizedException', () => {
5
+ it('should set default message and status code if no parameters are provided', () => {
6
+ const error = new UnauthorizedException();
7
+
8
+ expect(error.message).toBe('UnauthorizedException');
9
+ expect(error.statusCode).toBe(HttpStatus.UNAUTHORIZED);
10
+ expect(error.parameters).toBeUndefined();
11
+ });
12
+
13
+ it('should set custom message, status code, and parameters if provided', () => {
14
+ const customMessage = 'Custom message';
15
+ const customStatusCode = HttpStatus.UNAUTHORIZED;
16
+ const customParameters = { key: 'value' };
17
+ const error = new UnauthorizedException(customMessage, customParameters);
18
+
19
+ expect(error.message).toBe(customMessage);
20
+ expect(error.statusCode).toBe(customStatusCode);
21
+ expect(error.parameters).toEqual(customParameters);
22
+ });
23
+ });
@@ -1,12 +1,12 @@
1
- import { HttpStatus } from '@nestjs/common';
2
- import { BaseException, ParametersType } from './base.exception';
3
-
4
- export class UnauthorizedException extends BaseException {
5
- constructor(message?: string, parameters?: ParametersType) {
6
- super(
7
- message ?? 'UnauthorizedException',
8
- HttpStatus.UNAUTHORIZED,
9
- parameters,
10
- );
11
- }
12
- }
1
+ import { HttpStatus } from '@nestjs/common';
2
+ import { BaseException, ParametersType } from './base.exception';
3
+
4
+ export class UnauthorizedException extends BaseException {
5
+ constructor(message?: string, parameters?: ParametersType) {
6
+ super(
7
+ message ?? 'UnauthorizedException',
8
+ HttpStatus.UNAUTHORIZED,
9
+ parameters,
10
+ );
11
+ }
12
+ }
@@ -1,23 +1,23 @@
1
- import {
2
- ExceptionFilter,
3
- Catch,
4
- ArgumentsHost,
5
- HttpException,
6
- } from '@nestjs/common';
7
- import { Request, Response } from 'express';
8
-
9
- @Catch(HttpException)
10
- export class HttpExceptionFilter implements ExceptionFilter {
11
- catch(exception: HttpException, host: ArgumentsHost) {
12
- const ctx = host.switchToHttp();
13
- const response = ctx.getResponse<Response>();
14
- const request = ctx.getRequest<Request>();
15
- const status = exception.getStatus();
16
-
17
- response.status(status).json({
18
- statusCode: status,
19
- timestamp: new Date().toISOString(),
20
- path: request.url,
21
- });
22
- }
23
- }
1
+ import {
2
+ ExceptionFilter,
3
+ Catch,
4
+ ArgumentsHost,
5
+ HttpException,
6
+ } from '@nestjs/common';
7
+ import { Request, Response } from 'express';
8
+
9
+ @Catch(HttpException)
10
+ export class HttpExceptionFilter implements ExceptionFilter {
11
+ catch(exception: HttpException, host: ArgumentsHost) {
12
+ const ctx = host.switchToHttp();
13
+ const response = ctx.getResponse<Response>();
14
+ const request = ctx.getRequest<Request>();
15
+ const status = exception.getStatus();
16
+
17
+ response.status(status).json({
18
+ statusCode: status,
19
+ timestamp: new Date().toISOString(),
20
+ path: request.url,
21
+ });
22
+ }
23
+ }
@@ -1 +1 @@
1
- export * from './http-exception.filter';
1
+ export * from './http-exception.filter';
@@ -1,15 +1,15 @@
1
- import { Catch } from '@nestjs/common';
2
- import { RpcException } from '@nestjs/microservices';
3
- import type { RpcExceptionFilter as NestRpcExceptionFilter } from '@nestjs/common';
4
- import { throwError } from 'rxjs';
5
- import type { Observable } from 'rxjs';
6
-
7
- @Catch(RpcException)
8
- export class RpcExceptionFilter
9
- implements NestRpcExceptionFilter<RpcException>
10
- {
11
- catch(exception: RpcException): Observable<any> {
12
- // TODO: handle grpc error here instead of throwing it inside each service
13
- return throwError(() => exception.getError());
14
- }
15
- }
1
+ import { Catch } from '@nestjs/common';
2
+ import { RpcException } from '@nestjs/microservices';
3
+ import type { RpcExceptionFilter as NestRpcExceptionFilter } from '@nestjs/common';
4
+ import { throwError } from 'rxjs';
5
+ import type { Observable } from 'rxjs';
6
+
7
+ @Catch(RpcException)
8
+ export class RpcExceptionFilter
9
+ implements NestRpcExceptionFilter<RpcException>
10
+ {
11
+ catch(exception: RpcException): Observable<any> {
12
+ // TODO: handle grpc error here instead of throwing it inside each service
13
+ return throwError(() => exception.getError());
14
+ }
15
+ }
@@ -1,34 +1,34 @@
1
- import {
2
- Column,
3
- VersionColumn,
4
- CreateDateColumn,
5
- UpdateDateColumn,
6
- PrimaryGeneratedColumn,
7
- } from 'typeorm';
8
-
9
- export class EntityGeneric {
10
- constructor(id?: number) {
11
- this.id = id;
12
- }
13
-
14
- @PrimaryGeneratedColumn()
15
- id: number;
16
-
17
- @CreateDateColumn()
18
- createdAt: Date;
19
-
20
- @UpdateDateColumn()
21
- updatedAt: Date;
22
-
23
- @Column()
24
- createdBy: number;
25
-
26
- @Column({ select: false })
27
- updatedBy: number;
28
-
29
- @Column()
30
- state: number;
31
-
32
- @VersionColumn({ select: false })
33
- version: number;
34
- }
1
+ import {
2
+ Column,
3
+ VersionColumn,
4
+ CreateDateColumn,
5
+ UpdateDateColumn,
6
+ PrimaryGeneratedColumn,
7
+ } from 'typeorm';
8
+
9
+ export class EntityGeneric {
10
+ constructor(id?: number) {
11
+ this.id = id;
12
+ }
13
+
14
+ @PrimaryGeneratedColumn()
15
+ id: number;
16
+
17
+ @CreateDateColumn()
18
+ createdAt: Date;
19
+
20
+ @UpdateDateColumn()
21
+ updatedAt: Date;
22
+
23
+ @Column()
24
+ createdBy: number;
25
+
26
+ @Column({ select: false })
27
+ updatedBy: number;
28
+
29
+ @Column()
30
+ state: number;
31
+
32
+ @VersionColumn({ select: false })
33
+ version: number;
34
+ }
@@ -1 +1 @@
1
- export * from './entity.generic';
1
+ export * from './entity.generic';
@@ -1,2 +1,2 @@
1
- export * from './entity/entity.generic';
2
- export * from './service/service.generic';
1
+ export * from './entity/entity.generic';
2
+ export * from './service/service.generic';
@@ -1 +1 @@
1
- export * from './service.generic';
1
+ export * from './service.generic';
@@ -1,112 +1,112 @@
1
- import {
2
- Repository,
3
- Connection,
4
- EntityManager,
5
- SelectQueryBuilder,
6
- } from 'typeorm';
7
- import { EntityGeneric } from '../entity';
8
- import { PaginationDto, BaseFilterDto } from '../../dto';
9
- import { EntityStateConstant } from '../../constant';
10
- import { PaginationResponse } from '../../response';
11
-
12
- export abstract class ServiceGeneric<
13
- Entity extends EntityGeneric,
14
- CustomRepository extends Repository<Entity>,
15
- > {
16
- protected readonly entityName: string;
17
- protected readonly loggable: boolean = false;
18
- protected repository: CustomRepository;
19
- protected connection: Connection;
20
- constructor(
21
- protected readonly connectionOrManager: Connection | EntityManager,
22
- repositoryType: { new (connection: Connection): CustomRepository },
23
- ) {
24
- if (connectionOrManager instanceof EntityManager) {
25
- this.connection = connectionOrManager.connection;
26
- } else {
27
- this.connection = connectionOrManager;
28
- }
29
- this.repository = this.connection.getCustomRepository(repositoryType);
30
- }
31
-
32
- async create(entity: Entity): Promise<Entity> {
33
- return this.repository.save(entity);
34
- }
35
-
36
- async update(entity: Entity): Promise<Entity> {
37
- return this.repository.save(entity);
38
- }
39
-
40
- async getListWithPagination(
41
- paginationDto: PaginationDto,
42
- callback?: (query: SelectQueryBuilder<Entity>) => void,
43
- ): Promise<PaginationResponse<Entity>> {
44
- const { limit = 25, offset = 0 } = paginationDto;
45
- const query = this.repository.createQueryBuilder(this.entityName);
46
- query.limit(limit);
47
- query.offset(offset);
48
- query.where(`${this.entityName}.state != :state`, {
49
- state: EntityStateConstant.Archived,
50
- });
51
- const defaultSelectable = ['createdAt', 'updatedAt'];
52
- query.orderBy(`${this.entityName}.updatedAt`, 'DESC');
53
- const selection = defaultSelectable.map(
54
- (column: string) => `${this.entityName}.${column}`,
55
- );
56
- query.addSelect(selection);
57
- if (callback != null) {
58
- callback(query);
59
- }
60
- const entities = await query.getMany();
61
- const total = await query.getCount();
62
- const response = new PaginationResponse(entities, total, limit, offset);
63
- return response;
64
- }
65
-
66
- async getAutocompleteWithPagination(
67
- paginationDto: PaginationDto,
68
- filter: BaseFilterDto,
69
- callback?: (query: SelectQueryBuilder<Entity>) => void,
70
- ): Promise<PaginationResponse<Entity>> {
71
- const { limit = 25, offset = 0 } = paginationDto;
72
- const query = this.repository.createQueryBuilder(this.entityName);
73
- query.limit(limit);
74
- query.offset(offset);
75
- query.where(`${this.entityName}.state != :state`, {
76
- state: EntityStateConstant.Archived,
77
- });
78
- const defaultSelectable = ['createdAt', 'updatedAt'];
79
- query.orderBy(`${this.entityName}.updatedAt`, 'DESC');
80
- const selection = defaultSelectable.map(
81
- (column: string) => `${this.entityName}.${column}`,
82
- );
83
- query.addSelect(selection);
84
- if (callback != null) {
85
- callback(query);
86
- }
87
- const { excludeIds = [], includeIds = [] } = { ...filter };
88
- // Exclude some ids from the list.
89
- if (excludeIds?.length > 0) {
90
- query.andWhere(`${this.entityName}.id NOT IN (:ids)`, {
91
- ids: excludeIds,
92
- });
93
- }
94
- let entities = await query.getMany();
95
- const total = await query.getCount();
96
- // Include some ids to the list.
97
- const allIds: number[] = [];
98
- for (const id of includeIds) {
99
- const entity = entities.filter((entity: Entity) => entity.id === id);
100
- if (entity.length == 0) {
101
- allIds.push(id);
102
- }
103
- }
104
- if (allIds.length > 0) {
105
- query.where(`${this.entityName}.id IN (:ids)`, { ids: allIds });
106
- const data = await query.getMany();
107
- entities = data.concat(entities);
108
- }
109
- const response = new PaginationResponse(entities, total, limit, offset);
110
- return response;
111
- }
112
- }
1
+ import {
2
+ Repository,
3
+ Connection,
4
+ EntityManager,
5
+ SelectQueryBuilder,
6
+ } from 'typeorm';
7
+ import { EntityGeneric } from '../entity';
8
+ import { PaginationDto, BaseFilterDto } from '../../dto';
9
+ import { EntityStateConstant } from '../../constant';
10
+ import { PaginationResponse } from '../../response';
11
+
12
+ export abstract class ServiceGeneric<
13
+ Entity extends EntityGeneric,
14
+ CustomRepository extends Repository<Entity>,
15
+ > {
16
+ protected readonly entityName: string;
17
+ protected readonly loggable: boolean = false;
18
+ protected repository: CustomRepository;
19
+ protected connection: Connection;
20
+ constructor(
21
+ protected readonly connectionOrManager: Connection | EntityManager,
22
+ repositoryType: { new (connection: Connection): CustomRepository },
23
+ ) {
24
+ if (connectionOrManager instanceof EntityManager) {
25
+ this.connection = connectionOrManager.connection;
26
+ } else {
27
+ this.connection = connectionOrManager;
28
+ }
29
+ this.repository = this.connection.getCustomRepository(repositoryType);
30
+ }
31
+
32
+ async create(entity: Entity): Promise<Entity> {
33
+ return this.repository.save(entity);
34
+ }
35
+
36
+ async update(entity: Entity): Promise<Entity> {
37
+ return this.repository.save(entity);
38
+ }
39
+
40
+ async getListWithPagination(
41
+ paginationDto: PaginationDto,
42
+ callback?: (query: SelectQueryBuilder<Entity>) => void,
43
+ ): Promise<PaginationResponse<Entity>> {
44
+ const { limit = 25, offset = 0 } = paginationDto;
45
+ const query = this.repository.createQueryBuilder(this.entityName);
46
+ query.limit(limit);
47
+ query.offset(offset);
48
+ query.where(`${this.entityName}.state != :state`, {
49
+ state: EntityStateConstant.Archived,
50
+ });
51
+ const defaultSelectable = ['createdAt', 'updatedAt'];
52
+ query.orderBy(`${this.entityName}.updatedAt`, 'DESC');
53
+ const selection = defaultSelectable.map(
54
+ (column: string) => `${this.entityName}.${column}`,
55
+ );
56
+ query.addSelect(selection);
57
+ if (callback != null) {
58
+ callback(query);
59
+ }
60
+ const entities = await query.getMany();
61
+ const total = await query.getCount();
62
+ const response = new PaginationResponse(entities, total, limit, offset);
63
+ return response;
64
+ }
65
+
66
+ async getAutocompleteWithPagination(
67
+ paginationDto: PaginationDto,
68
+ filter: BaseFilterDto,
69
+ callback?: (query: SelectQueryBuilder<Entity>) => void,
70
+ ): Promise<PaginationResponse<Entity>> {
71
+ const { limit = 25, offset = 0 } = paginationDto;
72
+ const query = this.repository.createQueryBuilder(this.entityName);
73
+ query.limit(limit);
74
+ query.offset(offset);
75
+ query.where(`${this.entityName}.state != :state`, {
76
+ state: EntityStateConstant.Archived,
77
+ });
78
+ const defaultSelectable = ['createdAt', 'updatedAt'];
79
+ query.orderBy(`${this.entityName}.updatedAt`, 'DESC');
80
+ const selection = defaultSelectable.map(
81
+ (column: string) => `${this.entityName}.${column}`,
82
+ );
83
+ query.addSelect(selection);
84
+ if (callback != null) {
85
+ callback(query);
86
+ }
87
+ const { excludeIds = [], includeIds = [] } = { ...filter };
88
+ // Exclude some ids from the list.
89
+ if (excludeIds?.length > 0) {
90
+ query.andWhere(`${this.entityName}.id NOT IN (:ids)`, {
91
+ ids: excludeIds,
92
+ });
93
+ }
94
+ let entities = await query.getMany();
95
+ const total = await query.getCount();
96
+ // Include some ids to the list.
97
+ const allIds: number[] = [];
98
+ for (const id of includeIds) {
99
+ const entity = entities.filter((entity: Entity) => entity.id === id);
100
+ if (entity.length == 0) {
101
+ allIds.push(id);
102
+ }
103
+ }
104
+ if (allIds.length > 0) {
105
+ query.where(`${this.entityName}.id IN (:ids)`, { ids: allIds });
106
+ const data = await query.getMany();
107
+ entities = data.concat(entities);
108
+ }
109
+ const response = new PaginationResponse(entities, total, limit, offset);
110
+ return response;
111
+ }
112
+ }
package/src/lib/index.ts CHANGED
@@ -1,3 +1,3 @@
1
- export * from './search-engine';
2
- export * from './mailer';
3
- export * from './typesense';
1
+ export * from './search-engine';
2
+ export * from './mailer';
3
+ export * from './typesense';
@@ -1,3 +1,3 @@
1
- export class BaseDocument {
2
- id?: string;
3
- }
1
+ export class BaseDocument {
2
+ id?: string;
3
+ }
@@ -1 +1 @@
1
- export * from 'typesense';
1
+ export * from 'typesense';
@@ -1,2 +1,2 @@
1
- export * from './search-document.interface';
1
+ export * from './search-document.interface';
2
2
  export * from './transform-service.interface';
@@ -1,13 +1,13 @@
1
- import {
2
- SearchOptions,
3
- SearchParams,
4
- SearchResponse,
5
- DocumentSchema,
6
- } from 'typesense/lib/Typesense/Documents';
7
-
8
- export interface SearchDocumentService<Document extends DocumentSchema> {
9
- searchDocument(
10
- searchParameters: SearchParams,
11
- options: SearchOptions,
12
- ): Promise<SearchResponse<Document>>;
13
- }
1
+ import {
2
+ SearchOptions,
3
+ SearchParams,
4
+ SearchResponse,
5
+ DocumentSchema,
6
+ } from 'typesense/lib/Typesense/Documents';
7
+
8
+ export interface SearchDocumentService<Document extends DocumentSchema> {
9
+ searchDocument(
10
+ searchParameters: SearchParams,
11
+ options: SearchOptions,
12
+ ): Promise<SearchResponse<Document>>;
13
+ }