@lifi/perps-sdk 24.0.0 → 25.0.1

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 (163) hide show
  1. package/README.md +34 -28
  2. package/dist/cjs/decimal/arithmetic.d.ts +2 -0
  3. package/dist/cjs/decimal/arithmetic.d.ts.map +1 -1
  4. package/dist/cjs/decimal/arithmetic.js +6 -1
  5. package/dist/cjs/decimal/arithmetic.js.map +1 -1
  6. package/dist/cjs/decimal/convert.d.ts +0 -2
  7. package/dist/cjs/decimal/convert.d.ts.map +1 -1
  8. package/dist/cjs/decimal/convert.js +2 -11
  9. package/dist/cjs/decimal/convert.js.map +1 -1
  10. package/dist/cjs/decimal/decimalStringToBig.d.ts.map +1 -1
  11. package/dist/cjs/decimal/decimalStringToBig.js +3 -5
  12. package/dist/cjs/decimal/decimalStringToBig.js.map +1 -1
  13. package/dist/cjs/decimal/parse.d.ts +1 -0
  14. package/dist/cjs/decimal/parse.d.ts.map +1 -1
  15. package/dist/cjs/decimal/parse.js +2 -1
  16. package/dist/cjs/decimal/parse.js.map +1 -1
  17. package/dist/cjs/errors/invalidInput.d.ts +3 -0
  18. package/dist/cjs/errors/invalidInput.d.ts.map +1 -0
  19. package/dist/cjs/errors/invalidInput.js +9 -0
  20. package/dist/cjs/errors/invalidInput.js.map +1 -0
  21. package/dist/cjs/index.d.ts +5 -4
  22. package/dist/cjs/index.d.ts.map +1 -1
  23. package/dist/cjs/index.js +10 -6
  24. package/dist/cjs/index.js.map +1 -1
  25. package/dist/cjs/math/order.d.ts +4 -4
  26. package/dist/cjs/math/order.d.ts.map +1 -1
  27. package/dist/cjs/math/order.js +31 -18
  28. package/dist/cjs/math/order.js.map +1 -1
  29. package/dist/cjs/math/position.d.ts +2 -2
  30. package/dist/cjs/math/position.d.ts.map +1 -1
  31. package/dist/cjs/math/position.js +17 -14
  32. package/dist/cjs/math/position.js.map +1 -1
  33. package/dist/cjs/types/provider.d.ts.map +1 -1
  34. package/dist/cjs/utils/warnOnce.d.ts +6 -2
  35. package/dist/cjs/utils/warnOnce.d.ts.map +1 -1
  36. package/dist/cjs/utils/warnOnce.js +12 -6
  37. package/dist/cjs/utils/warnOnce.js.map +1 -1
  38. package/dist/cjs/version.d.ts +1 -1
  39. package/dist/cjs/version.js +1 -1
  40. package/dist/cjs/websocket/wsLog.d.ts +1 -1
  41. package/dist/cjs/websocket/wsLog.d.ts.map +1 -1
  42. package/dist/cjs/websocket/wsLog.js +4 -3
  43. package/dist/cjs/websocket/wsLog.js.map +1 -1
  44. package/dist/cjs/wire/orderAmounts.d.ts +3 -2
  45. package/dist/cjs/wire/orderAmounts.d.ts.map +1 -1
  46. package/dist/cjs/wire/orderAmounts.js +17 -13
  47. package/dist/cjs/wire/orderAmounts.js.map +1 -1
  48. package/dist/cjs/wire/refuel.js +2 -2
  49. package/dist/cjs/wire/refuel.js.map +1 -1
  50. package/dist/esm/decimal/arithmetic.d.ts +24 -10
  51. package/dist/esm/decimal/arithmetic.d.ts.map +1 -1
  52. package/dist/esm/decimal/arithmetic.js +26 -10
  53. package/dist/esm/decimal/arithmetic.js.map +1 -1
  54. package/dist/esm/decimal/compare.d.ts +3 -3
  55. package/dist/esm/decimal/compare.js +3 -3
  56. package/dist/esm/decimal/convert.d.ts +2 -24
  57. package/dist/esm/decimal/convert.d.ts.map +1 -1
  58. package/dist/esm/decimal/convert.js +3 -32
  59. package/dist/esm/decimal/convert.js.map +1 -1
  60. package/dist/esm/decimal/decimalStringToBig.d.ts +4 -5
  61. package/dist/esm/decimal/decimalStringToBig.d.ts.map +1 -1
  62. package/dist/esm/decimal/decimalStringToBig.js +7 -10
  63. package/dist/esm/decimal/decimalStringToBig.js.map +1 -1
  64. package/dist/esm/decimal/format.js +3 -3
  65. package/dist/esm/decimal/parse.d.ts +8 -1
  66. package/dist/esm/decimal/parse.d.ts.map +1 -1
  67. package/dist/esm/decimal/parse.js +8 -1
  68. package/dist/esm/decimal/parse.js.map +1 -1
  69. package/dist/esm/errors/invalidInput.d.ts +4 -0
  70. package/dist/esm/errors/invalidInput.d.ts.map +1 -0
  71. package/dist/esm/errors/invalidInput.js +7 -0
  72. package/dist/esm/errors/invalidInput.js.map +1 -0
  73. package/dist/esm/index.d.ts +5 -4
  74. package/dist/esm/index.d.ts.map +1 -1
  75. package/dist/esm/index.js +5 -4
  76. package/dist/esm/index.js.map +1 -1
  77. package/dist/esm/math/fills.d.ts +4 -4
  78. package/dist/esm/math/fills.js +4 -4
  79. package/dist/esm/math/order.d.ts +24 -26
  80. package/dist/esm/math/order.d.ts.map +1 -1
  81. package/dist/esm/math/order.js +52 -41
  82. package/dist/esm/math/order.js.map +1 -1
  83. package/dist/esm/math/position.d.ts +30 -26
  84. package/dist/esm/math/position.d.ts.map +1 -1
  85. package/dist/esm/math/position.js +46 -39
  86. package/dist/esm/math/position.js.map +1 -1
  87. package/dist/esm/services/resolveSubscribeQuote.d.ts +1 -1
  88. package/dist/esm/services/resolveSubscribeQuote.js +1 -1
  89. package/dist/esm/types/provider.d.ts +5 -3
  90. package/dist/esm/types/provider.d.ts.map +1 -1
  91. package/dist/esm/utils/createSafeFunction.d.ts +1 -1
  92. package/dist/esm/utils/createSafeFunction.js +1 -1
  93. package/dist/esm/utils/warnOnce.d.ts +17 -6
  94. package/dist/esm/utils/warnOnce.d.ts.map +1 -1
  95. package/dist/esm/utils/warnOnce.js +22 -10
  96. package/dist/esm/utils/warnOnce.js.map +1 -1
  97. package/dist/esm/version.d.ts +1 -1
  98. package/dist/esm/version.js +1 -1
  99. package/dist/esm/websocket/wsLog.d.ts +4 -4
  100. package/dist/esm/websocket/wsLog.d.ts.map +1 -1
  101. package/dist/esm/websocket/wsLog.js +8 -7
  102. package/dist/esm/websocket/wsLog.js.map +1 -1
  103. package/dist/esm/wire/orderAmounts.d.ts +9 -7
  104. package/dist/esm/wire/orderAmounts.d.ts.map +1 -1
  105. package/dist/esm/wire/orderAmounts.js +22 -18
  106. package/dist/esm/wire/orderAmounts.js.map +1 -1
  107. package/dist/esm/wire/refuel.d.ts +1 -1
  108. package/dist/esm/wire/refuel.js +4 -4
  109. package/dist/esm/wire/refuel.js.map +1 -1
  110. package/dist/esm/wire/transferable.d.ts +2 -2
  111. package/dist/esm/wire/transferable.js +2 -2
  112. package/dist/types/decimal/arithmetic.d.ts +24 -10
  113. package/dist/types/decimal/arithmetic.d.ts.map +1 -1
  114. package/dist/types/decimal/compare.d.ts +3 -3
  115. package/dist/types/decimal/convert.d.ts +2 -24
  116. package/dist/types/decimal/convert.d.ts.map +1 -1
  117. package/dist/types/decimal/decimalStringToBig.d.ts +4 -5
  118. package/dist/types/decimal/decimalStringToBig.d.ts.map +1 -1
  119. package/dist/types/decimal/parse.d.ts +8 -1
  120. package/dist/types/decimal/parse.d.ts.map +1 -1
  121. package/dist/types/errors/invalidInput.d.ts +4 -0
  122. package/dist/types/errors/invalidInput.d.ts.map +1 -0
  123. package/dist/types/index.d.ts +5 -4
  124. package/dist/types/index.d.ts.map +1 -1
  125. package/dist/types/math/fills.d.ts +4 -4
  126. package/dist/types/math/order.d.ts +24 -26
  127. package/dist/types/math/order.d.ts.map +1 -1
  128. package/dist/types/math/position.d.ts +30 -26
  129. package/dist/types/math/position.d.ts.map +1 -1
  130. package/dist/types/services/resolveSubscribeQuote.d.ts +1 -1
  131. package/dist/types/types/provider.d.ts +5 -3
  132. package/dist/types/types/provider.d.ts.map +1 -1
  133. package/dist/types/utils/createSafeFunction.d.ts +1 -1
  134. package/dist/types/utils/warnOnce.d.ts +17 -6
  135. package/dist/types/utils/warnOnce.d.ts.map +1 -1
  136. package/dist/types/version.d.ts +1 -1
  137. package/dist/types/websocket/wsLog.d.ts +4 -4
  138. package/dist/types/websocket/wsLog.d.ts.map +1 -1
  139. package/dist/types/wire/orderAmounts.d.ts +9 -7
  140. package/dist/types/wire/orderAmounts.d.ts.map +1 -1
  141. package/dist/types/wire/refuel.d.ts +1 -1
  142. package/dist/types/wire/transferable.d.ts +2 -2
  143. package/package.json +2 -2
  144. package/src/decimal/arithmetic.ts +36 -10
  145. package/src/decimal/compare.ts +3 -3
  146. package/src/decimal/convert.ts +3 -40
  147. package/src/decimal/decimalStringToBig.ts +7 -12
  148. package/src/decimal/format.ts +3 -3
  149. package/src/decimal/parse.ts +12 -1
  150. package/src/errors/invalidInput.ts +10 -0
  151. package/src/index.ts +8 -3
  152. package/src/math/fills.ts +4 -4
  153. package/src/math/order.ts +56 -48
  154. package/src/math/position.ts +50 -44
  155. package/src/services/resolveSubscribeQuote.ts +1 -1
  156. package/src/types/provider.ts +5 -3
  157. package/src/utils/createSafeFunction.ts +1 -1
  158. package/src/utils/warnOnce.ts +28 -12
  159. package/src/version.ts +1 -1
  160. package/src/websocket/wsLog.ts +22 -9
  161. package/src/wire/orderAmounts.ts +42 -24
  162. package/src/wire/refuel.ts +4 -4
  163. package/src/wire/transferable.ts +2 -2
