@polyester/sdk 0.2.0 → 0.2.2

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 (85) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/core-client.d.ts +1 -0
  3. package/dist/core-client.d.ts.map +1 -1
  4. package/dist/gen/index.d.ts +2 -1
  5. package/dist/gen/index.js +2 -1
  6. package/dist/gen/orders/v1/orders_pb.d.ts +26 -1
  7. package/dist/gen/orders/v1/orders_pb.d.ts.map +1 -1
  8. package/dist/gen/orders/v1/orders_pb.js +8 -1
  9. package/dist/gen/orders/v1/orders_pb.js.map +1 -1
  10. package/dist/gen/polyester/ratelimit/v1/types_pb.d.ts +310 -0
  11. package/dist/gen/polyester/ratelimit/v1/types_pb.d.ts.map +1 -0
  12. package/dist/gen/polyester/ratelimit/v1/types_pb.js +263 -0
  13. package/dist/gen/polyester/ratelimit/v1/types_pb.js.map +1 -0
  14. package/dist/gen/tradews/v1/trade_ws_pb.d.ts +7 -1
  15. package/dist/gen/tradews/v1/trade_ws_pb.d.ts.map +1 -1
  16. package/dist/gen/tradews/v1/trade_ws_pb.js +1 -1
  17. package/dist/gen/tradews/v1/trade_ws_pb.js.map +1 -1
  18. package/dist/index.d.ts +4 -3
  19. package/dist/index.js +3 -3
  20. package/dist/services/accounts/accounts.schemas.js +1 -1
  21. package/dist/services/address-book/address-book.schemas.d.ts +54 -54
  22. package/dist/services/address-book/address-book.schemas.js +1 -1
  23. package/dist/services/api-keys/api-keys.schemas.d.ts +3 -3
  24. package/dist/services/api-keys/api-keys.schemas.js +1 -1
  25. package/dist/services/auth/auth.js +1 -1
  26. package/dist/services/balances/balances.schemas.d.ts +1 -1
  27. package/dist/services/candles/candles.schemas.d.ts +10 -10
  28. package/dist/services/candles/candles.schemas.js +1 -1
  29. package/dist/services/heatmap/heatmap.schemas.d.ts +13 -13
  30. package/dist/services/heatmap/heatmap.schemas.js +1 -1
  31. package/dist/services/lifecycle/lifecycle.schemas.d.ts +114 -114
  32. package/dist/services/lifecycle/lifecycle.schemas.js +1 -1
  33. package/dist/services/market-overview/market-overview.schemas.d.ts +3 -3
  34. package/dist/services/market-overview/market-overview.schemas.js +1 -1
  35. package/dist/services/mfa/mfa.schemas.js +1 -1
  36. package/dist/services/orderbook/orderbook.schemas.d.ts +1 -1
  37. package/dist/services/orders/index.d.ts +2 -2
  38. package/dist/services/orders/order-errors.schemas.d.ts +23 -2
  39. package/dist/services/orders/order-errors.schemas.d.ts.map +1 -1
  40. package/dist/services/orders/order-errors.schemas.js +3 -1
  41. package/dist/services/orders/order-errors.schemas.js.map +1 -1
  42. package/dist/services/orders/orders-batch.schemas.d.ts +360 -19
  43. package/dist/services/orders/orders-batch.schemas.d.ts.map +1 -1
  44. package/dist/services/orders/orders-batch.schemas.js +5 -3
  45. package/dist/services/orders/orders-batch.schemas.js.map +1 -1
  46. package/dist/services/orders/orders-input.schemas.d.ts +37 -3
  47. package/dist/services/orders/orders-input.schemas.d.ts.map +1 -1
  48. package/dist/services/orders/orders-modify.schemas.js +1 -1
  49. package/dist/services/orders/orders-output.schemas.d.ts +10 -10
  50. package/dist/services/orders/orders-output.schemas.js +1 -1
  51. package/dist/services/orders/orders.schemas.d.ts +2 -2
  52. package/dist/services/orders/orders.types.d.ts +2 -2
  53. package/dist/services/policies/shared.codecs.js +1 -1
  54. package/dist/services/social-verification/social-verification.schemas.js +1 -1
  55. package/dist/services/subaccounts/subaccounts.js +1 -1
  56. package/dist/services/subaccounts/subaccounts.schemas.d.ts +5 -5
  57. package/dist/services/subaccounts/subaccounts.schemas.js +1 -1
  58. package/dist/services/trades/trades.schemas.js +1 -1
  59. package/dist/services/trading-withdraws/trading-withdraws.js +1 -1
  60. package/dist/services/transfers/transfers.schemas.d.ts +3 -3
  61. package/dist/services/transfers/transfers.schemas.js +1 -1
  62. package/dist/services/triggers/trigger-input.schemas.d.ts +1 -1
  63. package/dist/services/triggers/triggers-output.schemas.d.ts +13 -13
  64. package/dist/services/triggers/triggers-output.schemas.js +1 -1
  65. package/dist/services/whiteboard/whiteboard.schemas.js +1 -1
  66. package/dist/services/zipper/zipper.schemas.d.ts +1 -0
  67. package/dist/services/zipper/zipper.schemas.d.ts.map +1 -1
  68. package/dist/shared/connect-error-mapping.d.ts.map +1 -1
  69. package/dist/shared/connect-error-mapping.js +24 -1
  70. package/dist/shared/connect-error-mapping.js.map +1 -1
  71. package/dist/shared/errors.d.ts +5 -0
  72. package/dist/shared/errors.d.ts.map +1 -1
  73. package/dist/shared/errors.js +3 -0
  74. package/dist/shared/errors.js.map +1 -1
  75. package/dist/shared/rate-limit.schemas.d.ts +32 -0
  76. package/dist/shared/rate-limit.schemas.d.ts.map +1 -0
  77. package/dist/shared/rate-limit.schemas.js +60 -0
  78. package/dist/shared/rate-limit.schemas.js.map +1 -0
  79. package/dist/shared/schemas.js +2 -2
  80. package/dist/shared/schemas.js.map +1 -1
  81. package/dist/utils/connect-order-errors.d.ts +7 -1
  82. package/dist/utils/connect-order-errors.d.ts.map +1 -1
  83. package/dist/utils/connect-order-errors.js +22 -1
  84. package/dist/utils/connect-order-errors.js.map +1 -1
  85. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.js","names":[],"sources":["../../src/shared/schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { formatId, idToBigInt } from \"../utils/base58-id.js\";\nimport {\n parseOptionalUint64DecimalStrict,\n toBigIntOrZero,\n toBpsOrZero,\n toIntOrZero,\n} from \"../utils/numbers.js\";\nimport { tsNsToMs, tsObjToMs } from \"../utils/time.js\";\nimport type { JsonObject } from \"@bufbuild/protobuf\";\n\nconst UINT64_MAX = (1n << 64n) - 1n;\nconst MS_TO_US = 1_000n;\nconst MS_TO_NS = 1_000_000n;\nconst MAX_UINT64_TIMESTAMP_MS_US = Number(UINT64_MAX / MS_TO_US);\nconst MAX_UINT64_TIMESTAMP_MS = Number(UINT64_MAX / MS_TO_NS);\n\nexport const TimestampSchema = v.object({\n seconds: v.bigint(),\n nanos: v.optional(v.number(), 0),\n});\n\nexport const TimestampMsSchema = v.pipe(\n TimestampSchema,\n v.transform((value) => tsObjToMs(value)),\n);\n\nexport const OptionalTimestampMsSchema = v.pipe(\n v.optional(TimestampSchema),\n v.transform((value) => tsObjToMs(value)),\n);\n\nexport const OptionalNumberDefaultNullSchema = v.optional(v.nullable(v.number()), null);\n\nexport const OptionalNumberToBigIntOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toBigIntOrZero(value)),\n);\n\nexport const OptionalNumberToIntOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toIntOrZero(value)),\n);\n\nexport const OptionalNumberToBpsOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toBpsOrZero(value)),\n);\n\nexport const TimestampNsMsSchema = v.pipe(\n v.bigint(),\n v.transform((value) => tsNsToMs(value)),\n);\n\nexport const BigIntStringSchema = v.pipe(\n v.bigint(),\n v.transform((value) => value.toString()),\n);\n\nexport const OptionalBigIntStringSchema = v.pipe(\n v.optional(v.bigint()),\n v.transform((value) => (value === undefined ? undefined : value.toString())),\n);\n\nexport const OptionalTimestampMsToNsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(MAX_UINT64_TIMESTAMP_MS),\n v.transform((value) => BigInt(value) * MS_TO_NS),\n ),\n);\n\nexport const OptionalTimestampMsToUsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(MAX_UINT64_TIMESTAMP_MS_US),\n v.transform((value) => BigInt(value) * MS_TO_US),\n ),\n);\n\nexport const OptionalTimestampSecondsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(Number.MAX_SAFE_INTEGER),\n v.transform((value) => BigInt(value)),\n ),\n);\n\nexport const PublicIdSchema = v.pipe(\n v.bigint(),\n v.transform((value) => formatId(value)),\n);\n\nexport const OptionalPublicIdSchema = v.pipe(\n v.optional(v.bigint()),\n v.transform((value) => (value ? formatId(value) : undefined)),\n);\n\nconst TrimmedStringSchema = v.pipe(v.string(), v.trim());\n\nconst OptionalTrimmedStringSchema = v.optional(TrimmedStringSchema);\n\n/**\n * Creates a schema for required public id input.\n */\nexport function idInputSchema(fieldName: string) {\n return v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((value) => idToBigInt(value, fieldName)),\n );\n}\n\n/**\n * Creates a schema for optional public id input.\n */\nexport function optionalIdInputSchema(fieldName: string) {\n return v.pipe(\n OptionalTrimmedStringSchema,\n v.transform((value) => (value ? idToBigInt(value, fieldName) : undefined)),\n );\n}\n\n/**\n * Creates a schema for optional subaccount id input.\n */\nexport function optionalSubaccountIdInputSchema() {\n return optionalIdInputSchema(\"subaccountId\");\n}\n\n/**\n * Creates a schema for optional uint64 decimal filter input.\n */\nexport function optionalUint64DecimalFilterSchema(fieldName: string) {\n return v.pipe(\n OptionalTrimmedStringSchema,\n v.transform((value) => parseOptionalUint64DecimalStrict(value, fieldName)),\n );\n}\n\n/**\n * Creates a schema for positive bigint-like input.\n */\nexport function positiveBigintLikeSchema(message: string) {\n return v.pipe(\n v.union([\n v.bigint(),\n v.pipe(\n TrimmedStringSchema,\n v.regex(/^\\d+$/),\n v.transform((value) => BigInt(value)),\n ),\n ]),\n v.check((value) => value > 0n, message),\n );\n}\n\nexport function bigintStringInputSchema(fieldName: string) {\n return v.pipe(\n TrimmedStringSchema,\n v.regex(/^\\d+$/, `${fieldName} must be a decimal integer`),\n v.transform((value) => BigInt(value)),\n );\n}\n\nexport function positiveBigintStringInputSchema(fieldName: string) {\n return v.pipe(\n bigintStringInputSchema(fieldName),\n v.check((value) => value > 0n, `${fieldName} must be greater than 0`),\n );\n}\n\nexport const JsonObjectSchema = v.custom<JsonObject>(\n (input): input is JsonObject =>\n typeof input === \"object\" && input !== null && !Array.isArray(input),\n);\n"],"mappings":";;;;;AAWA,MAAM,cAAc,MAAM,OAAO;AACjC,MAAM,WAAW;AACjB,MAAM,WAAW;AACjB,MAAM,6BAA6B,OAAO,aAAa,QAAQ;AAC/D,MAAM,0BAA0B,OAAO,aAAa,QAAQ;AAE5D,MAAa,kBAAkB,EAAE,OAAO;CACpC,SAAS,EAAE,OAAO;CAClB,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC;AACnC,CAAC;AAED,MAAa,oBAAoB,EAAE,KAC/B,iBACA,EAAE,WAAW,UAAU,UAAU,KAAK,CAAC,CAC3C;AAEA,MAAa,4BAA4B,EAAE,KACvC,EAAE,SAAS,eAAe,GAC1B,EAAE,WAAW,UAAU,UAAU,KAAK,CAAC,CAC3C;AAEA,MAAa,kCAAkC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI;AAEtF,MAAa,qCAAqC,EAAE,KAChD,iCACA,EAAE,WAAW,UAAU,eAAe,KAAK,CAAC,CAChD;AAEA,MAAa,kCAAkC,EAAE,KAC7C,iCACA,EAAE,WAAW,UAAU,YAAY,KAAK,CAAC,CAC7C;AAEA,MAAa,kCAAkC,EAAE,KAC7C,iCACA,EAAE,WAAW,UAAU,YAAY,KAAK,CAAC,CAC7C;AAEmC,EAAE,KACjC,EAAE,OAAO,GACT,EAAE,WAAW,UAAU,SAAS,KAAK,CAAC,CAC1C;AAEA,MAAa,qBAAqB,EAAE,KAChC,EAAE,OAAO,GACT,EAAE,WAAW,UAAU,MAAM,SAAS,CAAC,CAC3C;AAE0C,EAAE,KACxC,EAAE,SAAS,EAAE,OAAO,CAAC,GACrB,EAAE,WAAW,UAAW,UAAU,KAAA,IAAY,KAAA,IAAY,MAAM,SAAS,CAAE,CAC/E;AAEkD,EAAE,SAChD,EAAE,KACE,EAAE,OAAO,GACT,EAAE,QAAQ,GACV,EAAE,SAAS,CAAC,GACZ,EAAE,SAAS,uBAAuB,GAClC,EAAE,WAAW,UAAU,OAAO,KAAK,IAAI,QAAQ,CACnD,CACJ;AAEA,MAAa,qCAAqC,EAAE,SAChD,EAAE,KACE,EAAE,OAAO,GACT,EAAE,QAAQ,GACV,EAAE,SAAS,CAAC,GACZ,EAAE,SAAS,0BAA0B,GACrC,EAAE,WAAW,UAAU,OAAO,KAAK,IAAI,QAAQ,CACnD,CACJ;AAEA,MAAa,sCAAsC,EAAE,SACjD,EAAE,KACE,EAAE,OAAO,GACT,EAAE,QAAQ,GACV,EAAE,SAAS,CAAC,GACZ,EAAE,SAAS,OAAO,gBAAgB,GAClC,EAAE,WAAW,UAAU,OAAO,KAAK,CAAC,CACxC,CACJ;AAEA,MAAa,iBAAiB,EAAE,KAC5B,EAAE,OAAO,GACT,EAAE,WAAW,UAAU,SAAS,KAAK,CAAC,CAC1C;AAEA,MAAa,yBAAyB,EAAE,KACpC,EAAE,SAAS,EAAE,OAAO,CAAC,GACrB,EAAE,WAAW,UAAW,QAAQ,SAAS,KAAK,IAAI,KAAA,CAAU,CAChE;AAEA,MAAM,sBAAsB,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,KAAK,CAAC;AAEvD,MAAM,8BAA8B,EAAE,SAAS,mBAAmB;;;;AAKlE,SAAgB,cAAc,WAAmB;CAC7C,OAAO,EAAE,KACL,EAAE,OAAO,GACT,EAAE,KAAK,GACP,EAAE,UAAU,CAAC,GACb,EAAE,WAAW,UAAU,WAAW,OAAO,SAAS,CAAC,CACvD;AACJ;;;;AAKA,SAAgB,sBAAsB,WAAmB;CACrD,OAAO,EAAE,KACL,6BACA,EAAE,WAAW,UAAW,QAAQ,WAAW,OAAO,SAAS,IAAI,KAAA,CAAU,CAC7E;AACJ;;;;AAKA,SAAgB,kCAAkC;CAC9C,OAAO,sBAAsB,cAAc;AAC/C;;;;AAKA,SAAgB,kCAAkC,WAAmB;CACjE,OAAO,EAAE,KACL,6BACA,EAAE,WAAW,UAAU,iCAAiC,OAAO,SAAS,CAAC,CAC7E;AACJ;AAmBA,SAAgB,wBAAwB,WAAmB;CACvD,OAAO,EAAE,KACL,qBACA,EAAE,MAAM,SAAS,GAAG,UAAU,2BAA2B,GACzD,EAAE,WAAW,UAAU,OAAO,KAAK,CAAC,CACxC;AACJ;AAEA,SAAgB,gCAAgC,WAAmB;CAC/D,OAAO,EAAE,KACL,wBAAwB,SAAS,GACjC,EAAE,OAAO,UAAU,QAAQ,IAAI,GAAG,UAAU,wBAAwB,CACxE;AACJ;AAEA,MAAa,mBAAmB,EAAE,QAC7B,UACG,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK,CAC3E"}
