@volare.finance/nestjs.plugins 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/aws/aws.config.d.ts +16 -0
  2. package/dist/aws/aws.config.js +3 -0
  3. package/dist/aws/aws.config.js.map +1 -0
  4. package/dist/aws/aws.module.d.ts +9 -0
  5. package/dist/aws/aws.module.js +28 -0
  6. package/dist/aws/aws.module.js.map +1 -0
  7. package/dist/aws/aws.service.d.ts +12 -0
  8. package/dist/aws/aws.service.js +66 -0
  9. package/dist/aws/aws.service.js.map +1 -0
  10. package/dist/aws/index.d.ts +7 -0
  11. package/dist/aws/index.js +11 -0
  12. package/dist/aws/index.js.map +1 -0
  13. package/dist/binance/binance.config.d.ts +10 -0
  14. package/dist/binance/binance.config.js +7 -0
  15. package/dist/binance/binance.config.js.map +1 -0
  16. package/dist/binance/binance.module.d.ts +9 -0
  17. package/dist/binance/binance.module.js +28 -0
  18. package/dist/binance/binance.module.js.map +1 -0
  19. package/dist/binance/binance.service.d.ts +46 -0
  20. package/dist/binance/binance.service.js +102 -0
  21. package/dist/binance/binance.service.js.map +1 -0
  22. package/dist/binance/index.d.ts +7 -0
  23. package/dist/binance/index.js +11 -0
  24. package/dist/binance/index.js.map +1 -0
  25. package/dist/coingecko/coingecko.config.d.ts +10 -0
  26. package/dist/coingecko/coingecko.config.js +7 -0
  27. package/dist/coingecko/coingecko.config.js.map +1 -0
  28. package/dist/coingecko/coingecko.module.d.ts +9 -0
  29. package/dist/coingecko/coingecko.module.js +28 -0
  30. package/dist/coingecko/coingecko.module.js.map +1 -0
  31. package/dist/coingecko/coingecko.service.d.ts +44 -0
  32. package/dist/coingecko/coingecko.service.js +46 -0
  33. package/dist/coingecko/coingecko.service.js.map +1 -0
  34. package/dist/coingecko/index.d.ts +7 -0
  35. package/dist/coingecko/index.js +11 -0
  36. package/dist/coingecko/index.js.map +1 -0
  37. package/dist/config/config.interface.d.ts +7 -0
  38. package/dist/config/config.interface.js +7 -0
  39. package/dist/config/config.interface.js.map +1 -0
  40. package/dist/config/config.module.d.ts +9 -0
  41. package/dist/config/config.module.js +25 -0
  42. package/dist/config/config.module.js.map +1 -0
  43. package/dist/config/config.service.d.ts +11 -0
  44. package/dist/config/config.service.js +26 -0
  45. package/dist/config/config.service.js.map +1 -0
  46. package/dist/config/index.d.ts +7 -0
  47. package/dist/config/index.js +11 -0
  48. package/dist/config/index.js.map +1 -0
  49. package/dist/index.d.ts +13 -0
  50. package/dist/index.js +17 -0
  51. package/dist/index.js.map +1 -0
  52. package/dist/lbank/index.d.ts +7 -0
  53. package/dist/lbank/index.js +11 -0
  54. package/dist/lbank/index.js.map +1 -0
  55. package/dist/lbank/lbank.config.d.ts +10 -0
  56. package/dist/lbank/lbank.config.js +7 -0
  57. package/dist/lbank/lbank.config.js.map +1 -0
  58. package/dist/lbank/lbank.module.d.ts +9 -0
  59. package/dist/lbank/lbank.module.js +28 -0
  60. package/dist/lbank/lbank.module.js.map +1 -0
  61. package/dist/lbank/lbank.service.d.ts +47 -0
  62. package/dist/lbank/lbank.service.js +93 -0
  63. package/dist/lbank/lbank.service.js.map +1 -0
  64. package/dist/logger/index.d.ts +7 -0
  65. package/dist/logger/index.js +11 -0
  66. package/dist/logger/index.js.map +1 -0
  67. package/dist/logger/logger.config.d.ts +17 -0
  68. package/dist/logger/logger.config.js +7 -0
  69. package/dist/logger/logger.config.js.map +1 -0
  70. package/dist/logger/logger.module.d.ts +9 -0
  71. package/dist/logger/logger.module.js +28 -0
  72. package/dist/logger/logger.module.js.map +1 -0
  73. package/dist/logger/logger.service.d.ts +19 -0
  74. package/dist/logger/logger.service.js +55 -0
  75. package/dist/logger/logger.service.js.map +1 -0
  76. package/dist/mexc/index.d.ts +7 -0
  77. package/dist/mexc/index.js +11 -0
  78. package/dist/mexc/index.js.map +1 -0
  79. package/dist/mexc/mexc.config.d.ts +10 -0
  80. package/dist/mexc/mexc.config.js +7 -0
  81. package/dist/mexc/mexc.config.js.map +1 -0
  82. package/dist/mexc/mexc.module.d.ts +9 -0
  83. package/dist/mexc/mexc.module.js +28 -0
  84. package/dist/mexc/mexc.module.js.map +1 -0
  85. package/dist/mexc/mexc.service.d.ts +53 -0
  86. package/dist/mexc/mexc.service.js +119 -0
  87. package/dist/mexc/mexc.service.js.map +1 -0
  88. package/dist/mongo/filter.dto.d.ts +10 -0
  89. package/dist/mongo/filter.dto.js +42 -0
  90. package/dist/mongo/filter.dto.js.map +1 -0
  91. package/dist/mongo/index.d.ts +6 -0
  92. package/dist/mongo/index.js +10 -0
  93. package/dist/mongo/index.js.map +1 -0
  94. package/dist/mongo/mongo.service.d.ts +10 -0
  95. package/dist/mongo/mongo.service.js +48 -0
  96. package/dist/mongo/mongo.service.js.map +1 -0
  97. package/dist/viabtc/index.d.ts +7 -0
  98. package/dist/viabtc/index.js +11 -0
  99. package/dist/viabtc/index.js.map +1 -0
  100. package/dist/viabtc/viabtc.config.d.ts +10 -0
  101. package/dist/viabtc/viabtc.config.js +7 -0
  102. package/dist/viabtc/viabtc.config.js.map +1 -0
  103. package/dist/viabtc/viabtc.module.d.ts +9 -0
  104. package/dist/viabtc/viabtc.module.js +28 -0
  105. package/dist/viabtc/viabtc.module.js.map +1 -0
  106. package/dist/viabtc/viabtc.service.d.ts +10 -0
  107. package/dist/viabtc/viabtc.service.js +41 -0
  108. package/dist/viabtc/viabtc.service.js.map +1 -0
  109. package/package.json +1 -1
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @file aws.config.ts
3
+ * @date 2023
4
+ */
5
+ import { ObjectCannedACL } from '@aws-sdk/client-s3';
6
+ export interface AwsConfig {
7
+ aws: {
8
+ enabled?: boolean;
9
+ region: string;
10
+ accessKeyId: string;
11
+ secretAccessKey: string;
12
+ bucket: string;
13
+ acl: ObjectCannedACL;
14
+ baseUrl: string;
15
+ };
16
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=aws.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.config.js","sourceRoot":"","sources":["../../src/aws/aws.config.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file aws.module.ts
3
+ * @date 2023
4
+ */
5
+ import { DynamicModule } from '@nestjs/common';
6
+ import { ConfigOptions } from '../config';
7
+ export declare class AwsModule {
8
+ static forRoot(options?: ConfigOptions): DynamicModule;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @file aws.module.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AwsModule = void 0;
8
+ const config_1 = require("../config");
9
+ const aws_service_1 = require("./aws.service");
10
+ class AwsModule {
11
+ static forRoot(options) {
12
+ return {
13
+ module: AwsModule,
14
+ imports: [config_1.ConfigModule.forRoot(options)],
15
+ exports: [aws_service_1.AwsService],
16
+ providers: [
17
+ {
18
+ provide: 'AwsConstant',
19
+ useFactory: (constant) => constant.config(),
20
+ inject: [config_1.ConfigService],
21
+ },
22
+ aws_service_1.AwsService,
23
+ ],
24
+ };
25
+ }
26
+ }
27
+ exports.AwsModule = AwsModule;
28
+ //# sourceMappingURL=aws.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.module.js","sourceRoot":"","sources":["../../src/aws/aws.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,sCAAuE;AAEvE,+CAA2C;AAE3C,MAAa,SAAS;IACpB,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,wBAAU,CAAC;YACrB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,aAAa;oBACtB,UAAU,EAAE,CAAC,QAAkC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAC1E,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,wBAAU;aACX;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,8BAgBC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @file aws.service.ts
3
+ * @date 2023
4
+ */
5
+ import { AwsConfig } from './aws.config';
6
+ export declare class AwsService {
7
+ private readonly constant;
8
+ private readonly S3;
9
+ constructor(constant: AwsConfig);
10
+ putObject(file: any, filename: string, mimetype?: string): Promise<string>;
11
+ getObjectToString(filename: string): Promise<string>;
12
+ }
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ /**
3
+ * @file aws.service.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.AwsService = void 0;
8
+ const tslib_1 = require("tslib");
9
+ const client_s3_1 = require("@aws-sdk/client-s3");
10
+ const common_1 = require("@nestjs/common");
11
+ let AwsService = class AwsService {
12
+ constructor(constant) {
13
+ var _a;
14
+ this.constant = constant;
15
+ if ((_a = constant.aws) === null || _a === void 0 ? void 0 : _a.enabled) {
16
+ this.S3 = new client_s3_1.S3({
17
+ region: constant.aws.region,
18
+ credentials: {
19
+ accessKeyId: constant.aws.accessKeyId,
20
+ secretAccessKey: constant.aws.secretAccessKey,
21
+ },
22
+ });
23
+ }
24
+ }
25
+ putObject(file, filename, mimetype) {
26
+ var _a;
27
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
28
+ if (!((_a = this.constant.aws) === null || _a === void 0 ? void 0 : _a.enabled)) {
29
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.NOT_IMPLEMENTED);
30
+ }
31
+ const result = yield this.S3.putObject({
32
+ Key: filename,
33
+ Body: file,
34
+ ContentType: mimetype,
35
+ Bucket: this.constant.aws.bucket,
36
+ ACL: this.constant.aws.acl,
37
+ });
38
+ if (result.$metadata.httpStatusCode === 200) {
39
+ return this.constant.aws.baseUrl + '/' + filename;
40
+ }
41
+ throw new common_1.HttpException('Put object failed', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
42
+ });
43
+ }
44
+ getObjectToString(filename) {
45
+ var _a;
46
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
+ if (!((_a = this.constant.aws) === null || _a === void 0 ? void 0 : _a.enabled)) {
48
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.NOT_IMPLEMENTED);
49
+ }
50
+ const result = yield this.S3.getObject({
51
+ Key: filename,
52
+ Bucket: this.constant.aws.bucket,
53
+ });
54
+ if (result.$metadata.httpStatusCode === 200 && result.Body) {
55
+ return result.Body.transformToString('utf-8');
56
+ }
57
+ throw new common_1.HttpException('Get object failed', common_1.HttpStatus.INTERNAL_SERVER_ERROR);
58
+ });
59
+ }
60
+ };
61
+ AwsService = tslib_1.__decorate([
62
+ (0, common_1.Injectable)(),
63
+ tslib_1.__param(0, (0, common_1.Inject)('AwsConstant'))
64
+ ], AwsService);
65
+ exports.AwsService = AwsService;
66
+ //# sourceMappingURL=aws.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws.service.js","sourceRoot":"","sources":["../../src/aws/aws.service.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,kDAAwC;AACxC,2CAA+E;AAIxE,IAAM,UAAU,GAAhB,MAAM,UAAU;IAKrB,YAAoD,QAAmB;;QAAnB,aAAQ,GAAR,QAAQ,CAAW;QACrE,IAAI,MAAA,QAAQ,CAAC,GAAG,0CAAE,OAAO,EAAE;YACzB,IAAI,CAAC,EAAE,GAAG,IAAI,cAAE,CAAC;gBACf,MAAM,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM;gBAC3B,WAAW,EAAE;oBACX,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,WAAW;oBACrC,eAAe,EAAE,QAAQ,CAAC,GAAG,CAAC,eAAe;iBAC9C;aACF,CAAC,CAAC;SACJ;IACH,CAAC;IAEK,SAAS,CAAC,IAAS,EAAE,QAAgB,EAAE,QAAiB;;;YAC5D,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,OAAO,CAAA,EAAE;gBAC/B,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;aACtF;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACrC,GAAG,EAAE,QAAQ;gBACb,IAAI,EAAE,IAAI;gBACV,WAAW,EAAE,QAAQ;gBACrB,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;gBAChC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG;aAC3B,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,EAAE;gBAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC;aACnD;YACD,MAAM,IAAI,sBAAa,CAAC,mBAAmB,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;;KAChF;IAEK,iBAAiB,CAAC,QAAgB;;;YACtC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,OAAO,CAAA,EAAE;gBAC/B,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,eAAe,CAAC,CAAC;aACtF;YACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;gBACrC,GAAG,EAAE,QAAQ;gBACb,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM;aACjC,CAAC,CAAC;YACH,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE;gBAC1D,OAAO,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;aAC/C;YACD,MAAM,IAAI,sBAAa,CAAC,mBAAmB,EAAE,mBAAU,CAAC,qBAAqB,CAAC,CAAC;;KAChF;CACF,CAAA;AA/CY,UAAU;IADtB,IAAA,mBAAU,GAAE;IAME,mBAAA,IAAA,eAAM,EAAC,aAAa,CAAC,CAAA;GALvB,UAAU,CA+CtB;AA/CY,gCAAU"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file index.ts
3
+ * @date 2023
4
+ */
5
+ export * from './aws.config';
6
+ export * from './aws.module';
7
+ export * from './aws.service';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * @file index.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ tslib_1.__exportStar(require("./aws.config"), exports);
9
+ tslib_1.__exportStar(require("./aws.module"), exports);
10
+ tslib_1.__exportStar(require("./aws.service"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aws/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,uDAA6B;AAC7B,uDAA6B;AAC7B,wDAA8B"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @file binance.config.ts
3
+ * @date 2023
4
+ */
5
+ export interface BinanceConfig {
6
+ binance: {
7
+ enabled: boolean;
8
+ url?: string;
9
+ };
10
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file binance.config.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=binance.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binance.config.js","sourceRoot":"","sources":["../../src/binance/binance.config.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file binance.module.ts
3
+ * @date 2023
4
+ */
5
+ import { DynamicModule } from '@nestjs/common';
6
+ import { ConfigOptions } from '../config';
7
+ export declare class BinanceModule {
8
+ static forRoot(options?: ConfigOptions): DynamicModule;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @file binance.module.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.BinanceModule = void 0;
8
+ const config_1 = require("../config");
9
+ const binance_service_1 = require("./binance.service");
10
+ class BinanceModule {
11
+ static forRoot(options) {
12
+ return {
13
+ module: BinanceModule,
14
+ imports: [config_1.ConfigModule.forRoot(options)],
15
+ exports: [binance_service_1.BinanceService],
16
+ providers: [
17
+ {
18
+ provide: 'BinanceConstant',
19
+ useFactory: (constant) => constant.config(),
20
+ inject: [config_1.ConfigService],
21
+ },
22
+ binance_service_1.BinanceService,
23
+ ],
24
+ };
25
+ }
26
+ }
27
+ exports.BinanceModule = BinanceModule;
28
+ //# sourceMappingURL=binance.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binance.module.js","sourceRoot":"","sources":["../../src/binance/binance.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,sCAAuE;AAEvE,uDAAmD;AAEnD,MAAa,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,gCAAc,CAAC;YACzB,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,iBAAiB;oBAC1B,UAAU,EAAE,CAAC,QAAsC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAC9E,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,gCAAc;aACf;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,sCAgBC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @file binance.service.ts
3
+ * @date 2023
4
+ * @see https://binance-docs.github.io/apidocs/
5
+ */
6
+ import { BinanceConfig } from './binance.config';
7
+ export declare class BinanceService {
8
+ private readonly constant;
9
+ constructor(constant: BinanceConfig);
10
+ /**
11
+ * Market Data - Current Average Price
12
+ * @param symbol e.g. BTCUSDT
13
+ * @see https://binance-docs.github.io/apidocs/spot/en/#current-average-price
14
+ */
15
+ currentAveragePrice(symbol: string): Promise<{
16
+ mins: number;
17
+ price: string;
18
+ }>;
19
+ /**
20
+ * Market Data - 24hr Ticker Price Change Statistics
21
+ * @param symbol e.g. BTCUSDT
22
+ * @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
23
+ */
24
+ tickerPrice24H(symbol: string): Promise<any>;
25
+ /**
26
+ * Market Data - Kline/Candlestick Data
27
+ * @param symbol e.g. BTCUSDT
28
+ * @param interval e.g. 1d
29
+ * @param startTime e.g. 1696089600000
30
+ * @param endTime e.g. 1698918180000
31
+ * @param limit e.g. 500
32
+ * @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
33
+ */
34
+ marketKlines(symbol: string, interval: '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '6h' | '8h' | '12h' | '1d' | '3d' | '1w' | '1M', startTime?: string | number, endTime?: string | number, limit?: number): Promise<[number, string, string, string, string, string, number, string, number, string, string, string][]>;
35
+ /**
36
+ * Market Data - Order Book
37
+ * @param symbol e.g. BTCUSDT
38
+ * @param limit e.g. 500
39
+ * @see https://binance-docs.github.io/apidocs/spot/en/#order-book
40
+ */
41
+ orderBook(symbol: string, limit?: number): Promise<{
42
+ lastUpdateId: number;
43
+ bids: [string, string][];
44
+ asks: [string, string][];
45
+ }>;
46
+ }
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ /**
3
+ * @file binance.service.ts
4
+ * @date 2023
5
+ * @see https://binance-docs.github.io/apidocs/
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.BinanceService = void 0;
9
+ const tslib_1 = require("tslib");
10
+ const common_1 = require("@nestjs/common");
11
+ const axios_1 = tslib_1.__importDefault(require("axios"));
12
+ let BinanceService = class BinanceService {
13
+ constructor(constant) {
14
+ this.constant = constant;
15
+ // do nothing
16
+ }
17
+ /**
18
+ * Market Data - Current Average Price
19
+ * @param symbol e.g. BTCUSDT
20
+ * @see https://binance-docs.github.io/apidocs/spot/en/#current-average-price
21
+ */
22
+ currentAveragePrice(symbol) {
23
+ var _a;
24
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
26
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
27
+ }
28
+ return (yield (0, axios_1.default)({
29
+ method: 'GET',
30
+ url: this.constant.binance.url + '/api/v3/avgPrice',
31
+ params: { symbol },
32
+ })).data;
33
+ });
34
+ }
35
+ /**
36
+ * Market Data - 24hr Ticker Price Change Statistics
37
+ * @param symbol e.g. BTCUSDT
38
+ * @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
39
+ */
40
+ tickerPrice24H(symbol) {
41
+ var _a;
42
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
43
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
44
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
45
+ }
46
+ return (yield (0, axios_1.default)({
47
+ method: 'GET',
48
+ url: this.constant.binance.url + '/api/v3/ticker/24hr',
49
+ params: {
50
+ symbol,
51
+ },
52
+ })).data;
53
+ });
54
+ }
55
+ /**
56
+ * Market Data - Kline/Candlestick Data
57
+ * @param symbol e.g. BTCUSDT
58
+ * @param interval e.g. 1d
59
+ * @param startTime e.g. 1696089600000
60
+ * @param endTime e.g. 1698918180000
61
+ * @param limit e.g. 500
62
+ * @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
63
+ */
64
+ marketKlines(symbol, interval, startTime, endTime, limit) {
65
+ var _a;
66
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
67
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
68
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
69
+ }
70
+ return (yield (0, axios_1.default)({
71
+ method: 'GET',
72
+ url: this.constant.binance.url + '/api/v3/klines',
73
+ params: { symbol, interval, startTime, endTime, limit },
74
+ })).data;
75
+ });
76
+ }
77
+ /**
78
+ * Market Data - Order Book
79
+ * @param symbol e.g. BTCUSDT
80
+ * @param limit e.g. 500
81
+ * @see https://binance-docs.github.io/apidocs/spot/en/#order-book
82
+ */
83
+ orderBook(symbol, limit) {
84
+ var _a;
85
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
86
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
87
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
88
+ }
89
+ return (yield (0, axios_1.default)({
90
+ method: 'GET',
91
+ url: this.constant.binance.url + '/api/v3/depth',
92
+ params: { symbol, limit },
93
+ })).data;
94
+ });
95
+ }
96
+ };
97
+ BinanceService = tslib_1.__decorate([
98
+ (0, common_1.Injectable)(),
99
+ tslib_1.__param(0, (0, common_1.Inject)('BinanceConstant'))
100
+ ], BinanceService);
101
+ exports.BinanceService = BinanceService;
102
+ //# sourceMappingURL=binance.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binance.service.js","sourceRoot":"","sources":["../../src/binance/binance.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2CAA+E;AAC/E,0DAA0B;AAInB,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAAwD,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;QAC7E,aAAa;IACf,CAAC;IAED;;;;OAIG;IACG,mBAAmB,CAAC,MAAc;;;YACtC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,kBAAkB;gBACnD,MAAM,EAAE,EAAE,MAAM,EAAE;aACnB,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;OAIG;IACG,cAAc,CAAC,MAAc;;;YACjC,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,qBAAqB;gBACtD,MAAM,EAAE;oBACN,MAAM;iBACP;aACF,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;;;;;OAQG;IACG,YAAY,CAChB,MAAc,EACd,QAAmH,EACnH,SAA2B,EAC3B,OAAyB,EACzB,KAAc;;;YAEd,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,gBAAgB;gBACjD,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;aACxD,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;IAED;;;;;OAKG;IACG,SAAS,CAAC,MAAc,EAAE,KAAc;;;YAC5C,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,0CAAE,OAAO,CAAA,EAAE;gBACnC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,OAAO,CACL,MAAM,IAAA,eAAK,EAAC;gBACV,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,eAAe;gBAChD,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;aAC1B,CAAC,CACH,CAAC,IAAI,CAAC;;KACR;CACF,CAAA;AAzFY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAEE,mBAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;GAD3B,cAAc,CAyF1B;AAzFY,wCAAc"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file index.ts
3
+ * @date 2023
4
+ */
5
+ export * from './binance.config';
6
+ export * from './binance.module';
7
+ export * from './binance.service';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * @file index.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ tslib_1.__exportStar(require("./binance.config"), exports);
9
+ tslib_1.__exportStar(require("./binance.module"), exports);
10
+ tslib_1.__exportStar(require("./binance.service"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/binance/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAiC;AACjC,2DAAiC;AACjC,4DAAkC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @file coingecko.config.ts
3
+ * @date 2023
4
+ */
5
+ export interface CoinGeckoConfig {
6
+ coingecko: {
7
+ enabled: boolean;
8
+ url?: string;
9
+ };
10
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file coingecko.config.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=coingecko.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coingecko.config.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.config.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file coingecko.module.ts
3
+ * @date 2023
4
+ */
5
+ import { DynamicModule } from '@nestjs/common';
6
+ import { ConfigOptions } from '../config';
7
+ export declare class CoinGeckoModule {
8
+ static forRoot(options?: ConfigOptions): DynamicModule;
9
+ }
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * @file coingecko.module.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.CoinGeckoModule = void 0;
8
+ const config_1 = require("../config");
9
+ const coingecko_service_1 = require("./coingecko.service");
10
+ class CoinGeckoModule {
11
+ static forRoot(options) {
12
+ return {
13
+ module: CoinGeckoModule,
14
+ imports: [config_1.ConfigModule.forRoot(options)],
15
+ exports: [coingecko_service_1.CoinGeckoService],
16
+ providers: [
17
+ {
18
+ provide: 'CoinGeckoConstant',
19
+ useFactory: (constant) => constant.config(),
20
+ inject: [config_1.ConfigService],
21
+ },
22
+ coingecko_service_1.CoinGeckoService,
23
+ ],
24
+ };
25
+ }
26
+ }
27
+ exports.CoinGeckoModule = CoinGeckoModule;
28
+ //# sourceMappingURL=coingecko.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coingecko.module.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.module.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,sCAAuE;AACvE,2DAAuD;AAEvD,MAAa,eAAe;IAC1B,MAAM,CAAC,OAAO,CAAC,OAAuB;QACpC,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,CAAC,qBAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,OAAO,EAAE,CAAC,oCAAgB,CAAC;YAC3B,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,mBAAmB;oBAC5B,UAAU,EAAE,CAAC,QAAwC,EAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;oBAChF,MAAM,EAAE,CAAC,sBAAa,CAAC;iBACxB;gBACD,oCAAgB;aACjB;SACF,CAAC;IACJ,CAAC;CACF;AAhBD,0CAgBC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @file coingecko.service.ts
3
+ * @date 2023
4
+ * @see https://www.coingecko.com/api/documentation
5
+ */
6
+ import { CoinGeckoConfig } from './coingecko.config';
7
+ export declare class CoinGeckoService {
8
+ private readonly constant;
9
+ constructor(constant: CoinGeckoConfig);
10
+ /**
11
+ * supported coins price, market cap, volume, and market related data
12
+ * @param ids e.g. bitcoin
13
+ * @param vs_currency e.g. usd, eur,jpy, etc.
14
+ * @see https://www.coingecko.com/api/documentation
15
+ */
16
+ coinMarket(ids: string, vs_currency?: string): Promise<{
17
+ id: string;
18
+ symbol: string;
19
+ name: string;
20
+ image: string;
21
+ current_price: number;
22
+ market_cap: number;
23
+ market_cap_rank: number;
24
+ fully_diluted_valuation: number;
25
+ total_volume: number;
26
+ high_24h: number;
27
+ low_24h: number;
28
+ price_change_24h: number;
29
+ price_change_percentage_24h: number;
30
+ market_cap_change_24h: number;
31
+ market_cap_change_percentage_24h: number;
32
+ circulating_supply: number;
33
+ total_supply: number;
34
+ max_supply: number;
35
+ ath: number;
36
+ ath_change_percentage: number;
37
+ ath_date: string;
38
+ atl: number;
39
+ atl_change_percentage: number;
40
+ atl_date: string;
41
+ roi: number;
42
+ last_updated: string;
43
+ }>;
44
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * @file coingecko.service.ts
4
+ * @date 2023
5
+ * @see https://www.coingecko.com/api/documentation
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CoinGeckoService = void 0;
9
+ const tslib_1 = require("tslib");
10
+ const common_1 = require("@nestjs/common");
11
+ const axios_1 = tslib_1.__importDefault(require("axios"));
12
+ let CoinGeckoService = class CoinGeckoService {
13
+ constructor(constant) {
14
+ this.constant = constant;
15
+ // do nothing
16
+ }
17
+ /**
18
+ * supported coins price, market cap, volume, and market related data
19
+ * @param ids e.g. bitcoin
20
+ * @param vs_currency e.g. usd, eur,jpy, etc.
21
+ * @see https://www.coingecko.com/api/documentation
22
+ */
23
+ coinMarket(ids, vs_currency = 'usd') {
24
+ var _a;
25
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
26
+ if (!((_a = this.constant.coingecko) === null || _a === void 0 ? void 0 : _a.enabled)) {
27
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
28
+ }
29
+ const response = yield (0, axios_1.default)({
30
+ method: 'GET',
31
+ url: this.constant.coingecko.url + '/api/v3/coins/markets',
32
+ params: { ids, vs_currency },
33
+ });
34
+ if (response.data.length) {
35
+ return response.data[0];
36
+ }
37
+ throw new common_1.HttpException(response.statusText, response.status);
38
+ });
39
+ }
40
+ };
41
+ CoinGeckoService = tslib_1.__decorate([
42
+ (0, common_1.Injectable)(),
43
+ tslib_1.__param(0, (0, common_1.Inject)('CoinGeckoConstant'))
44
+ ], CoinGeckoService);
45
+ exports.CoinGeckoService = CoinGeckoService;
46
+ //# sourceMappingURL=coingecko.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coingecko.service.js","sourceRoot":"","sources":["../../src/coingecko/coingecko.service.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;AAEH,2CAA+E;AAC/E,0DAA0B;AAInB,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA0D,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;QACjF,aAAa;IACf,CAAC;IAED;;;;;OAKG;IACG,UAAU,CACd,GAAW,EACX,WAAW,GAAG,KAAK;;;YA6BnB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,SAAS,0CAAE,OAAO,CAAA,EAAE;gBACrC,MAAM,IAAI,sBAAa,CAAC,+BAA+B,EAAE,mBAAU,CAAC,WAAW,CAAC,CAAC;aAClF;YACD,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;gBAC3B,MAAM,EAAE,KAAK;gBACb,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,uBAAuB;gBAC1D,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE;aAC7B,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;gBACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACzB;YACD,MAAM,IAAI,sBAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;KAC/D;CACF,CAAA;AAvDY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAEE,mBAAA,IAAA,eAAM,EAAC,mBAAmB,CAAC,CAAA;GAD7B,gBAAgB,CAuD5B;AAvDY,4CAAgB"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file index.ts
3
+ * @date 2023
4
+ */
5
+ export * from './coingecko.config';
6
+ export * from './coingecko.module';
7
+ export * from './coingecko.service';
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ /**
3
+ * @file index.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const tslib_1 = require("tslib");
8
+ tslib_1.__exportStar(require("./coingecko.config"), exports);
9
+ tslib_1.__exportStar(require("./coingecko.module"), exports);
10
+ tslib_1.__exportStar(require("./coingecko.service"), exports);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coingecko/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,6DAAmC;AACnC,6DAAmC;AACnC,8DAAoC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @file config.interface.ts
3
+ * @date 2023
4
+ */
5
+ export interface ConfigOptions {
6
+ path: string;
7
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * @file config.interface.ts
4
+ * @date 2023
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=config.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.interface.js","sourceRoot":"","sources":["../../src/config/config.interface.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @file config.module.ts
3
+ * @date 2023
4
+ */
5
+ import { DynamicModule } from '@nestjs/common';
6
+ import { ConfigOptions } from './config.interface';
7
+ export declare class ConfigModule {
8
+ static forRoot(options?: ConfigOptions): DynamicModule;
9
+ }