@levrbet/shared 0.1.61 → 0.1.62

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.
@@ -13,16 +13,16 @@ exports.allUrls = {
13
13
  relayer: "https://relayer.dev.levr.bet",
14
14
  indexers: {
15
15
  [types_1.LevrChain.AVAX_MAINNET]: [
16
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "http://localhost:8083" },
16
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "http://localhost:8083" },
17
17
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "http://localhost:8086" },
18
18
  ],
19
19
  [types_1.LevrChain.FUJI_TESTNET]: [
20
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "http://localhost:8084" },
20
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "http://localhost:8084" },
21
21
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "http://localhost:8087" },
22
22
  ],
23
23
  [types_1.LevrChain.MONAD_TESTNET]: [
24
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "http://localhost:8085" },
25
- { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "http://localhost:8088" },
24
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.dev.hyperindex.xyz/a07fcc5/v1/graphql" },
25
+ { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://levrbet.squids.live/levr-v1-indexer-dev@v1/api/graphql" },
26
26
  ],
27
27
  },
28
28
  },
@@ -34,15 +34,15 @@ exports.allUrls = {
34
34
  relayer: "http://levr-v1-openzeppeline-1018367603.ap-south-1.elb.amazonaws.com",
35
35
  indexers: {
36
36
  [types_1.LevrChain.AVAX_MAINNET]: [
37
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.dev.levr.app" },
37
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.dev.levr.app" },
38
38
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.dev.levr.app" },
39
39
  ],
40
40
  [types_1.LevrChain.FUJI_TESTNET]: [
41
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.dev.levr.app" },
41
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.dev.levr.app" },
42
42
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.dev.levr.app" },
43
43
  ],
44
44
  [types_1.LevrChain.MONAD_TESTNET]: [
45
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.dev.levr.app" },
45
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.dev.hyperindex.xyz/a07fcc5/v1/graphql" },
46
46
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://levrbet.squids.live/levr-v1-indexer-dev@v1/api/graphql" },
47
47
  ],
48
48
  },
@@ -55,15 +55,15 @@ exports.allUrls = {
55
55
  relayer: "https://relayer.staging.levr.bet",
56
56
  indexers: {
57
57
  [types_1.LevrChain.AVAX_MAINNET]: [
58
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.staging.levr.app" },
58
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.staging.levr.app" },
59
59
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.staging.levr.app" },
60
60
  ],
61
61
  [types_1.LevrChain.FUJI_TESTNET]: [
62
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.staging.levr.app" },
62
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.staging.levr.app" },
63
63
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.staging.levr.app" },
64
64
  ],
65
65
  [types_1.LevrChain.MONAD_TESTNET]: [
66
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.staging.levr.app" },
66
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.staging.levr.app" },
67
67
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.staging.levr.app" },
68
68
  ],
69
69
  },
@@ -76,15 +76,15 @@ exports.allUrls = {
76
76
  relayer: "https://relayer.dev.levr.app",
77
77
  indexers: {
78
78
  [types_1.LevrChain.AVAX_MAINNET]: [
79
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.levr.app" },
79
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.levr.app" },
80
80
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.levr.app" },
81
81
  ],
82
82
  [types_1.LevrChain.FUJI_TESTNET]: [
83
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.levr.app" },
83
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.levr.app" },
84
84
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.levr.app" },
85
85
  ],
86
86
  [types_1.LevrChain.MONAD_TESTNET]: [
87
- { type: indexers_types_1.LevrIndexer.SENTIO, url: "https://indexer.levr.app" },
87
+ { type: indexers_types_1.LevrIndexer.ENVIO, url: "https://indexer.levr.app" },
88
88
  { type: indexers_types_1.LevrIndexer.SUBSQUID, url: "https://indexer.levr.app" },
89
89
  ],
90
90
  },
@@ -1 +1 @@
1
- {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/config/urls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"urls.js","sourceRoot":"","sources":["../../../src/core/config/urls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const HEALTH_CHECK_QUERY = "\n query {\n LevrFullTimeMarket_PositionOpened(limit: 1) {\n id\n }\n }\n";
2
+ export declare function checkEnvioGraphQlHealth(url: string, variables?: Record<string, any>, signal?: AbortSignal): Promise<boolean>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.HEALTH_CHECK_QUERY = void 0;
7
+ exports.checkEnvioGraphQlHealth = checkEnvioGraphQlHealth;
8
+ const node_fetch_1 = __importDefault(require("node-fetch"));
9
+ // GraphQL query to check if the endpoint is healthy by requesting LevrFullTimeMarket_PositionOpened
10
+ exports.HEALTH_CHECK_QUERY = `
11
+ query {
12
+ LevrFullTimeMarket_PositionOpened(limit: 1) {
13
+ id
14
+ }
15
+ }
16
+ `;
17
+ async function checkEnvioGraphQlHealth(url, variables, signal) {
18
+ const response = await (0, node_fetch_1.default)(url, {
19
+ method: 'POST',
20
+ headers: { 'Content-Type': 'application/json' },
21
+ body: JSON.stringify({
22
+ query: exports.HEALTH_CHECK_QUERY,
23
+ variables,
24
+ }),
25
+ // forward AbortSignal so the request can be aborted by caller
26
+ signal,
27
+ });
28
+ return response.ok === true;
29
+ }
30
+ //# sourceMappingURL=envio.test.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envio.test.query.js","sourceRoot":"","sources":["../../../src/core/indexers/envio.test.query.ts"],"names":[],"mappings":";;;;;;AAWA,0DAiBC;AA5BD,4DAA+B;AAE/B,oGAAoG;AACvF,QAAA,kBAAkB,GAAG;;;;;;CAMjC,CAAC;AAEK,KAAK,UAAU,uBAAuB,CAC3C,GAAW,EACX,SAA+B,EAC/B,MAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;QAChC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,KAAK,EAAE,0BAAkB;YACzB,SAAS;SACV,CAAC;QACF,8DAA8D;QAC9D,MAAM;KACP,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAA;AAC7B,CAAC"}
@@ -13,25 +13,37 @@ exports.indexersService = void 0;
13
13
  const ms_1 = __importDefault(require("ms"));
14
14
  const typescript_memoize_1 = require("typescript-memoize");
15
15
  const _1 = require("../.");
16
+ const indexers_types_1 = require("../types/indexers.types");
17
+ const subsquid_test_query_1 = require("./subsquid.test.query");
18
+ const envio_test_query_1 = require("./envio.test.query");
16
19
  class IndexersService {
17
20
  /**
18
21
  * Check the health of a single indexer with caching
19
22
  */
20
- async checkIndexerHealth(url) {
21
- return true;
22
- // try {
23
- // const controller = new AbortController()
24
- // const timeoutId = setTimeout(() => controller.abort(), ms("5s"))
25
- // const response = await fetch(`${url}/health`, {
26
- // method: "GET",
27
- // signal: controller.signal,
28
- // })
29
- // clearTimeout(timeoutId)
30
- // return response.ok
31
- // } catch (error) {
32
- // console.error(`Health check failed for ${url}:`, error)
33
- // return false
34
- // }
23
+ async checkIndexerHealth(url, indexer) {
24
+ const controller = new AbortController();
25
+ // ensure we clear the timeout regardless of outcome
26
+ const timeoutId = setTimeout(() => controller.abort(), (0, ms_1.default)("5s"));
27
+ try {
28
+ // forward the abort signal to the helper health checks so they can cancel their fetches
29
+ const indexerHealth = indexer == indexers_types_1.LevrIndexer.SUBSQUID
30
+ ? await (0, subsquid_test_query_1.checkSubsquidGraphQLHealth)(url, undefined, controller.signal)
31
+ : await (0, envio_test_query_1.checkEnvioGraphQlHealth)(url, undefined, controller.signal);
32
+ return indexerHealth;
33
+ }
34
+ catch (error) {
35
+ // node-fetch throws an AbortError when aborted; match on name to avoid noisy logs
36
+ if (error && (error.name === 'AbortError' || error.type === 'aborted')) {
37
+ console.warn(`Health check aborted (timeout) for ${url}`);
38
+ }
39
+ else {
40
+ console.error(`Health check failed for ${url}:`, error);
41
+ }
42
+ return false;
43
+ }
44
+ finally {
45
+ clearTimeout(timeoutId);
46
+ }
35
47
  }
36
48
  /**
37
49
  * Get a healthy indexer for a given chain and environment
@@ -40,7 +52,7 @@ class IndexersService {
40
52
  async getHealthyIndexer(env, chain) {
41
53
  const indexers = _1.allUrls[env].indexers[chain] || [];
42
54
  for (const indexer of indexers) {
43
- const isHealthy = await this.checkIndexerHealth(indexer.url);
55
+ const isHealthy = await this.checkIndexerHealth(indexer.url, indexer.type);
44
56
  if (isHealthy) {
45
57
  return indexer;
46
58
  }
@@ -1 +1 @@
1
- {"version":3,"file":"indexers.service.js","sourceRoot":"","sources":["../../../src/core/indexers/indexers.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAmB;AACnB,2DAAoD;AACpD,2BAAkD;AAGlD,MAAM,eAAe;IACjB;;OAEG;IAEW,AAAN,KAAK,CAAC,kBAAkB,CAAC,GAAW;QACxC,OAAO,IAAI,CAAA;QACX,QAAQ;QACR,+CAA+C;QAC/C,uEAAuE;QAEvE,sDAAsD;QACtD,yBAAyB;QACzB,qCAAqC;QACrC,SAAS;QAET,8BAA8B;QAC9B,yBAAyB;QACzB,oBAAoB;QACpB,8DAA8D;QAC9D,mBAAmB;QACnB,IAAI;IACR,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAY,EAAE,KAAgB;QAClD,MAAM,QAAQ,GAAG,UAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAE5D,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YACtD,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,YAAY,KAAK,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,UAAU,CAAC,GAAY,EAAE,KAAgB,EAAE,IAAiB;QACxD,MAAM,QAAQ,GAAG,UAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,YAAY,KAAK,WAAW,IAAI,EAAE,CAAC,CAAA;QAE5F,OAAO,OAAO,CAAC,GAAG,CAAA;IACtB,CAAC;CACJ;AA/CiB;IADb,IAAA,oCAAe,EAAC,IAAA,YAAE,EAAC,IAAI,CAAC,CAAC;yDAkBzB;AAgCQ,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"indexers.service.js","sourceRoot":"","sources":["../../../src/core/indexers/indexers.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAmB;AACnB,2DAAoD;AACpD,2BAAkD;AAClD,4DAAqD;AACrD,+DAAkE;AAClE,yDAA4D;AAE5D,MAAM,eAAe;IAEjB;;OAEG;IAEW,AAAN,KAAK,CAAC,kBAAkB,CAC5B,GAAW,EACX,OAAoB;QAEpB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,oDAAoD;QACpD,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAA,YAAE,EAAC,IAAI,CAAC,CAAC,CAAA;QAEhE,IAAI,CAAC;YACD,wFAAwF;YACxF,MAAM,aAAa,GAAG,OAAO,IAAI,4BAAW,CAAC,QAAQ;gBACjD,CAAC,CAAC,MAAM,IAAA,gDAA0B,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC;gBACrE,CAAC,CAAC,MAAM,IAAA,0CAAuB,EAAC,GAAG,EAAE,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;YAEtE,OAAO,aAAa,CAAA;QACxB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YAClB,kFAAkF;YAClF,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,EAAE,CAAC;gBACrE,OAAO,CAAC,IAAI,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAA;YAC7D,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,KAAK,CAAC,2BAA2B,GAAG,GAAG,EAAE,KAAK,CAAC,CAAA;YAC3D,CAAC;YACD,OAAO,KAAK,CAAA;QAChB,CAAC;gBAAS,CAAC;YACP,YAAY,CAAC,SAAS,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,GAAY,EAAE,KAAgB;QAClD,MAAM,QAAQ,GAAG,UAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEnD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;YAE1E,IAAI,SAAS,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,CAAC,GAAG,EAAE,CAAC,CAAA;YACtD,CAAC;QACL,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,YAAY,KAAK,EAAE,CAAC,CAAA;IAC5E,CAAC;IAED,UAAU,CAAC,GAAY,EAAE,KAAgB,EAAE,IAAiB;QACxD,MAAM,QAAQ,GAAG,UAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;QAEnD,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;QACzD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,YAAY,KAAK,WAAW,IAAI,EAAE,CAAC,CAAA;QAE5F,OAAO,OAAO,CAAC,GAAG,CAAA;IACtB,CAAC;CACJ;AAxDiB;IADb,IAAA,oCAAe,EAAC,IAAA,YAAE,EAAC,IAAI,CAAC,CAAC;yDA2BzB;AAgCQ,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ export declare function checkSubsquidGraphQLHealth(url: string, variables?: Record<string, any>, signal?: AbortSignal): Promise<boolean>;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkSubsquidGraphQLHealth = checkSubsquidGraphQLHealth;
7
+ const node_fetch_1 = __importDefault(require("node-fetch"));
8
+ const HEALTH_CHECK_QUERY = `
9
+ query HealthCheck {
10
+ levrFullTimeMarketSchemaPositionOpeneds(limit: 1) {
11
+ id
12
+ }
13
+ }
14
+ `;
15
+ async function checkSubsquidGraphQLHealth(url, variables, signal) {
16
+ const response = await (0, node_fetch_1.default)(url, {
17
+ method: 'POST',
18
+ headers: { 'Content-Type': 'application/json' },
19
+ body: JSON.stringify({
20
+ query: HEALTH_CHECK_QUERY,
21
+ variables,
22
+ }),
23
+ signal,
24
+ });
25
+ return response.ok === true;
26
+ }
27
+ //# sourceMappingURL=subsquid.test.query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subsquid.test.query.js","sourceRoot":"","sources":["../../../src/core/indexers/subsquid.test.query.ts"],"names":[],"mappings":";;;;;AAWA,gEAgBC;AA3BD,4DAAgC;AAGhC,MAAM,kBAAkB,GAAE;;;;;;CAMzB,CAAC;AAEK,KAAK,UAAU,0BAA0B,CAC5C,GAAW,EACX,SAA+B,EAC/B,MAAoB;IAEpB,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,GAAG,EAAE;QAC9B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACjB,KAAK,EAAE,kBAAkB;YACzB,SAAS;SACZ,CAAC;QACF,MAAM;KACT,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAA;AAC/B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export declare enum LevrIndexer {
2
- SENTIO = "sentio",
2
+ ENVIO = "envio",
3
3
  SUBSQUID = "subsquid"
4
4
  }
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LevrIndexer = void 0;
4
4
  var LevrIndexer;
5
5
  (function (LevrIndexer) {
6
- LevrIndexer["SENTIO"] = "sentio";
6
+ LevrIndexer["ENVIO"] = "envio";
7
7
  LevrIndexer["SUBSQUID"] = "subsquid";
8
8
  })(LevrIndexer || (exports.LevrIndexer = LevrIndexer = {}));
9
9
  //# sourceMappingURL=indexers.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexers.types.js","sourceRoot":"","sources":["../../../src/core/types/indexers.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,gCAAiB,CAAA;IACjB,oCAAqB,CAAA;AACzB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
1
+ {"version":3,"file":"indexers.types.js","sourceRoot":"","sources":["../../../src/core/types/indexers.types.ts"],"names":[],"mappings":";;;AAAA,IAAY,WAGX;AAHD,WAAY,WAAW;IACnB,8BAAe,CAAA;IACf,oCAAqB,CAAA;AACzB,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB"}
@@ -14,6 +14,12 @@ export interface FixtureWithSportAndLeague extends Prisma.FixtureGetPayload<{
14
14
  name: true;
15
15
  };
16
16
  };
17
+ tournament: {
18
+ select: {
19
+ levrTournamentId: true;
20
+ name: true;
21
+ };
22
+ };
17
23
  };
18
24
  };
19
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levrbet/shared",
3
- "version": "0.1.61",
3
+ "version": "0.1.62",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "exports": {
@@ -79,6 +79,7 @@
79
79
  "jose": "^6.1.0",
80
80
  "lodash": "^4.17.21",
81
81
  "ms": "^2.1.3",
82
+ "node-fetch": "^3.3.2",
82
83
  "ox": "^0.9.7",
83
84
  "rate-limit-redis": "^4.2.2",
84
85
  "redis": "^5.8.2",