1
+ {"version":3,"file":"schemas.js","names":[],"sources":["../../src/shared/schemas.ts"],"sourcesContent":["import * as v from \"valibot\";\nimport { formatId, idToBigInt } from \"../utils/base58-id.js\";\nimport {\n parseOptionalUint64DecimalStrict,\n toBigIntOrZero,\n toBpsOrZero,\n toIntOrZero,\n} from \"../utils/numbers.js\";\nimport { tsNsToMs, tsObjToMs } from \"../utils/time.js\";\nimport type { JsonObject } from \"@bufbuild/protobuf\";\n\nconst UINT64_MAX = (1n << 64n) - 1n;\nconst MS_TO_US = 1_000n;\nconst MS_TO_NS = 1_000_000n;\nconst MAX_UINT64_TIMESTAMP_MS_US = Number(UINT64_MAX / MS_TO_US);\nconst MAX_UINT64_TIMESTAMP_MS = Number(UINT64_MAX / MS_TO_NS);\n\nexport const TimestampSchema = v.object({\n seconds: v.bigint(),\n nanos: v.optional(v.number(), 0),\n});\n\nexport const TimestampMsSchema = v.pipe(\n TimestampSchema,\n v.transform((value) => tsObjToMs(value)),\n);\n\nexport const OptionalTimestampMsSchema = v.pipe(\n v.optional(TimestampSchema),\n v.transform((value) => tsObjToMs(value)),\n);\n\nexport const OptionalNumberDefaultNullSchema = v.optional(v.nullable(v.number()), null);\n\nexport const OptionalNumberToBigIntOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toBigIntOrZero(value)),\n);\n\nexport const OptionalNumberToIntOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toIntOrZero(value)),\n);\n\nexport const OptionalNumberToBpsOrZeroSchema = v.pipe(\n OptionalNumberDefaultNullSchema,\n v.transform((value) => toBpsOrZero(value)),\n);\n\nexport const TimestampNsMsSchema = v.pipe(\n v.bigint(),\n v.transform((value) => tsNsToMs(value)),\n);\n\nexport const BigIntStringSchema = v.pipe(\n v.bigint(),\n v.transform((value) => value.toString()),\n);\n\nexport const OptionalBigIntStringSchema = v.pipe(\n v.optional(v.bigint()),\n v.transform((value) => (value === undefined ? undefined : value.toString())),\n);\n\nexport const OptionalTimestampMsToNsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(MAX_UINT64_TIMESTAMP_MS),\n v.transform((value) => BigInt(value) * MS_TO_NS),\n ),\n);\n\nexport const OptionalTimestampMsToUsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(MAX_UINT64_TIMESTAMP_MS_US),\n v.transform((value) => BigInt(value) * MS_TO_US),\n ),\n);\n\nexport const OptionalTimestampSecondsInputSchema = v.optional(\n v.pipe(\n v.number(),\n v.integer(),\n v.minValue(0),\n v.maxValue(Number.MAX_SAFE_INTEGER),\n v.transform((value) => BigInt(value)),\n ),\n);\n\nexport const PublicIdSchema = v.pipe(\n v.bigint(),\n v.transform((value) => formatId(value)),\n);\n\nexport const OptionalPublicIdSchema = v.pipe(\n v.optional(v.bigint()),\n v.transform((value) => (value ? formatId(value) : undefined)),\n);\n\nconst TrimmedStringSchema = v.pipe(v.string(), v.trim());\n\nconst OptionalTrimmedStringSchema = v.optional(TrimmedStringSchema);\n\n/**\n * Creates a schema for required public id input.\n */\nexport function idInputSchema(fieldName: string) {\n return v.pipe(\n v.string(),\n v.trim(),\n v.minLength(1),\n v.transform((value) => idToBigInt(value, fieldName)),\n );\n}\n\n/**\n * Creates a schema for optional public id input.\n */\nexport function optionalIdInputSchema(fieldName: string) {\n return v.pipe(\n OptionalTrimmedStringSchema,\n v.transform((value) => (value ? idToBigInt(value, fieldName) : undefined)),\n );\n}\n\n/**\n * Creates a schema for optional subaccount id input.\n */\nexport function optionalSubaccountIdInputSchema() {\n return optionalIdInputSchema(\"subaccountId\");\n}\n\n/**\n * Creates a schema for optional uint64 decimal filter input.\n */\nexport function optionalUint64DecimalFilterSchema(fieldName: string) {\n return v.pipe(\n OptionalTrimmedStringSchema,\n v.transform((value) => parseOptionalUint64DecimalStrict(value, fieldName)),\n );\n}\n\n/**\n * Creates a schema for positive bigint-like input.\n */\nexport function positiveBigintLikeSchema(message: string) {\n return v.pipe(\n v.union([\n v.bigint(),\n v.pipe(\n TrimmedStringSchema,\n v.regex(/^\\d+$/),\n v.transform((value) => BigInt(value)),\n ),\n ]),\n v.check((value) => value > 0n, message),\n );\n}\n\nexport function bigintStringInputSchema(fieldName: string) {\n return v.pipe(\n TrimmedStringSchema,\n v.regex(/^\\d+$/, `${fieldName} must be a decimal integer`),\n v.transform((value) => BigInt(value)),\n );\n}\n\nexport function positiveBigintStringInputSchema(fieldName: string) {\n return v.pipe(\n bigintStringInputSchema(fieldName),\n v.check((value) => value > 0n, `${fieldName} must be greater than 0`),\n );\n}\n\nexport const JsonObjectSchema = v.custom<JsonObject>(\n (input): input is JsonObject =>\n typeof input === \"object\" && input !== null && !Array.isArray(input),\n);\n"],"mappings":"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"}
@@ -1,9 +1,15 @@
1
+ import { OrderErrorDetail } from "../services/orders/order-errors.schemas.js";
1
2
  //#region src/utils/connect-order-errors.d.ts
