@polyester/sdk 0.17.0 → 0.19.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 (53) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/gen/auth/v1/resolve_pb.d.ts +35 -6
  3. package/dist/gen/auth/v1/resolve_pb.d.ts.map +1 -1
  4. package/dist/gen/auth/v1/resolve_pb.js +34 -2
  5. package/dist/gen/auth/v1/resolve_pb.js.map +1 -1
  6. package/dist/gen/auth/v1/subaccounts_pb.d.ts +37 -10
  7. package/dist/gen/auth/v1/subaccounts_pb.d.ts.map +1 -1
  8. package/dist/gen/auth/v1/subaccounts_pb.js +38 -6
  9. package/dist/gen/auth/v1/subaccounts_pb.js.map +1 -1
  10. package/dist/gen/orders/v1/orders_pb.d.ts +124 -14
  11. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
  12. package/dist/gen/orders/v1/orders_pb.js +124 -2
  13. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  14. package/dist/services/accounts/accounts.codecs.js +6 -1
  15. package/dist/services/accounts/accounts.codecs.js.map +1 -1
  16. package/dist/services/accounts/accounts.schemas.d.ts +2 -2
  17. package/dist/services/accounts/accounts.schemas.d.ts.map +1 -1
  18. package/dist/services/accounts/accounts.schemas.js +4 -3
  19. package/dist/services/accounts/accounts.schemas.js.map +1 -1
  20. package/dist/services/market-overview/market-overview.d.ts +1 -0
  21. package/dist/services/market-overview/market-overview.d.ts.map +1 -1
  22. package/dist/services/market-overview/market-overview.js +24 -6
  23. package/dist/services/market-overview/market-overview.js.map +1 -1
  24. package/dist/services/orders/orders-batch.schemas.d.ts +9 -9
  25. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  26. package/dist/services/orders/orders-batch.schemas.js +4 -4
  27. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  28. package/dist/services/orders/orders-input.schemas.d.ts +8 -8
  29. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  30. package/dist/services/orders/orders-input.schemas.js +5 -4
  31. package/dist/services/orders/orders-input.schemas.js.map +1 -1
  32. package/dist/services/orders/orders-output.schemas.d.ts +6 -6
  33. package/dist/services/orders/orders.codecs.js +20 -1
  34. package/dist/services/orders/orders.codecs.js.map +1 -1
  35. package/dist/services/subaccounts/subaccounts.codecs.js +11 -1
  36. package/dist/services/subaccounts/subaccounts.codecs.js.map +1 -1
  37. package/dist/services/subaccounts/subaccounts.js +1 -1
  38. package/dist/services/subaccounts/subaccounts.js.map +1 -1
  39. package/dist/services/subaccounts/subaccounts.schemas.d.ts +4 -4
  40. package/dist/services/subaccounts/subaccounts.schemas.d.ts.map +1 -1
  41. package/dist/services/subaccounts/subaccounts.schemas.js +2 -6
  42. package/dist/services/subaccounts/subaccounts.schemas.js.map +1 -1
  43. package/dist/services/trades/trades.d.ts +3 -4
  44. package/dist/services/trades/trades.d.ts.map +1 -1
  45. package/dist/services/trades/trades.js +1 -1
  46. package/dist/services/trades/trades.js.map +1 -1
  47. package/dist/services/trades/trades.schemas.d.ts +41 -7
  48. package/dist/services/trades/trades.schemas.d.ts.map +1 -1
  49. package/dist/services/trades/trades.schemas.js +20 -10
  50. package/dist/services/trades/trades.schemas.js.map +1 -1
  51. package/dist/services/triggers/trigger-input.schemas.d.ts +1 -1
  52. package/dist/services/triggers/triggers-output.schemas.d.ts +15 -15
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"accounts.schemas.js","names":[],"sources":["../../../src/services/accounts/accounts.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport * as ProtoResolve from \"../../gen/auth/v1/resolve_pb.js\";\nimport { PublicIdSchema } from \"../../shared/schemas.js\";\nimport { ResolveHintCodec } from \"./accounts.codecs.js\";\n\nfunction normalizeResolveHint(value?: string): ProtoResolve.ResolveHint {\n const raw = (value ?? \"\").trim();\n if (!raw) return ProtoResolve.ResolveHint.RESOLVE_HINT_UNSPECIFIED;\n const key = raw.toUpperCase().replace(/^RESOLVE_HINT_/, \"\");\n return (\n ResolveHintCodec.keyToProtoLookup[key] ?? ProtoResolve.ResolveHint.RESOLVE_HINT_UNSPECIFIED\n );\n}\n\nexport const ResolveAccountInputSchema = v.object({\n query: v.pipe(v.string(), v.trim(), v.minLength(1, \"query is required\")),\n hint: v.pipe(\n v.optional(v.string(), \"\"),\n v.transform((value) => normalizeResolveHint(value)),\n ),\n includeSubaccounts: v.optional(v.boolean(), false),\n});\n\nexport type ResolveAccountInput = v.InferInput<typeof ResolveAccountInputSchema>;\n\nexport const ResolvedAccountSchema = v.object({\n smartAccountAddress: v.string(),\n kind: v.picklist([\"root\", \"sub\"]),\n rootUsername: v.optional(v.string()),\n subaccountLabel: v.optional(v.string()),\n accountId: PublicIdSchema,\n});\n\nexport const ResolvedAccountArraySchema = v.optional(v.array(ResolvedAccountSchema), []);\n\nexport type ResolvedAccount = v.InferOutput<typeof ResolvedAccountSchema>;\n"],"mappings":";;;;;AAKA,SAAS,qBAAqB,OAA0C;CACpE,MAAM,OAAO,SAAS,GAAA,CAAI,KAAK;CAC/B,IAAI,CAAC,KAAK,OAAA;CACV,MAAM,MAAM,IAAI,YAAY,CAAC,CAAC,QAAQ,kBAAkB,EAAE;CAC1D,OACI,iBAAiB,iBAAiB,QAAA;AAE1C;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAC9C,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,GAAG,mBAAmB,CAAC;CACvE,MAAM,EAAE,KACJ,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,GACzB,EAAE,WAAW,UAAU,qBAAqB,KAAK,CAAC,CACtD;CACA,oBAAoB,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AACrD,CAAC;AAID,MAAa,wBAAwB,EAAE,OAAO;CAC1C,qBAAqB,EAAE,OAAO;CAC9B,MAAM,EAAE,SAAS,CAAC,QAAQ,KAAK,CAAC;CAChC,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;CACnC,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC;CACtC,WAAW;AACf,CAAC;AAED,MAAa,6BAA6B,EAAE,SAAS,EAAE,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"accounts.schemas.js","names":["ProtoResolve.ResolvedAccount_Kind"],"sources":["../../../src/services/accounts/accounts.schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport * as ProtoResolve from \"../../gen/auth/v1/resolve_pb.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { PublicIdSchema } from \"../../shared/schemas.js\";\nimport { ResolvedAccountKindCodec, ResolveHintCodec } from \"./accounts.codecs.js\";\n\nfunction normalizeResolveHint(value?: string): ProtoResolve.ResolveHint {\n const raw = (value ?? \"\").trim();\n if (!raw) return ProtoResolve.ResolveHint.RESOLVE_HINT_UNSPECIFIED;\n const key = raw.toUpperCase().replace(/^RESOLVE_HINT_/, \"\");\n return (\n ResolveHintCodec.keyToProtoLookup[key] ?? ProtoResolve.ResolveHint.RESOLVE_HINT_UNSPECIFIED\n );\n}\n\nexport const ResolveAccountInputSchema = v.object({\n query: v.pipe(v.string(), v.trim(), v.minLength(1, \"query is required\")),\n hint: v.pipe(\n v.optional(v.string(), \"\"),\n v.transform((value) => normalizeResolveHint(value)),\n ),\n includeSubaccounts: v.optional(v.boolean(), false),\n});\n\nexport type ResolveAccountInput = v.InferInput<typeof ResolveAccountInputSchema>;\n\nexport const ResolvedAccountSchema = v.object({\n smartAccountAddress: v.string(),\n kind: v.pipe(\n v.enum(ProtoResolve.ResolvedAccount_Kind),\n v.transform((kind) =>\n requiredEnumLabel(\n ResolvedAccountKindCodec.protoToOutput,\n kind,\n \"ResolvedAccountSchema\",\n \"kind\",\n ),\n ),\n ),\n rootUsername: v.optional(v.string()),\n subaccountLabel: v.optional(v.string()),\n accountId: PublicIdSchema,\n});\n\nexport const ResolvedAccountArraySchema = v.optional(v.array(ResolvedAccountSchema), []);\n\nexport type ResolvedAccount = v.InferOutput<typeof ResolvedAccountSchema>;\n"],"mappings":";;;;;;AAMA,SAAS,qBAAqB,OAA0C;CACpE,MAAM,OAAO,SAAS,GAAA,CAAI,KAAK;CAC/B,IAAI,CAAC,KAAK,OAAA;CACV,MAAM,MAAM,IAAI,YAAY,CAAC,CAAC,QAAQ,kBAAkB,EAAE;CAC1D,OACI,iBAAiB,iBAAiB,QAAA;AAE1C;AAEA,MAAa,4BAA4B,EAAE,OAAO;CAC9C,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,GAAG,EAAE,UAAU,GAAG,mBAAmB,CAAC;CACvE,MAAM,EAAE,KACJ,EAAE,SAAS,EAAE,OAAO,GAAG,EAAE,GACzB,EAAE,WAAW,UAAU,qBAAqB,KAAK,CAAC,CACtD;CACA,oBAAoB,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK;AACrD,CAAC;AAID,MAAa,wBAAwB,EAAE,OAAO;CAC1C,qBAAqB,EAAE,OAAO;CAC9B,MAAM,EAAE,KACJ,EAAE,KAAKA,oBAAiC,GACxC,EAAE,WAAW,SACT,kBACI,yBAAyB,eACzB,MACA,yBACA,MACJ,CACJ,CACJ;CACA,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC;CACnC,iBAAiB,EAAE,SAAS,EAAE,OAAO,CAAC;CACtC,WAAW;AACf,CAAC;AAED,MAAa,6BAA6B,EAAE,SAAS,EAAE,MAAM,qBAAqB,GAAG,CAAC,CAAC"}
@@ -6,6 +6,7 @@ import { SdkScales } from "../../shared/decimal-surface.js";
6
6
  import { ListMarketOverviewInput, MarketOverview, SparklineIntervalName } from "./market-overview.schemas.js";
7
7
  //#region src/services/market-overview/market-overview.d.ts
8
8
  interface SubscribeMarketOverviewInput extends BaseSubscribeInput<MarketOverview[]> {
9
+ symbolIds?: number[];
9
10
  includeSparklines?: boolean;
10
11
  sparklineIntervals?: SparklineIntervalName[];
11
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"market-overview.d.ts","names":[],"sources":["../../../src/services/market-overview/market-overview.ts"],"mappings":";;;;;;;UAqBU,qCAAqC,mBAAmB;EAC9D;EACA,qBAAqB;;;;;cAMZ;;EAMG,YAAA,YAAY,qBAAqB,UAAU,mBAAmB,QAAQ;;;;EAU5E,KACF,QAAO,yBACP,UAAU,0BACX;IAAU,SAAS;IAAkB;;;;;EAgBxC,UAAU,OAAO"}
1
+ {"version":3,"file":"market-overview.d.ts","names":[],"sources":["../../../src/services/market-overview/market-overview.ts"],"mappings":";;;;;;;UAsBU,qCAAqC,mBAAmB;EAC9D;EACA;EACA,qBAAqB;;;;;cAMZ;;EAMG,YAAA,YAAY,qBAAqB,UAAU,mBAAmB,QAAQ;;;;EAU5E,KACF,QAAO,yBACP,UAAU,0BACX;IAAU,SAAS;IAAkB;;;;;EA8CxC,UAAU,OAAO"}
@@ -1,10 +1,11 @@
1
1
  import { parse } from "../../shared/validation.js";
