@gearbox-protocol/sdk 16.0.0-next.52 → 16.0.0-next.54

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 (70) hide show
  1. package/dist/cjs/dev/mode-parity/compareOpportunities.js +1 -1
  2. package/dist/cjs/dev/mode-parity/comparePositions.js +1 -1
  3. package/dist/cjs/model/analytics.js +1 -0
  4. package/dist/cjs/model/analytics.schema.js +117 -0
  5. package/dist/cjs/model/charts.schema.js +1 -1
  6. package/dist/cjs/model/index.js +18 -7
  7. package/dist/cjs/model/liquidations.schema.js +2 -2
  8. package/dist/cjs/model/opportunities.schema.js +3 -3
  9. package/dist/cjs/model/positions.schema.js +2 -2
  10. package/dist/cjs/offchain/GearboxAPI.js +5 -0
  11. package/dist/cjs/offchain/analytics/OffchainAnalytics.js +12 -0
  12. package/dist/cjs/offchain/analytics/OffchainAnalyticsPositions.js +24 -0
  13. package/dist/cjs/offchain/analytics/index.js +6 -0
  14. package/dist/cjs/offchain/analytics/types.js +1 -0
  15. package/dist/cjs/offchain/index.js +5 -0
  16. package/dist/cjs/onchain/market/credit/CreditSuite.js +2 -2
  17. package/dist/cjs/sdk/GearboxSDK.js +5 -0
  18. package/dist/cjs/sdk/analytics/AnalyticsNamespace.js +11 -0
  19. package/dist/cjs/sdk/analytics/index.js +4 -0
  20. package/dist/cjs/sdk/analytics/types.js +1 -0
  21. package/dist/cjs/sdk/index.js +3 -0
  22. package/dist/esm/dev/mode-parity/compareOpportunities.js +1 -1
  23. package/dist/esm/dev/mode-parity/comparePositions.js +1 -1
  24. package/dist/esm/model/analytics.js +1 -0
  25. package/dist/esm/model/analytics.schema.js +108 -0
  26. package/dist/esm/model/charts.schema.js +1 -1
  27. package/dist/esm/model/index.js +10 -8
  28. package/dist/esm/model/liquidations.schema.js +2 -2
  29. package/dist/esm/model/opportunities.schema.js +3 -3
  30. package/dist/esm/model/positions.schema.js +2 -2
  31. package/dist/esm/offchain/GearboxAPI.js +5 -0
  32. package/dist/esm/offchain/analytics/OffchainAnalytics.js +11 -0
  33. package/dist/esm/offchain/analytics/OffchainAnalyticsPositions.js +23 -0
  34. package/dist/esm/offchain/analytics/index.js +4 -0
  35. package/dist/esm/offchain/analytics/types.js +1 -0
  36. package/dist/esm/offchain/index.js +4 -1
  37. package/dist/esm/onchain/market/credit/CreditSuite.js +3 -3
  38. package/dist/esm/sdk/GearboxSDK.js +5 -0
  39. package/dist/esm/sdk/analytics/AnalyticsNamespace.js +10 -0
  40. package/dist/esm/sdk/analytics/index.js +3 -0
  41. package/dist/esm/sdk/analytics/types.js +1 -0
  42. package/dist/esm/sdk/index.js +3 -1
  43. package/dist/types/model/analytics.d.ts +62 -0
  44. package/dist/types/model/analytics.schema.d.ts +149 -0
  45. package/dist/types/model/index.d.ts +10 -8
  46. package/dist/types/model/opportunities.d.ts +1 -1
  47. package/dist/types/model/previews.d.ts +2 -2
  48. package/dist/types/offchain/AbstractOffchainNamespace.d.ts +1 -1
  49. package/dist/types/offchain/GearboxAPI.d.ts +4 -0
  50. package/dist/types/offchain/analytics/OffchainAnalytics.d.ts +11 -0
  51. package/dist/types/offchain/analytics/OffchainAnalyticsPositions.d.ts +14 -0
  52. package/dist/types/offchain/analytics/index.d.ts +4 -0
  53. package/dist/types/offchain/analytics/types.d.ts +17 -0
  54. package/dist/types/offchain/index.d.ts +5 -1
  55. package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +1 -1
  56. package/dist/types/offchain/opportunities/types.d.ts +1 -1
  57. package/dist/types/offchain/positions/OffchainPositions.d.ts +1 -1
  58. package/dist/types/offchain/positions/types.d.ts +1 -1
  59. package/dist/types/onchain/market/credit/CreditSuite.d.ts +1 -2
  60. package/dist/types/sdk/GearboxSDK.d.ts +4 -0
  61. package/dist/types/sdk/analytics/AnalyticsNamespace.d.ts +11 -0
  62. package/dist/types/sdk/analytics/index.d.ts +3 -0
  63. package/dist/types/sdk/analytics/types.d.ts +15 -0
  64. package/dist/types/sdk/index.d.ts +4 -1
  65. package/dist/types/sdk/opportunities/OpportunitiesNamespace.d.ts +1 -1
  66. package/dist/types/sdk/opportunities/types.d.ts +1 -1
  67. package/dist/types/sdk/positions/PositionsNamespace.d.ts +1 -1
  68. package/dist/types/sdk/positions/types.d.ts +1 -1
  69. package/dist/types/sdk/types.d.ts +3 -0
  70. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_model_opportunities = require("../../model/opportunities.js");
3
2
  const require_model_opportunities_schema = require("../../model/opportunities.schema.js");
3
+ const require_model_opportunities = require("../../model/opportunities.js");
4
4
  require("../../model/index.js");
5
5
  const require_dev_mode_parity_fieldDiff = require("./fieldDiff.js");
6
6
  const require_dev_mode_parity_compareRules = require("./compareRules.js");
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_model_liquidations_schema = require("../../model/liquidations.schema.js");
3
- const require_model_positions = require("../../model/positions.js");
4
3
  const require_model_positions_schema = require("../../model/positions.schema.js");
4
+ const require_model_positions = require("../../model/positions.js");
5
5
  require("../../model/index.js");
6
6
  const require_dev_mode_parity_fieldDiff = require("./fieldDiff.js");
