@fintekkers/ledger-models 0.4.43 → 0.4.45

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 (257) hide show
  1. package/node/fintekkers/models/portfolio/portfolio_pb.d.ts +7 -15
  2. package/node/fintekkers/models/portfolio/portfolio_pb.js +35 -132
  3. package/node/fintekkers/models/position/position_filter_pb.d.ts +7 -15
  4. package/node/fintekkers/models/position/position_filter_pb.js +35 -132
  5. package/node/fintekkers/models/position/position_pb.d.ts +7 -15
  6. package/node/fintekkers/models/position/position_pb.js +35 -132
  7. package/node/fintekkers/models/price/price_pb.d.ts +7 -15
  8. package/node/fintekkers/models/price/price_pb.js +35 -132
  9. package/node/fintekkers/models/security/bond/issuance_pb.d.ts +7 -15
  10. package/node/fintekkers/models/security/bond/issuance_pb.js +35 -132
  11. package/node/fintekkers/models/security/identifier/identifier_pb.d.ts +7 -15
  12. package/node/fintekkers/models/security/identifier/identifier_pb.js +35 -132
  13. package/node/fintekkers/models/security/index_composition_pb.d.ts +7 -15
  14. package/node/fintekkers/models/security/index_composition_pb.js +35 -132
  15. package/node/fintekkers/models/security/security_pb.d.ts +7 -15
  16. package/node/fintekkers/models/security/security_pb.js +35 -132
  17. package/node/fintekkers/models/security/security_pb.test.js +4 -8
  18. package/node/fintekkers/models/security/security_pb.test.js.map +1 -1
  19. package/node/fintekkers/models/security/security_pb.test.ts +4 -5
  20. package/node/fintekkers/models/security/tenor_pb.d.ts +7 -15
  21. package/node/fintekkers/models/security/tenor_pb.js +35 -132
  22. package/node/fintekkers/models/strategy/strategy_allocation_pb.d.ts +7 -15
  23. package/node/fintekkers/models/strategy/strategy_allocation_pb.js +35 -132
  24. package/node/fintekkers/models/strategy/strategy_pb.d.ts +7 -15
  25. package/node/fintekkers/models/strategy/strategy_pb.js +35 -132
  26. package/node/fintekkers/models/transaction/transaction_pb.d.ts +7 -15
  27. package/node/fintekkers/models/transaction/transaction_pb.js +35 -132
  28. package/node/fintekkers/models/util/api/api_key_pb.d.ts +7 -15
  29. package/node/fintekkers/models/util/api/api_key_pb.js +35 -132
  30. package/node/fintekkers/models/util/date_range_pb.d.ts +7 -15
  31. package/node/fintekkers/models/util/date_range_pb.js +35 -132
  32. package/node/fintekkers/models/util/decimal_value_pb.d.ts +0 -5
  33. package/node/fintekkers/models/util/decimal_value_pb.js +0 -30
  34. package/node/fintekkers/models/util/lock/node_partition_pb.d.ts +7 -15
  35. package/node/fintekkers/models/util/lock/node_partition_pb.js +35 -132
  36. package/node/fintekkers/models/util/lock/node_state_pb.d.ts +7 -15
  37. package/node/fintekkers/models/util/lock/node_state_pb.js +35 -132
  38. package/node/fintekkers/models/util/object_type_pb.d.ts +0 -3
  39. package/node/fintekkers/models/util/object_type_pb.js +0 -28
  40. package/node/fintekkers/models/util/version_grpc_pb.js +1 -0
  41. package/node/fintekkers/models/util/version_pb.d.ts +33 -0
  42. package/node/fintekkers/models/util/version_pb.js +236 -0
  43. package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.d.ts +13 -30
  44. package/node/fintekkers/requests/index_composition/create_index_composition_request_pb.js +68 -264
  45. package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.d.ts +13 -30
  46. package/node/fintekkers/requests/index_composition/get_index_composition_request_pb.js +68 -264
  47. package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.d.ts +7 -15
  48. package/node/fintekkers/requests/portfolio/create_portfolio_request_pb.js +35 -132
  49. package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.d.ts +7 -15
  50. package/node/fintekkers/requests/portfolio/create_portfolio_response_pb.js +35 -132
  51. package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.d.ts +7 -15
  52. package/node/fintekkers/requests/portfolio/query_portfolio_request_pb.js +35 -132
  53. package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.d.ts +7 -15
  54. package/node/fintekkers/requests/portfolio/query_portfolio_response_pb.js +35 -132
  55. package/node/fintekkers/requests/position/query_position_request_pb.d.ts +7 -15
  56. package/node/fintekkers/requests/position/query_position_request_pb.js +35 -132
  57. package/node/fintekkers/requests/position/query_position_response_pb.d.ts +7 -15
  58. package/node/fintekkers/requests/position/query_position_response_pb.js +35 -132
  59. package/node/fintekkers/requests/price/create_price_request_pb.d.ts +7 -15
  60. package/node/fintekkers/requests/price/create_price_request_pb.js +35 -132
  61. package/node/fintekkers/requests/price/create_price_response_pb.d.ts +7 -15
  62. package/node/fintekkers/requests/price/create_price_response_pb.js +35 -132
  63. package/node/fintekkers/requests/price/query_price_request_pb.d.ts +7 -15
  64. package/node/fintekkers/requests/price/query_price_request_pb.js +35 -132
  65. package/node/fintekkers/requests/price/query_price_response_pb.d.ts +7 -15
  66. package/node/fintekkers/requests/price/query_price_response_pb.js +35 -132
  67. package/node/fintekkers/requests/security/create_security_request_pb.d.ts +7 -15
  68. package/node/fintekkers/requests/security/create_security_request_pb.js +35 -132
  69. package/node/fintekkers/requests/security/create_security_response_pb.d.ts +7 -15
  70. package/node/fintekkers/requests/security/create_security_response_pb.js +35 -132
  71. package/node/fintekkers/requests/security/get_field_values_request_pb.d.ts +7 -15
  72. package/node/fintekkers/requests/security/get_field_values_request_pb.js +35 -132
  73. package/node/fintekkers/requests/security/get_field_values_response_pb.d.ts +7 -15
  74. package/node/fintekkers/requests/security/get_field_values_response_pb.js +35 -132
  75. package/node/fintekkers/requests/security/get_fields_response_pb.d.ts +7 -15
  76. package/node/fintekkers/requests/security/get_fields_response_pb.js +35 -132
  77. package/node/fintekkers/requests/security/query_security_request_pb.d.ts +7 -15
  78. package/node/fintekkers/requests/security/query_security_request_pb.js +35 -132
  79. package/node/fintekkers/requests/security/query_security_response_pb.d.ts +7 -15
  80. package/node/fintekkers/requests/security/query_security_response_pb.js +35 -132
  81. package/node/fintekkers/requests/transaction/create_transaction_request_pb.d.ts +7 -15
  82. package/node/fintekkers/requests/transaction/create_transaction_request_pb.js +35 -132
  83. package/node/fintekkers/requests/transaction/create_transaction_response_pb.d.ts +7 -15
  84. package/node/fintekkers/requests/transaction/create_transaction_response_pb.js +35 -132
  85. package/node/fintekkers/requests/transaction/query_transaction_request_pb.d.ts +7 -15
  86. package/node/fintekkers/requests/transaction/query_transaction_request_pb.js +35 -132
  87. package/node/fintekkers/requests/transaction/query_transaction_response_pb.d.ts +7 -15
  88. package/node/fintekkers/requests/transaction/query_transaction_response_pb.js +35 -132
  89. package/node/fintekkers/requests/util/delete_request_pb.d.ts +13 -30
  90. package/node/fintekkers/requests/util/delete_request_pb.js +68 -264
  91. package/node/fintekkers/requests/util/lock/lock_request_pb.d.ts +7 -15
  92. package/node/fintekkers/requests/util/lock/lock_request_pb.js +35 -132
  93. package/node/fintekkers/requests/util/lock/lock_response_pb.d.ts +7 -15
  94. package/node/fintekkers/requests/util/lock/lock_response_pb.js +35 -132
  95. package/node/fintekkers/requests/valuation/curve_request_pb.d.ts +7 -15
  96. package/node/fintekkers/requests/valuation/curve_request_pb.js +35 -132
  97. package/node/fintekkers/requests/valuation/curve_response_pb.d.ts +7 -15
  98. package/node/fintekkers/requests/valuation/curve_response_pb.js +35 -132
  99. package/node/fintekkers/requests/valuation/product_inputs.test.js +10 -17
  100. package/node/fintekkers/requests/valuation/product_inputs.test.js.map +1 -1
  101. package/node/fintekkers/requests/valuation/product_inputs.test.ts +10 -16
  102. package/node/fintekkers/requests/valuation/valuation_request_pb.d.ts +7 -15
  103. package/node/fintekkers/requests/valuation/valuation_request_pb.js +35 -132
  104. package/node/fintekkers/requests/valuation/valuation_response_pb.d.ts +7 -15
  105. package/node/fintekkers/requests/valuation/valuation_response_pb.js +35 -132
  106. package/node/wrappers/models/portfolio/portfolio.test.js +0 -2
  107. package/node/wrappers/models/portfolio/portfolio.test.js.map +1 -1
  108. package/node/wrappers/models/portfolio/portfolio.test.ts +0 -2
  109. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js +2 -3
  110. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.js.map +1 -1
  111. package/node/wrappers/models/portfolio-price-transaction.lazy-hydrate.test.ts +2 -2
  112. package/node/wrappers/models/position/position.test.js +5 -6
  113. package/node/wrappers/models/position/position.test.js.map +1 -1
  114. package/node/wrappers/models/position/position.test.ts +5 -4
  115. package/node/wrappers/models/position/positionfilter.js +1 -1
  116. package/node/wrappers/models/position/positionfilter.js.map +1 -1
  117. package/node/wrappers/models/position/positionfilter.test.js +4 -2
  118. package/node/wrappers/models/position/positionfilter.test.js.map +1 -1
  119. package/node/wrappers/models/position/positionfilter.test.ts +3 -2
  120. package/node/wrappers/models/position/positionfilter.ts +1 -1
  121. package/node/wrappers/models/price/Price.cash.test.js +4 -5
  122. package/node/wrappers/models/price/Price.cash.test.js.map +1 -1
  123. package/node/wrappers/models/price/Price.cash.test.ts +2 -3
  124. package/node/wrappers/models/price/Price.js +2 -2
  125. package/node/wrappers/models/price/Price.js.map +1 -1
  126. package/node/wrappers/models/price/Price.test.js +4 -2
  127. package/node/wrappers/models/price/Price.test.js.map +1 -1
  128. package/node/wrappers/models/price/Price.test.ts +4 -2
  129. package/node/wrappers/models/price/Price.ts +2 -2
  130. package/node/wrappers/models/price/price_rules.test.js +9 -4
  131. package/node/wrappers/models/price/price_rules.test.js.map +1 -1
  132. package/node/wrappers/models/price/price_rules.test.ts +9 -4
  133. package/node/wrappers/models/security/BondSecurity.priceScale.test.js +2 -4
  134. package/node/wrappers/models/security/BondSecurity.priceScale.test.js.map +1 -1
  135. package/node/wrappers/models/security/BondSecurity.priceScale.test.ts +2 -3
  136. package/node/wrappers/models/security/BondSecurity.test.js +7 -13
  137. package/node/wrappers/models/security/BondSecurity.test.js.map +1 -1
  138. package/node/wrappers/models/security/BondSecurity.test.ts +7 -12
  139. package/node/wrappers/models/security/IndexSecurity.test.js +0 -8
  140. package/node/wrappers/models/security/IndexSecurity.test.js.map +1 -1
  141. package/node/wrappers/models/security/IndexSecurity.test.ts +0 -8
  142. package/node/wrappers/models/security/Issuance.test.js +6 -6
  143. package/node/wrappers/models/security/Issuance.test.js.map +1 -1
  144. package/node/wrappers/models/security/Issuance.test.ts +6 -5
  145. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js +13 -14
  146. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.js.map +1 -1
  147. package/node/wrappers/models/security/MortgageBackedSecurity.fromPricerInputs.test.ts +13 -12
  148. package/node/wrappers/models/security/security-roundtrip.test.js +9 -21
  149. package/node/wrappers/models/security/security-roundtrip.test.js.map +1 -1
  150. package/node/wrappers/models/security/security-roundtrip.test.ts +9 -20
  151. package/node/wrappers/models/security/security.identifiers.test.js +0 -2
  152. package/node/wrappers/models/security/security.identifiers.test.js.map +1 -1
  153. package/node/wrappers/models/security/security.identifiers.test.ts +0 -2
  154. package/node/wrappers/models/security/security.tbillCoupon.test.js +3 -2
  155. package/node/wrappers/models/security/security.tbillCoupon.test.js.map +1 -1
  156. package/node/wrappers/models/security/security.tbillCoupon.test.ts +3 -2
  157. package/node/wrappers/models/security/security.test.js +14 -14
  158. package/node/wrappers/models/security/security.test.js.map +1 -1
  159. package/node/wrappers/models/security/security.test.ts +14 -13
  160. package/node/wrappers/models/transaction/transaction.derived.test.js +3 -9
  161. package/node/wrappers/models/transaction/transaction.derived.test.js.map +1 -1
  162. package/node/wrappers/models/transaction/transaction.derived.test.ts +3 -8
  163. package/node/wrappers/models/transaction/transaction.js +2 -2
  164. package/node/wrappers/models/transaction/transaction.js.map +1 -1
  165. package/node/wrappers/models/transaction/transaction.test.js +3 -3
  166. package/node/wrappers/models/transaction/transaction.test.js.map +1 -1
  167. package/node/wrappers/models/transaction/transaction.test.ts +3 -2
  168. package/node/wrappers/models/transaction/transaction.ts +2 -2
  169. package/node/wrappers/models/transaction/transaction_constructor.test.js +6 -9
  170. package/node/wrappers/models/transaction/transaction_constructor.test.js.map +1 -1
  171. package/node/wrappers/models/transaction/transaction_constructor.test.ts +6 -7
  172. package/node/wrappers/models/transaction/transaction_price_defaults.test.js +2 -10
  173. package/node/wrappers/models/transaction/transaction_price_defaults.test.js.map +1 -1
  174. package/node/wrappers/models/transaction/transaction_price_defaults.test.ts +2 -9
  175. package/node/wrappers/models/transaction/transaction_security_defaults.test.js +0 -6
  176. package/node/wrappers/models/transaction/transaction_security_defaults.test.js.map +1 -1
  177. package/node/wrappers/models/transaction/transaction_security_defaults.test.ts +0 -6
  178. package/node/wrappers/models/utils/date.test.js +0 -2
  179. package/node/wrappers/models/utils/date.test.js.map +1 -1
  180. package/node/wrappers/models/utils/date.test.ts +0 -2
  181. package/node/wrappers/models/utils/datetime.test.js +0 -2
  182. package/node/wrappers/models/utils/datetime.test.js.map +1 -1
  183. package/node/wrappers/models/utils/datetime.test.ts +0 -2
  184. package/node/wrappers/models/utils/decimal.d.ts +9 -28
  185. package/node/wrappers/models/utils/decimal.js +13 -52
  186. package/node/wrappers/models/utils/decimal.js.map +1 -1
  187. package/node/wrappers/models/utils/decimal.test.js +12 -68
  188. package/node/wrappers/models/utils/decimal.test.js.map +1 -1
  189. package/node/wrappers/models/utils/decimal.test.ts +14 -76
  190. package/node/wrappers/models/utils/decimal.ts +12 -60
  191. package/node/wrappers/models/utils/serialization.test.js +0 -4
  192. package/node/wrappers/models/utils/serialization.test.js.map +1 -1
  193. package/node/wrappers/models/utils/serialization.test.ts +0 -4
  194. package/node/wrappers/requests/position/QueryPositionRequest.js +1 -1
  195. package/node/wrappers/requests/position/QueryPositionRequest.js.map +1 -1
  196. package/node/wrappers/requests/position/QueryPositionRequest.ts +1 -1
  197. package/node/wrappers/requests/query-paging.test.js +4 -28
  198. package/node/wrappers/requests/query-paging.test.js.map +1 -1
  199. package/node/wrappers/requests/query-paging.test.ts +3 -36
  200. package/node/wrappers/services/portfolio-service/PortfolioService.js +3 -3
  201. package/node/wrappers/services/portfolio-service/PortfolioService.js.map +1 -1
  202. package/node/wrappers/services/portfolio-service/PortfolioService.ts +3 -3
  203. package/node/wrappers/services/portfolio-service/portfolioService.test.js +0 -2
  204. package/node/wrappers/services/portfolio-service/portfolioService.test.js.map +1 -1
  205. package/node/wrappers/services/portfolio-service/portfolioService.test.ts +0 -2
  206. package/node/wrappers/services/price-service/PriceService.js +3 -3
  207. package/node/wrappers/services/price-service/PriceService.js.map +1 -1
  208. package/node/wrappers/services/price-service/PriceService.ts +3 -3
  209. package/node/wrappers/services/price-service/price-wrapper.test.js +2 -6
  210. package/node/wrappers/services/price-service/price-wrapper.test.js.map +1 -1
  211. package/node/wrappers/services/price-service/price-wrapper.test.ts +2 -6
  212. package/node/wrappers/services/price-service/price.test.js +8 -17
  213. package/node/wrappers/services/price-service/price.test.js.map +1 -1
  214. package/node/wrappers/services/price-service/price.test.ts +8 -14
  215. package/node/wrappers/services/searchWithSecurities.test.js +2 -7
  216. package/node/wrappers/services/searchWithSecurities.test.js.map +1 -1
  217. package/node/wrappers/services/searchWithSecurities.test.ts +2 -6
  218. package/node/wrappers/services/security-service/SecurityService.js +3 -3
  219. package/node/wrappers/services/security-service/SecurityService.js.map +1 -1
  220. package/node/wrappers/services/security-service/SecurityService.ts +3 -3
  221. package/node/wrappers/services/security-service/security.test.js +3 -7
  222. package/node/wrappers/services/security-service/security.test.js.map +1 -1
  223. package/node/wrappers/services/security-service/security.test.ts +3 -6
  224. package/node/wrappers/services/transaction-service/TransactionService.js +3 -3
  225. package/node/wrappers/services/transaction-service/TransactionService.js.map +1 -1
  226. package/node/wrappers/services/transaction-service/TransactionService.ts +3 -3
  227. package/node/wrappers/services/transaction-service/transaction.test.js +3 -8
  228. package/node/wrappers/services/transaction-service/transaction.test.js.map +1 -1
  229. package/node/wrappers/services/transaction-service/transaction.test.ts +3 -6
  230. package/node/wrappers/util/link-resolver.js +3 -3
  231. package/node/wrappers/util/link-resolver.js.map +1 -1
  232. package/node/wrappers/util/link-resolver.test.js +4 -13
  233. package/node/wrappers/util/link-resolver.test.js.map +1 -1
  234. package/node/wrappers/util/link-resolver.test.ts +4 -12
  235. package/node/wrappers/util/link-resolver.ts +3 -3
  236. package/node/wrappers/util/object-type-coverage.test.js +159 -0
  237. package/node/wrappers/util/object-type-coverage.test.js.map +1 -0
  238. package/node/wrappers/util/object-type-coverage.test.ts +149 -0
  239. package/node/wrappers/util/object-types.d.ts +30 -46
  240. package/node/wrappers/util/object-types.js +145 -170
  241. package/node/wrappers/util/object-types.js.map +1 -1
  242. package/node/wrappers/util/object-types.test.js +50 -151
  243. package/node/wrappers/util/object-types.test.js.map +1 -1
  244. package/node/wrappers/util/object-types.test.ts +55 -170
  245. package/node/wrappers/util/object-types.ts +153 -178
  246. package/package.json +1 -1
  247. package/node/wrappers/models/position/position.test copy.js +0 -107
  248. package/node/wrappers/models/position/position.test copy.js.map +0 -1
  249. package/node/wrappers/models/utils/decimal.legacy.test.js +0 -174
  250. package/node/wrappers/models/utils/decimal.legacy.test.js.map +0 -1
  251. package/node/wrappers/models/utils/decimal.legacy.test.ts +0 -158
  252. package/node/wrappers/models/utils/decimal.typings.test.d.ts +0 -1
  253. package/node/wrappers/models/utils/decimal.typings.test.js +0 -39
  254. package/node/wrappers/models/utils/decimal.typings.test.js.map +0 -1
  255. package/node/wrappers/models/utils/decimal.typings.test.ts +0 -16
  256. package/node/wrappers/util/object-type-legacy.json +0 -21
  257. /package/node/wrappers/{models/utils/decimal.legacy.test.d.ts → util/object-type-coverage.test.d.ts} +0 -0
