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.
- package/.eslintrc.js +25 -25
- package/.prettierrc +3 -3
- package/README.md +73 -73
- package/dist/src/exception/index.d.ts +0 -7
- package/dist/src/exception/index.js +0 -23
- package/dist/src/exception/index.js.map +1 -1
- package/index.ts +1 -1
- package/nest-cli.json +8 -8
- package/package.json +91 -82
- package/src/auth/apple/apple.module.ts +10 -0
- package/src/auth/apple/apple.service.ts +28 -0
- package/src/auth/apple/dto/apple-login.dto.ts +16 -0
- package/src/auth/apple/dto/index.ts +1 -0
- package/src/auth/apple/index.ts +3 -0
- package/src/auth/config/apple.config.ts +18 -0
- package/src/auth/config/auth.config.ts +29 -0
- package/src/auth/config/facebook.config.ts +23 -0
- package/src/auth/config/file.config.ts +50 -0
- package/src/auth/config/google.config.ts +23 -0
- package/src/auth/config/index.ts +6 -0
- package/src/auth/config/twitter.config.ts +22 -0
- package/src/auth/facebook/dto/facebook-login.dto.ts +8 -0
- package/src/auth/facebook/dto/index.ts +1 -0
- package/src/auth/facebook/facebook.module.ts +11 -0
- package/src/auth/facebook/facebook.service.ts +51 -0
- package/src/auth/facebook/index.ts +4 -0
- package/src/auth/facebook/interface/facebook.interface.ts +6 -0
- package/src/auth/facebook/interface/index.ts +1 -0
- package/src/auth/google/dto/google-login.dto.ts +8 -0
- package/src/auth/google/dto/index.ts +1 -0
- package/src/auth/google/google.module.ts +10 -0
- package/src/auth/google/google.service.ts +51 -0
- package/src/auth/google/index.ts +3 -0
- package/src/auth/index.ts +5 -0
- package/src/auth/twitter/dto/index.ts +1 -0
- package/src/auth/twitter/dto/twitter-login.dto.ts +12 -0
- package/src/auth/twitter/index.ts +3 -0
- package/src/auth/twitter/twitter.module.ts +11 -0
- package/src/auth/twitter/twitter.service.ts +43 -0
- package/src/config/index.ts +1 -0
- package/src/config/type.config.ts +88 -0
- package/src/constant/entity-state.constant.ts +4 -4
- package/src/constant/index.ts +1 -1
- package/src/dto/base-filter.dto.ts +4 -4
- package/src/dto/index.ts +2 -2
- package/src/dto/pagination.dto.ts +16 -4
- package/src/filter/index.ts +1 -1
- package/src/filter/rpc-exception.filter.ts +15 -0
- package/src/generic/entity/entity.generic.ts +34 -34
- package/src/generic/entity/index.ts +1 -1
- package/src/generic/index.ts +2 -2
- package/src/generic/service/index.ts +1 -1
- package/src/generic/service/service.generic.ts +112 -112
- package/src/index.ts +1 -0
- package/src/interface/index.ts +1 -0
- package/src/interface/social.interface.ts +6 -0
- package/src/lib/index.ts +3 -1
- package/src/lib/mailer/config/index.ts +1 -0
- package/src/lib/mailer/config/mailer.config.ts +62 -0
- package/src/lib/mailer/index.ts +2 -0
- package/src/lib/mailer/mailer.module.ts +8 -0
- package/src/lib/mailer/mailer.service.ts +53 -0
- package/src/lib/search-engine/document/base.document.ts +3 -3
- package/src/lib/search-engine/index.ts +1 -1
- package/src/lib/search-engine/interface/index.ts +1 -1
- package/src/lib/search-engine/interface/search-document.interface.ts +13 -5
- package/src/lib/search-engine/interface/transform-service.interface.ts +10 -10
- package/src/lib/search-engine/schema/generic.schema.ts +1 -1
- package/src/lib/search-engine/schema/index.ts +1 -1
- package/src/lib/search-engine/typesense/collection/index.ts +1 -0
- package/src/lib/search-engine/typesense/document/index.ts +1 -0
- package/src/lib/search-engine/typesense/index.ts +4 -3
- package/src/lib/search-engine/typesense/metadata/index.ts +1 -1
- package/src/lib/search-engine/typesense/metadata/schema.metadata.ts +13 -13
- package/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.ts +28 -28
- package/src/lib/search-engine/typesense/service/client.service.ts +260 -258
- package/src/lib/search-engine/typesense/typesense-module.interface.ts +36 -36
- package/src/lib/search-engine/typesense/typesense.constants.ts +1 -1
- package/src/lib/search-engine/typesense/typesense.module.test.ts +94 -94
- package/src/lib/search-engine/typesense/typesense.module.ts +76 -76
- package/src/lib/search-engine/typesense/typesense.providers.ts +42 -42
- package/src/lib/storage/index.ts +0 -0
- package/src/lib/typesense/client/index.ts +1 -0
- package/src/lib/typesense/collection/index.ts +1 -0
- package/src/lib/typesense/decorator/field.decorator.spec.ts +89 -0
- package/src/lib/typesense/decorator/field.decorator.ts +44 -0
- package/src/lib/typesense/decorator/index.ts +2 -0
- package/src/lib/typesense/decorator/schema.decorator.ts +23 -0
- package/src/lib/typesense/document/base.document.ts +3 -0
- package/src/lib/typesense/index.ts +6 -0
- package/src/lib/typesense/metadata/index.ts +4 -0
- package/src/lib/typesense/metadata/schema.metadata.ts +21 -0
- package/src/lib/typesense/metadata/typesense.metadata-accessor.ts +37 -0
- package/src/lib/typesense/metadata/typesense.metadata-explorer.spec.ts +56 -0
- package/src/lib/typesense/metadata/typesense.metadata-explorer.ts +41 -0
- package/src/lib/typesense/metadata/typesense.metadata-registry.ts +28 -0
- package/src/lib/typesense/module/index.ts +4 -0
- package/src/lib/typesense/module/interface.module.ts +34 -0
- package/src/lib/typesense/module/typesense.constant.ts +1 -0
- package/src/lib/typesense/module/typesense.module.spec.ts +94 -0
- package/src/lib/typesense/module/typesense.module.ts +87 -0
- package/src/lib/typesense/module/typesense.provider.ts +54 -0
- package/src/response/base-entity.response.ts +8 -0
- package/src/response/index.ts +2 -1
- package/src/response/login.response.ts +0 -0
- package/src/response/pagination.response.ts +52 -37
- package/src/setup/index.ts +1 -1
- package/src/util/date.util.spec.ts +49 -49
- package/src/util/date.util.ts +10 -10
- package/src/util/generator.util.spec.ts +79 -79
- package/src/util/generator.util.ts +34 -34
- package/src/util/index.ts +4 -3
- package/src/util/validate-config.ts +20 -0
- package/test/app.e2e-spec.ts +24 -24
- package/test/jest-e2e.json +9 -9
- package/tsconfig.build.json +4 -4
- package/tsconfig.json +21 -21
- package/dist/index.d.ts +0 -1
- package/dist/index.js +0 -18
- package/dist/index.js.map +0 -1
- package/dist/src/dto/base-filter.dto.d.ts +0 -4
- package/dist/src/dto/base-filter.dto.js +0 -11
- package/dist/src/dto/base-filter.dto.js.map +0 -1
- package/dist/src/dto/index.d.ts +0 -2
- package/dist/src/dto/index.js +0 -19
- package/dist/src/dto/index.js.map +0 -1
- package/dist/src/dto/pagination.dto.d.ts +0 -4
- package/dist/src/dto/pagination.dto.js +0 -11
- package/dist/src/dto/pagination.dto.js.map +0 -1
- package/dist/src/exception/bad-request-error.exception.d.ts +0 -4
- package/dist/src/exception/bad-request-error.exception.js +0 -12
- package/dist/src/exception/bad-request-error.exception.js.map +0 -1
- package/dist/src/exception/base.exception.d.ts +0 -21
- package/dist/src/exception/base.exception.js +0 -16
- package/dist/src/exception/base.exception.js.map +0 -1
- package/dist/src/exception/conflict-error.exception.d.ts +0 -4
- package/dist/src/exception/conflict-error.exception.js +0 -12
- package/dist/src/exception/conflict-error.exception.js.map +0 -1
- package/dist/src/exception/forbidden-error.exception.d.ts +0 -4
- package/dist/src/exception/forbidden-error.exception.js +0 -12
- package/dist/src/exception/forbidden-error.exception.js.map +0 -1
- package/dist/src/exception/internal-server-error.exception.d.ts +0 -4
- package/dist/src/exception/internal-server-error.exception.js +0 -12
- package/dist/src/exception/internal-server-error.exception.js.map +0 -1
- package/dist/src/exception/not-found-error.exception.d.ts +0 -4
- package/dist/src/exception/not-found-error.exception.js +0 -12
- package/dist/src/exception/not-found-error.exception.js.map +0 -1
- package/dist/src/exception/unauthorized-error.exception.d.ts +0 -4
- package/dist/src/exception/unauthorized-error.exception.js +0 -12
- package/dist/src/exception/unauthorized-error.exception.js.map +0 -1
- package/dist/src/filter/http-exception.filter.d.ts +0 -4
- package/dist/src/filter/http-exception.filter.js +0 -27
- package/dist/src/filter/http-exception.filter.js.map +0 -1
- package/dist/src/filter/index.d.ts +0 -1
- package/dist/src/filter/index.js +0 -18
- package/dist/src/filter/index.js.map +0 -1
- package/dist/src/index.d.ts +0 -8
- package/dist/src/index.js +0 -25
- package/dist/src/index.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -1
- package/dist/src/lib/index.js +0 -18
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/search-engine/document/base.document.d.ts +0 -3
- package/dist/src/lib/search-engine/document/base.document.js +0 -7
- package/dist/src/lib/search-engine/document/base.document.js.map +0 -1
- package/dist/src/lib/search-engine/document/index.js +0 -18
- package/dist/src/lib/search-engine/document/index.js.map +0 -1
- package/dist/src/lib/search-engine/index.d.ts +0 -1
- package/dist/src/lib/search-engine/index.js +0 -18
- package/dist/src/lib/search-engine/index.js.map +0 -1
- package/dist/src/lib/search-engine/interface/index.d.ts +0 -2
- package/dist/src/lib/search-engine/interface/index.js +0 -19
- package/dist/src/lib/search-engine/interface/index.js.map +0 -1
- package/dist/src/lib/search-engine/interface/search-document.interface.d.ts +0 -4
- package/dist/src/lib/search-engine/interface/search-document.interface.js +0 -3
- package/dist/src/lib/search-engine/interface/search-document.interface.js.map +0 -1
- package/dist/src/lib/search-engine/interface/transform-service.interface.d.ts +0 -6
- package/dist/src/lib/search-engine/interface/transform-service.interface.js +0 -3
- package/dist/src/lib/search-engine/interface/transform-service.interface.js.map +0 -1
- package/dist/src/lib/search-engine/schema/generic.schema.d.ts +0 -2
- package/dist/src/lib/search-engine/schema/generic.schema.js +0 -7
- package/dist/src/lib/search-engine/schema/generic.schema.js.map +0 -1
- package/dist/src/lib/search-engine/schema/index.d.ts +0 -1
- package/dist/src/lib/search-engine/schema/index.js +0 -18
- package/dist/src/lib/search-engine/schema/index.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/index.d.ts +0 -3
- package/dist/src/lib/search-engine/typesense/index.js +0 -20
- package/dist/src/lib/search-engine/typesense/index.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/metadata/index.d.ts +0 -2
- package/dist/src/lib/search-engine/typesense/metadata/index.js +0 -19
- package/dist/src/lib/search-engine/typesense/metadata/index.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.d.ts +0 -12
- package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js +0 -3
- package/dist/src/lib/search-engine/typesense/metadata/schema.metadata.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.d.ts +0 -10
- package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js +0 -33
- package/dist/src/lib/search-engine/typesense/metadata/typesense.metadata-registry.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/service/client.service.d.ts +0 -33
- package/dist/src/lib/search-engine/typesense/service/client.service.js +0 -197
- package/dist/src/lib/search-engine/typesense/service/client.service.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/service/index.d.ts +0 -1
- package/dist/src/lib/search-engine/typesense/service/index.js +0 -18
- package/dist/src/lib/search-engine/typesense/service/index.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/typesense-module.interface.d.ts +0 -27
- package/dist/src/lib/search-engine/typesense/typesense-module.interface.js +0 -3
- package/dist/src/lib/search-engine/typesense/typesense-module.interface.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.constants.d.ts +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.constants.js +0 -5
- package/dist/src/lib/search-engine/typesense/typesense.constants.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.module.d.ts +0 -8
- package/dist/src/lib/search-engine/typesense/typesense.module.js +0 -68
- package/dist/src/lib/search-engine/typesense/typesense.module.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.module.test.d.ts +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.module.test.js +0 -89
- package/dist/src/lib/search-engine/typesense/typesense.module.test.js.map +0 -1
- package/dist/src/lib/search-engine/typesense/typesense.providers.d.ts +0 -4
- package/dist/src/lib/search-engine/typesense/typesense.providers.js +0 -40
- package/dist/src/lib/search-engine/typesense/typesense.providers.js.map +0 -1
- package/dist/src/response/index.d.ts +0 -1
- package/dist/src/response/index.js +0 -18
- package/dist/src/response/index.js.map +0 -1
- package/dist/src/response/pagination.response.d.ts +0 -17
- package/dist/src/response/pagination.response.js +0 -29
- package/dist/src/response/pagination.response.js.map +0 -1
- package/dist/src/setup/index.d.ts +0 -1
- package/dist/src/setup/index.js +0 -18
- package/dist/src/setup/index.js.map +0 -1
- package/dist/src/setup/microservice.setup.d.ts +0 -2
- package/dist/src/setup/microservice.setup.js +0 -25
- package/dist/src/setup/microservice.setup.js.map +0 -1
- package/dist/src/setup/swagger.setup.js +0 -1
- package/dist/src/setup/swagger.setup.js.map +0 -1
- package/dist/src/util/app.utils.d.ts +0 -4
- package/dist/src/util/app.utils.js +0 -21
- package/dist/src/util/app.utils.js.map +0 -1
- package/dist/src/util/date.util.d.ts +0 -2
- package/dist/src/util/date.util.js +0 -14
- package/dist/src/util/date.util.js.map +0 -1
- package/dist/src/util/generator.util.d.ts +0 -4
- package/dist/src/util/generator.util.js +0 -29
- package/dist/src/util/generator.util.js.map +0 -1
- package/dist/src/util/index.d.ts +0 -3
- package/dist/src/util/index.js +0 -20
- package/dist/src/util/index.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/{dist/src/setup/swagger.setup.d.ts → src/lib/redis/index.ts} +0 -0
- /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
|
-
<!--[](https://opencollective.com/nest#backer)
|
23
|
-
[](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
|
+
<!--[](https://opencollective.com/nest#backer)
|
23
|
+
[](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":"
|
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.
|
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/
|
28
|
-
"@nestjs/
|
29
|
-
"@nestjs/
|
30
|
-
"@nestjs/
|
31
|
-
"
|
32
|
-
"
|
33
|
-
"
|
34
|
-
"
|
35
|
-
"
|
36
|
-
"
|
37
|
-
"
|
38
|
-
"
|
39
|
-
|
40
|
-
|
41
|
-
"
|
42
|
-
"
|
43
|
-
"
|
44
|
-
"
|
45
|
-
"
|
46
|
-
"
|
47
|
-
|
48
|
-
|
49
|
-
"@
|
50
|
-
"@
|
51
|
-
"
|
52
|
-
"
|
53
|
-
"
|
54
|
-
"
|
55
|
-
"
|
56
|
-
"
|
57
|
-
"
|
58
|
-
"
|
59
|
-
"
|
60
|
-
"
|
61
|
-
"
|
62
|
-
"
|
63
|
-
"
|
64
|
-
|
65
|
-
|
66
|
-
"
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
"
|
72
|
-
"
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
"
|
78
|
-
|
79
|
-
|
80
|
-
"
|
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,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
|
+
});
|