mm-share-lib 0.0.6 → 0.0.8

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 (408) 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.js +18 -0
  179. package/dist/src/lib/search-engine/document/index.js.map +1 -0
  180. package/dist/src/lib/search-engine/index.d.ts +1 -0
  181. package/dist/src/lib/search-engine/index.js +18 -0
  182. package/dist/src/lib/search-engine/index.js.map +1 -0
  183. package/dist/src/lib/search-engine/interface/index.d.ts +2 -0
  184. package/dist/src/lib/search-engine/interface/index.js +19 -0
  185. package/dist/src/lib/search-engine/interface/index.js.map +1 -0
  186. package/dist/src/lib/search-engine/interface/search-document.interface.d.ts +4 -0
  187. package/dist/src/lib/search-engine/interface/search-document.interface.js +3 -0
  188. package/dist/src/lib/search-engine/interface/search-document.interface.js.map +1 -0
  189. package/dist/src/lib/search-engine/interface/transform-service.interface.d.ts +6 -0
  190. package/dist/src/lib/search-engine/interface/transform-service.interface.js +3 -0
  191. package/dist/src/lib/search-engine/interface/transform-service.interface.js.map +1 -0
  192. package/dist/src/lib/search-engine/schema/generic.schema.d.ts +2 -0
  193. package/dist/src/lib/search-engine/schema/generic.schema.js +7 -0
  194. package/dist/src/lib/search-engine/schema/generic.schema.js.map +1 -0
  195. package/dist/src/lib/search-engine/schema/index.d.ts +1 -0
  196. package/dist/src/lib/search-engine/schema/index.js +18 -0
  197. package/dist/src/lib/search-engine/schema/index.js.map +1 -0
  198. package/dist/src/lib/search-engine/typesense/collection/index.d.ts +1 -0
  199. package/dist/src/lib/search-engine/typesense/collection/index.js +18 -0
  200. package/dist/src/lib/search-engine/typesense/collection/index.js.map +1 -0
  201. package/dist/src/lib/search-engine/typesense/document/index.d.ts +1 -0
  202. package/dist/src/lib/search-engine/typesense/document/index.js +18 -0
  203. package/dist/src/lib/search-engine/typesense/document/index.js.map +1 -0
  204. package/dist/src/lib/search-engine/typesense/index.d.ts +4 -0
  205. package/dist/src/lib/search-engine/typesense/index.js +21 -0
  206. package/dist/src/lib/search-engine/typesense/index.js.map +1 -0
  207. package/dist/src/lib/search-engine/typesense/metadata/index.d.ts +2 -0
  208. package/dist/src/lib/search-engine/typesense/metadata/index.js +19 -0
  209. package/dist/src/lib/search-engine/typesense/metadata/index.js.map +1 -0
  210. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.d.ts +12 -0
  211. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js +3 -0
  212. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js.map +1 -0
  213. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.d.ts +10 -0
  214. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js +33 -0
  215. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js.map +1 -0
  216. package/dist/src/lib/search-engine/typesense/service/client.service.d.ts +34 -0
  217. package/dist/src/lib/search-engine/typesense/service/client.service.js +200 -0
  218. package/dist/src/lib/search-engine/typesense/service/client.service.js.map +1 -0
  219. package/dist/src/lib/search-engine/typesense/service/index.d.ts +1 -0
  220. package/dist/src/lib/search-engine/typesense/service/index.js +18 -0
  221. package/dist/src/lib/search-engine/typesense/service/index.js.map +1 -0
  222. package/dist/src/lib/search-engine/typesense/typesense-module.interface.d.ts +27 -0
  223. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js +3 -0
  224. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js.map +1 -0
  225. package/dist/src/lib/search-engine/typesense/typesense.constants.d.ts +1 -0
  226. package/dist/src/lib/search-engine/typesense/typesense.constants.js +5 -0
  227. package/dist/src/lib/search-engine/typesense/typesense.constants.js.map +1 -0
  228. package/dist/src/lib/search-engine/typesense/typesense.module.d.ts +8 -0
  229. package/dist/src/lib/search-engine/typesense/typesense.module.js +68 -0
  230. package/dist/src/lib/search-engine/typesense/typesense.module.js.map +1 -0
  231. package/dist/src/lib/search-engine/typesense/typesense.module.test.d.ts +1 -0
  232. package/dist/src/lib/search-engine/typesense/typesense.module.test.js +89 -0
  233. package/dist/src/lib/search-engine/typesense/typesense.module.test.js.map +1 -0
  234. package/dist/src/lib/search-engine/typesense/typesense.providers.d.ts +4 -0
  235. package/dist/src/lib/search-engine/typesense/typesense.providers.js +40 -0
  236. package/dist/src/lib/search-engine/typesense/typesense.providers.js.map +1 -0
  237. package/dist/src/lib/storage/index.d.ts +0 -0
  238. package/dist/src/lib/storage/index.js +1 -0
  239. package/dist/src/lib/storage/index.js.map +1 -0
  240. package/dist/src/lib/typesense/client/index.js +6 -0
  241. package/dist/src/lib/typesense/client/index.js.map +1 -0
  242. package/dist/src/lib/typesense/collection/index.d.ts +1 -0
  243. package/dist/src/lib/typesense/collection/index.js +18 -0
  244. package/dist/src/lib/typesense/collection/index.js.map +1 -0
  245. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.d.ts +10 -0
  246. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js +42 -0
  247. package/dist/src/lib/typesense/collection/typesense-colletctions.creator.js.map +1 -0
  248. package/dist/src/lib/typesense/decorator/field.decorator.d.ts +9 -0
  249. package/dist/src/lib/typesense/decorator/field.decorator.js +15 -0
  250. package/dist/src/lib/typesense/decorator/field.decorator.js.map +1 -0
  251. package/dist/src/lib/typesense/decorator/index.js +19 -0
  252. package/dist/src/lib/typesense/decorator/index.js.map +1 -0
  253. package/dist/src/lib/typesense/decorator/schema.decorator.d.ts +7 -0
  254. package/dist/src/lib/typesense/decorator/schema.decorator.js +16 -0
  255. package/dist/src/lib/typesense/decorator/schema.decorator.js.map +1 -0
  256. package/dist/src/lib/typesense/document/base.document.d.ts +3 -0
  257. package/dist/src/lib/typesense/document/base.document.js +7 -0
  258. package/dist/src/lib/typesense/document/base.document.js.map +1 -0
  259. package/dist/src/lib/typesense/document/index.d.ts +1 -0
  260. package/dist/src/lib/typesense/document/index.js +18 -0
  261. package/dist/src/lib/typesense/document/index.js.map +1 -0
  262. package/{src/lib/typesense/index.ts → dist/src/lib/typesense/index.d.ts} +0 -2
  263. package/dist/src/lib/typesense/index.js +21 -0
  264. package/dist/src/lib/typesense/index.js.map +1 -0
  265. package/dist/src/lib/typesense/metadata/index.js +21 -0
  266. package/dist/src/lib/typesense/metadata/index.js.map +1 -0
  267. package/dist/src/lib/typesense/metadata/schema.metadata.d.ts +19 -0
  268. package/dist/src/lib/typesense/metadata/schema.metadata.js +3 -0
  269. package/dist/src/lib/typesense/metadata/schema.metadata.js.map +1 -0
  270. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.d.ts +7 -0
  271. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js +47 -0
  272. package/dist/src/lib/typesense/metadata/typesense.metadata-accessor.js.map +1 -0
  273. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.d.ts +14 -0
  274. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js +50 -0
  275. package/dist/src/lib/typesense/metadata/typesense.metadata-explorer.js.map +1 -0
  276. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.d.ts +10 -0
  277. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js +33 -0
  278. package/dist/src/lib/typesense/metadata/typesense.metadata-registry.js.map +1 -0
  279. package/dist/src/lib/typesense/module/index.js +21 -0
  280. package/dist/src/lib/typesense/module/index.js.map +1 -0
  281. package/dist/src/lib/typesense/module/interface.module.d.ts +27 -0
  282. package/dist/src/lib/typesense/module/interface.module.js +3 -0
  283. package/dist/src/lib/typesense/module/interface.module.js.map +1 -0
  284. package/dist/src/lib/typesense/module/typesense.constant.d.ts +1 -0
  285. package/dist/src/lib/typesense/module/typesense.constant.js +5 -0
  286. package/dist/src/lib/typesense/module/typesense.constant.js.map +1 -0
  287. package/dist/src/lib/typesense/module/typesense.module.d.ts +8 -0
  288. package/dist/src/lib/typesense/module/typesense.module.js +74 -0
  289. package/dist/src/lib/typesense/module/typesense.module.js.map +1 -0
  290. package/dist/src/lib/typesense/module/typesense.provider.d.ts +5 -0
  291. package/dist/src/lib/typesense/module/typesense.provider.js +48 -0
  292. package/dist/src/lib/typesense/module/typesense.provider.js.map +1 -0
  293. package/dist/src/response/base-entity.response.d.ts +3 -0
  294. package/dist/src/response/base-entity.response.js +23 -0
  295. package/dist/src/response/base-entity.response.js.map +1 -0
  296. package/dist/src/response/index.d.ts +2 -0
  297. package/dist/src/response/index.js +19 -0
  298. package/dist/src/response/index.js.map +1 -0
  299. package/dist/src/response/login.response.d.ts +0 -0
  300. package/dist/src/response/login.response.js +1 -0
  301. package/dist/src/response/login.response.js.map +1 -0
  302. package/dist/src/response/pagination.response.d.ts +17 -0
  303. package/dist/src/response/pagination.response.js +68 -0
  304. package/dist/src/response/pagination.response.js.map +1 -0
  305. package/dist/src/setup/index.d.ts +1 -0
  306. package/dist/src/setup/index.js +18 -0
  307. package/dist/src/setup/index.js.map +1 -0
  308. package/dist/src/setup/microservice.setup.d.ts +2 -0
  309. package/dist/src/setup/microservice.setup.js +25 -0
  310. package/dist/src/setup/microservice.setup.js.map +1 -0
  311. package/dist/src/setup/swagger.setup.d.ts +0 -0
  312. package/dist/src/setup/swagger.setup.js +1 -0
  313. package/dist/src/setup/swagger.setup.js.map +1 -0
  314. package/dist/src/util/app.utils.d.ts +4 -0
  315. package/dist/src/util/app.utils.js +21 -0
  316. package/dist/src/util/app.utils.js.map +1 -0
  317. package/dist/src/util/date.util.d.ts +2 -0
  318. package/dist/src/util/date.util.js +14 -0
  319. package/dist/src/util/date.util.js.map +1 -0
  320. package/dist/src/util/generator.util.d.ts +4 -0
  321. package/dist/src/util/generator.util.js +29 -0
  322. package/dist/src/util/generator.util.js.map +1 -0
  323. package/dist/src/util/index.d.ts +4 -0
  324. package/dist/src/util/index.js +21 -0
  325. package/dist/src/util/index.js.map +1 -0
  326. package/dist/src/util/validate-config.d.ts +2 -0
  327. package/dist/src/util/validate-config.js +19 -0
  328. package/dist/src/util/validate-config.js.map +1 -0
  329. package/dist/tsconfig.build.tsbuildinfo +1 -0
  330. package/index.ts +1 -1
  331. package/nest-cli.json +8 -8
  332. package/package.json +91 -91
  333. package/src/auth/facebook/facebook.service.ts +4 -4
  334. package/src/auth/google/google.service.ts +5 -7
  335. package/src/auth/twitter/twitter.service.ts +4 -4
  336. package/src/constant/entity-state.constant.ts +4 -4
  337. package/src/constant/index.ts +1 -1
  338. package/src/dto/index.ts +2 -2
  339. package/src/exception/bad-request-error.exception.spec.ts +24 -24
  340. package/src/exception/bad-request-error.exception.ts +8 -8
  341. package/src/exception/base.exception.ts +36 -36
  342. package/src/exception/conflict-error.exception.spec.ts +23 -23
  343. package/src/exception/conflict-error.exception.ts +8 -8
  344. package/src/exception/forbidden-error.exception.spec.ts +23 -23
  345. package/src/exception/forbidden-error.exception.ts +8 -8
  346. package/src/exception/index.ts +7 -7
  347. package/src/exception/internal-server-error.exception.spec.ts +23 -23
  348. package/src/exception/internal-server-error.exception.ts +12 -12
  349. package/src/exception/not-found-error.exception.spec.ts +23 -23
  350. package/src/exception/not-found-error.exception.ts +8 -8
  351. package/src/exception/unauthorized-error.exception.spec.ts +23 -23
  352. package/src/exception/unauthorized-error.exception.ts +12 -12
  353. package/src/filter/http-exception.filter.ts +23 -23
  354. package/src/filter/index.ts +1 -1
  355. package/src/filter/rpc-exception.filter.ts +15 -15
  356. package/src/generic/entity/entity.generic.ts +34 -34
  357. package/src/generic/entity/index.ts +1 -1
  358. package/src/generic/index.ts +2 -2
  359. package/src/generic/service/index.ts +1 -1
  360. package/src/generic/service/service.generic.ts +112 -112
  361. package/src/lib/index.ts +2 -3
  362. package/src/lib/search-engine/document/base.document.ts +3 -3
  363. package/src/lib/search-engine/index.ts +1 -1
  364. package/src/lib/search-engine/interface/index.ts +1 -1
  365. package/src/lib/search-engine/interface/search-document.interface.ts +13 -13
  366. package/src/lib/search-engine/interface/transform-service.interface.ts +10 -10
  367. package/src/lib/search-engine/schema/generic.schema.ts +1 -1
  368. package/src/lib/search-engine/schema/index.ts +1 -1
  369. package/src/lib/search-engine/typesense/metadata/index.ts +1 -1
  370. package/src/lib/search-engine/typesense/metadata/schema.metadata.ts +13 -13
  371. package/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.ts +28 -28
  372. package/src/lib/search-engine/typesense/typesense-module.interface.ts +36 -36
  373. package/src/lib/search-engine/typesense/typesense.constants.ts +1 -1
  374. package/src/lib/search-engine/typesense/typesense.module.test.ts +94 -94
  375. package/src/lib/search-engine/typesense/typesense.module.ts +76 -76
  376. package/src/lib/search-engine/typesense/typesense.providers.ts +42 -42
  377. package/src/setup/index.ts +1 -1
  378. package/src/setup/microservice.setup.ts +29 -29
  379. package/src/util/app.utils.ts +18 -18
  380. package/src/util/date.util.spec.ts +49 -49
  381. package/src/util/date.util.ts +10 -10
  382. package/src/util/generator.util.spec.ts +79 -79
  383. package/src/util/generator.util.ts +34 -34
  384. package/src/util/index.ts +4 -4
  385. package/test/app.e2e-spec.ts +24 -24
  386. package/test/jest-e2e.json +9 -9
  387. package/tsconfig.build.json +4 -4
  388. package/tsconfig.json +21 -21
  389. package/src/lib/typesense/collection/index.ts +0 -1
  390. package/src/lib/typesense/decorator/field.decorator.spec.ts +0 -89
  391. package/src/lib/typesense/decorator/field.decorator.ts +0 -44
  392. package/src/lib/typesense/decorator/schema.decorator.ts +0 -23
  393. package/src/lib/typesense/document/base.document.ts +0 -3
  394. package/src/lib/typesense/metadata/schema.metadata.ts +0 -21
  395. package/src/lib/typesense/metadata/typesense.metadata-accessor.ts +0 -37
  396. package/src/lib/typesense/metadata/typesense.metadata-explorer.spec.ts +0 -56
  397. package/src/lib/typesense/metadata/typesense.metadata-explorer.ts +0 -41
  398. package/src/lib/typesense/metadata/typesense.metadata-registry.ts +0 -28
  399. package/src/lib/typesense/module/interface.module.ts +0 -34
  400. package/src/lib/typesense/module/typesense.constant.ts +0 -1
  401. package/src/lib/typesense/module/typesense.module.spec.ts +0 -94
  402. package/src/lib/typesense/module/typesense.module.ts +0 -87
  403. package/src/lib/typesense/module/typesense.provider.ts +0 -54
  404. /package/{src/lib/typesense/document/index.ts → dist/src/lib/search-engine/document/index.d.ts} +0 -0
  405. /package/{src/lib/typesense/client/index.ts → dist/src/lib/typesense/client/index.d.ts} +0 -0
  406. /package/{src/lib/typesense/decorator/index.ts → dist/src/lib/typesense/decorator/index.d.ts} +0 -0
  407. /package/{src/lib/typesense/metadata/index.ts → dist/src/lib/typesense/metadata/index.d.ts} +0 -0
  408. /package/{src/lib/typesense/module/index.ts → dist/src/lib/typesense/module/index.d.ts} +0 -0
