@polyester/sdk 0.11.0 → 0.13.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.
Files changed (175) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/core-client.d.ts +3 -3
  3. package/dist/core-client.d.ts.map +1 -1
  4. package/dist/core-client.js +35 -50
  5. package/dist/core-client.js.map +1 -1
  6. package/dist/gen/auth/v1/address_book_pb.d.ts +21 -0
  7. package/dist/gen/auth/v1/address_book_pb.d.ts.map +1 -1
  8. package/dist/gen/auth/v1/address_book_pb.js +1 -1
  9. package/dist/gen/auth/v1/address_book_pb.js.map +1 -1
  10. package/dist/gen/auth/v1/mfa_pb.d.ts +39 -3
  11. package/dist/gen/auth/v1/mfa_pb.d.ts.map +1 -1
  12. package/dist/gen/auth/v1/mfa_pb.js +1 -1
  13. package/dist/gen/auth/v1/mfa_pb.js.map +1 -1
  14. package/dist/gen/auth/v1/subaccounts_pb.d.ts +2 -1
  15. package/dist/gen/auth/v1/subaccounts_pb.d.ts.map +1 -1
  16. package/dist/gen/auth/v1/subaccounts_pb.js.map +1 -1
  17. package/dist/gen/chain/withdraw/v1/withdraw_pb.d.ts +3 -2
  18. package/dist/gen/chain/withdraw/v1/withdraw_pb.d.ts.map +1 -1
  19. package/dist/gen/chain/withdraw/v1/withdraw_pb.js.map +1 -1
  20. package/dist/gen/transfer/v1/internal_transfer_pb.d.ts +3 -0
  21. package/dist/gen/transfer/v1/internal_transfer_pb.d.ts.map +1 -1
  22. package/dist/gen/transfer/v1/internal_transfer_pb.js.map +1 -1
  23. package/dist/gen/triggers/v1/triggers_pb.d.ts +347 -5
  24. package/dist/gen/triggers/v1/triggers_pb.d.ts.map +1 -1
  25. package/dist/gen/triggers/v1/triggers_pb.js +307 -3
  26. package/dist/gen/triggers/v1/triggers_pb.js.map +1 -1
  27. package/dist/services/accounts/accounts.d.ts +2 -2
  28. package/dist/services/accounts/accounts.d.ts.map +1 -1
  29. package/dist/services/accounts/accounts.js +2 -2
  30. package/dist/services/accounts/accounts.js.map +1 -1
  31. package/dist/services/address-book/address-book.d.ts +5 -3
  32. package/dist/services/address-book/address-book.d.ts.map +1 -1
  33. package/dist/services/address-book/address-book.js +5 -3
  34. package/dist/services/address-book/address-book.js.map +1 -1
  35. package/dist/services/address-book/address-book.schemas.d.ts +6 -0
  36. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  37. package/dist/services/address-book/address-book.schemas.js +10 -5
  38. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  39. package/dist/services/api-keys/api-keys.d.ts +2 -2
  40. package/dist/services/api-keys/api-keys.d.ts.map +1 -1
  41. package/dist/services/api-keys/api-keys.js +3 -3
  42. package/dist/services/api-keys/api-keys.js.map +1 -1
  43. package/dist/services/auth/account-signer-auth.d.ts +3 -2
  44. package/dist/services/auth/account-signer-auth.d.ts.map +1 -1
  45. package/dist/services/auth/account-signer-auth.js.map +1 -1
  46. package/dist/services/auth/auth.d.ts +3 -7
  47. package/dist/services/auth/auth.d.ts.map +1 -1
  48. package/dist/services/auth/auth.js +1 -1
  49. package/dist/services/auth/auth.js.map +1 -1
  50. package/dist/services/auth/profile/profile.d.ts +2 -2
  51. package/dist/services/auth/profile/profile.d.ts.map +1 -1
  52. package/dist/services/auth/profile/profile.js +2 -2
  53. package/dist/services/auth/profile/profile.js.map +1 -1
  54. package/dist/services/balances/balances.d.ts +2 -2
  55. package/dist/services/balances/balances.d.ts.map +1 -1
  56. package/dist/services/balances/balances.js +2 -2
  57. package/dist/services/balances/balances.js.map +1 -1
  58. package/dist/services/candles/candles.d.ts +2 -2
  59. package/dist/services/candles/candles.d.ts.map +1 -1
  60. package/dist/services/candles/candles.js +2 -2
  61. package/dist/services/candles/candles.js.map +1 -1
  62. package/dist/services/candles/candles.schemas.d.ts +10 -10
  63. package/dist/services/chain-analytics/chain-analytics.d.ts +2 -2
  64. package/dist/services/chain-analytics/chain-analytics.d.ts.map +1 -1
  65. package/dist/services/chain-analytics/chain-analytics.js +2 -2
  66. package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
  67. package/dist/services/deposit/deposit.d.ts +2 -2
  68. package/dist/services/deposit/deposit.d.ts.map +1 -1
  69. package/dist/services/deposit/deposit.js +2 -2
  70. package/dist/services/deposit/deposit.js.map +1 -1
  71. package/dist/services/fees/fees.d.ts +2 -2
  72. package/dist/services/fees/fees.d.ts.map +1 -1
  73. package/dist/services/fees/fees.js +2 -2
  74. package/dist/services/fees/fees.js.map +1 -1
  75. package/dist/services/guard-signer/guard-signer.d.ts +2 -2
  76. package/dist/services/guard-signer/guard-signer.d.ts.map +1 -1
  77. package/dist/services/guard-signer/guard-signer.js +2 -2
  78. package/dist/services/guard-signer/guard-signer.js.map +1 -1
  79. package/dist/services/heatmap/heatmap.d.ts +2 -2
  80. package/dist/services/heatmap/heatmap.d.ts.map +1 -1
  81. package/dist/services/heatmap/heatmap.js +2 -2
  82. package/dist/services/heatmap/heatmap.js.map +1 -1
  83. package/dist/services/heatmap/heatmap.schemas.d.ts +9 -9
  84. package/dist/services/internal-transfers/internal-transfers.d.ts +2 -2
  85. package/dist/services/internal-transfers/internal-transfers.d.ts.map +1 -1
  86. package/dist/services/internal-transfers/internal-transfers.js +2 -2
  87. package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
  88. package/dist/services/lifecycle/lifecycle.d.ts +2 -2
  89. package/dist/services/lifecycle/lifecycle.d.ts.map +1 -1
  90. package/dist/services/lifecycle/lifecycle.js +2 -2
  91. package/dist/services/lifecycle/lifecycle.js.map +1 -1
  92. package/dist/services/market-data/market-data.d.ts +2 -2
  93. package/dist/services/market-data/market-data.d.ts.map +1 -1
  94. package/dist/services/market-data/market-data.js +2 -2
  95. package/dist/services/market-data/market-data.js.map +1 -1
  96. package/dist/services/market-overview/market-overview.d.ts +2 -2
  97. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  98. package/dist/services/market-overview/market-overview.js +2 -2
  99. package/dist/services/market-overview/market-overview.js.map +1 -1
  100. package/dist/services/market-overview/market-overview.schemas.d.ts +3 -3
  101. package/dist/services/mfa/mfa.d.ts +4 -4
  102. package/dist/services/mfa/mfa.d.ts.map +1 -1
  103. package/dist/services/mfa/mfa.js +4 -4
  104. package/dist/services/mfa/mfa.js.map +1 -1
  105. package/dist/services/mfa/mfa.schemas.d.ts +132 -4
  106. package/dist/services/mfa/mfa.schemas.d.ts.map +1 -1
  107. package/dist/services/mfa/mfa.schemas.js +13 -7
  108. package/dist/services/mfa/mfa.schemas.js.map +1 -1
  109. package/dist/services/orderbook/orderbook.d.ts +2 -2
  110. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  111. package/dist/services/orderbook/orderbook.js +2 -2
  112. package/dist/services/orderbook/orderbook.js.map +1 -1
  113. package/dist/services/orders/orders-input.schemas.d.ts +1 -1
  114. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  115. package/dist/services/orders/orders.d.ts +2 -2
  116. package/dist/services/orders/orders.d.ts.map +1 -1
  117. package/dist/services/orders/orders.js +3 -3
  118. package/dist/services/orders/orders.js.map +1 -1
  119. package/dist/services/policies/api-key-policies/api-key-policies.d.ts +2 -2
  120. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
  121. package/dist/services/policies/api-key-policies/api-key-policies.js +2 -2
  122. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  123. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts +2 -2
  124. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
  125. package/dist/services/policies/subaccount-policies/subaccount-policies.js +2 -2
  126. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  127. package/dist/services/rate-limits/rate-limits.d.ts +2 -2
  128. package/dist/services/rate-limits/rate-limits.d.ts.map +1 -1
  129. package/dist/services/rate-limits/rate-limits.js.map +1 -1
  130. package/dist/services/social-verification/social-verification.d.ts +2 -2
  131. package/dist/services/social-verification/social-verification.d.ts.map +1 -1
  132. package/dist/services/social-verification/social-verification.js +2 -2
  133. package/dist/services/social-verification/social-verification.js.map +1 -1
  134. package/dist/services/subaccounts/subaccounts.d.ts +3 -3
  135. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
  136. package/dist/services/subaccounts/subaccounts.js +11 -9
  137. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  138. package/dist/services/subaccounts/subaccounts.schemas.d.ts +4 -4
  139. package/dist/services/trades/trades.d.ts +2 -2
  140. package/dist/services/trades/trades.d.ts.map +1 -1
  141. package/dist/services/trades/trades.js +2 -2
  142. package/dist/services/trades/trades.js.map +1 -1
  143. package/dist/services/trading-withdraws/trading-withdraws.d.ts +2 -2
  144. package/dist/services/trading-withdraws/trading-withdraws.d.ts.map +1 -1
  145. package/dist/services/trading-withdraws/trading-withdraws.js +2 -2
  146. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
  147. package/dist/services/transfers/transfers.d.ts +2 -2
  148. package/dist/services/transfers/transfers.d.ts.map +1 -1
  149. package/dist/services/transfers/transfers.js +2 -2
  150. package/dist/services/transfers/transfers.js.map +1 -1
  151. package/dist/services/triggers/trigger-input.schemas.d.ts +2 -2
  152. package/dist/services/triggers/triggers-output.schemas.d.ts +365 -18
  153. package/dist/services/triggers/triggers-output.schemas.d.ts.map +1 -1
  154. package/dist/services/triggers/triggers-output.schemas.js +36 -4
  155. package/dist/services/triggers/triggers-output.schemas.js.map +1 -1
  156. package/dist/services/triggers/triggers.codecs.js +51 -1
  157. package/dist/services/triggers/triggers.codecs.js.map +1 -1
  158. package/dist/services/triggers/triggers.d.ts +2 -2
  159. package/dist/services/triggers/triggers.d.ts.map +1 -1
  160. package/dist/services/triggers/triggers.js +2 -2
  161. package/dist/services/triggers/triggers.js.map +1 -1
  162. package/dist/services/vip/vip.d.ts +2 -2
  163. package/dist/services/vip/vip.js.map +1 -1
  164. package/dist/services/whiteboard/whiteboard.d.ts +2 -2
  165. package/dist/services/whiteboard/whiteboard.d.ts.map +1 -1
  166. package/dist/services/whiteboard/whiteboard.js +2 -2
  167. package/dist/services/whiteboard/whiteboard.js.map +1 -1
  168. package/dist/services/zipper/zipper.d.ts +2 -2
  169. package/dist/services/zipper/zipper.d.ts.map +1 -1
  170. package/dist/services/zipper/zipper.js +2 -2
  171. package/dist/services/zipper/zipper.js.map +1 -1
  172. package/dist/shared/transports.d.ts +7 -1
  173. package/dist/shared/transports.d.ts.map +1 -1
  174. package/dist/shared/transports.js.map +1 -1
  175. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"triggers-output.schemas.js","names":["Proto.TriggerStatus","ProtoOrders.Side","TriggerSideCodec","ProtoOrders.TriggerPriceSource","ProtoOrders.TriggerDirection","Proto.LadderDistribution","ProtoOrders.FeeAsset","ProtoOrders.SelfTradePreventionMode","Proto.TriggerType","Proto.TriggerEventType"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { tsNsToMs, tsObjToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n} from \"./triggers.codecs.js\";\n\ntype TriggerPriceSourceLabel = \"last\" | \"index\" | \"mark\" | \"unspecified\";\n\ntype TriggerDirectionLabel = \"above\" | \"below\" | \"unspecified\";\n\ntype LadderDistributionLabel = \"linear\" | \"geometric\" | \"weighted_favorable\" | \"unspecified\";\n\nconst TriggerResultStatusSchema = v.pipe(\n v.enum(Proto.TriggerStatus),\n v.transform((status) =>\n requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n status,\n \"TriggerResultSchema\",\n \"status\",\n ),\n ),\n);\n\nconst TriggerMutationResultBaseSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n status: TriggerResultStatusSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport const CreateTriggerResultSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n clientTriggerId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: BigIntStringSchema,\n }),\n v.transform(({ acceptedAt, acceptedAtTsNs, ...result }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(BigInt(acceptedAtTsNs)),\n acceptedAtNs: acceptedAtTsNs,\n })),\n);\n\nexport type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;\n\nexport const CancelTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;\n\nexport const ModifyTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;\n\nexport const PauseTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;\n\nexport const ResumeTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;\n\nconst ConditionalExecutionRawSchema = v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({}),\n }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({\n priceTicks: v.bigint(),\n postOnly: v.boolean(),\n }),\n }),\n v.object({\n case: v.literal(\"limitIoc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({\n case: v.literal(\"limitFok\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst ConditionalConfigurationRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n side: v.enum(ProtoOrders.Side),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst TrailingConfigurationRawSchema = v.object({\n trailingDistance: v.variant(\"case\", [\n v.object({ case: v.literal(\"trailingDistanceTicks\"), value: v.bigint() }),\n v.object({ case: v.literal(\"trailingDistanceBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n activationPriceTicks: v.bigint(),\n maxSlippage: v.variant(\"case\", [\n v.object({ case: v.literal(\"maxSlippageTicks\"), value: v.number() }),\n v.object({ case: v.literal(\"maxSlippageBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n side: v.enum(ProtoOrders.Side),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({ case: v.literal(\"marketIoc\"), value: v.object({}) }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n});\n\nconst LadderConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n priceMinTicks: v.bigint(),\n priceMaxTicks: v.bigint(),\n levels: v.number(),\n postOnly: v.boolean(),\n});\n\nconst TriggerConfigurationRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stopLoss\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"takeProfit\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"trailingStop\"), value: TrailingConfigurationRawSchema }),\n v.object({ case: v.literal(\"twap\"), value: TwapConfigurationRawSchema }),\n v.object({ case: v.literal(\"ladder\"), value: LadderConfigurationRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformConditionalExecution(\n execution: v.InferOutput<typeof ConditionalExecutionRawSchema>,\n scales: SdkScales,\n) {\n switch (execution.case) {\n case \"marketIoc\":\n return { type: \"market_ioc\" } as const;\n case \"limitGtc\":\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n postOnly: execution.value.postOnly,\n } as const;\n case \"limitIoc\":\n return {\n type: \"limit_ioc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n case \"limitFok\":\n return {\n type: \"limit_fok\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n default:\n return { type: \"unspecified\" } as const;\n }\n}\n\nfunction transformTriggerConfiguration(\n configuration: v.InferOutput<typeof TriggerConfigurationRawSchema>,\n scales: SdkScales,\n) {\n switch (configuration.case) {\n case \"stopLoss\":\n case \"takeProfit\":\n return {\n type:\n configuration.case === \"stopLoss\"\n ? (\"stop_loss\" as const)\n : (\"take_profit\" as const),\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n triggerPrice: scaledToDecimalOutput(\n configuration.value.triggerPriceTicks,\n scales.price(),\n ),\n execution: transformConditionalExecution(\n configuration.value.child?.execution ?? { case: undefined },\n scales,\n ),\n };\n case \"trailingStop\":\n return {\n type: \"trailing_stop\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n trailingDistance:\n configuration.value.trailingDistance.case === \"trailingDistanceTicks\"\n ? {\n kind: \"distance\" as const,\n distance: scaledToDecimalOutput(\n configuration.value.trailingDistance.value,\n scales.price(),\n ),\n }\n : configuration.value.trailingDistance.case === \"trailingDistanceBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.trailingDistance.value,\n }\n : { kind: \"unspecified\" as const },\n activationPrice:\n configuration.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n configuration.value.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n maxSlippage:\n configuration.value.maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(\n BigInt(configuration.value.maxSlippage.value),\n scales.price(),\n ),\n }\n : configuration.value.maxSlippage.case === \"maxSlippageBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.maxSlippage.value,\n }\n : { kind: \"none\" as const },\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({ type: \"market_ioc\" } as const)\n : configuration.value.execution.case === \"limitGtc\"\n ? ({\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(\n configuration.value.execution.value.priceTicks,\n scales.price(),\n ),\n } as const)\n : ({ type: \"unspecified\" } as const),\n };\n case \"ladder\":\n return {\n type: \"ladder\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n priceMin: scaledToDecimalOutput(configuration.value.priceMinTicks, scales.price()),\n priceMax: scaledToDecimalOutput(configuration.value.priceMaxTicks, scales.price()),\n levels: configuration.value.levels,\n postOnly: configuration.value.postOnly,\n };\n default:\n return { type: \"unspecified\" as const };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TrailingDetailsRawSchema = v.object({\n trailingDistanceTicks: v.bigint(),\n activationPriceTicks: v.bigint(),\n peakPriceTicks: v.bigint(),\n troughPriceTicks: v.bigint(),\n trailingDistanceBps: v.number(),\n maxSlippageTicks: v.number(),\n maxSlippageBps: v.number(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TwapDetailsRawSchema = v.object({\n twapDurationMs: v.bigint(),\n twapSliceIntervalMs: v.bigint(),\n sliceIdx: v.number(),\n sliceCount: v.number(),\n executedQtyScaled: v.bigint(),\n});\n\nconst LadderDetailsRawSchema = v.object({\n ladderPriceMinTicks: v.bigint(),\n ladderPriceMaxTicks: v.bigint(),\n ladderLevels: v.number(),\n ladderDistribution: v.enum(Proto.LadderDistribution),\n});\n\nconst TriggerDetailsRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stop\"), value: StopDetailsRawSchema }),\n v.object({ case: v.literal(\"trailing\"), value: TrailingDetailsRawSchema }),\n v.object({ case: v.literal(\"twapState\"), value: TwapDetailsRawSchema }),\n v.object({ case: v.literal(\"ladderState\"), value: LadderDetailsRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nexport type StopDetailsOutput = {\n case: \"stop\";\n triggerPrice: string;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TrailingDetailsOutput = {\n case: \"trailing\";\n trailingDistance: string | undefined;\n trailingDistanceBps: number;\n activationPrice: string | undefined;\n peakPrice: string | undefined;\n troughPrice: string | undefined;\n maxSlippage: string | undefined;\n maxSlippageBps: number;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TwapDetailsOutput = {\n case: \"twap\";\n twapDurationMs: number;\n twapSliceIntervalMs: number;\n sliceIdx: number;\n sliceCount: number;\n /** Cumulative filled child-order base quantity. */\n executedQty: string;\n};\n\nexport type LadderDetailsOutput = {\n case: \"ladder\";\n ladderPriceMin: string;\n ladderPriceMax: string;\n ladderLevels: number;\n ladderDistribution: LadderDistributionLabel;\n};\n\nexport type TriggerDetailsOutput =\n | StopDetailsOutput\n | TrailingDetailsOutput\n | TwapDetailsOutput\n | LadderDetailsOutput\n | { case: undefined };\n\nfunction transformTriggerDetails(\n details: v.InferOutput<typeof TriggerDetailsRawSchema>,\n scales: SdkScales,\n symbolId: number,\n): TriggerDetailsOutput {\n switch (details.case) {\n case \"stop\":\n return {\n case: \"stop\",\n triggerPrice: scaledToDecimalOutput(\n details.value.triggerPriceTicks,\n scales.price(),\n ),\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"trailing\":\n return {\n case: \"trailing\",\n trailingDistance:\n details.value.trailingDistanceTicks > 0n\n ? scaledToDecimalOutput(details.value.trailingDistanceTicks, scales.price())\n : undefined,\n trailingDistanceBps: details.value.trailingDistanceBps,\n activationPrice:\n details.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.activationPriceTicks, scales.price())\n : undefined,\n peakPrice:\n details.value.peakPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.peakPriceTicks, scales.price())\n : undefined,\n troughPrice:\n details.value.troughPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.troughPriceTicks, scales.price())\n : undefined,\n maxSlippage:\n details.value.maxSlippageTicks > 0\n ? scaledToDecimalOutput(\n BigInt(details.value.maxSlippageTicks),\n scales.price(),\n )\n : undefined,\n maxSlippageBps: details.value.maxSlippageBps,\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"twapState\":\n return {\n case: \"twap\",\n twapDurationMs: Number(details.value.twapDurationMs),\n twapSliceIntervalMs: Number(details.value.twapSliceIntervalMs),\n sliceIdx: details.value.sliceIdx,\n sliceCount: details.value.sliceCount,\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n };\n case \"ladderState\":\n return {\n case: \"ladder\",\n ladderPriceMin: scaledToDecimalOutput(\n details.value.ladderPriceMinTicks,\n scales.price(),\n ),\n ladderPriceMax: scaledToDecimalOutput(\n details.value.ladderPriceMaxTicks,\n scales.price(),\n ),\n ladderLevels: details.value.ladderLevels,\n ladderDistribution: requiredEnumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n \"TriggerDetailsSchema\",\n \"ladder distribution\",\n ),\n };\n default:\n return { case: undefined };\n }\n}\n\n/** Builds the public trigger output schema using each record's symbol ID for quantity scaling. */\nexport function createTriggerSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: SymbolIdInputSchema,\n status: v.enum(Proto.TriggerStatus),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.enum(ProtoOrders.FeeAsset),\n selfTradePreventionMode: v.enum(ProtoOrders.SelfTradePreventionMode),\n configuration: TriggerConfigurationRawSchema,\n clientTriggerId: v.string(),\n createdAt: v.optional(TimestampSchema),\n updatedAt: v.optional(TimestampSchema),\n armedAt: v.optional(TimestampSchema),\n completedAt: v.optional(TimestampSchema),\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n t.status,\n \"TriggerSchema\",\n \"status\",\n ),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n t.feeAsset,\n \"TriggerSchema\",\n \"fee asset\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\n \"TriggerSchema\",\n \"STP mode\",\n ),\n configuration: transformTriggerConfiguration(t.configuration, scales),\n clientTriggerId: t.clientTriggerId,\n createdTs: t.createdAt ? tsObjToMs(t.createdAt) : undefined,\n updatedTs: t.updatedAt ? tsObjToMs(t.updatedAt) : undefined,\n armedTs: t.armedAt ? tsObjToMs(t.armedAt) : undefined,\n completedTs: t.completedAt ? tsObjToMs(t.completedAt) : undefined,\n runtimeDetails: transformTriggerDetails(t.runtimeDetails, scales, t.symbolId),\n })),\n );\n}\n\n/** A normalized standalone trigger record. */\nexport type Trigger = v.InferOutput<ReturnType<typeof createTriggerSchema>>;\n\nexport function createTriggerEventSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: v.number(),\n triggerType: v.enum(Proto.TriggerType),\n eventType: v.enum(Proto.TriggerEventType),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n reason: v.string(),\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: requiredEnumLabel(\n TriggerTypeCodec.protoToOutput,\n e.triggerType,\n \"TriggerEventSchema\",\n \"trigger type\",\n ),\n eventType: requiredEnumLabel(\n TriggerEventTypeCodec.protoToOutput,\n e.eventType,\n \"TriggerEventSchema\",\n \"event type\",\n ),\n ts: tsNsToMs(e.tsNs),\n childSeq: e.childSeq,\n childOrderId: e.childOrderId > 0n ? formatId(e.childOrderId) : undefined,\n firePrice:\n e.firePriceTicks !== undefined && e.firePriceTicks > 0n\n ? scaledToDecimalOutput(e.firePriceTicks, scales.price())\n : undefined,\n reason: e.reason || undefined,\n })),\n );\n}\n\nexport type TriggerEvent = v.InferOutput<ReturnType<typeof createTriggerEventSchema>>;\n\nexport type ListTriggerEventsResult = {\n events: TriggerEvent[];\n nextPageToken: string;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"triggers-output.schemas.js","names":["Proto.TriggerStatus","ProtoOrders.Side","TriggerSideCodec","Proto.TriggerCancelReason","Proto.TriggerFailureReason","ProtoOrders.TriggerPriceSource","ProtoOrders.TriggerDirection","Proto.LadderDistribution","ProtoOrders.FeeAsset","ProtoOrders.SelfTradePreventionMode","Proto.TriggerType","Proto.TriggerEventType"],"sources":["../../../src/services/triggers/triggers-output.schemas.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport * as v from \"valibot\";\nimport {\n BigIntStringSchema,\n OptionalTimestampMsSchema,\n TimestampSchema,\n PublicIdSchema,\n} from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { scaledToDecimalOutput, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport { tsNsToMs, tsObjToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SymbolIdInputSchema } from \"../shared.js\";\nimport {\n TriggerTypeCodec,\n TriggerStatusCodec,\n FeeAssetCodec,\n SelfTradePreventionModeCodec,\n TriggerPriceSourceCodec,\n TriggerDirectionCodec,\n LadderDistributionCodec,\n TriggerSideCodec,\n TriggerEventTypeCodec,\n TriggerCancelReasonCodec,\n TriggerFailureReasonCodec,\n} from \"./triggers.codecs.js\";\n\ntype TriggerPriceSourceLabel = \"last\" | \"index\" | \"mark\" | \"unspecified\";\n\ntype TriggerDirectionLabel = \"above\" | \"below\" | \"unspecified\";\n\ntype LadderDistributionLabel = \"linear\" | \"geometric\" | \"weighted_favorable\" | \"unspecified\";\n\nconst TriggerResultStatusSchema = v.pipe(\n v.enum(Proto.TriggerStatus),\n v.transform((status) =>\n requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n status,\n \"TriggerResultSchema\",\n \"status\",\n ),\n ),\n);\n\nconst TriggerMutationResultBaseSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n status: TriggerResultStatusSchema,\n tsNs: v.bigint(),\n }),\n v.transform(({ tsNs, ...result }) => ({\n ...result,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport const CreateTriggerResultSchema = v.pipe(\n v.object({\n triggerId: PublicIdSchema,\n clientTriggerId: v.string(),\n acceptedAt: OptionalTimestampMsSchema,\n acceptedAtTsNs: BigIntStringSchema,\n }),\n v.transform(({ acceptedAt, acceptedAtTsNs, ...result }) => ({\n ...result,\n acceptedAt: acceptedAt ?? tsNsToMs(BigInt(acceptedAtTsNs)),\n acceptedAtNs: acceptedAtTsNs,\n })),\n);\n\nexport type CreateTriggerResult = v.InferOutput<typeof CreateTriggerResultSchema>;\n\nexport const CancelTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type CancelTriggerResult = v.InferOutput<typeof CancelTriggerResultSchema>;\n\nexport const ModifyTriggerResultSchema = TriggerMutationResultBaseSchema;\n\nexport type ModifyTriggerResult = v.InferOutput<typeof ModifyTriggerResultSchema>;\n\nexport const PauseTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type PauseTriggerResult = v.InferOutput<typeof PauseTriggerResultSchema>;\n\nexport const ResumeTriggerResultSchema = TriggerMutationResultBaseSchema;\nexport type ResumeTriggerResult = v.InferOutput<typeof ResumeTriggerResultSchema>;\n\nconst ConditionalExecutionRawSchema = v.variant(\"case\", [\n v.object({\n case: v.literal(\"marketIoc\"),\n value: v.object({}),\n }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({\n priceTicks: v.bigint(),\n postOnly: v.boolean(),\n }),\n }),\n v.object({\n case: v.literal(\"limitIoc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({\n case: v.literal(\"limitFok\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nconst ConditionalConfigurationRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n side: v.enum(ProtoOrders.Side),\n child: v.optional(\n v.object({\n execution: ConditionalExecutionRawSchema,\n }),\n ),\n});\n\nconst TrailingConfigurationRawSchema = v.object({\n trailingDistance: v.variant(\"case\", [\n v.object({ case: v.literal(\"trailingDistanceTicks\"), value: v.bigint() }),\n v.object({ case: v.literal(\"trailingDistanceBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n activationPriceTicks: v.bigint(),\n maxSlippage: v.variant(\"case\", [\n v.object({ case: v.literal(\"maxSlippageTicks\"), value: v.number() }),\n v.object({ case: v.literal(\"maxSlippageBps\"), value: v.number() }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n side: v.enum(ProtoOrders.Side),\n});\n\nconst TwapConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n durationMs: v.bigint(),\n sliceIntervalMs: v.bigint(),\n execution: v.variant(\"case\", [\n v.object({ case: v.literal(\"marketIoc\"), value: v.object({}) }),\n v.object({\n case: v.literal(\"limitGtc\"),\n value: v.object({ priceTicks: v.bigint() }),\n }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n ]),\n});\n\nconst LadderConfigurationRawSchema = v.object({\n side: v.enum(ProtoOrders.Side),\n priceMinTicks: v.bigint(),\n priceMaxTicks: v.bigint(),\n levels: v.number(),\n postOnly: v.boolean(),\n});\n\nconst TriggerConfigurationRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stopLoss\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"takeProfit\"), value: ConditionalConfigurationRawSchema }),\n v.object({ case: v.literal(\"trailingStop\"), value: TrailingConfigurationRawSchema }),\n v.object({ case: v.literal(\"twap\"), value: TwapConfigurationRawSchema }),\n v.object({ case: v.literal(\"ladder\"), value: LadderConfigurationRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformConditionalExecution(\n execution: v.InferOutput<typeof ConditionalExecutionRawSchema>,\n scales: SdkScales,\n) {\n switch (execution.case) {\n case \"marketIoc\":\n return { type: \"market_ioc\" } as const;\n case \"limitGtc\":\n return {\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n postOnly: execution.value.postOnly,\n } as const;\n case \"limitIoc\":\n return {\n type: \"limit_ioc\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n case \"limitFok\":\n return {\n type: \"limit_fok\",\n price: scaledToDecimalOutput(execution.value.priceTicks, scales.price()),\n } as const;\n default:\n return { type: \"unspecified\" } as const;\n }\n}\n\nfunction transformTriggerConfiguration(\n configuration: v.InferOutput<typeof TriggerConfigurationRawSchema>,\n scales: SdkScales,\n) {\n switch (configuration.case) {\n case \"stopLoss\":\n case \"takeProfit\":\n return {\n type:\n configuration.case === \"stopLoss\"\n ? (\"stop_loss\" as const)\n : (\"take_profit\" as const),\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n triggerPrice: scaledToDecimalOutput(\n configuration.value.triggerPriceTicks,\n scales.price(),\n ),\n execution: transformConditionalExecution(\n configuration.value.child?.execution ?? { case: undefined },\n scales,\n ),\n };\n case \"trailingStop\":\n return {\n type: \"trailing_stop\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n trailingDistance:\n configuration.value.trailingDistance.case === \"trailingDistanceTicks\"\n ? {\n kind: \"distance\" as const,\n distance: scaledToDecimalOutput(\n configuration.value.trailingDistance.value,\n scales.price(),\n ),\n }\n : configuration.value.trailingDistance.case === \"trailingDistanceBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.trailingDistance.value,\n }\n : { kind: \"unspecified\" as const },\n activationPrice:\n configuration.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(\n configuration.value.activationPriceTicks,\n scales.price(),\n )\n : undefined,\n maxSlippage:\n configuration.value.maxSlippage.case === \"maxSlippageTicks\"\n ? {\n kind: \"slippage\" as const,\n slippage: scaledToDecimalOutput(\n BigInt(configuration.value.maxSlippage.value),\n scales.price(),\n ),\n }\n : configuration.value.maxSlippage.case === \"maxSlippageBps\"\n ? {\n kind: \"bps\" as const,\n bps: configuration.value.maxSlippage.value,\n }\n : { kind: \"none\" as const },\n };\n case \"twap\":\n return {\n type: \"twap\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n durationMs: Number(configuration.value.durationMs),\n sliceIntervalMs: Number(configuration.value.sliceIntervalMs),\n execution:\n configuration.value.execution.case === \"marketIoc\"\n ? ({ type: \"market_ioc\" } as const)\n : configuration.value.execution.case === \"limitGtc\"\n ? ({\n type: \"limit_gtc\",\n price: scaledToDecimalOutput(\n configuration.value.execution.value.priceTicks,\n scales.price(),\n ),\n } as const)\n : ({ type: \"unspecified\" } as const),\n };\n case \"ladder\":\n return {\n type: \"ladder\" as const,\n side: requiredEnumLabel(\n TriggerSideCodec.protoToOutput,\n configuration.value.side,\n \"TriggerConfigurationSchema\",\n \"side\",\n ),\n priceMin: scaledToDecimalOutput(configuration.value.priceMinTicks, scales.price()),\n priceMax: scaledToDecimalOutput(configuration.value.priceMaxTicks, scales.price()),\n levels: configuration.value.levels,\n postOnly: configuration.value.postOnly,\n };\n default:\n return { type: \"unspecified\" as const };\n }\n}\n\nconst TerminalReasonRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"cancelReason\"), value: v.enum(Proto.TriggerCancelReason) }),\n v.object({ case: v.literal(\"failureReason\"), value: v.enum(Proto.TriggerFailureReason) }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nfunction transformTerminalReason(reason: v.InferOutput<typeof TerminalReasonRawSchema>) {\n switch (reason.case) {\n case \"cancelReason\":\n return {\n cancelReason: requiredEnumLabel(\n TriggerCancelReasonCodec.protoToOutput,\n reason.value,\n \"TerminalReasonSchema\",\n \"cancel reason\",\n ),\n failureReason: undefined,\n };\n case \"failureReason\":\n return {\n cancelReason: undefined,\n failureReason: requiredEnumLabel(\n TriggerFailureReasonCodec.protoToOutput,\n reason.value,\n \"TerminalReasonSchema\",\n \"failure reason\",\n ),\n };\n default:\n return { cancelReason: undefined, failureReason: undefined };\n }\n}\n\nconst StopDetailsRawSchema = v.object({\n triggerPriceTicks: v.bigint(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TrailingDetailsRawSchema = v.object({\n trailingDistanceTicks: v.bigint(),\n activationPriceTicks: v.bigint(),\n peakPriceTicks: v.bigint(),\n troughPriceTicks: v.bigint(),\n trailingDistanceBps: v.number(),\n maxSlippageTicks: v.number(),\n maxSlippageBps: v.number(),\n triggerPriceSource: v.enum(ProtoOrders.TriggerPriceSource),\n triggerDirection: v.enum(ProtoOrders.TriggerDirection),\n});\n\nconst TwapDetailsRawSchema = v.object({\n twapDurationMs: v.bigint(),\n twapSliceIntervalMs: v.bigint(),\n sliceIdx: v.number(),\n sliceCount: v.number(),\n executedQtyScaled: v.bigint(),\n});\n\nconst LadderDetailsRawSchema = v.object({\n ladderPriceMinTicks: v.bigint(),\n ladderPriceMaxTicks: v.bigint(),\n ladderLevels: v.number(),\n ladderDistribution: v.enum(Proto.LadderDistribution),\n});\n\nconst TriggerDetailsRawSchema = v.variant(\"case\", [\n v.object({ case: v.literal(\"stop\"), value: StopDetailsRawSchema }),\n v.object({ case: v.literal(\"trailing\"), value: TrailingDetailsRawSchema }),\n v.object({ case: v.literal(\"twapState\"), value: TwapDetailsRawSchema }),\n v.object({ case: v.literal(\"ladderState\"), value: LadderDetailsRawSchema }),\n v.object({ case: v.undefined(), value: v.optional(v.undefined()) }),\n]);\n\nexport type StopDetailsOutput = {\n case: \"stop\";\n triggerPrice: string;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TrailingDetailsOutput = {\n case: \"trailing\";\n trailingDistance: string | undefined;\n trailingDistanceBps: number;\n activationPrice: string | undefined;\n peakPrice: string | undefined;\n troughPrice: string | undefined;\n maxSlippage: string | undefined;\n maxSlippageBps: number;\n triggerPriceSource: TriggerPriceSourceLabel;\n triggerDirection: TriggerDirectionLabel;\n};\n\nexport type TwapDetailsOutput = {\n case: \"twap\";\n twapDurationMs: number;\n twapSliceIntervalMs: number;\n sliceIdx: number;\n sliceCount: number;\n /** Cumulative filled child-order base quantity. */\n executedQty: string;\n};\n\nexport type LadderDetailsOutput = {\n case: \"ladder\";\n ladderPriceMin: string;\n ladderPriceMax: string;\n ladderLevels: number;\n ladderDistribution: LadderDistributionLabel;\n};\n\nexport type TriggerDetailsOutput =\n | StopDetailsOutput\n | TrailingDetailsOutput\n | TwapDetailsOutput\n | LadderDetailsOutput\n | { case: undefined };\n\nfunction transformTriggerDetails(\n details: v.InferOutput<typeof TriggerDetailsRawSchema>,\n scales: SdkScales,\n symbolId: number,\n): TriggerDetailsOutput {\n switch (details.case) {\n case \"stop\":\n return {\n case: \"stop\",\n triggerPrice: scaledToDecimalOutput(\n details.value.triggerPriceTicks,\n scales.price(),\n ),\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"trailing\":\n return {\n case: \"trailing\",\n trailingDistance:\n details.value.trailingDistanceTicks > 0n\n ? scaledToDecimalOutput(details.value.trailingDistanceTicks, scales.price())\n : undefined,\n trailingDistanceBps: details.value.trailingDistanceBps,\n activationPrice:\n details.value.activationPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.activationPriceTicks, scales.price())\n : undefined,\n peakPrice:\n details.value.peakPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.peakPriceTicks, scales.price())\n : undefined,\n troughPrice:\n details.value.troughPriceTicks > 0n\n ? scaledToDecimalOutput(details.value.troughPriceTicks, scales.price())\n : undefined,\n maxSlippage:\n details.value.maxSlippageTicks > 0\n ? scaledToDecimalOutput(\n BigInt(details.value.maxSlippageTicks),\n scales.price(),\n )\n : undefined,\n maxSlippageBps: details.value.maxSlippageBps,\n triggerPriceSource: requiredEnumLabel(\n TriggerPriceSourceCodec.protoToOutput,\n details.value.triggerPriceSource,\n \"TriggerDetailsSchema\",\n \"trigger price source\",\n ),\n triggerDirection: requiredEnumLabel(\n TriggerDirectionCodec.protoToOutput,\n details.value.triggerDirection,\n \"TriggerDetailsSchema\",\n \"trigger direction\",\n ),\n };\n case \"twapState\":\n return {\n case: \"twap\",\n twapDurationMs: Number(details.value.twapDurationMs),\n twapSliceIntervalMs: Number(details.value.twapSliceIntervalMs),\n sliceIdx: details.value.sliceIdx,\n sliceCount: details.value.sliceCount,\n executedQty: scaledToDecimalOutput(\n details.value.executedQtyScaled,\n scales.baseQty(symbolId),\n ),\n };\n case \"ladderState\":\n return {\n case: \"ladder\",\n ladderPriceMin: scaledToDecimalOutput(\n details.value.ladderPriceMinTicks,\n scales.price(),\n ),\n ladderPriceMax: scaledToDecimalOutput(\n details.value.ladderPriceMaxTicks,\n scales.price(),\n ),\n ladderLevels: details.value.ladderLevels,\n ladderDistribution: requiredEnumLabel(\n LadderDistributionCodec.protoToOutput,\n details.value.ladderDistribution,\n \"TriggerDetailsSchema\",\n \"ladder distribution\",\n ),\n };\n default:\n return { case: undefined };\n }\n}\n\n/** Builds the public trigger output schema using each record's symbol ID for quantity scaling. */\nexport function createTriggerSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: SymbolIdInputSchema,\n status: v.enum(Proto.TriggerStatus),\n parentOrderId: v.optional(v.bigint()),\n qtyScaled: v.bigint(),\n feeAsset: v.enum(ProtoOrders.FeeAsset),\n selfTradePreventionMode: v.enum(ProtoOrders.SelfTradePreventionMode),\n configuration: TriggerConfigurationRawSchema,\n clientTriggerId: v.string(),\n createdAt: v.optional(TimestampSchema),\n updatedAt: v.optional(TimestampSchema),\n armedAt: v.optional(TimestampSchema),\n completedAt: v.optional(TimestampSchema),\n terminalReason: TerminalReasonRawSchema,\n runtimeDetails: TriggerDetailsRawSchema,\n }),\n v.transform((t) => ({\n triggerId: formatId(t.triggerId),\n subaccountId: formatId(t.subaccountId),\n symbolId: t.symbolId,\n status: requiredEnumLabel(\n TriggerStatusCodec.protoToOutput,\n t.status,\n \"TriggerSchema\",\n \"status\",\n ),\n parentOrderId: t.parentOrderId ? formatId(t.parentOrderId) : undefined,\n qty: scaledToDecimalOutput(t.qtyScaled, scales.baseQty(t.symbolId)),\n feeAsset: requiredEnumLabel(\n FeeAssetCodec.protoToOutput,\n t.feeAsset,\n \"TriggerSchema\",\n \"fee asset\",\n ),\n selfTradePreventionMode: requiredEnumLabel(\n SelfTradePreventionModeCodec.protoToOutput,\n t.selfTradePreventionMode,\n \"TriggerSchema\",\n \"STP mode\",\n ),\n configuration: transformTriggerConfiguration(t.configuration, scales),\n clientTriggerId: t.clientTriggerId,\n createdTs: t.createdAt ? tsObjToMs(t.createdAt) : undefined,\n updatedTs: t.updatedAt ? tsObjToMs(t.updatedAt) : undefined,\n armedTs: t.armedAt ? tsObjToMs(t.armedAt) : undefined,\n completedTs: t.completedAt ? tsObjToMs(t.completedAt) : undefined,\n ...transformTerminalReason(t.terminalReason),\n runtimeDetails: transformTriggerDetails(t.runtimeDetails, scales, t.symbolId),\n })),\n );\n}\n\n/** A normalized standalone trigger record. */\nexport type Trigger = v.InferOutput<ReturnType<typeof createTriggerSchema>>;\n\nexport function createTriggerEventSchema(scales: SdkScales) {\n return v.pipe(\n v.object({\n triggerId: v.bigint(),\n subaccountId: v.bigint(),\n symbolId: v.number(),\n triggerType: v.enum(Proto.TriggerType),\n eventType: v.enum(Proto.TriggerEventType),\n tsNs: v.bigint(),\n childSeq: v.number(),\n childOrderId: v.bigint(),\n firePriceTicks: v.optional(v.bigint()),\n terminalReason: TerminalReasonRawSchema,\n }),\n v.transform((e) => ({\n triggerId: formatId(e.triggerId),\n subaccountId: formatId(e.subaccountId),\n symbolId: e.symbolId,\n triggerType: requiredEnumLabel(\n TriggerTypeCodec.protoToOutput,\n e.triggerType,\n \"TriggerEventSchema\",\n \"trigger type\",\n ),\n eventType: requiredEnumLabel(\n TriggerEventTypeCodec.protoToOutput,\n e.eventType,\n \"TriggerEventSchema\",\n \"event type\",\n ),\n ts: tsNsToMs(e.tsNs),\n childSeq: e.childSeq,\n childOrderId: e.childOrderId > 0n ? formatId(e.childOrderId) : undefined,\n firePrice:\n e.firePriceTicks !== undefined && e.firePriceTicks > 0n\n ? scaledToDecimalOutput(e.firePriceTicks, scales.price())\n : undefined,\n ...transformTerminalReason(e.terminalReason),\n })),\n );\n}\n\nexport type TriggerEvent = v.InferOutput<ReturnType<typeof createTriggerEventSchema>>;\n\nexport type ListTriggerEventsResult = {\n events: TriggerEvent[];\n nextPageToken: string;\n};\n"],"mappings":"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"}