7
7
  const require_dev_mode_parity_compareRules = require("./compareRules.js");
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
@@ -0,0 +1,117 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_onchain_utils_zod = require("../onchain/utils/zod.js");
3
+ const require_model_filters = require("./filters.js");
4
+ const require_model_filters_schema = require("./filters.schema.js");
5
+ const require_model_primitives_schema = require("./primitives.schema.js");
6
+ const require_model_liquidations_schema = require("./liquidations.schema.js");
7
+ const require_model_positions_schema = require("./positions.schema.js");
8
+ let viem = require("viem");
9
+ let zod_v4 = require("zod/v4");
10
+ //#region src/model/analytics.schema.ts
11
+ /** Default page size of the protocol-wide positions list. */
12
+ const ANALYTICS_POSITIONS_DEFAULT_LIMIT = 25;
13
+ /** Largest page the protocol-wide positions list accepts. */
14
+ const ANALYTICS_POSITIONS_MAX_LIMIT = 100;
15
+ /** {@link AnalyticsPositionSortField} */
16
+ const analyticsPositionSortFieldSchema = zod_v4.z.enum([
17
+ "netValueUsd",
18
+ "totalValueUsd",
19
+ "totalDebtUsd",
20
+ "pnlUsd",
21
+ "apy",
22
+ "healthFactor",
23
+ "leverage",
24
+ "chainId",
25
+ "name",
26
+ "borrower"
27
+ ]);
28
+ /** {@link AnalyticsSortDirection} */
29
+ const analyticsSortDirectionSchema = zod_v4.z.enum(["asc", "desc"]);
30
+ const analyticsOwnerShape = { borrower: require_onchain_utils_zod.ZodAddress() };
31
+ const addressSchema = zod_v4.z.custom((value) => typeof value === "string" && (0, viem.isAddress)(value, { strict: false }));
32
+ /** {@link AnalyticsPosition} */
33
+ const analyticsPositionSchema = zod_v4.z.discriminatedUnion("kind", [
34
+ zod_v4.z.object({
35
+ ...require_model_positions_schema.poolPositionSchema.shape,
36
+ ...analyticsOwnerShape
37
+ }),
38
+ zod_v4.z.object({
39
+ ...require_model_positions_schema.strategyPositionSchema.shape,
40
+ ...analyticsOwnerShape
41
+ }),
42
+ zod_v4.z.object({
43
+ ...require_model_liquidations_schema.liquidationPositionSchema.shape,
44
+ ...analyticsOwnerShape
45
+ })
46
+ ]);
47
+ /** {@link AnalyticsPositionListOptions} */
48
+ const analyticsPositionListOptionsSchema = zod_v4.z.object({
49
+ borrower: addressSchema.optional(),
50
+ kind: require_model_filters_schema.filterable(require_model_positions_schema.positionKindSchema).optional(),
51
+ isZeroDebt: require_model_filters_schema.filterable(zod_v4.z.boolean()).optional(),
52
+ chainIds: zod_v4.z.array(require_model_primitives_schema.chainIdSchema).optional(),
53
+ underlyingType: require_model_filters_schema.filterable(require_model_primitives_schema.assetTypeSchema).optional(),
54
+ sortBy: analyticsPositionSortFieldSchema.optional(),
55
+ sortDirection: analyticsSortDirectionSchema.optional(),
56
+ offset: zod_v4.z.number().int().nonnegative().optional(),
57
+ limit: zod_v4.z.number().int().positive().max(100).optional()
58
+ });
59
+ /**
60
+ * {@link AnalyticsPositionListOptions} as URL query parameters.
61
+ **/
62
+ const analyticsPositionListQueryParamsSchema = zod_v4.z.object({
63
+ borrower: zod_v4.z.string().refine((value) => (0, viem.isAddress)(value, { strict: false }), "invalid address").optional(),
64
+ kind: require_model_positions_schema.positionKindSchema.optional(),
65
+ isZeroDebt: zod_v4.z.enum(["true", "false"]).optional(),
66
+ chainIds: zod_v4.z.string().regex(/^$|^\d+(,\d+)*$/).optional(),
67
+ underlyingType: require_model_primitives_schema.assetTypeSchema.optional(),
68
+ sortBy: analyticsPositionSortFieldSchema.optional(),
69
+ sortDirection: analyticsSortDirectionSchema.optional(),
70
+ offset: zod_v4.z.string().regex(/^\d+$/).optional(),
71
+ limit: zod_v4.z.string().regex(/^[1-9]\d*$/).optional()
72
+ });
73
+ /**
74
+ * Codec for an analytics position-list query. It is shared by the SDK client
75
+ * and backend controller so both sides interpret every parameter identically.
76
+ **/
77
+ const analyticsPositionListQuerySchema = zod_v4.z.codec(analyticsPositionListQueryParamsSchema, analyticsPositionListOptionsSchema, {
78
+ decode: (params) => ({
79
+ ...params.borrower === void 0 ? {} : { borrower: params.borrower },
80
+ ...params.kind === void 0 ? {} : { kind: params.kind },
81
+ ...params.isZeroDebt === void 0 ? {} : { isZeroDebt: params.isZeroDebt === "true" },
82
+ ...params.chainIds === void 0 ? {} : { chainIds: params.chainIds === "" ? [] : params.chainIds.split(",").map(Number) },
83
+ ...params.underlyingType === void 0 ? {} : { underlyingType: params.underlyingType },
84
+ ...params.sortBy === void 0 ? {} : { sortBy: params.sortBy },
85
+ ...params.sortDirection === void 0 ? {} : { sortDirection: params.sortDirection },
86
+ ...params.offset === void 0 ? {} : { offset: Number(params.offset) },
87
+ ...params.limit === void 0 ? {} : { limit: Number(params.limit) }
88
+ }),
89
+ encode: (options) => ({
90
+ borrower: options.borrower,
91
+ kind: require_model_filters.isFilterSet(options.kind) ? options.kind : void 0,
92
+ isZeroDebt: require_model_filters_schema.encodeFlag(options.isZeroDebt),
93
+ chainIds: options.chainIds?.join(","),
94
+ underlyingType: require_model_filters.isFilterSet(options.underlyingType) ? options.underlyingType : void 0,
95
+ sortBy: options.sortBy,
96
+ sortDirection: options.sortDirection,
97
+ offset: options.offset?.toString(),
98
+ limit: options.limit?.toString()
99
+ })
100
+ });
101
+ /** {@link AnalyticsPositionPage} */
102
+ const analyticsPositionPageSchema = zod_v4.z.object({
103
+ items: zod_v4.z.array(analyticsPositionSchema),
104
+ total: zod_v4.z.number().int().nonnegative(),
105
+ offset: zod_v4.z.number().int().nonnegative(),
106
+ limit: zod_v4.z.number().int().positive().max(100)
107
+ });
108
+ //#endregion
109
+ exports.ANALYTICS_POSITIONS_DEFAULT_LIMIT = ANALYTICS_POSITIONS_DEFAULT_LIMIT;
110
+ exports.ANALYTICS_POSITIONS_MAX_LIMIT = ANALYTICS_POSITIONS_MAX_LIMIT;
111
+ exports.analyticsPositionListOptionsSchema = analyticsPositionListOptionsSchema;
112
+ exports.analyticsPositionListQueryParamsSchema = analyticsPositionListQueryParamsSchema;
113
+ exports.analyticsPositionListQuerySchema = analyticsPositionListQuerySchema;
114
+ exports.analyticsPositionPageSchema = analyticsPositionPageSchema;
115
+ exports.analyticsPositionSchema = analyticsPositionSchema;
116
+ exports.analyticsPositionSortFieldSchema = analyticsPositionSortFieldSchema;
117
+ exports.analyticsSortDirectionSchema = analyticsSortDirectionSchema;
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_model_charts = require("./charts.js");
3
2
  const require_model_primitives_schema = require("./primitives.schema.js");