@@ -1,207 +1,182 @@
1
1
  /**
2
- * Compact object type and version (LM-297), stage 1: write both forms, read the new one.
2
+ * Object type and version (LM-297, LM-318).
3
3
  *
4
- * Every message with `string object_class = 1` and `string version = 2` also
5
- * carries `ObjectTypeProto object_type = 1001` and `uint32 version_major /
6
- * version_minor / version_patch = 1002-1004`. Writers call `stamp`, which sets
7
- * the strings and the new fields. Readers call `readType` / `readVersion` (or
8
- * `upgrade`), which use the new fields and fall back to the deprecated strings,
9
- * logging one `console.warn` per distinct pair of strings. A fallback never
10
- * throws: an unknown object_class gives OBJECT_TYPE_UNKNOWN and a malformed
11
- * version gives 0.0.0. Empty strings are the proto3 default and fall back
12
- * silently.
13
- *
14
- * google-protobuf cannot read the `(legacy_object_class)` options at runtime,
15
- * so the string map comes from object-type-legacy.json, generated by
16
- * scripts/gen-object-type-legacy-map.py. See docs/adr/compact_object_type_and_version.md.
4
+ * Every message that names its type carries `ObjectTypeProto object_type = 1`
5
+ * and `VersionProto version = 2`. Writers call `stamp`, which sets the type and
6
+ * `SCHEMA_VERSION`; `stampOwn` passes the message's own type (LM-320). Readers
7
+ * call `readType` / `readVersion`. The old `object_class` / `version` strings
8
+ * were replaced in place by LM-318: bytes written before it are not readable.
9
+ * See docs/adr/compact_object_type_and_version.md.
17
10
  */
