mm-share-lib 0.0.5 → 0.0.6

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 (247) hide show
  1. package/.eslintrc.js +25 -25
  2. package/.prettierrc +3 -3
  3. package/README.md +73 -73
  4. package/dist/src/exception/index.d.ts +0 -7
  5. package/dist/src/exception/index.js +0 -23
  6. package/dist/src/exception/index.js.map +1 -1
  7. package/index.ts +1 -1
  8. package/nest-cli.json +8 -8
  9. package/package.json +91 -82
  10. package/src/auth/apple/apple.module.ts +10 -0
  11. package/src/auth/apple/apple.service.ts +28 -0
  12. package/src/auth/apple/dto/apple-login.dto.ts +16 -0
  13. package/src/auth/apple/dto/index.ts +1 -0
  14. package/src/auth/apple/index.ts +3 -0
  15. package/src/auth/config/apple.config.ts +18 -0
  16. package/src/auth/config/auth.config.ts +29 -0
  17. package/src/auth/config/facebook.config.ts +23 -0
  18. package/src/auth/config/file.config.ts +50 -0
  19. package/src/auth/config/google.config.ts +23 -0
  20. package/src/auth/config/index.ts +6 -0
  21. package/src/auth/config/twitter.config.ts +22 -0
  22. package/src/auth/facebook/dto/facebook-login.dto.ts +8 -0
  23. package/src/auth/facebook/dto/index.ts +1 -0
  24. package/src/auth/facebook/facebook.module.ts +11 -0
  25. package/src/auth/facebook/facebook.service.ts +51 -0
  26. package/src/auth/facebook/index.ts +4 -0
  27. package/src/auth/facebook/interface/facebook.interface.ts +6 -0
  28. package/src/auth/facebook/interface/index.ts +1 -0
  29. package/src/auth/google/dto/google-login.dto.ts +8 -0
  30. package/src/auth/google/dto/index.ts +1 -0
  31. package/src/auth/google/google.module.ts +10 -0
  32. package/src/auth/google/google.service.ts +51 -0
  33. package/src/auth/google/index.ts +3 -0
  34. package/src/auth/index.ts +5 -0
  35. package/src/auth/twitter/dto/index.ts +1 -0
  36. package/src/auth/twitter/dto/twitter-login.dto.ts +12 -0
  37. package/src/auth/twitter/index.ts +3 -0
  38. package/src/auth/twitter/twitter.module.ts +11 -0
  39. package/src/auth/twitter/twitter.service.ts +43 -0
  40. package/src/config/index.ts +1 -0
  41. package/src/config/type.config.ts +88 -0
  42. package/src/constant/entity-state.constant.ts +4 -4
  43. package/src/constant/index.ts +1 -1
  44. package/src/dto/base-filter.dto.ts +4 -4
  45. package/src/dto/index.ts +2 -2
  46. package/src/dto/pagination.dto.ts +16 -4
  47. package/src/filter/index.ts +1 -1
  48. package/src/filter/rpc-exception.filter.ts +15 -0
  49. package/src/generic/entity/entity.generic.ts +34 -34
  50. package/src/generic/entity/index.ts +1 -1
  51. package/src/generic/index.ts +2 -2
  52. package/src/generic/service/index.ts +1 -1
  53. package/src/generic/service/service.generic.ts +112 -112
  54. package/src/index.ts +1 -0
  55. package/src/interface/index.ts +1 -0
  56. package/src/interface/social.interface.ts +6 -0
  57. package/src/lib/index.ts +3 -1
  58. package/src/lib/mailer/config/index.ts +1 -0
  59. package/src/lib/mailer/config/mailer.config.ts +62 -0
  60. package/src/lib/mailer/index.ts +2 -0
  61. package/src/lib/mailer/mailer.module.ts +8 -0
  62. package/src/lib/mailer/mailer.service.ts +53 -0
  63. package/src/lib/search-engine/document/base.document.ts +3 -3
  64. package/src/lib/search-engine/index.ts +1 -1
  65. package/src/lib/search-engine/interface/index.ts +1 -1
  66. package/src/lib/search-engine/interface/search-document.interface.ts +13 -5
  67. package/src/lib/search-engine/interface/transform-service.interface.ts +10 -10
  68. package/src/lib/search-engine/schema/generic.schema.ts +1 -1
  69. package/src/lib/search-engine/schema/index.ts +1 -1
  70. package/src/lib/search-engine/typesense/collection/index.ts +1 -0
  71. package/src/lib/search-engine/typesense/document/index.ts +1 -0
  72. package/src/lib/search-engine/typesense/index.ts +4 -3
  73. package/src/lib/search-engine/typesense/metadata/index.ts +1 -1
  74. package/src/lib/search-engine/typesense/metadata/schema.metadata.ts +13 -13
  75. package/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.ts +28 -28
  76. package/src/lib/search-engine/typesense/service/client.service.ts +260 -258
  77. package/src/lib/search-engine/typesense/typesense-module.interface.ts +36 -36
  78. package/src/lib/search-engine/typesense/typesense.constants.ts +1 -1
  79. package/src/lib/search-engine/typesense/typesense.module.test.ts +94 -94
  80. package/src/lib/search-engine/typesense/typesense.module.ts +76 -76
  81. package/src/lib/search-engine/typesense/typesense.providers.ts +42 -42
  82. package/src/lib/storage/index.ts +0 -0
  83. package/src/lib/typesense/client/index.ts +1 -0
  84. package/src/lib/typesense/collection/index.ts +1 -0
  85. package/src/lib/typesense/decorator/field.decorator.spec.ts +89 -0
  86. package/src/lib/typesense/decorator/field.decorator.ts +44 -0
  87. package/src/lib/typesense/decorator/index.ts +2 -0
  88. package/src/lib/typesense/decorator/schema.decorator.ts +23 -0
  89. package/src/lib/typesense/document/base.document.ts +3 -0
  90. package/src/lib/typesense/index.ts +6 -0
  91. package/src/lib/typesense/metadata/index.ts +4 -0
  92. package/src/lib/typesense/metadata/schema.metadata.ts +21 -0
  93. package/src/lib/typesense/metadata/typesense.metadata-accessor.ts +37 -0
  94. package/src/lib/typesense/metadata/typesense.metadata-explorer.spec.ts +56 -0
  95. package/src/lib/typesense/metadata/typesense.metadata-explorer.ts +41 -0
  96. package/src/lib/typesense/metadata/typesense.metadata-registry.ts +28 -0
  97. package/src/lib/typesense/module/index.ts +4 -0
  98. package/src/lib/typesense/module/interface.module.ts +34 -0
  99. package/src/lib/typesense/module/typesense.constant.ts +1 -0
  100. package/src/lib/typesense/module/typesense.module.spec.ts +94 -0
  101. package/src/lib/typesense/module/typesense.module.ts +87 -0
  102. package/src/lib/typesense/module/typesense.provider.ts +54 -0
  103. package/src/response/base-entity.response.ts +8 -0
  104. package/src/response/index.ts +2 -1
  105. package/src/response/login.response.ts +0 -0
  106. package/src/response/pagination.response.ts +52 -37
  107. package/src/setup/index.ts +1 -1
  108. package/src/util/date.util.spec.ts +49 -49
  109. package/src/util/date.util.ts +10 -10
  110. package/src/util/generator.util.spec.ts +79 -79
  111. package/src/util/generator.util.ts +34 -34
  112. package/src/util/index.ts +4 -3
  113. package/src/util/validate-config.ts +20 -0
  114. package/test/app.e2e-spec.ts +24 -24
  115. package/test/jest-e2e.json +9 -9
  116. package/tsconfig.build.json +4 -4
  117. package/tsconfig.json +21 -21
  118. package/dist/index.d.ts +0 -1
  119. package/dist/index.js +0 -18
  120. package/dist/index.js.map +0 -1
  121. package/dist/src/dto/base-filter.dto.d.ts +0 -4
  122. package/dist/src/dto/base-filter.dto.js +0 -11
  123. package/dist/src/dto/base-filter.dto.js.map +0 -1
  124. package/dist/src/dto/index.d.ts +0 -2
  125. package/dist/src/dto/index.js +0 -19
  126. package/dist/src/dto/index.js.map +0 -1
  127. package/dist/src/dto/pagination.dto.d.ts +0 -4
  128. package/dist/src/dto/pagination.dto.js +0 -11
  129. package/dist/src/dto/pagination.dto.js.map +0 -1
  130. package/dist/src/exception/bad-request-error.exception.d.ts +0 -4
  131. package/dist/src/exception/bad-request-error.exception.js +0 -12
  132. package/dist/src/exception/bad-request-error.exception.js.map +0 -1
  133. package/dist/src/exception/base.exception.d.ts +0 -21
  134. package/dist/src/exception/base.exception.js +0 -16
  135. package/dist/src/exception/base.exception.js.map +0 -1
  136. package/dist/src/exception/conflict-error.exception.d.ts +0 -4
  137. package/dist/src/exception/conflict-error.exception.js +0 -12
  138. package/dist/src/exception/conflict-error.exception.js.map +0 -1
  139. package/dist/src/exception/forbidden-error.exception.d.ts +0 -4
  140. package/dist/src/exception/forbidden-error.exception.js +0 -12
  141. package/dist/src/exception/forbidden-error.exception.js.map +0 -1
  142. package/dist/src/exception/internal-server-error.exception.d.ts +0 -4
  143. package/dist/src/exception/internal-server-error.exception.js +0 -12
  144. package/dist/src/exception/internal-server-error.exception.js.map +0 -1
  145. package/dist/src/exception/not-found-error.exception.d.ts +0 -4
  146. package/dist/src/exception/not-found-error.exception.js +0 -12
  147. package/dist/src/exception/not-found-error.exception.js.map +0 -1
  148. package/dist/src/exception/unauthorized-error.exception.d.ts +0 -4
  149. package/dist/src/exception/unauthorized-error.exception.js +0 -12
  150. package/dist/src/exception/unauthorized-error.exception.js.map +0 -1
  151. package/dist/src/filter/http-exception.filter.d.ts +0 -4
  152. package/dist/src/filter/http-exception.filter.js +0 -27
  153. package/dist/src/filter/http-exception.filter.js.map +0 -1
  154. package/dist/src/filter/index.d.ts +0 -1
  155. package/dist/src/filter/index.js +0 -18
  156. package/dist/src/filter/index.js.map +0 -1
  157. package/dist/src/index.d.ts +0 -8
  158. package/dist/src/index.js +0 -25
  159. package/dist/src/index.js.map +0 -1
  160. package/dist/src/lib/index.d.ts +0 -1
  161. package/dist/src/lib/index.js +0 -18
  162. package/dist/src/lib/index.js.map +0 -1
  163. package/dist/src/lib/search-engine/document/base.document.d.ts +0 -3
  164. package/dist/src/lib/search-engine/document/base.document.js +0 -7
  165. package/dist/src/lib/search-engine/document/base.document.js.map +0 -1
  166. package/dist/src/lib/search-engine/document/index.js +0 -18
  167. package/dist/src/lib/search-engine/document/index.js.map +0 -1
  168. package/dist/src/lib/search-engine/index.d.ts +0 -1
  169. package/dist/src/lib/search-engine/index.js +0 -18
  170. package/dist/src/lib/search-engine/index.js.map +0 -1
  171. package/dist/src/lib/search-engine/interface/index.d.ts +0 -2
  172. package/dist/src/lib/search-engine/interface/index.js +0 -19
  173. package/dist/src/lib/search-engine/interface/index.js.map +0 -1
  174. package/dist/src/lib/search-engine/interface/search-document.interface.d.ts +0 -4
  175. package/dist/src/lib/search-engine/interface/search-document.interface.js +0 -3
  176. package/dist/src/lib/search-engine/interface/search-document.interface.js.map +0 -1
  177. package/dist/src/lib/search-engine/interface/transform-service.interface.d.ts +0 -6
  178. package/dist/src/lib/search-engine/interface/transform-service.interface.js +0 -3
  179. package/dist/src/lib/search-engine/interface/transform-service.interface.js.map +0 -1
  180. package/dist/src/lib/search-engine/schema/generic.schema.d.ts +0 -2
  181. package/dist/src/lib/search-engine/schema/generic.schema.js +0 -7
  182. package/dist/src/lib/search-engine/schema/generic.schema.js.map +0 -1
  183. package/dist/src/lib/search-engine/schema/index.d.ts +0 -1
  184. package/dist/src/lib/search-engine/schema/index.js +0 -18
  185. package/dist/src/lib/search-engine/schema/index.js.map +0 -1
  186. package/dist/src/lib/search-engine/typesense/index.d.ts +0 -3
  187. package/dist/src/lib/search-engine/typesense/index.js +0 -20
  188. package/dist/src/lib/search-engine/typesense/index.js.map +0 -1
  189. package/dist/src/lib/search-engine/typesense/metadata/index.d.ts +0 -2
  190. package/dist/src/lib/search-engine/typesense/metadata/index.js +0 -19
  191. package/dist/src/lib/search-engine/typesense/metadata/index.js.map +0 -1
  192. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.d.ts +0 -12
  193. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js +0 -3
  194. package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js.map +0 -1
  195. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.d.ts +0 -10
  196. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js +0 -33
  197. package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js.map +0 -1
  198. package/dist/src/lib/search-engine/typesense/service/client.service.d.ts +0 -33
  199. package/dist/src/lib/search-engine/typesense/service/client.service.js +0 -197
  200. package/dist/src/lib/search-engine/typesense/service/client.service.js.map +0 -1
  201. package/dist/src/lib/search-engine/typesense/service/index.d.ts +0 -1
  202. package/dist/src/lib/search-engine/typesense/service/index.js +0 -18
  203. package/dist/src/lib/search-engine/typesense/service/index.js.map +0 -1
  204. package/dist/src/lib/search-engine/typesense/typesense-module.interface.d.ts +0 -27
  205. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js +0 -3
  206. package/dist/src/lib/search-engine/typesense/typesense-module.interface.js.map +0 -1
  207. package/dist/src/lib/search-engine/typesense/typesense.constants.d.ts +0 -1
  208. package/dist/src/lib/search-engine/typesense/typesense.constants.js +0 -5
  209. package/dist/src/lib/search-engine/typesense/typesense.constants.js.map +0 -1
  210. package/dist/src/lib/search-engine/typesense/typesense.module.d.ts +0 -8
  211. package/dist/src/lib/search-engine/typesense/typesense.module.js +0 -68
  212. package/dist/src/lib/search-engine/typesense/typesense.module.js.map +0 -1
  213. package/dist/src/lib/search-engine/typesense/typesense.module.test.d.ts +0 -1
  214. package/dist/src/lib/search-engine/typesense/typesense.module.test.js +0 -89
  215. package/dist/src/lib/search-engine/typesense/typesense.module.test.js.map +0 -1
  216. package/dist/src/lib/search-engine/typesense/typesense.providers.d.ts +0 -4
  217. package/dist/src/lib/search-engine/typesense/typesense.providers.js +0 -40
  218. package/dist/src/lib/search-engine/typesense/typesense.providers.js.map +0 -1
  219. package/dist/src/response/index.d.ts +0 -1
  220. package/dist/src/response/index.js +0 -18
  221. package/dist/src/response/index.js.map +0 -1
  222. package/dist/src/response/pagination.response.d.ts +0 -17
  223. package/dist/src/response/pagination.response.js +0 -29
  224. package/dist/src/response/pagination.response.js.map +0 -1
  225. package/dist/src/setup/index.d.ts +0 -1
  226. package/dist/src/setup/index.js +0 -18
  227. package/dist/src/setup/index.js.map +0 -1
  228. package/dist/src/setup/microservice.setup.d.ts +0 -2
  229. package/dist/src/setup/microservice.setup.js +0 -25
  230. package/dist/src/setup/microservice.setup.js.map +0 -1
  231. package/dist/src/setup/swagger.setup.js +0 -1
  232. package/dist/src/setup/swagger.setup.js.map +0 -1
  233. package/dist/src/util/app.utils.d.ts +0 -4
  234. package/dist/src/util/app.utils.js +0 -21
  235. package/dist/src/util/app.utils.js.map +0 -1
  236. package/dist/src/util/date.util.d.ts +0 -2
  237. package/dist/src/util/date.util.js +0 -14
  238. package/dist/src/util/date.util.js.map +0 -1
  239. package/dist/src/util/generator.util.d.ts +0 -4
  240. package/dist/src/util/generator.util.js +0 -29
  241. package/dist/src/util/generator.util.js.map +0 -1
  242. package/dist/src/util/index.d.ts +0 -3
  243. package/dist/src/util/index.js +0 -20
  244. package/dist/src/util/index.js.map +0 -1
  245. package/dist/tsconfig.build.tsbuildinfo +0 -1
  246. /package/{dist/src/setup/swagger.setup.d.ts → src/lib/redis/index.ts} +0 -0
  247. /package/{dist/src/lib/search-engine/document/index.d.ts → src/lib/typesense/document/index.ts} +0 -0