@@ -2,7 +2,7 @@
2
2
  * Display-tier position formulas and margin-adjustment predicates. Every
3
3
  * formula takes and gives decimal strings; arithmetic is exact Big.js, with
4
4
  * division to 40 decimal places. Each formula throws `ValidationError` on an
5
- * input that is not a decimal string and has a `safe*` pair that gives
5
+ * input that does not match the decimal pattern and has a `safe*` pair that gives
6
6
  * `undefined` in place of the throw.
7
7
  *
8
8
  * Sign convention: long = +1, short = -1. Sizes passed to the `estimate*`
@@ -14,7 +14,7 @@ import type { LiquidationEstimateParams } from '../types/provider.js';
14
14
  /**
15
15
  * Notional value of a position: `|size| × price`.
16
16
  *
17
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
17
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
18
18
  * @public
19
19
  */
20
20
  export declare function calculateNotionalValue(size: string, price: string): string;
@@ -24,7 +24,7 @@ export declare const safeCalculateNotionalValue: (size: string, price: string) =
24
24
  * Unrealized PnL: `(currentPrice - entryPrice) × size`, where `size` is
25
25
  * positive for a long and negative for a short.
26
26
  *
27
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
27
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
28
28
  * @public
29
29
  */
30
30
  export declare function calculateUnrealizedPnl(entryPrice: string, currentPrice: string, size: string): string;