3
+ /**
4
+ * Returns the first structured Orders API rejection detail in an error cause chain.
5
+ * Invalid or unrelated details are ignored rather than exposing transport prose.
6
+ */
7
+ declare function getOrderErrorDetail(error: unknown): OrderErrorDetail | undefined;
2
8
  /**
3
9
  * True when an order mutation was rejected because its client reference quote
4
10
  * exceeded the backend's configured drift limit.
5
11
  */
6
12
  declare function isStaleQuoteError(error: unknown): boolean;
7
13
  //#endregion
8
- export { isStaleQuoteError };
14
+ export { getOrderErrorDetail, isStaleQuoteError };
9
15
  //# sourceMappingURL=connect-order-errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect-order-errors.d.ts","names":[],"sources":["../../src/utils/connect-order-errors.ts"],"mappings":";;;;;iBAOgB,kBAAkB"}
1
+ {"version":3,"file":"connect-order-errors.d.ts","names":[],"sources":["../../src/utils/connect-order-errors.ts"],"mappings":";;;;;;iBAcgB,oBAAoB,iBAAiB;;;;;iBAsBrC,kBAAkB"}
@@ -1,7 +1,28 @@
1
1
  import { StaleQuoteError } from "../shared/errors.js";
2
+ import { ErrorDetailSchema } from "../gen/orders/v1/orders_pb.js";
2
3
  import { toPolyesterError } from "../shared/connect-error-mapping.js";