18
11
  import { ObjectTypeProto } from '../../fintekkers/models/util/object_type_pb';
19
- import legacyMirror from './object-type-legacy.json';
20
-
21
- /** Any generated message that carries object_class / version and their compact form. */
12
+ import { VersionProto } from '../../fintekkers/models/util/version_pb';
13
+ import { PortfolioProto } from '../../fintekkers/models/portfolio/portfolio_pb';
14
+ import { PositionProto } from '../../fintekkers/models/position/position_pb';
15
+ import { PositionFilterProto } from '../../fintekkers/models/position/position_filter_pb';
16
+ import { PriceProto } from '../../fintekkers/models/price/price_pb';
17
+ import { IssuanceProto } from '../../fintekkers/models/security/bond/issuance_pb';
18
+ import { IdentifierProto } from '../../fintekkers/models/security/identifier/identifier_pb';
19
+ import { IndexCompositionProto } from '../../fintekkers/models/security/index_composition_pb';
20
+ import { SecurityProto } from '../../fintekkers/models/security/security_pb';
21
+ import { TenorProto } from '../../fintekkers/models/security/tenor_pb';
22
+ import { StrategyProto } from '../../fintekkers/models/strategy/strategy_pb';
23
+ import { StrategyAllocationProto } from '../../fintekkers/models/strategy/strategy_allocation_pb';
24
+ import { TransactionProto } from '../../fintekkers/models/transaction/transaction_pb';
25
+ import { API_Key } from '../../fintekkers/models/util/api/api_key_pb';
26
+ import { DateRangeProto } from '../../fintekkers/models/util/date_range_pb';
27
+ import { NodePartition } from '../../fintekkers/models/util/lock/node_partition_pb';
28
+ import { NodeState } from '../../fintekkers/models/util/lock/node_state_pb';
29
+ import { CreateIndexCompositionRequestProto, CreateIndexCompositionResponseProto } from '../../fintekkers/requests/index_composition/create_index_composition_request_pb';
30
+ import { GetIndexCompositionRequestProto, GetIndexCompositionResponseProto } from '../../fintekkers/requests/index_composition/get_index_composition_request_pb';
31
+ import { CreatePortfolioRequestProto } from '../../fintekkers/requests/portfolio/create_portfolio_request_pb';
32
+ import { CreatePortfolioResponseProto } from '../../fintekkers/requests/portfolio/create_portfolio_response_pb';
33
+ import { QueryPortfolioRequestProto } from '../../fintekkers/requests/portfolio/query_portfolio_request_pb';
34
+ import { QueryPortfolioResponseProto } from '../../fintekkers/requests/portfolio/query_portfolio_response_pb';
35
+ import { QueryPositionRequestProto } from '../../fintekkers/requests/position/query_position_request_pb';
36
+ import { QueryPositionResponseProto } from '../../fintekkers/requests/position/query_position_response_pb';
37
+ import { CreatePriceRequestProto } from '../../fintekkers/requests/price/create_price_request_pb';
38
+ import { CreatePriceResponseProto } from '../../fintekkers/requests/price/create_price_response_pb';
39
+ import { QueryPriceRequestProto } from '../../fintekkers/requests/price/query_price_request_pb';
40
+ import { QueryPriceResponseProto } from '../../fintekkers/requests/price/query_price_response_pb';
41
+ import { CreateSecurityRequestProto } from '../../fintekkers/requests/security/create_security_request_pb';
42
+ import { CreateSecurityResponseProto } from '../../fintekkers/requests/security/create_security_response_pb';
43
+ import { GetFieldValuesRequestProto } from '../../fintekkers/requests/security/get_field_values_request_pb';
44
+ import { GetFieldValuesResponseProto } from '../../fintekkers/requests/security/get_field_values_response_pb';
45
+ import { GetFieldsResponseProto } from '../../fintekkers/requests/security/get_fields_response_pb';
46
+ import { QuerySecurityRequestProto } from '../../fintekkers/requests/security/query_security_request_pb';
47
+ import { QuerySecurityResponseProto } from '../../fintekkers/requests/security/query_security_response_pb';
48
+ import { CreateTransactionRequestProto } from '../../fintekkers/requests/transaction/create_transaction_request_pb';
49
+ import { CreateTransactionResponseProto } from '../../fintekkers/requests/transaction/create_transaction_response_pb';
50
+ import { QueryTransactionRequestProto } from '../../fintekkers/requests/transaction/query_transaction_request_pb';
51
+ import { QueryTransactionResponseProto } from '../../fintekkers/requests/transaction/query_transaction_response_pb';
52
+ import { DeleteRequestProto, DeleteResponseProto } from '../../fintekkers/requests/util/delete_request_pb';
53
+ import { LockRequestProto } from '../../fintekkers/requests/util/lock/lock_request_pb';
54
+ import { LockResponseProto } from '../../fintekkers/requests/util/lock/lock_response_pb';
55
+ import { CurveRequestProto } from '../../fintekkers/requests/valuation/curve_request_pb';
56
+ import { CurveResponseProto } from '../../fintekkers/requests/valuation/curve_response_pb';
57
+ import { ValuationRequestProto } from '../../fintekkers/requests/valuation/valuation_request_pb';
58
+ import { ValuationResponseProto } from '../../fintekkers/requests/valuation/valuation_response_pb';
59
+
60
+ /** Any generated message that carries object_type and version. */
22
61
  export interface ObjectTyped {
23
- getObjectClass(): string;
24
- setObjectClass(value: string): unknown;
25
- getVersion(): string;
26
- setVersion(value: string): unknown;
27
62
  getObjectType(): ObjectTypeProto;
28
63
  setObjectType(value: ObjectTypeProto): unknown;
29
- getVersionMajor(): number;
30
- setVersionMajor(value: number): unknown;
31
- getVersionMinor(): number;
32
- setVersionMinor(value: number): unknown;
33
- getVersionPatch(): number;
34
- setVersionPatch(value: number): unknown;
64
+ hasVersion(): boolean;
65
+ getVersion(): VersionProto | undefined;
66
+ setVersion(value?: VersionProto): unknown;
35
67
  }