3
+ const require_model_charts = require("./charts.js");
4
4
  let zod_v4 = require("zod/v4");
5
5
  //#region src/model/charts.schema.ts
6
6
  /**
@@ -1,22 +1,24 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_model_charts = require("./charts.js");
2
+ require("./analytics.js");
3
+ const require_model_filters = require("./filters.js");
4
+ const require_model_filters_schema = require("./filters.schema.js");
3
5
  const require_model_compare_schema = require("./compare.schema.js");
6
+ const require_model_curators_schema = require("./curators.schema.js");
4
7
  const require_model_primitives_schema = require("./primitives.schema.js");
8
+ const require_model_liquidations_schema = require("./liquidations.schema.js");
9
+ const require_model_opportunities_schema = require("./opportunities.schema.js");
10
+ const require_model_positions_schema = require("./positions.schema.js");
11
+ const require_model_analytics_schema = require("./analytics.schema.js");
12
+ const require_model_charts = require("./charts.js");
5
13
  const require_model_charts_schema = require("./charts.schema.js");
6
14
  require("./curators.js");
7
- const require_model_curators_schema = require("./curators.schema.js");
8
15
  require("./delayed-intents.js");
9
16
  require("./errors.js");
10
- const require_model_filters = require("./filters.js");
11
- const require_model_filters_schema = require("./filters.schema.js");
12
17
  const require_model_liquidations = require("./liquidations.js");
13
- const require_model_liquidations_schema = require("./liquidations.schema.js");
14
18
  require("./notices.js");
15
19
  const require_model_notices_schema = require("./notices.schema.js");
16
20
  const require_model_opportunities = require("./opportunities.js");
17
- const require_model_opportunities_schema = require("./opportunities.schema.js");
18
21
  const require_model_positions = require("./positions.js");
19
- const require_model_positions_schema = require("./positions.schema.js");
20
22
  const require_model_previews = require("./previews.js");
21
23
  require("./primitives.js");
22
24
  require("./response.js");
@@ -24,6 +26,8 @@ const require_model_response_schema = require("./response.schema.js");
24
26
  const require_model_result = require("./result.js");
25
27
  require("./withdrawals.js");
26
28
  const require_model_withdrawals_schema = require("./withdrawals.schema.js");
29
+ exports.ANALYTICS_POSITIONS_DEFAULT_LIMIT = require_model_analytics_schema.ANALYTICS_POSITIONS_DEFAULT_LIMIT;
30
+ exports.ANALYTICS_POSITIONS_MAX_LIMIT = require_model_analytics_schema.ANALYTICS_POSITIONS_MAX_LIMIT;
27
31
  exports.CHART_METRIC_UNITS = require_model_charts.CHART_METRIC_UNITS;
28
32
  exports.CHART_RANGES = require_model_charts.CHART_RANGES;
29
33
  exports.CHART_UNAVAILABLE_CODES = require_model_charts.CHART_UNAVAILABLE_CODES;
@@ -34,6 +38,13 @@ exports.STRATEGY_OPPORTUNITY_CHART_METRICS = require_model_charts.STRATEGY_OPPOR
34
38
  exports.STRATEGY_POSITION_CHART_METRICS = require_model_charts.STRATEGY_POSITION_CHART_METRICS;
35
39
  exports.STRATEGY_POSITION_COLLATERAL_ERROR = require_model_positions.STRATEGY_POSITION_COLLATERAL_ERROR;
36
40
  exports.amountSchema = require_model_primitives_schema.amountSchema;
41
+ exports.analyticsPositionListOptionsSchema = require_model_analytics_schema.analyticsPositionListOptionsSchema;
42
+ exports.analyticsPositionListQueryParamsSchema = require_model_analytics_schema.analyticsPositionListQueryParamsSchema;
43
+ exports.analyticsPositionListQuerySchema = require_model_analytics_schema.analyticsPositionListQuerySchema;
44
+ exports.analyticsPositionPageSchema = require_model_analytics_schema.analyticsPositionPageSchema;
45
+ exports.analyticsPositionSchema = require_model_analytics_schema.analyticsPositionSchema;
46
+ exports.analyticsPositionSortFieldSchema = require_model_analytics_schema.analyticsPositionSortFieldSchema;
47
+ exports.analyticsSortDirectionSchema = require_model_analytics_schema.analyticsSortDirectionSchema;
37
48
  exports.apyBreakdownSchema = require_model_opportunities_schema.apyBreakdownSchema;
38
49
  exports.asEstimated = require_model_previews.asEstimated;
39
50
  exports.assetTypeSchema = require_model_primitives_schema.assetTypeSchema;
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_utils_zod = require("../onchain/utils/zod.js");
3
- const require_model_primitives_schema = require("./primitives.schema.js");
4
- const require_model_curators_schema = require("./curators.schema.js");
5
3
  const require_model_filters_schema = require("./filters.schema.js");
4
+ const require_model_curators_schema = require("./curators.schema.js");
5
+ const require_model_primitives_schema = require("./primitives.schema.js");
6
6
  let zod_v4 = require("zod/v4");
7
7
  //#region src/model/liquidations.schema.ts
8
8
  /**
@@ -1,10 +1,10 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_utils_zod = require("../onchain/utils/zod.js");
3
- const require_model_compare_schema = require("./compare.schema.js");
4
- const require_model_primitives_schema = require("./primitives.schema.js");
5
- const require_model_curators_schema = require("./curators.schema.js");
6
3
  const require_model_filters = require("./filters.js");
7
4
  const require_model_filters_schema = require("./filters.schema.js");
5
+ const require_model_compare_schema = require("./compare.schema.js");
6
+ const require_model_curators_schema = require("./curators.schema.js");
7
+ const require_model_primitives_schema = require("./primitives.schema.js");
8
8
  let zod_v4 = require("zod/v4");
9
9
  //#region src/model/opportunities.schema.ts
10
10
  /**
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_onchain_utils_zod = require("../onchain/utils/zod.js");
3
- const require_model_compare_schema = require("./compare.schema.js");
4
- const require_model_primitives_schema = require("./primitives.schema.js");
5
3
  const require_model_filters = require("./filters.js");
6
4
  const require_model_filters_schema = require("./filters.schema.js");
5
+ const require_model_compare_schema = require("./compare.schema.js");
6
+ const require_model_primitives_schema = require("./primitives.schema.js");
7
7
  const require_model_liquidations_schema = require("./liquidations.schema.js");
8
8
  const require_model_opportunities_schema = require("./opportunities.schema.js");
9
9
  let zod_v4 = require("zod/v4");
@@ -1,4 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_offchain_analytics_OffchainAnalytics = require("./analytics/OffchainAnalytics.js");
3
+ require("./analytics/index.js");
2
4
  const require_offchain_notices_OffchainNotices = require("./notices/OffchainNotices.js");
3
5
  require("./notices/index.js");
4
6
  const require_offchain_opportunities_OffchainOpportunities = require("./opportunities/OffchainOpportunities.js");
@@ -28,6 +30,8 @@ var GearboxAPI = class {
28
30
  * Chains every read of this client is scoped to.
29
31
  **/
