xiongzhu 2 年 前
コミット
8b4fb217dd
55 ファイル変更721 行追加542 行削除
  1. 5 5
      fix.js
  2. 12 13
      package.json
  3. 103 105
      src/aliyun/afs.ts
  4. 2 2
      src/aliyun/aliyun.module.ts
  5. 6 6
      src/aliyun/aliyun.service.ts
  6. 8 8
      src/app.module.ts
  7. 6 6
      src/auth/auth.controller.ts
  8. 7 7
      src/auth/auth.module.ts
  9. 4 4
      src/auth/auth.service.ts
  10. 1 1
      src/auth/jwt-auth.guard.ts
  11. 3 3
      src/auth/jwt.strategy.ts
  12. 2 2
      src/auth/roles.guard.ts
  13. 2 2
      src/file/file.controller.ts
  14. 3 3
      src/file/file.module.ts
  15. 1 1
      src/file/file.service.ts
  16. 1 1
      src/helpers/configure-swagger-docs.helper.ts
  17. 2 2
      src/main.ts
  18. 1 1
      src/repl.ts
  19. 2 2
      src/shared/hashing/bcrypt.service.spec.ts
  20. 1 1
      src/shared/hashing/bcrypt.service.ts
  21. 3 3
      src/shared/hashing/hashing.service.spec.ts
  22. 1 1
      src/shared/mailer/mailer.module.ts
  23. 2 2
      src/shared/mailer/mailer.service.spec.ts
  24. 2 1
      src/shared/mailer/mailer.service.ts
  25. 1 1
      src/shared/utils/utils.module.ts
  26. 2 2
      src/shared/utils/utils.service.spec.ts
  27. 3 3
      src/sms/sms.controller.ts
  28. 4 4
      src/sms/sms.module.ts
  29. 3 3
      src/sms/sms.service.ts
  30. 4 4
      src/sys-config/sys-config.admin.controller.ts
  31. 4 4
      src/sys-config/sys-config.controller.ts
  32. 4 4
      src/sys-config/sys-config.module.ts
  33. 2 2
      src/sys-config/sys-config.service.ts
  34. 1 1
      src/transformers/decimal.transformer.ts
  35. 1 1
      src/user-balance/entities/balance-record.entity.ts
  36. 1 1
      src/user-balance/entities/user-balance.entity.ts
  37. 3 3
      src/user-balance/user-balance.admin.controller.ts
  38. 1 1
      src/user-balance/user-balance.controller.ts
  39. 5 5
      src/user-balance/user-balance.module.ts
  40. 2 2
      src/user-balance/user-balance.service.ts
  41. 1 1
      src/users/dto/user-create.dto.ts
  42. 1 1
      src/users/dto/user-update.dto.ts
  43. 1 1
      src/users/entities/users.entity.ts
  44. 9 9
      src/users/users.admin.controller.ts
  45. 4 5
      src/users/users.controller.ts
  46. 7 7
      src/users/users.module.ts
  47. 10 10
      src/users/users.service.ts
  48. 1 1
      src/weixin/lib/base.ts
  49. 4 4
      src/weixin/pay.ts
  50. 1 1
      src/weixin/types.ts
  51. 2 2
      src/weixin/weixin.controller.ts
  52. 5 5
      src/weixin/weixin.module.ts
  53. 6 5
      src/weixin/weixin.service.ts
  54. 6 3
      tsconfig.json
  55. 442 264
      yarn.lock

+ 5 - 5
fix.js

@@ -1,6 +1,6 @@
-const fs = require('fs')
+// const fs = require('fs')
 
-const package = JSON.parse(fs.readFileSync('./node_modules/bignumber.js/package.json', 'utf8'))
-package.exports['./bignumber'] = './bignumber.js'
-fs.writeFileSync('./node_modules/bignumber.js/package.json', JSON.stringify(package, null, 2))
-console.log('Fixed bignumber.js package.json')
+// const pkg = JSON.parse(fs.readFileSync('./node_modules/bignumber.js/package.json', 'utf8'))
+// pkg.exports['./bignumber'] = './bignumber.js'
+// fs.writeFileSync('./node_modules/bignumber.js/package.json', JSON.stringify(pkg, null, 2))
+// console.log('Fixed bignumber.js package.json')

+ 12 - 13
package.json

@@ -4,6 +4,7 @@
   "description": "An API Boilerplate to create a ready-to-use REST API in seconds with NestJS 9.x and Auth JWT System",
   "author": "Tony133",
   "license": "MIT",
+  "type": "module",
   "scripts": {
     "prebuild": "rimraf dist",
     "build": "nest build",
@@ -29,25 +30,23 @@
     "@keyv/mysql": "^1.6.3",
     "@keyv/redis": "^2.5.7",
     "@nestjs/axios": "^2.0.0",
-    "@nestjs/common": "^9.3.3",
+    "@nestjs/common": "^10.0.3",
     "@nestjs/config": "^2.3.1",
-    "@nestjs/core": "^9.3.3",
+    "@nestjs/core": "^10.0.3",
     "@nestjs/devtools-integration": "^0.1.4",
     "@nestjs/jwt": "^10.0.1",
     "@nestjs/mapped-types": "1.2.2",
-    "@nestjs/mongoose": "^9.2.2",
-    "@nestjs/passport": "^9.0.3",
-    "@nestjs/platform-express": "^9.3.3",
-    "@nestjs/swagger": "^6.2.1",
+    "@nestjs/passport": "^10.0.0",
+    "@nestjs/platform-express": "^10.0.3",
+    "@nestjs/swagger": "^7.0.11",
     "@nestjs/throttler": "^4.0.0",
-    "@nestjs/typeorm": "^9.0.1",
+    "@nestjs/typeorm": "^10.0.0",
     "ali-oss": "^6.17.1",
     "axios": "^1.3.6",
     "bcrypt": "^5.1.0",
-    "big.js": "^6.2.1",
     "bignumber.js": "^9.1.1",
     "class-transformer": "^0.5.1",
-    "class-validator": "^0.13.0",
+    "class-validator": "0.12.2",
     "crypto": "^1.0.1",
     "date-fns": "^2.29.3",
     "eventsource-parser": "^1.0.0",
@@ -58,8 +57,6 @@
     "ioredis": "^5.3.2",
     "isomorphic-fetch": "^3.0.0",
     "keyv": "^4.5.2",
-    "mongodb": "^5.2.0",
-    "mongoose": "^7.0.4",
     "mysql2": "^3.1.2",
     "nestjs-typeorm-paginate": "^4.0.3",
     "nodemailer": "^6.9.1",
@@ -80,9 +77,11 @@
   },
   "devDependencies": {
     "@inquirer/prompts": "^1.0.0",
-    "@nestjs/cli": "^9.2.0",
-    "@nestjs/schematics": "^9.0.4",
+    "@nestjs/cli": "^10.0.5",
+    "@nestjs/schematics": "^10.0.1",
     "@nestjs/testing": "^9.3.3",
+    "@swc/cli": "^0.1.62",
+    "@swc/core": "^1.3.67",
     "@types/express": "^4.17.17",
     "@types/jest": "^29.4.0",
     "@types/multer": "^1.4.7",

+ 103 - 105
src/aliyun/afs.ts

@@ -2,11 +2,12 @@
 /**
  *
  */
-import Util, * as $Util from '@alicloud/tea-util'
-import OpenApi, * as $OpenApi from '@alicloud/openapi-client'
+import Util from '@alicloud/tea-util'
+import OpenApi from '@alicloud/openapi-client'
 import EndpointUtil from '@alicloud/endpoint-util'
 import * as $tea from '@alicloud/tea-typescript'
 
+const TeaClient = Util.default
 export class AnalyzeNvcRequest extends $tea.Model {
     sourceIp?: string
     scoreJsonStr?: string
@@ -2370,8 +2371,8 @@ export class DescribePersonMachineListResponseBodyPersonMachineRes extends $tea.
     }
 }
 