@@ -32,9 +32,9 @@ export declare function calculateUnrealizedPnl(entryPrice: string, currentPrice:
32
32
  export declare const safeCalculateUnrealizedPnl: (entryPrice: string, currentPrice: string, size: string) => string | undefined;
33
33
  /**
34
34
  * Return on equity as a percentage (`'10'` for 10%): `pnl ÷ margin × 100`.
35
- * A zero margin gives `'0'`.
36
35
  *
37
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
36
+ * @throws {PerpsError} `ValidationError` when an input does not match the
37
+ * decimal pattern or `margin` is zero.
38
38
  * @public
39
39
  */
40
40
  export declare function calculateRoe(pnl: string, margin: string): string;
@@ -43,7 +43,7 @@ export declare const safeCalculateRoe: (pnl: string, margin: string) => string |
43
43
  /**
44
44
  * Required margin: `notionalValue ÷ leverage`.
45
45
  *
46
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string
46
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
47
47
  * or `leverage` is zero.
48
48
  * @public
49
49
  */
@@ -52,9 +52,10 @@ export declare function calculateRequiredMargin(notionalValue: string, leverage:
52
52
  export declare const safeCalculateRequiredMargin: (notionalValue: string, leverage: string) => string | undefined;
53
53
  /**
54
54
  * Distance from the current price to the liquidation price, as an absolute
55
- * percentage of the current price. A zero current price gives `'0'`.
55
+ * percentage of the current price.
56
56
  *
57
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
57
+ * @throws {PerpsError} `ValidationError` when an input does not match the
58
+ * decimal pattern or `currentPrice` is zero.
58
59
  * @public
59
60
  */
60
61
  export declare function calculateLiquidationDistance(params: {
@@ -68,9 +69,9 @@ export declare const safeCalculateLiquidationDistance: (params: {
68
69
  }) => string | undefined;
69
70
  /**
70
71
  * Effective leverage of an open position: `positionValueUsd ÷ marginUsd`.
71
- * A zero margin gives `'0'`.
72
72
  *
73
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
73
+ * @throws {PerpsError} `ValidationError` when an input does not match the
74
+ * decimal pattern or `marginUsd` is zero.
74
75
  * @public
75
76
  */
76
77
  export declare function calculateEffectiveLeverage(params: {
@@ -94,9 +95,12 @@ export declare const safeCalculateEffectiveLeverage: (params: {
94
95
  *
95
96
  * @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
96
97
  * (`'0.01'` = 1%).
97
- * @returns The estimate, or `undefined` for a zero leverage or a zero
98
- * denominator.
99
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
98
+ * @returns The estimate, or `undefined` when `1 / leverage` is at or below
99
+ * `maintenanceMarginRate`: the position opens at or past liquidation, so
100
+ * the model has no price on the correct side of entry.
101
+ * @throws {PerpsError} `ValidationError` when an input does not match the
102
+ * decimal pattern, `leverage` is zero, or `maintenanceMarginRate` gives a
103
+ * zero denominator (`1` for a long, `-1` for a short).
100
104
  * @public
101
105
  */
102
106
  export declare function estimateLiquidationPrice(params: {
@@ -117,8 +121,10 @@ export declare const safeEstimateLiquidationPrice: (params: {
117
121
  * `market.maintenanceMarginRate`.
118
122
  *
119
123
  * @returns The estimate, or `undefined` when the market carries no
120
- * `maintenanceMarginRate` or `estimateLiquidationPrice` gives `undefined`.
121
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
124
+ * `maintenanceMarginRate` or {@link estimateLiquidationPrice} gives
125
+ * `undefined`.
126
+ * @throws {PerpsError} `ValidationError` on an input that
127
+ * {@link estimateLiquidationPrice} rejects.
122
128
  * @public
123
129
  */
124
130
  export declare function estimateLiquidationPriceAtMarketRate(market: PerpsMarket, params: LiquidationEstimateParams): string | undefined;
@@ -130,7 +136,7 @@ export declare const safeEstimateLiquidationPriceAtMarketRate: (market: PerpsMar
130
136
  * liquidation level, a short when it rises to it. A non-positive price on
131
137
  * either side counts as unknown, so the result is `false`.
132
138
  *
133
- * @throws {PerpsError} `ValidationError` when a price is not a decimal string.
139
+ * @throws {PerpsError} `ValidationError` when a price does not match the decimal pattern.
134
140
  * @public
135
141
  */
136
142
  export declare function wouldImmediatelyLiquidate(params: {
@@ -151,9 +157,8 @@ export declare const safeWouldImmediatelyLiquidate: (params: {
151
157
  *
152
158
  * @param fillPrice - Expected fill price (mid for market, limit price for
153
159
  * limit orders).
154
- * @returns The new average entry price, or `undefined` when the combined size
155
- * is not positive.
156
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
160
+ * @throws {PerpsError} `ValidationError` when an input does not match the
161
+ * decimal pattern or `currentSize + addSize` is not positive.
157
162
  * @public
158
163
  */
159
164
  export declare function estimateAverageEntryPrice(params: {
@@ -161,7 +166,7 @@ export declare function estimateAverageEntryPrice(params: {
161
166
  currentEntry: string;
162
167
  addSize: string;
163
168
  fillPrice: string;
164
- }): string | undefined;
169
+ }): string;
165
170
  /** @public */
166
171
  export declare const safeEstimateAverageEntryPrice: (params: {
167
172
  currentSize: string;
@@ -173,9 +178,8 @@ export declare const safeEstimateAverageEntryPrice: (params: {
173
178
  * Estimated effective leverage after adding margin and notional:
174
179
  * `(currentNotional + addNotional) ÷ (currentMargin + addMargin)`.
175
180
  *
176
- * @returns The new leverage, or `undefined` when the total margin is not
177
- * positive.
178
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
181
+ * @throws {PerpsError} `ValidationError` when an input does not match the
182
+ * decimal pattern or `currentMargin + addMargin` is not positive.
179
183
  * @public
180
184
  */
181
185
  export declare function estimateNewLeverage(params: {
@@ -183,7 +187,7 @@ export declare function estimateNewLeverage(params: {
183
187
  currentMargin: string;
184
188
  addNotional: string;
185
189
  addMargin: string;
186
- }): string | undefined;
190
+ }): string;
187
191
  /** @public */
188
192
  export declare const safeEstimateNewLeverage: (params: {
189
193
  currentNotional: string;
@@ -196,7 +200,7 @@ export declare const safeEstimateNewLeverage: (params: {
196
200
  * `(markPrice - entryPrice) × size × (isLong ? 1 : -1)`.
197
201
  *
198
202
  * @param size - Position size as a non-negative magnitude.
199
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
203
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
200
204
  * @public
201
205
  */
202
206
  export declare function estimateUnrealizedPnl(params: {
@@ -217,7 +221,7 @@ export declare const safeEstimateUnrealizedPnl: (params: {
217
221
  * `(closePrice - entryPrice) × closeSize × (isLong ? 1 : -1)`.
218
222
  *
219
223
  * @param closeSize - Size being closed as a non-negative magnitude.
220
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
224
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
221
225
  * @public
222
226
  */
223
227
  export declare function calculateRealizedPnl(params: {
@@ -1 +1 @@
1
- {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,22 @@
2
2
  * Display-tier position formulas and margin-adjustment predicates. Every
3
3
  * formula takes and gives decimal strings; arithmetic is exact Big.js, with
4
4
  * division to 40 decimal places. Each formula throws `ValidationError` on an
5
- * input that is not a decimal string and has a `safe*` pair that gives
5
+ * input that does not match the decimal pattern and has a `safe*` pair that gives
6
6
  * `undefined` in place of the throw.
7
7
  *
8
8
  * Sign convention: long = +1, short = -1. Sizes passed to the `estimate*`
9
9
  * helpers are always non-negative magnitudes; direction is carried by
10
10
  * `isLong`.
11
11
  */
12
- import { MarginMode, PerpsErrorCode, PositionMarginAdjustment, } from '@lifi/perps-types';
12
+ import { MarginMode, PositionMarginAdjustment, } from '@lifi/perps-types';
13
13
  import { DivBig } from '../decimal/big.js';
14
- import { numberToDecimalString } from '../decimal/convert.js';
15
14
  import { bigToDecimalString, decimalStringToBig, decimalStringToDivBig, } from '../decimal/decimalStringToBig.js';
16
- import { PerpsError } from '../errors/PerpsError.js';
15
+ import { invalidInput } from '../errors/invalidInput.js';
17
16
  import { createSafeFunction } from '../utils/createSafeFunction.js';
18
17
  /**
19
18
  * Notional value of a position: `|size| × price`.
20
19
  *
21
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
20
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
22
21
  * @public
23
22
  */
24
23
  export function calculateNotionalValue(size, price) {
@@ -30,7 +29,7 @@ export const safeCalculateNotionalValue = createSafeFunction('calculateNotionalV
30
29
  * Unrealized PnL: `(currentPrice - entryPrice) × size`, where `size` is
31
30
  * positive for a long and negative for a short.
32
31
  *
33
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
32
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
34
33
  * @public
35
34
  */
36
35
  export function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
@@ -42,16 +41,16 @@ export function calculateUnrealizedPnl(entryPrice, currentPrice, size) {
42
41
  export const safeCalculateUnrealizedPnl = createSafeFunction('calculateUnrealizedPnl', calculateUnrealizedPnl);
43
42
  /**
44
43
  * Return on equity as a percentage (`'10'` for 10%): `pnl ÷ margin × 100`.
45
- * A zero margin gives `'0'`.
46
44
  *
47
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
45
+ * @throws {PerpsError} `ValidationError` when an input does not match the
46
+ * decimal pattern or `margin` is zero.
48
47
  * @public
49
48
  */
50
49
  export function calculateRoe(pnl, margin) {
51
50
  const marginBig = decimalStringToBig(margin);
52
51
  const pnlBig = decimalStringToDivBig(pnl);
53
52
  if (marginBig.eq(0)) {
54
- return '0';
53
+ throw invalidInput('margin', 'must not be zero');
55
54
  }
56
55
  return bigToDecimalString(pnlBig.div(marginBig).times(100));
57
56
  }
@@ -60,7 +59,7 @@ export const safeCalculateRoe = createSafeFunction('calculateRoe', calculateRoe)
60
59
  /**
61
60
  * Required margin: `notionalValue ÷ leverage`.
62
61
  *
63
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string
62
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern
64
63
  * or `leverage` is zero.
65
64
  * @public
66
65
  */
@@ -68,7 +67,7 @@ export function calculateRequiredMargin(notionalValue, leverage) {
68
67
  const notionalBig = decimalStringToDivBig(notionalValue);
69
68
  const leverageBig = decimalStringToBig(leverage);
70
69
  if (leverageBig.eq(0)) {
71
- throw new PerpsError(PerpsErrorCode.ValidationError, 'Leverage must not be zero.');
70
+ throw invalidInput('leverage', 'must not be zero');
72
71
  }
73
72
  return bigToDecimalString(notionalBig.div(leverageBig));
74
73
  }
@@ -76,16 +75,17 @@ export function calculateRequiredMargin(notionalValue, leverage) {
76
75
  export const safeCalculateRequiredMargin = createSafeFunction('calculateRequiredMargin', calculateRequiredMargin);
77
76
  /**
78
77
  * Distance from the current price to the liquidation price, as an absolute
79
- * percentage of the current price. A zero current price gives `'0'`.
78
+ * percentage of the current price.
80
79
  *
81
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
80
+ * @throws {PerpsError} `ValidationError` when an input does not match the
81
+ * decimal pattern or `currentPrice` is zero.
82
82
  * @public
83
83
  */
84
84
  export function calculateLiquidationDistance(params) {
85
85
  const liquidationPrice = decimalStringToDivBig(params.liquidationPrice);
86
86
  const currentPrice = decimalStringToBig(params.currentPrice);
87
87
  if (currentPrice.eq(0)) {
88
- return '0';
88
+ throw invalidInput('currentPrice', 'must not be zero');
89
89
  }
90
90
  return bigToDecimalString(liquidationPrice.minus(currentPrice).div(currentPrice).abs().times(100));
91
91
  }
@@ -93,16 +93,16 @@ export function calculateLiquidationDistance(params) {
93
93
  export const safeCalculateLiquidationDistance = createSafeFunction('calculateLiquidationDistance', calculateLiquidationDistance);
94
94
  /**
95
95
  * Effective leverage of an open position: `positionValueUsd ÷ marginUsd`.
96
- * A zero margin gives `'0'`.
97
96
  *
98
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
97
+ * @throws {PerpsError} `ValidationError` when an input does not match the
98
+ * decimal pattern or `marginUsd` is zero.
99
99
  * @public
100
100
  */
101
101
  export function calculateEffectiveLeverage(params) {
102
102
  const positionValue = decimalStringToDivBig(params.positionValueUsd);
103
103
  const margin = decimalStringToBig(params.marginUsd);
104
104
  if (margin.eq(0)) {
105
- return '0';
105
+ throw invalidInput('marginUsd', 'must not be zero');
106
106
  }
107
107
  return bigToDecimalString(positionValue.div(margin));
108
108
  }
@@ -120,9 +120,12 @@ export const safeCalculateEffectiveLeverage = createSafeFunction('calculateEffec
120
120
  *
121
121
  * @param maintenanceMarginRate - Venue maintenance margin rate as a fraction
122
122
  * (`'0.01'` = 1%).
123
- * @returns The estimate, or `undefined` for a zero leverage or a zero
124
- * denominator.
125
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
123
+ * @returns The estimate, or `undefined` when `1 / leverage` is at or below
124
+ * `maintenanceMarginRate`: the position opens at or past liquidation, so
125
+ * the model has no price on the correct side of entry.
126
+ * @throws {PerpsError} `ValidationError` when an input does not match the
127
+ * decimal pattern, `leverage` is zero, or `maintenanceMarginRate` gives a
128
+ * zero denominator (`1` for a long, `-1` for a short).
126
129
  * @public
127
130
  */
128
131
  export function estimateLiquidationPrice(params) {
@@ -131,13 +134,17 @@ export function estimateLiquidationPrice(params) {
131
134
  const mmr = decimalStringToBig(params.maintenanceMarginRate);
132
135
  const side = params.isLong ? 1 : -1;
133
136
  const denominator = mmr.times(-side).plus(1);
134
- if (leverage.eq(0) || denominator.eq(0)) {
137
+ if (leverage.eq(0)) {
138
+ throw invalidInput('leverage', 'must not be zero');
139
+ }
140
+ if (denominator.eq(0)) {
141
+ throw invalidInput('maintenanceMarginRate', `must not be ${params.isLong ? '1' : '-1'} for this side`);
142
+ }
143
+ const marginFractionAvailable = new DivBig(1).div(leverage).minus(mmr);
144
+ if (marginFractionAvailable.lte(0)) {
135
145
  return undefined;
136
146
  }
137
- const marginAvailable = new DivBig(1)
138
- .div(leverage)
139
- .minus(mmr)
140
- .times(entryPrice);
147
+ const marginAvailable = marginFractionAvailable.times(entryPrice);
141
148
  return bigToDecimalString(entryPrice.minus(marginAvailable.times(side).div(denominator)));
142
149
  }
143
150
  /** @public */
@@ -147,8 +154,10 @@ export const safeEstimateLiquidationPrice = createSafeFunction('estimateLiquidat
147
154
  * `market.maintenanceMarginRate`.
148
155
  *
149
156
  * @returns The estimate, or `undefined` when the market carries no
150
- * `maintenanceMarginRate` or `estimateLiquidationPrice` gives `undefined`.
151
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
157
+ * `maintenanceMarginRate` or {@link estimateLiquidationPrice} gives
158
+ * `undefined`.
159
+ * @throws {PerpsError} `ValidationError` on an input that
160
+ * {@link estimateLiquidationPrice} rejects.
152
161
  * @public
153
162
  */
154
163
  export function estimateLiquidationPriceAtMarketRate(market, params) {
@@ -159,7 +168,7 @@ export function estimateLiquidationPriceAtMarketRate(market, params) {
159
168
  entryPrice: params.entryPrice,
160
169
  leverage: params.leverage,
161
170
  isLong: params.isLong,
162
- maintenanceMarginRate: numberToDecimalString(market.maintenanceMarginRate),
171
+ maintenanceMarginRate: market.maintenanceMarginRate,
163
172
  });
164
173
  }
165
174
  /** @public */
@@ -170,7 +179,7 @@ export const safeEstimateLiquidationPriceAtMarketRate = createSafeFunction('esti
170
179
  * liquidation level, a short when it rises to it. A non-positive price on
171
180
  * either side counts as unknown, so the result is `false`.
172
181
  *
173
- * @throws {PerpsError} `ValidationError` when a price is not a decimal string.
182
+ * @throws {PerpsError} `ValidationError` when a price does not match the decimal pattern.
174
183
  * @public
175
184
  */
176
185
  export function wouldImmediatelyLiquidate(params) {
@@ -192,9 +201,8 @@ export const safeWouldImmediatelyLiquidate = createSafeFunction('wouldImmediatel
192
201
  *
193
202
  * @param fillPrice - Expected fill price (mid for market, limit price for
194
203
  * limit orders).
195
- * @returns The new average entry price, or `undefined` when the combined size
196
- * is not positive.
197
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
204
+ * @throws {PerpsError} `ValidationError` when an input does not match the
205
+ * decimal pattern or `currentSize + addSize` is not positive.
198
206
  * @public
199
207
  */
200
208
  export function estimateAverageEntryPrice(params) {
@@ -204,7 +212,7 @@ export function estimateAverageEntryPrice(params) {
204
212
  const fillPrice = decimalStringToBig(params.fillPrice);
205
213
  const totalSize = currentSize.plus(addSize);
206
214
  if (totalSize.lte(0)) {
207
- return undefined;
215
+ throw invalidInput('currentSize + addSize', 'must be positive');
208
216
  }
209
217
  return bigToDecimalString(currentSize
210
218
  .times(currentEntry)
@@ -217,16 +225,15 @@ export const safeEstimateAverageEntryPrice = createSafeFunction('estimateAverage
217
225
  * Estimated effective leverage after adding margin and notional:
218
226
  * `(currentNotional + addNotional) ÷ (currentMargin + addMargin)`.
219
227
  *
220
- * @returns The new leverage, or `undefined` when the total margin is not
221
- * positive.
222
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
228
+ * @throws {PerpsError} `ValidationError` when an input does not match the
229
+ * decimal pattern or `currentMargin + addMargin` is not positive.
223
230
  * @public
224
231
  */
225
232
  export function estimateNewLeverage(params) {
226
233
  const totalNotional = decimalStringToDivBig(params.currentNotional).plus(decimalStringToBig(params.addNotional));
227
234
  const totalMargin = decimalStringToBig(params.currentMargin).plus(decimalStringToBig(params.addMargin));
228
235
  if (totalMargin.lte(0)) {
229
- return undefined;
236
+ throw invalidInput('currentMargin + addMargin', 'must be positive');
230
237
  }
231
238
  return bigToDecimalString(totalNotional.div(totalMargin));
232
239
  }
@@ -237,7 +244,7 @@ export const safeEstimateNewLeverage = createSafeFunction('estimateNewLeverage',
237
244
  * `(markPrice - entryPrice) × size × (isLong ? 1 : -1)`.
238
245
  *
239
246
  * @param size - Position size as a non-negative magnitude.
240
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
247
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
241
248
  * @public
242
249
  */
243
250
  export function estimateUnrealizedPnl(params) {
@@ -253,7 +260,7 @@ export const safeEstimateUnrealizedPnl = createSafeFunction('estimateUnrealizedP
253
260
  * `(closePrice - entryPrice) × closeSize × (isLong ? 1 : -1)`.
254
261
  *
255
262
  * @param closeSize - Size being closed as a non-negative magnitude.
256
- * @throws {PerpsError} `ValidationError` when an input is not a decimal string.
263
+ * @throws {PerpsError} `ValidationError` when an input does not match the decimal pattern.
257
264
  * @public
258
265
  */
259
266
  export function calculateRealizedPnl(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../src/math/position.ts"],"names":[],"mappings":"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"}
@@ -29,7 +29,7 @@ export declare const QUOTE_THROTTLE_MS = 100;
29
29
  * price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
30
30
  * emission is skipped, on both the immediate and the trailing-timer path.
31
31
  *
32
- * @throws {PerpsError} `ValidationError` when `params.size` is not a decimal string.
32
+ * @throws {PerpsError} `ValidationError` when `params.size` does not match the decimal pattern.
33
33
  * @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
34
34
  * @internal
35
35
  */
@@ -32,7 +32,7 @@ export const QUOTE_THROTTLE_MS = 100;
32
32
  * price, a throwing `onQuote`) is logged via `wsLog.listenerFailure` and the
33
33
  * emission is skipped, on both the immediate and the trailing-timer path.
34
34
  *
35
- * @throws {PerpsError} `ValidationError` when `params.size` is not a decimal string.
35
+ * @throws {PerpsError} `ValidationError` when `params.size` does not match the decimal pattern.
36
36
  * @throws {PerpsError} `MarketNotFound` when no market matches symbol+type.
37
37
  * @internal
38
38
  */
@@ -469,9 +469,11 @@ export interface PerpsProviderPlugin {
469
469
  * positions, prefer `Position.liquidationPrice` from the venue. Pure —
470
470
  * does no I/O.
471
471
  *
472
- * @returns The estimated liquidation price, or `undefined` when the venue's
473
- * model cannot be evaluated client-side (degenerate inputs, or `market`
474
- * lacks the margin metadata the model needs).
472
+ * @returns The estimated liquidation price, or `undefined` when `market`
473
+ * lacks the margin metadata the model needs or `leverage` leaves no
474
+ * margin above the maintenance requirement.
475
+ * @throws {PerpsError} `ValidationError` when an input does not match the
476
+ * decimal pattern or is degenerate, such as a zero leverage.
475
477
  */
476
478
  estimateLiquidationPrice(market: PerpsMarket, params: LiquidationEstimateParams): string | undefined;
477
479
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,MAAM,EACN,SAAS,EACT,cAAc,EACd,KAAK,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,wBAAwB,EACxB,QAAQ,EACR,iBAAiB,EACjB,KAAK,EACL,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,SAAS,EACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EAClB,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EACV,2BAA2B,EAC3B,qBAAqB,EACrB,YAAY,EACb,MAAM,iBAAiB,CAAA;AAExB;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;IAChC,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,CAAC,EAAE,iBAAiB,CAAA;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,CAAA;IACnC,uDAAuD;IACvD,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,MAAM,EAAE,WAAW,GAAG,WAAW,CAAA;IACjC,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,UAAU,CAAC,EAAE,iBAAiB,CAAA;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;;;;;OASG;IACH,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC/D;;;;;OAKG;IACH,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAA;CACpD;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,mDAAmD;IACnD,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,MAAM,EAAE,OAAO,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,qCAAqC;IACpD,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,gCAAgC;IAC/C,OAAO,EAAE,OAAO,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,OAAO,CAAA;IAChB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,+BAA+B;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB;uDACmD;IACnD,MAAM,EAAE,SAAS,CAAA;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,yCAAyC;IACzC,EAAE,EAAE,MAAM,CAAA;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,qEAAqE;IACrE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,IAAI,CAAC,EAAE,YAAY,EAAE,CAAA;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,iCAAiC;IAChD,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE,qBAAqB,CAAA;CAC7B;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,sEAAsE;IACtE,IAAI,EAAE,SAAS,CAAA;IACf,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,sEAAsE;IACtE,IAAI,EAAE,SAAS,CAAA;CAChB;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;AAElD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;;;;;OAOG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS,UAAU,EAAE,CAAA;IAExD;;;;;;OAMG;IACH,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAA;IAElC,UAAU,CACR,MAAM,EAAE,wBAAwB,EAChC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAA;IAE3B;;;;;;OAMG;IACH,aAAa,CACX,MAAM,EAAE,2BAA2B,EACnC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAA;IAEnB;;;;;;;;OAQG;IACH,cAAc,CAAC,CACb,MAAM,EAAE,4BAA4B,EACpC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,WAAW,CAAC,CAAA;IAEvB;;;;;;;OAOG;IACH,eAAe,CAAC,CACd,MAAM,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAAA;IAExB;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,CACtB,MAAM,EAAE,qCAAqC,EAC7C,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,2BAA2B,EAAE,CAAC,CAAA;IAEzC;;;;;;OAMG;IACH,kBAAkB,CAAC,CACjB,MAAM,EAAE,gCAAgC,EACxC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAEnC,YAAY,CACV,MAAM,EAAE,0BAA0B,EAClC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE7B;;;;;;;OAOG;IACH,iBAAiB,CACf,MAAM,EAAE,+BAA+B,EACvC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAA;IAE1B;;;;;;;OAOG;IACH,mBAAmB,CAAC,CAClB,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAA;IAExC,SAAS,CACP,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,cAAc,CAAC,CAAA;IAE1B,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;IAEjB,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,aAAa,CAAC,CAAA;IAEzB,WAAW,CACT,MAAM,EAAE,yBAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAA;IAE9B;;;OAGG;IACH,mBAAmB,CAAC,CAClB,MAAM,EAAE,iCAAiC,EACzC,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAEpC;;;;;;OAMG;IACH,QAAQ,CACN,MAAM,EAAE,sBAAsB,EAC9B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;IAEjB;;;;;;;;OAQG;IACH,iBAAiB,CACf,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,QAAQ,EAAE,GACpB,cAAc,CAAA;IAEjB;;;;;;;;;;;;;;;OAeG;IACH,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,aAAa,CAAA;IAEnE;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,aAAa,CAAA;IAEjE;;;;;;;;;OASG;IACH,wBAAwB,CACtB,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,yBAAyB,GAChC,MAAM,GAAG,SAAS,CAAA;IAErB;;;;;;;;;;OAUG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,aAAa,GAAG,SAAS,CAAA;IAEtE;;;;;;;;;;;;OAYG;IACH,aAAa,CACX,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,WAAW,EAAE,GACnB,oBAAoB,EAAE,CAAA;IAEzB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,CACjB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAEnC;;;;;;;;;;;;;;;OAeG;IACH,oBAAoB,CAAC,CACnB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,wBAAwB,CAAC,CAAA;IAEpC;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,CACV,MAAM,EAAE,aAAa,EACrB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,OAAO,EAChB,GAAG,CAAC,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;IAE9B;;;;OAIG;IACH,gBAAgB,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAE3E;;;;;;;;OAQG;IACH,mBAAmB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;CACzD;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAA"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/types/provider.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * The wrapper logs a warning with `name` and the error, which carries the
4
4
  * stack trace.
5
5
  *
6
- * @internal
6
+ * @public
7
7
  */
8
8
  export declare function createSafeFunction<Args extends unknown[], Result>(name: string, throwingFunction: (...args: Args) => Result): (...args: Args) => Result | undefined;
9
9
  //# sourceMappingURL=createSafeFunction.d.ts.map
@@ -3,7 +3,7 @@
3
3
  * The wrapper logs a warning with `name` and the error, which carries the
4
4
  * stack trace.
5
5
  *
6
- * @internal
6
+ * @public
7
7
  */
8
8
  export function createSafeFunction(name, throwingFunction) {
9
9
  return (...args) => {
@@ -6,20 +6,31 @@
6
6
  * @internal
7
7
  */
8
8
  export declare const createWarnOnce: () => ((key: string, message: string) => void);
9
+ /**
10
+ * Cut venue text to a fixed length, so a warner key or message built from it
11
+ * stays small.
12
+ *
13
+ * @internal
14
+ */
15
+ export declare const cutVenueText: (value: unknown) => string;
9
16
  /**
10
17
  * Describe a skipped venue row. The venue value is cut to a fixed length, so
11
18
  * a warner key built from the text stays small.
12
19
  *
13
20
  * @internal
14
21
  */
15
- export declare const skippedRowMessage: (source: string, row: string, field: string, value: unknown, expected: string) => string;
22
+ export declare const skippedRowMessage: (source: string, row: string, field: string, value: unknown, expected: string, marketId?: string) => string;
16
23
  /**
17
- * Warn once for each provider, row, field and expected kind that a provider
18
- * mapper skipped a venue row because a required field is not valid. The key
19
- * holds no venue value, so a second bad value for the same field stays silent.
24
+ * Warn once for each provider, row, field, expected kind and market that a
25
+ * provider mapper skipped a venue row because a required field is not valid.
26
+ * The key holds no venue value, so a second bad value for the same field on
27
+ * the same market stays silent.
20
28
  *
21
- * @param expected - What the field must be. Defaults to `'decimal'`.
29
+ * @param options.expected - What the field must be. Defaults to `'decimal'`.
22
30
  * @internal
23
31
  */
24
- export declare const warnSkippedVenueRow: (provider: string, row: string, field: string, value: unknown, expected?: string) => void;
32
+ export declare const warnSkippedVenueRow: (provider: string, row: string, field: string, value: unknown, { marketId, expected, }?: {
33
+ marketId?: string;
34
+ expected?: string;
35
+ }) => void;
25
36
  //# sourceMappingURL=warnOnce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"warnOnce.d.ts","sourceRoot":"","sources":["../../../src/utils/warnOnce.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAexE,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,UAAU,MAAM,KACf,MAKF,CAAA;AAID;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,iBAAoB,KACnB,IAKF,CAAA"}
1
+ {"version":3,"file":"warnOnce.d.ts","sourceRoot":"","sources":["../../../src/utils/warnOnce.ts"],"names":[],"mappings":"AAMA;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,QAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAexE,CAAA;AAID;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAK7C,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAC5B,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,UAAU,MAAM,EAChB,WAAW,MAAM,KAChB,MAGF,CAAA;AAID;;;;;;;;GAQG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,MAAM,EAChB,KAAK,MAAM,EACX,OAAO,MAAM,EACb,OAAO,OAAO,EACd,0BAGG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,KAC/C,IAKF,CAAA"}