4
+ import { OrderErrorDetailSchema } from "../services/orders/order-errors.schemas.js";
5
+ import { ConnectError } from "@connectrpc/connect";
6
+ import * as v from "valibot";
3
7
  //#region src/utils/connect-order-errors.ts
4
8
  /**
9
+ * Returns the first structured Orders API rejection detail in an error cause chain.
10
+ * Invalid or unrelated details are ignored rather than exposing transport prose.
11
+ */
12
+ function getOrderErrorDetail(error) {
13
+ const seen = /* @__PURE__ */ new Set();
14
+ let current = error;
15
+ for (let depth = 0; depth < 5 && current != null && !seen.has(current); depth += 1) {
16
+ seen.add(current);
17
+ const details = ConnectError.from(current).findDetails(ErrorDetailSchema);
18
+ for (const detail of details) {
19
+ const parsed = v.safeParse(OrderErrorDetailSchema, detail);
20
+ if (parsed.success) return parsed.output;
21
+ }
22
+ current = current instanceof Error ? current.cause : void 0;
23
+ }
24
+ }
25
+ /**
5
26
  * True when an order mutation was rejected because its client reference quote
6
27
  * exceeded the backend's configured drift limit.
7
28
  */
@@ -15,6 +36,6 @@ function isStaleQuoteError(error) {
15
36
  return false;
16
37
  }