@@ -77,6 +77,56 @@ const TriggerEventTypeCodec = {
77
77
  [4]: "failed"
78
78
  }
79
79
  };
80
+ const TriggerCancelReasonCodec = { protoToOutput: {
81
+ [0]: "unspecified",
82
+ [1]: "user_request",
83
+ [2]: "oco",
84
+ [3]: "parent_canceled_no_fill",
85
+ [998]: "missing_reason_code",
86
+ [999]: "internal_error"
87
+ } };
88
+ const TriggerFailureReasonCodec = { protoToOutput: {
89
+ [0]: "unspecified",
90
+ [1]: "unknown_symbol",
91
+ [2]: "pair_disabled",
92
+ [3]: "min_notional",
93
+ [4]: "tick_size",
94
+ [5]: "insufficient_funds",
95
+ [6]: "risk_limit",
96
+ [7]: "duplicate_client_id",
97
+ [8]: "market_halted",
98
+ [9]: "engine_busy",
99
+ [10]: "account_unknown",
100
+ [11]: "order_unknown",
101
+ [12]: "post_only_cross",
102
+ [13]: "reduce_only_blocked",
103
+ [14]: "price_band_violation",
104
+ [15]: "market_cap_violation",
105
+ [16]: "empty_book",
106
+ [17]: "fok_insufficient_liquidity",
107
+ [18]: "fee_asset_not_allowed",
108
+ [19]: "market_price_unavailable",
109
+ [20]: "stale_quote",
110
+ [21]: "min_quantity",
111
+ [22]: "step_size",
112
+ [23]: "invalid_sizing",
113
+ [24]: "max_quote_debit_too_small",
114
+ [25]: "fee_ceiling_exceeded",
115
+ [40]: "trigger_price_invalid",
116
+ [41]: "trigger_price_source_unsupported",
117
+ [42]: "trailing_distance_invalid",
118
+ [43]: "modification_requires_replace",
119
+ [44]: "order_already_terminal",
120
+ [45]: "conflict_idempotency_key_reuse",
121
+ [46]: "rate_limited",
122
+ [47]: "policy_spot_trade_deny",
123
+ [48]: "policy_market_deny",
124
+ [49]: "policy_max_notional",
125
+ [50]: "policy_max_open_orders",
126
+ [51]: "policy_trading_halted",
127
+ [998]: "missing_reason_code",
128
+ [999]: "internal_error"
129
+ } };
80
130
  const TriggerDirectionCodec = {
81
131
  inputToProto: {
82
132
  above: 1,
@@ -98,6 +148,6 @@ const LadderDistributionCodec = {
98
148
  }
99
149
  };
100
150
  //#endregion
101
- export { FEE_ASSET_VALUES, FeeAssetCodec, LadderDistributionCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec, TRIGGER_EVENT_TYPE_VALUES, ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES, TRIGGER_STATUS_FILTER_VALUES, TRIGGER_TYPE_VALUES, TriggerDirectionCodec, TriggerEventTypeCodec, TriggerPriceSourceCodec, OrderSideCodec as TriggerSideCodec, TriggerStatusCodec, TriggerTypeCodec };
151
+ export { FEE_ASSET_VALUES, FeeAssetCodec, LadderDistributionCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec, TRIGGER_EVENT_TYPE_VALUES, ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES, TRIGGER_STATUS_FILTER_VALUES, TRIGGER_TYPE_VALUES, TriggerCancelReasonCodec, TriggerDirectionCodec, TriggerEventTypeCodec, TriggerFailureReasonCodec, TriggerPriceSourceCodec, OrderSideCodec as TriggerSideCodec, TriggerStatusCodec, TriggerTypeCodec };
102
152
 
103
153
  //# sourceMappingURL=triggers.codecs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.codecs.js","names":[],"sources":["../../../src/services/triggers/triggers.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec as TriggerSideCodec,\n type OrderSideValue as TriggerSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"../orders/order-enums.codecs.js\";\n\nexport const TRIGGER_TYPE_VALUES = [\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type TriggerTypeValue = (typeof TRIGGER_TYPE_VALUES)[number];\n\nexport const TRIGGER_TYPE_LABEL_VALUES = TRIGGER_TYPE_VALUES;\nexport type TriggerTypeLabelValue = (typeof TRIGGER_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_STATUS_FILTER_VALUES = [\n \"created\",\n \"armed\",\n \"running\",\n \"completed\",\n \"cancelled\",\n \"failed\",\n \"paused\",\n] as const;\nexport type TriggerStatusFilterValue = (typeof TRIGGER_STATUS_FILTER_VALUES)[number];\n\nexport const TRIGGER_STATUS_LABEL_VALUES = TRIGGER_STATUS_FILTER_VALUES;\nexport type TriggerStatusLabelValue = (typeof TRIGGER_STATUS_LABEL_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_VALUES = [\"fired\", \"canceled\", \"updated\", \"failed\"] as const;\nexport type TriggerEventTypeValue = (typeof TRIGGER_EVENT_TYPE_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_LABEL_VALUES = TRIGGER_EVENT_TYPE_VALUES;\nexport type TriggerEventTypeLabelValue = (typeof TRIGGER_EVENT_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_DIRECTION_VALUES = [\"above\", \"below\"] as const;\nexport type TriggerDirectionValue = (typeof TRIGGER_DIRECTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_VALUES = [\"linear\"] as const;\nexport type LadderDistributionValue = (typeof LADDER_DISTRIBUTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_LABEL_VALUES = [\n \"linear\",\n \"geometric\",\n \"weighted_favorable\",\n] as const;\nexport type LadderDistributionLabelValue = (typeof LADDER_DISTRIBUTION_LABEL_VALUES)[number];\n\nexport const TriggerTypeCodec = {\n inputToProto: {\n stop_loss: Proto.TriggerType.STOP_LOSS,\n take_profit: Proto.TriggerType.TAKE_PROFIT,\n trailing_stop: Proto.TriggerType.TRAILING_STOP,\n twap: Proto.TriggerType.TWAP,\n ladder: Proto.TriggerType.LADDER,\n } satisfies InputToProto<TriggerTypeValue, Proto.TriggerType>,\n protoToOutput: {\n [Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerType.STOP_LOSS]: \"stop_loss\",\n [Proto.TriggerType.TAKE_PROFIT]: \"take_profit\",\n [Proto.TriggerType.TRAILING_STOP]: \"trailing_stop\",\n [Proto.TriggerType.TWAP]: \"twap\",\n [Proto.TriggerType.LADDER]: \"ladder\",\n } satisfies ProtoToOutput<Proto.TriggerType, TriggerTypeLabelValue>,\n} as const;\n\nexport const TriggerStatusCodec = {\n inputToProto: {\n created: Proto.TriggerStatus.STATUS_CREATED,\n armed: Proto.TriggerStatus.STATUS_ARMED,\n running: Proto.TriggerStatus.STATUS_RUNNING,\n completed: Proto.TriggerStatus.STATUS_COMPLETED,\n cancelled: Proto.TriggerStatus.STATUS_CANCELED,\n failed: Proto.TriggerStatus.STATUS_FAILED,\n paused: Proto.TriggerStatus.STATUS_PAUSED,\n } satisfies InputToProto<TriggerStatusFilterValue, Proto.TriggerStatus>,\n protoToOutput: {\n [Proto.TriggerStatus.STATUS_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerStatus.STATUS_CREATED]: \"created\",\n [Proto.TriggerStatus.STATUS_ARMED]: \"armed\",\n [Proto.TriggerStatus.STATUS_RUNNING]: \"running\",\n [Proto.TriggerStatus.STATUS_COMPLETED]: \"completed\",\n [Proto.TriggerStatus.STATUS_CANCELED]: \"cancelled\",\n [Proto.TriggerStatus.STATUS_FAILED]: \"failed\",\n [Proto.TriggerStatus.STATUS_PAUSED]: \"paused\",\n } satisfies ProtoToOutput<Proto.TriggerStatus, TriggerStatusLabelValue>,\n} as const;\n\nexport const TriggerEventTypeCodec = {\n inputToProto: {\n fired: Proto.TriggerEventType.EVENT_FIRED,\n canceled: Proto.TriggerEventType.EVENT_CANCELED,\n updated: Proto.TriggerEventType.EVENT_UPDATED,\n failed: Proto.TriggerEventType.EVENT_FAILED,\n } satisfies InputToProto<TriggerEventTypeValue, Proto.TriggerEventType>,\n protoToOutput: {\n [Proto.TriggerEventType.EVENT_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerEventType.EVENT_FIRED]: \"fired\",\n [Proto.TriggerEventType.EVENT_CANCELED]: \"canceled\",\n [Proto.TriggerEventType.EVENT_UPDATED]: \"updated\",\n [Proto.TriggerEventType.EVENT_FAILED]: \"failed\",\n } satisfies ProtoToOutput<Proto.TriggerEventType, TriggerEventTypeLabelValue>,\n} as const;\n\nexport const TriggerDirectionCodec = {\n inputToProto: {\n above: ProtoOrders.TriggerDirection.ABOVE,\n below: ProtoOrders.TriggerDirection.BELOW,\n } satisfies InputToProto<TriggerDirectionValue, ProtoOrders.TriggerDirection>,\n protoToOutput: {\n [ProtoOrders.TriggerDirection.TRIGGER_DIRECTION_UNSPECIFIED]: \"unspecified\",\n [ProtoOrders.TriggerDirection.ABOVE]: \"above\",\n [ProtoOrders.TriggerDirection.BELOW]: \"below\",\n } satisfies ProtoToOutput<ProtoOrders.TriggerDirection, TriggerDirectionValue>,\n} as const;\n\nexport const LadderDistributionCodec = {\n inputToProto: {\n linear: Proto.LadderDistribution.LINEAR,\n } satisfies InputToProto<LadderDistributionValue, Proto.LadderDistribution>,\n protoToOutput: {\n [Proto.LadderDistribution.LADDER_DISTRIBUTION_UNSPECIFIED]: \"unspecified\",\n [Proto.LadderDistribution.LINEAR]: \"linear\",\n [Proto.LadderDistribution.GEOMETRIC]: \"geometric\",\n [Proto.LadderDistribution.WEIGHTED_FAVORABLE]: \"weighted_favorable\",\n } satisfies ProtoToOutput<Proto.LadderDistribution, LadderDistributionLabelValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,sBAAsB;CAC/B;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,+BAA+B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,4BAA4B;CAAC;CAAS;CAAY;CAAW;AAAQ;AAmBlF,MAAa,mBAAmB;CAC5B,cAAc;EACV,WAAA;EACA,aAAA;EACA,eAAA;EACA,MAAA;EACA,QAAA;CACJ;CACA,eAAe;GACmC,IAAA;GACf,IAAA;GACE,IAAA;GACE,IAAA;GACT,IAAA;GACE,IAAA;CAChC;AACJ;AAEA,MAAa,qBAAqB;CAC9B,cAAc;EACV,SAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,QAAA;CACJ;CACA,eAAe;GAC+B,IAAA;GACJ,IAAA;GACF,IAAA;GACE,IAAA;GACE,IAAA;GACD,IAAA;GACF,IAAA;GACA,IAAA;CACzC;AACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;CACJ;CACA,eAAe;GACiC,IAAA;GACN,IAAA;GACG,IAAA;GACD,IAAA;GACD,IAAA;CAC3C;AACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,OAAA;CACJ;CACA,eAAe;GACmD,IAAA;GACxB,IAAA;GACA,IAAA;CAC1C;AACJ;AAEA,MAAa,0BAA0B;CACnC,cAAc,EACV,QAAA,EACJ;CACA,eAAe;GACiD,IAAA;GACzB,IAAA;GACG,IAAA;GACS,IAAA;CACnD;AACJ"}
1
+ {"version":3,"file":"triggers.codecs.js","names":[],"sources":["../../../src/services/triggers/triggers.codecs.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport * as ProtoOrders from \"../../gen/orders/v1/orders_pb.js\";\nimport type { InputToProto, ProtoToOutput } from \"../../utils/types.js\";\nexport {\n FEE_ASSET_VALUES,\n FeeAssetCodec,\n type FeeAssetValue,\n ORDER_SIDE_VALUES as TRIGGER_SIDE_VALUES,\n ORDER_TYPE_VALUES,\n OrderSideCodec as TriggerSideCodec,\n type OrderSideValue as TriggerSideValue,\n OrderTypeCodec,\n type OrderTypeValue,\n SELF_TRADE_PREVENTION_MODE_VALUES,\n SelfTradePreventionModeCodec,\n type SelfTradePreventionModeValue,\n TIME_IN_FORCE_OUTPUT_VALUES,\n TIME_IN_FORCE_VALUES,\n TimeInForceCodec,\n type TimeInForceOutputValue,\n type TimeInForceValue,\n TRIGGER_PRICE_SOURCE_VALUES,\n TriggerPriceSourceCodec,\n type TriggerPriceSourceValue,\n} from \"../orders/order-enums.codecs.js\";\n\nexport const TRIGGER_TYPE_VALUES = [\n \"stop_loss\",\n \"take_profit\",\n \"trailing_stop\",\n \"twap\",\n \"ladder\",\n] as const;\nexport type TriggerTypeValue = (typeof TRIGGER_TYPE_VALUES)[number];\n\nexport const TRIGGER_TYPE_LABEL_VALUES = TRIGGER_TYPE_VALUES;\nexport type TriggerTypeLabelValue = (typeof TRIGGER_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_STATUS_FILTER_VALUES = [\n \"created\",\n \"armed\",\n \"running\",\n \"completed\",\n \"cancelled\",\n \"failed\",\n \"paused\",\n] as const;\nexport type TriggerStatusFilterValue = (typeof TRIGGER_STATUS_FILTER_VALUES)[number];\n\nexport const TRIGGER_STATUS_LABEL_VALUES = TRIGGER_STATUS_FILTER_VALUES;\nexport type TriggerStatusLabelValue = (typeof TRIGGER_STATUS_LABEL_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_VALUES = [\"fired\", \"canceled\", \"updated\", \"failed\"] as const;\nexport type TriggerEventTypeValue = (typeof TRIGGER_EVENT_TYPE_VALUES)[number];\n\nexport const TRIGGER_EVENT_TYPE_LABEL_VALUES = TRIGGER_EVENT_TYPE_VALUES;\nexport type TriggerEventTypeLabelValue = (typeof TRIGGER_EVENT_TYPE_LABEL_VALUES)[number];\n\nexport const TRIGGER_CANCEL_REASON_LABEL_VALUES = [\n \"user_request\",\n \"oco\",\n \"parent_canceled_no_fill\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerCancelReasonLabelValue = (typeof TRIGGER_CANCEL_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_FAILURE_REASON_LABEL_VALUES = [\n \"unknown_symbol\",\n \"pair_disabled\",\n \"min_notional\",\n \"tick_size\",\n \"insufficient_funds\",\n \"risk_limit\",\n \"duplicate_client_id\",\n \"market_halted\",\n \"engine_busy\",\n \"account_unknown\",\n \"order_unknown\",\n \"post_only_cross\",\n \"reduce_only_blocked\",\n \"price_band_violation\",\n \"market_cap_violation\",\n \"empty_book\",\n \"fok_insufficient_liquidity\",\n \"fee_asset_not_allowed\",\n \"market_price_unavailable\",\n \"stale_quote\",\n \"min_quantity\",\n \"step_size\",\n \"invalid_sizing\",\n \"max_quote_debit_too_small\",\n \"fee_ceiling_exceeded\",\n \"trigger_price_invalid\",\n \"trigger_price_source_unsupported\",\n \"trailing_distance_invalid\",\n \"modification_requires_replace\",\n \"order_already_terminal\",\n \"conflict_idempotency_key_reuse\",\n \"rate_limited\",\n \"policy_spot_trade_deny\",\n \"policy_market_deny\",\n \"policy_max_notional\",\n \"policy_max_open_orders\",\n \"policy_trading_halted\",\n \"missing_reason_code\",\n \"internal_error\",\n] as const;\nexport type TriggerFailureReasonLabelValue = (typeof TRIGGER_FAILURE_REASON_LABEL_VALUES)[number];\n\nexport const TRIGGER_DIRECTION_VALUES = [\"above\", \"below\"] as const;\nexport type TriggerDirectionValue = (typeof TRIGGER_DIRECTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_VALUES = [\"linear\"] as const;\nexport type LadderDistributionValue = (typeof LADDER_DISTRIBUTION_VALUES)[number];\n\nexport const LADDER_DISTRIBUTION_LABEL_VALUES = [\n \"linear\",\n \"geometric\",\n \"weighted_favorable\",\n] as const;\nexport type LadderDistributionLabelValue = (typeof LADDER_DISTRIBUTION_LABEL_VALUES)[number];\n\nexport const TriggerTypeCodec = {\n inputToProto: {\n stop_loss: Proto.TriggerType.STOP_LOSS,\n take_profit: Proto.TriggerType.TAKE_PROFIT,\n trailing_stop: Proto.TriggerType.TRAILING_STOP,\n twap: Proto.TriggerType.TWAP,\n ladder: Proto.TriggerType.LADDER,\n } satisfies InputToProto<TriggerTypeValue, Proto.TriggerType>,\n protoToOutput: {\n [Proto.TriggerType.TRIGGER_TYPE_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerType.STOP_LOSS]: \"stop_loss\",\n [Proto.TriggerType.TAKE_PROFIT]: \"take_profit\",\n [Proto.TriggerType.TRAILING_STOP]: \"trailing_stop\",\n [Proto.TriggerType.TWAP]: \"twap\",\n [Proto.TriggerType.LADDER]: \"ladder\",\n } satisfies ProtoToOutput<Proto.TriggerType, TriggerTypeLabelValue>,\n} as const;\n\nexport const TriggerStatusCodec = {\n inputToProto: {\n created: Proto.TriggerStatus.STATUS_CREATED,\n armed: Proto.TriggerStatus.STATUS_ARMED,\n running: Proto.TriggerStatus.STATUS_RUNNING,\n completed: Proto.TriggerStatus.STATUS_COMPLETED,\n cancelled: Proto.TriggerStatus.STATUS_CANCELED,\n failed: Proto.TriggerStatus.STATUS_FAILED,\n paused: Proto.TriggerStatus.STATUS_PAUSED,\n } satisfies InputToProto<TriggerStatusFilterValue, Proto.TriggerStatus>,\n protoToOutput: {\n [Proto.TriggerStatus.STATUS_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerStatus.STATUS_CREATED]: \"created\",\n [Proto.TriggerStatus.STATUS_ARMED]: \"armed\",\n [Proto.TriggerStatus.STATUS_RUNNING]: \"running\",\n [Proto.TriggerStatus.STATUS_COMPLETED]: \"completed\",\n [Proto.TriggerStatus.STATUS_CANCELED]: \"cancelled\",\n [Proto.TriggerStatus.STATUS_FAILED]: \"failed\",\n [Proto.TriggerStatus.STATUS_PAUSED]: \"paused\",\n } satisfies ProtoToOutput<Proto.TriggerStatus, TriggerStatusLabelValue>,\n} as const;\n\nexport const TriggerEventTypeCodec = {\n inputToProto: {\n fired: Proto.TriggerEventType.EVENT_FIRED,\n canceled: Proto.TriggerEventType.EVENT_CANCELED,\n updated: Proto.TriggerEventType.EVENT_UPDATED,\n failed: Proto.TriggerEventType.EVENT_FAILED,\n } satisfies InputToProto<TriggerEventTypeValue, Proto.TriggerEventType>,\n protoToOutput: {\n [Proto.TriggerEventType.EVENT_UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerEventType.EVENT_FIRED]: \"fired\",\n [Proto.TriggerEventType.EVENT_CANCELED]: \"canceled\",\n [Proto.TriggerEventType.EVENT_UPDATED]: \"updated\",\n [Proto.TriggerEventType.EVENT_FAILED]: \"failed\",\n } satisfies ProtoToOutput<Proto.TriggerEventType, TriggerEventTypeLabelValue>,\n} as const;\n\nexport const TriggerCancelReasonCodec = {\n protoToOutput: {\n [Proto.TriggerCancelReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerCancelReason.USER_REQUEST]: \"user_request\",\n [Proto.TriggerCancelReason.OCO]: \"oco\",\n [Proto.TriggerCancelReason.PARENT_CANCELED_NO_FILL]: \"parent_canceled_no_fill\",\n [Proto.TriggerCancelReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerCancelReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerCancelReason, TriggerCancelReasonLabelValue>,\n} as const;\n\nexport const TriggerFailureReasonCodec = {\n protoToOutput: {\n [Proto.TriggerFailureReason.UNSPECIFIED]: \"unspecified\",\n [Proto.TriggerFailureReason.UNKNOWN_SYMBOL]: \"unknown_symbol\",\n [Proto.TriggerFailureReason.PAIR_DISABLED]: \"pair_disabled\",\n [Proto.TriggerFailureReason.MIN_NOTIONAL]: \"min_notional\",\n [Proto.TriggerFailureReason.TICK_SIZE]: \"tick_size\",\n [Proto.TriggerFailureReason.INSUFFICIENT_FUNDS]: \"insufficient_funds\",\n [Proto.TriggerFailureReason.RISK_LIMIT]: \"risk_limit\",\n [Proto.TriggerFailureReason.DUPLICATE_CLIENT_ID]: \"duplicate_client_id\",\n [Proto.TriggerFailureReason.MARKET_HALTED]: \"market_halted\",\n [Proto.TriggerFailureReason.ENGINE_BUSY]: \"engine_busy\",\n [Proto.TriggerFailureReason.ACCOUNT_UNKNOWN]: \"account_unknown\",\n [Proto.TriggerFailureReason.ORDER_UNKNOWN]: \"order_unknown\",\n [Proto.TriggerFailureReason.POST_ONLY_CROSS]: \"post_only_cross\",\n [Proto.TriggerFailureReason.REDUCE_ONLY_BLOCKED]: \"reduce_only_blocked\",\n [Proto.TriggerFailureReason.PRICE_BAND_VIOLATION]: \"price_band_violation\",\n [Proto.TriggerFailureReason.MARKET_CAP_VIOLATION]: \"market_cap_violation\",\n [Proto.TriggerFailureReason.EMPTY_BOOK]: \"empty_book\",\n [Proto.TriggerFailureReason.FOK_INSUFFICIENT_LIQUIDITY]: \"fok_insufficient_liquidity\",\n [Proto.TriggerFailureReason.FEE_ASSET_NOT_ALLOWED]: \"fee_asset_not_allowed\",\n [Proto.TriggerFailureReason.MARKET_PRICE_UNAVAILABLE]: \"market_price_unavailable\",\n [Proto.TriggerFailureReason.STALE_QUOTE]: \"stale_quote\",\n [Proto.TriggerFailureReason.MIN_QUANTITY]: \"min_quantity\",\n [Proto.TriggerFailureReason.STEP_SIZE]: \"step_size\",\n [Proto.TriggerFailureReason.INVALID_SIZING]: \"invalid_sizing\",\n [Proto.TriggerFailureReason.MAX_QUOTE_DEBIT_TOO_SMALL]: \"max_quote_debit_too_small\",\n [Proto.TriggerFailureReason.FEE_CEILING_EXCEEDED]: \"fee_ceiling_exceeded\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_INVALID]: \"trigger_price_invalid\",\n [Proto.TriggerFailureReason.TRIGGER_PRICE_SOURCE_UNSUPPORTED]:\n \"trigger_price_source_unsupported\",\n [Proto.TriggerFailureReason.TRAILING_DISTANCE_INVALID]: \"trailing_distance_invalid\",\n [Proto.TriggerFailureReason.MODIFICATION_REQUIRES_REPLACE]: \"modification_requires_replace\",\n [Proto.TriggerFailureReason.ORDER_ALREADY_TERMINAL]: \"order_already_terminal\",\n [Proto.TriggerFailureReason.CONFLICT_IDEMPOTENCY_KEY_REUSE]:\n \"conflict_idempotency_key_reuse\",\n [Proto.TriggerFailureReason.RATE_LIMITED]: \"rate_limited\",\n [Proto.TriggerFailureReason.POLICY_SPOT_TRADE_DENY]: \"policy_spot_trade_deny\",\n [Proto.TriggerFailureReason.POLICY_MARKET_DENY]: \"policy_market_deny\",\n [Proto.TriggerFailureReason.POLICY_MAX_NOTIONAL]: \"policy_max_notional\",\n [Proto.TriggerFailureReason.POLICY_MAX_OPEN_ORDERS]: \"policy_max_open_orders\",\n [Proto.TriggerFailureReason.POLICY_TRADING_HALTED]: \"policy_trading_halted\",\n [Proto.TriggerFailureReason.MISSING_REASON_CODE]: \"missing_reason_code\",\n [Proto.TriggerFailureReason.INTERNAL_ERROR]: \"internal_error\",\n } satisfies ProtoToOutput<Proto.TriggerFailureReason, TriggerFailureReasonLabelValue>,\n} as const;\n\nexport const TriggerDirectionCodec = {\n inputToProto: {\n above: ProtoOrders.TriggerDirection.ABOVE,\n below: ProtoOrders.TriggerDirection.BELOW,\n } satisfies InputToProto<TriggerDirectionValue, ProtoOrders.TriggerDirection>,\n protoToOutput: {\n [ProtoOrders.TriggerDirection.TRIGGER_DIRECTION_UNSPECIFIED]: \"unspecified\",\n [ProtoOrders.TriggerDirection.ABOVE]: \"above\",\n [ProtoOrders.TriggerDirection.BELOW]: \"below\",\n } satisfies ProtoToOutput<ProtoOrders.TriggerDirection, TriggerDirectionValue>,\n} as const;\n\nexport const LadderDistributionCodec = {\n inputToProto: {\n linear: Proto.LadderDistribution.LINEAR,\n } satisfies InputToProto<LadderDistributionValue, Proto.LadderDistribution>,\n protoToOutput: {\n [Proto.LadderDistribution.LADDER_DISTRIBUTION_UNSPECIFIED]: \"unspecified\",\n [Proto.LadderDistribution.LINEAR]: \"linear\",\n [Proto.LadderDistribution.GEOMETRIC]: \"geometric\",\n [Proto.LadderDistribution.WEIGHTED_FAVORABLE]: \"weighted_favorable\",\n } satisfies ProtoToOutput<Proto.LadderDistribution, LadderDistributionLabelValue>,\n} as const;\n"],"mappings":";;;;AA0BA,MAAa,sBAAsB;CAC/B;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,+BAA+B;CACxC;CACA;CACA;CACA;CACA;CACA;CACA;AACJ;AAMA,MAAa,4BAA4B;CAAC;CAAS;CAAY;CAAW;AAAQ;AAuElF,MAAa,mBAAmB;CAC5B,cAAc;EACV,WAAA;EACA,aAAA;EACA,eAAA;EACA,MAAA;EACA,QAAA;CACJ;CACA,eAAe;GACmC,IAAA;GACf,IAAA;GACE,IAAA;GACE,IAAA;GACT,IAAA;GACE,IAAA;CAChC;AACJ;AAEA,MAAa,qBAAqB;CAC9B,cAAc;EACV,SAAA;EACA,OAAA;EACA,SAAA;EACA,WAAA;EACA,WAAA;EACA,QAAA;EACA,QAAA;CACJ;CACA,eAAe;GAC+B,IAAA;GACJ,IAAA;GACF,IAAA;GACE,IAAA;GACE,IAAA;GACD,IAAA;GACF,IAAA;GACA,IAAA;CACzC;AACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,UAAA;EACA,SAAA;EACA,QAAA;CACJ;CACA,eAAe;GACiC,IAAA;GACN,IAAA;GACG,IAAA;GACD,IAAA;GACD,IAAA;CAC3C;AACJ;AAEA,MAAa,2BAA2B,EACpC,eAAe;EAC8B,IAAA;EACC,IAAA;EACT,IAAA;EACoB,IAAA;EACJ,MAAA;EACL,MAAA;AAChD,EACJ;AAEA,MAAa,4BAA4B,EACrC,eAAe;EAC+B,IAAA;EACG,IAAA;EACD,IAAA;EACD,IAAA;EACH,IAAA;EACS,IAAA;EACR,IAAA;EACS,IAAA;EACN,IAAA;EACF,IAAA;EACI,KAAA;EACF,KAAA;EACE,KAAA;EACI,KAAA;EACC,KAAA;EACA,KAAA;EACV,KAAA;EACgB,KAAA;EACL,KAAA;EACG,KAAA;EACb,KAAA;EACC,KAAA;EACH,KAAA;EACK,KAAA;EACW,KAAA;EACL,KAAA;EACC,KAAA;EAEhD,KAAA;EACoD,KAAA;EACI,KAAA;EACP,KAAA;EAEjD,KAAA;EACuC,KAAA;EACU,KAAA;EACJ,KAAA;EACC,KAAA;EACG,KAAA;EACD,KAAA;EACF,MAAA;EACL,MAAA;AACjD,EACJ;AAEA,MAAa,wBAAwB;CACjC,cAAc;EACV,OAAA;EACA,OAAA;CACJ;CACA,eAAe;GACmD,IAAA;GACxB,IAAA;GACA,IAAA;CAC1C;AACJ;AAEA,MAAa,0BAA0B;CACnC,cAAc,EACV,QAAA,EACJ;CACA,eAAe;GACiD,IAAA;GACzB,IAAA;GACG,IAAA;GACS,IAAA;CACnD;AACJ"}
@@ -1,3 +1,4 @@
1
+ import { AuthApiTransports } from "../../shared/transports.js";
1
2
  import { PolyesterMutationOptions, PolyesterRequestOptions } from "../../shared/request-options.js";
2
3
  import { SubaccountResolver } from "../subaccount-resolver.js";
3
4
  import { PolyesterRealtime } from "../../realtime/types.js";
@@ -7,7 +8,6 @@ import { SdkScales } from "../../shared/decimal-surface.js";
7
8
  import { CancelTriggerInput, CreateTriggerInput, GetTriggerInput, ListTriggerEventsInput, ListTriggersInput, ModifyTriggerInput, PauseTriggerInput, ResumeTriggerInput } from "./trigger-input.schemas.js";
8
9
  import { CancelTriggerResult, CreateTriggerResult, ListTriggerEventsResult, ModifyTriggerResult, PauseTriggerResult, ResumeTriggerResult, Trigger, TriggerEvent } from "./triggers-output.schemas.js";
9
10
  import "./triggers.schemas.js";
10
- import { Transport } from "@connectrpc/connect";
11
11
  //#region src/services/triggers/triggers.d.ts
12
12
  interface ListTriggersResult {
13
13
  triggers: Trigger[];
@@ -24,7 +24,7 @@ interface SubscribeTriggerEventsInput extends BaseSubscribeInput<TriggerEvent> {
24
24
  */
25
25
  declare class TriggersService {
26
26
  #private;
27
- constructor(transport: Transport, realtime: PolyesterRealtime, resolver: SubaccountResolver | undefined, scales: SdkScales);
27
+ constructor(transports: AuthApiTransports, realtime: PolyesterRealtime, resolver: SubaccountResolver | undefined, scales: SdkScales);
28
28
  /**
29
29
  * Creates a standalone trigger for a symbol ID, using that market's catalog quantity scale.
30
30
  */
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UA0DiB;EACb,UAAU;EACV;;UAGM,+BAA+B,mBAAmB;EACxD;;UAGM,oCAAoC,mBAAmB;EAC7D;;;;;cAMS;;EAWL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAeN,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,IAAI,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAgBxE,KACF,QAAO,mBACP,UAAU,0BACX,QAAQ;;;;EAiBL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,MACF,OAAO,mBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,WACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAyBX,UAAU,OAAO;;;;EAmBjB,gBAAgB,OAAO"}
1
+ {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UA2DiB;EACb,UAAU;EACV;;UAGM,+BAA+B,mBAAmB;EACxD;;UAGM,oCAAoC,mBAAmB;EAC7D;;;;;cAMS;;EAWL,YAAA,YAAY,mBACZ,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAeN,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,IAAI,OAAO,iBAAiB,UAAU,0BAA0B,QAAQ;;;;EAgBxE,KACF,QAAO,mBACP,UAAU,0BACX,QAAQ;;;;EAiBL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAWL,MACF,OAAO,mBACP,UAAU,2BACX,QAAQ;;;;EAaL,OACF,OAAO,oBACP,UAAU,2BACX,QAAQ;;;;EAaL,WACF,OAAO,wBACP,UAAU,0BACX,QAAQ;;;;EAyBX,UAAU,OAAO;;;;EAmBjB,gBAAgB,OAAO"}
@@ -21,8 +21,8 @@ var TriggersService = class {
21
21
  #modifyTriggerInputSchema;
22
22
  #triggerSchema;
23
23
  #triggerEventSchema;
24
- constructor(transport, realtime, resolver, scales) {
25
- this.#client = createClient(TriggersService$1, transport);
24
+ constructor(transports, realtime, resolver, scales) {
25
+ this.#client = createClient(TriggersService$1, transports.authApi);
26
26
  this.#realtime = realtime;
27
27
  this.#resolver = resolver;
28
28
  this.#scales = scales;
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.js","names":["#client","Proto.TriggersService","#realtime","#resolver","#scales","#createTriggerInputSchema","#modifyTriggerInputSchema","#triggerSchema","#triggerEventSchema","Proto.TriggerSchema","Proto.TriggerEventSchema"],"sources":["../../../src/services/triggers/triggers.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport { connectReadyGatedProtoChannel } from \"../../realtime/ready-gated-subscription.js\";\nimport {\n createCreateTriggerInputSchema,\n createModifyTriggerInputSchema,\n ListTriggersInputSchema,\n CancelTriggerInputSchema,\n PauseTriggerInputSchema,\n ResumeTriggerInputSchema,\n GetTriggerInputSchema,\n ListTriggerEventsInputSchema,\n CreateTriggerResultSchema,\n CancelTriggerResultSchema,\n ModifyTriggerResultSchema,\n PauseTriggerResultSchema,\n ResumeTriggerResultSchema,\n createTriggerSchema,\n createTriggerEventSchema,\n type Trigger,\n type CreateTriggerInput,\n type ListTriggersInput,\n type CancelTriggerInput,\n type GetTriggerInput,\n type ModifyTriggerInput,\n type PauseTriggerInput,\n type ResumeTriggerInput,\n type ListTriggerEventsInput,\n type CreateTriggerResult,\n type CancelTriggerResult,\n type ModifyTriggerResult,\n type PauseTriggerResult,\n type ResumeTriggerResult,\n type ListTriggerEventsResult,\n type TriggerEvent,\n} from \"./triggers.schemas.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport type { PolyesterRealtime } from \"../../realtime/index.js\";\n\nexport type {\n CreateTriggerResult,\n CancelTriggerResult,\n ModifyTriggerResult,\n PauseTriggerResult,\n ResumeTriggerResult,\n ListTriggerEventsResult,\n};\n\nexport interface ListTriggersResult {\n triggers: Trigger[];\n nextPageToken: string;\n}\n\ninterface SubscribeTriggersInput extends BaseSubscribeInput<Trigger> {\n accountId: string;\n}\n\ninterface SubscribeTriggerEventsInput extends BaseSubscribeInput<TriggerEvent> {\n accountId: string;\n}\n\n/**\n * Manages standalone order triggers and their realtime lifecycle/event streams.\n */\nexport class TriggersService {\n #client: Client<typeof Proto.TriggersService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #createTriggerInputSchema: ReturnType<typeof createCreateTriggerInputSchema>;\n #modifyTriggerInputSchema: ReturnType<typeof createModifyTriggerInputSchema>;\n #triggerSchema: ReturnType<typeof createTriggerSchema>;\n #triggerEventSchema: ReturnType<typeof createTriggerEventSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.TriggersService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#createTriggerInputSchema = createCreateTriggerInputSchema(scales);\n this.#modifyTriggerInputSchema = createModifyTriggerInputSchema(scales);\n this.#triggerSchema = createTriggerSchema(scales);\n this.#triggerEventSchema = createTriggerEventSchema(scales);\n }\n\n /**\n * Creates a standalone trigger for a symbol ID, using that market's catalog quantity scale.\n */\n async create(\n input: CreateTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<CreateTriggerResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = parse(this.#createTriggerInputSchema, resolved);\n const res = await this.#client.createTrigger(validatedInput, toConnectCallOptions(options));\n return parse(CreateTriggerResultSchema, res);\n }\n\n /**\n * Fetches one trigger by id in the resolved account scope and returns null when the backend response contains no trigger.\n */\n async get(input: GetTriggerInput, options?: PolyesterRequestOptions): Promise<Trigger | null> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(GetTriggerInputSchema, resolved);\n const res = await this.#client.getTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n\n if (!res.trigger) return null;\n return parse(this.#triggerSchema, res.trigger);\n }\n\n /**\n * Lists triggers for the resolved account scope with optional symbol ID, status, trigger type, parent order, limit, and page-token filters. Results are returned newest-first.\n */\n async list(\n input: ListTriggersInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<ListTriggersResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ListTriggersInputSchema, resolved);\n const res = await this.#client.listTriggers(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return {\n triggers: parse(v.array(this.#triggerSchema), res.triggers),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Cancels an active trigger by id in the resolved account scope and returns the trigger id, resulting status, and server timestamp.\n */\n async cancel(\n input: CancelTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<CancelTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(CancelTriggerInputSchema, resolved);\n const res = await this.#client.cancelTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(CancelTriggerResultSchema, res);\n }\n\n /**\n * Applies a limited patch to an existing trigger. The symbol ID routes policy checks for exposure-increasing changes.\n */\n async modify(\n input: ModifyTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<ModifyTriggerResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(this.#modifyTriggerInputSchema, resolved);\n const res = await this.#client.modifyTrigger(validated, toConnectCallOptions(options));\n return parse(ModifyTriggerResultSchema, res);\n }\n\n /**\n * Pauses an active trigger without discarding its immutable strategy configuration.\n */\n async pause(\n input: PauseTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<PauseTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(PauseTriggerInputSchema, resolved);\n const res = await this.#client.pauseTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(PauseTriggerResultSchema, res);\n }\n\n /**\n * Resumes a paused trigger using its symbol ID for policy checks.\n */\n async resume(\n input: ResumeTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<ResumeTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ResumeTriggerInputSchema, resolved);\n const res = await this.#client.resumeTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(ResumeTriggerResultSchema, res);\n }\n\n /**\n * Returns newest-first historical lifecycle events for one trigger, optionally filtered by event type. Fired events enumerate child-order actions. The SDK defaults limit to 50.\n */\n async listEvents(\n input: ListTriggerEventsInput,\n options?: PolyesterRequestOptions,\n ): Promise<ListTriggerEventsResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ListTriggerEventsInputSchema, resolved);\n\n const res = await this.#client.listTriggerEvents(\n removeUndefined({\n triggerId: validated.triggerId,\n subaccountId: validated.subaccountId,\n limit: validated.limit ?? 50,\n eventType: validated.eventType,\n pageToken: validated.pageToken ?? \"\",\n }),\n toConnectCallOptions(options),\n );\n\n return {\n events: parse(v.array(this.#triggerEventSchema), res.events),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to private trigger state updates on private:spot:triggers:{accountId}:proto and emits parsed trigger records.\n */\n subscribe(input: SubscribeTriggersInput): () => void {\n const channel = `private:spot:triggers:${input.accountId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.TriggerSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const trigger = parse(this.#triggerSchema, data);\n input.onEvent(trigger);\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n\n /**\n * Subscribes to private trigger lifecycle events on private:spot:triggers:events:{accountId}:proto and emits parsed trigger event records.\n */\n subscribeEvents(input: SubscribeTriggerEventsInput): () => void {\n const channel = `private:spot:triggers:events:${input.accountId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.TriggerEventSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const event = parse(this.#triggerEventSchema, data);\n input.onEvent(event);\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"triggers.js","names":["#client","Proto.TriggersService","#realtime","#resolver","#scales","#createTriggerInputSchema","#modifyTriggerInputSchema","#triggerSchema","#triggerEventSchema","Proto.TriggerSchema","Proto.TriggerEventSchema"],"sources":["../../../src/services/triggers/triggers.ts"],"sourcesContent":["import * as Proto from \"../../gen/triggers/v1/triggers_pb.js\";\nimport { createClient, type Client } from \"@connectrpc/connect\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport type { AuthApiTransports } from \"../../shared/transports.js\";\nimport { connectReadyGatedProtoChannel } from \"../../realtime/ready-gated-subscription.js\";\nimport {\n createCreateTriggerInputSchema,\n createModifyTriggerInputSchema,\n ListTriggersInputSchema,\n CancelTriggerInputSchema,\n PauseTriggerInputSchema,\n ResumeTriggerInputSchema,\n GetTriggerInputSchema,\n ListTriggerEventsInputSchema,\n CreateTriggerResultSchema,\n CancelTriggerResultSchema,\n ModifyTriggerResultSchema,\n PauseTriggerResultSchema,\n ResumeTriggerResultSchema,\n createTriggerSchema,\n createTriggerEventSchema,\n type Trigger,\n type CreateTriggerInput,\n type ListTriggersInput,\n type CancelTriggerInput,\n type GetTriggerInput,\n type ModifyTriggerInput,\n type PauseTriggerInput,\n type ResumeTriggerInput,\n type ListTriggerEventsInput,\n type CreateTriggerResult,\n type CancelTriggerResult,\n type ModifyTriggerResult,\n type PauseTriggerResult,\n type ResumeTriggerResult,\n type ListTriggerEventsResult,\n type TriggerEvent,\n} from \"./triggers.schemas.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport type { PolyesterRealtime } from \"../../realtime/index.js\";\n\nexport type {\n CreateTriggerResult,\n CancelTriggerResult,\n ModifyTriggerResult,\n PauseTriggerResult,\n ResumeTriggerResult,\n ListTriggerEventsResult,\n};\n\nexport interface ListTriggersResult {\n triggers: Trigger[];\n nextPageToken: string;\n}\n\ninterface SubscribeTriggersInput extends BaseSubscribeInput<Trigger> {\n accountId: string;\n}\n\ninterface SubscribeTriggerEventsInput extends BaseSubscribeInput<TriggerEvent> {\n accountId: string;\n}\n\n/**\n * Manages standalone order triggers and their realtime lifecycle/event streams.\n */\nexport class TriggersService {\n #client: Client<typeof Proto.TriggersService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #createTriggerInputSchema: ReturnType<typeof createCreateTriggerInputSchema>;\n #modifyTriggerInputSchema: ReturnType<typeof createModifyTriggerInputSchema>;\n #triggerSchema: ReturnType<typeof createTriggerSchema>;\n #triggerEventSchema: ReturnType<typeof createTriggerEventSchema>;\n\n constructor(\n transports: AuthApiTransports,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.TriggersService, transports.authApi);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#createTriggerInputSchema = createCreateTriggerInputSchema(scales);\n this.#modifyTriggerInputSchema = createModifyTriggerInputSchema(scales);\n this.#triggerSchema = createTriggerSchema(scales);\n this.#triggerEventSchema = createTriggerEventSchema(scales);\n }\n\n /**\n * Creates a standalone trigger for a symbol ID, using that market's catalog quantity scale.\n */\n async create(\n input: CreateTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<CreateTriggerResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = parse(this.#createTriggerInputSchema, resolved);\n const res = await this.#client.createTrigger(validatedInput, toConnectCallOptions(options));\n return parse(CreateTriggerResultSchema, res);\n }\n\n /**\n * Fetches one trigger by id in the resolved account scope and returns null when the backend response contains no trigger.\n */\n async get(input: GetTriggerInput, options?: PolyesterRequestOptions): Promise<Trigger | null> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(GetTriggerInputSchema, resolved);\n const res = await this.#client.getTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n\n if (!res.trigger) return null;\n return parse(this.#triggerSchema, res.trigger);\n }\n\n /**\n * Lists triggers for the resolved account scope with optional symbol ID, status, trigger type, parent order, limit, and page-token filters. Results are returned newest-first.\n */\n async list(\n input: ListTriggersInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<ListTriggersResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ListTriggersInputSchema, resolved);\n const res = await this.#client.listTriggers(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return {\n triggers: parse(v.array(this.#triggerSchema), res.triggers),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Cancels an active trigger by id in the resolved account scope and returns the trigger id, resulting status, and server timestamp.\n */\n async cancel(\n input: CancelTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<CancelTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(CancelTriggerInputSchema, resolved);\n const res = await this.#client.cancelTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(CancelTriggerResultSchema, res);\n }\n\n /**\n * Applies a limited patch to an existing trigger. The symbol ID routes policy checks for exposure-increasing changes.\n */\n async modify(\n input: ModifyTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<ModifyTriggerResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(this.#modifyTriggerInputSchema, resolved);\n const res = await this.#client.modifyTrigger(validated, toConnectCallOptions(options));\n return parse(ModifyTriggerResultSchema, res);\n }\n\n /**\n * Pauses an active trigger without discarding its immutable strategy configuration.\n */\n async pause(\n input: PauseTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<PauseTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(PauseTriggerInputSchema, resolved);\n const res = await this.#client.pauseTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(PauseTriggerResultSchema, res);\n }\n\n /**\n * Resumes a paused trigger using its symbol ID for policy checks.\n */\n async resume(\n input: ResumeTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<ResumeTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ResumeTriggerInputSchema, resolved);\n const res = await this.#client.resumeTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return parse(ResumeTriggerResultSchema, res);\n }\n\n /**\n * Returns newest-first historical lifecycle events for one trigger, optionally filtered by event type. Fired events enumerate child-order actions. The SDK defaults limit to 50.\n */\n async listEvents(\n input: ListTriggerEventsInput,\n options?: PolyesterRequestOptions,\n ): Promise<ListTriggerEventsResult> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = parse(ListTriggerEventsInputSchema, resolved);\n\n const res = await this.#client.listTriggerEvents(\n removeUndefined({\n triggerId: validated.triggerId,\n subaccountId: validated.subaccountId,\n limit: validated.limit ?? 50,\n eventType: validated.eventType,\n pageToken: validated.pageToken ?? \"\",\n }),\n toConnectCallOptions(options),\n );\n\n return {\n events: parse(v.array(this.#triggerEventSchema), res.events),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to private trigger state updates on private:spot:triggers:{accountId}:proto and emits parsed trigger records.\n */\n subscribe(input: SubscribeTriggersInput): () => void {\n const channel = `private:spot:triggers:${input.accountId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.TriggerSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const trigger = parse(this.#triggerSchema, data);\n input.onEvent(trigger);\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n\n /**\n * Subscribes to private trigger lifecycle events on private:spot:triggers:events:{accountId}:proto and emits parsed trigger event records.\n */\n subscribeEvents(input: SubscribeTriggerEventsInput): () => void {\n const channel = `private:spot:triggers:events:${input.accountId}:proto`;\n return connectReadyGatedProtoChannel(this.#realtime, {\n channel,\n schema: Proto.TriggerEventSchema,\n ready: () => this.#scales.ready(),\n onPublication: (data) => {\n const event = parse(this.#triggerEventSchema, data);\n input.onEvent(event);\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA2EA,IAAa,kBAAb,MAA6B;CACzB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,YACI,YACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAuB,WAAW,OAAO;EACrE,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,4BAA4B,+BAA+B,MAAM;EACtE,KAAKC,4BAA4B,+BAA+B,MAAM;EACtE,KAAKC,iBAAiB,oBAAoB,MAAM;EAChD,KAAKC,sBAAsB,yBAAyB,MAAM;CAC9D;;;;CAKA,MAAM,OACF,OACA,SAC4B;EAC5B,MAAM,KAAKJ,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiB,MAAM,KAAKE,2BAA2B,QAAQ;EACrE,MAAM,MAAM,MAAM,KAAKL,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAC1F,OAAO,MAAM,2BAA2B,GAAG;CAC/C;;;;CAKA,MAAM,IAAI,OAAwB,SAA4D;EAC1F,MAAM,KAAKI,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,YAAY,MAAM,uBAAuB,QAAQ;EACvD,MAAM,MAAM,MAAM,KAAKH,QAAQ,WAC3B,gBAAgB,SAAS,GACzB,qBAAqB,OAAO,CAChC;EAEA,IAAI,CAAC,IAAI,SAAS,OAAO;EACzB,OAAO,MAAM,KAAKO,gBAAgB,IAAI,OAAO;CACjD;;;;CAKA,MAAM,KACF,QAA2B,CAAC,GAC5B,SAC2B;EAC3B,MAAM,KAAKH,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,YAAY,MAAM,yBAAyB,QAAQ;EACzD,MAAM,MAAM,MAAM,KAAKH,QAAQ,aAC3B,gBAAgB,SAAS,GACzB,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,UAAU,MAAM,EAAE,MAAM,KAAKO,cAAc,GAAG,IAAI,QAAQ;GAC1D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,MAAM,OACF,OACA,SAC4B;EAC5B,MAAM,WAAW,0BAA0B,OAAO,KAAKJ,SAAS;EAChE,MAAM,YAAY,MAAM,0BAA0B,QAAQ;EAC1D,MAAM,MAAM,MAAM,KAAKH,QAAQ,cAC3B,gBAAgB,SAAS,GACzB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,2BAA2B,GAAG;CAC/C;;;;CAKA,MAAM,OACF,OACA,SAC4B;EAC5B,MAAM,KAAKI,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,YAAY,MAAM,KAAKG,2BAA2B,QAAQ;EAChE,MAAM,MAAM,MAAM,KAAKN,QAAQ,cAAc,WAAW,qBAAqB,OAAO,CAAC;EACrF,OAAO,MAAM,2BAA2B,GAAG;CAC/C;;;;CAKA,MAAM,MACF,OACA,SAC2B;EAC3B,MAAM,WAAW,0BAA0B,OAAO,KAAKG,SAAS;EAChE,MAAM,YAAY,MAAM,yBAAyB,QAAQ;EACzD,MAAM,MAAM,MAAM,KAAKH,QAAQ,aAC3B,gBAAgB,SAAS,GACzB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,0BAA0B,GAAG;CAC9C;;;;CAKA,MAAM,OACF,OACA,SAC4B;EAC5B,MAAM,WAAW,0BAA0B,OAAO,KAAKG,SAAS;EAChE,MAAM,YAAY,MAAM,0BAA0B,QAAQ;EAC1D,MAAM,MAAM,MAAM,KAAKH,QAAQ,cAC3B,gBAAgB,SAAS,GACzB,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,2BAA2B,GAAG;CAC/C;;;;CAKA,MAAM,WACF,OACA,SACgC;EAChC,MAAM,KAAKI,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,YAAY,MAAM,8BAA8B,QAAQ;EAE9D,MAAM,MAAM,MAAM,KAAKH,QAAQ,kBAC3B,gBAAgB;GACZ,WAAW,UAAU;GACrB,cAAc,UAAU;GACxB,OAAO,UAAU,SAAS;GAC1B,WAAW,UAAU;GACrB,WAAW,UAAU,aAAa;EACtC,CAAC,GACD,qBAAqB,OAAO,CAChC;EAEA,OAAO;GACH,QAAQ,MAAM,EAAE,MAAM,KAAKQ,mBAAmB,GAAG,IAAI,MAAM;GAC3D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,UAAU,OAA2C;EACjD,MAAM,UAAU,yBAAyB,MAAM,UAAU;EACzD,OAAO,8BAA8B,KAAKN,WAAW;GACjD;GACA,QAAQO;GACR,aAAa,KAAKL,QAAQ,MAAM;GAChC,gBAAgB,SAAS;IACrB,MAAM,UAAU,MAAM,KAAKG,gBAAgB,IAAI;IAC/C,MAAM,QAAQ,OAAO;GACzB;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,SAAS,MAAM;EACnB,CAAC;CACL;;;;CAKA,gBAAgB,OAAgD;EAC5D,MAAM,UAAU,gCAAgC,MAAM,UAAU;EAChE,OAAO,8BAA8B,KAAKL,WAAW;GACjD;GACA,QAAQQ;GACR,aAAa,KAAKN,QAAQ,MAAM;GAChC,gBAAgB,SAAS;IACrB,MAAM,QAAQ,MAAM,KAAKI,qBAAqB,IAAI;IAClD,MAAM,QAAQ,KAAK;GACvB;GACA,mBAAmB,MAAM,SAAS;GAClC,sBAAsB,MAAM,UAAU;GACtC,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
@@ -1,4 +1,4 @@
1
- import { Transports } from "../../shared/transports.js";
1
+ import { AuthAndPublicApiTransports } from "../../shared/transports.js";
2
2
  import { PolyesterRequestOptions } from "../../shared/request-options.js";
3
3
  import { VipStatus, VipTierCatalog } from "./vip.schemas.js";
4
4
  //#region src/services/vip/vip.d.ts
@@ -7,7 +7,7 @@ import { VipStatus, VipTierCatalog } from "./vip.schemas.js";
7
7
  */
8
8
  declare class VipService {
9
9
  #private;
10
- constructor(transports: Transports);
10
+ constructor(transports: AuthAndPublicApiTransports);
11
11
  /**
12
12
  * Returns the complete active VIP0+ tier catalog, including policy version, effective time, retention threshold, and per-tier volume/AOP thresholds and fee rates.
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"vip.js","names":["#publicClient","Proto.VIPService","#authClient"],"sources":["../../../src/services/vip/vip.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/vip/v1/vip_pb.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { Transports } from \"../../shared/transports.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n VipStatusSchema,\n VipTierCatalogSchema,\n type VipStatus,\n type VipTierCatalog,\n} from \"./vip.schemas.js\";\n\n/**\n * Reads public VIP policy catalogs and authenticated caller-root VIP status.\n */\nexport class VipService {\n #publicClient: Client<typeof Proto.VIPService>;\n #authClient: Client<typeof Proto.VIPService>;\n\n constructor(transports: Transports) {\n this.#publicClient = createClient(Proto.VIPService, transports.publicApi);\n this.#authClient = createClient(Proto.VIPService, transports.authApi);\n }\n\n /**\n * Returns the complete active VIP0+ tier catalog, including policy version, effective time, retention threshold, and per-tier volume/AOP thresholds and fee rates.\n */\n async listTiers(options?: PolyesterRequestOptions): Promise<VipTierCatalog> {\n const res = await this.#publicClient.listVIPTiers({}, toConnectCallOptions(options));\n return parse(VipTierCatalogSchema, res);\n }\n\n /**\n * Returns VIP qualification status for the authenticated caller's root account, including effective/volume/AOP tiers, optional rolling metrics, and next-tier thresholds.\n */\n async getStatus(options?: PolyesterRequestOptions): Promise<VipStatus> {\n const res = await this.#authClient.getVIPStatus({}, toConnectCallOptions(options));\n return parse(VipStatusSchema, res);\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAa,aAAb,MAAwB;CACpB;CACA;CAEA,YAAY,YAAwB;EAChC,KAAKA,gBAAgB,aAAaC,YAAkB,WAAW,SAAS;EACxE,KAAKC,cAAc,aAAaD,YAAkB,WAAW,OAAO;CACxE;;;;CAKA,MAAM,UAAU,SAA4D;EACxE,MAAM,MAAM,MAAM,KAAKD,cAAc,aAAa,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACnF,OAAO,MAAM,sBAAsB,GAAG;CAC1C;;;;CAKA,MAAM,UAAU,SAAuD;EACnE,MAAM,MAAM,MAAM,KAAKE,YAAY,aAAa,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACjF,OAAO,MAAM,iBAAiB,GAAG;CACrC;AACJ"}
1
+ {"version":3,"file":"vip.js","names":["#publicClient","Proto.VIPService","#authClient"],"sources":["../../../src/services/vip/vip.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/vip/v1/vip_pb.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { AuthAndPublicApiTransports } from \"../../shared/transports.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n VipStatusSchema,\n VipTierCatalogSchema,\n type VipStatus,\n type VipTierCatalog,\n} from \"./vip.schemas.js\";\n\n/**\n * Reads public VIP policy catalogs and authenticated caller-root VIP status.\n */\nexport class VipService {\n #publicClient: Client<typeof Proto.VIPService>;\n #authClient: Client<typeof Proto.VIPService>;\n\n constructor(transports: AuthAndPublicApiTransports) {\n this.#publicClient = createClient(Proto.VIPService, transports.publicApi);\n this.#authClient = createClient(Proto.VIPService, transports.authApi);\n }\n\n /**\n * Returns the complete active VIP0+ tier catalog, including policy version, effective time, retention threshold, and per-tier volume/AOP thresholds and fee rates.\n */\n async listTiers(options?: PolyesterRequestOptions): Promise<VipTierCatalog> {\n const res = await this.#publicClient.listVIPTiers({}, toConnectCallOptions(options));\n return parse(VipTierCatalogSchema, res);\n }\n\n /**\n * Returns VIP qualification status for the authenticated caller's root account, including effective/volume/AOP tiers, optional rolling metrics, and next-tier thresholds.\n */\n async getStatus(options?: PolyesterRequestOptions): Promise<VipStatus> {\n const res = await this.#authClient.getVIPStatus({}, toConnectCallOptions(options));\n return parse(VipStatusSchema, res);\n }\n}\n"],"mappings":";;;;;;;;;AAkBA,IAAa,aAAb,MAAwB;CACpB;CACA;CAEA,YAAY,YAAwC;EAChD,KAAKA,gBAAgB,aAAaC,YAAkB,WAAW,SAAS;EACxE,KAAKC,cAAc,aAAaD,YAAkB,WAAW,OAAO;CACxE;;;;CAKA,MAAM,UAAU,SAA4D;EACxE,MAAM,MAAM,MAAM,KAAKD,cAAc,aAAa,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACnF,OAAO,MAAM,sBAAsB,GAAG;CAC1C;;;;CAKA,MAAM,UAAU,SAAuD;EACnE,MAAM,MAAM,MAAM,KAAKE,YAAY,aAAa,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACjF,OAAO,MAAM,iBAAiB,GAAG;CACrC;AACJ"}
@@ -1,13 +1,13 @@
1
+ import { AuthApiTransports } from "../../shared/transports.js";
1
2
  import { PolyesterMutationOptions, PolyesterRequestOptions } from "../../shared/request-options.js";
2
3
  import { ArchiveWhiteboardBoardInput, ArchiveWhiteboardBoardResult, CreateWhiteboardBoardInput, CreateWhiteboardBoardResult, GetWhiteboardBoardInput, GetWhiteboardBoardResult, ListWhiteboardBoardsInput, ListWhiteboardBoardsResult, MintWhiteboardJoinTokenInput, UpdateWhiteboardBoardAclInput, UpdateWhiteboardBoardAclResult, UpdateWhiteboardBoardInput, UpdateWhiteboardBoardResult, WhiteboardJoinTokenResult } from "./whiteboard.schemas.js";
3
- import { Transport } from "@connectrpc/connect";
4
4
  //#region src/services/whiteboard/whiteboard.d.ts
5
5
  /**
6
6
  * Manages collaborative whiteboards, ACLs, archive state, and join tokens.
7
7
  */
8
8
  declare class WhiteboardService {
9
9
  #private;
10
- constructor(transport: Transport);
10
+ constructor(transports: AuthApiTransports);
11
11
  /**
12
12
  * Creates a whiteboard and returns the parsed whiteboard record.
13
13
  */
@@ -1 +1 @@
1
- {"version":3,"file":"whiteboard.d.ts","names":[],"sources":["../../../src/services/whiteboard/whiteboard.ts"],"mappings":";;;;;;;cA2Ca;;EAGG,YAAA,WAAW;;;;EAOjB,OACF,OAAO,4BACP,UAAU,2BACX,QAAQ;;;;EASL,IACF,OAAO,kCACP,UAAU,0BACX,QAAQ;;;;EAYL,KACF,QAAO,2BACP,UAAU,0BACX,QAAQ;;;;EASL,OACF,OAAO,4BACP,UAAU,2BACX,QAAQ;;;;EAYL,UACF,OAAO,+BACP,UAAU,2BACX,QAAQ;;;;EAYL,QACF,OAAO,6BACP,UAAU,2BACX,QAAQ;;;;EASL,cACF,OAAO,uCACP,UAAU,2BACX,QAAQ"}
1
+ {"version":3,"file":"whiteboard.d.ts","names":[],"sources":["../../../src/services/whiteboard/whiteboard.ts"],"mappings":";;;;;;;cA4Ca;;EAGG,YAAA,YAAY;;;;EAOlB,OACF,OAAO,4BACP,UAAU,2BACX,QAAQ;;;;EASL,IACF,OAAO,kCACP,UAAU,0BACX,QAAQ;;;;EAYL,KACF,QAAO,2BACP,UAAU,0BACX,QAAQ;;;;EASL,OACF,OAAO,4BACP,UAAU,2BACX,QAAQ;;;;EAYL,UACF,OAAO,+BACP,UAAU,2BACX,QAAQ;;;;EAYL,QACF,OAAO,6BACP,UAAU,2BACX,QAAQ;;;;EASL,cACF,OAAO,uCACP,UAAU,2BACX,QAAQ"}
@@ -10,8 +10,8 @@ import { createClient } from "@connectrpc/connect";
10
10
  */
11
11
  var WhiteboardService = class {
12
12
  #client;
13
- constructor(transport) {
14
- this.#client = createClient(WhiteboardService$1, transport);
13
+ constructor(transports) {
14
+ this.#client = createClient(WhiteboardService$1, transports.authApi);
15
15
  }
16
16
  /**
17
17
  * Creates a whiteboard and returns the parsed whiteboard record.
@@ -1 +1 @@
1
- {"version":3,"file":"whiteboard.js","names":["#client","Proto.WhiteboardService"],"sources":["../../../src/services/whiteboard/whiteboard.ts"],"sourcesContent":["import { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/collab/v1/whiteboard_pb.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport {\n ArchiveWhiteboardBoardInputSchema,\n ArchiveWhiteboardBoardResultSchema,\n CreateWhiteboardBoardInputSchema,\n CreateWhiteboardBoardResultSchema,\n GetWhiteboardBoardInputSchema,\n GetWhiteboardBoardResultSchema,\n ListWhiteboardBoardsInputSchema,\n ListWhiteboardBoardsResultSchema,\n MintWhiteboardJoinTokenInputSchema,\n UpdateWhiteboardBoardAclInputSchema,\n UpdateWhiteboardBoardAclResultSchema,\n UpdateWhiteboardBoardInputSchema,\n UpdateWhiteboardBoardResultSchema,\n WhiteboardJoinTokenResultSchema,\n type ArchiveWhiteboardBoardInput,\n type ArchiveWhiteboardBoardResult,\n type CreateWhiteboardBoardInput,\n type CreateWhiteboardBoardResult,\n type GetWhiteboardBoardInput,\n type GetWhiteboardBoardResult,\n type ListWhiteboardBoardsInput,\n type ListWhiteboardBoardsResult,\n type MintWhiteboardJoinTokenInput,\n type UpdateWhiteboardBoardAclInput,\n type UpdateWhiteboardBoardAclResult,\n type UpdateWhiteboardBoardInput,\n type UpdateWhiteboardBoardResult,\n type WhiteboardJoinTokenResult,\n} from \"./whiteboard.schemas.js\";\n\n/**\n * Manages collaborative whiteboards, ACLs, archive state, and join tokens.\n */\nexport class WhiteboardService {\n #client: Client<typeof Proto.WhiteboardService>;\n\n constructor(transport: Transport) {\n this.#client = createClient(Proto.WhiteboardService, transport);\n }\n\n /**\n * Creates a whiteboard and returns the parsed whiteboard record.\n */\n async create(\n input: CreateWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<CreateWhiteboardBoardResult> {\n const validatedInput = parse(CreateWhiteboardBoardInputSchema, input);\n const res = await this.#client.createBoard(validatedInput, toConnectCallOptions(options));\n return parse(CreateWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Fetches a whiteboard by id and returns null when no whiteboard is present in the response.\n */\n async get(\n input: GetWhiteboardBoardInput | string,\n options?: PolyesterRequestOptions,\n ): Promise<GetWhiteboardBoardResult> {\n const validatedInput = parse(\n GetWhiteboardBoardInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.getBoard(validatedInput, toConnectCallOptions(options));\n return parse(GetWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Returns whiteboards matching the requested filters.\n */\n async list(\n input: ListWhiteboardBoardsInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<ListWhiteboardBoardsResult> {\n const validatedInput = parse(ListWhiteboardBoardsInputSchema, input);\n const res = await this.#client.listBoards(validatedInput, toConnectCallOptions(options));\n return parse(ListWhiteboardBoardsResultSchema, res);\n }\n\n /**\n * Updates whiteboard metadata such as title or archive-related fields.\n */\n async update(\n input: UpdateWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<UpdateWhiteboardBoardResult> {\n const validatedInput = parse(UpdateWhiteboardBoardInputSchema, input);\n const res = await this.#client.updateBoard(\n removeUndefined({ ...validatedInput }) as Proto.UpdateBoardRequest,\n toConnectCallOptions(options),\n );\n return parse(UpdateWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Updates whiteboard access-control entries.\n */\n async updateAcl(\n input: UpdateWhiteboardBoardAclInput,\n options?: PolyesterMutationOptions,\n ): Promise<UpdateWhiteboardBoardAclResult> {\n const validatedInput = parse(UpdateWhiteboardBoardAclInputSchema, input);\n const res = await this.#client.updateBoardAcl(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(UpdateWhiteboardBoardAclResultSchema, res);\n }\n\n /**\n * Archives a whiteboard by id.\n */\n async archive(\n input: ArchiveWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<ArchiveWhiteboardBoardResult> {\n const validatedInput = parse(ArchiveWhiteboardBoardInputSchema, input);\n const res = await this.#client.archiveBoard(validatedInput, toConnectCallOptions(options));\n return parse(ArchiveWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Creates a join token that can grant access to a whiteboard.\n */\n async mintJoinToken(\n input: MintWhiteboardJoinTokenInput | string,\n options?: PolyesterMutationOptions,\n ): Promise<WhiteboardJoinTokenResult> {\n const validatedInput = parse(\n MintWhiteboardJoinTokenInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.mintJoinToken(validatedInput, toConnectCallOptions(options));\n return parse(WhiteboardJoinTokenResultSchema, res);\n }\n}\n"],"mappings":";;;;;;;;;;AA2CA,IAAa,oBAAb,MAA+B;CAC3B;CAEA,YAAY,WAAsB;EAC9B,KAAKA,UAAU,aAAaC,qBAAyB,SAAS;CAClE;;;;CAKA,MAAM,OACF,OACA,SACoC;EACpC,MAAM,iBAAiB,MAAM,kCAAkC,KAAK;EACpE,MAAM,MAAM,MAAM,KAAKD,QAAQ,YAAY,gBAAgB,qBAAqB,OAAO,CAAC;EACxF,OAAO,MAAM,mCAAmC,GAAG;CACvD;;;;CAKA,MAAM,IACF,OACA,SACiC;EACjC,MAAM,iBAAiB,MACnB,+BACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,SAAS,gBAAgB,qBAAqB,OAAO,CAAC;EACrF,OAAO,MAAM,gCAAgC,GAAG;CACpD;;;;CAKA,MAAM,KACF,QAAmC,CAAC,GACpC,SACmC;EACnC,MAAM,iBAAiB,MAAM,iCAAiC,KAAK;EACnE,MAAM,MAAM,MAAM,KAAKA,QAAQ,WAAW,gBAAgB,qBAAqB,OAAO,CAAC;EACvF,OAAO,MAAM,kCAAkC,GAAG;CACtD;;;;CAKA,MAAM,OACF,OACA,SACoC;EACpC,MAAM,iBAAiB,MAAM,kCAAkC,KAAK;EACpE,MAAM,MAAM,MAAM,KAAKA,QAAQ,YAC3B,gBAAgB,EAAE,GAAG,eAAe,CAAC,GACrC,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,mCAAmC,GAAG;CACvD;;;;CAKA,MAAM,UACF,OACA,SACuC;EACvC,MAAM,iBAAiB,MAAM,qCAAqC,KAAK;EACvE,MAAM,MAAM,MAAM,KAAKA,QAAQ,eAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,sCAAsC,GAAG;CAC1D;;;;CAKA,MAAM,QACF,OACA,SACqC;EACrC,MAAM,iBAAiB,MAAM,mCAAmC,KAAK;EACrE,MAAM,MAAM,MAAM,KAAKA,QAAQ,aAAa,gBAAgB,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,oCAAoC,GAAG;CACxD;;;;CAKA,MAAM,cACF,OACA,SACkC;EAClC,MAAM,iBAAiB,MACnB,oCACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAC1F,OAAO,MAAM,iCAAiC,GAAG;CACrD;AACJ"}
1
+ {"version":3,"file":"whiteboard.js","names":["#client","Proto.WhiteboardService"],"sources":["../../../src/services/whiteboard/whiteboard.ts"],"sourcesContent":["import { createClient, type Client } from \"@connectrpc/connect\";\nimport * as Proto from \"../../gen/collab/v1/whiteboard_pb.js\";\nimport { removeUndefined } from \"../../utils/remove-undefined.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport type { AuthApiTransports } from \"../../shared/transports.js\";\nimport {\n toConnectCallOptions,\n type PolyesterMutationOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport {\n ArchiveWhiteboardBoardInputSchema,\n ArchiveWhiteboardBoardResultSchema,\n CreateWhiteboardBoardInputSchema,\n CreateWhiteboardBoardResultSchema,\n GetWhiteboardBoardInputSchema,\n GetWhiteboardBoardResultSchema,\n ListWhiteboardBoardsInputSchema,\n ListWhiteboardBoardsResultSchema,\n MintWhiteboardJoinTokenInputSchema,\n UpdateWhiteboardBoardAclInputSchema,\n UpdateWhiteboardBoardAclResultSchema,\n UpdateWhiteboardBoardInputSchema,\n UpdateWhiteboardBoardResultSchema,\n WhiteboardJoinTokenResultSchema,\n type ArchiveWhiteboardBoardInput,\n type ArchiveWhiteboardBoardResult,\n type CreateWhiteboardBoardInput,\n type CreateWhiteboardBoardResult,\n type GetWhiteboardBoardInput,\n type GetWhiteboardBoardResult,\n type ListWhiteboardBoardsInput,\n type ListWhiteboardBoardsResult,\n type MintWhiteboardJoinTokenInput,\n type UpdateWhiteboardBoardAclInput,\n type UpdateWhiteboardBoardAclResult,\n type UpdateWhiteboardBoardInput,\n type UpdateWhiteboardBoardResult,\n type WhiteboardJoinTokenResult,\n} from \"./whiteboard.schemas.js\";\n\n/**\n * Manages collaborative whiteboards, ACLs, archive state, and join tokens.\n */\nexport class WhiteboardService {\n #client: Client<typeof Proto.WhiteboardService>;\n\n constructor(transports: AuthApiTransports) {\n this.#client = createClient(Proto.WhiteboardService, transports.authApi);\n }\n\n /**\n * Creates a whiteboard and returns the parsed whiteboard record.\n */\n async create(\n input: CreateWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<CreateWhiteboardBoardResult> {\n const validatedInput = parse(CreateWhiteboardBoardInputSchema, input);\n const res = await this.#client.createBoard(validatedInput, toConnectCallOptions(options));\n return parse(CreateWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Fetches a whiteboard by id and returns null when no whiteboard is present in the response.\n */\n async get(\n input: GetWhiteboardBoardInput | string,\n options?: PolyesterRequestOptions,\n ): Promise<GetWhiteboardBoardResult> {\n const validatedInput = parse(\n GetWhiteboardBoardInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.getBoard(validatedInput, toConnectCallOptions(options));\n return parse(GetWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Returns whiteboards matching the requested filters.\n */\n async list(\n input: ListWhiteboardBoardsInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<ListWhiteboardBoardsResult> {\n const validatedInput = parse(ListWhiteboardBoardsInputSchema, input);\n const res = await this.#client.listBoards(validatedInput, toConnectCallOptions(options));\n return parse(ListWhiteboardBoardsResultSchema, res);\n }\n\n /**\n * Updates whiteboard metadata such as title or archive-related fields.\n */\n async update(\n input: UpdateWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<UpdateWhiteboardBoardResult> {\n const validatedInput = parse(UpdateWhiteboardBoardInputSchema, input);\n const res = await this.#client.updateBoard(\n removeUndefined({ ...validatedInput }) as Proto.UpdateBoardRequest,\n toConnectCallOptions(options),\n );\n return parse(UpdateWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Updates whiteboard access-control entries.\n */\n async updateAcl(\n input: UpdateWhiteboardBoardAclInput,\n options?: PolyesterMutationOptions,\n ): Promise<UpdateWhiteboardBoardAclResult> {\n const validatedInput = parse(UpdateWhiteboardBoardAclInputSchema, input);\n const res = await this.#client.updateBoardAcl(\n validatedInput,\n toConnectCallOptions(options),\n );\n return parse(UpdateWhiteboardBoardAclResultSchema, res);\n }\n\n /**\n * Archives a whiteboard by id.\n */\n async archive(\n input: ArchiveWhiteboardBoardInput,\n options?: PolyesterMutationOptions,\n ): Promise<ArchiveWhiteboardBoardResult> {\n const validatedInput = parse(ArchiveWhiteboardBoardInputSchema, input);\n const res = await this.#client.archiveBoard(validatedInput, toConnectCallOptions(options));\n return parse(ArchiveWhiteboardBoardResultSchema, res);\n }\n\n /**\n * Creates a join token that can grant access to a whiteboard.\n */\n async mintJoinToken(\n input: MintWhiteboardJoinTokenInput | string,\n options?: PolyesterMutationOptions,\n ): Promise<WhiteboardJoinTokenResult> {\n const validatedInput = parse(\n MintWhiteboardJoinTokenInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.mintJoinToken(validatedInput, toConnectCallOptions(options));\n return parse(WhiteboardJoinTokenResultSchema, res);\n }\n}\n"],"mappings":";;;;;;;;;;AA4CA,IAAa,oBAAb,MAA+B;CAC3B;CAEA,YAAY,YAA+B;EACvC,KAAKA,UAAU,aAAaC,qBAAyB,WAAW,OAAO;CAC3E;;;;CAKA,MAAM,OACF,OACA,SACoC;EACpC,MAAM,iBAAiB,MAAM,kCAAkC,KAAK;EACpE,MAAM,MAAM,MAAM,KAAKD,QAAQ,YAAY,gBAAgB,qBAAqB,OAAO,CAAC;EACxF,OAAO,MAAM,mCAAmC,GAAG;CACvD;;;;CAKA,MAAM,IACF,OACA,SACiC;EACjC,MAAM,iBAAiB,MACnB,+BACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,SAAS,gBAAgB,qBAAqB,OAAO,CAAC;EACrF,OAAO,MAAM,gCAAgC,GAAG;CACpD;;;;CAKA,MAAM,KACF,QAAmC,CAAC,GACpC,SACmC;EACnC,MAAM,iBAAiB,MAAM,iCAAiC,KAAK;EACnE,MAAM,MAAM,MAAM,KAAKA,QAAQ,WAAW,gBAAgB,qBAAqB,OAAO,CAAC;EACvF,OAAO,MAAM,kCAAkC,GAAG;CACtD;;;;CAKA,MAAM,OACF,OACA,SACoC;EACpC,MAAM,iBAAiB,MAAM,kCAAkC,KAAK;EACpE,MAAM,MAAM,MAAM,KAAKA,QAAQ,YAC3B,gBAAgB,EAAE,GAAG,eAAe,CAAC,GACrC,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,mCAAmC,GAAG;CACvD;;;;CAKA,MAAM,UACF,OACA,SACuC;EACvC,MAAM,iBAAiB,MAAM,qCAAqC,KAAK;EACvE,MAAM,MAAM,MAAM,KAAKA,QAAQ,eAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,MAAM,sCAAsC,GAAG;CAC1D;;;;CAKA,MAAM,QACF,OACA,SACqC;EACrC,MAAM,iBAAiB,MAAM,mCAAmC,KAAK;EACrE,MAAM,MAAM,MAAM,KAAKA,QAAQ,aAAa,gBAAgB,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,oCAAoC,GAAG;CACxD;;;;CAKA,MAAM,cACF,OACA,SACkC;EAClC,MAAM,iBAAiB,MACnB,oCACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAC1F,OAAO,MAAM,iCAAiC,GAAG;CACrD;AACJ"}
@@ -1,10 +1,10 @@
1
1
  import { DepositWithdrawConfig } from "../../shared/catalog-config.js";
2
+ import { PublicApiTransports } from "../../shared/transports.js";
2
3
  import { PolyesterRequestOptions } from "../../shared/request-options.js";
3
4
  import { PolyesterRealtime } from "../../realtime/types.js";
4
5
  import { BaseSubscribeInput } from "../../shared/types.js";
5
6
  import { SdkScales } from "../../shared/decimal-surface.js";
6
7
  import { ZippedAssetSupplyBatch } from "./zipper.schemas.js";
7
- import { Transport } from "@connectrpc/connect";
8
8
  //#region src/services/zipper/zipper.d.ts
9
9
  interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAssetSupplyBatch> {}
10
10
  /**
@@ -12,7 +12,7 @@ interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAsset
12
12
  */
13
13
  declare class ZipperService {
14
14
  #private;
15
- constructor(transport: Transport, realtime?: PolyesterRealtime, scales?: SdkScales);
15
+ constructor(transports: PublicApiTransports, realtime?: PolyesterRealtime, scales?: SdkScales);
16
16
  /**
17
17
  * Returns supported external chains, unified assets, chain-specific asset variants, network fees, min deposit/withdraw amounts, and contract metadata for Zipper-powered deposit and withdraw flows.
18
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"zipper.d.ts","names":[],"sources":["../../../src/services/zipper/zipper.ts"],"mappings":";;;;;;;;UAoBiB,wCAAwC,mBAAmB;;;;cAK/D;;EAKG,YAAA,WAAW,WAAW,WAAW,mBAAmB,SAAS;;;;EASnE,yBACF,UAAU,0BACX,QAAQ;;;;;EASX,2BAA2B,OAAO"}
1
+ {"version":3,"file":"zipper.d.ts","names":[],"sources":["../../../src/services/zipper/zipper.ts"],"mappings":";;;;;;;;UAqBiB,wCAAwC,mBAAmB;;;;cAK/D;;EAKG,YAAA,YAAY,qBAAqB,WAAW,mBAAmB,SAAS;;;;EAS9E,yBACF,UAAU,0BACX,QAAQ;;;;;EASX,2BAA2B,OAAO"}
@@ -14,8 +14,8 @@ var ZipperService = class {
14
14
  #client;
15
15
  #realtime;
16
16
  #scales;
17
- constructor(transport, realtime, scales) {
18
- this.#client = createClient(ZipperService$1, transport);
17
+ constructor(transports, realtime, scales) {
18
+ this.#client = createClient(ZipperService$1, transports.publicApi);
19
19
  this.#realtime = realtime;
20
20
  this.#scales = scales;
21
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zipper.js","names":["#client","Proto.ZipperService","#realtime","#scales","Proto.ZippedAssetSupplyBatchSchema"],"sources":["../../../src/services/zipper/zipper.ts"],"sourcesContent":["import { create } from \"@bufbuild/protobuf\";\nimport * as Proto from \"../../gen/chain/zipper/v1/zipper_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport {\n DepositWithdrawConfigSchema,\n createZippedAssetSupplyBatchSchema,\n type DepositWithdrawConfig,\n type ZippedAssetSupplyBatch,\n} from \"./zipper.schemas.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport { ConfigurationError } from \"../../shared/errors.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\n\nexport interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAssetSupplyBatch> {}\n\n/**\n * Reads public Zipper deposit/withdraw chain and asset configuration.\n */\nexport class ZipperService {\n #client: Client<typeof Proto.ZipperService>;\n #realtime: PolyesterRealtime | undefined;\n #scales: SdkScales | undefined;\n\n constructor(transport: Transport, realtime?: PolyesterRealtime, scales?: SdkScales) {\n this.#client = createClient(Proto.ZipperService, transport);\n this.#realtime = realtime;\n this.#scales = scales;\n }\n\n /**\n * Returns supported external chains, unified assets, chain-specific asset variants, network fees, min deposit/withdraw amounts, and contract metadata for Zipper-powered deposit and withdraw flows.\n */\n async getDepositWithdrawConfig(\n options?: PolyesterRequestOptions,\n ): Promise<DepositWithdrawConfig> {\n const res = await this.#client.getDepositWithdrawConfig({}, toConnectCallOptions(options));\n return parse(DepositWithdrawConfigSchema, res);\n }\n\n /**\n * Attaches to the public supply stream before capturing a route-supply snapshot,\n * then resnapshots whenever the channel establishes a new subscription epoch.\n */\n subscribeZippedAssetSupply(input: SubscribeZippedAssetSupplyInput): () => void {\n const realtime = this.#realtime;\n const scales = this.#scales;\n if (!realtime || !scales) {\n throw new ConfigurationError(\n \"Zipper supply subscriptions require a client-owned realtime connection and catalog scales.\",\n );\n }\n\n const channel = \"public:chain:zipped-asset:supply:proto\";\n const schema = createZippedAssetSupplyBatchSchema(scales);\n let catalogReady = false;\n const parseBatch = (batch: Proto.ZippedAssetSupplyBatch): ZippedAssetSupplyBatch =>\n parse(schema, batch);\n const parseUpdates = (\n updates: readonly Proto.ZippedAssetSupplyUpdate[],\n ): ZippedAssetSupplyBatch[\"updates\"] =>\n parseBatch(create(Proto.ZippedAssetSupplyBatchSchema, { updates: [...updates] }))\n .updates;\n const stream = snapshotThenStream({\n realtime,\n channel,\n schema: Proto.ZippedAssetSupplyBatchSchema,\n snapshotErrorLog: \"Failed to fetch zipped asset supply\",\n snapshotRetry: { maxAttempts: 3, delayMs: 1_000 },\n snapshotFailureMode: () => (catalogReady ? \"live\" : \"wait\"),\n fetchSnapshot: async () => {\n await scales.ready();\n catalogReady = true;\n return this.getDepositWithdrawConfig();\n },\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n const latestByZippedAssetId = new Map<number, string>();\n for (const asset of snapshot.assets) {\n for (const variant of asset.variants) {\n latestByZippedAssetId.set(variant.zippedAssetId, variant.supply);\n }\n }\n for (const update of parseUpdates(bufferedUpdates)) {\n latestByZippedAssetId.set(update.zippedAssetId, update.supply);\n }\n input.onEvent({\n updates: Array.from(latestByZippedAssetId, ([zippedAssetId, supply]) => ({\n zippedAssetId,\n supply,\n })),\n });\n },\n applyLivePublications: (updates) => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;AAyBA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CAEA,YAAY,WAAsB,UAA8B,QAAoB;EAChF,KAAKA,UAAU,aAAaC,iBAAqB,SAAS;EAC1D,KAAKC,YAAY;EACjB,KAAKC,UAAU;CACnB;;;;CAKA,MAAM,yBACF,SAC8B;EAC9B,MAAM,MAAM,MAAM,KAAKH,QAAQ,yBAAyB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,6BAA6B,GAAG;CACjD;;;;;CAMA,2BAA2B,OAAoD;EAC3E,MAAM,WAAW,KAAKE;EACtB,MAAM,SAAS,KAAKC;EACpB,IAAI,CAAC,YAAY,CAAC,QACd,MAAM,IAAI,mBACN,4FACJ;EAGJ,MAAM,UAAU;EAChB,MAAM,SAAS,mCAAmC,MAAM;EACxD,IAAI,eAAe;EACnB,MAAM,cAAc,UAChB,MAAM,QAAQ,KAAK;EACvB,MAAM,gBACF,YAEA,WAAW,OAAOC,8BAAoC,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAC5E;EACT,MAAM,SAAS,mBAAmB;GAC9B;GACA;GACA,QAAQA;GACR,kBAAkB;GAClB,eAAe;IAAE,aAAa;IAAG,SAAS;GAAM;GAChD,2BAA4B,eAAe,SAAS;GACpD,eAAe,YAAY;IACvB,MAAM,OAAO,MAAM;IACnB,eAAe;IACf,OAAO,KAAK,yBAAyB;GACzC;GACA,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,MAAM,wCAAwB,IAAI,IAAoB;IACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;IAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;IAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;KACrE;KACA;IACJ,EAAE,EACN,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;GACL;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,aAAa,OAAO,YAAY;CACpC;AACJ"}
1
+ {"version":3,"file":"zipper.js","names":["#client","Proto.ZipperService","#realtime","#scales","Proto.ZippedAssetSupplyBatchSchema"],"sources":["../../../src/services/zipper/zipper.ts"],"sourcesContent":["import { create } from \"@bufbuild/protobuf\";\nimport * as Proto from \"../../gen/chain/zipper/v1/zipper_pb.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { createClient, type Client } from \"@connectrpc/connect\";\nimport {\n DepositWithdrawConfigSchema,\n createZippedAssetSupplyBatchSchema,\n type DepositWithdrawConfig,\n type ZippedAssetSupplyBatch,\n} from \"./zipper.schemas.js\";\nimport { parse } from \"../../shared/validation.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport { ConfigurationError } from \"../../shared/errors.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\nimport type { PublicApiTransports } from \"../../shared/transports.js\";\n\nexport interface SubscribeZippedAssetSupplyInput extends BaseSubscribeInput<ZippedAssetSupplyBatch> {}\n\n/**\n * Reads public Zipper deposit/withdraw chain and asset configuration.\n */\nexport class ZipperService {\n #client: Client<typeof Proto.ZipperService>;\n #realtime: PolyesterRealtime | undefined;\n #scales: SdkScales | undefined;\n\n constructor(transports: PublicApiTransports, realtime?: PolyesterRealtime, scales?: SdkScales) {\n this.#client = createClient(Proto.ZipperService, transports.publicApi);\n this.#realtime = realtime;\n this.#scales = scales;\n }\n\n /**\n * Returns supported external chains, unified assets, chain-specific asset variants, network fees, min deposit/withdraw amounts, and contract metadata for Zipper-powered deposit and withdraw flows.\n */\n async getDepositWithdrawConfig(\n options?: PolyesterRequestOptions,\n ): Promise<DepositWithdrawConfig> {\n const res = await this.#client.getDepositWithdrawConfig({}, toConnectCallOptions(options));\n return parse(DepositWithdrawConfigSchema, res);\n }\n\n /**\n * Attaches to the public supply stream before capturing a route-supply snapshot,\n * then resnapshots whenever the channel establishes a new subscription epoch.\n */\n subscribeZippedAssetSupply(input: SubscribeZippedAssetSupplyInput): () => void {\n const realtime = this.#realtime;\n const scales = this.#scales;\n if (!realtime || !scales) {\n throw new ConfigurationError(\n \"Zipper supply subscriptions require a client-owned realtime connection and catalog scales.\",\n );\n }\n\n const channel = \"public:chain:zipped-asset:supply:proto\";\n const schema = createZippedAssetSupplyBatchSchema(scales);\n let catalogReady = false;\n const parseBatch = (batch: Proto.ZippedAssetSupplyBatch): ZippedAssetSupplyBatch =>\n parse(schema, batch);\n const parseUpdates = (\n updates: readonly Proto.ZippedAssetSupplyUpdate[],\n ): ZippedAssetSupplyBatch[\"updates\"] =>\n parseBatch(create(Proto.ZippedAssetSupplyBatchSchema, { updates: [...updates] }))\n .updates;\n const stream = snapshotThenStream({\n realtime,\n channel,\n schema: Proto.ZippedAssetSupplyBatchSchema,\n snapshotErrorLog: \"Failed to fetch zipped asset supply\",\n snapshotRetry: { maxAttempts: 3, delayMs: 1_000 },\n snapshotFailureMode: () => (catalogReady ? \"live\" : \"wait\"),\n fetchSnapshot: async () => {\n await scales.ready();\n catalogReady = true;\n return this.getDepositWithdrawConfig();\n },\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n const latestByZippedAssetId = new Map<number, string>();\n for (const asset of snapshot.assets) {\n for (const variant of asset.variants) {\n latestByZippedAssetId.set(variant.zippedAssetId, variant.supply);\n }\n }\n for (const update of parseUpdates(bufferedUpdates)) {\n latestByZippedAssetId.set(update.zippedAssetId, update.supply);\n }\n input.onEvent({\n updates: Array.from(latestByZippedAssetId, ([zippedAssetId, supply]) => ({\n zippedAssetId,\n supply,\n })),\n });\n },\n applyLivePublications: (updates) => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;AA0BA,IAAa,gBAAb,MAA2B;CACvB;CACA;CACA;CAEA,YAAY,YAAiC,UAA8B,QAAoB;EAC3F,KAAKA,UAAU,aAAaC,iBAAqB,WAAW,SAAS;EACrE,KAAKC,YAAY;EACjB,KAAKC,UAAU;CACnB;;;;CAKA,MAAM,yBACF,SAC8B;EAC9B,MAAM,MAAM,MAAM,KAAKH,QAAQ,yBAAyB,CAAC,GAAG,qBAAqB,OAAO,CAAC;EACzF,OAAO,MAAM,6BAA6B,GAAG;CACjD;;;;;CAMA,2BAA2B,OAAoD;EAC3E,MAAM,WAAW,KAAKE;EACtB,MAAM,SAAS,KAAKC;EACpB,IAAI,CAAC,YAAY,CAAC,QACd,MAAM,IAAI,mBACN,4FACJ;EAGJ,MAAM,UAAU;EAChB,MAAM,SAAS,mCAAmC,MAAM;EACxD,IAAI,eAAe;EACnB,MAAM,cAAc,UAChB,MAAM,QAAQ,KAAK;EACvB,MAAM,gBACF,YAEA,WAAW,OAAOC,8BAAoC,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,CAC5E;EACT,MAAM,SAAS,mBAAmB;GAC9B;GACA;GACA,QAAQA;GACR,kBAAkB;GAClB,eAAe;IAAE,aAAa;IAAG,SAAS;GAAM;GAChD,2BAA4B,eAAe,SAAS;GACpD,eAAe,YAAY;IACvB,MAAM,OAAO,MAAM;IACnB,eAAe;IACf,OAAO,KAAK,yBAAyB;GACzC;GACA,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,MAAM,wCAAwB,IAAI,IAAoB;IACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;IAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;IAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;KACrE;KACA;IACJ,EAAE,EACN,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;GACL;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,aAAa,OAAO,YAAY;CACpC;AACJ"}