36
68
 
37
69
  /** [major, minor, patch], each a uint32. */
38
70
  export type Version = [number, number, number];
39
71
 
40
- const UINT32_MAX = 0xffffffff;
41
- const VERSION_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/;
42
-
43
- function buildLegacyMap(): Map<string, ObjectTypeProto> {
44
- const map = new Map<string, ObjectTypeProto>();
45
- for (const [legacy, name] of Object.entries(legacyMirror.legacy_object_class)) {
46
- if (!Object.prototype.hasOwnProperty.call(ObjectTypeProto, name)) {
47
- throw new Error(`object-type-legacy.json names ${name}, which ObjectTypeProto lacks: regenerate it`);
48
- }
49
- map.set(legacy, ObjectTypeProto[name as keyof typeof ObjectTypeProto]);
50
- }
51
- return map;
52
- }
53
-
54
- const LEGACY = buildLegacyMap();
55
- const warned = new Set<string>();
56
- const UNKNOWN_NAME = Object.keys(ObjectTypeProto)
57
- .find((name) => ObjectTypeProto[name as keyof typeof ObjectTypeProto] === ObjectTypeProto.OBJECT_TYPE_UNKNOWN) as string;
58
- const PREFIX = UNKNOWN_NAME.slice(0, -'UNKNOWN'.length);
59
- const CAMEL_BOUNDARY = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/g;
60
- const ownTypes = new WeakMap<object, ObjectTypeProto>();
61
-
62
- /** The ObjectTypeProto value an object_class string stands for, or OBJECT_TYPE_UNKNOWN. */
63
- export function fromLegacy(objectClass: string): ObjectTypeProto {
64
- return LEGACY.get(objectClass) ?? ObjectTypeProto.OBJECT_TYPE_UNKNOWN;
65
- }
66
-
67
- /**
68
- * The ObjectTypeProto value named for a message type, or OBJECT_TYPE_UNKNOWN.
69
- * Uses the enum's naming rule: `QuerySecurityRequestProto` ->
70
- * OBJECT_TYPE_QUERY_SECURITY_REQUEST.
71
- */
72
- export function ownType(messageName: string): ObjectTypeProto {
73
- const base = messageName.endsWith('Proto') ? messageName.slice(0, -'Proto'.length) : messageName;
74
- const name = PREFIX + base.replace(CAMEL_BOUNDARY, '_').toUpperCase();
75
- return Object.prototype.hasOwnProperty.call(ObjectTypeProto, name)
76
- ? ObjectTypeProto[name as keyof typeof ObjectTypeProto]
77
- : ObjectTypeProto.OBJECT_TYPE_UNKNOWN;
78
- }
72
+ /** The schema version `stamp` writes. Not the library release. */
73
+ export const SCHEMA_VERSION: Version = [0, 0, 1];
79
74
 