2
2
  import { toConnectCallOptions } from "../../shared/request-options.js";
3
+ import { CatalogLookupError } from "../../catalogs/types.js";
4
+ import { isDev } from "../../utils/is-dev.js";
3
5
  import { MarketOverviewBatchSchema, MarketOverviewService as MarketOverviewService$1 } from "../../gen/marketoverview/v1/marketoverview_pb.js";
4
6
  import { snapshotThenStream } from "../../realtime/snapshot-then-stream.js";
5
7
  import { ListMarketOverviewInputSchema, createMarketOverviewSchema } from "./market-overview.schemas.js";
6
8
  import { createClient } from "@connectrpc/connect";
7
- import * as v from "valibot";
8
9
  //#region src/services/market-overview/market-overview.ts
9
10
  /**
10
11
  * Provides ticker-style per-market stats and a live merged overview stream.
@@ -28,11 +29,30 @@ var MarketOverviewService = class {
28
29
  await this.#scales.ready();
29
30
  const res = await this.#client.listMarketOverview(validatedInput, toConnectCallOptions(options));
30
31
  return {
31
- markets: parse(v.array(this.#marketOverviewSchema), res.markets),
32
+ markets: this.#decodeMarkets(res.markets),
32
33
  nextPageToken: res.nextPageToken
33
34
  };
34
35
  }
35
36
  /**
37
+ * Decodes market rows, skipping any whose symbolId the catalog cannot resolve
38
+ * (unknown or disabled pairs the backend still reports). Other errors propagate.
39
+ */
40
+ #decodeMarkets(markets) {
41
+ const decoded = [];
42
+ const skipped = [];
43
+ for (const m of markets) try {
44
+ decoded.push(parse(this.#marketOverviewSchema, m));
45
+ } catch (error) {
46
+ if (error instanceof CatalogLookupError && error.domain === "market" && error.lookup === "symbolId") {
47
+ skipped.push(m.symbolId);
48
+ continue;
49
+ }
50
+ throw error;
51
+ }
52
+ if (skipped.length > 0 && isDev()) console.warn(`[market-overview] skipped ${skipped.length} row(s) with unknown symbolId: ${skipped.join(", ")}`);
53
+ return decoded;
54
+ }
55
+ /**
36
56
  * Subscribes to public:spot:market_overview:updates:proto, fetches an initial snapshot, buffers updates until ready, and emits the merged set of latest market rows. On reconnect it refetches the snapshot before resuming updates.
37
57
  */
38
58
  subscribe(input) {
@@ -41,7 +61,7 @@ var MarketOverviewService = class {
41
61
  const includeSparklines = input.includeSparklines ?? true;
42
62
  const sparklineIntervals = input.sparklineIntervals ?? ["24h"];
43
63
  const listMarketOverview = this.list.bind(this);
44
- const schema = this.#marketOverviewSchema;
64
+ const parseMarkets = this.#decodeMarkets.bind(this);
45
65
  function emit() {
46
66
  input.onEvent(Array.from(bySymbolId.values()));
47
67
  }
@@ -51,11 +71,9 @@ var MarketOverviewService = class {
51
71
  function applyMarkets(markets) {
52
72
  for (const market of markets) handleMarketUpdate(market);
53
73
  }
54
- function parseMarkets(markets) {
55
- return markets.map((m) => parse(schema, m));
56
- }
57
74
  async function fetchSnapshot() {
58
75
  return (await listMarketOverview({
76
+ symbolIds: input.symbolIds,
59
77
  includeSparklines,
60
78
  sparklineIntervals
61
79
  })).markets;
@@ -1 +1 @@
1
- {"version":3,"file":"market-overview.js","names":["#client","Proto.MarketOverviewService","#realtime","#scales","#marketOverviewSchema","Proto.MarketOverviewBatchSchema"],"sources":["../../../src/services/market-overview/market-overview.ts"],"sourcesContent":["import * as Proto from \"../../gen/marketoverview/v1/marketoverview_pb.js\";\nimport { createClient, type Client } from \"@connectrpc/connect\";\nimport * as v from \"valibot\";\nimport { parse } from \"../../shared/validation.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport type { PublicApiTransports } from \"../../shared/transports.js\";\nimport {\n ListMarketOverviewInputSchema,\n createMarketOverviewSchema,\n type SparklineIntervalName,\n type ListMarketOverviewInput,\n type MarketOverview,\n} from \"./market-overview.schemas.js\";\n\ninterface SubscribeMarketOverviewInput extends BaseSubscribeInput<MarketOverview[]> {\n includeSparklines?: boolean;\n sparklineIntervals?: SparklineIntervalName[];\n}\n\n/**\n * Provides ticker-style per-market stats and a live merged overview stream.\n */\nexport class MarketOverviewService {\n #client: Client<typeof Proto.MarketOverviewService>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #marketOverviewSchema: ReturnType<typeof createMarketOverviewSchema>;\n\n constructor(transports: PublicApiTransports, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(Proto.MarketOverviewService, transports.publicApi);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#marketOverviewSchema = createMarketOverviewSchema(scales);\n }\n\n /**\n * Returns market overview rows with last and index prices, 24h stats, top-of-book values, listing timestamp, and optional sparklines. Supports symbol ID filtering, sorting, pagination, and sparkline interval selection.\n */\n async list(\n input: ListMarketOverviewInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ markets: MarketOverview[]; nextPageToken: string }> {\n const validatedInput = parse(ListMarketOverviewInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.listMarketOverview(\n validatedInput,\n toConnectCallOptions(options),\n );\n return {\n markets: parse(v.array(this.#marketOverviewSchema), res.markets),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Subscribes to public:spot:market_overview:updates:proto, fetches an initial snapshot, buffers updates until ready, and emits the merged set of latest market rows. On reconnect it refetches the snapshot before resuming updates.\n */\n subscribe(input: SubscribeMarketOverviewInput): () => void {\n const channel = \"public:spot:market_overview:updates:proto\";\n const bySymbolId = new Map<number, MarketOverview>();\n const includeSparklines = input.includeSparklines ?? true;\n const sparklineIntervals = input.sparklineIntervals ?? [\"24h\"];\n const listMarketOverview = this.list.bind(this);\n const schema = this.#marketOverviewSchema;\n function emit(): void {\n input.onEvent(Array.from(bySymbolId.values()));\n }\n\n function handleMarketUpdate(m: MarketOverview): void {\n bySymbolId.set(m.symbolId, m);\n }\n\n function applyMarkets(markets: readonly MarketOverview[]): void {\n for (const market of markets) {\n handleMarketUpdate(market);\n }\n }\n\n function parseMarkets(markets: readonly Proto.MarketOverview[]): MarketOverview[] {\n return markets.map((m) => parse(schema, m));\n }\n\n async function fetchSnapshot(): Promise<MarketOverview[]> {\n const result = await listMarketOverview({\n includeSparklines,\n sparklineIntervals,\n });\n return result.markets;\n }\n\n const stream = snapshotThenStream({\n realtime: this.#realtime,\n channel,\n schema: Proto.MarketOverviewBatchSchema,\n maxBufferedPublications: 2000,\n snapshotErrorLog: \"Failed to fetch market overview\",\n fetchSnapshot,\n readPublication: (batch) => batch.markets ?? [],\n bufferPublicationKey: (market) => market.symbolId,\n applySnapshot: (markets, bufferedMarkets) => {\n bySymbolId.clear();\n applyMarkets(markets);\n applyMarkets(parseMarkets(bufferedMarkets));\n emit();\n },\n applyLivePublications: (markets) => {\n applyMarkets(parseMarkets(markets));\n emit();\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n function dispose(): void {\n stream.unsubscribe();\n }\n\n return dispose;\n }\n}\n"],"mappings":";;;;;;;;;;;AA6BA,IAAa,wBAAb,MAAmC;CAC/B;CACA;CACA;CACA;CAEA,YAAY,YAAiC,UAA6B,QAAmB;EACzF,KAAKA,UAAU,aAAaC,yBAA6B,WAAW,SAAS;EAC7E,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,wBAAwB,2BAA2B,MAAM;CAClE;;;;CAKA,MAAM,KACF,QAAiC,CAAC,GAClC,SAC6D;EAC7D,MAAM,iBAAiB,MAAM,+BAA+B,KAAK;EACjE,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,mBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,SAAS,MAAM,EAAE,MAAM,KAAKI,qBAAqB,GAAG,IAAI,OAAO;GAC/D,eAAe,IAAI;EACvB;CACJ;;;;CAKA,UAAU,OAAiD;EACvD,MAAM,UAAU;EAChB,MAAM,6BAAa,IAAI,IAA4B;EACnD,MAAM,oBAAoB,MAAM,qBAAqB;EACrD,MAAM,qBAAqB,MAAM,sBAAsB,CAAC,KAAK;EAC7D,MAAM,qBAAqB,KAAK,KAAK,KAAK,IAAI;EAC9C,MAAM,SAAS,KAAKA;EACpB,SAAS,OAAa;GAClB,MAAM,QAAQ,MAAM,KAAK,WAAW,OAAO,CAAC,CAAC;EACjD;EAEA,SAAS,mBAAmB,GAAyB;GACjD,WAAW,IAAI,EAAE,UAAU,CAAC;EAChC;EAEA,SAAS,aAAa,SAA0C;GAC5D,KAAK,MAAM,UAAU,SACjB,mBAAmB,MAAM;EAEjC;EAEA,SAAS,aAAa,SAA4D;GAC9E,OAAO,QAAQ,KAAK,MAAM,MAAM,QAAQ,CAAC,CAAC;EAC9C;EAEA,eAAe,gBAA2C;GAKtD,QAAO,MAJc,mBAAmB;IACpC;IACA;GACJ,CAAC,EAAA,CACa;EAClB;EAEA,MAAM,SAAS,mBAAmB;GAC9B,UAAU,KAAKF;GACf;GACA,QAAQG;GACR,yBAAyB;GACzB,kBAAkB;GAClB;GACA,kBAAkB,UAAU,MAAM,WAAW,CAAC;GAC9C,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,SAAS,oBAAoB;IACzC,WAAW,MAAM;IACjB,aAAa,OAAO;IACpB,aAAa,aAAa,eAAe,CAAC;IAC1C,KAAK;GACT;GACA,wBAAwB,YAAY;IAChC,aAAa,aAAa,OAAO,CAAC;IAClC,KAAK;GACT;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,SAAS,UAAgB;GACrB,OAAO,YAAY;EACvB;EAEA,OAAO;CACX;AACJ"}
1
+ {"version":3,"file":"market-overview.js","names":["#client","Proto.MarketOverviewService","#realtime","#scales","#marketOverviewSchema","#decodeMarkets","Proto.MarketOverviewBatchSchema"],"sources":["../../../src/services/market-overview/market-overview.ts"],"sourcesContent":["import * as Proto from \"../../gen/marketoverview/v1/marketoverview_pb.js\";\nimport { createClient, type Client } from \"@connectrpc/connect\";\nimport { parse } from \"../../shared/validation.js\";\nimport { CatalogLookupError } from \"../../catalogs/types.js\";\nimport { isDev } from \"../../utils/is-dev.js\";\nimport type { PolyesterRealtime } from \"../../realtime/types.js\";\nimport { snapshotThenStream } from \"../../realtime/snapshot-then-stream.js\";\nimport type { BaseSubscribeInput } from \"../../shared/types.js\";\nimport {\n toConnectCallOptions,\n type PolyesterRequestOptions,\n} from \"../../shared/request-options.js\";\nimport type { SdkScales } from \"../../shared/decimal-surface.js\";\nimport type { PublicApiTransports } from \"../../shared/transports.js\";\nimport {\n ListMarketOverviewInputSchema,\n createMarketOverviewSchema,\n type SparklineIntervalName,\n type ListMarketOverviewInput,\n type MarketOverview,\n} from \"./market-overview.schemas.js\";\n\ninterface SubscribeMarketOverviewInput extends BaseSubscribeInput<MarketOverview[]> {\n symbolIds?: number[];\n includeSparklines?: boolean;\n sparklineIntervals?: SparklineIntervalName[];\n}\n\n/**\n * Provides ticker-style per-market stats and a live merged overview stream.\n */\nexport class MarketOverviewService {\n #client: Client<typeof Proto.MarketOverviewService>;\n #realtime: PolyesterRealtime;\n #scales: SdkScales;\n #marketOverviewSchema: ReturnType<typeof createMarketOverviewSchema>;\n\n constructor(transports: PublicApiTransports, realtime: PolyesterRealtime, scales: SdkScales) {\n this.#client = createClient(Proto.MarketOverviewService, transports.publicApi);\n this.#realtime = realtime;\n this.#scales = scales;\n this.#marketOverviewSchema = createMarketOverviewSchema(scales);\n }\n\n /**\n * Returns market overview rows with last and index prices, 24h stats, top-of-book values, listing timestamp, and optional sparklines. Supports symbol ID filtering, sorting, pagination, and sparkline interval selection.\n */\n async list(\n input: ListMarketOverviewInput = {},\n options?: PolyesterRequestOptions,\n ): Promise<{ markets: MarketOverview[]; nextPageToken: string }> {\n const validatedInput = parse(ListMarketOverviewInputSchema, input);\n await this.#scales.ready();\n const res = await this.#client.listMarketOverview(\n validatedInput,\n toConnectCallOptions(options),\n );\n return {\n markets: this.#decodeMarkets(res.markets),\n nextPageToken: res.nextPageToken,\n };\n }\n\n /**\n * Decodes market rows, skipping any whose symbolId the catalog cannot resolve\n * (unknown or disabled pairs the backend still reports). Other errors propagate.\n */\n #decodeMarkets(markets: readonly Proto.MarketOverview[]): MarketOverview[] {\n const decoded: MarketOverview[] = [];\n const skipped: number[] = [];\n for (const m of markets) {\n try {\n decoded.push(parse(this.#marketOverviewSchema, m));\n } catch (error) {\n if (\n error instanceof CatalogLookupError &&\n error.domain === \"market\" &&\n error.lookup === \"symbolId\"\n ) {\n skipped.push(m.symbolId);\n continue;\n }\n throw error;\n }\n }\n if (skipped.length > 0 && isDev()) {\n console.warn(\n `[market-overview] skipped ${skipped.length} row(s) with unknown symbolId: ${skipped.join(\", \")}`,\n );\n }\n return decoded;\n }\n\n /**\n * Subscribes to public:spot:market_overview:updates:proto, fetches an initial snapshot, buffers updates until ready, and emits the merged set of latest market rows. On reconnect it refetches the snapshot before resuming updates.\n */\n subscribe(input: SubscribeMarketOverviewInput): () => void {\n const channel = \"public:spot:market_overview:updates:proto\";\n const bySymbolId = new Map<number, MarketOverview>();\n const includeSparklines = input.includeSparklines ?? true;\n const sparklineIntervals = input.sparklineIntervals ?? [\"24h\"];\n const listMarketOverview = this.list.bind(this);\n const parseMarkets = this.#decodeMarkets.bind(this);\n function emit(): void {\n input.onEvent(Array.from(bySymbolId.values()));\n }\n\n function handleMarketUpdate(m: MarketOverview): void {\n bySymbolId.set(m.symbolId, m);\n }\n\n function applyMarkets(markets: readonly MarketOverview[]): void {\n for (const market of markets) {\n handleMarketUpdate(market);\n }\n }\n\n async function fetchSnapshot(): Promise<MarketOverview[]> {\n const result = await listMarketOverview({\n symbolIds: input.symbolIds,\n includeSparklines,\n sparklineIntervals,\n });\n return result.markets;\n }\n\n const stream = snapshotThenStream({\n realtime: this.#realtime,\n channel,\n schema: Proto.MarketOverviewBatchSchema,\n maxBufferedPublications: 2000,\n snapshotErrorLog: \"Failed to fetch market overview\",\n fetchSnapshot,\n readPublication: (batch) => batch.markets ?? [],\n bufferPublicationKey: (market) => market.symbolId,\n applySnapshot: (markets, bufferedMarkets) => {\n bySymbolId.clear();\n applyMarkets(markets);\n applyMarkets(parseMarkets(bufferedMarkets));\n emit();\n },\n applyLivePublications: (markets) => {\n applyMarkets(parseMarkets(markets));\n emit();\n },\n onOpen: input.onOpen,\n onClose: input.onClose,\n onError: input.onError,\n });\n\n function dispose(): void {\n stream.unsubscribe();\n }\n\n return dispose;\n }\n}\n"],"mappings":";;;;;;;;;;;;AA+BA,IAAa,wBAAb,MAAmC;CAC/B;CACA;CACA;CACA;CAEA,YAAY,YAAiC,UAA6B,QAAmB;EACzF,KAAKA,UAAU,aAAaC,yBAA6B,WAAW,SAAS;EAC7E,KAAKC,YAAY;EACjB,KAAKC,UAAU;EACf,KAAKC,wBAAwB,2BAA2B,MAAM;CAClE;;;;CAKA,MAAM,KACF,QAAiC,CAAC,GAClC,SAC6D;EAC7D,MAAM,iBAAiB,MAAM,+BAA+B,KAAK;EACjE,MAAM,KAAKD,QAAQ,MAAM;EACzB,MAAM,MAAM,MAAM,KAAKH,QAAQ,mBAC3B,gBACA,qBAAqB,OAAO,CAChC;EACA,OAAO;GACH,SAAS,KAAKK,eAAe,IAAI,OAAO;GACxC,eAAe,IAAI;EACvB;CACJ;;;;;CAMA,eAAe,SAA4D;EACvE,MAAM,UAA4B,CAAC;EACnC,MAAM,UAAoB,CAAC;EAC3B,KAAK,MAAM,KAAK,SACZ,IAAI;GACA,QAAQ,KAAK,MAAM,KAAKD,uBAAuB,CAAC,CAAC;EACrD,SAAS,OAAO;GACZ,IACI,iBAAiB,sBACjB,MAAM,WAAW,YACjB,MAAM,WAAW,YACnB;IACE,QAAQ,KAAK,EAAE,QAAQ;IACvB;GACJ;GACA,MAAM;EACV;EAEJ,IAAI,QAAQ,SAAS,KAAK,MAAM,GAC5B,QAAQ,KACJ,6BAA6B,QAAQ,OAAO,iCAAiC,QAAQ,KAAK,IAAI,GAClG;EAEJ,OAAO;CACX;;;;CAKA,UAAU,OAAiD;EACvD,MAAM,UAAU;EAChB,MAAM,6BAAa,IAAI,IAA4B;EACnD,MAAM,oBAAoB,MAAM,qBAAqB;EACrD,MAAM,qBAAqB,MAAM,sBAAsB,CAAC,KAAK;EAC7D,MAAM,qBAAqB,KAAK,KAAK,KAAK,IAAI;EAC9C,MAAM,eAAe,KAAKC,eAAe,KAAK,IAAI;EAClD,SAAS,OAAa;GAClB,MAAM,QAAQ,MAAM,KAAK,WAAW,OAAO,CAAC,CAAC;EACjD;EAEA,SAAS,mBAAmB,GAAyB;GACjD,WAAW,IAAI,EAAE,UAAU,CAAC;EAChC;EAEA,SAAS,aAAa,SAA0C;GAC5D,KAAK,MAAM,UAAU,SACjB,mBAAmB,MAAM;EAEjC;EAEA,eAAe,gBAA2C;GAMtD,QAAO,MALc,mBAAmB;IACpC,WAAW,MAAM;IACjB;IACA;GACJ,CAAC,EAAA,CACa;EAClB;EAEA,MAAM,SAAS,mBAAmB;GAC9B,UAAU,KAAKH;GACf;GACA,QAAQI;GACR,yBAAyB;GACzB,kBAAkB;GAClB;GACA,kBAAkB,UAAU,MAAM,WAAW,CAAC;GAC9C,uBAAuB,WAAW,OAAO;GACzC,gBAAgB,SAAS,oBAAoB;IACzC,WAAW,MAAM;IACjB,aAAa,OAAO;IACpB,aAAa,aAAa,eAAe,CAAC;IAC1C,KAAK;GACT;GACA,wBAAwB,YAAY;IAChC,aAAa,aAAa,OAAO,CAAC;IAClC,KAAK;GACT;GACA,QAAQ,MAAM;GACd,SAAS,MAAM;GACf,SAAS,MAAM;EACnB,CAAC;EAED,SAAS,UAAgB;GACrB,OAAO,YAAY;EACvB;EAEA,OAAO;CACX;AACJ"}
@@ -1,5 +1,5 @@
1
1
  import { FailureReason, LimiterScope, PolicyClass, RefillModel } from "../../gen/polyester/ratelimit/v1/types_pb.js";
2
- import { BatchReplaceAdmissionStatus, BatchReplaceItemAdmissionStatus, ErrorCode, FeeAsset, LimitFok, LimitGtc, LimitIoc, MarketIoc, RiskLimitGtc, RiskMarketIoc, SelfTradePreventionMode, Side } from "../../gen/orders/v1/orders_pb.js";
2
+ import { BatchCancelResultItem_Status, BatchReplaceAdmissionStatus, BatchReplaceItemAdmissionStatus, CancelAllAfterResponse_Status, ErrorCode, FeeAsset, LimitFok, LimitGtc, LimitIoc, MarketIoc, RiskLimitGtc, RiskMarketIoc, SelfTradePreventionMode, Side } from "../../gen/orders/v1/orders_pb.js";
3
3
  import { BatchReplacePhase, OrderStatus } from "../../gen/orders/v1/orders_read_pb.js";
4
4
  import { AccountScopeInputEntries } from "../../shared/account-scope.js";
5
5
  import { SdkScales } from "../../shared/decimal-surface.js";
@@ -31,12 +31,12 @@ declare const CancelAllAfterInputSchema: v.SchemaWithPipe<readonly [v.StrictObje
31
31
  }>]>;
32
32
  type CancelAllAfterInput = v.InferInput<typeof CancelAllAfterInputSchema>;
33
33
  declare const CancelAllAfterResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
34
- readonly status: v.PicklistSchema<["armed", "disabled"], undefined>;
34
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof CancelAllAfterResponse_Status, undefined>, v.TransformAction<CancelAllAfterResponse_Status, "unspecified" | "disabled" | "armed">]>;
35
35
  readonly effectiveTimeoutSec: v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 0, undefined>]>;
36
36
  readonly expiresAtTsNs: v.BigintSchema<undefined>;
37
37
  readonly tsNs: v.BigintSchema<undefined>;
38
38
  }, undefined>, v.TransformAction<{
39
- status: "disabled" | "armed";
39
+ status: "unspecified" | "disabled" | "armed";
40
40
  effectiveTimeoutSec: number;
41
41
  expiresAtTsNs: bigint;
42
42
  tsNs: bigint;
@@ -45,7 +45,7 @@ declare const CancelAllAfterResultSchema: v.SchemaWithPipe<readonly [v.ObjectSch
45
45
  expiresAtNs: string;
46
46
  ts: number;
47
47
  tsNs: string;
48
- status: "disabled" | "armed";
48
+ status: "unspecified" | "disabled" | "armed";
49
49
  effectiveTimeoutSec: number;
50
50
  }>]>;
51
51
  type CancelAllAfterResult = v.InferOutput<typeof CancelAllAfterResultSchema>;
@@ -3329,7 +3329,7 @@ declare const BatchCancelOrdersInputSchema: v.SchemaWithPipe<readonly [v.StrictO
3329
3329
  }>]>;
