@polyester/sdk 0.3.1 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +63 -17
  3. package/dist/account-signer/types.d.ts.map +1 -1
  4. package/dist/account-signer/types.js +6 -3
  5. package/dist/account-signer/types.js.map +1 -1
  6. package/dist/browser-client.d.ts +4 -2
  7. package/dist/browser-client.d.ts.map +1 -1
  8. package/dist/browser-client.js +3 -4
  9. package/dist/browser-client.js.map +1 -1
  10. package/dist/catalogs/client-catalog.d.ts.map +1 -1
  11. package/dist/catalogs/client-catalog.js +11 -4
  12. package/dist/catalogs/client-catalog.js.map +1 -1
  13. package/dist/catalogs/index.js +1 -1
  14. package/dist/catalogs/readers.d.ts.map +1 -1
  15. package/dist/catalogs/readers.js +3 -1
  16. package/dist/catalogs/readers.js.map +1 -1
  17. package/dist/catalogs/snapshot-validation.js +132 -0
  18. package/dist/catalogs/snapshot-validation.js.map +1 -0
  19. package/dist/catalogs/snapshot.d.ts.map +1 -1
  20. package/dist/catalogs/snapshot.js +16 -7
  21. package/dist/catalogs/snapshot.js.map +1 -1
  22. package/dist/catalogs/zipper-supply.d.ts.map +1 -1
  23. package/dist/catalogs/zipper-supply.js +10 -7
  24. package/dist/catalogs/zipper-supply.js.map +1 -1
  25. package/dist/core-client.d.ts +24 -17
  26. package/dist/core-client.d.ts.map +1 -1
  27. package/dist/core-client.js +21 -3
  28. package/dist/core-client.js.map +1 -1
  29. package/dist/environment.d.ts.map +1 -1
  30. package/dist/environment.js +32 -1
  31. package/dist/environment.js.map +1 -1
  32. package/dist/index.js +3 -3
  33. package/dist/realtime/client.js +13 -2
  34. package/dist/realtime/client.js.map +1 -1
  35. package/dist/realtime/snapshot-then-stream.js +1 -1
  36. package/dist/realtime/snapshot-then-stream.js.map +1 -1
  37. package/dist/realtime/types.d.ts +2 -0
  38. package/dist/realtime/types.d.ts.map +1 -1
  39. package/dist/server-client.d.ts +17 -8
  40. package/dist/server-client.d.ts.map +1 -1
  41. package/dist/server-client.js +8 -11
  42. package/dist/server-client.js.map +1 -1
  43. package/dist/services/accounts/accounts.js +3 -3
  44. package/dist/services/accounts/accounts.js.map +1 -1
  45. package/dist/services/address-book/address-book.js +28 -28
  46. package/dist/services/address-book/address-book.js.map +1 -1
  47. package/dist/services/address-book/address-book.schemas.d.ts.map +1 -1
  48. package/dist/services/address-book/address-book.schemas.js +2 -1
  49. package/dist/services/address-book/address-book.schemas.js.map +1 -1
  50. package/dist/services/api-keys/api-keys.d.ts.map +1 -1
  51. package/dist/services/api-keys/api-keys.js +12 -12
  52. package/dist/services/api-keys/api-keys.js.map +1 -1
  53. package/dist/services/auth/auth.d.ts +9 -3
  54. package/dist/services/auth/auth.d.ts.map +1 -1
  55. package/dist/services/auth/auth.js +11 -7
  56. package/dist/services/auth/auth.js.map +1 -1
  57. package/dist/services/auth/profile/profile.d.ts.map +1 -1
  58. package/dist/services/auth/profile/profile.js +7 -6
  59. package/dist/services/auth/profile/profile.js.map +1 -1
  60. package/dist/services/auth/session.d.ts +1 -1
  61. package/dist/services/auth/session.d.ts.map +1 -1
  62. package/dist/services/auth/session.js +6 -2
  63. package/dist/services/auth/session.js.map +1 -1
  64. package/dist/services/auth/session.types.d.ts +3 -2
  65. package/dist/services/auth/session.types.d.ts.map +1 -1
  66. package/dist/services/balances/balances.d.ts +1 -1
  67. package/dist/services/balances/balances.d.ts.map +1 -1
  68. package/dist/services/balances/balances.js +9 -8
  69. package/dist/services/balances/balances.js.map +1 -1
  70. package/dist/services/balances/balances.schemas.d.ts +1 -1
  71. package/dist/services/balances/balances.schemas.d.ts.map +1 -1
  72. package/dist/services/balances/balances.schemas.js +1 -1
  73. package/dist/services/balances/balances.schemas.js.map +1 -1
  74. package/dist/services/candles/candles.d.ts.map +1 -1
  75. package/dist/services/candles/candles.js +10 -9
  76. package/dist/services/candles/candles.js.map +1 -1
  77. package/dist/services/candles/candles.schemas.d.ts +11 -11
  78. package/dist/services/candles/candles.schemas.d.ts.map +1 -1
  79. package/dist/services/candles/candles.schemas.js +1 -2
  80. package/dist/services/candles/candles.schemas.js.map +1 -1
  81. package/dist/services/chain-analytics/chain-analytics.js +7 -7
  82. package/dist/services/chain-analytics/chain-analytics.js.map +1 -1
  83. package/dist/services/deposit/deposit.js +5 -5
  84. package/dist/services/deposit/deposit.js.map +1 -1
  85. package/dist/services/guard-signer/guard-signer.js +13 -13
  86. package/dist/services/guard-signer/guard-signer.js.map +1 -1
  87. package/dist/services/heatmap/heatmap.d.ts.map +1 -1
  88. package/dist/services/heatmap/heatmap.js +6 -5
  89. package/dist/services/heatmap/heatmap.js.map +1 -1
  90. package/dist/services/heatmap/heatmap.schemas.d.ts +17 -17
  91. package/dist/services/heatmap/heatmap.schemas.js +1 -1
  92. package/dist/services/heatmap/heatmap.schemas.js.map +1 -1
  93. package/dist/services/internal-transfers/internal-transfers.js +3 -3
  94. package/dist/services/internal-transfers/internal-transfers.js.map +1 -1
  95. package/dist/services/lifecycle/lifecycle.d.ts.map +1 -1
  96. package/dist/services/lifecycle/lifecycle.js +9 -8
  97. package/dist/services/lifecycle/lifecycle.js.map +1 -1
  98. package/dist/services/market-data/market-data.d.ts.map +1 -1
  99. package/dist/services/market-data/market-data.js +6 -5
  100. package/dist/services/market-data/market-data.js.map +1 -1
  101. package/dist/services/market-data/market-data.schemas.d.ts +2 -2
  102. package/dist/services/market-data/market-data.schemas.d.ts.map +1 -1
  103. package/dist/services/market-data/market-data.schemas.js +2 -6
  104. package/dist/services/market-data/market-data.schemas.js.map +1 -1
  105. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  106. package/dist/services/market-overview/market-overview.js +4 -3
  107. package/dist/services/market-overview/market-overview.js.map +1 -1
  108. package/dist/services/market-overview/market-overview.schemas.d.ts +3 -3
  109. package/dist/services/mfa/mfa.js +27 -27
  110. package/dist/services/mfa/mfa.js.map +1 -1
  111. package/dist/services/orderbook/orderbook.d.ts.map +1 -1
  112. package/dist/services/orderbook/orderbook.js +5 -4
  113. package/dist/services/orderbook/orderbook.js.map +1 -1
  114. package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
  115. package/dist/services/orders/orders-batch.schemas.d.ts +14 -14
  116. package/dist/services/orders/orders-batch.schemas.js +1 -1
  117. package/dist/services/orders/orders-input.schemas.d.ts +13 -4
  118. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  119. package/dist/services/orders/orders-input.schemas.js +8 -4
  120. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  121. package/dist/services/orders/orders-modify.schemas.d.ts +22 -3
  122. package/dist/services/orders/orders-modify.schemas.d.ts.map +1 -1
  123. package/dist/services/orders/orders-modify.schemas.js +7 -3
  124. package/dist/services/orders/orders-modify.schemas.js.map +1 -1
  125. package/dist/services/orders/orders-output.schemas.d.ts +12 -12
  126. package/dist/services/orders/orders.d.ts +2 -2
  127. package/dist/services/orders/orders.d.ts.map +1 -1
  128. package/dist/services/orders/orders.js +44 -31
  129. package/dist/services/orders/orders.js.map +1 -1
  130. package/dist/services/policies/api-key-policies/api-key-policies.d.ts.map +1 -1
  131. package/dist/services/policies/api-key-policies/api-key-policies.js +11 -11
  132. package/dist/services/policies/api-key-policies/api-key-policies.js.map +1 -1
  133. package/dist/services/policies/subaccount-policies/subaccount-policies.d.ts.map +1 -1
  134. package/dist/services/policies/subaccount-policies/subaccount-policies.js +13 -12
  135. package/dist/services/policies/subaccount-policies/subaccount-policies.js.map +1 -1
  136. package/dist/services/social-verification/social-verification.d.ts.map +1 -1
  137. package/dist/services/social-verification/social-verification.js +7 -7
  138. package/dist/services/social-verification/social-verification.js.map +1 -1
  139. package/dist/services/subaccount-resolver.js +5 -3
  140. package/dist/services/subaccount-resolver.js.map +1 -1
  141. package/dist/services/subaccounts/subaccounts.d.ts +1 -1
  142. package/dist/services/subaccounts/subaccounts.d.ts.map +1 -1
  143. package/dist/services/subaccounts/subaccounts.js +34 -33
  144. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  145. package/dist/services/subaccounts/subaccounts.schemas.d.ts +2 -2
  146. package/dist/services/subaccounts/subaccounts.schemas.js +1 -1
  147. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
  148. package/dist/services/trades/trades.d.ts.map +1 -1
  149. package/dist/services/trades/trades.js +5 -4
  150. package/dist/services/trades/trades.js.map +1 -1
  151. package/dist/services/trading-withdraws/trading-withdraws.js +8 -8
  152. package/dist/services/trading-withdraws/trading-withdraws.js.map +1 -1
  153. package/dist/services/transfers/transfers.d.ts +1 -1
  154. package/dist/services/transfers/transfers.d.ts.map +1 -1
  155. package/dist/services/transfers/transfers.js +5 -4
  156. package/dist/services/transfers/transfers.js.map +1 -1
  157. package/dist/services/triggers/trigger-input.schemas.d.ts +1 -1
  158. package/dist/services/triggers/triggers-output.schemas.d.ts +1 -1
  159. package/dist/services/triggers/triggers.d.ts.map +1 -1
  160. package/dist/services/triggers/triggers.js +21 -20
  161. package/dist/services/triggers/triggers.js.map +1 -1
  162. package/dist/services/whiteboard/whiteboard.js +15 -15
  163. package/dist/services/whiteboard/whiteboard.js.map +1 -1
  164. package/dist/services/zipper/zipper.js +3 -3
  165. package/dist/services/zipper/zipper.js.map +1 -1
  166. package/dist/shared/connect-error-mapping.d.ts +1 -1
  167. package/dist/shared/connect-error-mapping.js +27 -1
  168. package/dist/shared/connect-error-mapping.js.map +1 -1
  169. package/dist/shared/transports.js +7 -12
  170. package/dist/shared/transports.js.map +1 -1
  171. package/dist/shared/types.d.ts +12 -0
  172. package/dist/shared/types.d.ts.map +1 -1
  173. package/dist/shared/validation.js +19 -0
  174. package/dist/shared/validation.js.map +1 -0
  175. package/dist/utils/cookies.d.ts +8 -3
  176. package/dist/utils/cookies.d.ts.map +1 -1
  177. package/dist/utils/cookies.js +7 -1
  178. package/dist/utils/cookies.js.map +1 -1
  179. package/dist/utils/event-emitter.d.ts +1 -1
  180. package/dist/utils/event-emitter.d.ts.map +1 -1
  181. package/dist/utils/event-emitter.js +4 -2
  182. package/dist/utils/event-emitter.js.map +1 -1
  183. package/dist/utils/evm.js +2 -2
  184. package/dist/utils/evm.js.map +1 -1
  185. package/dist/utils/jwt.d.ts +2 -2
  186. package/dist/utils/jwt.d.ts.map +1 -1
  187. package/dist/utils/jwt.js +2 -2
  188. package/dist/utils/jwt.js.map +1 -1
  189. package/package.json +3 -3