package/.eslintrc.js CHANGED
@@ -1,25 +1,25 @@
1
- module.exports = {
2
- parser: '@typescript-eslint/parser',
3
- parserOptions: {
4
- project: 'tsconfig.json',
5
- tsconfigRootDir: __dirname,
6
- sourceType: 'module',
7
- },
8
- plugins: ['@typescript-eslint/eslint-plugin'],
9
- extends: [
10
- 'plugin:@typescript-eslint/recommended',
11
- 'plugin:prettier/recommended',
12
- ],
13
- root: true,
14
- env: {
15
- node: true,
16
- jest: true,
17
- },
18
- ignorePatterns: ['.eslintrc.js'],
19
- rules: {
20
- '@typescript-eslint/interface-name-prefix': 'off',
21
- '@typescript-eslint/explicit-function-return-type': 'off',
22
- '@typescript-eslint/explicit-module-boundary-types': 'off',
23
- '@typescript-eslint/no-explicit-any': 'off',
24
- },
25
- };
1
+ module.exports = {
2
+ parser: '@typescript-eslint/parser',
3
+ parserOptions: {
4
+ project: 'tsconfig.json',
5
+ tsconfigRootDir: __dirname,
6
+ sourceType: 'module',
7
+ },
8
+ plugins: ['@typescript-eslint/eslint-plugin'],
9
+ extends: [
10
+ 'plugin:@typescript-eslint/recommended',
11
+ 'plugin:prettier/recommended',
12
+ ],
13
+ root: true,
14
+ env: {
15
+ node: true,
16
+ jest: true,
17
+ },
18
+ ignorePatterns: ['.eslintrc.js'],
19
+ rules: {
20
+ '@typescript-eslint/interface-name-prefix': 'off',
21
+ '@typescript-eslint/explicit-function-return-type': 'off',
22
+ '@typescript-eslint/explicit-module-boundary-types': 'off',
23
+ '@typescript-eslint/no-explicit-any': 'off',
24
+ },
25
+ };
package/.prettierrc CHANGED
@@ -1,4 +1,4 @@
1
- {
2
- "singleQuote": true,
3
- "trailingComma": "all"
1
+ {
2
+ "singleQuote": true,
3
+ "trailingComma": "all"
4
4
  }
package/README.md CHANGED
@@ -1,73 +1,73 @@
1
- <p align="center">
2
- <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
3
- </p>
4
-
5
- [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
- [circleci-url]: https://circleci.com/gh/nestjs/nest
7
-
8
- <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
- <p align="center">
10
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12
- <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13
- <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14
- <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15
- <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16
- <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17
- <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18
- <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
19
- <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20
- <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
21
- </p>
22
- <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23
- [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24
-
25
- ## Description
26
-
27
- [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28
-
29
- ## Installation
30
-
31
- ```bash
32
- $ npm install
33
- ```
34
-
35
- ## Running the app
36
-
37
- ```bash
38
- # development
39
- $ npm run start
40
-
41
- # watch mode
42
- $ npm run start:dev
43
-
44
- # production mode
45
- $ npm run start:prod
46
- ```
47
-
48
- ## Test
49
-
50
- ```bash
51
- # unit tests
52
- $ npm run test
53
-
54
- # e2e tests
55
- $ npm run test:e2e
56
-
57
- # test coverage
58
- $ npm run test:cov
59
- ```
60
-
61
- ## Support
62
-
63
- Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
64
-
65
- ## Stay in touch
66
-
67
- - Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
68
- - Website - [https://nestjs.com](https://nestjs.com/)
69
- - Twitter - [@nestframework](https://twitter.com/nestframework)
70
-
71
- ## License
72
-
73
- Nest is [MIT licensed](LICENSE).
1
+ <p align="center">
2
+ <a href="http://nestjs.com/" target="blank"><img src="https://nestjs.com/img/logo-small.svg" width="200" alt="Nest Logo" /></a>
3
+ </p>
4
+
5
+ [circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
6
+ [circleci-url]: https://circleci.com/gh/nestjs/nest
7
+
8
+ <p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications.</p>
9
+ <p align="center">
10
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
11
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
12
+ <a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/common.svg" alt="NPM Downloads" /></a>
13
+ <a href="https://circleci.com/gh/nestjs/nest" target="_blank"><img src="https://img.shields.io/circleci/build/github/nestjs/nest/master" alt="CircleCI" /></a>
14
+ <a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
15
+ <a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
16
+ <a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
17
+ <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
18
+ <a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
19
+ <a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://img.shields.io/badge/Support%20us-Open%20Collective-41B883.svg" alt="Support us"></a>
20
+ <a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
21
+ </p>
22
+ <!--[![Backers on Open Collective](https://opencollective.com/nest/backers/badge.svg)](https://opencollective.com/nest#backer)
23
+ [![Sponsors on Open Collective](https://opencollective.com/nest/sponsors/badge.svg)](https://opencollective.com/nest#sponsor)-->
24
+
25
+ ## Description
26
+
27
+ [Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
28
+
29
+ ## Installation
30
+
31
+ ```bash
32
+ $ npm install
33
+ ```
34
+
35
+ ## Running the app
36
+
37
+ ```bash
38
+ # development
39
+ $ npm run start
40
+
41
+ # watch mode
42
+ $ npm run start:dev
43
+
44
+ # production mode
45
+ $ npm run start:prod
46
+ ```
47
+
48
+ ## Test
49
+
50
+ ```bash
51
+ # unit tests
52
+ $ npm run test
53
+
54
+ # e2e tests
55
+ $ npm run test:e2e
56
+
57
+ # test coverage
58
+ $ npm run test:cov
59
+ ```
60
+
61
+ ## Support
62
+
63
+ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
64
+
65
+ ## Stay in touch
66
+
67
+ - Author - [Kamil Myśliwiec](https://kamilmysliwiec.com)
68
+ - Website - [https://nestjs.com](https://nestjs.com/)
69
+ - Twitter - [@nestframework](https://twitter.com/nestframework)
70
+
71
+ ## License
72
+
73
+ Nest is [MIT licensed](LICENSE).
@@ -1,7 +0,0 @@
1
- export * from './base.exception';
2
- export * from './conflict-error.exception';
3
- export * from './not-found-error.exception';
4
- export * from './forbidden-error.exception';
5
- export * from './bad-request-error.exception';
6
- export * from './unauthorized-error.exception';
7
- export * from './internal-server-error.exception';
@@ -1,24 +1 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./base.exception"), exports);
18
- __exportStar(require("./conflict-error.exception"), exports);
19
- __exportStar(require("./not-found-error.exception"), exports);
20
- __exportStar(require("./forbidden-error.exception"), exports);
21
- __exportStar(require("./bad-request-error.exception"), exports);
22
- __exportStar(require("./unauthorized-error.exception"), exports);
23
- __exportStar(require("./internal-server-error.exception"), exports);
24
1
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exception/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,6DAA2C;AAC3C,8DAA4C;AAC5C,8DAA4C;AAC5C,gEAA8C;AAC9C,iEAA+C;AAC/C,oEAAkD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/exception/index.ts"],"names":[],"mappings":""}
package/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './src';
1
+ export * from './src';
package/nest-cli.json CHANGED
@@ -1,8 +1,8 @@
1
- {
2
- "$schema": "https://json.schemastore.org/nest-cli",
3
- "collection": "@nestjs/schematics",
4
- "sourceRoot": "src",
5
- "compilerOptions": {
6
- "deleteOutDir": true
7
- }
8
- }
1
+ {
2
+ "$schema": "https://json.schemastore.org/nest-cli",
3
+ "collection": "@nestjs/schematics",
4
+ "sourceRoot": "src",
5
+ "compilerOptions": {
6
+ "deleteOutDir": true
7
+ }
8
+ }
package/package.json CHANGED
@@ -1,82 +1,91 @@
1
- {
2
- "name": "mm-share-lib",
3
- "version": "0.0.5",
4
- "description": "Share the generic service, entity, dto.",
5
- "author": "Mesa SOT",
6
- "license": "MIT",
7
- "main": "dist/index.js",
8
- "types": "dist/index.d.ts",
9
- "scripts": {
10
- "build": "nest build",
11
- "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
12
- "start": "nest start",
13
- "start:dev": "nest start --watch",
14
- "start:debug": "nest start --debug --watch",
15
- "start:prod": "node dist/main",
16
- "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
17
- "test": "jest",
18
- "test:watch": "jest --watch",
19
- "test:cov": "jest --coverage",
20
- "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
21
- "test:e2e": "jest --config ./test/jest-e2e.json",
22
- "prepare": "husky install"
23
- },
24
- "dependencies": {
25
- "@babel/runtime": "^7.22.5",
26
- "@nestjs/common": "^9.4.2",
27
- "@nestjs/core": "^9.4.2",
28
- "@nestjs/microservices": "^9.4.3",
29
- "@nestjs/platform-express": "^9.4.2",
30
- "@nestjs/typeorm": "^9.0.1",
31
- "class-transformer": "^0.5.1",
32
- "class-validator": "^0.14.0",
33
- "dayjs": "^1.11.8",
34
- "reflect-metadata": "^0.1.13",
35
- "rxjs": "^7.8.1",
36
- "typeorm": "^0.3.16",
37
- "bcrypt": "^5.1.0",
38
- "typesense": "^1.5.4"
39
- },
40
- "devDependencies": {
41
- "@nestjs/cli": "^9.5.0",
42
- "@nestjs/schematics": "^9.2.0",
43
- "@nestjs/testing": "^9.4.2",
44
- "@types/bcrypt": "^5.0.0",
45
- "@types/express": "^4.17.17",
46
- "@types/jest": "29.5.2",
47
- "@types/node": "20.2.5",
48
- "@types/supertest": "^2.0.12",
49
- "@typescript-eslint/eslint-plugin": "^5.59.9",
50
- "@typescript-eslint/parser": "^5.59.9",
51
- "eslint": "^8.42.0",
52
- "eslint-config-prettier": "^8.8.0",
53
- "eslint-plugin-prettier": "^4.2.1",
54
- "husky": "^8.0.3",
55
- "jest": "29.5.0",
56
- "prettier": "^2.8.8",
57
- "source-map-support": "^0.5.21",
58
- "supertest": "^6.3.3",
59
- "ts-jest": "29.1.0",
60
- "ts-loader": "^9.4.3",
61
- "ts-node": "^10.9.1",
62
- "tsconfig-paths": "4.2.0",
63
- "typescript": "^5.1.3"
64
- },
65
- "jest": {
66
- "moduleFileExtensions": [
67
- "js",
68
- "json",
69
- "ts"
70
- ],
71
- "rootDir": "src",
72
- "testRegex": ".*\\.spec\\.ts$",
73
- "transform": {
74
- "^.+\\.(t|j)s$": "ts-jest"
75
- },
76
- "collectCoverageFrom": [
77
- "**/*.(t|j)s"
78
- ],
79
- "coverageDirectory": "../coverage",
80
- "testEnvironment": "node"
81
- }
82
- }
1
+ {
2
+ "name": "mm-share-lib",
3
+ "version": "0.0.6",
4
+ "description": "Share the generic service, entity, dto.",
5
+ "author": "Mesa SOT",
6
+ "license": "MIT",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "scripts": {
10
+ "build": "nest build",
11
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
12
+ "start": "nest start",
13
+ "start:dev": "nest start --watch",
14
+ "start:debug": "nest start --debug --watch",
15
+ "start:prod": "node dist/main",
16
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
17
+ "test": "jest",
18
+ "test:watch": "jest --watch",
19
+ "test:cov": "jest --coverage",
20
+ "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
21
+ "test:e2e": "jest --config ./test/jest-e2e.json",
22
+ "prepare": "husky install"
23
+ },
24
+ "dependencies": {
25
+ "@babel/runtime": "^7.22.5",
26
+ "@nestjs/common": "^9.4.2",
27
+ "@nestjs/config": "^3.0.0",
28
+ "@nestjs/core": "^9.4.2",
29
+ "@nestjs/microservices": "^9.4.3",
30
+ "@nestjs/platform-express": "^9.4.2",
31
+ "@nestjs/swagger": "^7.1.1",
32
+ "@nestjs/typeorm": "^9.0.1",
33
+ "bcrypt": "^5.1.0",
34
+ "class-transformer": "^0.5.1",
35
+ "class-validator": "^0.14.0",
36
+ "dayjs": "^1.11.8",
37
+ "decamelize": "^6.0.0",
38
+ "fb": "^2.0.0",
39
+ "google-auth-library": "^9.0.0",
40
+ "handlebars": "^4.7.7",
41
+ "nodemailer": "^6.9.4",
42
+ "reflect-metadata": "^0.1.13",
43
+ "rxjs": "^7.8.1",
44
+ "twitter": "^1.7.1",
45
+ "typeorm": "^0.3.16",
46
+ "typesense": "^1.5.4"
47
+ },
48
+ "devDependencies": {
49
+ "@nestjs/cli": "^9.5.0",
50
+ "@nestjs/schematics": "^9.2.0",
51
+ "@nestjs/testing": "^9.4.2",
52
+ "@types/bcrypt": "^5.0.0",
53
+ "@types/express": "^4.17.17",
54
+ "@types/jest": "29.5.2",
55
+ "@types/node": "20.2.5",
56
+ "@types/supertest": "^2.0.12",
57
+ "@types/twitter": "^1.7.1",
58
+ "@typescript-eslint/eslint-plugin": "^5.59.9",
59
+ "@typescript-eslint/parser": "^5.59.9",
60
+ "eslint": "^8.42.0",
61
+ "eslint-config-prettier": "^8.8.0",
62
+ "eslint-plugin-prettier": "^4.2.1",
63
+ "husky": "^8.0.3",
64
+ "jest": "29.5.0",
65
+ "prettier": "^2.8.8",
66
+ "source-map-support": "^0.5.21",
67
+ "supertest": "^6.3.3",
68
+ "ts-jest": "29.1.0",
69
+ "ts-loader": "^9.4.3",
70
+ "ts-node": "^10.9.1",
71
+ "tsconfig-paths": "4.2.0",
72
+ "typescript": "^5.1.3"
73
+ },
74
+ "jest": {
75
+ "moduleFileExtensions": [
76
+ "js",
77
+ "json",
78
+ "ts"
79
+ ],
80
+ "rootDir": "src",
81
+ "testRegex": ".*\\.spec\\.ts$",
82
+ "transform": {
83
+ "^.+\\.(t|j)s$": "ts-jest"
84
+ },
85
+ "collectCoverageFrom": [
86
+ "**/*.(t|j)s"
87
+ ],
88
+ "coverageDirectory": "../coverage",
89
+ "testEnvironment": "node"
90
+ }
91
+ }
@@ -0,0 +1,10 @@
1
+ import { Module } from '@nestjs/common';
2
+ import { AppleService } from './apple.service';
3
+ import { ConfigModule } from '@nestjs/config';
4
+
5
+ @Module({
6
+ imports: [ConfigModule],
7
+ providers: [AppleService],
8
+ exports: [AppleService],
9
+ })
10
+ export class AppleModule {}
@@ -0,0 +1,28 @@
1
+ import { Injectable } from '@nestjs/common';
2
+ import appleSigninAuth from 'apple-signin-auth';
3
+ import { ConfigService } from '@nestjs/config';
4
+ import { SocialInterface } from '../../interface';
5
+ import { AppleLoginDto } from './dto';
6
+ import { AllConfigType } from '../../config';
7
+
8
+ @Injectable()
9
+ export class AppleService {
10
+ constructor(private configService: ConfigService<AllConfigType>) {}
11
+
12
+ async getProfileByToken(loginDto: AppleLoginDto): Promise<SocialInterface> {
13
+ const { idToken, firstName, lastName } = loginDto;
14
+
15
+ const data = await appleSigninAuth.verifyIdToken(idToken, {
16
+ audience: this.configService.get('apple.appAudience', { infer: true }),
17
+ });
18
+
19
+ const { sub, email } = data;
20
+
21
+ return {
22
+ id: sub,
23
+ email: email,
24
+ firstName: firstName,
25
+ lastName: lastName,
26
+ };
27
+ }
28
+ }
@@ -0,0 +1,16 @@
1
+ import { ApiProperty } from '@nestjs/swagger';
2
+ import { Allow, IsNotEmpty } from 'class-validator';
3
+
4
+ export class AppleLoginDto {
5
+ @ApiProperty({ example: 'abc' })
6
+ @IsNotEmpty()
7
+ idToken: string;
8
+
9
+ @Allow()
10
+ @ApiProperty({ required: false })
11
+ firstName?: string;
12
+
13
+ @Allow()
14
+ @ApiProperty({ required: false })
15
+ lastName?: string;
16
+ }
@@ -0,0 +1 @@
1
+ export * from './apple-login.dto';
@@ -0,0 +1,3 @@
1
+ export * from './dto';
2
+ export * from './apple.module';
3
+ export * from './apple.service';
@@ -0,0 +1,18 @@
1
+ import { registerAs } from '@nestjs/config';
2
+ import { AppleConfig } from '../../config';
3
+ import { IsJSON, IsOptional } from 'class-validator';
4
+ import { validateConfig } from '../../util';
5
+
6
+ class EnvironmentVariablesValidator {
7
+ @IsJSON()
8
+ @IsOptional()
9
+ APPLE_APP_AUDIENCE: string;
10
+ }
11
+
12
+ export default registerAs<AppleConfig>('apple', () => {
13
+ validateConfig(process.env, EnvironmentVariablesValidator);
14
+
15
+ return {
16
+ appAudience: JSON.parse(process.env.APPLE_APP_AUDIENCE ?? '[]'),
17
+ };
18
+ });
@@ -0,0 +1,29 @@
1
+ import { IsString } from 'class-validator';
2
+ import { registerAs } from '@nestjs/config';
3
+ import { AuthConfig } from '../../config';
4
+ import { validateConfig } from '../../util';
5
+
6
+ class EnvironmentVariablesValidator {
7
+ @IsString()
8
+ AUTH_JWT_SECRET: string;
9
+
10
+ @IsString()
11
+ AUTH_JWT_TOKEN_EXPIRES_IN: string;
12
+
13
+ @IsString()
14
+ AUTH_REFRESH_SECRET: string;
15
+
16
+ @IsString()
17
+ AUTH_REFRESH_TOKEN_EXPIRES_IN: string;
18
+ }
19
+
20
+ export default registerAs<AuthConfig>('auth', () => {
21
+ validateConfig(process.env, EnvironmentVariablesValidator);
22
+
23
+ return {
24
+ secret: process.env.AUTH_JWT_SECRET,
25
+ expires: process.env.AUTH_JWT_TOKEN_EXPIRES_IN,
26
+ refreshSecret: process.env.AUTH_REFRESH_SECRET,
27
+ refreshExpires: process.env.AUTH_REFRESH_TOKEN_EXPIRES_IN,
28
+ };
29
+ });
@@ -0,0 +1,23 @@
1
+ import { IsOptional, IsString } from 'class-validator';
2
+ import { registerAs } from '@nestjs/config';
3
+ import { FacebookConfig } from '../../config';
4
+ import { validateConfig } from '../../util';
5
+
6
+ class EnvironmentVariablesValidator {
7
+ @IsString()
8
+ @IsOptional()
9
+ FACEBOOK_APP_ID: string;
10
+
11
+ @IsString()
12
+ @IsOptional()
13
+ FACEBOOK_APP_SECRET: string;
14
+ }
15
+
16
+ export default registerAs<FacebookConfig>('facebook', () => {
17
+ validateConfig(process.env, EnvironmentVariablesValidator);
18
+
19
+ return {
20
+ appId: process.env.FACEBOOK_APP_ID,
21
+ appSecret: process.env.FACEBOOK_APP_SECRET,
22
+ };
23
+ });
@@ -0,0 +1,50 @@
1
+ import { registerAs } from '@nestjs/config';
2
+ import { FileConfig } from '../../config';
3
+ import { IsEnum, IsOptional, IsString, ValidateIf } from 'class-validator';
4
+ import { validateConfig } from '../../util';
5
+
6
+ enum FileDriver {
7
+ LOCAL = 'local',
8
+ S3 = 's3',
9
+ GCS = 'gcs',
10
+ }
11
+
12
+ class EnvironmentVariablesValidator {
13
+ @IsEnum(FileDriver)
14
+ FILE_DRIVER: FileDriver;
15
+
16
+ @ValidateIf((envValues) => envValues.FILE_DRIVER === FileDriver.S3)
17
+ @IsString()
18
+ ACCESS_KEY_ID: string;
19
+
20
+ @ValidateIf((envValues) => envValues.FILE_DRIVER === FileDriver.S3)
21
+ @IsString()
22
+ SECRET_ACCESS_KEY: string;
23
+
24
+ @ValidateIf((envValues) => envValues.FILE_DRIVER === FileDriver.S3)
25
+ @IsString()
26
+ STORAGE_BUCKET: string;
27
+
28
+ @ValidateIf((envValues) => envValues.FILE_DRIVER === FileDriver.S3)
29
+ @IsString()
30
+ @IsOptional()
31
+ STORAGE_URL: string;
32
+
33
+ @ValidateIf((envValues) => envValues.FILE_DRIVER === FileDriver.S3)
34
+ @IsString()
35
+ STORAGE_REGION: string;
36
+ }
37
+
38
+ export default registerAs<FileConfig>('file', () => {
39
+ validateConfig(process.env, EnvironmentVariablesValidator);
40
+
41
+ return {
42
+ driver: process.env.FILE_DRIVER ?? 'local',
43
+ accessKeyId: process.env.ACCESS_KEY_ID,
44
+ secretAccessKey: process.env.SECRET_ACCESS_KEY,
45
+ awsDefaultS3Bucket: process.env.AWS_DEFAULT_S3_BUCKET,
46
+ awsDefaultS3Url: process.env.AWS_DEFAULT_S3_URL,
47
+ awsS3Region: process.env.AWS_S3_REGION,
48
+ maxFileSize: 5242880, // 5mb
49
+ };
50
+ });