80
75
  /**
81
- * The generated class name of `message`. google-protobuf's classes are
82
- * anonymous functions, but each generated module exports its classes under
83
- * the global `proto` namespace by full name, so search that.
76
+ * Sets object_type and version (`SCHEMA_VERSION`) on `message`; returns it.
77
+ * `objectType` is the message's own ObjectTypeProto value.
84
78
  */
85
- function messageName(ctor: object, namespace: unknown, depth = 0): string | undefined {
86
- if (typeof namespace !== 'object' || namespace === null || depth > 8) return undefined;
87
- for (const [key, value] of Object.entries(namespace)) {
88
- if (value === ctor) return key;
89
- const found = messageName(ctor, value, depth + 1);
90
- if (found !== undefined) return found;
91
- }
92
- return undefined;
93
- }
94
-
95
- function ownTypeOf(message: ObjectTyped): ObjectTypeProto {
96
- const ctor = message.constructor;
97
- let type = ownTypes.get(ctor);
98
- if (type === undefined) {
99
- const name = messageName(ctor, (globalThis as { proto?: unknown }).proto);
100
- type = name === undefined ? ObjectTypeProto.OBJECT_TYPE_UNKNOWN : ownType(name);
101
- ownTypes.set(ctor, type);
102
- }
103
- return type;
104
- }
105
-
106
- /** '1.2.3' -> [1, 2, 3]; null unless exactly three decimal uint32 parts. */
107
- export function parseVersion(version: string): Version | null {
108
- if (!VERSION_PATTERN.test(version)) return null;
109
- const parts = version.split('.').map(Number);
110
- if (parts.some((p) => p > UINT32_MAX)) return null;
111
- return [parts[0], parts[1], parts[2]];
112
- }
113
-
114
- /**
115
- * Sets object_class / version and their compact form on `message`; returns it.
116
- * `objectType` is the message's own ObjectTypeProto value. `version` must be
117
- * empty or three uint32 parts.
118
- */
119
- export function stamp<T extends ObjectTyped>(message: T, objectType: ObjectTypeProto, objectClass: string, version: string): T {
120
- const parts = version ? parseVersion(version) : [0, 0, 0];
121
- if (parts === null) {
122
- throw new Error(`version must be MAJOR.MINOR.PATCH, got '${version}'`);
123
- }
124
- message.setObjectClass(objectClass);
125
- message.setVersion(version);
79
+ export function stamp<T extends ObjectTyped>(message: T, objectType: ObjectTypeProto): T {
80
+ const [major, minor, patch] = SCHEMA_VERSION;
126
81
  message.setObjectType(objectType);
127
- setCompactVersion(message, parts as Version);
82
+ message.setVersion(new VersionProto().setMajor(major).setMinor(minor).setPatch(patch));
128
83
  return message;
129
84
  }
130
85
 
131
- function setCompactVersion(message: ObjectTyped, [major, minor, patch]: Version): void {
132
- message.setVersionMajor(major);
133
- message.setVersionMinor(minor);
134
- message.setVersionPatch(patch);
135
- }
136
-
137
- function compactVersion(message: ObjectTyped): Version {
138
- return [message.getVersionMajor(), message.getVersionMinor(), message.getVersionPatch()];
86
+ // Each message with object_type: proto full name, generated class, its own
87
+ // ObjectTypeProto value (LM-320). object-type-coverage.test.ts fails when a
88
+ // message in the descriptor set is missing.
89
+ const OWN_TYPE_ROWS: ReadonlyArray<[string, Function, ObjectTypeProto]> = [
90
+ ['fintekkers.models.portfolio.PortfolioProto', PortfolioProto, ObjectTypeProto.OBJECT_TYPE_PORTFOLIO],
91
+ ['fintekkers.models.position.PositionProto', PositionProto, ObjectTypeProto.OBJECT_TYPE_POSITION],
92
+ ['fintekkers.models.position.PositionFilterProto', PositionFilterProto, ObjectTypeProto.OBJECT_TYPE_POSITION_FILTER],
93
+ ['fintekkers.models.price.PriceProto', PriceProto, ObjectTypeProto.OBJECT_TYPE_PRICE],
94
+ ['fintekkers.models.security.IdentifierProto', IdentifierProto, ObjectTypeProto.OBJECT_TYPE_IDENTIFIER],
95
+ ['fintekkers.models.security.SecurityProto', SecurityProto, ObjectTypeProto.OBJECT_TYPE_SECURITY],
96
+ ['fintekkers.models.security.TenorProto', TenorProto, ObjectTypeProto.OBJECT_TYPE_TENOR],
97
+ ['fintekkers.models.strategy.StrategyProto', StrategyProto, ObjectTypeProto.OBJECT_TYPE_STRATEGY],
98
+ ['fintekkers.models.strategy.StrategyAllocationProto', StrategyAllocationProto, ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION],
99
+ ['fintekkers.models.transaction.TransactionProto', TransactionProto, ObjectTypeProto.OBJECT_TYPE_TRANSACTION],
100
+ ['fintekkers.requests.portfolio.CreatePortfolioRequestProto', CreatePortfolioRequestProto, ObjectTypeProto.OBJECT_TYPE_CREATE_PORTFOLIO_REQUEST],
101
+ ['fintekkers.requests.portfolio.QueryPortfolioRequestProto', QueryPortfolioRequestProto, ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_REQUEST],
102
+ ['fintekkers.requests.price.CreatePriceRequestProto', CreatePriceRequestProto, ObjectTypeProto.OBJECT_TYPE_CREATE_PRICE_REQUEST],
103
+ ['fintekkers.requests.price.QueryPriceRequestProto', QueryPriceRequestProto, ObjectTypeProto.OBJECT_TYPE_QUERY_PRICE_REQUEST],
104
+ ['fintekkers.requests.security.CreateSecurityRequestProto', CreateSecurityRequestProto, ObjectTypeProto.OBJECT_TYPE_CREATE_SECURITY_REQUEST],
105
+ ['fintekkers.requests.security.QuerySecurityRequestProto', QuerySecurityRequestProto, ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_REQUEST],
106
+ ['fintekkers.requests.transaction.CreateTransactionRequestProto', CreateTransactionRequestProto, ObjectTypeProto.OBJECT_TYPE_CREATE_TRANSACTION_REQUEST],
107
+ ['fintekkers.requests.transaction.QueryTransactionRequestProto', QueryTransactionRequestProto, ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_REQUEST],
108
+ // LM-320: the rest of the messages with object_type.
109
+ ['fintekkers.models.security.bond.IssuanceProto', IssuanceProto, ObjectTypeProto.OBJECT_TYPE_ISSUANCE],
110
+ ['fintekkers.models.security.IndexCompositionProto', IndexCompositionProto, ObjectTypeProto.OBJECT_TYPE_INDEX_COMPOSITION],
111
+ ['fintekkers.models.util.DateRangeProto', DateRangeProto, ObjectTypeProto.OBJECT_TYPE_DATE_RANGE],
112
+ ['fintekkers.models.util.api.API_Key', API_Key, ObjectTypeProto.OBJECT_TYPE_API_KEY],
113
+ ['fintekkers.models.util.lock.NodeState', NodeState, ObjectTypeProto.OBJECT_TYPE_NODE_STATE],
114
+ ['fintekkers.models.util.lock.NodePartition', NodePartition, ObjectTypeProto.OBJECT_TYPE_NODE_PARTITION],
115
+ ['fintekkers.requests.index_composition.CreateIndexCompositionRequestProto', CreateIndexCompositionRequestProto, ObjectTypeProto.OBJECT_TYPE_CREATE_INDEX_COMPOSITION_REQUEST],
116
+ ['fintekkers.requests.index_composition.CreateIndexCompositionResponseProto', CreateIndexCompositionResponseProto, ObjectTypeProto.OBJECT_TYPE_CREATE_INDEX_COMPOSITION_RESPONSE],
117
+ ['fintekkers.requests.index_composition.GetIndexCompositionRequestProto', GetIndexCompositionRequestProto, ObjectTypeProto.OBJECT_TYPE_GET_INDEX_COMPOSITION_REQUEST],
118
+ ['fintekkers.requests.index_composition.GetIndexCompositionResponseProto', GetIndexCompositionResponseProto, ObjectTypeProto.OBJECT_TYPE_GET_INDEX_COMPOSITION_RESPONSE],
119
+ ['fintekkers.requests.portfolio.CreatePortfolioResponseProto', CreatePortfolioResponseProto, ObjectTypeProto.OBJECT_TYPE_CREATE_PORTFOLIO_RESPONSE],
120
+ ['fintekkers.requests.portfolio.QueryPortfolioResponseProto', QueryPortfolioResponseProto, ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_RESPONSE],
121
+ ['fintekkers.requests.position.QueryPositionRequestProto', QueryPositionRequestProto, ObjectTypeProto.OBJECT_TYPE_QUERY_POSITION_REQUEST],
122
+ ['fintekkers.requests.position.QueryPositionResponseProto', QueryPositionResponseProto, ObjectTypeProto.OBJECT_TYPE_QUERY_POSITION_RESPONSE],
123
+ ['fintekkers.requests.price.CreatePriceResponseProto', CreatePriceResponseProto, ObjectTypeProto.OBJECT_TYPE_CREATE_PRICE_RESPONSE],
124
+ ['fintekkers.requests.price.QueryPriceResponseProto', QueryPriceResponseProto, ObjectTypeProto.OBJECT_TYPE_QUERY_PRICE_RESPONSE],
125
+ ['fintekkers.requests.security.CreateSecurityResponseProto', CreateSecurityResponseProto, ObjectTypeProto.OBJECT_TYPE_CREATE_SECURITY_RESPONSE],
126
+ ['fintekkers.requests.security.QuerySecurityResponseProto', QuerySecurityResponseProto, ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_RESPONSE],
127
+ ['fintekkers.requests.security.GetFieldsResponseProto', GetFieldsResponseProto, ObjectTypeProto.OBJECT_TYPE_GET_FIELDS_RESPONSE],
128
+ ['fintekkers.requests.security.GetFieldValuesRequestProto', GetFieldValuesRequestProto, ObjectTypeProto.OBJECT_TYPE_GET_FIELD_VALUES_REQUEST],
129
+ ['fintekkers.requests.security.GetFieldValuesResponseProto', GetFieldValuesResponseProto, ObjectTypeProto.OBJECT_TYPE_GET_FIELD_VALUES_RESPONSE],
130
+ ['fintekkers.requests.transaction.CreateTransactionResponseProto', CreateTransactionResponseProto, ObjectTypeProto.OBJECT_TYPE_CREATE_TRANSACTION_RESPONSE],
131
+ ['fintekkers.requests.transaction.QueryTransactionResponseProto', QueryTransactionResponseProto, ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_RESPONSE],
132
+ ['fintekkers.requests.util.DeleteRequestProto', DeleteRequestProto, ObjectTypeProto.OBJECT_TYPE_DELETE_REQUEST],
133
+ ['fintekkers.requests.util.DeleteResponseProto', DeleteResponseProto, ObjectTypeProto.OBJECT_TYPE_DELETE_RESPONSE],
134
+ ['fintekkers.requests.util.lock.LockRequestProto', LockRequestProto, ObjectTypeProto.OBJECT_TYPE_LOCK_REQUEST],
135
+ ['fintekkers.requests.util.lock.LockResponseProto', LockResponseProto, ObjectTypeProto.OBJECT_TYPE_LOCK_RESPONSE],
136
+ ['fintekkers.requests.valuation.ValuationRequestProto', ValuationRequestProto, ObjectTypeProto.OBJECT_TYPE_VALUATION_REQUEST],
137
+ ['fintekkers.requests.valuation.ValuationResponseProto', ValuationResponseProto, ObjectTypeProto.OBJECT_TYPE_VALUATION_RESPONSE],
138
+ ['fintekkers.requests.valuation.CurveRequestProto', CurveRequestProto, ObjectTypeProto.OBJECT_TYPE_CURVE_REQUEST],
139
+ ['fintekkers.requests.valuation.CurveResponseProto', CurveResponseProto, ObjectTypeProto.OBJECT_TYPE_CURVE_RESPONSE],
140
+ ];
141
+
142
+ const OWN_TYPES: ReadonlyMap<Function, ObjectTypeProto> = new Map(
143
+ OWN_TYPE_ROWS.map(([, messageClass, objectType]) => [messageClass, objectType]),
144
+ );
145
+
146
+ /** Each message with object_type, by proto full name, to its own ObjectTypeProto value. */
147
+ export const OWN_TYPE_NAMES: ReadonlyMap<string, ObjectTypeProto> = new Map(
148
+ OWN_TYPE_ROWS.map(([fullName, , objectType]) => [fullName, objectType]),
149
+ );
150
+
151
+ /** The message's own ObjectTypeProto value, or undefined when its class has none. */
152
+ export function ownType(message: object): ObjectTypeProto | undefined {
153
+ return OWN_TYPES.get(message.constructor);
139
154
  }
140
155
 
141
- function decode(message: ObjectTyped): { objectType: ObjectTypeProto; version: Version } {
142
- const objectClass = message.getObjectClass();
143
- const versionString = message.getVersion();
144
- let objectType = message.getObjectType();
145
- let version = compactVersion(message);
146
- const problems: string[] = [];
147
- let usedStrings = false;
148
-
149
- if (objectType === ObjectTypeProto.OBJECT_TYPE_UNKNOWN && objectClass) {
150
- usedStrings = true;
151
- objectType = fromLegacy(objectClass);
152
- if (objectType === ObjectTypeProto.OBJECT_TYPE_UNKNOWN) {
153
- problems.push(' (unknown object_class, using OBJECT_TYPE_UNKNOWN)');
154
- } else {
155
- // Some strings were written on more than one message type (e.g.
156
- // 'SecurityRequest' on the create and query requests): the message's
157
- // own type wins over the value the string sits on.
158
- const own = ownTypeOf(message);
159
- if (own !== ObjectTypeProto.OBJECT_TYPE_UNKNOWN) objectType = own;
160
- }
161
- }
162
- if (version.every((p) => p === 0) && versionString) {
163
- usedStrings = true;
164
- const parsed = parseVersion(versionString);
165
- if (parsed === null) {
166
- problems.push(' (malformed version, using 0.0.0)');
167
- } else {
168
- version = parsed;
169
- }
170
- }
171
-
172
- const key = `${objectClass}\u0000${versionString}`;
173
- if (usedStrings && !warned.has(key)) {
174
- warned.add(key);
175
- console.warn(
176
- `${message.constructor.name} read from deprecated strings object_class='${objectClass}' ` +
177
- `version='${versionString}'${problems.join('')}; re-save it to write object_type and ` +
178
- 'version_major/minor/patch (LM-297)');
156
+ /**
157
+ * `stamp` with the message's own ObjectTypeProto value (LM-320); returns it.
158
+ * Throws an Error when its class has no own value. Generated classes are
159
+ * anonymous at runtime, so the error names the class only when it has a name.
160
+ */
161
+ export function stampOwn<T extends ObjectTyped>(message: T): T {
162
+ const objectType = ownType(message);
163
+ if (objectType === undefined) {
164
+ throw new Error(`${message.constructor?.name || 'this message type'} has no own ObjectTypeProto`);
179
165
  }
180
- return { objectType, version };
181
- }
182
-
183
- /** The message's ObjectTypeProto value: object_type, else the object_class string. */
184
- export function readType(message: ObjectTyped): ObjectTypeProto {
185
- return decode(message).objectType;
186
- }
187
-
188
- /** The message's [major, minor, patch]: the compact fields, else the version string. */
189
- export function readVersion(message: ObjectTyped): Version {
190
- return decode(message).version;
166
+ return stamp(message, objectType);
191
167
  }
192
168
 
193
169
  /**
194
- * Fills the compact fields from the strings where they are unset; returns `message`.
195
- * The strings are kept, so re-serialising writes both forms.
170
+ * The message's ObjectTypeProto value; OBJECT_TYPE_UNKNOWN when unset. A value
171
+ * added after this build is returned as its number.
196
172
  */
197
- export function upgrade<T extends ObjectTyped>(message: T): T {
198
- const { objectType, version } = decode(message);
199
- message.setObjectType(objectType);
200
- setCompactVersion(message, version);
201
- return message;
173
+ export function readType(message: ObjectTyped): ObjectTypeProto {
174
+ return message.getObjectType();
202
175
  }
203
176
 
204
- /** Forgets which strings have warned. Tests only. */
205
- export function resetWarningsForTests(): void {
206
- warned.clear();
177
+ /** The message's [major, minor, patch], or undefined when version is absent. */
178
+ export function readVersion(message: ObjectTyped): Version | undefined {
179
+ const version = message.getVersion();
180
+ if (!message.hasVersion() || version === undefined) return undefined;
181
+ return [version.getMajor(), version.getMinor(), version.getPatch()];
207
182
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@fintekkers/ledger-models",
3
3
  "todo": "Replace the version with build script version number",
4
- "version": "0.4.43",
4
+ "version": "0.4.45",
5
5
  "description": "ledger model protos ",
6
6
  "authors": [
7
7
  "David Doherty",
@@ -1,107 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- var __generator = (this && this.__generator) || function (thisArg, body) {
12
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
- function verb(n) { return function (v) { return step([n, v]); }; }
15
- function step(op) {
16
- if (f) throw new TypeError("Generator is already executing.");
17
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
- if (y = 0, t) op = [op[0] & 2, t.value];
20
- switch (op[0]) {
21
- case 0: case 1: t = op; break;
22
- case 4: _.label++; return { value: op[1], done: false };
23
- case 5: _.label++; y = op[1]; op = [0]; continue;
24
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
- default:
26
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
- if (t[2]) _.ops.pop();
31
- _.trys.pop(); continue;
32
- }
33
- op = body.call(thisArg, _);
34
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
- }
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- var uuid_1 = require("../utils/uuid");
40
- var any_pb_1 = require("google-protobuf/google/protobuf/any_pb");
41
- var decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
42
- var position_pb_1 = require("../../../fintekkers/models/position/position_pb");
43
- var position_util_pb_1 = require("../../../fintekkers/models/position/position_util_pb");
44
- var field_pb_1 = require("../../../fintekkers/models/position/field_pb");
45
- var measure_pb_1 = require("../../../fintekkers/models/position/measure_pb");
46
- var security_pb_1 = require("../../../fintekkers/models/security/security_pb");
47
- var portfolio_pb_1 = require("../../../fintekkers/models/portfolio/portfolio_pb");
48
- var position_1 = require("./position");
49
- var date_1 = require("../utils/date");
50
- var position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
51
- test('test the position wrapper', function () { return __awaiter(void 0, void 0, void 0, function () {
52
- var isTrue;
53
- return __generator(this, function (_a) {
54
- switch (_a.label) {
55
- case 0: return [4 /*yield*/, testSerialization()];
56
- case 1:
57
- isTrue = _a.sent();
58
- expect(isTrue).toBe(true);
59
- return [2 /*return*/];
60
- }
61
- });
62
- }); });
63
- function testSerialization() {
64
- return __awaiter(this, void 0, void 0, function () {
65
- var fields, security, portfolio, tradeDate, productType, id, measure, measureValue, tradeDatePacked, idPacked, positionProto, position, tradeDatePosition, securityPosition, portfolioPosition, positionID;
66
- return __generator(this, function (_a) {
67
- fields = [field_pb_1.FieldProto.ID, field_pb_1.FieldProto.TRADE_DATE, field_pb_1.FieldProto.PRODUCT_TYPE, field_pb_1.FieldProto.PORTFOLIO, field_pb_1.FieldProto.SECURITY];
68
- security = new security_pb_1.SecurityProto().setAssetClass("Test");
69
- portfolio = new portfolio_pb_1.PortfolioProto().setPortfolioName("Test portfolio");
70
- tradeDate = date_1.LocalDate.today().toDate();
71
- productType = "Test product type";
72
- id = new uuid_1.UUID(uuid_1.UUID.random().toBytes());
73
- measure = measure_pb_1.MeasureProto.DIRECTED_QUANTITY;
74
- measureValue = new decimal_value_pb_1.DecimalValueProto().setArbitraryPrecisionValue("1.0");
75
- tradeDatePacked = new any_pb_1.Any();
76
- tradeDatePacked.setTypeUrl("Doesn't matter");
77
- tradeDatePacked.setValue(date_1.LocalDate.from(tradeDate).toProto().serializeBinary());
78
- idPacked = new any_pb_1.Any();
79
- idPacked.setTypeUrl("Doesn't matter");
80
- idPacked.setValue(id.toUUIDProto().serializeBinary());
81
- positionProto = new position_pb_1.PositionProto();
82
- positionProto.setFieldsList([
83
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.TRADE_DATE).setFieldValuePacked(tradeDatePacked),
84
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.SECURITY).setFieldValuePacked(security),
85
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PORTFOLIO).setFieldValuePacked(portfolio),
86
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.POSITION_STATUS).setEnumValue(position_status_pb_1.PositionStatusProto.EXECUTED),
87
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.PRODUCT_TYPE).setStringValue(productType),
88
- new position_util_pb_1.FieldMapEntry().setField(field_pb_1.FieldProto.ID).setFieldValuePacked(idPacked),
89
- ]);
90
- position = new position_1.Position(positionProto);
91
- tradeDatePosition = position.getFieldValue(field_pb_1.FieldProto.TRADE_DATE);
92
- expect(tradeDate.getFullYear()).toBe(tradeDatePosition.getFullYear());
93
- expect(tradeDate.getMonth()).toBe(tradeDatePosition.getMonth());
94
- expect(tradeDate.getDay()).toBe(tradeDatePosition.getDay());
95
- securityPosition = position.getFieldValue(field_pb_1.FieldProto.SECURITY);
96
- expect(securityPosition.getAssetClass()).toBe(security.getAssetClass());
97
- portfolioPosition = position.getFieldValue(field_pb_1.FieldProto.PORTFOLIO);
98
- expect(portfolioPosition.getPortfolioName()).toBe(portfolio.getPortfolioName());
99
- expect(position.getFieldValue(field_pb_1.FieldProto.PRODUCT_TYPE)).toBe(productType);
100
- positionID = position.getFieldValue(field_pb_1.FieldProto.ID);
101
- expect(positionID.toString()).toBe(id.toString());
102
- expect(position.getFieldValue(field_pb_1.FieldProto.POSITION_STATUS)).toBe(position_status_pb_1.PositionStatusProto.EXECUTED);
103
- return [2 /*return*/, true];
104
- });
105
- });
106
- }
107
- //# sourceMappingURL=position.test%20copy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"position.test copy.js","sourceRoot":"","sources":["position.test copy.ts"],"names":[],"mappings":"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"}