17
38
  //#endregion
18
- export { isStaleQuoteError };
39
+ export { getOrderErrorDetail, isStaleQuoteError };
19
40
 
20
41
  //# sourceMappingURL=connect-order-errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connect-order-errors.js","names":[],"sources":["../../src/utils/connect-order-errors.ts"],"sourcesContent":["import { toPolyesterError } from \"../shared/connect-error-mapping.js\";\nimport { StaleQuoteError } from \"../shared/errors.js\";\n\n/**\n * True when an order mutation was rejected because its client reference quote\n * exceeded the backend's configured drift limit.\n */\nexport function isStaleQuoteError(error: unknown): boolean {\n let current = error;\n\n for (let depth = 0; depth < 5; depth += 1) {\n if (toPolyesterError(current) instanceof StaleQuoteError) return true;\n if (!(current instanceof Error) || current.cause === undefined) return false;\n current = current.cause;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;AAOA,SAAgB,kBAAkB,OAAyB;CACvD,IAAI,UAAU;CAEd,KAAK,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG;EACvC,IAAI,iBAAiB,OAAO,aAAa,iBAAiB,OAAO;EACjE,IAAI,EAAE,mBAAmB,UAAU,QAAQ,UAAU,KAAA,GAAW,OAAO;EACvE,UAAU,QAAQ;CACtB;CAEA,OAAO;AACX"}