@@ -19,7 +19,7 @@ declare class TransfersService {
19
19
  /**
20
20
  * Returns ledger transfers for the resolved account scope with limit, direction, timestamp, code, ledger, and page-token filters.
21
21
  */
22
- list(input: ListTransfersInput, options?: PolyesterRequestOptions): Promise<{
22
+ list(input?: ListTransfersInput, options?: PolyesterRequestOptions): Promise<{
23
23
  transfers: LedgerTransfer[];
24
24
  nextPageToken: string;
25
25
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"transfers.d.ts","names":[],"sources":["../../../src/services/transfers/transfers.ts"],"mappings":";;;;;;;;;UAmBU,gCAAgC,mBAAmB;EACzD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,OAAO,oBACP,UAAU,0BACX;IAAU,WAAW;IAAkB;;;;;EAY1C,UAAU,OAAO"}
1
+ {"version":3,"file":"transfers.d.ts","names":[],"sources":["../../../src/services/transfers/transfers.ts"],"mappings":";;;;;;;;;UAoBU,gCAAgC,mBAAmB;EACzD;;;;;cAMS;;EAQL,YAAA,WAAW,WACX,UAAU,mBACV,UAAU,gCACV,QAAQ;;;;EAYN,KACF,QAAO,oBACP,UAAU,0BACX;IAAU,WAAW;IAAkB;;;;;EAY1C,UAAU,OAAO"}
@@ -1,3 +1,4 @@
1
+ import { parse } from "../../shared/validation.js";
1
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
2
3
  import { resolveAccountScopedInput } from "../subaccount-resolver.js";
3
4
  import { LedgerReadService, TransferRowSchema } from "../../gen/ledger/read/v1/ledger_read_pb.js";
@@ -26,13 +27,13 @@ var TransfersService = class {
26
27
  /**
27
28
  * Returns ledger transfers for the resolved account scope with limit, direction, timestamp, code, ledger, and page-token filters.
28
29
  */
29
- async list(input, options) {
30
+ async list(input = {}, options) {
30
31
  await this.#scales.ready();
31
32
  const resolved = resolveAccountScopedInput(input, this.#resolver);
32
- const validatedInput = v.parse(ListTransfersInputSchema, resolved);
33
+ const validatedInput = parse(ListTransfersInputSchema, resolved);
33
34
  const res = await this.#client.listTransfers(validatedInput, toConnectCallOptions(options));
34
35
  return {
35
- transfers: v.parse(v.array(this.#ledgerTransferSchema), res.transfers),
36
+ transfers: parse(v.array(this.#ledgerTransferSchema), res.transfers),
36
37
  nextPageToken: res.nextPageToken
37
38
  };
38
39
  }
@@ -47,7 +48,7 @@ var TransfersService = class {
47
48
  schema: TransferRowSchema,
48
49
  onPublication: (m) => {
49
50
  gate.run(() => {
50
- const tr = v.parse(this.#ledgerTransferSchema, m);
51
+ const tr = parse(this.#ledgerTransferSchema, m);
51
52
  input.onEvent(tr);
52
53
  });
53
54
  },
@@ -1 +1 @@
1
- {"version":3,"file":"transfers.js","names":["#client","Proto.LedgerReadService","#realtime","#resolver","#scales","#ledgerTransferSchema","Proto.TransferRowSchema"],"sources":["../../../src/services/transfers/transfers.ts"],"sourcesContent":["import * as Proto from \"../../gen/ledger/read/v1/ledger_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"valibot\";\nimport type { PolyesterRealtime } from \"../../realtime/index.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport {\n createLedgerTransferSchema,\n ListTransfersInputSchema,\n type LedgerTransfer,\n type ListTransfersInput,\n} from \"./transfers.schemas.js\";\n\ninterface SubscribeTransfersInput extends BaseSubscribeInput<LedgerTransfer> {\n accountId: string;\n}\n\n/**\n * Reads and streams ledger transfer activity for the authenticated account scope.\n */\nexport class TransfersService {\n #client: Client<typeof Proto.LedgerReadService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #ledgerTransferSchema: ReturnType<typeof createLedgerTransferSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.LedgerReadService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#ledgerTransferSchema = createLedgerTransferSchema(scales);\n }\n\n /**\n * Returns ledger transfers for the resolved account scope with limit, direction, timestamp, code, ledger, and page-token filters.\n */\n async list(\n input: ListTransfersInput,\n options?: PolyesterRequestOptions,\n ): Promise<{ transfers: LedgerTransfer[]; nextPageToken: string }> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = v.parse(ListTransfersInputSchema, resolved);\n const res = await this.#client.listTransfers(validatedInput, toConnectCallOptions(options));\n const transfers = v.parse(v.array(this.#ledgerTransferSchema), res.transfers);\n return { transfers, nextPageToken: res.nextPageToken };\n }\n\n /**\n * Subscribes to private ledger transfer updates on private:ledger:transfers:{accountId}:proto and emits parsed transfer rows.\n */\n subscribe(input: SubscribeTransfersInput): () => void {\n const channel = `private:ledger:transfers:${input.accountId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TransferRowSchema,\n onPublication: (m) => {\n gate.run(() => {\n const tr = v.parse(this.#ledgerTransferSchema, m);\n input.onEvent(tr);\n });\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;AA0BA,IAAa,mBAAb,MAA8B;CAC1B;CACA;CACA;CACA;CACA;CAEA,YACI,WACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAyB,SAAS;EAC9D,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,wBAAwB,2BAA2B,MAAM;CAClE;;;;CAKA,MAAM,KACF,OACA,SAC+D;EAC/D,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiB,EAAE,MAAM,0BAA0B,QAAQ;EACjE,MAAM,MAAM,MAAM,KAAKH,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAE1F,OAAO;GAAE,WADS,EAAE,MAAM,EAAE,MAAM,KAAKK,qBAAqB,GAAG,IAAI,SAClD;GAAG,eAAe,IAAI;EAAc;CACzD;;;;CAKA,UAAU,OAA4C;EAClD,MAAM,UAAU,4BAA4B,MAAM,UAAU;EAC5D,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKF,UAAU,oBAAoB;GACtC;GACA,QAAQI;GACR,gBAAgB,MAAM;IAClB,KAAK,UAAU;KACX,MAAM,KAAK,EAAE,MAAM,KAAKD,uBAAuB,CAAC;KAChD,MAAM,QAAQ,EAAE;IACpB,CAAC;GACL;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
1
+ {"version":3,"file":"transfers.js","names":["#client","Proto.LedgerReadService","#realtime","#resolver","#scales","#ledgerTransferSchema","Proto.TransferRowSchema"],"sources":["../../../src/services/transfers/transfers.ts"],"sourcesContent":["import * as Proto from \"../../gen/ledger/read/v1/ledger_read_pb.js\";\nimport { createClient, type Client, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport type { PolyesterRealtime } from \"../../realtime/index.js\";\nimport { type SubaccountResolver, resolveAccountScopedInput } from \"../subaccount-resolver.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.js\";\nimport {\n createLedgerTransferSchema,\n ListTransfersInputSchema,\n type LedgerTransfer,\n type ListTransfersInput,\n} from \"./transfers.schemas.js\";\n\ninterface SubscribeTransfersInput extends BaseSubscribeInput<LedgerTransfer> {\n accountId: string;\n}\n\n/**\n * Reads and streams ledger transfer activity for the authenticated account scope.\n */\nexport class TransfersService {\n #client: Client<typeof Proto.LedgerReadService>;\n #realtime: PolyesterRealtime;\n #resolver?: SubaccountResolver;\n #scales: SdkScales;\n #ledgerTransferSchema: ReturnType<typeof createLedgerTransferSchema>;\n\n constructor(\n transport: Transport,\n realtime: PolyesterRealtime,\n resolver: SubaccountResolver | undefined,\n scales: SdkScales,\n ) {\n this.#client = createClient(Proto.LedgerReadService, transport);\n this.#realtime = realtime;\n this.#resolver = resolver;\n this.#scales = scales;\n this.#ledgerTransferSchema = createLedgerTransferSchema(scales);\n }\n\n /**\n * Returns ledger transfers for the resolved account scope with limit, direction, timestamp, code, ledger, and page-token filters.\n */\n async list(\n input: ListTransfersInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ transfers: LedgerTransfer[]; nextPageToken: string }> {\n await this.#scales.ready();\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validatedInput = parse(ListTransfersInputSchema, resolved);\n const res = await this.#client.listTransfers(validatedInput, toConnectCallOptions(options));\n const transfers = parse(v.array(this.#ledgerTransferSchema), res.transfers);\n return { transfers, nextPageToken: res.nextPageToken };\n }\n\n /**\n * Subscribes to private ledger transfer updates on private:ledger:transfers:{accountId}:proto and emits parsed transfer rows.\n */\n subscribe(input: SubscribeTransfersInput): () => void {\n const channel = `private:ledger:transfers:${input.accountId}:proto`;\n const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TransferRowSchema,\n onPublication: (m) => {\n gate.run(() => {\n const tr = parse(this.#ledgerTransferSchema, m);\n input.onEvent(tr);\n });\n },\n onConnected: input.onOpen,\n onDisconnected: input.onClose,\n onError: input.onError,\n });\n }\n}\n"],"mappings":";;;;;;;;;;;;;AA2BA,IAAa,mBAAb,MAA8B;CAC1B;CACA;CACA;CACA;CACA;CAEA,YACI,WACA,UACA,UACA,QACF;EACE,KAAKA,UAAU,aAAaC,mBAAyB,SAAS;EAC9D,KAAKC,YAAY;EACjB,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,wBAAwB,2BAA2B,MAAM;CAClE;;;;CAKA,MAAM,KACF,QAA4B,CAAC,GAC7B,SAC+D;EAC/D,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,WAAW,0BAA0B,OAAO,KAAKD,SAAS;EAChE,MAAM,iBAAiB,MAAM,0BAA0B,QAAQ;EAC/D,MAAM,MAAM,MAAM,KAAKH,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAE1F,OAAO;GAAE,WADS,MAAM,EAAE,MAAM,KAAKK,qBAAqB,GAAG,IAAI,SAChD;GAAG,eAAe,IAAI;EAAc;CACzD;;;;CAKA,UAAU,OAA4C;EAClD,MAAM,UAAU,4BAA4B,MAAM,UAAU;EAC5D,MAAM,OAAO,sBACH,KAAKD,QAAQ,MAAM,IACxB,UAAU,MAAM,UAAU,+BAA+B,SAAS,KAAK,CAAC,CAC7E;EACA,OAAO,KAAKF,UAAU,oBAAoB;GACtC;GACA,QAAQI;GACR,gBAAgB,MAAM;IAClB,KAAK,UAAU;KACX,MAAM,KAAK,MAAM,KAAKD,uBAAuB,CAAC;KAC9C,MAAM,QAAQ,EAAE;IACpB,CAAC;GACL;GACA,aAAa,MAAM;GACnB,gBAAgB,MAAM;GACtB,SAAS,MAAM;EACnB,CAAC;CACL;AACJ"}
@@ -788,7 +788,7 @@ declare const ListTriggersInputSchema: v.SchemaWithPipe<readonly [v.StrictObject
788
788
  readonly parentOrderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
789
789
  readonly symbol: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>;
790
790
  readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["created", "armed", "running", "completed", "cancelled", "failed", "paused"], undefined>, undefined>, undefined>, v.TransformAction<("cancelled" | "created" | "failed" | "completed" | "armed" | "running" | "paused")[] | undefined, (TriggerStatus.STATUS_CREATED | TriggerStatus.STATUS_ARMED | TriggerStatus.STATUS_RUNNING | TriggerStatus.STATUS_COMPLETED | TriggerStatus.STATUS_CANCELED | TriggerStatus.STATUS_FAILED | TriggerStatus.STATUS_PAUSED)[]>]>;
791
- readonly triggerType: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["stop_loss", "take_profit", "trailing_stop", "twap", "ladder"], undefined>, undefined>, v.TransformAction<"stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder" | undefined, TriggerType>]>;
791
+ readonly triggerType: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["stop_loss", "take_profit", "trailing_stop", "twap", "ladder"], undefined>, undefined>, v.TransformAction<"twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop" | undefined, TriggerType>]>;
792
792
  readonly limit: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 1000, undefined>]>, 50>;
793
793
  readonly pageToken: v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, "">;
794
794
  readonly account: v.OptionalSchema<v.UnionSchema<[v.PicklistSchema<["active", "main"], undefined>, v.StrictObjectSchema<{
@@ -670,7 +670,7 @@ declare function createTriggerEventSchema(scales: SdkScales): v.SchemaWithPipe<r
670
670
  triggerId: string;
671
671
  subaccountId: string;
672
672
  symbolId: number;
673
- triggerType: "unspecified" | "stop_loss" | "take_profit" | "trailing_stop" | "twap" | "ladder";
673
+ triggerType: "unspecified" | "twap" | "ladder" | "stop_loss" | "take_profit" | "trailing_stop";
674
674
  eventType: "unspecified" | "updated" | "fired" | "canceled";
675
675
  ts: number;
676
676
  childSeq: number;
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UAyDiB;EACb,UAAU;EACV;;UAYM,+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;;;;EAoBL,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;;;;EAwBjB,gBAAgB,OAAO"}
1
+ {"version":3,"file":"triggers.d.ts","names":[],"sources":["../../../src/services/triggers/triggers.ts"],"mappings":";;;;;;;;;;;UA0DiB;EACb,UAAU;EACV;;UAYM,+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;;;;EAoBL,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;;;;EAwBjB,gBAAgB,OAAO"}
@@ -1,3 +1,4 @@
1
+ import { parse } from "../../shared/validation.js";
1
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
2
3
  import { removeUndefined } from "../../utils/remove-undefined.js";
3
4
  import { resolveAccountScopedInput } from "../subaccount-resolver.js";
@@ -45,9 +46,9 @@ var TriggersService = class {
45
46
  async create(input, options) {
46
47
  await this.#scales.ready();
47
48
  const resolved = resolveAccountScopedInput(input, this.#resolver);
48
- const validatedInput = v.parse(this.#createTriggerInputSchema, resolved);
49
+ const validatedInput = parse(this.#createTriggerInputSchema, resolved);
49
50
  const res = await this.#client.createTrigger(validatedInput, toConnectCallOptions(options));
50
- return v.parse(CreateTriggerResultSchema, res);
51
+ return parse(CreateTriggerResultSchema, res);
51
52
  }
52
53
  /**
53
54
  * Fetches one trigger by id in the resolved account scope and returns null when the backend response contains no trigger.
@@ -55,10 +56,10 @@ var TriggersService = class {
55
56
  async get(input, options) {
56
57
  await this.#scales.ready();
57
58
  const resolved = resolveAccountScopedInput(input, this.#resolver);
58
- const validated = v.parse(GetTriggerInputSchema, resolved);
59
+ const validated = parse(GetTriggerInputSchema, resolved);
59
60
  const res = await this.#client.getTrigger(removeUndefined(validated), toConnectCallOptions(options));
60
61
  if (!res.trigger) return null;
61
- return v.parse(this.#triggerSchema, res.trigger);
62
+ return parse(this.#triggerSchema, res.trigger);
62
63
  }
63
64
  /**
64
65
  * Lists triggers for the resolved account scope with optional symbol, status, trigger type, parent order, limit, and page-token filters. Results are returned newest-first.
@@ -66,10 +67,10 @@ var TriggersService = class {
66
67
  async list(input = {}, options) {
67
68
  await this.#scales.ready();
68
69
  const resolved = resolveAccountScopedInput(input, this.#resolver);
69
- const validated = v.parse(ListTriggersInputSchema, resolved);
70
+ const validated = parse(ListTriggersInputSchema, resolved);
70
71
  const res = await this.#client.listTriggers(removeUndefined(validated), toConnectCallOptions(options));
71
72
  return {
72
- triggers: v.parse(v.array(this.#triggerSchema), res.triggers.filter((trigger) => hasKnownTriggerSymbol(this.#scales, trigger))),
73
+ triggers: parse(v.array(this.#triggerSchema), res.triggers.filter((trigger) => hasKnownTriggerSymbol(this.#scales, trigger))),
73
74
  nextPageToken: res.nextPageToken
74
75
  };
75
76
  }
@@ -78,9 +79,9 @@ var TriggersService = class {
78
79
  */
79
80
  async cancel(input, options) {
80
81
  const resolved = resolveAccountScopedInput(input, this.#resolver);
81
- const validated = v.parse(CancelTriggerInputSchema, resolved);
82
+ const validated = parse(CancelTriggerInputSchema, resolved);
82
83
  const res = await this.#client.cancelTrigger(removeUndefined(validated), toConnectCallOptions(options));
83
- return v.parse(CancelTriggerResultSchema, res);
84
+ return parse(CancelTriggerResultSchema, res);
84
85
  }
85
86
  /**
86
87
  * Applies a limited patch to an existing trigger, covering trigger price, limit price, trailing distance, activation price, and market slippage fields where supported.
@@ -88,27 +89,27 @@ var TriggersService = class {
88
89
  async modify(input, options) {
89
90
  await this.#scales.ready();
90
91
  const resolved = resolveAccountScopedInput(input, this.#resolver);
91
- const validated = v.parse(this.#modifyTriggerInputSchema, resolved);
92
+ const validated = parse(this.#modifyTriggerInputSchema, resolved);
92
93
  const res = await this.#client.modifyTrigger(validated, toConnectCallOptions(options));
93
- return v.parse(ModifyTriggerResultSchema, res);
94
+ return parse(ModifyTriggerResultSchema, res);
94
95
  }
95
96
  /**
96
97
  * Pauses an active trigger without discarding its immutable strategy configuration.
97
98
  */
98
99
  async pause(input, options) {
99
100
  const resolved = resolveAccountScopedInput(input, this.#resolver);
100
- const validated = v.parse(PauseTriggerInputSchema, resolved);
101
+ const validated = parse(PauseTriggerInputSchema, resolved);
101
102
  const res = await this.#client.pauseTrigger(removeUndefined(validated), toConnectCallOptions(options));
102
- return v.parse(PauseTriggerResultSchema, res);
103
+ return parse(PauseTriggerResultSchema, res);
103
104
  }
104
105
  /**
105
106
  * Resumes a paused trigger.
106
107
  */
107
108
  async resume(input, options) {
108
109
  const resolved = resolveAccountScopedInput(input, this.#resolver);
109
- const validated = v.parse(ResumeTriggerInputSchema, resolved);
110
+ const validated = parse(ResumeTriggerInputSchema, resolved);
110
111
  const res = await this.#client.resumeTrigger(removeUndefined(validated), toConnectCallOptions(options));
111
- return v.parse(ResumeTriggerResultSchema, res);
112
+ return parse(ResumeTriggerResultSchema, res);
112
113
  }
113
114
  /**
114
115
  * 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.
@@ -116,7 +117,7 @@ var TriggersService = class {
116
117
  async listEvents(input, options) {
117
118
  await this.#scales.ready();
118
119
  const resolved = resolveAccountScopedInput(input, this.#resolver);
119
- const validated = v.parse(ListTriggerEventsInputSchema, resolved);
120
+ const validated = parse(ListTriggerEventsInputSchema, resolved);
120
121
  const res = await this.#client.listTriggerEvents(removeUndefined({
121
122
  triggerId: validated.triggerId,
122
123
  subaccountId: validated.subaccountId,
@@ -125,7 +126,7 @@ var TriggersService = class {
125
126
  pageToken: validated.pageToken ?? ""
126
127
  }), toConnectCallOptions(options));
127
128
  return {
128
- events: v.parse(v.array(this.#triggerEventSchema), res.events),
129
+ events: parse(v.array(this.#triggerEventSchema), res.events),
129
130
  nextPageToken: res.nextPageToken
130
131
  };
131
132
  }
@@ -140,13 +141,13 @@ var TriggersService = class {
140
141
  schema: TriggerSchema,
141
142
  onPublication: (data) => {
142
143
  gate.run(() => {
143
- const trigger = v.parse(this.#triggerSchema, data);
144
+ const trigger = parse(this.#triggerSchema, data);
144
145
  input.onEvent(trigger);
145
146
  });
146
147
  },
147
148
  onConnected: () => input.onOpen?.(),
148
149
  onDisconnected: () => input.onClose?.(),
149
- onError: (ctx) => input.onError?.(ctx)
150
+ onError: input.onError
150
151
  });
151
152
  }
152
153
  /**
@@ -160,13 +161,13 @@ var TriggersService = class {
160
161
  schema: TriggerEventSchema,
161
162
  onPublication: (data) => {
162
163
  gate.run(() => {
163
- const event = v.parse(this.#triggerEventSchema, data);
164
+ const event = parse(this.#triggerEventSchema, data);
164
165
  input.onEvent(event);
165
166
  });
166
167
  },
167
168
  onConnected: () => input.onOpen?.(),
168
169
  onDisconnected: () => input.onClose?.(),
169
- onError: (ctx) => input.onError?.(ctx)
170
+ onError: input.onError
170
171
  });
171
172
  }
172
173
  };
@@ -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 { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\nimport * as v from \"valibot\";\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 { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.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\nfunction hasKnownTriggerSymbol(scales: SdkScales, trigger: { symbolId: number }): boolean {\n try {\n scales.baseQty(trigger.symbolId);\n return true;\n } catch {\n return false;\n }\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, such as stop-loss, take-profit, trailing-stop, TWAP, or ladder, for the resolved account scope. The request includes trigger conditions, order fields, strategy-specific fields, and optional clientTriggerId.\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 = v.parse(this.#createTriggerInputSchema, resolved);\n const res = await this.#client.createTrigger(validatedInput, toConnectCallOptions(options));\n return v.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 = v.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 v.parse(this.#triggerSchema, res.trigger);\n }\n\n /**\n * Lists triggers for the resolved account scope with optional symbol, 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 = v.parse(ListTriggersInputSchema, resolved);\n const res = await this.#client.listTriggers(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return {\n triggers: v.parse(\n v.array(this.#triggerSchema),\n res.triggers.filter((trigger) => hasKnownTriggerSymbol(this.#scales, trigger)),\n ),\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 = v.parse(CancelTriggerInputSchema, resolved);\n const res = await this.#client.cancelTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return v.parse(CancelTriggerResultSchema, res);\n }\n\n /**\n * Applies a limited patch to an existing trigger, covering trigger price, limit price, trailing distance, activation price, and market slippage fields where supported.\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 = v.parse(this.#modifyTriggerInputSchema, resolved);\n const res = await this.#client.modifyTrigger(validated, toConnectCallOptions(options));\n return v.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 = v.parse(PauseTriggerInputSchema, resolved);\n const res = await this.#client.pauseTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return v.parse(PauseTriggerResultSchema, res);\n }\n\n /**\n * Resumes a paused trigger.\n */\n async resume(\n input: ResumeTriggerInput,\n options?: PolyesterMutationOptions,\n ): Promise<ResumeTriggerResult> {\n const resolved = resolveAccountScopedInput(input, this.#resolver);\n const validated = v.parse(ResumeTriggerInputSchema, resolved);\n const res = await this.#client.resumeTrigger(\n removeUndefined(validated),\n toConnectCallOptions(options),\n );\n return v.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 = v.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: v.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 const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TriggerSchema,\n onPublication: (data) => {\n gate.run(() => {\n const trigger = v.parse(this.#triggerSchema, data);\n input.onEvent(trigger);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: (ctx) => input.onError?.(ctx),\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 const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TriggerEventSchema,\n onPublication: (data) => {\n gate.run(() => {\n const event = v.parse(this.#triggerEventSchema, data);\n input.onEvent(event);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: (ctx) => input.onError?.(ctx),\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, type Transport } from \"@connectrpc/connect\";\nimport { publicationHandlerErrorContext } from \"../../shared/subscription-errors.js\";\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 { createReadyGate, type SdkScales } from \"../../shared/decimal-surface.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\nfunction hasKnownTriggerSymbol(scales: SdkScales, trigger: { symbolId: number }): boolean {\n try {\n scales.baseQty(trigger.symbolId);\n return true;\n } catch {\n return false;\n }\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, such as stop-loss, take-profit, trailing-stop, TWAP, or ladder, for the resolved account scope. The request includes trigger conditions, order fields, strategy-specific fields, and optional clientTriggerId.\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, 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(\n v.array(this.#triggerSchema),\n res.triggers.filter((trigger) => hasKnownTriggerSymbol(this.#scales, trigger)),\n ),\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, covering trigger price, limit price, trailing distance, activation price, and market slippage fields where supported.\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.\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 const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TriggerSchema,\n onPublication: (data) => {\n gate.run(() => {\n const trigger = parse(this.#triggerSchema, data);\n input.onEvent(trigger);\n });\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 const gate = createReadyGate(\n () => this.#scales.ready(),\n (error) => input.onError?.(publicationHandlerErrorContext(channel, error)),\n );\n return this.#realtime.connectProtoChannel({\n channel,\n schema: Proto.TriggerEventSchema,\n onPublication: (data) => {\n gate.run(() => {\n const event = parse(this.#triggerEventSchema, data);\n input.onEvent(event);\n });\n },\n onConnected: () => input.onOpen?.(),\n onDisconnected: () => input.onClose?.(),\n onError: input.onError,\n });\n }\n}\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
+ import { parse } from "../../shared/validation.js";
1
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
2
3
  import { removeUndefined } from "../../utils/remove-undefined.js";
3
4
  import { WhiteboardService as WhiteboardService$1 } from "../../gen/collab/v1/whiteboard_pb.js";
4
5
  import { ArchiveWhiteboardBoardInputSchema, ArchiveWhiteboardBoardResultSchema, CreateWhiteboardBoardInputSchema, CreateWhiteboardBoardResultSchema, GetWhiteboardBoardInputSchema, GetWhiteboardBoardResultSchema, ListWhiteboardBoardsInputSchema, ListWhiteboardBoardsResultSchema, MintWhiteboardJoinTokenInputSchema, UpdateWhiteboardBoardAclInputSchema, UpdateWhiteboardBoardAclResultSchema, UpdateWhiteboardBoardInputSchema, UpdateWhiteboardBoardResultSchema, WhiteboardJoinTokenResultSchema } from "./whiteboard.schemas.js";
5
6
  import { createClient } from "@connectrpc/connect";
6
- import * as v from "valibot";
7
7
  //#region src/services/whiteboard/whiteboard.ts
8
8
  /**
9
9
  * Manages collaborative whiteboards, ACLs, archive state, and join tokens.
@@ -17,57 +17,57 @@ var WhiteboardService = class {
17
17
  * Creates a whiteboard and returns the parsed whiteboard record.
18
18
  */
19
19
  async create(input, options) {
20
- const validatedInput = v.parse(CreateWhiteboardBoardInputSchema, input);
20
+ const validatedInput = parse(CreateWhiteboardBoardInputSchema, input);
21
21
  const res = await this.#client.createBoard(validatedInput, toConnectCallOptions(options));
22
- return v.parse(CreateWhiteboardBoardResultSchema, res);
22
+ return parse(CreateWhiteboardBoardResultSchema, res);
23
23
  }
24
24
  /**
25
25
  * Fetches a whiteboard by id and returns null when no whiteboard is present in the response.
26
26
  */
27
27
  async get(input, options) {
28
- const validatedInput = v.parse(GetWhiteboardBoardInputSchema, typeof input === "string" ? { boardId: input } : input);
28
+ const validatedInput = parse(GetWhiteboardBoardInputSchema, typeof input === "string" ? { boardId: input } : input);
29
29
  const res = await this.#client.getBoard(validatedInput, toConnectCallOptions(options));
30
- return v.parse(GetWhiteboardBoardResultSchema, res);
30
+ return parse(GetWhiteboardBoardResultSchema, res);
31
31
  }
32
32
  /**
33
33
  * Returns whiteboards matching the requested filters.
34
34
  */
35
35
  async list(input = {}, options) {
36
- const validatedInput = v.parse(ListWhiteboardBoardsInputSchema, input);
36
+ const validatedInput = parse(ListWhiteboardBoardsInputSchema, input);
37
37
  const res = await this.#client.listBoards(validatedInput, toConnectCallOptions(options));
38
- return v.parse(ListWhiteboardBoardsResultSchema, res);
38
+ return parse(ListWhiteboardBoardsResultSchema, res);
39
39
  }
40
40
  /**
41
41
  * Updates whiteboard metadata such as title or archive-related fields.
42
42
  */
43
43
  async update(input, options) {
44
- const validatedInput = v.parse(UpdateWhiteboardBoardInputSchema, input);
44
+ const validatedInput = parse(UpdateWhiteboardBoardInputSchema, input);
45
45
  const res = await this.#client.updateBoard(removeUndefined({ ...validatedInput }), toConnectCallOptions(options));
46
- return v.parse(UpdateWhiteboardBoardResultSchema, res);
46
+ return parse(UpdateWhiteboardBoardResultSchema, res);
47
47
  }
48
48
  /**
49
49
  * Updates whiteboard access-control entries.
50
50
  */
51
51
  async updateAcl(input, options) {
52
- const validatedInput = v.parse(UpdateWhiteboardBoardAclInputSchema, input);
52
+ const validatedInput = parse(UpdateWhiteboardBoardAclInputSchema, input);
53
53
  const res = await this.#client.updateBoardAcl(validatedInput, toConnectCallOptions(options));
54
- return v.parse(UpdateWhiteboardBoardAclResultSchema, res);
54
+ return parse(UpdateWhiteboardBoardAclResultSchema, res);
55
55
  }
56
56
  /**
57
57
  * Archives a whiteboard by id.
58
58
  */
59
59
  async archive(input, options) {
60
- const validatedInput = v.parse(ArchiveWhiteboardBoardInputSchema, input);
60
+ const validatedInput = parse(ArchiveWhiteboardBoardInputSchema, input);
61
61
  const res = await this.#client.archiveBoard(validatedInput, toConnectCallOptions(options));
62
- return v.parse(ArchiveWhiteboardBoardResultSchema, res);
62
+ return parse(ArchiveWhiteboardBoardResultSchema, res);
63
63
  }
64
64
  /**
65
65
  * Creates a join token that can grant access to a whiteboard.
66
66
  */
67
67
  async mintJoinToken(input, options) {
68
- const validatedInput = v.parse(MintWhiteboardJoinTokenInputSchema, typeof input === "string" ? { boardId: input } : input);
68
+ const validatedInput = parse(MintWhiteboardJoinTokenInputSchema, typeof input === "string" ? { boardId: input } : input);
69
69
  const res = await this.#client.mintJoinToken(validatedInput, toConnectCallOptions(options));
70
- return v.parse(WhiteboardJoinTokenResultSchema, res);
70
+ return parse(WhiteboardJoinTokenResultSchema, res);
71
71
  }
72
72
  };
73
73
  //#endregion
@@ -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 * as v from \"valibot\";\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 = v.parse(CreateWhiteboardBoardInputSchema, input);\n const res = await this.#client.createBoard(validatedInput, toConnectCallOptions(options));\n return v.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 = v.parse(\n GetWhiteboardBoardInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.getBoard(validatedInput, toConnectCallOptions(options));\n return v.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 = v.parse(ListWhiteboardBoardsInputSchema, input);\n const res = await this.#client.listBoards(validatedInput, toConnectCallOptions(options));\n return v.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 = v.parse(UpdateWhiteboardBoardInputSchema, input);\n const res = await this.#client.updateBoard(\n removeUndefined({ ...validatedInput }) as Proto.UpdateBoardRequest,\n toConnectCallOptions(options),\n );\n return v.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 = v.parse(UpdateWhiteboardBoardAclInputSchema, input);\n const res = await this.#client.updateBoardAcl(\n validatedInput,\n toConnectCallOptions(options),\n );\n return v.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 = v.parse(ArchiveWhiteboardBoardInputSchema, input);\n const res = await this.#client.archiveBoard(validatedInput, toConnectCallOptions(options));\n return v.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 = v.parse(\n MintWhiteboardJoinTokenInputSchema,\n typeof input === \"string\" ? { boardId: input } : input,\n );\n const res = await this.#client.mintJoinToken(validatedInput, toConnectCallOptions(options));\n return v.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,EAAE,MAAM,kCAAkC,KAAK;EACtE,MAAM,MAAM,MAAM,KAAKD,QAAQ,YAAY,gBAAgB,qBAAqB,OAAO,CAAC;EACxF,OAAO,EAAE,MAAM,mCAAmC,GAAG;CACzD;;;;CAKA,MAAM,IACF,OACA,SACiC;EACjC,MAAM,iBAAiB,EAAE,MACrB,+BACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,SAAS,gBAAgB,qBAAqB,OAAO,CAAC;EACrF,OAAO,EAAE,MAAM,gCAAgC,GAAG;CACtD;;;;CAKA,MAAM,KACF,QAAmC,CAAC,GACpC,SACmC;EACnC,MAAM,iBAAiB,EAAE,MAAM,iCAAiC,KAAK;EACrE,MAAM,MAAM,MAAM,KAAKA,QAAQ,WAAW,gBAAgB,qBAAqB,OAAO,CAAC;EACvF,OAAO,EAAE,MAAM,kCAAkC,GAAG;CACxD;;;;CAKA,MAAM,OACF,OACA,SACoC;EACpC,MAAM,iBAAiB,EAAE,MAAM,kCAAkC,KAAK;EACtE,MAAM,MAAM,MAAM,KAAKA,QAAQ,YAC3B,gBAAgB,EAAE,GAAG,eAAe,CAAC,GACrC,qBAAqB,OAAO,CAChC;EACA,OAAO,EAAE,MAAM,mCAAmC,GAAG;CACzD;;;;CAKA,MAAM,UACF,OACA,SACuC;EACvC,MAAM,iBAAiB,EAAE,MAAM,qCAAqC,KAAK;EACzE,MAAM,MAAM,MAAM,KAAKA,QAAQ,eAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO,EAAE,MAAM,sCAAsC,GAAG;CAC5D;;;;CAKA,MAAM,QACF,OACA,SACqC;EACrC,MAAM,iBAAiB,EAAE,MAAM,mCAAmC,KAAK;EACvE,MAAM,MAAM,MAAM,KAAKA,QAAQ,aAAa,gBAAgB,qBAAqB,OAAO,CAAC;EACzF,OAAO,EAAE,MAAM,oCAAoC,GAAG;CAC1D;;;;CAKA,MAAM,cACF,OACA,SACkC;EAClC,MAAM,iBAAiB,EAAE,MACrB,oCACA,OAAO,UAAU,WAAW,EAAE,SAAS,MAAM,IAAI,KACrD;EACA,MAAM,MAAM,MAAM,KAAKA,QAAQ,cAAc,gBAAgB,qBAAqB,OAAO,CAAC;EAC1F,OAAO,EAAE,MAAM,iCAAiC,GAAG;CACvD;AACJ"}
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,4 +1,5 @@
1
1
  import { ConfigurationError } from "../../shared/errors.js";
2
+ import { parse } from "../../shared/validation.js";
2
3
  import { toConnectCallOptions } from "../../shared/request-options.js";
3
4
  import { publicationHandlerErrorContext } from "../../shared/subscription-errors.js";
4
5
  import { createReadyGate } from "../../shared/decimal-surface.js";
@@ -7,7 +8,6 @@ import { ZippedAssetSupplyBatchSchema, ZipperService as ZipperService$1 } from "
7
8
  import { DepositWithdrawConfigSchema, createZippedAssetSupplyBatchSchema } from "./zipper.schemas.js";
8
9
  import { create } from "@bufbuild/protobuf";
9
10
  import { createClient } from "@connectrpc/connect";
10
- import * as v from "valibot";
11
11
  //#region src/services/zipper/zipper.ts
12
12
  /**
13
13
  * Reads public Zipper deposit/withdraw chain and asset configuration.
@@ -26,7 +26,7 @@ var ZipperService = class {
26
26
  */
27
27
  async getDepositWithdrawConfig(options) {
28
28
  const res = await this.#client.getDepositWithdrawConfig({}, toConnectCallOptions(options));
29
- return v.parse(DepositWithdrawConfigSchema, res);
29
+ return parse(DepositWithdrawConfigSchema, res);
30
30
  }
31
31
  /**
32
32
  * Attaches to the public supply stream before capturing a route-supply snapshot,
@@ -40,7 +40,7 @@ var ZipperService = class {
40
40
  const schema = createZippedAssetSupplyBatchSchema(scales);
41
41
  const onError = (error) => input.onError?.(error);
42
42
  const gate = createReadyGate(() => scales.ready(), (error) => onError(publicationHandlerErrorContext(channel, error)));
43
- const parseBatch = (batch) => v.parse(schema, batch);
43
+ const parseBatch = (batch) => parse(schema, batch);
44
44
  const parseUpdates = (updates) => parseBatch(create(ZippedAssetSupplyBatchSchema, { updates: [...updates] })).updates;
45
45
  const stream = snapshotThenStream({
46
46
  realtime,
@@ -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 {\n publicationHandlerErrorContext,\n type SdkSubscriptionErrorContext,\n} from \"../../shared/subscription-errors.js\";\nimport * as v from \"valibot\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport { createReadyGate, 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 v.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 const onError = (error: SdkSubscriptionErrorContext) => input.onError?.(error);\n const gate = createReadyGate(\n () => scales.ready(),\n (error) => onError(publicationHandlerErrorContext(channel, error)),\n );\n\n const parseBatch = (batch: Proto.ZippedAssetSupplyBatch): ZippedAssetSupplyBatch =>\n v.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: \"live\",\n fetchSnapshot: () => this.getDepositWithdrawConfig(),\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n gate.run(() => {\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 },\n applyLivePublications: (updates) => {\n gate.run(() => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BA,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,EAAE,MAAM,6BAA6B,GAAG;CACnD;;;;;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,MAAM,WAAW,UAAuC,MAAM,UAAU,KAAK;EAC7E,MAAM,OAAO,sBACH,OAAO,MAAM,IAClB,UAAU,QAAQ,+BAA+B,SAAS,KAAK,CAAC,CACrE;EAEA,MAAM,cAAc,UAChB,EAAE,MAAM,QAAQ,KAAK;EACzB,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,qBAAqB;GACrB,qBAAqB,KAAK,yBAAyB;GACnD,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,KAAK,UAAU;KACX,MAAM,wCAAwB,IAAI,IAAoB;KACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;KAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;KAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;MACrE;MACA;KACJ,EAAE,EACN,CAAC;IACL,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,KAAK,UAAU;KACX,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;IACL,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, type Transport } from \"@connectrpc/connect\";\nimport {\n DepositWithdrawConfigSchema,\n createZippedAssetSupplyBatchSchema,\n type DepositWithdrawConfig,\n type ZippedAssetSupplyBatch,\n} from \"./zipper.schemas.js\";\nimport {\n publicationHandlerErrorContext,\n type SdkSubscriptionErrorContext,\n} from \"../../shared/subscription-errors.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 { createReadyGate, 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 const onError = (error: SdkSubscriptionErrorContext) => input.onError?.(error);\n const gate = createReadyGate(\n () => scales.ready(),\n (error) => onError(publicationHandlerErrorContext(channel, error)),\n );\n\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: \"live\",\n fetchSnapshot: () => this.getDepositWithdrawConfig(),\n readPublication: (batch) => batch.updates,\n bufferPublicationKey: (update) => update.zippedAssetId,\n applySnapshot: (snapshot, bufferedUpdates) => {\n gate.run(() => {\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 },\n applyLivePublications: (updates) => {\n gate.run(() => {\n input.onEvent({\n updates: parseUpdates(updates),\n });\n });\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n return () => stream.unsubscribe();\n }\n}\n"],"mappings":";;;;;;;;;;;;;;AA6BA,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,MAAM,WAAW,UAAuC,MAAM,UAAU,KAAK;EAC7E,MAAM,OAAO,sBACH,OAAO,MAAM,IAClB,UAAU,QAAQ,+BAA+B,SAAS,KAAK,CAAC,CACrE;EAEA,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,qBAAqB;GACrB,qBAAqB,KAAK,yBAAyB;GACnD,kBAAkB,UAAU,MAAM;GAClC,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,UAAU,oBAAoB;IAC1C,KAAK,UAAU;KACX,MAAM,wCAAwB,IAAI,IAAoB;KACtD,KAAK,MAAM,SAAS,SAAS,QACzB,KAAK,MAAM,WAAW,MAAM,UACxB,sBAAsB,IAAI,QAAQ,eAAe,QAAQ,MAAM;KAGvE,KAAK,MAAM,UAAU,aAAa,eAAe,GAC7C,sBAAsB,IAAI,OAAO,eAAe,OAAO,MAAM;KAEjE,MAAM,QAAQ,EACV,SAAS,MAAM,KAAK,wBAAwB,CAAC,eAAe,aAAa;MACrE;MACA;KACJ,EAAE,EACN,CAAC;IACL,CAAC;GACL;GACA,wBAAwB,YAAY;IAChC,KAAK,UAAU;KACX,MAAM,QAAQ,EACV,SAAS,aAAa,OAAO,EACjC,CAAC;IACL,CAAC;GACL;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,aAAa,OAAO,YAAY;CACpC;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { PolyesterError } from "./errors.js";
2
- import { ConnectError, Interceptor } from "@connectrpc/connect";
2
+ import { ConnectError, Interceptor, Transport } from "@connectrpc/connect";
3
3
  //#region src/shared/connect-error-mapping.d.ts
4
4
  /**
5
5
  * Maps a `ConnectError` from the Polyester backend onto the typed
@@ -164,7 +164,33 @@ function createErrorMappingInterceptor() {
164
164
  }
165
165
  };
166
166
  }
167
+ /**
168
+ * Wraps a Connect transport so errors are translated after Connect's call
169
+ * runner has applied its own error normalization.
170
+ */
171
+ function createErrorMappingTransport(transport) {
172
+ return {
173
+ async unary(method, signal, timeoutMs, header, input, contextValues) {
174
+ try {
175
+ return await transport.unary(method, signal, timeoutMs, header, input, contextValues);
176
+ } catch (error) {
177
+ throw toPolyesterError(error);
178
+ }
179
+ },
180
+ async stream(method, signal, timeoutMs, header, input, contextValues) {
181
+ try {
182
+ const response = await transport.stream(method, signal, timeoutMs, header, input, contextValues);
183
+ return {
184
+ ...response,
185
+ message: mapStreamErrors(response.message)
186
+ };
187
+ } catch (error) {
188
+ throw toPolyesterError(error);
189
+ }
190
+ }
191
+ };
192
+ }
167
193
  //#endregion
168
- export { connectErrorToPolyesterError, createErrorMappingInterceptor, detectMfaErrorKind, getNormalizedConnectMessage, toPolyesterError };
194
+ export { connectErrorToPolyesterError, createErrorMappingInterceptor, createErrorMappingTransport, detectMfaErrorKind, getNormalizedConnectMessage, toPolyesterError };
169
195
 
170
196
  //# sourceMappingURL=connect-error-mapping.js.map