-export class AfsClient extends OpenApi {
-    constructor(config: $OpenApi.Config) {
+export class AfsClient extends OpenApi.default {
+    constructor(config: OpenApi.Config) {
         super(config)
         this._endpointRule = 'regional'
         this._endpointMap = {
@@ -2450,24 +2451,21 @@ export class AfsClient extends OpenApi {
         endpointMap: { [key: string]: string },
         endpoint: string
     ): string {
-        if (!Util.empty(endpoint)) {
+        if (!Util.default.empty(endpoint)) {
             return endpoint
         }
 
-        if (!Util.isUnset(endpointMap) && !Util.empty(endpointMap[regionId])) {
+        if (!TeaClient.isUnset(endpointMap) && !TeaClient.empty(endpointMap[regionId])) {
             return endpointMap[regionId]
         }
 
-        return EndpointUtil.getEndpointRules(productId, regionId, endpointRule, network, suffix)
+        return EndpointUtil.default.getEndpointRules(productId, regionId, endpointRule, network, suffix)
     }
 
-    async analyzeNvcWithOptions(
-        request: AnalyzeNvcRequest,
-        runtime: $Util.RuntimeOptions
-    ): Promise<AnalyzeNvcResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+    async analyzeNvcWithOptions(request: AnalyzeNvcRequest, runtime: Util.RuntimeOptions): Promise<AnalyzeNvcResponse> {
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<AnalyzeNvcResponse>(
             await this.doRPCRequest('AnalyzeNvc', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2476,17 +2474,17 @@ export class AfsClient extends OpenApi {
     }
 
     async analyzeNvc(request: AnalyzeNvcRequest): Promise<AnalyzeNvcResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.analyzeNvcWithOptions(request, runtime)
     }
 
     async authenticateSigWithOptions(
         request: AuthenticateSigRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<AuthenticateSigResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<AuthenticateSigResponse>(
             await this.doRPCRequest('AuthenticateSig', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2495,17 +2493,17 @@ export class AfsClient extends OpenApi {
     }
 
     async authenticateSig(request: AuthenticateSigRequest): Promise<AuthenticateSigResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.authenticateSigWithOptions(request, runtime)
     }
 
     async configurationStyleWithOptions(
         request: ConfigurationStyleRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<ConfigurationStyleResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<ConfigurationStyleResponse>(
             await this.doRPCRequest('ConfigurationStyle', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2514,17 +2512,17 @@ export class AfsClient extends OpenApi {
     }
 
     async configurationStyle(request: ConfigurationStyleRequest): Promise<ConfigurationStyleResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.configurationStyleWithOptions(request, runtime)
     }
 
     async createConfigurationWithOptions(
         request: CreateConfigurationRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<CreateConfigurationResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<CreateConfigurationResponse>(
             await this.doRPCRequest('CreateConfiguration', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2533,17 +2531,17 @@ export class AfsClient extends OpenApi {
     }
 
     async createConfiguration(request: CreateConfigurationRequest): Promise<CreateConfigurationResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.createConfigurationWithOptions(request, runtime)
     }
 
     async describeAfsConfigNameWithOptions(
         request: DescribeAfsConfigNameRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeAfsConfigNameResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeAfsConfigNameResponse>(
             await this.doRPCRequest('DescribeAfsConfigName', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2552,17 +2550,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeAfsConfigName(request: DescribeAfsConfigNameRequest): Promise<DescribeAfsConfigNameResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeAfsConfigNameWithOptions(request, runtime)
     }
 
     async describeAfsOneConfDataWithOptions(
         request: DescribeAfsOneConfDataRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeAfsOneConfDataResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeAfsOneConfDataResponse>(
             await this.doRPCRequest(
@@ -2580,17 +2578,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeAfsOneConfData(request: DescribeAfsOneConfDataRequest): Promise<DescribeAfsOneConfDataResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeAfsOneConfDataWithOptions(request, runtime)
     }
 
     async describeAfsTotalConfDataWithOptions(
         request: DescribeAfsTotalConfDataRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeAfsTotalConfDataResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeAfsTotalConfDataResponse>(
             await this.doRPCRequest(
@@ -2610,17 +2608,17 @@ export class AfsClient extends OpenApi {
     async describeAfsTotalConfData(
         request: DescribeAfsTotalConfDataRequest
     ): Promise<DescribeAfsTotalConfDataResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeAfsTotalConfDataWithOptions(request, runtime)
     }
 
     async describeAfsVerifySigDataWithOptions(
         request: DescribeAfsVerifySigDataRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeAfsVerifySigDataResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeAfsVerifySigDataResponse>(
             await this.doRPCRequest(
@@ -2640,17 +2638,17 @@ export class AfsClient extends OpenApi {
     async describeAfsVerifySigData(
         request: DescribeAfsVerifySigDataRequest
     ): Promise<DescribeAfsVerifySigDataResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeAfsVerifySigDataWithOptions(request, runtime)
     }
 
     async describeCaptchaDayWithOptions(
         request: DescribeCaptchaDayRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeCaptchaDayResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeCaptchaDayResponse>(
             await this.doRPCRequest('DescribeCaptchaDay', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2659,17 +2657,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeCaptchaDay(request: DescribeCaptchaDayRequest): Promise<DescribeCaptchaDayResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeCaptchaDayWithOptions(request, runtime)
     }
 
     async describeCaptchaIpCityWithOptions(
         request: DescribeCaptchaIpCityRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeCaptchaIpCityResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeCaptchaIpCityResponse>(
             await this.doRPCRequest('DescribeCaptchaIpCity', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2678,17 +2676,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeCaptchaIpCity(request: DescribeCaptchaIpCityRequest): Promise<DescribeCaptchaIpCityResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeCaptchaIpCityWithOptions(request, runtime)
     }
 
     async describeCaptchaMinWithOptions(
         request: DescribeCaptchaMinRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeCaptchaMinResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeCaptchaMinResponse>(
             await this.doRPCRequest('DescribeCaptchaMin', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2697,17 +2695,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeCaptchaMin(request: DescribeCaptchaMinRequest): Promise<DescribeCaptchaMinResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeCaptchaMinWithOptions(request, runtime)
     }
 
     async describeCaptchaOrderWithOptions(
         request: DescribeCaptchaOrderRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeCaptchaOrderResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeCaptchaOrderResponse>(
             await this.doRPCRequest('DescribeCaptchaOrder', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2716,17 +2714,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeCaptchaOrder(request: DescribeCaptchaOrderRequest): Promise<DescribeCaptchaOrderResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeCaptchaOrderWithOptions(request, runtime)
     }
 
     async describeCaptchaRiskWithOptions(
         request: DescribeCaptchaRiskRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeCaptchaRiskResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeCaptchaRiskResponse>(
             await this.doRPCRequest('DescribeCaptchaRisk', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2735,17 +2733,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeCaptchaRisk(request: DescribeCaptchaRiskRequest): Promise<DescribeCaptchaRiskResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeCaptchaRiskWithOptions(request, runtime)
     }
 
     async describeConfigNameWithOptions(
         request: DescribeConfigNameRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeConfigNameResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeConfigNameResponse>(
             await this.doRPCRequest('DescribeConfigName', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2754,17 +2752,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeConfigName(request: DescribeConfigNameRequest): Promise<DescribeConfigNameResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeConfigNameWithOptions(request, runtime)
     }
 
     async describeEarlyWarningWithOptions(
         request: DescribeEarlyWarningRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeEarlyWarningResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeEarlyWarningResponse>(
             await this.doRPCRequest('DescribeEarlyWarning', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2773,17 +2771,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeEarlyWarning(request: DescribeEarlyWarningRequest): Promise<DescribeEarlyWarningResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeEarlyWarningWithOptions(request, runtime)
     }
 
     async describeOrderInfoWithOptions(
         request: DescribeOrderInfoRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribeOrderInfoResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribeOrderInfoResponse>(
             await this.doRPCRequest('DescribeOrderInfo', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2792,17 +2790,17 @@ export class AfsClient extends OpenApi {
     }
 
     async describeOrderInfo(request: DescribeOrderInfoRequest): Promise<DescribeOrderInfoResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describeOrderInfoWithOptions(request, runtime)
     }
 
     async describePersonMachineListWithOptions(
         request: DescribePersonMachineListRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<DescribePersonMachineListResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<DescribePersonMachineListResponse>(
             await this.doRPCRequest(
@@ -2822,17 +2820,17 @@ export class AfsClient extends OpenApi {
     async describePersonMachineList(
         request: DescribePersonMachineListRequest
     ): Promise<DescribePersonMachineListResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.describePersonMachineListWithOptions(request, runtime)
     }
 
     async setEarlyWarningWithOptions(
         request: SetEarlyWarningRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<SetEarlyWarningResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<SetEarlyWarningResponse>(
             await this.doRPCRequest('SetEarlyWarning', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2841,17 +2839,17 @@ export class AfsClient extends OpenApi {
     }
 
     async setEarlyWarning(request: SetEarlyWarningRequest): Promise<SetEarlyWarningResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.setEarlyWarningWithOptions(request, runtime)
     }
 
     async updateConfigNameWithOptions(
         request: UpdateConfigNameRequest,
-        runtime: $Util.RuntimeOptions
+        runtime: Util.RuntimeOptions
     ): Promise<UpdateConfigNameResponse> {
-        Util.validateModel(request)
-        let req = new $OpenApi.OpenApiRequest({
-            body: Util.toMap(request)
+        TeaClient.validateModel(request)
+        let req = new OpenApi.OpenApiRequest({
+            body: TeaClient.toMap(request)
         })
         return $tea.cast<UpdateConfigNameResponse>(
             await this.doRPCRequest('UpdateConfigName', '2018-01-12', 'HTTPS', 'POST', 'AK', 'json', req, runtime),
@@ -2860,7 +2858,7 @@ export class AfsClient extends OpenApi {
     }
 
     async updateConfigName(request: UpdateConfigNameRequest): Promise<UpdateConfigNameResponse> {
-        let runtime = new $Util.RuntimeOptions({})
+        let runtime = new Util.RuntimeOptions({})
         return await this.updateConfigNameWithOptions(request, runtime)
     }
 }

+ 2 - 2
src/aliyun/aliyun.module.ts

@@ -1,7 +1,7 @@
 import { Module } from '@nestjs/common'
-import { AliyunService } from './aliyun.service'
+import { AliyunService } from './aliyun.service.js'
 import { ConfigModule } from '@nestjs/config'
-import aliyunConfig from './config/aliyun.config'
+import aliyunConfig from './config/aliyun.config.js'
 
 @Module({
     imports: [ConfigModule.forFeature(aliyunConfig)],

+ 6 - 6
src/aliyun/aliyun.service.ts

@@ -1,8 +1,8 @@
-import { SendCodeDto } from './../sms/dto/sms.dto'
+import { SendCodeDto } from './../sms/dto/sms.dto.js'
 import { Inject, Injectable, InternalServerErrorException, Logger, NotAcceptableException } from '@nestjs/common'
-import aliyunConfig from './config/aliyun.config'
+import aliyunConfig from './config/aliyun.config.js'
 import { ConfigType } from '@nestjs/config'
-import Dysmsapi20170525, * as $Dysmsapi20170525 from '@alicloud/dysmsapi20170525'
+import Client from '@alicloud/dysmsapi20170525'
 import OpenApi, * as $OpenApi from '@alicloud/openapi-client'
 import Util, * as $Util from '@alicloud/tea-util'
 import * as $tea from '@alicloud/tea-typescript'
@@ -10,7 +10,7 @@ import { SendSmsResponse } from '@alicloud/dysmsapi20170525'
 import * as randomstring from 'randomstring'
 import * as OSS from 'ali-oss'
 import { buffer } from 'stream/consumers'
-import { AfsClient, AuthenticateSigRequest, AuthenticateSigResponse } from './afs'
+import { AfsClient, AuthenticateSigRequest, AuthenticateSigResponse } from './afs.js'
 
 @Injectable()
 export class AliyunService {
@@ -29,9 +29,9 @@ export class AliyunService {
             accessKeySecret: this.aliyunConfiguration.accessKeySecret
         })
         config.endpoint = `dysmsapi.aliyuncs.com`
-        let client = new Dysmsapi20170525(config)
+        let client = new Client.default(config)
         const code = randomstring.generate({ length: 4, charset: 'numeric' })
-        let sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({
+        let sendSmsRequest = new Client.SendSmsRequest({
             phoneNumbers: data.phone,
             signName: this.aliyunConfiguration.smsSign,
             templateCode: this.aliyunConfiguration.smsTemplateCode,

+ 8 - 8
src/app.module.ts

@@ -1,4 +1,4 @@
-import { AliyunModule } from './aliyun/aliyun.module'
+import { AliyunModule } from './aliyun/aliyun.module.js'
 import { Module } from '@nestjs/common'
 import { ConfigModule, ConfigService } from '@nestjs/config'
 import { TypeOrmModule } from '@nestjs/typeorm'
@@ -6,13 +6,13 @@ import { ThrottlerModule } from '@nestjs/throttler'
 import * as Yup from 'yup'
 import { DevtoolsModule } from '@nestjs/devtools-integration'
 import { APP_FILTER } from '@nestjs/core'
-import { UsersModule } from './users/users.module'
-import { SmsModule } from './sms/sms.module'
-import { AuthModule } from './auth/auth.module'
-import { FileModule } from './file/file.module'
-import { UserBalanceModule } from './user-balance/user-balance.module'
-import { SysConfigModule } from './sys-config/sys-config.module'
-import { AllExceptionsFilter } from './filters/all-exceptions-filter.filter'
+import { UsersModule } from './users/users.module.js'
+import { SmsModule } from './sms/sms.module.js'
+import { AuthModule } from './auth/auth.module.js'
+import { FileModule } from './file/file.module.js'
+import { UserBalanceModule } from './user-balance/user-balance.module.js'
+import { SysConfigModule } from './sys-config/sys-config.module.js'
+import { AllExceptionsFilter } from './filters/all-exceptions-filter.filter.js'
 @Module({
     imports: [
         DevtoolsModule.register({

+ 6 - 6
src/auth/auth.controller.ts

@@ -1,11 +1,11 @@
-import { PhoneLoginDto } from './dto/login.dto'
+import { PhoneLoginDto } from './dto/login.dto.js'
 import { Body, Controller, Get, Param, Post } from '@nestjs/common'
-import { AuthService } from './auth.service'
+import { AuthService } from './auth.service.js'
 import { ApiTags } from '@nestjs/swagger'
-import { Public } from './public.decorator'
-import { HasRoles } from './roles.decorator'
-import { Role } from '../model/role.enum'
-import { UserRegisterDto } from 'src/users/dto/user-register.dto'
+import { Public } from './public.decorator.js'
+import { HasRoles } from './roles.decorator.js'
+import { Role } from '../model/role.enum.js'
+import { UserRegisterDto } from '../users/dto/user-register.dto.js'
 
 @ApiTags('auth')
 @Controller('/auth')

+ 7 - 7
src/auth/auth.module.ts

@@ -1,14 +1,14 @@
 import { Module } from '@nestjs/common'
-import { AuthService } from './auth.service'
+import { AuthService } from './auth.service.js'
 import { ConfigModule } from '@nestjs/config'
-import jwtConfig from './jwt.config'
+import jwtConfig from './jwt.config.js'
 import { JwtModule } from '@nestjs/jwt'
-import { JwtStrategy } from './jwt.strategy'
-import { UsersModule } from '../users/users.module'
-import { AuthController } from './auth.controller'
+import { JwtStrategy } from './jwt.strategy.js'
+import { UsersModule } from '../users/users.module.js'
+import { AuthController } from './auth.controller.js'
 import { APP_GUARD } from '@nestjs/core'
-import { JwtAuthGuard } from './jwt-auth.guard'
-import { RolesGuard } from './roles.guard'
+import { JwtAuthGuard } from './jwt-auth.guard.js'
+import { RolesGuard } from './roles.guard.js'
 
 @Module({
     imports: [ConfigModule.forFeature(jwtConfig), JwtModule.registerAsync(jwtConfig.asProvider()), UsersModule],

+ 4 - 4
src/auth/auth.service.ts

@@ -1,9 +1,9 @@
-import { PhoneLoginDto } from './dto/login.dto'
+import { PhoneLoginDto } from './dto/login.dto.js'
 import { Injectable, UnauthorizedException } from '@nestjs/common'
 import { JwtService } from '@nestjs/jwt'
-import { UsersService } from '../users/users.service'
-import { Role } from 'src/model/role.enum'
-import { UserRegisterDto } from 'src/users/dto/user-register.dto'
+import { UsersService } from '../users/users.service.js'
+import { Role } from '../model/role.enum.js'
+import { UserRegisterDto } from '../users/dto/user-register.dto.js'
 
 @Injectable()
 export class AuthService {

+ 1 - 1
src/auth/jwt-auth.guard.ts

@@ -1,7 +1,7 @@
 import { ExecutionContext, Injectable } from '@nestjs/common'
 import { Reflector } from '@nestjs/core'
 import { AuthGuard } from '@nestjs/passport'
-import { IS_PUBLIC_KEY } from './public.decorator'
+import { IS_PUBLIC_KEY } from './public.decorator.js'
 
 @Injectable()
 export class JwtAuthGuard extends AuthGuard('jwt') {

+ 3 - 3
src/auth/jwt.strategy.ts

@@ -1,10 +1,10 @@
 import { ExtractJwt, Strategy } from 'passport-jwt'
 import { PassportStrategy } from '@nestjs/passport'
 import { Inject, Injectable, Logger, UnauthorizedException } from '@nestjs/common'
-import jwtconfig from './jwt.config'
+import jwtconfig from './jwt.config.js'
 import { ConfigType } from '@nestjs/config'
-import { UsersService } from 'src/users/users.service'
-import { Role } from 'src/model/role.enum'
+import { UsersService } from '../users/users.service.js'
+import { Role } from '../model/role.enum.js'
 
 @Injectable()
 export class JwtStrategy extends PassportStrategy(Strategy) {

+ 2 - 2
src/auth/roles.guard.ts

@@ -1,7 +1,7 @@
 import { Injectable, CanActivate, ExecutionContext } from '@nestjs/common'
 import { Reflector } from '@nestjs/core'
-import { HAS_ANY_ROLES_KEY, HAS_ROLES_KEY } from './roles.decorator'
-import { Role } from '../model/role.enum'
+import { HAS_ANY_ROLES_KEY, HAS_ROLES_KEY } from './roles.decorator.js'
+import { Role } from '../model/role.enum.js'
 
 @Injectable()
 export class RolesGuard implements CanActivate {

+ 2 - 2
src/file/file.controller.ts

@@ -1,7 +1,7 @@
-import { FileService } from './file.service'
+import { FileService } from './file.service.js'
 import { Controller, UploadedFile, UseInterceptors } from '@nestjs/common'
 import { ApiTags } from '@nestjs/swagger'
-import { Public } from '../auth/public.decorator'
+import { Public } from '../auth/public.decorator.js'
 import { Post } from '@nestjs/common'
 import { FileInterceptor } from '@nestjs/platform-express'
 

+ 3 - 3
src/file/file.module.ts

@@ -1,7 +1,7 @@
 import { Module } from '@nestjs/common'
-import { FileService } from './file.service'
-import { FileController } from './file.controller'
-import { AliyunModule } from '../aliyun/aliyun.module'
+import { FileService } from './file.service.js'
+import { FileController } from './file.controller.js'
+import { AliyunModule } from '../aliyun/aliyun.module.js'
 
 @Module({
     imports: [AliyunModule],

+ 1 - 1
src/file/file.service.ts

@@ -1,5 +1,5 @@
 import { Injectable, Logger } from '@nestjs/common'
-import { AliyunService } from '../aliyun/aliyun.service'
+import { AliyunService } from '../aliyun/aliyun.service.js'
 import * as randomstring from 'randomstring'
 import { format } from 'date-fns'
 

+ 1 - 1
src/helpers/configure-swagger-docs.helper.ts

@@ -1,7 +1,7 @@
 import { INestApplication } from '@nestjs/common'
 import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
 import { ConfigService } from '@nestjs/config'
-import * as basicAuth from 'express-basic-auth'
+import basicAuth from 'express-basic-auth'
 
 const SWAGGER_ENVS = ['local', 'dev', 'staging']
 

+ 2 - 2
src/main.ts

@@ -1,8 +1,8 @@
 import { NestFactory } from '@nestjs/core'
-import { AppModule } from './app.module'
+import { AppModule } from './app.module.js'
 import { Logger, ValidationPipe } from '@nestjs/common'
 import { ConfigService } from '@nestjs/config'
-import { configureSwaggerDocs } from './helpers/configure-swagger-docs.helper'
+import { configureSwaggerDocs } from './helpers/configure-swagger-docs.helper.js'
 import { NestExpressApplication } from '@nestjs/platform-express'
 import { join } from 'path'
 

+ 1 - 1
src/repl.ts

@@ -1,5 +1,5 @@
 import { repl } from '@nestjs/core'
-import { AppModule } from './app.module'
+import { AppModule } from './app.module.js'
 
 async function bootstrap() {
     await repl(AppModule)

+ 2 - 2
src/shared/hashing/bcrypt.service.spec.ts

@@ -1,7 +1,7 @@
 import { Test, TestingModule } from '@nestjs/testing'
-import { BcryptService } from './bcrypt.service'
+import { BcryptService } from './bcrypt.service.js'
 
-describe('BcryptService', () => {
+describe('BcryptService.js', () => {
     let service: BcryptService
 
     beforeEach(async () => {

+ 1 - 1
src/shared/hashing/bcrypt.service.ts

@@ -1,6 +1,6 @@
 import { Injectable } from '@nestjs/common'
 import { compare, genSalt, hash } from 'bcrypt'
-import { HashingService } from './hashing.service'
+import { HashingService } from './hashing.service.js'
 
 @Injectable()
 export class BcryptService implements HashingService {

+ 3 - 3
src/shared/hashing/hashing.service.spec.ts

@@ -1,8 +1,8 @@
 import { Test, TestingModule } from '@nestjs/testing'
-import { BcryptService } from './bcrypt.service'
-import { HashingService } from './hashing.service'
+import { BcryptService } from './bcrypt.service.js'
+import { HashingService } from './hashing.service.js'
 
-describe('HashingService', () => {
+describe('HashingService.js', () => {
     let service: HashingService
 
     beforeEach(async () => {

+ 1 - 1
src/shared/mailer/mailer.module.ts

@@ -1,5 +1,5 @@
 import { Module } from '@nestjs/common'
-import { MailerService } from './mailer.service'
+import { MailerService } from './mailer.service.js'
 import { ConfigModule } from '@nestjs/config'
 
 @Module({

+ 2 - 2
src/shared/mailer/mailer.service.spec.ts

@@ -1,8 +1,8 @@
 import { ConfigService } from '@nestjs/config'
 import { Test, TestingModule } from '@nestjs/testing'
-import { MailerService } from './mailer.service'
+import { MailerService } from './mailer.service.js'
 
-describe('MailerService', () => {
+describe('MailerService.js', () => {
     let service: MailerService
 
     beforeEach(async () => {

+ 2 - 1
src/shared/mailer/mailer.service.ts

@@ -2,13 +2,14 @@ import { Injectable } from '@nestjs/common'
 import { createTransport } from 'nodemailer'
 import * as Mail from 'nodemailer/lib/mailer'
 import { ConfigService } from '@nestjs/config'
-import * as hbs from 'nodemailer-express-handlebars'
+import hbs from 'nodemailer-express-handlebars'
 
 @Injectable()
 export class MailerService {
     private nodemailerTransport: Mail
 
     constructor(private readonly configService: ConfigService) {
+        // @ts-ignore
         this.nodemailerTransport = createTransport({
             host: this.configService.get<string>('EMAIL_HOST'),
             port: this.configService.get<number>('EMAIL_PORT'),

+ 1 - 1
src/shared/utils/utils.module.ts

@@ -1,5 +1,5 @@
 import { Module } from '@nestjs/common'
-import { UtilsService } from './utils.service'
+import { UtilsService } from './utils.service.js'
 
 @Module({
     providers: [UtilsService],

+ 2 - 2
src/shared/utils/utils.service.spec.ts

@@ -1,7 +1,7 @@
 import { Test, TestingModule } from '@nestjs/testing'
-import { UtilsService } from './utils.service'
+import { UtilsService } from './utils.service.js'
 
-describe('UtilsService', () => {
+describe('UtilsService.js', () => {
     let service: UtilsService
 
     beforeEach(async () => {

+ 3 - 3
src/sms/sms.controller.ts

@@ -1,8 +1,8 @@
 import { Body, Controller, Post } from '@nestjs/common'
 import { ApiTags } from '@nestjs/swagger'
-import { SendCodeDto, VerifyCodeDto } from './dto/sms.dto'
-import { SmsService } from './sms.service'
-import { Public } from '../auth/public.decorator'
+import { SendCodeDto, VerifyCodeDto } from './dto/sms.dto.js'
+import { SmsService } from './sms.service.js'
+import { Public } from '../auth/public.decorator.js'
 
 @ApiTags('sms')
 @Controller('/sms')

+ 4 - 4
src/sms/sms.module.ts

@@ -1,9 +1,9 @@
 import { Module } from '@nestjs/common'
 import { TypeOrmModule } from '@nestjs/typeorm'
-import { AliyunModule } from '../aliyun/aliyun.module'
-import { SmsController } from './sms.controller'
-import { SmsService } from './sms.service'
-import { SmsRecord } from './entities/sms.entity'
+import { AliyunModule } from '../aliyun/aliyun.module.js'
+import { SmsController } from './sms.controller.js'
+import { SmsService } from './sms.service.js'
+import { SmsRecord } from './entities/sms.entity.js'
 
 @Module({
     imports: [TypeOrmModule.forFeature([SmsRecord]), AliyunModule],

+ 3 - 3
src/sms/sms.service.ts

@@ -1,9 +1,9 @@
 import { Injectable } from '@nestjs/common'
 import { InjectRepository } from '@nestjs/typeorm'
-import { AliyunService } from '../aliyun/aliyun.service'
-import { SmsRecord } from './entities/sms.entity'
+import { AliyunService } from '../aliyun/aliyun.service.js'
+import { SmsRecord } from './entities/sms.entity.js'
 import { Repository } from 'typeorm'
-import { SendCodeDto } from './dto/sms.dto'
+import { SendCodeDto } from './dto/sms.dto.js'
 
 @Injectable()
 export class SmsService {

+ 4 - 4
src/sys-config/sys-config.admin.controller.ts

@@ -1,9 +1,9 @@
 import { Body, Controller, Get, Param, Post, Put } from '@nestjs/common'
 import { ApiTags } from '@nestjs/swagger'
-import { Public } from '../auth/public.decorator'
-import { SysConfigService } from './sys-config.service'
-import { PageRequest } from 'src/common/dto/page-request'
-import { SysConfig } from './entities/sys-config.entity'
+import { Public } from '../auth/public.decorator.js'
+import { SysConfigService } from './sys-config.service.js'
+import { PageRequest } from '../common/dto/page-request.js'
+import { SysConfig } from './entities/sys-config.entity.js'
 
 @ApiTags('sys-config.admin')
 @Controller('/admin/sys-config')

+ 4 - 4
src/sys-config/sys-config.controller.ts

@@ -1,9 +1,9 @@
 import { Body, Controller, Get, Param, Post } from '@nestjs/common'
 import { ApiTags } from '@nestjs/swagger'
-import { Public } from '../auth/public.decorator'
-import { SysConfigService } from './sys-config.service'
-import { SysConfig, SysConfigType } from './entities/sys-config.entity'
-import { PageRequest } from 'src/common/dto/page-request'
+import { Public } from '../auth/public.decorator.js'
+import { SysConfigService } from './sys-config.service.js'
+import { SysConfig, SysConfigType } from './entities/sys-config.entity.js'
+import { PageRequest } from '../common/dto/page-request.js'
 
 @ApiTags('sys-config')
 @Controller('/sys-config')

+ 4 - 4
src/sys-config/sys-config.module.ts

@@ -1,9 +1,9 @@
 import { Module } from '@nestjs/common'
-import { SysConfigController } from './sys-config.controller'
-import { SysConfigService } from './sys-config.service'
+import { SysConfigController } from './sys-config.controller.js'
+import { SysConfigService } from './sys-config.service.js'
 import { TypeOrmModule } from '@nestjs/typeorm'
-import { SysConfig } from './entities/sys-config.entity'
-import { SysConfigAdminController } from './sys-config.admin.controller'
+import { SysConfig } from './entities/sys-config.entity.js'
+import { SysConfigAdminController } from './sys-config.admin.controller.js'
 
 @Module({
     imports: [TypeOrmModule.forFeature([SysConfig])],

+ 2 - 2
src/sys-config/sys-config.service.ts

@@ -1,8 +1,8 @@
 import { Injectable, InternalServerErrorException, NotFoundException } from '@nestjs/common'
 import { InjectRepository } from '@nestjs/typeorm'
 import { Repository } from 'typeorm'
-import { SysConfig } from './entities/sys-config.entity'
-import { PageRequest } from 'src/common/dto/page-request'
+import { SysConfig } from './entities/sys-config.entity.js'
+import { PageRequest } from '../common/dto/page-request.js'
 import { Pagination, paginate } from 'nestjs-typeorm-paginate'
 
 @Injectable()

+ 1 - 1
src/transformers/decimal.transformer.ts

@@ -1,5 +1,5 @@
 import { ValueTransformer } from 'typeorm'
-import BigNumber from "bignumber.js";
+import { BigNumber } from 'bignumber.js'
 
 export class DecimalTransformer implements ValueTransformer {
     to(value: BigNumber): string {

+ 1 - 1
src/user-balance/entities/balance-record.entity.ts

@@ -1,5 +1,5 @@
 import { BigNumber } from 'bignumber.js'
-import { DecimalTransformer } from '../../transformers/decimal.transformer'
+import { DecimalTransformer } from '../../transformers/decimal.transformer.js'
 import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, ValueTransformer } from 'typeorm'
 
 export enum BalanceType {

+ 1 - 1
src/user-balance/entities/user-balance.entity.ts

@@ -1,5 +1,5 @@
 import { BigNumber } from 'bignumber.js'
-import { DecimalTransformer } from '../../transformers/decimal.transformer'
+import { DecimalTransformer } from '../../transformers/decimal.transformer.js'
 import { Column, CreateDateColumn, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm'
 
 @Entity()

+ 3 - 3
src/user-balance/user-balance.admin.controller.ts

@@ -1,8 +1,8 @@
 import { Controller } from '@nestjs/common'
-import { UserBalanceService } from './user-balance.service'
+import { UserBalanceService } from './user-balance.service.js'
 import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
-import { HasRoles } from 'src/auth/roles.decorator'
-import { Role } from 'src/model/role.enum'
+import { HasRoles } from '../auth/roles.decorator.js'
+import { Role } from '../model/role.enum.js'
 
 @ApiTags('userBalance.admin')
 @ApiBearerAuth()

+ 1 - 1
src/user-balance/user-balance.controller.ts

@@ -1,5 +1,5 @@
 import { Body, Controller, Get, Post, Req } from '@nestjs/common'
-import { UserBalanceService } from './user-balance.service'
+import { UserBalanceService } from './user-balance.service.js'
 import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
 
 @ApiTags('userBalance')

+ 5 - 5
src/user-balance/user-balance.module.ts

@@ -1,10 +1,10 @@
 import { Module } from '@nestjs/common'
-import { UserBalanceService } from './user-balance.service'
-import { UserBalanceController } from './user-balance.controller'
+import { UserBalanceService } from './user-balance.service.js'
+import { UserBalanceController } from './user-balance.controller.js'
 import { TypeOrmModule } from '@nestjs/typeorm'
-import { UserBalance } from './entities/user-balance.entity'
-import { BalanceRecord } from './entities/balance-record.entity'
-import { UserBalanceAdminController } from './user-balance.admin.controller'
+import { UserBalance } from './entities/user-balance.entity.js'
+import { BalanceRecord } from './entities/balance-record.entity.js'
+import { UserBalanceAdminController } from './user-balance.admin.controller.js'
 
 @Module({
     imports: [TypeOrmModule.forFeature([UserBalance, BalanceRecord])],

+ 2 - 2
src/user-balance/user-balance.service.ts

@@ -1,8 +1,8 @@
 import { BadRequestException, Injectable, InternalServerErrorException, Logger } from '@nestjs/common'
 import { InjectRepository } from '@nestjs/typeorm'
-import { UserBalance } from './entities/user-balance.entity'
+import { UserBalance } from './entities/user-balance.entity.js'
 import { Repository } from 'typeorm'
-import { BalanceRecord, BalanceType } from './entities/balance-record.entity'
+import { BalanceRecord, BalanceType } from './entities/balance-record.entity.js'
 import { BigNumber } from 'bignumber.js'
 
 @Injectable()

+ 1 - 1
src/users/dto/user-create.dto.ts

@@ -1,5 +1,5 @@
 import { MaxLength, IsNotEmpty, IsEmail, IsString, isString, IsArray, IsOptional, Matches } from 'class-validator'
-import { Role } from '../../model/role.enum'
+import { Role } from '../../model/role.enum.js'
 
 export class UserCreateDto {
     @IsString()

+ 1 - 1
src/users/dto/user-update.dto.ts

@@ -1,4 +1,4 @@
 import { PartialType } from '@nestjs/swagger'
-import { UserCreateDto } from './user-create.dto'
+import { UserCreateDto } from './user-create.dto.js'
 
 export class UserUpdateDto extends PartialType(UserCreateDto) {}

+ 1 - 1
src/users/entities/users.entity.ts

@@ -1,5 +1,5 @@
 import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn } from 'typeorm'
-import { Role } from '../../model/role.enum'
+import { Role } from '../../model/role.enum.js'
 import { Exclude } from 'class-transformer'
 
 @Entity()

+ 9 - 9
src/users/users.admin.controller.ts

@@ -11,17 +11,17 @@ import {
     Req,
     Post
 } from '@nestjs/common'
-import { UsersService } from './users.service'
-import { UserProfileDto } from './dto/user-profile.dto'
-import { UserUpdateDto } from './dto/user-update.dto'
-import { IUsers } from './interfaces/users.interface'
+import { UsersService } from './users.service.js'
+import { UserProfileDto } from './dto/user-profile.dto.js'
+import { UserUpdateDto } from './dto/user-update.dto.js'
+import { IUsers } from './interfaces/users.interface.js'
 import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
-import { HasRoles } from '../auth/roles.decorator'
-import { Role } from '../model/role.enum'
+import { HasRoles } from '../auth/roles.decorator.js'
+import { Role } from '../model/role.enum.js'
 import { IPaginationOptions } from 'nestjs-typeorm-paginate'
-import { PageRequest } from 'src/common/dto/page-request'
-import { Users } from './entities/users.entity'
-import { UserCreateDto } from './dto/user-create.dto'
+import { PageRequest } from '../common/dto/page-request.js'
+import { Users } from './entities/users.entity.js'
+import { UserCreateDto } from './dto/user-create.dto.js'
 
 @ApiTags('users.admin')
 @Controller('/admin/users')

+ 4 - 5
src/users/users.controller.ts

@@ -9,12 +9,11 @@ import {
     Req,
     Post
 } from '@nestjs/common'
-import { UsersService } from './users.service'
-import { UserProfileDto } from './dto/user-profile.dto'
-import { IUsers } from './interfaces/users.interface'
+import { UsersService } from './users.service.js'
+import { UserProfileDto } from './dto/user-profile.dto.js'
+import { IUsers } from './interfaces/users.interface.js'
 import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'
-import { Users } from './entities/users.entity'
-import { Public } from 'src/auth/public.decorator'
+import { Public } from '../auth/public.decorator.js'
 
 @ApiTags('users')
 @Controller('users')

+ 7 - 7
src/users/users.module.ts

@@ -1,12 +1,12 @@
 import { Module } from '@nestjs/common'
 import { TypeOrmModule } from '@nestjs/typeorm'
-import { Users } from './entities/users.entity'
-import { UsersService } from './users.service'
-import { UsersController } from './users.controller'
-import { BcryptService } from '../shared/hashing/bcrypt.service'
-import { HashingService } from '../shared/hashing/hashing.service'
-import { SmsModule } from '../sms/sms.module'
-import { UsersAdminController } from './users.admin.controller'
+import { Users } from './entities/users.entity.js'
+import { UsersService } from './users.service.js'
+import { UsersController } from './users.controller.js'
+import { BcryptService } from '../shared/hashing/bcrypt.service.js'
+import { HashingService } from '../shared/hashing/hashing.service.js'
+import { SmsModule } from '../sms/sms.module.js'
+import { UsersAdminController } from './users.admin.controller.js'
 
 @Module({
     imports: [SmsModule, TypeOrmModule.forFeature([Users])],

+ 10 - 10
src/users/users.service.ts

@@ -1,4 +1,4 @@
-import { UserRegisterDto } from './dto/user-register.dto'
+import { UserRegisterDto } from './dto/user-register.dto.js'
 import {
     Injectable,
     NotFoundException,
@@ -10,17 +10,17 @@ import {
 } from '@nestjs/common'
 import { And, LessThan, LessThanOrEqual, MoreThan, MoreThanOrEqual, Repository, UpdateResult } from 'typeorm'
 import { InjectRepository } from '@nestjs/typeorm'
-import { Users } from './entities/users.entity'
-import { IUsers } from './interfaces/users.interface'
-import { UserCreateDto } from './dto/user-create.dto'
-import { UserProfileDto } from './dto/user-profile.dto'
-import { UserUpdateDto } from './dto/user-update.dto'
-import { HashingService } from '../shared/hashing/hashing.service'
-import { SmsService } from '../sms/sms.service'
+import { Users } from './entities/users.entity.js'
+import { IUsers } from './interfaces/users.interface.js'
+import { UserCreateDto } from './dto/user-create.dto.js'
+import { UserProfileDto } from './dto/user-profile.dto.js'
+import { UserUpdateDto } from './dto/user-update.dto.js'
+import { HashingService } from '../shared/hashing/hashing.service.js'
+import { SmsService } from '../sms/sms.service.js'
 import * as randomstring from 'randomstring'
 import { paginate, Pagination } from 'nestjs-typeorm-paginate'
-import { Role } from 'src/model/role.enum'
-import { PageRequest } from '../common/dto/page-request'
+import { Role } from '../model/role.enum.js'
+import { PageRequest } from '../common/dto/page-request.js'
 import { endOfDay, startOfDay } from 'date-fns'
 
 @Injectable()

+ 1 - 1
src/weixin/lib/base.ts

@@ -1,5 +1,5 @@
 import axios from 'axios'
-import { Output } from './interface-v2'
+import { Output } from './interface-v2.js'
 
 export class Base {
     protected userAgent = '127.0.0.1' // User-Agent

+ 4 - 4
src/weixin/pay.ts

@@ -15,10 +15,10 @@ import {
     Irefunds1,
     Irefunds2,
     ICertificates
-} from './lib/interface'
-import { IcombineH5, IcombineNative, IcombineApp, IcombineJsapi, IcloseSubOrders } from './lib/combine_interface'
-import { BatchesTransfer } from './lib/interface-v2'
-import { Base } from './lib/base'
+} from './lib/interface.js'
+import { IcombineH5, IcombineNative, IcombineApp, IcombineJsapi, IcloseSubOrders } from './lib/combine_interface.js'
+import { BatchesTransfer } from './lib/interface-v2.js'
+import { Base } from './lib/base.js'
 
 export class Pay extends Base {
     private appid: string //  直连商户申请的公众号或移动应用appid。

+ 1 - 1
src/weixin/types.ts

@@ -1,4 +1,4 @@
-declare namespace WechatPay {
+export declare namespace WechatPay {
     type TradeState = 'SUCCESS' | 'REFUND' | 'NOTPAY' | 'CLOSED' | 'REVOKED' | 'USERPAYING' | 'PAYERROR'
     type TradeType = 'JSAPI' | 'NATIVE' | 'APP' | 'MICROPAY' | 'MWEB' | 'FACEPAY'
 

+ 2 - 2
src/weixin/weixin.controller.ts

@@ -1,6 +1,6 @@
 import { Body, Controller, Get, Post, Query } from '@nestjs/common'
-import { WeixinService } from './weixin.service'
-import { Public } from '../auth/public.decorator'
+import { WeixinService } from './weixin.service.js'
+import { Public } from '../auth/public.decorator.js'
 import { ApiQuery, ApiTags } from '@nestjs/swagger'
 
 @ApiTags('weixin')

+ 5 - 5
src/weixin/weixin.module.ts

@@ -1,11 +1,11 @@
 import { Module } from '@nestjs/common'
-import { WeixinController } from './weixin.controller'
-import { WeixinService } from './weixin.service'
-import weixinConfig from './weixin.config'
+import { WeixinController } from './weixin.controller.js'
+import { WeixinService } from './weixin.service.js'
+import weixinConfig from './weixin.config.js'
 import { ConfigModule } from '@nestjs/config'
 import { TypeOrmModule } from '@nestjs/typeorm'
-import { AccessTokenCache } from './entities/access-token-cache.entity'
-import { JsapiTicketCache } from './entities/jsapi-ticket-cache.entity'
+import { AccessTokenCache } from './entities/access-token-cache.entity.js'
+import { JsapiTicketCache } from './entities/jsapi-ticket-cache.entity.js'
 
 @Module({
     imports: [ConfigModule.forFeature(weixinConfig), TypeOrmModule.forFeature([AccessTokenCache, JsapiTicketCache])],

+ 6 - 5
src/weixin/weixin.service.ts

@@ -1,5 +1,5 @@
 import { Inject, Injectable, InternalServerErrorException, Logger } from '@nestjs/common'
-import weixinConfig from './weixin.config'
+import weixinConfig from './weixin.config.js'
 import { ConfigType } from '@nestjs/config'
 import {
     ApiConfig,
@@ -17,14 +17,15 @@ import {
     JsTicket
 } from 'tnwx'
 import { InjectRepository } from '@nestjs/typeorm'
-import { AccessTokenCache } from './entities/access-token-cache.entity'
+import { AccessTokenCache } from './entities/access-token-cache.entity.js'
 import { LessThan, MoreThan, Not, Repository } from 'typeorm'
 import { addSeconds, differenceInMinutes } from 'date-fns'
 import { readFileSync, writeFileSync, statSync } from 'fs'
-import { JsapiTicketCache } from './entities/jsapi-ticket-cache.entity'
-import { Attach } from './dto/attach.dto'
+import { JsapiTicketCache } from './entities/jsapi-ticket-cache.entity.js'
+import { Attach } from './dto/attach.dto.js'
 import { join } from 'path'
-import BigNumber from 'bignumber.js'
+import { BigNumber } from 'bignumber.js'
+import type {WechatPay} from './types.js'
 
 @Injectable()
 export class WeixinService {

+ 6 - 3
tsconfig.json

@@ -1,15 +1,18 @@
 {
   "compilerOptions": {
-    "module": "commonjs",
+    "target": "es2021",
+    "module": "node16",
+    "moduleResolution": "node16",
+    "esModuleInterop": true,
+    "resolveJsonModule": true,
     "declaration": true,
     "removeComments": true,
     "emitDecoratorMetadata": true,
     "experimentalDecorators": true,
-    "target": "es2017",
     "sourceMap": true,
     "outDir": "./dist",
     "baseUrl": "./",
-    "incremental": true,
+    "incremental": true
   },
   "exclude": ["node_modules", "dist"]
 }

ファイルの差分が大きいため隠しています
+ 442 - 264
yarn.lock


この差分においてかなりの量のファイルが変更されているため、一部のファイルを表示していません