@volare.finance/nestjs.plugins 1.0.2 → 1.0.5

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 +69 -0
  20. package/dist/binance/binance.service.js +84 -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 +12 -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 +45 -0
  32. package/dist/coingecko/coingecko.service.js +49 -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 +48 -0
  62. package/dist/lbank/lbank.service.js +90 -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 +73 -0
  86. package/dist/mexc/mexc.service.js +100 -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,69 @@
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
+ private readonly instance;
10
+ constructor(constant: BinanceConfig);
11
+ /**
12
+ * Market Data - Current Average Price
13
+ * @param symbol e.g. BTCUSDT
14
+ * @see https://binance-docs.github.io/apidocs/spot/en/#current-average-price
15
+ */
16
+ currentAveragePrice(symbol: string): Promise<{
17
+ mins: number;
18
+ price: string;
19
+ }>;
20
+ /**
21
+ * Market Data - 24hr Ticker Price Change Statistics
22
+ * @param symbol e.g. BTCUSDT
23
+ * @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
24
+ */
25
+ tickerPrice24H(symbol: string): Promise<{
26
+ symbol: string;
27
+ priceChange: string;
28
+ priceChangePercent: string;
29
+ weightedAvgPrice: string;
30
+ prevClosePrice: string;
31
+ lastPrice: string;
32
+ lastQty: string;
33
+ bidPrice: string;
34
+ bidQty: string;
35
+ askPrice: string;
36
+ askQty: string;
37
+ openPrice: string;
38
+ highPrice: string;
39
+ lowPrice: string;
40
+ volume: string;
41
+ quoteVolume: string;
42
+ openTime: number;
43
+ closeTime: number;
44
+ firstId: number;
45
+ lastId: number;
46
+ count: number;
47
+ }>;
48
+ /**
49
+ * Market Data - Kline/Candlestick Data
50
+ * @param symbol e.g. BTCUSDT
51
+ * @param interval e.g. 1d
52
+ * @param startTime e.g. 1696089600000
53
+ * @param endTime e.g. 1698918180000
54
+ * @param limit e.g. 500
55
+ * @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
56
+ */
57
+ 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][]>;
58
+ /**
59
+ * Market Data - Order Book
60
+ * @param symbol e.g. BTCUSDT
61
+ * @param limit e.g. 500
62
+ * @see https://binance-docs.github.io/apidocs/spot/en/#order-book
63
+ */
64
+ orderBook(symbol: string, limit?: number): Promise<{
65
+ lastUpdateId: number;
66
+ bids: [string, string][];
67
+ asks: [string, string][];
68
+ }>;
69
+ }
@@ -0,0 +1,84 @@
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
+ this.instance = axios_1.default.create({ baseURL: this.constant.binance.url });
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 this.instance.get('/api/v3/avgPrice', { params: { symbol } })).data;
29
+ });
30
+ }
31
+ /**
32
+ * Market Data - 24hr Ticker Price Change Statistics
33
+ * @param symbol e.g. BTCUSDT
34
+ * @see https://binance-docs.github.io/apidocs/spot/en/#24hr-ticker-price-change-statistics
35
+ */
36
+ tickerPrice24H(symbol) {
37
+ var _a;
38
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
39
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
40
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
41
+ }
42
+ return (yield this.instance.get('/api/v3/ticker/24hr', { params: { symbol } })).data;
43
+ });
44
+ }
45
+ /**
46
+ * Market Data - Kline/Candlestick Data
47
+ * @param symbol e.g. BTCUSDT
48
+ * @param interval e.g. 1d
49
+ * @param startTime e.g. 1696089600000
50
+ * @param endTime e.g. 1698918180000
51
+ * @param limit e.g. 500
52
+ * @see https://binance-docs.github.io/apidocs/spot/en/#kline-candlestick-data
53
+ */
54
+ marketKlines(symbol, interval, startTime, endTime, limit) {
55
+ var _a;
56
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
57
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
58
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
59
+ }
60
+ return (yield this.instance.get('/api/v3/klines', { params: { symbol, interval, startTime, endTime, limit } })).data;
61
+ });
62
+ }
63
+ /**
64
+ * Market Data - Order Book
65
+ * @param symbol e.g. BTCUSDT
66
+ * @param limit e.g. 500
67
+ * @see https://binance-docs.github.io/apidocs/spot/en/#order-book
68
+ */
69
+ orderBook(symbol, limit) {
70
+ var _a;
71
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
72
+ if (!((_a = this.constant.binance) === null || _a === void 0 ? void 0 : _a.enabled)) {
73
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
74
+ }
75
+ return (yield this.instance.get('/api/v3/depth', { params: { symbol, limit } })).data;
76
+ });
77
+ }
78
+ };
79
+ BinanceService = tslib_1.__decorate([
80
+ (0, common_1.Injectable)(),
81
+ tslib_1.__param(0, (0, common_1.Inject)('BinanceConstant'))
82
+ ], BinanceService);
83
+ exports.BinanceService = BinanceService;
84
+ //# 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,0DAA6C;AAItC,IAAM,cAAc,GAApB,MAAM,cAAc;IAGzB,YAAwD,QAAuB;QAAvB,aAAQ,GAAR,QAAQ,CAAe;QAC7E,IAAI,CAAC,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACvE,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,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;KACnF;IAED;;;;OAIG;IACG,cAAc,CAAC,MAAc;;;YAuBjC,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,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;KACtF;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,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;KACtH;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,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;;KACvF;CACF,CAAA;AAvFY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAIE,mBAAA,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAA;GAH3B,cAAc,CAuF1B;AAvFY,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,12 @@
1
+ /**
2
+ * @file coingecko.config.ts
3
+ * @date 2023
4
+ */
5
+ export interface CoinGeckoConfig {
6
+ coingecko: {
7
+ enabled: boolean;
8
+ url?: string;
9
+ apiKey?: string;
10
+ isPro?: boolean;
11
+ };
12
+ }
@@ -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,45 @@
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
+ private readonly instance;
10
+ constructor(constant: CoinGeckoConfig);
11
+ /**
12
+ * supported coins price, market cap, volume, and market related data
13
+ * @param ids e.g. bitcoin
14
+ * @param vs_currency e.g. usd, eur,jpy, etc.
15
+ * @see https://www.coingecko.com/api/documentation
16
+ */
17
+ coinMarket(ids: string, vs_currency?: string): Promise<{
18
+ id: string;
19
+ symbol: string;
20
+ name: string;
21
+ image: string;
22
+ current_price: number;
23
+ market_cap: number;
24
+ market_cap_rank: number;
25
+ fully_diluted_valuation: number;
26
+ total_volume: number;
27
+ high_24h: number;
28
+ low_24h: number;
29
+ price_change_24h: number;
30
+ price_change_percentage_24h: number;
31
+ market_cap_change_24h: number;
32
+ market_cap_change_percentage_24h: number;
33
+ circulating_supply: number;
34
+ total_supply: number;
35
+ max_supply: number;
36
+ ath: number;
37
+ ath_change_percentage: number;
38
+ ath_date: string;
39
+ atl: number;
40
+ atl_change_percentage: number;
41
+ atl_date: string;
42
+ roi: number;
43
+ last_updated: string;
44
+ }>;
45
+ }
@@ -0,0 +1,49 @@
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
+ const config = { baseURL: this.constant.coingecko.url };
16
+ if (this.constant.coingecko.apiKey) {
17
+ config.params = { [this.constant.coingecko.isPro ? 'x_cg_pro_api_key' : 'x_cg_api_key']: this.constant.coingecko.apiKey };
18
+ }
19
+ this.instance = axios_1.default.create(config);
20
+ }
21
+ /**
22
+ * supported coins price, market cap, volume, and market related data
23
+ * @param ids e.g. bitcoin
24
+ * @param vs_currency e.g. usd, eur,jpy, etc.
25
+ * @see https://www.coingecko.com/api/documentation
26
+ */
27
+ coinMarket(ids, vs_currency = 'usd') {
28
+ var _a;
29
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
30
+ if (!((_a = this.constant.coingecko) === null || _a === void 0 ? void 0 : _a.enabled)) {
31
+ throw new common_1.HttpException('This feature is not supported', common_1.HttpStatus.BAD_REQUEST);
32
+ }
33
+ const response = yield this.instance.get('/api/v3/coins/markets', { params: { ids, vs_currency } });
34
+ if (response.status === common_1.HttpStatus.OK) {
35
+ if (response.data.length) {
36
+ return response.data[0];
37
+ }
38
+ throw new common_1.HttpException('No Data', common_1.HttpStatus.NOT_FOUND);
39
+ }
40
+ throw new common_1.HttpException(response.statusText, response.status);
41
+ });
42
+ }
43
+ };
44
+ CoinGeckoService = tslib_1.__decorate([
45
+ (0, common_1.Injectable)(),
46
+ tslib_1.__param(0, (0, common_1.Inject)('CoinGeckoConstant'))
47
+ ], CoinGeckoService);
48
+ exports.CoinGeckoService = CoinGeckoService;
49
+ //# 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,0DAAkE;AAI3D,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAG3B,YAA0D,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;QACjF,MAAM,MAAM,GAAwB,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC7E,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;YAClC,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;SAC3H;QACD,IAAI,CAAC,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACvC,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,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACpG,IAAI,QAAQ,CAAC,MAAM,KAAK,mBAAU,CAAC,EAAE,EAAE;gBACrC,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE;oBACxB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACzB;gBACD,MAAM,IAAI,sBAAa,CAAC,SAAS,EAAE,mBAAU,CAAC,SAAS,CAAC,CAAC;aAC1D;YACD,MAAM,IAAI,sBAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;;KAC/D;CACF,CAAA;AA5DY,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;IAIE,mBAAA,IAAA,eAAM,EAAC,mBAAmB,CAAC,CAAA;GAH7B,gBAAgB,CA4D5B;AA5DY,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"}