3330
3330
  type BatchCancelOrdersInput = v.InferInput<typeof BatchCancelOrdersInputSchema>;
3331
3331
  declare const BatchCancelOrderResultSchema: v.ObjectSchema<{
3332
- readonly status: v.PicklistSchema<["accepted", "rejected"], undefined>;
3332
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof BatchCancelResultItem_Status, undefined>, v.TransformAction<BatchCancelResultItem_Status, "unspecified" | "accepted" | "rejected">]>;
3333
3333
  readonly orderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
3334
3334
  readonly clientOrderId: v.StringSchema<undefined>;
3335
3335
  readonly code: v.StringSchema<undefined>;
@@ -3356,7 +3356,7 @@ declare const BatchCancelOrderResultSchema: v.ObjectSchema<{
3356
3356
  type BatchCancelOrderResult = v.InferOutput<typeof BatchCancelOrderResultSchema>;
3357
3357
  declare const BatchCancelOrdersResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
3358
3358
  readonly results: v.ArraySchema<v.ObjectSchema<{
3359
- readonly status: v.PicklistSchema<["accepted", "rejected"], undefined>;
3359
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof BatchCancelResultItem_Status, undefined>, v.TransformAction<BatchCancelResultItem_Status, "unspecified" | "accepted" | "rejected">]>;
3360
3360
  readonly orderId: v.SchemaWithPipe<readonly [v.OptionalSchema<v.BigintSchema<undefined>, undefined>, v.TransformAction<bigint | undefined, string | undefined>]>;
3361
3361
  readonly clientOrderId: v.StringSchema<undefined>;
3362
3362
  readonly code: v.StringSchema<undefined>;
@@ -3385,7 +3385,7 @@ declare const BatchCancelOrdersResultSchema: v.SchemaWithPipe<readonly [v.Object
3385
3385
  readonly tsNs: v.BigintSchema<undefined>;
3386
3386
  }, undefined>, v.CheckAction<{
3387
3387
  results: {
3388
- status: "accepted" | "rejected";
3388
+ status: "unspecified" | "accepted" | "rejected";
3389
3389
  orderId?: string | undefined;
3390
3390
  clientOrderId: string;
3391
3391
  code: string;
@@ -3414,7 +3414,7 @@ declare const BatchCancelOrdersResultSchema: v.SchemaWithPipe<readonly [v.Object
3414
3414
  tsNs: bigint;
3415
3415
  }, "Batch cancel result counts do not match the returned results.">, v.TransformAction<{
3416
3416
  results: {
3417
- status: "accepted" | "rejected";
3417
+ status: "unspecified" | "accepted" | "rejected";
3418
3418
  orderId?: string | undefined;
3419
3419
  clientOrderId: string;
3420
3420
  code: string;
@@ -3445,7 +3445,7 @@ declare const BatchCancelOrdersResultSchema: v.SchemaWithPipe<readonly [v.Object
3445
3445
  ts: number;
3446
3446
  tsNs: string;
3447
3447
  results: {
3448
- status: "accepted" | "rejected";
3448
+ status: "unspecified" | "accepted" | "rejected";
3449
3449
  orderId?: string | undefined;
3450
3450
  clientOrderId: string;
3451
3451
  code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"orders-batch.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-batch.schemas.ts"],"mappings":";;;;;;;;cAuDa,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAc1B,sBAAsB,EAAE,kBAAkB;cAEzC,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;KAgB3B,uBAAuB,EAAE,mBAAmB;iBAExC,mCAAmC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBxD,yBAAyB,EAAE,WACnC,kBAAkB;iBA4BN,oCAAoC,QAAQ,WAAW,sBAAmB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsD9E,0BAA0B,EAAE,YACpC,kBAAkB;KAEV,yBAAyB;KAkIzB;EACR,UAAU,EAAE,kBAAkB,yBAAyB;EACvD;EACA;EACA,OAAO;IACH;IACA;IACA;IACA;IACA,OAAO,EAAE,WAAW,kBAAkB;IACtC;IACA;;;cAIF,iCAA+B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BzB,4BAA4B,EAAE,mBAAmB;cAEhD,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkC/B,2BAA2B,EAAE,mBAAmB;cAE/C,kCAAgC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAcjC,6BAA6B,EAAE,kBAAkB;cAwChD,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqClC,8BAA8B,EAAE,mBAAmB;cAEzD,6BAA2B,EAAA,aAAA,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAmBrB,wBAAwB,EAAE,kBAAkB;cAE3C,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgB7B,yBAAyB,EAAE,kBAAkB;cAEnD,8BAA4B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAQtB,yBAAyB,EAAE,mBAAmB;cAE7C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkB9B,0BAA0B,EAAE,mBAAmB"}
1
+ {"version":3,"file":"orders-batch.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-batch.schemas.ts"],"mappings":";;;;;;;;cAyDa,2BAAyB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAc1B,sBAAsB,EAAE,kBAAkB;cAEzC,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;KA0B3B,uBAAuB,EAAE,mBAAmB;iBAExC,mCAAmC,QAAQ,YAAS,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAwBxD,yBAAyB,EAAE,WACnC,kBAAkB;iBA4BN,oCAAoC,QAAQ,WAAW,sBAAmB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAsD9E,0BAA0B,EAAE,YACpC,kBAAkB;KAEV,yBAAyB;KAkIzB;EACR,UAAU,EAAE,kBAAkB,yBAAyB;EACvD;EACA;EACA,OAAO;IACH;IACA;IACA;IACA;IACA,OAAO,EAAE,WAAW,kBAAkB;IACtC;IACA;;;cAIF,iCAA+B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BzB,4BAA4B,EAAE,mBAAmB;cAEhD,gCAA8B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkC/B,2BAA2B,EAAE,mBAAmB;cAE/C,kCAAgC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAcjC,6BAA6B,EAAE,kBAAkB;cAwChD,mCAAiC,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAqClC,8BAA8B,EAAE,mBAAmB;cAEzD,6BAA2B,EAAA,aAAA,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAmBrB,wBAAwB,EAAE,kBAAkB;cAE3C,8BAA4B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAgB7B,yBAAyB,EAAE,kBAAkB;cAEnD,8BAA4B,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;KAkBtB,yBAAyB,EAAE,mBAAmB;cAE7C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAkB9B,0BAA0B,EAAE,mBAAmB"}
@@ -1,4 +1,4 @@
1
- import { BatchReplaceAdmissionStatus, BatchReplaceItemAdmissionStatus, RiskPolicySchema } from "../../gen/orders/v1/orders_pb.js";
1
+ import { BatchCancelResultItem_Status, BatchReplaceAdmissionStatus, BatchReplaceItemAdmissionStatus, CancelAllAfterResponse_Status, RiskPolicySchema } from "../../gen/orders/v1/orders_pb.js";
2
2
  import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
3
3
  import { formatId } from "../../utils/base58-id.js";
4
4
  import { tsNsToMs } from "../../utils/time.js";
@@ -8,7 +8,7 @@ import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shar
8
8
  import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
9
9
  import { BatchReplacePhase, OrderStatus } from "../../gen/orders/v1/orders_read_pb.js";
10
10
  import { OrderSideCodec } from "./order-enums.codecs.js";
11
- import { BatchReplaceAdmissionStatusCodec, BatchReplaceItemAdmissionStatusCodec, BatchReplacePhaseCodec, OrderStatusCodec } from "./orders.codecs.js";
11
+ import { BatchCancelOrderStatusCodec, BatchReplaceAdmissionStatusCodec, BatchReplaceItemAdmissionStatusCodec, BatchReplacePhaseCodec, CancelAllAfterStatusCodec, OrderStatusCodec } from "./orders.codecs.js";
12
12
  import { OrderErrorDetailSchema } from "./order-errors.schemas.js";
13
13
  import { createRequiredRiskPolicyInputSchema } from "./orders-risk.schemas.js";
14
14
  import { ClientOrderIdInputSchema, OrderRequestIdInputSchema, positiveOrderIdInputSchema } from "./orders-identifiers.schemas.js";
@@ -32,7 +32,7 @@ const CancelAllAfterInputSchema = v.pipe(v.strictObject({
32
32
  subaccountId: accountScopeToSubaccountId(account)
33
33
  })));
34
34
  const CancelAllAfterResultSchema = v.pipe(v.object({
35
- status: v.picklist(["armed", "disabled"]),
35
+ status: v.pipe(v.enum(CancelAllAfterResponse_Status), v.transform((status) => requiredEnumLabel(CancelAllAfterStatusCodec.protoToOutput, status, "CancelAllAfterResultSchema", "status"))),
36
36
  effectiveTimeoutSec: v.pipe(v.number(), v.integer(), v.minValue(0)),
37
37
  expiresAtTsNs: v.bigint(),
38
38
  tsNs: v.bigint()
@@ -267,7 +267,7 @@ const BatchCancelOrdersInputSchema = v.pipe(v.strictObject({
267
267
  subaccountId: accountScopeToSubaccountId(account)
268
268
  })));
269
269
  const BatchCancelOrderResultSchema = v.object({
270
- status: v.picklist(["accepted", "rejected"]),
270
+ status: v.pipe(v.enum(BatchCancelResultItem_Status), v.transform((status) => requiredEnumLabel(BatchCancelOrderStatusCodec.protoToOutput, status, "BatchCancelOrderResultSchema", "status"))),
271
271
  orderId: OptionalPublicIdSchema,
272
272
  clientOrderId: v.string(),
273
273
  code: v.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"orders-batch.schemas.js","names":["ProtoWrite.RiskPolicySchema","ProtoWrite.BatchReplaceItemAdmissionStatus","ProtoWrite.BatchReplaceAdmissionStatus","ProtoRead.BatchReplacePhase","ProtoRead.OrderStatus"],"sources":["../../../src/services/orders/orders-batch.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { OptionalPublicIdSchema, PublicIdSchema, idInputSchema } from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SideSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n BatchReplaceAdmissionStatusCodec,\n BatchReplaceItemAdmissionStatusCodec,\n BatchReplacePhaseCodec,\n OrderStatusCodec,\n OrderSideCodec,\n} from \"./orders.codecs.js\";\nimport { createOrderIntentInputSchema } from \"./orders-input.schemas.js\";\nimport { createRequiredRiskPolicyInputSchema } from \"./orders-risk.schemas.js\";\nimport {\n ClientOrderIdInputSchema,\n positiveOrderIdInputSchema,\n OrderRequestIdInputSchema,\n} from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst BatchCountSchema = v.pipe(v.number(), v.integer(), v.minValue(0));\nconst BatchItemIndexSchema = v.pipe(v.number(), v.integer(), v.minValue(0));\nconst PositivePublicIdSchema = v.pipe(\n v.bigint(),\n v.gtValue(0n),\n v.transform((value) => formatId(value)),\n);\nconst OptionalSideInputSchema = v.pipe(\n v.optional(SideSchema),\n v.transform((side) => (side ? OrderSideCodec.inputToProto[side] : undefined)),\n);\n\nconst CancelAllAfterTimeoutInputSchema = v.pipe(\n v.number(),\n v.integer(),\n v.check(\n (timeoutSec) => timeoutSec === 0 || (timeoutSec >= 10 && timeoutSec <= 120),\n \"timeoutSec must be 0 to disable or between 10 and 120 seconds to arm\",\n ),\n);\n\nexport const CancelAllAfterInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n timeoutSec: CancelAllAfterTimeoutInputSchema,\n symbolId: v.optional(SymbolIdInputSchema),\n side: OptionalSideInputSchema,\n requestId: v.optional(OrderRequestIdInputSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllAfterInput = v.InferInput<typeof CancelAllAfterInputSchema>;\n\nexport const CancelAllAfterResultSchema = v.pipe(\n v.object({\n status: v.picklist([\"armed\", \"disabled\"]),\n effectiveTimeoutSec: v.pipe(v.number(), v.integer(), v.minValue(0)),\n expiresAtTsNs: v.bigint(),\n tsNs: v.bigint(),\n }),\n v.transform(({ expiresAtTsNs, tsNs, ...result }) => ({\n ...result,\n expiresAt: tsNsToMs(expiresAtTsNs),\n expiresAtNs: expiresAtTsNs.toString(),\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelAllAfterResult = v.InferOutput<typeof CancelAllAfterResultSchema>;\n\nexport function createBatchCreateOrdersInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(createOrderIntentInputSchema(scales)),\n v.minLength(1, \"At least one order is required.\"),\n v.maxLength(20, \"Batch create accepts at most 20 orders.\"),\n ),\n }),\n v.check((input) => {\n const clientOrderIds = input.items\n .map((item) => item.clientOrderId)\n .filter((clientOrderId) => clientOrderId !== undefined && clientOrderId !== \"\");\n return new Set(clientOrderIds).size === clientOrderIds.length;\n }, \"Each non-empty batch create clientOrderId must be unique.\"),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n );\n}\n\nexport type BatchCreateOrdersInput = v.InferInput<\n ReturnType<typeof createBatchCreateOrdersInputSchema>\n>;\n\nconst BatchCreateOrderResultRawSchema = v.object({\n clientOrderId: v.string(),\n outcome: v.variant(\"case\", [\n v.object({\n case: v.literal(\"accepted\"),\n value: v.object({\n orderId: PublicIdSchema,\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n }),\n }),\n v.object({\n case: v.literal(\"rejected\"),\n value: v.object({\n // The server may reject without a structured detail (e.g. capacity\n // limits); surface the rejection instead of failing the parse.\n error: v.optional(OrderErrorDetailSchema),\n }),\n }),\n ]),\n});\n\nexport function createBatchCreateOrdersResultSchema(scales: SdkScales, symbolIds: number[]) {\n return v.pipe(\n v.object({\n results: v.array(BatchCreateOrderResultRawSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n tsNs: v.bigint(),\n }),\n v.check(\n (response) =>\n response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch create result counts do not match the returned results.\",\n ),\n v.check(\n (response) => response.results.length === symbolIds.length,\n \"Batch create result count does not match the submitted item count.\",\n ),\n v.transform(({ tsNs, ...response }) => ({\n ...response,\n results: response.results.map(({ clientOrderId, outcome }, index) => {\n if (outcome.case === \"rejected\") {\n return {\n status: \"rejected\" as const,\n clientOrderId,\n error: outcome.value.error,\n };\n }\n const { resolvedBaseQtyScaled, submittedMaxQuoteDebitScaled, ...accepted } =\n outcome.value;\n const symbolId = symbolIds[index]!;\n return {\n status: \"accepted\" as const,\n clientOrderId,\n ...accepted,\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbolId),\n ),\n }),\n };\n }),\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n );\n}\n\nexport type BatchCreateOrdersResult = v.InferOutput<\n ReturnType<typeof createBatchCreateOrdersResultSchema>\n>;\nexport type BatchCreateOrderResult = BatchCreateOrdersResult[\"results\"][number];\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\nconst BATCH_REPLACE_ITEM_INPUT_KEYS = new Set([\n \"orderId\",\n \"clientOrderId\",\n \"newPrice\",\n \"newQty\",\n \"risk\",\n \"clearRisk\",\n \"newClientOrderId\",\n]);\n\nexport function assertKnownBatchReplaceOrderItemInputKeys(input: object): void {\n for (const key of Object.keys(input)) {\n if (!BATCH_REPLACE_ITEM_INPUT_KEYS.has(key)) {\n throw new Error(`Unknown key \"${key}\" in batch replace order item.`);\n }\n }\n}\n\nconst BatchReplaceTargetInputSchema = v.union([\n v.pipe(\n v.object({\n orderId: v.pipe(\n idInputSchema(\"items.orderId\"),\n v.check((value) => value > 0n, \"items.orderId must be greater than zero\"),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.transform(({ orderId }) => ({\n key: { case: \"orderId\" as const, value: orderId },\n })),\n ),\n v.pipe(\n v.object({\n orderId: v.optional(v.never()),\n clientOrderId: ClientOrderIdInputSchema,\n }),\n v.transform(({ clientOrderId }) => ({\n key: { case: \"clientOrderId\" as const, value: clientOrderId },\n })),\n ),\n]);\n\nfunction createBatchReplaceOrderItemInputSchema(scales: SdkScales) {\n const patchSchema = v.union([\n v.object({\n newPrice: DecimalInputStringSchema,\n newQty: v.optional(DecimalInputStringSchema),\n risk: v.optional(createRequiredRiskPolicyInputSchema(scales)),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(DecimalInputStringSchema),\n newQty: DecimalInputStringSchema,\n risk: v.optional(createRequiredRiskPolicyInputSchema(scales)),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(v.never()),\n newQty: v.optional(v.never()),\n risk: createRequiredRiskPolicyInputSchema(scales),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(v.never()),\n newQty: v.optional(v.never()),\n risk: v.optional(v.never()),\n clearRisk: v.literal(true),\n }),\n ]);\n return v.intersect([\n BatchReplaceTargetInputSchema,\n patchSchema,\n v.object({\n newClientOrderId: v.optional(ClientOrderIdInputSchema),\n }),\n ]);\n}\n\nexport function createBatchReplaceOrdersInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbolId: SymbolIdInputSchema,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(createBatchReplaceOrderItemInputSchema(scales)),\n v.minLength(1, \"At least one replacement is required.\"),\n v.maxLength(50, \"Batch replace accepts at most 50 replacements.\"),\n ),\n }),\n v.check((input) => {\n const targets = input.items.map(\n (item) => `${item.key.case}:${item.key.value.toString()}`,\n );\n return new Set(targets).size === targets.length;\n }, \"Each batch replace target must be unique.\"),\n v.transform(({ account, items, ...input }) => {\n return {\n ...input,\n items: items.map((item) => ({\n key: item.key,\n newPriceTicks:\n item.newPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"items.newPrice\",\n item.newPrice,\n scales.price(),\n ),\n newQtyScaled:\n item.newQty === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"items.newQty\",\n item.newQty,\n scales.baseQty(input.symbolId),\n ),\n newAttachedRisk:\n item.clearRisk === true ? create(ProtoWrite.RiskPolicySchema) : item.risk,\n newClientOrderId: item.newClientOrderId ?? \"\",\n })),\n subaccountId: accountScopeToSubaccountId(account),\n };\n }),\n );\n}\n\nexport type BatchReplaceOrdersInput = {\n account?: v.InferInput<typeof AccountScopeInputEntries.account>;\n symbolId: number;\n requestId?: string;\n items: Array<{\n orderId?: string;\n clientOrderId?: string;\n newPrice?: string;\n newQty?: string;\n risk?: v.InferInput<ReturnType<typeof createRequiredRiskPolicyInputSchema>>;\n clearRisk?: boolean;\n newClientOrderId?: string;\n }>;\n};\n\nconst BatchReplaceAdmissionItemSchema = v.pipe(\n v.object({\n itemIndex: BatchItemIndexSchema,\n status: v.pipe(\n v.enum(ProtoWrite.BatchReplaceItemAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceItemAdmissionStatusCodec.protoToOutput,\n status,\n \"BatchReplaceAdmissionItemSchema\",\n \"status\",\n ),\n ),\n ),\n oldOrderId: OptionalPublicIdSchema,\n replacementOrderId: OptionalPublicIdSchema,\n clientOrderId: v.string(),\n code: v.string(),\n error: v.optional(OrderErrorDetailSchema),\n }),\n v.transform((item) => ({\n ...item,\n code: item.code || undefined,\n })),\n);\n\nexport type BatchReplaceAdmissionItem = v.InferOutput<typeof BatchReplaceAdmissionItemSchema>;\n\nexport const BatchReplaceOrdersResultSchema = v.pipe(\n v.object({\n batchRequestId: PositivePublicIdSchema,\n status: v.pipe(\n v.enum(ProtoWrite.BatchReplaceAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceAdmissionStatusCodec.protoToOutput,\n status,\n \"BatchReplaceOrdersResultSchema\",\n \"status\",\n ),\n ),\n ),\n results: v.array(BatchReplaceAdmissionItemSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n acceptedTsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch replace result counts do not match the returned results.\",\n ),\n v.check(\n (response) => response.results.every((item, index) => item.itemIndex === index),\n \"Batch replace results must preserve request item order.\",\n ),\n v.transform(({ acceptedTsNs, ...response }) => ({\n ...response,\n acceptedTs: tsNsToMs(acceptedTsNs),\n acceptedTsNs: acceptedTsNs.toString(),\n })),\n);\n\nexport type BatchReplaceOrdersResult = v.InferOutput<typeof BatchReplaceOrdersResultSchema>;\n\nexport const GetBatchReplaceStatusInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n batchRequestId: v.pipe(\n idInputSchema(\"batchRequestId\"),\n v.check((value) => value > 0n, \"batchRequestId must be greater than zero\"),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type GetBatchReplaceStatusInput = v.InferInput<typeof GetBatchReplaceStatusInputSchema>;\n\nconst BatchReplaceStatusItemSchema = v.pipe(\n v.object({\n itemIndex: BatchItemIndexSchema,\n phase: v.pipe(\n v.enum(ProtoRead.BatchReplacePhase),\n v.transform((phase) =>\n requiredEnumLabel(\n BatchReplacePhaseCodec.protoToOutput,\n phase,\n \"BatchReplaceStatusItemSchema\",\n \"phase\",\n ),\n ),\n ),\n oldOrderId: OptionalPublicIdSchema,\n replacementOrderId: OptionalPublicIdSchema,\n orderStatus: v.pipe(\n v.enum(ProtoRead.OrderStatus),\n v.transform((status) =>\n requiredEnumLabel(\n OrderStatusCodec.protoToOutput,\n status,\n \"BatchReplaceStatusItemSchema\",\n \"order status\",\n ),\n ),\n ),\n code: v.string(),\n updatedTsNs: v.bigint(),\n }),\n v.transform(({ updatedTsNs, ...item }) => ({\n ...item,\n code: item.code || undefined,\n updatedTs: tsNsToMs(updatedTsNs),\n updatedTsNs: updatedTsNs.toString(),\n })),\n);\n\nexport const GetBatchReplaceStatusResultSchema = v.pipe(\n v.object({\n batchRequestId: PositivePublicIdSchema,\n admissionStatus: v.pipe(\n v.enum(ProtoWrite.BatchReplaceAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceAdmissionStatusCodec.protoToOutput,\n status,\n \"GetBatchReplaceStatusResultSchema\",\n \"admission status\",\n ),\n ),\n ),\n items: v.array(BatchReplaceStatusItemSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n acceptedTsNs: v.bigint(),\n updatedTsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.items.length,\n \"Batch replace status counts do not match the returned items.\",\n ),\n v.check(\n (response) => response.items.every((item, index) => item.itemIndex === index),\n \"Batch replace status items must preserve request item order.\",\n ),\n v.transform(({ acceptedTsNs, updatedTsNs, ...response }) => ({\n ...response,\n acceptedTs: tsNsToMs(acceptedTsNs),\n acceptedTsNs: acceptedTsNs.toString(),\n updatedTs: tsNsToMs(updatedTsNs),\n updatedTsNs: updatedTsNs.toString(),\n })),\n);\n\nexport type GetBatchReplaceStatusResult = v.InferOutput<typeof GetBatchReplaceStatusResultSchema>;\n\nconst BatchCancelOrderInputSchema = v.union([\n v.pipe(\n v.strictObject({\n orderId: positiveOrderIdInputSchema(\"items.orderId\"),\n clientOrderId: v.optional(v.never()),\n symbolId: v.optional(SymbolIdInputSchema),\n }),\n v.transform(({ orderId, symbolId }) => ({ orderId, symbolId })),\n ),\n v.pipe(\n v.strictObject({\n orderId: v.optional(v.never()),\n clientOrderId: ClientOrderIdInputSchema,\n symbolId: v.optional(SymbolIdInputSchema),\n }),\n v.transform(({ clientOrderId, symbolId }) => ({ clientOrderId, symbolId })),\n ),\n]);\n\nexport type BatchCancelOrderInput = v.InferInput<typeof BatchCancelOrderInputSchema>;\n\nexport const BatchCancelOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(BatchCancelOrderInputSchema),\n v.minLength(1, \"At least one order is required.\"),\n v.maxLength(50, \"Batch cancel accepts at most 50 orders.\"),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type BatchCancelOrdersInput = v.InferInput<typeof BatchCancelOrdersInputSchema>;\n\nconst BatchCancelOrderResultSchema = v.object({\n status: v.picklist([\"accepted\", \"rejected\"]),\n orderId: OptionalPublicIdSchema,\n clientOrderId: v.string(),\n code: v.string(),\n error: v.optional(OrderErrorDetailSchema),\n});\n\nexport type BatchCancelOrderResult = v.InferOutput<typeof BatchCancelOrderResultSchema>;\n\nexport const BatchCancelOrdersResultSchema = v.pipe(\n v.object({\n results: v.array(BatchCancelOrderResultSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n tsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch cancel result counts do not match the returned results.\",\n ),\n v.transform(({ tsNs, ...response }) => ({\n ...response,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type BatchCancelOrdersResult = v.InferOutput<typeof BatchCancelOrdersResultSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"orders-batch.schemas.js","names":["ProtoWrite.CancelAllAfterResponse_Status","ProtoWrite.RiskPolicySchema","ProtoWrite.BatchReplaceItemAdmissionStatus","ProtoWrite.BatchReplaceAdmissionStatus","ProtoRead.BatchReplacePhase","ProtoRead.OrderStatus","ProtoWrite.BatchCancelResultItem_Status"],"sources":["../../../src/services/orders/orders-batch.schemas.ts"],"sourcesContent":["import * as ProtoWrite from \"../../gen/orders/v1/orders_pb.js\";\nimport * as ProtoRead from \"../../gen/orders/v1/orders_read_pb.js\";\nimport { create } from \"@bufbuild/protobuf\";\nimport * as v from \"valibot\";\nimport {\n AccountScopeInputEntries,\n accountScopeToSubaccountId,\n} from \"../../shared/account-scope.js\";\nimport { OptionalPublicIdSchema, PublicIdSchema, idInputSchema } from \"../../shared/schemas.js\";\nimport { requiredEnumLabel } from \"../../shared/proto-enum-codec.js\";\nimport { tsNsToMs } from \"../../utils/time.js\";\nimport { formatId } from \"../../utils/base58-id.js\";\nimport { SideSchema, SymbolIdInputSchema } from \"../shared.js\";\nimport {\n positiveDecimalInputToScaled,\n scaledToDecimalOutput,\n type SdkScales,\n} from \"../../shared/decimal-surface.js\";\nimport {\n BatchReplaceAdmissionStatusCodec,\n BatchCancelOrderStatusCodec,\n CancelAllAfterStatusCodec,\n BatchReplaceItemAdmissionStatusCodec,\n BatchReplacePhaseCodec,\n OrderStatusCodec,\n OrderSideCodec,\n} from \"./orders.codecs.js\";\nimport { createOrderIntentInputSchema } from \"./orders-input.schemas.js\";\nimport { createRequiredRiskPolicyInputSchema } from \"./orders-risk.schemas.js\";\nimport {\n ClientOrderIdInputSchema,\n positiveOrderIdInputSchema,\n OrderRequestIdInputSchema,\n} from \"./orders-identifiers.schemas.js\";\nimport { OrderErrorDetailSchema } from \"./order-errors.schemas.js\";\n\nconst BatchCountSchema = v.pipe(v.number(), v.integer(), v.minValue(0));\nconst BatchItemIndexSchema = v.pipe(v.number(), v.integer(), v.minValue(0));\nconst PositivePublicIdSchema = v.pipe(\n v.bigint(),\n v.gtValue(0n),\n v.transform((value) => formatId(value)),\n);\nconst OptionalSideInputSchema = v.pipe(\n v.optional(SideSchema),\n v.transform((side) => (side ? OrderSideCodec.inputToProto[side] : undefined)),\n);\n\nconst CancelAllAfterTimeoutInputSchema = v.pipe(\n v.number(),\n v.integer(),\n v.check(\n (timeoutSec) => timeoutSec === 0 || (timeoutSec >= 10 && timeoutSec <= 120),\n \"timeoutSec must be 0 to disable or between 10 and 120 seconds to arm\",\n ),\n);\n\nexport const CancelAllAfterInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n timeoutSec: CancelAllAfterTimeoutInputSchema,\n symbolId: v.optional(SymbolIdInputSchema),\n side: OptionalSideInputSchema,\n requestId: v.optional(OrderRequestIdInputSchema),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type CancelAllAfterInput = v.InferInput<typeof CancelAllAfterInputSchema>;\n\nexport const CancelAllAfterResultSchema = v.pipe(\n v.object({\n status: v.pipe(\n v.enum(ProtoWrite.CancelAllAfterResponse_Status),\n v.transform((status) =>\n requiredEnumLabel(\n CancelAllAfterStatusCodec.protoToOutput,\n status,\n \"CancelAllAfterResultSchema\",\n \"status\",\n ),\n ),\n ),\n effectiveTimeoutSec: v.pipe(v.number(), v.integer(), v.minValue(0)),\n expiresAtTsNs: v.bigint(),\n tsNs: v.bigint(),\n }),\n v.transform(({ expiresAtTsNs, tsNs, ...result }) => ({\n ...result,\n expiresAt: tsNsToMs(expiresAtTsNs),\n expiresAtNs: expiresAtTsNs.toString(),\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type CancelAllAfterResult = v.InferOutput<typeof CancelAllAfterResultSchema>;\n\nexport function createBatchCreateOrdersInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(createOrderIntentInputSchema(scales)),\n v.minLength(1, \"At least one order is required.\"),\n v.maxLength(20, \"Batch create accepts at most 20 orders.\"),\n ),\n }),\n v.check((input) => {\n const clientOrderIds = input.items\n .map((item) => item.clientOrderId)\n .filter((clientOrderId) => clientOrderId !== undefined && clientOrderId !== \"\");\n return new Set(clientOrderIds).size === clientOrderIds.length;\n }, \"Each non-empty batch create clientOrderId must be unique.\"),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n );\n}\n\nexport type BatchCreateOrdersInput = v.InferInput<\n ReturnType<typeof createBatchCreateOrdersInputSchema>\n>;\n\nconst BatchCreateOrderResultRawSchema = v.object({\n clientOrderId: v.string(),\n outcome: v.variant(\"case\", [\n v.object({\n case: v.literal(\"accepted\"),\n value: v.object({\n orderId: PublicIdSchema,\n takeProfitTriggerId: OptionalPublicIdSchema,\n stopLossTriggerId: OptionalPublicIdSchema,\n trailingStopTriggerId: OptionalPublicIdSchema,\n resolvedBaseQtyScaled: v.bigint(),\n submittedMaxQuoteDebitScaled: v.optional(v.bigint()),\n }),\n }),\n v.object({\n case: v.literal(\"rejected\"),\n value: v.object({\n // The server may reject without a structured detail (e.g. capacity\n // limits); surface the rejection instead of failing the parse.\n error: v.optional(OrderErrorDetailSchema),\n }),\n }),\n ]),\n});\n\nexport function createBatchCreateOrdersResultSchema(scales: SdkScales, symbolIds: number[]) {\n return v.pipe(\n v.object({\n results: v.array(BatchCreateOrderResultRawSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n tsNs: v.bigint(),\n }),\n v.check(\n (response) =>\n response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch create result counts do not match the returned results.\",\n ),\n v.check(\n (response) => response.results.length === symbolIds.length,\n \"Batch create result count does not match the submitted item count.\",\n ),\n v.transform(({ tsNs, ...response }) => ({\n ...response,\n results: response.results.map(({ clientOrderId, outcome }, index) => {\n if (outcome.case === \"rejected\") {\n return {\n status: \"rejected\" as const,\n clientOrderId,\n error: outcome.value.error,\n };\n }\n const { resolvedBaseQtyScaled, submittedMaxQuoteDebitScaled, ...accepted } =\n outcome.value;\n const symbolId = symbolIds[index]!;\n return {\n status: \"accepted\" as const,\n clientOrderId,\n ...accepted,\n resolvedBaseQty: scaledToDecimalOutput(\n resolvedBaseQtyScaled,\n scales.baseQty(symbolId),\n ),\n ...(submittedMaxQuoteDebitScaled === undefined\n ? {}\n : {\n submittedMaxQuoteDebit: scaledToDecimalOutput(\n submittedMaxQuoteDebitScaled,\n scales.quoteAmount(symbolId),\n ),\n }),\n };\n }),\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n );\n}\n\nexport type BatchCreateOrdersResult = v.InferOutput<\n ReturnType<typeof createBatchCreateOrdersResultSchema>\n>;\nexport type BatchCreateOrderResult = BatchCreateOrdersResult[\"results\"][number];\n\nconst DecimalInputStringSchema = v.pipe(v.string(), v.trim(), v.minLength(1));\nconst BATCH_REPLACE_ITEM_INPUT_KEYS = new Set([\n \"orderId\",\n \"clientOrderId\",\n \"newPrice\",\n \"newQty\",\n \"risk\",\n \"clearRisk\",\n \"newClientOrderId\",\n]);\n\nexport function assertKnownBatchReplaceOrderItemInputKeys(input: object): void {\n for (const key of Object.keys(input)) {\n if (!BATCH_REPLACE_ITEM_INPUT_KEYS.has(key)) {\n throw new Error(`Unknown key \"${key}\" in batch replace order item.`);\n }\n }\n}\n\nconst BatchReplaceTargetInputSchema = v.union([\n v.pipe(\n v.object({\n orderId: v.pipe(\n idInputSchema(\"items.orderId\"),\n v.check((value) => value > 0n, \"items.orderId must be greater than zero\"),\n ),\n clientOrderId: v.optional(v.never()),\n }),\n v.transform(({ orderId }) => ({\n key: { case: \"orderId\" as const, value: orderId },\n })),\n ),\n v.pipe(\n v.object({\n orderId: v.optional(v.never()),\n clientOrderId: ClientOrderIdInputSchema,\n }),\n v.transform(({ clientOrderId }) => ({\n key: { case: \"clientOrderId\" as const, value: clientOrderId },\n })),\n ),\n]);\n\nfunction createBatchReplaceOrderItemInputSchema(scales: SdkScales) {\n const patchSchema = v.union([\n v.object({\n newPrice: DecimalInputStringSchema,\n newQty: v.optional(DecimalInputStringSchema),\n risk: v.optional(createRequiredRiskPolicyInputSchema(scales)),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(DecimalInputStringSchema),\n newQty: DecimalInputStringSchema,\n risk: v.optional(createRequiredRiskPolicyInputSchema(scales)),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(v.never()),\n newQty: v.optional(v.never()),\n risk: createRequiredRiskPolicyInputSchema(scales),\n clearRisk: v.optional(v.literal(false)),\n }),\n v.object({\n newPrice: v.optional(v.never()),\n newQty: v.optional(v.never()),\n risk: v.optional(v.never()),\n clearRisk: v.literal(true),\n }),\n ]);\n return v.intersect([\n BatchReplaceTargetInputSchema,\n patchSchema,\n v.object({\n newClientOrderId: v.optional(ClientOrderIdInputSchema),\n }),\n ]);\n}\n\nexport function createBatchReplaceOrdersInputSchema(scales: SdkScales) {\n return v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n symbolId: SymbolIdInputSchema,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(createBatchReplaceOrderItemInputSchema(scales)),\n v.minLength(1, \"At least one replacement is required.\"),\n v.maxLength(50, \"Batch replace accepts at most 50 replacements.\"),\n ),\n }),\n v.check((input) => {\n const targets = input.items.map(\n (item) => `${item.key.case}:${item.key.value.toString()}`,\n );\n return new Set(targets).size === targets.length;\n }, \"Each batch replace target must be unique.\"),\n v.transform(({ account, items, ...input }) => {\n return {\n ...input,\n items: items.map((item) => ({\n key: item.key,\n newPriceTicks:\n item.newPrice === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"items.newPrice\",\n item.newPrice,\n scales.price(),\n ),\n newQtyScaled:\n item.newQty === undefined\n ? undefined\n : positiveDecimalInputToScaled(\n \"items.newQty\",\n item.newQty,\n scales.baseQty(input.symbolId),\n ),\n newAttachedRisk:\n item.clearRisk === true ? create(ProtoWrite.RiskPolicySchema) : item.risk,\n newClientOrderId: item.newClientOrderId ?? \"\",\n })),\n subaccountId: accountScopeToSubaccountId(account),\n };\n }),\n );\n}\n\nexport type BatchReplaceOrdersInput = {\n account?: v.InferInput<typeof AccountScopeInputEntries.account>;\n symbolId: number;\n requestId?: string;\n items: Array<{\n orderId?: string;\n clientOrderId?: string;\n newPrice?: string;\n newQty?: string;\n risk?: v.InferInput<ReturnType<typeof createRequiredRiskPolicyInputSchema>>;\n clearRisk?: boolean;\n newClientOrderId?: string;\n }>;\n};\n\nconst BatchReplaceAdmissionItemSchema = v.pipe(\n v.object({\n itemIndex: BatchItemIndexSchema,\n status: v.pipe(\n v.enum(ProtoWrite.BatchReplaceItemAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceItemAdmissionStatusCodec.protoToOutput,\n status,\n \"BatchReplaceAdmissionItemSchema\",\n \"status\",\n ),\n ),\n ),\n oldOrderId: OptionalPublicIdSchema,\n replacementOrderId: OptionalPublicIdSchema,\n clientOrderId: v.string(),\n code: v.string(),\n error: v.optional(OrderErrorDetailSchema),\n }),\n v.transform((item) => ({\n ...item,\n code: item.code || undefined,\n })),\n);\n\nexport type BatchReplaceAdmissionItem = v.InferOutput<typeof BatchReplaceAdmissionItemSchema>;\n\nexport const BatchReplaceOrdersResultSchema = v.pipe(\n v.object({\n batchRequestId: PositivePublicIdSchema,\n status: v.pipe(\n v.enum(ProtoWrite.BatchReplaceAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceAdmissionStatusCodec.protoToOutput,\n status,\n \"BatchReplaceOrdersResultSchema\",\n \"status\",\n ),\n ),\n ),\n results: v.array(BatchReplaceAdmissionItemSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n acceptedTsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch replace result counts do not match the returned results.\",\n ),\n v.check(\n (response) => response.results.every((item, index) => item.itemIndex === index),\n \"Batch replace results must preserve request item order.\",\n ),\n v.transform(({ acceptedTsNs, ...response }) => ({\n ...response,\n acceptedTs: tsNsToMs(acceptedTsNs),\n acceptedTsNs: acceptedTsNs.toString(),\n })),\n);\n\nexport type BatchReplaceOrdersResult = v.InferOutput<typeof BatchReplaceOrdersResultSchema>;\n\nexport const GetBatchReplaceStatusInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n batchRequestId: v.pipe(\n idInputSchema(\"batchRequestId\"),\n v.check((value) => value > 0n, \"batchRequestId must be greater than zero\"),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type GetBatchReplaceStatusInput = v.InferInput<typeof GetBatchReplaceStatusInputSchema>;\n\nconst BatchReplaceStatusItemSchema = v.pipe(\n v.object({\n itemIndex: BatchItemIndexSchema,\n phase: v.pipe(\n v.enum(ProtoRead.BatchReplacePhase),\n v.transform((phase) =>\n requiredEnumLabel(\n BatchReplacePhaseCodec.protoToOutput,\n phase,\n \"BatchReplaceStatusItemSchema\",\n \"phase\",\n ),\n ),\n ),\n oldOrderId: OptionalPublicIdSchema,\n replacementOrderId: OptionalPublicIdSchema,\n orderStatus: v.pipe(\n v.enum(ProtoRead.OrderStatus),\n v.transform((status) =>\n requiredEnumLabel(\n OrderStatusCodec.protoToOutput,\n status,\n \"BatchReplaceStatusItemSchema\",\n \"order status\",\n ),\n ),\n ),\n code: v.string(),\n updatedTsNs: v.bigint(),\n }),\n v.transform(({ updatedTsNs, ...item }) => ({\n ...item,\n code: item.code || undefined,\n updatedTs: tsNsToMs(updatedTsNs),\n updatedTsNs: updatedTsNs.toString(),\n })),\n);\n\nexport const GetBatchReplaceStatusResultSchema = v.pipe(\n v.object({\n batchRequestId: PositivePublicIdSchema,\n admissionStatus: v.pipe(\n v.enum(ProtoWrite.BatchReplaceAdmissionStatus),\n v.transform((status) =>\n requiredEnumLabel(\n BatchReplaceAdmissionStatusCodec.protoToOutput,\n status,\n \"GetBatchReplaceStatusResultSchema\",\n \"admission status\",\n ),\n ),\n ),\n items: v.array(BatchReplaceStatusItemSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n acceptedTsNs: v.bigint(),\n updatedTsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.items.length,\n \"Batch replace status counts do not match the returned items.\",\n ),\n v.check(\n (response) => response.items.every((item, index) => item.itemIndex === index),\n \"Batch replace status items must preserve request item order.\",\n ),\n v.transform(({ acceptedTsNs, updatedTsNs, ...response }) => ({\n ...response,\n acceptedTs: tsNsToMs(acceptedTsNs),\n acceptedTsNs: acceptedTsNs.toString(),\n updatedTs: tsNsToMs(updatedTsNs),\n updatedTsNs: updatedTsNs.toString(),\n })),\n);\n\nexport type GetBatchReplaceStatusResult = v.InferOutput<typeof GetBatchReplaceStatusResultSchema>;\n\nconst BatchCancelOrderInputSchema = v.union([\n v.pipe(\n v.strictObject({\n orderId: positiveOrderIdInputSchema(\"items.orderId\"),\n clientOrderId: v.optional(v.never()),\n symbolId: v.optional(SymbolIdInputSchema),\n }),\n v.transform(({ orderId, symbolId }) => ({ orderId, symbolId })),\n ),\n v.pipe(\n v.strictObject({\n orderId: v.optional(v.never()),\n clientOrderId: ClientOrderIdInputSchema,\n symbolId: v.optional(SymbolIdInputSchema),\n }),\n v.transform(({ clientOrderId, symbolId }) => ({ clientOrderId, symbolId })),\n ),\n]);\n\nexport type BatchCancelOrderInput = v.InferInput<typeof BatchCancelOrderInputSchema>;\n\nexport const BatchCancelOrdersInputSchema = v.pipe(\n v.strictObject({\n ...AccountScopeInputEntries,\n requestId: v.optional(OrderRequestIdInputSchema),\n items: v.pipe(\n v.array(BatchCancelOrderInputSchema),\n v.minLength(1, \"At least one order is required.\"),\n v.maxLength(50, \"Batch cancel accepts at most 50 orders.\"),\n ),\n }),\n v.transform(({ account, ...input }) => ({\n ...input,\n subaccountId: accountScopeToSubaccountId(account),\n })),\n);\n\nexport type BatchCancelOrdersInput = v.InferInput<typeof BatchCancelOrdersInputSchema>;\n\nconst BatchCancelOrderResultSchema = v.object({\n status: v.pipe(\n v.enum(ProtoWrite.BatchCancelResultItem_Status),\n v.transform((status) =>\n requiredEnumLabel(\n BatchCancelOrderStatusCodec.protoToOutput,\n status,\n \"BatchCancelOrderResultSchema\",\n \"status\",\n ),\n ),\n ),\n orderId: OptionalPublicIdSchema,\n clientOrderId: v.string(),\n code: v.string(),\n error: v.optional(OrderErrorDetailSchema),\n});\n\nexport type BatchCancelOrderResult = v.InferOutput<typeof BatchCancelOrderResultSchema>;\n\nexport const BatchCancelOrdersResultSchema = v.pipe(\n v.object({\n results: v.array(BatchCancelOrderResultSchema),\n acceptedCount: BatchCountSchema,\n rejectedCount: BatchCountSchema,\n tsNs: v.bigint(),\n }),\n v.check(\n (response) => response.acceptedCount + response.rejectedCount === response.results.length,\n \"Batch cancel result counts do not match the returned results.\",\n ),\n v.transform(({ tsNs, ...response }) => ({\n ...response,\n ts: tsNsToMs(tsNs),\n tsNs: tsNs.toString(),\n })),\n);\n\nexport type BatchCancelOrdersResult = v.InferOutput<typeof BatchCancelOrdersResultSchema>;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { FailureReason, LimiterScope, PolicyClass, RefillModel } from "../../gen/polyester/ratelimit/v1/types_pb.js";
2
- import { ErrorCode, FeeAsset, LimitFok, LimitGtc, LimitIoc, MarketIoc, RiskLimitGtc, RiskMarketIoc, SelfTradePreventionMode, Side } from "../../gen/orders/v1/orders_pb.js";
2
+ import { CancelAllOrdersResponse_Status, CancelOrderResponse_Status, ErrorCode, FeeAsset, LimitFok, LimitGtc, LimitIoc, MarketIoc, RiskLimitGtc, RiskMarketIoc, SelfTradePreventionMode, Side } from "../../gen/orders/v1/orders_pb.js";
3
3
  import { OrderStatus } from "../../gen/orders/v1/orders_read_pb.js";
4
4
  import { SdkScales } from "../../shared/decimal-surface.js";
5
5
  import * as v from "valibot";
@@ -40,7 +40,7 @@ type OpenOrdersInput = v.InferInput<typeof OpenOrdersInputSchema>;
40
40
  declare const OrderHistoryInputSchema: v.SchemaWithPipe<readonly [v.StrictObjectSchema<{
41
41
  readonly includeAttachedRisk: v.OptionalSchema<v.BooleanSchema<undefined>, true>;
42
42
  readonly includeAttachedRiskState: v.OptionalSchema<v.BooleanSchema<undefined>, false>;
43
- readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["FILLED", "CANCELED", "REJECTED"], undefined>, undefined>, v.TransformAction<"FILLED" | "CANCELED" | "REJECTED" | undefined, OrderStatus.FILLED | OrderStatus.CANCELED | OrderStatus.REJECTED | undefined>]>;
43
+ readonly status: v.SchemaWithPipe<readonly [v.OptionalSchema<v.PicklistSchema<readonly ["FILLED", "CANCELED", "REJECTED"], undefined>, undefined>, v.TransformAction<"CANCELED" | "REJECTED" | "FILLED" | undefined, OrderStatus.FILLED | OrderStatus.CANCELED | OrderStatus.REJECTED | undefined>]>;
44
44
  readonly startTsNs: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
45
45
  readonly endTsNs: v.SchemaWithPipe<readonly [v.OptionalSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction]>, undefined>, v.TransformAction<string | undefined, bigint | undefined>]>;
46
46
  readonly symbolId: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.GtValueAction<number, 0, undefined>, v.MaxValueAction<number, 4294967295, undefined>]>, undefined>, undefined>;
@@ -3537,17 +3537,17 @@ declare const CancelOrderInputSchema: v.SchemaWithPipe<readonly [v.UnionSchema<[
3537
3537
  }>]>;
3538
3538
  type CancelOrderInput = v.InferInput<typeof CancelOrderInputSchema>;
3539
3539
  declare const CancelOrderResultSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
3540
- readonly status: v.StringSchema<undefined>;
3540
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof CancelOrderResponse_Status, undefined>, v.TransformAction<CancelOrderResponse_Status, "unspecified" | "accepted">]>;
3541
3541
  readonly orderId: v.SchemaWithPipe<readonly [v.BigintSchema<undefined>, v.TransformAction<bigint, string>]>;
3542
3542
  readonly tsNs: v.BigintSchema<undefined>;
3543
3543
  }, undefined>, v.TransformAction<{
3544
- status: string;
3544
+ status: "unspecified" | "accepted";
3545
3545
  orderId: string;
3546
3546
  tsNs: bigint;
3547
3547
  }, {
3548
3548
  ts: number;
3549
3549
  tsNs: string;
3550
- status: string;
3550
+ status: "unspecified" | "accepted";
3551
3551
  orderId: string;
3552
3552
  }>]>;
3553
3553
  type CancelOrderResult = v.InferOutput<typeof CancelOrderResultSchema>;
@@ -3576,19 +3576,19 @@ declare const CancelAllOrdersInputSchema: v.SchemaWithPipe<readonly [v.StrictObj
3576
3576
  }>]>;
3577
3577
  type CancelAllOrdersInput = v.InferInput<typeof CancelAllOrdersInputSchema>;
3578
3578
  declare const CancelAllOrdersResponseSchema: v.SchemaWithPipe<readonly [v.ObjectSchema<{
3579
- readonly status: v.StringSchema<undefined>;
3579
+ readonly status: v.SchemaWithPipe<readonly [v.EnumSchema<typeof CancelAllOrdersResponse_Status, undefined>, v.TransformAction<CancelAllOrdersResponse_Status, "unspecified" | "submitted" | "dry_run">]>;
3580
3580
  readonly matchedOrders: v.NumberSchema<undefined>;
3581
3581
  readonly submittedCancels: v.NumberSchema<undefined>;
3582
3582
  readonly failedCancels: v.NumberSchema<undefined>;
3583
3583
  readonly tsNs: v.BigintSchema<undefined>;
3584
3584
  }, undefined>, v.TransformAction<{
3585
- status: string;
3585
+ status: "unspecified" | "submitted" | "dry_run";
3586
3586
  matchedOrders: number;
3587
3587
  submittedCancels: number;
3588
3588
  failedCancels: number;
3589
3589
  tsNs: bigint;
3590
3590
  }, {
3591
- status: string;
3591
+ status: "unspecified" | "submitted" | "dry_run";
3592
3592
  matchedOrders: number;
3593
3593
  submittedCancels: number;
3594
3594
  failedCancels: number;
@@ -1 +1 @@
1
- {"version":3,"file":"orders-input.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAY/C,gBAAgB,EAAE,WAAW,kBAAkB;cAO9C,wBAAsB,EAAA,yBAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BvB,mBAAmB,EAAE,kBAAkB;cAEtC,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAaxB,oBAAoB,EAAE,mBAAmB;cAExC,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAiB3B,uBAAuB,EAAE,kBAAkB;cAE1C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;KAiB9B,0BAA0B,EAAE,mBAAmB;cAE9C,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0B3B,uBAAuB,EAAE,kBAAkB;iBAEvC,8BAA8B,QAAQ,WAAW,mBAAgB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyCrE,oBAAoB,EAAE,YAAY,kBAAkB;iBAEhD,+BAA+B,QAAQ,WAAW,mBAAgB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BtE,qBAAqB,EAAE,YAAY,kBAAkB"}
1
+ {"version":3,"file":"orders-input.schemas.d.ts","names":[],"sources":["../../../src/services/orders/orders-input.schemas.ts"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAY/C,gBAAgB,EAAE,WAAW,kBAAkB;cAO9C,wBAAsB,EAAA,yBAAA,EAAA,aAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0BvB,mBAAmB,EAAE,kBAAkB;cAEtC,yBAAuB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;KAuBxB,oBAAoB,EAAE,mBAAmB;cAExC,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;KAiB3B,uBAAuB,EAAE,kBAAkB;cAE1C,+BAA6B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;KA2B9B,0BAA0B,EAAE,mBAAmB;cAE9C,4BAA0B,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA0B3B,uBAAuB,EAAE,kBAAkB;iBAEvC,8BAA8B,QAAQ,WAAW,mBAAgB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyCrE,oBAAoB,EAAE,YAAY,kBAAkB;iBAEhD,+BAA+B,QAAQ,WAAW,mBAAgB,EAAA,yBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KA+BtE,qBAAqB,EAAE,YAAY,kBAAkB"}
@@ -1,11 +1,12 @@
1
- import { LimitFokSchema, LimitGtcSchema, LimitIocSchema, MarketIocSchema } from "../../gen/orders/v1/orders_pb.js";
1
+ import { CancelAllOrdersResponse_Status, CancelOrderResponse_Status, LimitFokSchema, LimitGtcSchema, LimitIocSchema, MarketIocSchema } from "../../gen/orders/v1/orders_pb.js";
2
+ import { requiredEnumLabel } from "../../shared/proto-enum-codec.js";
2
3
  import { tsNsToMs } from "../../utils/time.js";
3
4
  import { OptionalPublicIdSchema, OptionalTimestampMsSchema, PublicIdSchema, TimestampMsSchema, optionalIdInputSchema, optionalUint64DecimalFilterSchema } from "../../shared/schemas.js";
4
5
  import { SideSchema, SymbolIdInputSchema } from "../shared.js";
5
6
  import { AccountScopeInputEntries, accountScopeToSubaccountId } from "../../shared/account-scope.js";
6
7
  import { positiveDecimalInputToScaled, scaledToDecimalOutput } from "../../shared/decimal-surface.js";
7
8
  import { FEE_ASSET_VALUES, FeeAssetCodec, OrderSideCodec, SELF_TRADE_PREVENTION_MODE_VALUES, SelfTradePreventionModeCodec } from "./order-enums.codecs.js";
8
- import { ORDER_STATUS_FILTER_VALUES, OrderStatusFilterCodec } from "./orders.codecs.js";
9
+ import { CancelAllOrdersStatusCodec, CancelOrderStatusCodec, ORDER_STATUS_FILTER_VALUES, OrderStatusFilterCodec } from "./orders.codecs.js";
9
10
  import { OrderErrorDetailSchema } from "./order-errors.schemas.js";
10
11
  import { MarketMaxSlippageSchema, createRiskPolicyInputSchema, parseMarketMaxSlippage } from "./orders-risk.schemas.js";
11
12
  import { ClientOrderIdInputSchema, OptionalClientOrderIdInputSchema, OrderIdInputSchema, OrderRequestIdInputSchema } from "./orders-identifiers.schemas.js";
@@ -180,7 +181,7 @@ const CancelOrderInputSchema = v.pipe(v.union([v.strictObject({
180
181
  };
181
182
  }));
182
183
  const CancelOrderResultSchema = v.pipe(v.object({
183
- status: v.string(),
184
+ status: v.pipe(v.enum(CancelOrderResponse_Status), v.transform((status) => requiredEnumLabel(CancelOrderStatusCodec.protoToOutput, status, "CancelOrderResultSchema", "status"))),
184
185
  orderId: PublicIdSchema,
185
186
  tsNs: v.bigint()
186
187
  }), v.transform(({ tsNs, ...result }) => ({
@@ -199,7 +200,7 @@ const CancelAllOrdersInputSchema = v.pipe(v.strictObject({
199
200
  subaccountId: accountScopeToSubaccountId(account)
200
201
  })));
201
202
  const CancelAllOrdersResponseSchema = v.pipe(v.object({
202
- status: v.string(),
203
+ status: v.pipe(v.enum(CancelAllOrdersResponse_Status), v.transform((status) => requiredEnumLabel(CancelAllOrdersStatusCodec.protoToOutput, status, "CancelAllOrdersResponseSchema", "status"))),
203
204
  matchedOrders: v.number(),
204
205
  submittedCancels: v.number(),
205
206
  failedCancels: v.number(),