@pear-protocol/types 1.15.1 → 1.16.0

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.
@@ -8,6 +8,7 @@ export declare const AutoRebalancePausedReason: z.ZodEnum<{
8
8
  USER: "USER";
9
9
  POSITION_CHANGED: "POSITION_CHANGED";
10
10
  REPEATED_FAILURES: "REPEATED_FAILURES";
11
+ INVALID_LIVE_BETA_EXPOSURE: "INVALID_LIVE_BETA_EXPOSURE";
11
12
  }>;
12
13
  export type AutoRebalancePausedReason = z.infer<typeof AutoRebalancePausedReason>;
13
14
  export declare const AutoRebalanceWeightSource: z.ZodEnum<{
@@ -39,6 +40,7 @@ export declare const AutoRebalanceConfig: z.ZodObject<{
39
40
  USER: "USER";
40
41
  POSITION_CHANGED: "POSITION_CHANGED";
41
42
  REPEATED_FAILURES: "REPEATED_FAILURES";
43
+ INVALID_LIVE_BETA_EXPOSURE: "INVALID_LIVE_BETA_EXPOSURE";
42
44
  }>>;
43
45
  weightSource: z.ZodEnum<{
44
46
  INITIAL_WEIGHT: "INITIAL_WEIGHT";
@@ -3,7 +3,12 @@ import { UnsignedDecimalString } from '../common/schema';
3
3
  import { InstrumentId } from '../instrument';
4
4
 
5
5
  const AutoRebalanceStatus = z.enum(["ACTIVE", "PAUSED"]);
6
- const AutoRebalancePausedReason = z.enum(["USER", "POSITION_CHANGED", "REPEATED_FAILURES"]);
6
+ const AutoRebalancePausedReason = z.enum([
7
+ "USER",
8
+ "POSITION_CHANGED",
9
+ "REPEATED_FAILURES",
10
+ "INVALID_LIVE_BETA_EXPOSURE"
11
+ ]);
7
12
  const AutoRebalanceWeightSource = z.enum(["INITIAL_WEIGHT", "LIVE_BETA"]);
8
13
  const AutoRebalanceTimeframe = z.enum(["1h", "4h", "1d"]);
9
14
  const RebalanceEventStatus = z.enum(["SUCCESS", "FAILED"]);
@@ -28,6 +28,7 @@ export declare const AutoRebalanceListResponse: z.ZodObject<{
28
28
  USER: "USER";
29
29
  POSITION_CHANGED: "POSITION_CHANGED";
30
30
  REPEATED_FAILURES: "REPEATED_FAILURES";
31
+ INVALID_LIVE_BETA_EXPOSURE: "INVALID_LIVE_BETA_EXPOSURE";
31
32
  }>>;
32
33
  weightSource: z.ZodEnum<{
33
34
  INITIAL_WEIGHT: "INITIAL_WEIGHT";
@@ -56,6 +57,7 @@ export declare const CreateAutoRebalanceResponse: z.ZodObject<{
56
57
  USER: "USER";
57
58
  POSITION_CHANGED: "POSITION_CHANGED";
58
59
  REPEATED_FAILURES: "REPEATED_FAILURES";
60
+ INVALID_LIVE_BETA_EXPOSURE: "INVALID_LIVE_BETA_EXPOSURE";
59
61
  }>>;
60
62
  weightSource: z.ZodEnum<{
61
63
  INITIAL_WEIGHT: "INITIAL_WEIGHT";
@@ -325,6 +325,14 @@ export declare const ApplicablePosition: z.ZodObject<{
325
325
  }, z.core.$strip>;
326
326
  }, z.core.$strip>;
327
327
  export type ApplicablePosition = z.output<typeof ApplicablePosition>;
328
+ /**
329
+ * Headroom above server time still accepted for the sync watermark: absorbs
330
+ * NTP drift between exchange and server clocks plus the deliberate first-sync
331
+ * trim advance (the exchanges-sdk syncer sends externalMaxTs + OVERLAP_MS + 1,
332
+ * ~60s past the newest fill), while a unit mistake (seconds↔ms conversion)
333
+ * overshoots it by orders of magnitude.
334
+ */
335
+ export declare const WATERMARK_FUTURE_SKEW_MS = 300000;
328
336
  /**
329
337
  * Cycle-level metadata for the unified sync request.
330
338
  */
@@ -103,8 +103,12 @@ const ApplicablePosition = z.object({
103
103
  fills: z.array(ApplicableFill).min(1, "Applicable must carry at least one fill"),
104
104
  metadata: ApplicableMetadata
105
105
  });
106
+ const WATERMARK_FUTURE_SKEW_MS = 3e5;
106
107
  const SyncMeta = z.object({
107
- externalMaxTs: z.number().int().nonnegative().nullable().describe("watermark advance source")
108
+ externalMaxTs: z.number().int().nonnegative().refine(
109
+ (timestamp) => timestamp <= Date.now() + WATERMARK_FUTURE_SKEW_MS,
110
+ "externalMaxTs must not be ahead of server time"
111
+ ).nullable().describe("watermark advance source")
108
112
  });
109
113
  const CreateApplicablesMeta = SyncMeta.extend({
110
114
  firstSyncStartedAt: z.number().int().nonnegative().optional().describe("backend-issued timestamp returned before the first fill-history fetch")
@@ -130,4 +134,4 @@ const CreateFundingPaymentsRequest = z.object({
130
134
  meta: SyncMeta
131
135
  });
132
136
 
133
- export { ApplicableFill, ApplicableMetadata, ApplicablePosition, ConfirmFillsRequest, ConfirmableExternalFill, CreateApplicablesMeta, CreateApplicablesRequest, CreateFundingPaymentsRequest, ExternalPosition, FundingPaymentEntry, ReconcileFillsRequest, ReconcileReplacementExternalFill, SyncFillsSinceRequest, SyncFundingSinceRequest, SyncMeta, UnknownExternalFill };
137
+ export { ApplicableFill, ApplicableMetadata, ApplicablePosition, ConfirmFillsRequest, ConfirmableExternalFill, CreateApplicablesMeta, CreateApplicablesRequest, CreateFundingPaymentsRequest, ExternalPosition, FundingPaymentEntry, ReconcileFillsRequest, ReconcileReplacementExternalFill, SyncFillsSinceRequest, SyncFundingSinceRequest, SyncMeta, UnknownExternalFill, WATERMARK_FUTURE_SKEW_MS };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pear-protocol/types",
3
- "version": "1.15.1",
3
+ "version": "1.16.0",
4
4
  "description": "Pear Protocol Types definitions",
5
5
  "private": false,
6
6
  "type": "module",