30
32
  chainIds;
33
+ /** Protocol-wide, backend-only analytics. */
34
+ analytics;
31
35
  /**
32
36
  * Namespace for pool and strategy opportunities.
33
37
  **/
@@ -42,6 +46,7 @@ var GearboxAPI = class {
42
46
  notices;
43
47
  constructor(options) {
44
48
  this.chainIds = [...options.chainIds];
49
+ this.analytics = new require_offchain_analytics_OffchainAnalytics.OffchainAnalytics(options);
45
50
  this.opportunities = new require_offchain_opportunities_OffchainOpportunities.OffchainOpportunities(options);
46
51
  this.positions = new require_offchain_positions_OffchainPositions.OffchainPositions(options);
47
52
  this.notices = new require_offchain_notices_OffchainNotices.OffchainNotices(options);
@@ -0,0 +1,12 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_offchain_analytics_OffchainAnalyticsPositions = require("./OffchainAnalyticsPositions.js");
3
+ //#region src/offchain/analytics/OffchainAnalytics.ts
4
+ /** Backend-only protocol analytics, grouped by subject. */
5
+ var OffchainAnalytics = class {
6
+ positions;
7
+ constructor(options) {
8
+ this.positions = new require_offchain_analytics_OffchainAnalyticsPositions.OffchainAnalyticsPositions(options);
9
+ }
10
+ };
11
+ //#endregion
12
+ exports.OffchainAnalytics = OffchainAnalytics;
@@ -0,0 +1,24 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_model_analytics_schema = require("../../model/analytics.schema.js");
3
+ const require_offchain_AbstractOffchainNamespace = require("../AbstractOffchainNamespace.js");
4
+ let zod_v4 = require("zod/v4");
5
+ //#region src/offchain/analytics/OffchainAnalyticsPositions.ts
6
+ /** Backend client for protocol-wide position analytics. */
7
+ var OffchainAnalyticsPositions = class extends require_offchain_AbstractOffchainNamespace.AbstractOffchainNamespace {
8
+ constructor(options) {
9
+ super("OffchainAnalyticsPositions", options);
10
+ }
11
+ /** {@inheritDoc IOffchainAnalyticsPositions.list} */
12
+ async list(options) {
13
+ return this.get({
14
+ path: "/v2/analytics/positions",
15
+ query: zod_v4.z.encode(require_model_analytics_schema.analyticsPositionListQuerySchema, {
16
+ ...options,
17
+ chainIds: this.scopedChainIds(options)
18
+ }),
19
+ schema: require_model_analytics_schema.analyticsPositionPageSchema
20
+ });
21
+ }
22
+ };
23
+ //#endregion
24
+ exports.OffchainAnalyticsPositions = OffchainAnalyticsPositions;
@@ -0,0 +1,6 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_offchain_analytics_OffchainAnalyticsPositions = require("./OffchainAnalyticsPositions.js");
3
+ const require_offchain_analytics_OffchainAnalytics = require("./OffchainAnalytics.js");
4
+ require("./types.js");
5
+ exports.OffchainAnalytics = require_offchain_analytics_OffchainAnalytics.OffchainAnalytics;
6
+ exports.OffchainAnalyticsPositions = require_offchain_analytics_OffchainAnalyticsPositions.OffchainAnalyticsPositions;
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
@@ -11,6 +11,9 @@ const require_offchain_errors_OffchainValidationError = require("./errors/Offcha
11
11
  const require_offchain_errors_readResponseBody = require("./errors/readResponseBody.js");
12
12
  require("./errors/index.js");
13
13
  const require_offchain_AbstractOffchainNamespace = require("./AbstractOffchainNamespace.js");
14
+ const require_offchain_analytics_OffchainAnalyticsPositions = require("./analytics/OffchainAnalyticsPositions.js");
15
+ const require_offchain_analytics_OffchainAnalytics = require("./analytics/OffchainAnalytics.js");
16
+ require("./analytics/index.js");
14
17
  const require_offchain_notices_OffchainNotices = require("./notices/OffchainNotices.js");
15
18
  require("./notices/index.js");
16
19
  const require_offchain_opportunities_OffchainOpportunities = require("./opportunities/OffchainOpportunities.js");
@@ -21,6 +24,8 @@ const require_offchain_GearboxAPI = require("./GearboxAPI.js");
21
24
  require("./types.js");
22
25
  exports.AbstractOffchainNamespace = require_offchain_AbstractOffchainNamespace.AbstractOffchainNamespace;
23
26
  exports.GearboxAPI = require_offchain_GearboxAPI.GearboxAPI;
27
+ exports.OffchainAnalytics = require_offchain_analytics_OffchainAnalytics.OffchainAnalytics;
28
+ exports.OffchainAnalyticsPositions = require_offchain_analytics_OffchainAnalyticsPositions.OffchainAnalyticsPositions;
24
29
  exports.OffchainInvalidJsonError = require_offchain_errors_OffchainInvalidJsonError.OffchainInvalidJsonError;
25
30
  exports.OffchainNotConfiguredError = require_offchain_errors_OffchainNotConfiguredError.OffchainNotConfiguredError;
26
31
  exports.OffchainNotImplementedError = require_offchain_errors_OffchainNotImplementedError.OffchainNotImplementedError;
@@ -291,13 +291,13 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
291
291
  }
292
292
  /**
293
293
  * Describes this suite's leveraged strategy as the shared read model does,
294
- * or `undefined` when {@link strategyTargetCollateral} cannot be resolved or
295
- * {@link maxBorrowAmount} is at or below {@link MIN_STRATEGY_BORROW_AMOUNT}.
294
+ * or `undefined` when credit suite does not offer a strategy opportunity.
296
295
  */
297
296
  strategyOpportunity() {
298
297
  if (this.maxBorrowAmount <= MIN_STRATEGY_BORROW_AMOUNT) return;
299
298
  const collateral = this.strategyTargetCollateral;
300
299
  if (!collateral) return;
300
+ if (!require_onchain_market_credit_collateralUtils.isStrategyCollateral(this.#strategyCollateralProps(collateral), true)) return;
301
301
  const { market, creditManager: cm } = this;
302
302
  const { pool } = market.pool;
303
303
  const oracle = market.priceOracle;
@@ -7,6 +7,8 @@ require("../offchain/index.js");
7
7
  const require_sdk_errors_assertSameChains = require("./errors/assertSameChains.js");
8
8
  const require_sdk_errors_MissingSourceError = require("./errors/MissingSourceError.js");
9
9
  require("./errors/index.js");
10
+ const require_sdk_analytics_AnalyticsNamespace = require("./analytics/AnalyticsNamespace.js");
11
+ require("./analytics/index.js");
10
12
  const require_sdk_liquidations_LiquidationsNamespace = require("./liquidations/LiquidationsNamespace.js");
11
13
  require("./liquidations/index.js");
12
14
  require("./utils/mergeChains.js");
@@ -51,6 +53,8 @@ var GearboxSDK = class {
51
53
  * Chains this instance covers, which every read is scoped to.
52
54
  **/
53
55
  networks;
56
+ /** Protocol-wide analytics. Undefined in `onchain` mode. */
57
+ analytics;
54
58
  /**
55
59
  * Namespace for pool and strategy opportunities.
56
60
  **/
@@ -131,6 +135,7 @@ var GearboxSDK = class {
131
135
  ensureFresh: this.#onchain ? (chainIds) => this.#ensureFresh(chainIds) : void 0,
132
136
  logger
133
137
  };
138
+ this.analytics = this.#offchain ? new require_sdk_analytics_AnalyticsNamespace.AnalyticsNamespace(this.#offchain) : void 0;
134
139
  this.opportunities = new require_sdk_opportunities_OpportunitiesNamespace.OpportunitiesNamespace(this.#onchain, this.#offchain, namespaceOptions);
135
140
  this.positions = new require_sdk_positions_PositionsNamespace.PositionsNamespace(this.#onchain, this.#offchain, namespaceOptions);
136
141
  this.liquidations = this.#onchain ? new require_sdk_liquidations_LiquidationsNamespace.LiquidationsNamespace(this.#onchain, namespaceOptions) : void 0;
@@ -0,0 +1,11 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/sdk/analytics/AnalyticsNamespace.ts
3
+ /** Backend-only protocol analytics exposed by {@link GearboxSDK}. */
4
+ var AnalyticsNamespace = class {
5
+ positions;
6
+ constructor(backend) {
7
+ this.positions = backend.analytics.positions;
8
+ }
9
+ };
10
+ //#endregion
11
+ exports.AnalyticsNamespace = AnalyticsNamespace;
@@ -0,0 +1,4 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_sdk_analytics_AnalyticsNamespace = require("./AnalyticsNamespace.js");
3
+ require("./types.js");
4
+ exports.AnalyticsNamespace = require_sdk_analytics_AnalyticsNamespace.AnalyticsNamespace;
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
@@ -9,6 +9,8 @@ const require_sdk_errors_NoSourceServedError = require("./errors/NoSourceServedE
9
9
  const require_sdk_errors_SourceUnavailableError = require("./errors/SourceUnavailableError.js");
10
10
  require("./errors/index.js");
11
11
  const require_sdk_AbstractNamespace = require("./AbstractNamespace.js");
12
+ const require_sdk_analytics_AnalyticsNamespace = require("./analytics/AnalyticsNamespace.js");
13
+ require("./analytics/index.js");
12
14
  const require_sdk_liquidations_LiquidationsNamespace = require("./liquidations/LiquidationsNamespace.js");
13
15
  require("./liquidations/index.js");
14
16
  const require_sdk_execute_ExecuteApi = require("./execute/ExecuteApi.js");
@@ -29,6 +31,7 @@ const require_sdk_GearboxSDK = require("./GearboxSDK.js");
29
31
  require("./types.js");
30
32
  exports.AbstractNamespace = require_sdk_AbstractNamespace.AbstractNamespace;
31
33
  exports.AllSourcesFailedError = require_sdk_errors_AllSourcesFailedError.AllSourcesFailedError;
34
+ exports.AnalyticsNamespace = require_sdk_analytics_AnalyticsNamespace.AnalyticsNamespace;
32
35
  exports.DEFAULT_MAX_OFFCHAIN_LAG = require_sdk_utils_mergeChains.DEFAULT_MAX_OFFCHAIN_LAG;
33
36
  exports.DEFAULT_MAX_STATE_AGE = require_sdk_GearboxSDK.DEFAULT_MAX_STATE_AGE;
34
37
  exports.ExecuteApi = require_sdk_execute_ExecuteApi.ExecuteApi;
@@ -1,5 +1,5 @@
1
- import { opportunityId } from "../../model/opportunities.js";
2
1
  import { poolOpportunitySchema, strategyOpportunitySchema } from "../../model/opportunities.schema.js";
2
+ import { opportunityId } from "../../model/opportunities.js";
3
3
  import "../../model/index.js";
4
4
  import { countPaths, diffObjects, toCompareCounts, union } from "./fieldDiff.js";
5
5
  import { compileCompareRules, makeTagDiff } from "./compareRules.js";
@@ -1,6 +1,6 @@
1
1
  import { liquidationPositionSchema } from "../../model/liquidations.schema.js";
2
- import { positionId } from "../../model/positions.js";
3
2
  import { poolPositionSchema, strategyPositionSchema } from "../../model/positions.schema.js";
3
+ import { positionId } from "../../model/positions.js";
4
4
  import "../../model/index.js";
5
5
  import { countPaths, diffObjects, isRecord, toCompareCounts, union } from "./fieldDiff.js";
6
6
  import { compileCompareRules, makeTagDiff } from "./compareRules.js";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,108 @@
1
+ import { ZodAddress } from "../onchain/utils/zod.js";
2
+ import { isFilterSet } from "./filters.js";
3
+ import { encodeFlag, filterable } from "./filters.schema.js";
4
+ import { assetTypeSchema, chainIdSchema } from "./primitives.schema.js";
5
+ import { liquidationPositionSchema } from "./liquidations.schema.js";
6
+ import { poolPositionSchema, positionKindSchema, strategyPositionSchema } from "./positions.schema.js";
7
+ import { isAddress } from "viem";
8
+ import { z } from "zod/v4";
9
+ //#region src/model/analytics.schema.ts
10
+ /** Default page size of the protocol-wide positions list. */
11
+ const ANALYTICS_POSITIONS_DEFAULT_LIMIT = 25;
12
+ /** Largest page the protocol-wide positions list accepts. */
13
+ const ANALYTICS_POSITIONS_MAX_LIMIT = 100;
14
+ /** {@link AnalyticsPositionSortField} */
15
+ const analyticsPositionSortFieldSchema = z.enum([
16
+ "netValueUsd",
17
+ "totalValueUsd",
18
+ "totalDebtUsd",
19
+ "pnlUsd",
20
+ "apy",
21
+ "healthFactor",
22
+ "leverage",
23
+ "chainId",
24
+ "name",
25
+ "borrower"
26
+ ]);
27
+ /** {@link AnalyticsSortDirection} */
28
+ const analyticsSortDirectionSchema = z.enum(["asc", "desc"]);
29
+ const analyticsOwnerShape = { borrower: ZodAddress() };
30
+ const addressSchema = z.custom((value) => typeof value === "string" && isAddress(value, { strict: false }));
31
+ /** {@link AnalyticsPosition} */
32
+ const analyticsPositionSchema = z.discriminatedUnion("kind", [
33
+ z.object({
34
+ ...poolPositionSchema.shape,
35
+ ...analyticsOwnerShape
36
+ }),
37
+ z.object({
38
+ ...strategyPositionSchema.shape,
39
+ ...analyticsOwnerShape
40
+ }),
41
+ z.object({
42
+ ...liquidationPositionSchema.shape,
43
+ ...analyticsOwnerShape
44
+ })
45
+ ]);
46
+ /** {@link AnalyticsPositionListOptions} */
47
+ const analyticsPositionListOptionsSchema = z.object({
48
+ borrower: addressSchema.optional(),
49
+ kind: filterable(positionKindSchema).optional(),
50
+ isZeroDebt: filterable(z.boolean()).optional(),
51
+ chainIds: z.array(chainIdSchema).optional(),
52
+ underlyingType: filterable(assetTypeSchema).optional(),
53
+ sortBy: analyticsPositionSortFieldSchema.optional(),
54
+ sortDirection: analyticsSortDirectionSchema.optional(),
55
+ offset: z.number().int().nonnegative().optional(),
56
+ limit: z.number().int().positive().max(100).optional()
57
+ });
58
+ /**
59
+ * {@link AnalyticsPositionListOptions} as URL query parameters.
60
+ **/
61
+ const analyticsPositionListQueryParamsSchema = z.object({
62
+ borrower: z.string().refine((value) => isAddress(value, { strict: false }), "invalid address").optional(),
63
+ kind: positionKindSchema.optional(),
64
+ isZeroDebt: z.enum(["true", "false"]).optional(),
65
+ chainIds: z.string().regex(/^$|^\d+(,\d+)*$/).optional(),
66
+ underlyingType: assetTypeSchema.optional(),
67
+ sortBy: analyticsPositionSortFieldSchema.optional(),
68
+ sortDirection: analyticsSortDirectionSchema.optional(),
69
+ offset: z.string().regex(/^\d+$/).optional(),
70
+ limit: z.string().regex(/^[1-9]\d*$/).optional()
71
+ });
72
+ /**
73
+ * Codec for an analytics position-list query. It is shared by the SDK client
74
+ * and backend controller so both sides interpret every parameter identically.
75
+ **/
76
+ const analyticsPositionListQuerySchema = z.codec(analyticsPositionListQueryParamsSchema, analyticsPositionListOptionsSchema, {
77
+ decode: (params) => ({
78
+ ...params.borrower === void 0 ? {} : { borrower: params.borrower },
79
+ ...params.kind === void 0 ? {} : { kind: params.kind },
80
+ ...params.isZeroDebt === void 0 ? {} : { isZeroDebt: params.isZeroDebt === "true" },
81
+ ...params.chainIds === void 0 ? {} : { chainIds: params.chainIds === "" ? [] : params.chainIds.split(",").map(Number) },
82
+ ...params.underlyingType === void 0 ? {} : { underlyingType: params.underlyingType },
83
+ ...params.sortBy === void 0 ? {} : { sortBy: params.sortBy },
84
+ ...params.sortDirection === void 0 ? {} : { sortDirection: params.sortDirection },
85
+ ...params.offset === void 0 ? {} : { offset: Number(params.offset) },
86
+ ...params.limit === void 0 ? {} : { limit: Number(params.limit) }
87
+ }),
88
+ encode: (options) => ({
89
+ borrower: options.borrower,
90
+ kind: isFilterSet(options.kind) ? options.kind : void 0,
91
+ isZeroDebt: encodeFlag(options.isZeroDebt),
92
+ chainIds: options.chainIds?.join(","),
93
+ underlyingType: isFilterSet(options.underlyingType) ? options.underlyingType : void 0,
94
+ sortBy: options.sortBy,
95
+ sortDirection: options.sortDirection,
96
+ offset: options.offset?.toString(),
97
+ limit: options.limit?.toString()
98
+ })
99
+ });
100
+ /** {@link AnalyticsPositionPage} */
101
+ const analyticsPositionPageSchema = z.object({
102
+ items: z.array(analyticsPositionSchema),
103
+ total: z.number().int().nonnegative(),
104
+ offset: z.number().int().nonnegative(),
105
+ limit: z.number().int().positive().max(100)
106
+ });
107
+ //#endregion
108
+ export { ANALYTICS_POSITIONS_DEFAULT_LIMIT, ANALYTICS_POSITIONS_MAX_LIMIT, analyticsPositionListOptionsSchema, analyticsPositionListQueryParamsSchema, analyticsPositionListQuerySchema, analyticsPositionPageSchema, analyticsPositionSchema, analyticsPositionSortFieldSchema, analyticsSortDirectionSchema };
@@ -1,5 +1,5 @@
1
- import { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS } from "./charts.js";
2
1
  import { timestampSchema, tokenSchema } from "./primitives.schema.js";
2
+ import { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS } from "./charts.js";
3
3
  import { z } from "zod/v4";
4
4
  //#region src/model/charts.schema.ts
5
5
  /**
@@ -1,21 +1,23 @@
1
- import { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS } from "./charts.js";
1
+ import "./analytics.js";
2
+ import { FILTER_ALL, isFilterSet } from "./filters.js";
3
+ import { booleanParamSchema, encodeFlag, filterAllSchema, filterable } from "./filters.schema.js";
2
4
  import { backendPreferred, compareTagOf, offchainOnly, onchainOnly, tolerance } from "./compare.schema.js";
5
+ import { curatorNameSchema, curatorSchema } from "./curators.schema.js";
3
6
  import { amountSchema, assetTypeSchema, bpsSchema, chainIdSchema, leverageSchema, timestampSchema, tokenAmountSchema, tokenSchema, txCallSchema, underlyingTokenSchema } from "./primitives.schema.js";
7
+ import { delayedReceivedAssetSchema, instantReceivedAssetSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionSchema, receivedAssetSchema } from "./liquidations.schema.js";
8
+ import { apyBreakdownSchema, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityKeySchema, opportunityKindSchema, opportunitySchema, opportunityTotalsSchema, pointRewardsSchema, pointsProgramSchema, poolOpportunityDetailSchema, poolOpportunityKeySchema, poolOpportunitySchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, rewardsSchema, strategyOpportunityDetailSchema, strategyOpportunityKeySchema, strategyOpportunitySchema, tokenRewardsSchema } from "./opportunities.schema.js";
9
+ import { borrowRateBreakdownSchema, pnlBreakdownSchema, pointsProgramPnLSchema, pointsRewardsPnLSchema, poolPositionKeySchema, poolPositionSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionKeySchema, positionKindSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionsTotalsSchema, rewardsPnLSchema, strategyPositionKeySchema, strategyPositionSchema, tokenQuotaRateSchema, tokenRewardsPnLSchema } from "./positions.schema.js";
10
+ import { ANALYTICS_POSITIONS_DEFAULT_LIMIT, ANALYTICS_POSITIONS_MAX_LIMIT, analyticsPositionListOptionsSchema, analyticsPositionListQueryParamsSchema, analyticsPositionListQuerySchema, analyticsPositionPageSchema, analyticsPositionSchema, analyticsPositionSortFieldSchema, analyticsSortDirectionSchema } from "./analytics.schema.js";
11
+ import { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS } from "./charts.js";
4
12
  import { chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, poolOpportunityChartMetricSchema, poolPositionChartMetricSchema, strategyOpportunityChartMetricSchema, strategyPositionChartMetricSchema } from "./charts.schema.js";
5
13
  import "./curators.js";
6
- import { curatorNameSchema, curatorSchema } from "./curators.schema.js";
7
14
  import "./delayed-intents.js";
8
15
  import "./errors.js";
9
- import { FILTER_ALL, isFilterSet } from "./filters.js";
10
- import { booleanParamSchema, encodeFlag, filterAllSchema, filterable } from "./filters.schema.js";
11
16
  import { matchesLiquidatableAccountFilter } from "./liquidations.js";
12
- import { delayedReceivedAssetSchema, instantReceivedAssetSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionSchema, receivedAssetSchema } from "./liquidations.schema.js";
13
17
  import "./notices.js";
14
18
  import { noticeKindSchema, noticeSchema } from "./notices.schema.js";
15
19
  import { matchesOpportunityFilter, opportunityId, poolOpportunityId, strategyOpportunityId } from "./opportunities.js";
16
- import { apyBreakdownSchema, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityKeySchema, opportunityKindSchema, opportunitySchema, opportunityTotalsSchema, pointRewardsSchema, pointsProgramSchema, poolOpportunityDetailSchema, poolOpportunityKeySchema, poolOpportunitySchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, rewardsSchema, strategyOpportunityDetailSchema, strategyOpportunityKeySchema, strategyOpportunitySchema, tokenRewardsSchema } from "./opportunities.schema.js";
17
20
  import { STRATEGY_POSITION_COLLATERAL_ERROR, liquidationPositionId, matchesPositionFilter, poolPositionId, positionId, strategyPositionId } from "./positions.js";
18
- import { borrowRateBreakdownSchema, pnlBreakdownSchema, pointsProgramPnLSchema, pointsRewardsPnLSchema, poolPositionKeySchema, poolPositionSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionKeySchema, positionKindSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionsTotalsSchema, rewardsPnLSchema, strategyPositionKeySchema, strategyPositionSchema, tokenQuotaRateSchema, tokenRewardsPnLSchema } from "./positions.schema.js";
19
21
  import { asEstimated } from "./previews.js";
20
22
  import "./primitives.js";
21
23
  import "./response.js";
@@ -23,4 +25,4 @@ import { chainFailedSchema, chainMetadataSchema, chainSucceededSchema, dataSourc
23
25
  import { isSDKError, safeValue, sdkErr, sdkOk } from "./result.js";
24
26
  import "./withdrawals.js";
25
27
  import { positionClaimableWithdrawalSchema, positionPendingWithdrawalSchema, positionWithdrawalsSchema, withdrawalOutputAmountSchema } from "./withdrawals.schema.js";
26
- export { CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, FILTER_ALL, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS, STRATEGY_POSITION_COLLATERAL_ERROR, amountSchema, apyBreakdownSchema, asEstimated, assetTypeSchema, backendPreferred, booleanParamSchema, borrowRateBreakdownSchema, bpsSchema, chainFailedSchema, chainIdSchema, chainMetadataSchema, chainSucceededSchema, chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, compareTagOf, curatorNameSchema, curatorSchema, dataSourceSchema, delayedReceivedAssetSchema, encodeFlag, filterAllSchema, filterable, instantReceivedAssetSchema, isFilterSet, isSDKError, leverageSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionId, liquidationPositionSchema, matchesLiquidatableAccountFilter, matchesOpportunityFilter, matchesPositionFilter, noticeKindSchema, noticeSchema, offchainOnly, onchainOnly, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityId, opportunityKeySchema, opportunityKindSchema, opportunitySchema, opportunityTotalsSchema, pnlBreakdownSchema, pointRewardsSchema, pointsProgramPnLSchema, pointsProgramSchema, pointsRewardsPnLSchema, poolOpportunityChartMetricSchema, poolOpportunityDetailSchema, poolOpportunityId, poolOpportunityKeySchema, poolOpportunitySchema, poolPositionChartMetricSchema, poolPositionId, poolPositionKeySchema, poolPositionSchema, positionClaimableWithdrawalSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionId, positionKeySchema, positionKindSchema, positionPendingWithdrawalSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionWithdrawalsSchema, positionsTotalsSchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, receivedAssetSchema, responseMetadataSchema, responseSchema, rewardsPnLSchema, rewardsSchema, safeValue, sdkErr, sdkOk, strategyOpportunityChartMetricSchema, strategyOpportunityDetailSchema, strategyOpportunityId, strategyOpportunityKeySchema, strategyOpportunitySchema, strategyPositionChartMetricSchema, strategyPositionId, strategyPositionKeySchema, strategyPositionSchema, timestampSchema, tokenAmountSchema, tokenQuotaRateSchema, tokenRewardsPnLSchema, tokenRewardsSchema, tokenSchema, tolerance, txCallSchema, underlyingTokenSchema, withdrawalOutputAmountSchema };
28
+ export { ANALYTICS_POSITIONS_DEFAULT_LIMIT, ANALYTICS_POSITIONS_MAX_LIMIT, CHART_METRIC_UNITS, CHART_RANGES, CHART_UNAVAILABLE_CODES, FILTER_ALL, POOL_OPPORTUNITY_CHART_METRICS, POOL_POSITION_CHART_METRICS, STRATEGY_OPPORTUNITY_CHART_METRICS, STRATEGY_POSITION_CHART_METRICS, STRATEGY_POSITION_COLLATERAL_ERROR, amountSchema, analyticsPositionListOptionsSchema, analyticsPositionListQueryParamsSchema, analyticsPositionListQuerySchema, analyticsPositionPageSchema, analyticsPositionSchema, analyticsPositionSortFieldSchema, analyticsSortDirectionSchema, apyBreakdownSchema, asEstimated, assetTypeSchema, backendPreferred, booleanParamSchema, borrowRateBreakdownSchema, bpsSchema, chainFailedSchema, chainIdSchema, chainMetadataSchema, chainSucceededSchema, chartBundleSchemaFor, chartDenominationSchema, chartMetricSchema, chartQueryCodec, chartQueryParamsSchema, chartQuerySchema, chartRangeSchema, chartSeriesSchema, chartValueSchema, chartWindowSchema, compareTagOf, curatorNameSchema, curatorSchema, dataSourceSchema, delayedReceivedAssetSchema, encodeFlag, filterAllSchema, filterable, instantReceivedAssetSchema, isFilterSet, isSDKError, leverageSchema, liquidatableAccountFilterSchema, liquidatableAccountSchema, liquidationApprovalSchema, liquidationDetailsSchema, liquidationPositionId, liquidationPositionSchema, matchesLiquidatableAccountFilter, matchesOpportunityFilter, matchesPositionFilter, noticeKindSchema, noticeSchema, offchainOnly, onchainOnly, opportunityBaseSchema, opportunityDetailSchema, opportunityFilterQueryParamsSchema, opportunityFilterQuerySchema, opportunityFilterSchema, opportunityId, opportunityKeySchema, opportunityKindSchema, opportunitySchema, opportunityTotalsSchema, pnlBreakdownSchema, pointRewardsSchema, pointsProgramPnLSchema, pointsProgramSchema, pointsRewardsPnLSchema, poolOpportunityChartMetricSchema, poolOpportunityDetailSchema, poolOpportunityId, poolOpportunityKeySchema, poolOpportunitySchema, poolPositionChartMetricSchema, poolPositionId, poolPositionKeySchema, poolPositionSchema, positionClaimableWithdrawalSchema, positionCollateralSchema, positionFilterQueryParamsSchema, positionFilterQuerySchema, positionFilterSchema, positionId, positionKeySchema, positionKindSchema, positionPendingWithdrawalSchema, positionSchema, positionTransactionKindSchema, positionTransactionSchema, positionWithdrawalsSchema, positionsTotalsSchema, priceFeedDataSchema, priceFeedSummarySchema, quotaAssetSchema, rateCurvePointSchema, rateCurveSchema, receivedAssetSchema, responseMetadataSchema, responseSchema, rewardsPnLSchema, rewardsSchema, safeValue, sdkErr, sdkOk, strategyOpportunityChartMetricSchema, strategyOpportunityDetailSchema, strategyOpportunityId, strategyOpportunityKeySchema, strategyOpportunitySchema, strategyPositionChartMetricSchema, strategyPositionId, strategyPositionKeySchema, strategyPositionSchema, timestampSchema, tokenAmountSchema, tokenQuotaRateSchema, tokenRewardsPnLSchema, tokenRewardsSchema, tokenSchema, tolerance, txCallSchema, underlyingTokenSchema, withdrawalOutputAmountSchema };
@@ -1,7 +1,7 @@
1
1
  import { ZodAddress } from "../onchain/utils/zod.js";
2
- import { assetTypeSchema, bpsSchema, chainIdSchema, timestampSchema, tokenAmountSchema, tokenSchema, txCallSchema, underlyingTokenSchema } from "./primitives.schema.js";
3
- import { curatorSchema } from "./curators.schema.js";
4
2
  import { filterable } from "./filters.schema.js";
3
+ import { curatorSchema } from "./curators.schema.js";
4
+ import { assetTypeSchema, bpsSchema, chainIdSchema, timestampSchema, tokenAmountSchema, tokenSchema, txCallSchema, underlyingTokenSchema } from "./primitives.schema.js";
5
5
  import { z } from "zod/v4";
6
6
  //#region src/model/liquidations.schema.ts
7
7
  /**