1
+ {"version":3,"file":"connect-order-errors.js","names":[],"sources":["../../src/utils/connect-order-errors.ts"],"sourcesContent":["import { ConnectError } from \"@connectrpc/connect\";\nimport * as v from \"valibot\";\nimport { ErrorDetailSchema } from \"../gen/orders/v1/orders_pb.js\";\nimport {\n OrderErrorDetailSchema,\n type OrderErrorDetail,\n} from \"../services/orders/order-errors.schemas.js\";\nimport { toPolyesterError } from \"../shared/connect-error-mapping.js\";\nimport { StaleQuoteError } from \"../shared/errors.js\";\n\n/**\n * Returns the first structured Orders API rejection detail in an error cause chain.\n * Invalid or unrelated details are ignored rather than exposing transport prose.\n */\nexport function getOrderErrorDetail(error: unknown): OrderErrorDetail | undefined {\n const seen = new Set<unknown>();\n let current: unknown = error;\n\n for (let depth = 0; depth < 5 && current != null && !seen.has(current); depth += 1) {\n seen.add(current);\n const details = ConnectError.from(current).findDetails(ErrorDetailSchema);\n for (const detail of details) {\n const parsed = v.safeParse(OrderErrorDetailSchema, detail);\n if (parsed.success) return parsed.output;\n }\n\n current = current instanceof Error ? current.cause : undefined;\n }\n\n return undefined;\n}\n\n/**\n * True when an order mutation was rejected because its client reference quote\n * exceeded the backend's configured drift limit.\n */\nexport function isStaleQuoteError(error: unknown): boolean {\n let current = error;\n\n for (let depth = 0; depth < 5; depth += 1) {\n if (toPolyesterError(current) instanceof StaleQuoteError) return true;\n if (!(current instanceof Error) || current.cause === undefined) return false;\n current = current.cause;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;;;AAcA,SAAgB,oBAAoB,OAA8C;CAC9E,MAAM,uBAAO,IAAI,IAAa;CAC9B,IAAI,UAAmB;CAEvB,KAAK,IAAI,QAAQ,GAAG,QAAQ,KAAK,WAAW,QAAQ,CAAC,KAAK,IAAI,OAAO,GAAG,SAAS,GAAG;EAChF,KAAK,IAAI,OAAO;EAChB,MAAM,UAAU,aAAa,KAAK,OAAO,CAAC,CAAC,YAAY,iBAAiB;EACxE,KAAK,MAAM,UAAU,SAAS;GAC1B,MAAM,SAAS,EAAE,UAAU,wBAAwB,MAAM;GACzD,IAAI,OAAO,SAAS,OAAO,OAAO;EACtC;EAEA,UAAU,mBAAmB,QAAQ,QAAQ,QAAQ,KAAA;CACzD;AAGJ;;;;;AAMA,SAAgB,kBAAkB,OAAyB;CACvD,IAAI,UAAU;CAEd,KAAK,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG;EACvC,IAAI,iBAAiB,OAAO,aAAa,iBAAiB,OAAO;EACjE,IAAI,EAAE,mBAAmB,UAAU,QAAQ,UAAU,KAAA,GAAW,OAAO;EACvE,UAAU,QAAQ;CACtB;CAEA,OAAO;AACX"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@polyester/sdk",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "private": false,
5
5
  "description": "TypeScript SDK providing access to APIs on Polyester Exchange.",
6
6
  "homepage": "https://github.com/Fabric-Labs/polyester-sdk-typescript#readme",