@@ -1,18 +1,18 @@
1
- import type { INestApplication } from '@nestjs/common';
2
-
3
- export class AppUtils {
4
- public static killAppWithGrace = (app: INestApplication) => {
5
- process.on('SIGINT', async () => {
6
- setTimeout(() => process.exit(1), 5000);
7
- await app.close();
8
- process.exit(0);
9
- });
10
-
11
- // kill -15
12
- process.on('SIGTERM', async () => {
13
- setTimeout(() => process.exit(1), 5000);
14
- await app.close();
15
- process.exit(0);
16
- });
17
- };
18
- }
1
+ import type { INestApplication } from '@nestjs/common';
2
+
3
+ export class AppUtils {
4
+ public static killAppWithGrace = (app: INestApplication) => {
5
+ process.on('SIGINT', async () => {
6
+ setTimeout(() => process.exit(1), 5000);
7
+ await app.close();
8
+ process.exit(0);
9
+ });
10
+
11
+ // kill -15
12
+ process.on('SIGTERM', async () => {
13
+ setTimeout(() => process.exit(1), 5000);
14
+ await app.close();
15
+ process.exit(0);
16
+ });
17
+ };
18
+ }
@@ -1,49 +1,49 @@
1
- import dayjs from 'dayjs';
2
- import { addSecond, isExpired } from './date.util';
3
-
4
- describe('Utility Functions', () => {
5
- test('addSecond should return a Date object with the specified duration added', () => {
6
- // Arrange
7
- const duration = 10;
8
-
9
- // Act
10
- const result = addSecond(duration);
11
-
12
- // Assert
13
- const expectedDate = dayjs().add(duration, 'seconds').toDate();
14
- expect(result).toEqual(expectedDate);
15
- });
16
-
17
- test('isExpired should return true for a past date', () => {
18
- // Arrange
19
- const pastDate = dayjs().subtract(1, 'day').toDate();
20
-
21
- // Act
22
- const result = isExpired(pastDate);
23
-
24
- // Assert
25
- expect(result).toBe(true);
26
- });
27
-
28
- test('isExpired should return false for a future date', () => {
29
- // Arrange
30
- const futureDate = dayjs().add(1, 'day').toDate();
31
-
32
- // Act
33
- const result = isExpired(futureDate);
34
-
35
- // Assert
36
- expect(result).toBe(false);
37
- });
38
-
39
- test('isExpired should return false for the current date', () => {
40
- // Arrange
41
- const currentDate = dayjs().toDate();
42
-
43
- // Act
44
- const result = isExpired(currentDate);
45
-
46
- // Assert
47
- expect(result).toBe(false);
48
- });
49
- });
1
+ import dayjs from 'dayjs';
2
+ import { addSecond, isExpired } from './date.util';
3
+
4
+ describe('Utility Functions', () => {
5
+ test('addSecond should return a Date object with the specified duration added', () => {
6
+ // Arrange
7
+ const duration = 10;
8
+
9
+ // Act
10
+ const result = addSecond(duration);
11
+
12
+ // Assert
13
+ const expectedDate = dayjs().add(duration, 'seconds').toDate();
14
+ expect(result).toEqual(expectedDate);
15
+ });
16
+
17
+ test('isExpired should return true for a past date', () => {
18
+ // Arrange
19
+ const pastDate = dayjs().subtract(1, 'day').toDate();
20
+
21
+ // Act
22
+ const result = isExpired(pastDate);
23
+
24
+ // Assert
25
+ expect(result).toBe(true);
26
+ });
27
+
28
+ test('isExpired should return false for a future date', () => {
29
+ // Arrange
30
+ const futureDate = dayjs().add(1, 'day').toDate();
31
+
32
+ // Act
33
+ const result = isExpired(futureDate);
34
+
35
+ // Assert
36
+ expect(result).toBe(false);
37
+ });
38
+
39
+ test('isExpired should return false for the current date', () => {
40
+ // Arrange
41
+ const currentDate = dayjs().toDate();
42
+
43
+ // Act
44
+ const result = isExpired(currentDate);
45
+
46
+ // Assert
47
+ expect(result).toBe(false);
48
+ });
49
+ });
@@ -1,10 +1,10 @@
1
- import dayjs from 'dayjs';
2
-
3
- export const addSecond = (duration: number): Date => {
4
- return dayjs().add(duration, 'seconds').toDate();
5
- };
6
-
7
- export const isExpired = (date: Date): boolean => {
8
- const currentDate = dayjs();
9
- return dayjs(date).isBefore(currentDate);
10
- };
1
+ import dayjs from 'dayjs';
2
+
3
+ export const addSecond = (duration: number): Date => {
4
+ return dayjs().add(duration, 'seconds').toDate();
5
+ };
6
+
7
+ export const isExpired = (date: Date): boolean => {
8
+ const currentDate = dayjs();
9
+ return dayjs(date).isBefore(currentDate);
10
+ };
@@ -1,79 +1,79 @@
1
- import * as bcrypt from 'bcrypt';
2
- import {
3
- generateKey,
4
- generateDigitCode,
5
- generatePassword,
6
- } from './generator.util';
7
-
8
- describe('Utils', () => {
9
- describe('generateKey', () => {
10
- it('should generate a key of the specified length', () => {
11
- const keyLength = 10;
12
- const key = generateKey(keyLength);
13
- expect(key).toHaveLength(keyLength);
14
- });
15
-
16
- it('should generate a key with default length if not specified', () => {
17
- const defaultKeyLength = 36;
18
- const key = generateKey();
19
- expect(key).toHaveLength(defaultKeyLength);
20
- });
21
- });
22
-
23
- describe('generateDigitCode', () => {
24
- it('should generate a digit code of the specified length', () => {
25
- const codeLength = 6;
26
- const code = generateDigitCode(codeLength);
27
- expect(code).toHaveLength(codeLength);
28
- expect(Number(code)).toBeGreaterThanOrEqual(100000);
29
- expect(Number(code)).toBeLessThanOrEqual(999999);
30
- });
31
-
32
- it('should generate a digit code with default length if not specified', () => {
33
- const defaultCodeLength = 4;
34
- const code = generateDigitCode();
35
- expect(code).toHaveLength(defaultCodeLength);
36
- expect(Number(code)).toBeGreaterThanOrEqual(1000);
37
- expect(Number(code)).toBeLessThanOrEqual(9999);
38
- });
39
- });
40
-
41
- describe('Utility Functions', () => {
42
- test('generatePassword should return a hashed password with the specified salt rounds', async () => {
43
- // Arrange
44
- const password = 'password123';
45
- const saltRounds = 12;
46
-
47
- // Act
48
- const hashedPassword = await generatePassword(password, saltRounds);
49
-
50
- // Assert
51
- expect(typeof hashedPassword).toBe('string');
52
- expect(hashedPassword).not.toBe(password);
53
- expect(await bcrypt.compare(password, hashedPassword)).toBeTruthy();
54
- });
55
-
56
- test('generatePassword should use the default salt rounds when no value is provided', async () => {
57
- // Arrange
58
- const password = 'password123';
59
- const defaultSaltRounds = 10;
60
-
61
- // Act
62
- const hashedPassword = await generatePassword(password);
63
-
64
- // Assert
65
- expect(typeof hashedPassword).toBe('string');
66
- expect(hashedPassword).not.toBe(password);
67
- expect(await bcrypt.compare(password, hashedPassword)).toBeTruthy();
68
- expect(bcrypt.getRounds(hashedPassword)).toBe(defaultSaltRounds);
69
- });
70
-
71
- test('generatePassword should throw an error when an invalid password is provided', async () => {
72
- // Arrange
73
- const invalidPassword = '';
74
-
75
- // Act and Assert
76
- await expect(generatePassword(invalidPassword)).rejects.toThrow();
77
- });
78
- });
79
- });
1
+ import * as bcrypt from 'bcrypt';
2
+ import {
3
+ generateKey,
4
+ generateDigitCode,
5
+ generatePassword,
6
+ } from './generator.util';
7
+
8
+ describe('Utils', () => {
9
+ describe('generateKey', () => {
10
+ it('should generate a key of the specified length', () => {
11
+ const keyLength = 10;
12
+ const key = generateKey(keyLength);
13
+ expect(key).toHaveLength(keyLength);
14
+ });
15
+
16
+ it('should generate a key with default length if not specified', () => {
17
+ const defaultKeyLength = 36;
18
+ const key = generateKey();
19
+ expect(key).toHaveLength(defaultKeyLength);
20
+ });
21
+ });
22
+
23
+ describe('generateDigitCode', () => {
24
+ it('should generate a digit code of the specified length', () => {
25
+ const codeLength = 6;
26
+ const code = generateDigitCode(codeLength);
27
+ expect(code).toHaveLength(codeLength);
28
+ expect(Number(code)).toBeGreaterThanOrEqual(100000);
29
+ expect(Number(code)).toBeLessThanOrEqual(999999);
30
+ });
31
+
32
+ it('should generate a digit code with default length if not specified', () => {
33
+ const defaultCodeLength = 4;
34
+ const code = generateDigitCode();
35
+ expect(code).toHaveLength(defaultCodeLength);
36
+ expect(Number(code)).toBeGreaterThanOrEqual(1000);
37
+ expect(Number(code)).toBeLessThanOrEqual(9999);
38
+ });
39
+ });
40
+
41
+ describe('Utility Functions', () => {
42
+ test('generatePassword should return a hashed password with the specified salt rounds', async () => {
43
+ // Arrange
44
+ const password = 'password123';
45
+ const saltRounds = 12;
46
+
47
+ // Act
48
+ const hashedPassword = await generatePassword(password, saltRounds);
49
+
50
+ // Assert
51
+ expect(typeof hashedPassword).toBe('string');
52
+ expect(hashedPassword).not.toBe(password);
53
+ expect(await bcrypt.compare(password, hashedPassword)).toBeTruthy();
54
+ });
55
+
56
+ test('generatePassword should use the default salt rounds when no value is provided', async () => {
57
+ // Arrange
58
+ const password = 'password123';
59
+ const defaultSaltRounds = 10;
60
+
61
+ // Act
62
+ const hashedPassword = await generatePassword(password);
63
+
64
+ // Assert
65
+ expect(typeof hashedPassword).toBe('string');
66
+ expect(hashedPassword).not.toBe(password);
67
+ expect(await bcrypt.compare(password, hashedPassword)).toBeTruthy();
68
+ expect(bcrypt.getRounds(hashedPassword)).toBe(defaultSaltRounds);
69
+ });
70
+
71
+ test('generatePassword should throw an error when an invalid password is provided', async () => {
72
+ // Arrange
73
+ const invalidPassword = '';
74
+
75
+ // Act and Assert
76
+ await expect(generatePassword(invalidPassword)).rejects.toThrow();
77
+ });
78
+ });
79
+ });
@@ -1,34 +1,34 @@
1
- import * as bcrypt from 'bcrypt';
2
-
3
- export const generateKey = (length = 36) => {
4
- const chars =
5
- 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
6
- let result = '';
7
- for (let i = length; i > 0; i--) {
8
- result += chars[Math.floor(Math.random() * chars.length)];
9
- }
10
- return result;
11
- };
12
-
13
- export const generateDigitCode = (length = 4): string => {
14
- const startAt = 1 + '0'.repeat(length - 1);
15
- const endAt = 9 + '0'.repeat(length - 1);
16
- const generateCode = `${Math.floor(
17
- Number(startAt) + Math.random() * Number(endAt),
18
- )}`;
19
- return generateCode;
20
- };
21
-
22
- export const generatePassword = async (
23
- password: string,
24
- saltOrRounds = 10,
25
- ): Promise<string> => {
26
- return await bcrypt.hash(password, saltOrRounds);
27
- };
28
-
29
- export const comparePassword = (
30
- password: string,
31
- hashPassword: string,
32
- ): Promise<boolean> => {
33
- return bcrypt.compare(password, hashPassword);
34
- };
1
+ import * as bcrypt from 'bcrypt';
2
+
3
+ export const generateKey = (length = 36) => {
4
+ const chars =
5
+ 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
6
+ let result = '';
7
+ for (let i = length; i > 0; i--) {
8
+ result += chars[Math.floor(Math.random() * chars.length)];
9
+ }
10
+ return result;
11
+ };
12
+
13
+ export const generateDigitCode = (length = 4): string => {
14
+ const startAt = 1 + '0'.repeat(length - 1);
15
+ const endAt = 9 + '0'.repeat(length - 1);
16
+ const generateCode = `${Math.floor(
17
+ Number(startAt) + Math.random() * Number(endAt),
18
+ )}`;
19
+ return generateCode;
20
+ };
21
+
22
+ export const generatePassword = async (
23
+ password: string,
24
+ saltOrRounds = 10,
25
+ ): Promise<string> => {
26
+ return await bcrypt.hash(password, saltOrRounds);
27
+ };
28
+
29
+ export const comparePassword = (
30
+ password: string,
31
+ hashPassword: string,
32
+ ): Promise<boolean> => {
33
+ return bcrypt.compare(password, hashPassword);
34
+ };
package/src/util/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './date.util';
2
- export * from './generator.util';
3
- export * from './app.utils';
4
- export * from './validate-config';
1
+ export * from './date.util';
2
+ export * from './generator.util';
3
+ export * from './app.utils';
4
+ export * from './validate-config';
@@ -1,24 +1,24 @@
1
- import { Test, TestingModule } from '@nestjs/testing';
2
- import { INestApplication } from '@nestjs/common';
3
- import * as request from 'supertest';
4
- import { AppModule } from './../src/app.module';
5
-
6
- describe('AppController (e2e)', () => {
7
- let app: INestApplication;
8
-
9
- beforeEach(async () => {
10
- const moduleFixture: TestingModule = await Test.createTestingModule({
11
- imports: [AppModule],
12
- }).compile();
13
-
14
- app = moduleFixture.createNestApplication();
15
- await app.init();
16
- });
17
-
18
- it('/ (GET)', () => {
19
- return request(app.getHttpServer())
20
- .get('/')
21
- .expect(200)
22
- .expect('Hello World!');
23
- });
24
- });
1
+ import { Test, TestingModule } from '@nestjs/testing';
2
+ import { INestApplication } from '@nestjs/common';
3
+ import * as request from 'supertest';
4
+ import { AppModule } from './../src/app.module';
5
+
6
+ describe('AppController (e2e)', () => {
7
+ let app: INestApplication;
8
+
9
+ beforeEach(async () => {
10
+ const moduleFixture: TestingModule = await Test.createTestingModule({
11
+ imports: [AppModule],
12
+ }).compile();
13
+
14
+ app = moduleFixture.createNestApplication();
15
+ await app.init();
16
+ });
17
+
18
+ it('/ (GET)', () => {
19
+ return request(app.getHttpServer())
20
+ .get('/')
21
+ .expect(200)
22
+ .expect('Hello World!');
23
+ });
24
+ });
@@ -1,9 +1,9 @@
1
- {
2
- "moduleFileExtensions": ["js", "json", "ts"],
3
- "rootDir": ".",
4
- "testEnvironment": "node",
5
- "testRegex": ".e2e-spec.ts$",
6
- "transform": {
7
- "^.+\\.(t|j)s$": "ts-jest"
8
- }
9
- }
1
+ {
2
+ "moduleFileExtensions": ["js", "json", "ts"],
3
+ "rootDir": ".",
4
+ "testEnvironment": "node",
5
+ "testRegex": ".e2e-spec.ts$",
6
+ "transform": {
7
+ "^.+\\.(t|j)s$": "ts-jest"
8
+ }
9
+ }
@@ -1,4 +1,4 @@
1
- {
2
- "extends": "./tsconfig.json",
3
- "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
- }
1
+ {
2
+ "extends": "./tsconfig.json",
3
+ "exclude": ["node_modules", "test", "dist", "**/*spec.ts"]
4
+ }
package/tsconfig.json CHANGED
@@ -1,21 +1,21 @@
1
- {
2
- "compilerOptions": {
3
- "module": "commonjs",
4
- "declaration": true,
5
- "removeComments": true,
6
- "emitDecoratorMetadata": true,
7
- "experimentalDecorators": true,
8
- "allowSyntheticDefaultImports": true,
9
- "target": "es2017",
10
- "sourceMap": true,
11
- "outDir": "./dist",
12
- "baseUrl": "./",
13
- "incremental": true,
14
- "skipLibCheck": true,
15
- "strictNullChecks": false,
16
- "noImplicitAny": false,
17
- "strictBindCallApply": false,
18
- "forceConsistentCasingInFileNames": false,
19
- "noFallthroughCasesInSwitch": false
20
- }
21
- }
1
+ {
2
+ "compilerOptions": {
3
+ "module": "commonjs",
4
+ "declaration": true,
5
+ "removeComments": true,
6
+ "emitDecoratorMetadata": true,
7
+ "experimentalDecorators": true,
8
+ "allowSyntheticDefaultImports": true,
9
+ "target": "es2017",
10
+ "sourceMap": true,
11
+ "outDir": "./dist",
12
+ "baseUrl": "./",
13
+ "incremental": true,
14
+ "skipLibCheck": true,
15
+ "strictNullChecks": false,
16
+ "noImplicitAny": false,
17
+ "strictBindCallApply": false,
18
+ "forceConsistentCasingInFileNames": false,
19
+ "noFallthroughCasesInSwitch": false
20
+ }
21
+ }
@@ -1 +0,0 @@
1
- // export { CollectionSchema } from 'typesense/src/Typesense/Collection';
@@ -1,89 +0,0 @@
1
- /* eslint-disable max-classes-per-file */
2
-
3
- import { Field } from './field.decorator';
4
- import { FIELD_METADATA } from './field.decorator';
5
- import { Schema } from './schema.decorator';
6
-
7
- describe('typesense', () => {
8
- describe('decorators', () => {
9
- describe('field', () => {
10
- it('should enhance field with metadata', () => {
11
- @Schema()
12
- class Test {
13
- @Field('string')
14
- field!: string;
15
- }
16
-
17
- expect(Reflect.getMetadata(FIELD_METADATA, Test)).toEqual(
18
- expect.arrayContaining([
19
- expect.objectContaining({
20
- name: 'field',
21
- type: 'string',
22
- }),
23
- ]),
24
- );
25
- });
26
-
27
- it('should enhance field with custom name metadata', () => {
28
- @Schema()
29
- class Test {
30
- @Field('string', { name: 'custom' })
31
- field!: string;
32
- }
33
-
34
- expect(Reflect.getMetadata(FIELD_METADATA, Test)).toEqual(
35
- expect.arrayContaining([
36
- expect.objectContaining({
37
- name: 'custom',
38
- type: 'string',
39
- }),
40
- ]),
41
- );
42
- });
43
- });
44
-
45
- it('should enhance field with options metadata', () => {
46
- @Schema()
47
- class Test {
48
- @Field('string', { facet: true, index: true, optional: true })
49
- field!: string;
50
- }
51
-
52
- expect(Reflect.getMetadata(FIELD_METADATA, Test)).toEqual(
53
- expect.arrayContaining([
54
- expect.objectContaining({
55
- name: 'field',
56
- type: 'string',
57
- facet: true,
58
- index: true,
59
- optional: true,
60
- }),
61
- ]),
62
- );
63
- });
64
-
65
- it('should enhance field with multiple fields metadata', () => {
66
- @Schema()
67
- class Test {
68
- @Field('string')
69
- field!: string;
70
-
71
- @Field('string')
72
- field2!: string;
73
- }
74
-
75
- expect(Reflect.getMetadata(FIELD_METADATA, Test)).toEqual(
76
- expect.arrayContaining([
77
- expect.objectContaining({
78
- name: 'field',
79
- type: 'string',
80
- }),
81
- expect.objectContaining({
82
- name: 'field2',
83
- type: 'string',
84
- }),
85
- ]),
86
- );
87
- });
88
- });
89
- });
@@ -1,44 +0,0 @@
1
- import { SetMetadata } from '@nestjs/common';
2
- import { applyDecorators } from '@nestjs/common';
3
-
4
- export interface FieldMetadata {
5
- name?: string;
6
- facet?: boolean;
7
- index?: boolean;
8
- optional?: boolean;
9
- }
10
-
11
- export type FieldType =
12
- | 'string'
13
- | 'int32'
14
- | 'int64'
15
- | 'float'
16
- | 'bool'
17
- | 'geopoint'
18
- | 'geopoint[]'
19
- | 'string[]'
20
- | 'int32[]'
21
- | 'int64[]'
22
- | 'float[]'
23
- | 'bool[]'
24
- | 'object'
25
- | 'object[]'
26
- | 'auto'
27
- | 'string*';
28
-
29
- export const FIELD_METADATA = '__fieldMetadata__';
30
-
31
- export const Field = (type: FieldType, options: FieldMetadata = {}) =>
32
- applyDecorators((target: object, key?: any, descriptor?: any) => {
33
- const exists =
34
- Reflect.getMetadata(FIELD_METADATA, target.constructor) || [];
35
-
36
- return SetMetadata(FIELD_METADATA, [
37
- ...exists,
38
- {
39
- ...options,
40
- type,
41
- name: options.name || key,
42
- },
43
- ])(target.constructor, key, descriptor);
44
- });