@fintekkers/ledger-models 0.4.43 → 0.4.44

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 (254) 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-types.d.ts +21 -47
  237. package/node/wrappers/util/object-types.js +19 -178
  238. package/node/wrappers/util/object-types.js.map +1 -1
  239. package/node/wrappers/util/object-types.test.js +50 -151
  240. package/node/wrappers/util/object-types.test.js.map +1 -1
  241. package/node/wrappers/util/object-types.test.ts +55 -170
  242. package/node/wrappers/util/object-types.ts +28 -182
  243. package/package.json +1 -1
  244. package/node/wrappers/models/position/position.test copy.js +0 -107
  245. package/node/wrappers/models/position/position.test copy.js.map +0 -1
  246. package/node/wrappers/models/utils/decimal.legacy.test.d.ts +0 -1
  247. package/node/wrappers/models/utils/decimal.legacy.test.js +0 -174
  248. package/node/wrappers/models/utils/decimal.legacy.test.js.map +0 -1
  249. package/node/wrappers/models/utils/decimal.legacy.test.ts +0 -158
  250. package/node/wrappers/models/utils/decimal.typings.test.d.ts +0 -1
  251. package/node/wrappers/models/utils/decimal.typings.test.js +0 -39
  252. package/node/wrappers/models/utils/decimal.typings.test.js.map +0 -1
  253. package/node/wrappers/models/utils/decimal.typings.test.ts +0 -16
  254. package/node/wrappers/util/object-type-legacy.json +0 -21
@@ -1,62 +1,36 @@
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`. Readers call `readType` / `readVersion`. The old
7
+ * `object_class` / `version` strings were replaced in place by LM-318: bytes
8
+ * written before it are not readable. See
9
+ * docs/adr/compact_object_type_and_version.md.
17
10
  */
18
11
  import { ObjectTypeProto } from '../../fintekkers/models/util/object_type_pb';
19
- /** Any generated message that carries object_class / version and their compact form. */
12
+ import { VersionProto } from '../../fintekkers/models/util/version_pb';
13
+ /** Any generated message that carries object_type and version. */
20
14
  export interface ObjectTyped {
21
- getObjectClass(): string;
22
- setObjectClass(value: string): unknown;
23
- getVersion(): string;
24
- setVersion(value: string): unknown;
25
15
  getObjectType(): ObjectTypeProto;
26
16
  setObjectType(value: ObjectTypeProto): unknown;
27
- getVersionMajor(): number;
28
- setVersionMajor(value: number): unknown;
29
- getVersionMinor(): number;
30
- setVersionMinor(value: number): unknown;
31
- getVersionPatch(): number;
32
- setVersionPatch(value: number): unknown;
17
+ hasVersion(): boolean;
18
+ getVersion(): VersionProto | undefined;
19
+ setVersion(value?: VersionProto): unknown;
33
20
  }
34
21
  /** [major, minor, patch], each a uint32. */
35
22
  export type Version = [number, number, number];
36
- /** The ObjectTypeProto value an object_class string stands for, or OBJECT_TYPE_UNKNOWN. */
37
- export declare function fromLegacy(objectClass: string): ObjectTypeProto;
23
+ /** The schema version `stamp` writes. Not the library release. */
24
+ export declare const SCHEMA_VERSION: Version;
38
25
  /**
39
- * The ObjectTypeProto value named for a message type, or OBJECT_TYPE_UNKNOWN.
40
- * Uses the enum's naming rule: `QuerySecurityRequestProto` ->
41
- * OBJECT_TYPE_QUERY_SECURITY_REQUEST.
26
+ * Sets object_type and version (`SCHEMA_VERSION`) on `message`; returns it.
27
+ * `objectType` is the message's own ObjectTypeProto value.
42
28
  */
43
- export declare function ownType(messageName: string): ObjectTypeProto;
44
- /** '1.2.3' -> [1, 2, 3]; null unless exactly three decimal uint32 parts. */
45
- export declare function parseVersion(version: string): Version | null;
29
+ export declare function stamp<T extends ObjectTyped>(message: T, objectType: ObjectTypeProto): T;
46
30
  /**
47
- * Sets object_class / version and their compact form on `message`; returns it.
48
- * `objectType` is the message's own ObjectTypeProto value. `version` must be
49
- * empty or three uint32 parts.
31
+ * The message's ObjectTypeProto value; OBJECT_TYPE_UNKNOWN when unset. A value
32
+ * added after this build is returned as its number.
50
33
  */
51
- export declare function stamp<T extends ObjectTyped>(message: T, objectType: ObjectTypeProto, objectClass: string, version: string): T;
52
- /** The message's ObjectTypeProto value: object_type, else the object_class string. */
53
34
  export declare function readType(message: ObjectTyped): ObjectTypeProto;
54
- /** The message's [major, minor, patch]: the compact fields, else the version string. */
55
- export declare function readVersion(message: ObjectTyped): Version;
56
- /**
57
- * Fills the compact fields from the strings where they are unset; returns `message`.
58
- * The strings are kept, so re-serialising writes both forms.
59
- */
60
- export declare function upgrade<T extends ObjectTyped>(message: T): T;
61
- /** Forgets which strings have warned. Tests only. */
62
- export declare function resetWarningsForTests(): void;
35
+ /** The message's [major, minor, patch], or undefined when version is absent. */
36
+ export declare function readVersion(message: ObjectTyped): Version | undefined;
@@ -1,193 +1,34 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resetWarningsForTests = exports.upgrade = exports.readVersion = exports.readType = exports.stamp = exports.parseVersion = exports.ownType = exports.fromLegacy = void 0;
3
+ exports.readVersion = exports.readType = exports.stamp = exports.SCHEMA_VERSION = void 0;
4
+ const version_pb_1 = require("../../fintekkers/models/util/version_pb");
5
+ /** The schema version `stamp` writes. Not the library release. */
6
+ exports.SCHEMA_VERSION = [0, 0, 1];
7
7
  /**
8
- * Compact object type and version (LM-297), stage 1: write both forms, read the new one.
9
- *
10
- * Every message with `string object_class = 1` and `string version = 2` also
11
- * carries `ObjectTypeProto object_type = 1001` and `uint32 version_major /
12
- * version_minor / version_patch = 1002-1004`. Writers call `stamp`, which sets
13
- * the strings and the new fields. Readers call `readType` / `readVersion` (or
14
- * `upgrade`), which use the new fields and fall back to the deprecated strings,
15
- * logging one `console.warn` per distinct pair of strings. A fallback never
16
- * throws: an unknown object_class gives OBJECT_TYPE_UNKNOWN and a malformed
17
- * version gives 0.0.0. Empty strings are the proto3 default and fall back
18
- * silently.
19
- *
20
- * google-protobuf cannot read the `(legacy_object_class)` options at runtime,
21
- * so the string map comes from object-type-legacy.json, generated by
22
- * scripts/gen-object-type-legacy-map.py. See docs/adr/compact_object_type_and_version.md.
8
+ * Sets object_type and version (`SCHEMA_VERSION`) on `message`; returns it.
9
+ * `objectType` is the message's own ObjectTypeProto value.
23
10
  */
24
- const object_type_pb_1 = require("../../fintekkers/models/util/object_type_pb");
25
- const object_type_legacy_json_1 = __importDefault(require("./object-type-legacy.json"));
26
- const UINT32_MAX = 0xffffffff;
27
- const VERSION_PATTERN = /^[0-9]+\.[0-9]+\.[0-9]+$/;
28
- function buildLegacyMap() {
29
- const map = new Map();
30
- for (const [legacy, name] of Object.entries(object_type_legacy_json_1.default.legacy_object_class)) {
31
- if (!Object.prototype.hasOwnProperty.call(object_type_pb_1.ObjectTypeProto, name)) {
32
- throw new Error(`object-type-legacy.json names ${name}, which ObjectTypeProto lacks: regenerate it`);
33
- }
34
- map.set(legacy, object_type_pb_1.ObjectTypeProto[name]);
35
- }
36
- return map;
37
- }
38
- const LEGACY = buildLegacyMap();
39
- const warned = new Set();
40
- const UNKNOWN_NAME = Object.keys(object_type_pb_1.ObjectTypeProto)
41
- .find((name) => object_type_pb_1.ObjectTypeProto[name] === object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN);
42
- const PREFIX = UNKNOWN_NAME.slice(0, -'UNKNOWN'.length);
43
- const CAMEL_BOUNDARY = /(?<=[a-z0-9])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])/g;
44
- const ownTypes = new WeakMap();
45
- /** The ObjectTypeProto value an object_class string stands for, or OBJECT_TYPE_UNKNOWN. */
46
- function fromLegacy(objectClass) {
47
- var _a;
48
- return (_a = LEGACY.get(objectClass)) !== null && _a !== void 0 ? _a : object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN;
49
- }
50
- exports.fromLegacy = fromLegacy;
51
- /**
52
- * The ObjectTypeProto value named for a message type, or OBJECT_TYPE_UNKNOWN.
53
- * Uses the enum's naming rule: `QuerySecurityRequestProto` ->
54
- * OBJECT_TYPE_QUERY_SECURITY_REQUEST.
55
- */
56
- function ownType(messageName) {
57
- const base = messageName.endsWith('Proto') ? messageName.slice(0, -'Proto'.length) : messageName;
58
- const name = PREFIX + base.replace(CAMEL_BOUNDARY, '_').toUpperCase();
59
- return Object.prototype.hasOwnProperty.call(object_type_pb_1.ObjectTypeProto, name)
60
- ? object_type_pb_1.ObjectTypeProto[name]
61
- : object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN;
62
- }
63
- exports.ownType = ownType;
64
- /**
65
- * The generated class name of `message`. google-protobuf's classes are
66
- * anonymous functions, but each generated module exports its classes under
67
- * the global `proto` namespace by full name, so search that.
68
- */
69
- function messageName(ctor, namespace, depth = 0) {
70
- if (typeof namespace !== 'object' || namespace === null || depth > 8)
71
- return undefined;
72
- for (const [key, value] of Object.entries(namespace)) {
73
- if (value === ctor)
74
- return key;
75
- const found = messageName(ctor, value, depth + 1);
76
- if (found !== undefined)
77
- return found;
78
- }
79
- return undefined;
80
- }
81
- function ownTypeOf(message) {
82
- const ctor = message.constructor;
83
- let type = ownTypes.get(ctor);
84
- if (type === undefined) {
85
- const name = messageName(ctor, globalThis.proto);
86
- type = name === undefined ? object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN : ownType(name);
87
- ownTypes.set(ctor, type);
88
- }
89
- return type;
90
- }
91
- /** '1.2.3' -> [1, 2, 3]; null unless exactly three decimal uint32 parts. */
92
- function parseVersion(version) {
93
- if (!VERSION_PATTERN.test(version))
94
- return null;
95
- const parts = version.split('.').map(Number);
96
- if (parts.some((p) => p > UINT32_MAX))
97
- return null;
98
- return [parts[0], parts[1], parts[2]];
99
- }
100
- exports.parseVersion = parseVersion;
101
- /**
102
- * Sets object_class / version and their compact form on `message`; returns it.
103
- * `objectType` is the message's own ObjectTypeProto value. `version` must be
104
- * empty or three uint32 parts.
105
- */
106
- function stamp(message, objectType, objectClass, version) {
107
- const parts = version ? parseVersion(version) : [0, 0, 0];
108
- if (parts === null) {
109
- throw new Error(`version must be MAJOR.MINOR.PATCH, got '${version}'`);
110
- }
111
- message.setObjectClass(objectClass);
112
- message.setVersion(version);
11
+ function stamp(message, objectType) {
12
+ const [major, minor, patch] = exports.SCHEMA_VERSION;
113
13
  message.setObjectType(objectType);
114
- setCompactVersion(message, parts);
14
+ message.setVersion(new version_pb_1.VersionProto().setMajor(major).setMinor(minor).setPatch(patch));
115
15
  return message;
116
16
  }
117
17
  exports.stamp = stamp;
118
- function setCompactVersion(message, [major, minor, patch]) {
119
- message.setVersionMajor(major);
120
- message.setVersionMinor(minor);
121
- message.setVersionPatch(patch);
122
- }
123
- function compactVersion(message) {
124
- return [message.getVersionMajor(), message.getVersionMinor(), message.getVersionPatch()];
125
- }
126
- function decode(message) {
127
- const objectClass = message.getObjectClass();
128
- const versionString = message.getVersion();
129
- let objectType = message.getObjectType();
130
- let version = compactVersion(message);
131
- const problems = [];
132
- let usedStrings = false;
133
- if (objectType === object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN && objectClass) {
134
- usedStrings = true;
135
- objectType = fromLegacy(objectClass);
136
- if (objectType === object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN) {
137
- problems.push(' (unknown object_class, using OBJECT_TYPE_UNKNOWN)');
138
- }
139
- else {
140
- // Some strings were written on more than one message type (e.g.
141
- // 'SecurityRequest' on the create and query requests): the message's
142
- // own type wins over the value the string sits on.
143
- const own = ownTypeOf(message);
144
- if (own !== object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN)
145
- objectType = own;
146
- }
147
- }
148
- if (version.every((p) => p === 0) && versionString) {
149
- usedStrings = true;
150
- const parsed = parseVersion(versionString);
151
- if (parsed === null) {
152
- problems.push(' (malformed version, using 0.0.0)');
153
- }
154
- else {
155
- version = parsed;
156
- }
157
- }
158
- const key = `${objectClass}\u0000${versionString}`;
159
- if (usedStrings && !warned.has(key)) {
160
- warned.add(key);
161
- console.warn(`${message.constructor.name} read from deprecated strings object_class='${objectClass}' ` +
162
- `version='${versionString}'${problems.join('')}; re-save it to write object_type and ` +
163
- 'version_major/minor/patch (LM-297)');
164
- }
165
- return { objectType, version };
166
- }
167
- /** The message's ObjectTypeProto value: object_type, else the object_class string. */
18
+ /**
19
+ * The message's ObjectTypeProto value; OBJECT_TYPE_UNKNOWN when unset. A value
20
+ * added after this build is returned as its number.
21
+ */
168
22
  function readType(message) {
169
- return decode(message).objectType;
23
+ return message.getObjectType();
170
24
  }
171
25
  exports.readType = readType;
172
- /** The message's [major, minor, patch]: the compact fields, else the version string. */
26
+ /** The message's [major, minor, patch], or undefined when version is absent. */
173
27
  function readVersion(message) {
174
- return decode(message).version;
28
+ const version = message.getVersion();
29
+ if (!message.hasVersion() || version === undefined)
30
+ return undefined;
31
+ return [version.getMajor(), version.getMinor(), version.getPatch()];
175
32
  }
176
33
  exports.readVersion = readVersion;
177
- /**
178
- * Fills the compact fields from the strings where they are unset; returns `message`.
179
- * The strings are kept, so re-serialising writes both forms.
180
- */
181
- function upgrade(message) {
182
- const { objectType, version } = decode(message);
183
- message.setObjectType(objectType);
184
- setCompactVersion(message, version);
185
- return message;
186
- }
187
- exports.upgrade = upgrade;
188
- /** Forgets which strings have warned. Tests only. */
189
- function resetWarningsForTests() {
190
- warned.clear();
191
- }
192
- exports.resetWarningsForTests = resetWarningsForTests;
193
34
  //# sourceMappingURL=object-types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-types.js","sourceRoot":"","sources":["object-types.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,gFAA8E;AAC9E,wFAAqD;AAqBrD,MAAM,UAAU,GAAG,UAAU,CAAC;AAC9B,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD,SAAS,cAAc;IACrB,MAAM,GAAG,GAAG,IAAI,GAAG,EAA2B,CAAC;IAC/C,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,iCAAY,CAAC,mBAAmB,CAAC,EAAE;QAC7E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gCAAe,EAAE,IAAI,CAAC,EAAE;YAChE,MAAM,IAAI,KAAK,CAAC,iCAAiC,IAAI,8CAA8C,CAAC,CAAC;SACtG;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,gCAAe,CAAC,IAAoC,CAAC,CAAC,CAAC;KACxE;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,MAAM,GAAG,cAAc,EAAE,CAAC;AAChC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AACjC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,gCAAe,CAAC;KAC9C,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gCAAe,CAAC,IAAoC,CAAC,KAAK,gCAAe,CAAC,mBAAmB,CAAW,CAAC;AAC3H,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACxD,MAAM,cAAc,GAAG,kDAAkD,CAAC;AAC1E,MAAM,QAAQ,GAAG,IAAI,OAAO,EAA2B,CAAC;AAExD,2FAA2F;AAC3F,SAAgB,UAAU,CAAC,WAAmB;;IAC5C,OAAO,MAAA,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,mCAAI,gCAAe,CAAC,mBAAmB,CAAC;AACxE,CAAC;AAFD,gCAEC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,WAAmB;IACzC,MAAM,IAAI,GAAG,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACjG,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;IACtE,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,gCAAe,EAAE,IAAI,CAAC;QAChE,CAAC,CAAC,gCAAe,CAAC,IAAoC,CAAC;QACvD,CAAC,CAAC,gCAAe,CAAC,mBAAmB,CAAC;AAC1C,CAAC;AAND,0BAMC;AAED;;;;GAIG;AACH,SAAS,WAAW,CAAC,IAAY,EAAE,SAAkB,EAAE,KAAK,GAAG,CAAC;IAC9D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,IAAI,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;QACpD,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,GAAG,CAAC;QAC/B,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,KAAK,CAAC;KACvC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,SAAS,CAAC,OAAoB;IACrC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IACjC,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,EAAG,UAAkC,CAAC,KAAK,CAAC,CAAC;QAC1E,IAAI,GAAG,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,gCAAe,CAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAChF,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC1B;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4EAA4E;AAC5E,SAAgB,YAAY,CAAC,OAAe;IAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,CAAC;AALD,oCAKC;AAED;;;;GAIG;AACH,SAAgB,KAAK,CAAwB,OAAU,EAAE,UAA2B,EAAE,WAAmB,EAAE,OAAe;IACxH,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,KAAK,IAAI,EAAE;QAClB,MAAM,IAAI,KAAK,CAAC,2CAA2C,OAAO,GAAG,CAAC,CAAC;KACxE;IACD,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,iBAAiB,CAAC,OAAO,EAAE,KAAgB,CAAC,CAAC;IAC7C,OAAO,OAAO,CAAC;AACjB,CAAC;AAVD,sBAUC;AAED,SAAS,iBAAiB,CAAC,OAAoB,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU;IAC7E,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,cAAc,CAAC,OAAoB;IAC1C,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,MAAM,CAAC,OAAoB;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAC7C,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACzC,IAAI,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;IAExB,IAAI,UAAU,KAAK,gCAAe,CAAC,mBAAmB,IAAI,WAAW,EAAE;QACrE,WAAW,GAAG,IAAI,CAAC;QACnB,UAAU,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QACrC,IAAI,UAAU,KAAK,gCAAe,CAAC,mBAAmB,EAAE;YACtD,QAAQ,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;SACrE;aAAM;YACL,gEAAgE;YAChE,qEAAqE;YACrE,mDAAmD;YACnD,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,gCAAe,CAAC,mBAAmB;gBAAE,UAAU,GAAG,GAAG,CAAC;SACnE;KACF;IACD,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,aAAa,EAAE;QAClD,WAAW,GAAG,IAAI,CAAC;QACnB,MAAM,MAAM,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;QAC3C,IAAI,MAAM,KAAK,IAAI,EAAE;YACnB,QAAQ,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAAC;SACpD;aAAM;YACL,OAAO,GAAG,MAAM,CAAC;SAClB;KACF;IAED,MAAM,GAAG,GAAG,GAAG,WAAW,SAAS,aAAa,EAAE,CAAC;IACnD,IAAI,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACnC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CACV,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,+CAA+C,WAAW,IAAI;YACzF,YAAY,aAAa,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,wCAAwC;YACtF,oCAAoC,CAAC,CAAC;KACzC;IACD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,sFAAsF;AACtF,SAAgB,QAAQ,CAAC,OAAoB;IAC3C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC;AACpC,CAAC;AAFD,4BAEC;AAED,wFAAwF;AACxF,SAAgB,WAAW,CAAC,OAAoB;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AACjC,CAAC;AAFD,kCAEC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAwB,OAAU;IACvD,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,iBAAiB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,OAAO,OAAO,CAAC;AACjB,CAAC;AALD,0BAKC;AAED,qDAAqD;AACrD,SAAgB,qBAAqB;IACnC,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC;AAFD,sDAEC"}
1
+ {"version":3,"file":"object-types.js","sourceRoot":"","sources":["object-types.ts"],"names":[],"mappings":";;;AAWA,wEAAuE;AAcvE,kEAAkE;AACrD,QAAA,cAAc,GAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjD;;;GAGG;AACH,SAAgB,KAAK,CAAwB,OAAU,EAAE,UAA2B;IAClF,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,sBAAc,CAAC;IAC7C,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,CAAC,UAAU,CAAC,IAAI,yBAAY,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACvF,OAAO,OAAO,CAAC;AACjB,CAAC;AALD,sBAKC;AAED;;;GAGG;AACH,SAAgB,QAAQ,CAAC,OAAoB;IAC3C,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC;AACjC,CAAC;AAFD,4BAEC;AAED,gFAAgF;AAChF,SAAgB,WAAW,CAAC,OAAoB;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACrE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtE,CAAC;AAJD,kCAIC"}
@@ -35,9 +35,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
35
35
  return (mod && mod.__esModule) ? mod : { "default": mod };
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
- // Compact object type and version (LM-297): writers set both forms, readers
39
- // translate the strings-only form. Rows come from the shared fixture
40
- // test-fixtures/object-type-legacy.json, which Java, Python and Rust also load.
38
+ // Object type and version (LM-297, LM-318): `stamp` writes object_type = 1
39
+ // and version = 2 (0.0.1), and bytes from earlier releases are not readable.
41
40
  const fs = __importStar(require("fs"));
42
41
  const path = __importStar(require("path"));
43
42
  const decimal_js_1 = require("decimal.js");
@@ -67,125 +66,36 @@ const PriceService_1 = require("../services/price-service/PriceService");
67
66
  const SecurityService_1 = require("../services/security-service/SecurityService");
68
67
  const TransactionService_1 = require("../services/transaction-service/TransactionService");
69
68
  const PortfolioService_1 = require("../services/portfolio-service/PortfolioService");
70
- const REPO_ROOT = path.resolve(__dirname, '../../../..');
71
- const CASES = JSON.parse(fs.readFileSync(path.join(REPO_ROOT, 'test-fixtures', 'object-type-legacy.json'), 'utf8')).cases;
72
- const COMPACT_NUMBERS = {
73
- object_type: 1001, version_major: 1002, version_minor: 1003, version_patch: 1004,
74
- };
75
- /** Generated message classes by proto full name: the package is the directory under node/. */
76
- function messageClasses() {
77
- const root = path.resolve(__dirname, '../../fintekkers');
78
- const classes = new Map();
79
- const walk = (dir) => {
80
- for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
81
- const full = path.join(dir, entry.name);
82
- if (entry.isDirectory()) {
83
- walk(full);
84
- }
85
- else if (entry.name.endsWith('_pb.js')) {
86
- const pkg = path.relative(path.dirname(root), dir).split(path.sep).join('.');
87
- // eslint-disable-next-line @typescript-eslint/no-var-requires
88
- for (const [name, cls] of Object.entries(require(full))) {
89
- classes.set(`${pkg}.${name}`, cls);
90
- }
91
- }
92
- }
93
- };
94
- walk(root);
95
- return classes;
96
- }
97
- const CLASSES = messageClasses();
98
- function decode(c) {
99
- const cls = CLASSES.get(c.message);
100
- if (!cls)
101
- throw new Error(`no generated class for ${c.message}`);
102
- return cls.deserializeBinary(Buffer.from(c.bytes, 'base64'));
103
- }
104
- /** Field numbers present at the top level of an encoded message. */
105
- function topLevelFieldNumbers(data) {
106
- const numbers = [];
107
- let i = 0;
108
- const varint = () => {
109
- let result = 0;
110
- let scale = 1;
111
- for (;;) {
112
- const b = data[i++];
113
- result += (b & 0x7f) * scale;
114
- scale *= 128;
115
- if (!(b & 0x80))
116
- return result;
117
- }
118
- };
119
- while (i < data.length) {
120
- const key = varint();
121
- numbers.push(Math.floor(key / 8));
122
- const wireType = key % 8;
123
- if (wireType === 0)
124
- varint();
125
- else if (wireType === 1)
126
- i += 8;
127
- else if (wireType === 2) {
128
- const length = varint();
129
- i += length;
130
- }
131
- else if (wireType === 5)
132
- i += 4;
133
- else
134
- throw new Error(`unexpected wire type ${wireType}`);
135
- }
136
- return numbers;
137
- }
138
- let warn;
139
- beforeEach(() => {
140
- objectTypes.resetWarningsForTests();
141
- warn = jest.spyOn(console, 'warn').mockImplementation(() => undefined);
69
+ // A PriceProto written by ledger-models v0.4.33: object_class / version
70
+ // strings in fields 1 and 2.
71
+ const OLD_PRICE = path.resolve(__dirname, '../../../../ledger-models-protos/fixtures/legacy_v0433/price.bin');
72
+ // ---- stamp round-trips (metric 2) ----
73
+ test('a stamped price round-trips type and version', () => {
74
+ const price = objectTypes.stamp(new price_pb_1.PriceProto(), object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE);
75
+ const bytes = price.serializeBinary();
76
+ // Exactly field 1 (varint 11) and field 2 ({patch: 1}): nothing at the
77
+ // removed 1001-1004.
78
+ expect(Array.from(bytes)).toEqual([0x08, 11, 0x12, 0x02, 0x18, 0x01]);
79
+ const reread = price_pb_1.PriceProto.deserializeBinary(bytes);
80
+ expect(objectTypes.readType(reread)).toBe(object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE);
81
+ expect(objectTypes.readVersion(reread)).toEqual([0, 0, 1]);
82
+ const version = reread.getVersion();
83
+ expect([version.getMajor(), version.getMinor(), version.getPatch()]).toEqual([0, 0, 1]);
84
+ // Nothing unknown kept on re-serialising.
85
+ expect(Array.from(reread.serializeBinary())).toEqual(Array.from(bytes));
142
86
  });
143
- afterEach(() => {
144
- warn.mockRestore();
145
- objectTypes.resetWarningsForTests();
87
+ test('an unstamped message reads as unknown and absent', () => {
88
+ const price = price_pb_1.PriceProto.deserializeBinary(new price_pb_1.PriceProto().serializeBinary());
89
+ expect(objectTypes.readType(price)).toBe(object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN);
90
+ expect(objectTypes.readVersion(price)).toBeUndefined();
146
91
  });
147
- const fallbackWarnings = () => warn.mock.calls.filter((args) => String(args[0]).includes('(LM-297)')).length;
148
- // ---- Loading the old form translates it (metric 3) ----
149
- describe.each(CASES.map((c) => [c.name, c]))('fixture row %s', (_name, c) => {
150
- test('decodes to the expected type and version', () => {
151
- const message = decode(c);
152
- expect(objectTypes.readType(message)).toBe(object_type_pb_1.ObjectTypeProto[c.expect.object_type]);
153
- expect(objectTypes.readVersion(message)).toEqual(c.expect.version);
154
- expect(fallbackWarnings()).toBe(c.expect.warns ? 1 : 0);
155
- });
156
- test('re-serialises with the compact fields once upgraded', () => {
157
- const data = objectTypes.upgrade(decode(c)).serializeBinary();
158
- const expected = {
159
- object_type: object_type_pb_1.ObjectTypeProto[c.expect.object_type],
160
- version_major: c.expect.version[0],
161
- version_minor: c.expect.version[1],
162
- version_patch: c.expect.version[2],
163
- };
164
- const present = topLevelFieldNumbers(data);
165
- for (const [name, number] of Object.entries(COMPACT_NUMBERS)) {
166
- expect([name, present.includes(number)]).toEqual([name, expected[name] !== 0]);
167
- }
168
- const reread = CLASSES.get(c.message).deserializeBinary(data);
169
- expect([reread.getObjectType(), reread.getVersionMajor(), reread.getVersionMinor(), reread.getVersionPatch()])
170
- .toEqual([expected.object_type, expected.version_major, expected.version_minor, expected.version_patch]);
171
- expect([reread.getObjectClass(), reread.getVersion()]).toEqual([c.object_class, c.version]);
172
- });
173
- });
174
- // ---- Reading the strings is deprecated (metric 4) ----
175
- test('three strings-only decodes of one type warn once', () => {
176
- const c = CASES.find((row) => row.name === 'js-PositionFilterProto');
177
- for (let i = 0; i < 3; i++) {
178
- objectTypes.upgrade(decode(c));
179
- }
180
- expect(fallbackWarnings()).toBe(1);
92
+ // ---- Old bytes are not readable (metric 3) ----
93
+ test('bytes from v0.4.33 are not readable', () => {
94
+ // Field 2 held the string "0.0.1", which does not parse as a VersionProto.
95
+ const old = new Uint8Array(fs.readFileSync(OLD_PRICE));
96
+ expect(() => price_pb_1.PriceProto.deserializeBinary(old)).toThrow();
181
97
  });
182
- test('the new form does not warn', () => {
183
- const message = objectTypes.stamp(new price_pb_1.PriceProto(), object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE, 'Price', '0.0.1');
184
- objectTypes.readType(message);
185
- objectTypes.readVersion(message);
186
- expect(fallbackWarnings()).toBe(0);
187
- });
188
- // ---- Writers set both forms (metric 2) ----
98
+ // ---- Every library writer stamps the new form (metric 2) ----
189
99
  /** A service with its gRPC client swapped for one that records each request. */
190
100
  function capturingService(cls, response) {
191
101
  const requests = [];
@@ -243,41 +153,41 @@ function lastRequest(cls, call) {
243
153
  }
244
154
  const LIBRARY_WRITERS = [
245
155
  ['Price.fromSimple', () => __awaiter(void 0, void 0, void 0, function* () { return Price_1.default.fromSimple(uuid_1.UUID.random().toString(), 1, new Date()).proto; }),
246
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE, 'Price', '0.0.1'],
156
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE],
247
157
  ['Price.create', () => __awaiter(void 0, void 0, void 0, function* () { return Price_1.default.create(new decimal_js_1.Decimal(1), security(), datetime_1.ZonedDateTime.now()).proto; }),
248
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE, 'Price', '0.0.1'],
158
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE],
249
159
  ['PositionFilter.toProto', () => __awaiter(void 0, void 0, void 0, function* () { return filter().toProto(); }),
250
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_POSITION_FILTER, 'PositionFilter', '0.0.1'],
160
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_POSITION_FILTER],
251
161
  ['QueryPositionRequest.toProto', () => __awaiter(void 0, void 0, void 0, function* () {
252
162
  return new QueryPositionRequest_1.QueryPositionRequest(filter(), position_pb_1.PositionTypeProto.TRANSACTION, position_pb_1.PositionViewProto.DEFAULT_VIEW, [], [], datetime_1.ZonedDateTime.now()).toProto();
253
163
  }),
254
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_POSITION_REQUEST, '', '1.0.0'],
164
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_POSITION_REQUEST],
255
165
  ['Transaction', () => __awaiter(void 0, void 0, void 0, function* () { return transaction().proto; }),
256
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_TRANSACTION, 'Transaction', '0.0.1'],
166
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_TRANSACTION],
257
167
  ['Transaction strategy allocation', () => __awaiter(void 0, void 0, void 0, function* () { return transaction().proto.getStrategyAllocation(); }),
258
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION, 'StrategyAllocation', '0.0.1'],
168
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION],
259
169
  ['PriceService.validateCreateOrUpdate', () => lastRequest(PriceService_1.PriceService, (s) => s.validateCreateOrUpdate(new price_pb_1.PriceProto())),
260
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_PRICE_REQUEST, 'PriceRequest', '0.0.1'],
170
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_PRICE_REQUEST],
261
171
  ['PriceService.search', () => lastRequest(PriceService_1.PriceService, (s) => s.search(asOf, filter())),
262
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PRICE_REQUEST, 'PriceRequest', '0.0.1'],
172
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PRICE_REQUEST],
263
173
  ['SecurityService.validateCreateSecurity', () => lastRequest(SecurityService_1.SecurityService, (s) => s.validateCreateSecurity(new security_pb_1.SecurityProto())),
264
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_SECURITY_REQUEST, 'SecurityRequest', '0.0.1'],
174
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_SECURITY_REQUEST],
265
175
  ['SecurityService.searchSecurity', () => lastRequest(SecurityService_1.SecurityService, (s) => s.searchSecurity(asOf, filter())),
266
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_REQUEST, 'SecurityRequest', '0.0.1'],
176
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_REQUEST],
267
177
  ['TransactionService.validateCreateTransaction', () => lastRequest(TransactionService_1.TransactionService, (s) => s.validateCreateTransaction({ proto: new transaction_pb_1.TransactionProto() })),
268
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_TRANSACTION_REQUEST, 'TransactionRequest', '0.0.1'],
178
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_TRANSACTION_REQUEST],
269
179
  ['TransactionService.searchTransaction', () => lastRequest(TransactionService_1.TransactionService, (s) => s.searchTransaction(asOf, filter())),
270
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_REQUEST, 'SecurityRequest', '0.0.1'],
180
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_REQUEST],
271
181
  ['PortfolioService.validateCreatePortfolio', () => lastRequest(PortfolioService_1.PortfolioService, (s) => s.validateCreatePortfolio(new portfolio_pb_1.PortfolioProto())),
272
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_PORTFOLIO_REQUEST, 'PortfolioRequest', '0.0.1'],
182
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_CREATE_PORTFOLIO_REQUEST],
273
183
  ['PortfolioService.searchPortfolio', () => lastRequest(PortfolioService_1.PortfolioService, (s) => s.searchPortfolio(asOf, filter())),
274
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_REQUEST, 'PortfolioRequest', '0.0.1'],
184
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_REQUEST],
275
185
  ['LinkResolver securities', () => __awaiter(void 0, void 0, void 0, function* () { return (yield linkResolverRequests())[0]; }),
276
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_REQUEST, 'SecurityRequest', '0.0.1'],
186
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_SECURITY_REQUEST],
277
187
  ['LinkResolver portfolios', () => __awaiter(void 0, void 0, void 0, function* () { return (yield linkResolverRequests())[1]; }),
278
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_REQUEST, 'PortfolioRequest', '0.0.1'],
188
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_PORTFOLIO_REQUEST],
279
189
  ['LinkResolver transactions', () => __awaiter(void 0, void 0, void 0, function* () { return (yield linkResolverRequests())[2]; }),
280
- object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_REQUEST, 'TransactionRequest', '0.0.1'],
190
+ object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_QUERY_TRANSACTION_REQUEST],
281
191
  ];
282
192
  function transaction() {
283
193
  return new transaction_1.default({
@@ -291,21 +201,10 @@ function transaction() {
291
201
  quantity: new decimal_js_1.Decimal('10'),
292
202
  });
293
203
  }
294
- test.each(LIBRARY_WRITERS)('%s sets strings and compact fields that agree', (_name, build, type, objectClass, version) => __awaiter(void 0, void 0, void 0, function* () {
204
+ test.each(LIBRARY_WRITERS)('%s stamps the type and schema version', (_name, build, type) => __awaiter(void 0, void 0, void 0, function* () {
295
205
  const message = yield build();
296
- expect([message.getObjectClass(), message.getVersion()]).toEqual([objectClass, version]);
297
- // The message's own type. Some JS writers put a query request's string on the
298
- // create request too; the string still sits on one enum value.
299
- expect(message.getObjectType()).toBe(type);
300
- if (objectClass) {
301
- expect(objectTypes.fromLegacy(objectClass)).not.toBe(object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_UNKNOWN);
302
- }
303
- expect([message.getVersionMajor(), message.getVersionMinor(), message.getVersionPatch()])
304
- .toEqual(objectTypes.parseVersion(version));
305
- expect(objectTypes.readVersion(message)).toEqual(objectTypes.parseVersion(version));
306
- expect(fallbackWarnings()).toBe(0);
206
+ expect(objectTypes.readType(message)).toBe(type);
207
+ expect(objectTypes.readVersion(message)).toEqual(objectTypes.SCHEMA_VERSION);
208
+ expect(objectTypes.SCHEMA_VERSION).toEqual([0, 0, 1]);
307
209
  }));
308
- test('stamp rejects a malformed version', () => {
309
- expect(() => objectTypes.stamp(new price_pb_1.PriceProto(), object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_PRICE, 'Price', '1.2')).toThrow();
310
- });
311
210
  //# sourceMappingURL=object-types.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-types.test.js","sourceRoot":"","sources":["object-types.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-types.test.js","sourceRoot":"","sources":["object-types.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2EAA2E;AAC3E,6EAA6E;AAC7E,uCAAyB;AACzB,2CAA6B;AAC7B,2CAAqC;AAErC,gFAA8E;AAE9E,8EAA6E;AAC7E,qEAAoE;AACpE,uFAAsF;AACtF,iFAAgF;AAChF,iGAA+F;AAC/F,8EAAoG;AACpG,8GAA2G;AAC3G,iHAA8G;AAC9G,uHAAoH;AACpH,iFAAgF;AAEhF,4DAA8C;AAE9C,oEAA2C;AAC3C,kEAA0C;AAC1C,2EAAmD;AACnD,8EAAsD;AACtD,oFAA4D;AAC5D,6EAAyE;AACzE,sEAAmE;AACnE,oFAAiF;AACjF,+CAA4C;AAC5C,uDAAyD;AACzD,yEAAsE;AACtE,kFAA+E;AAC/E,2FAAwF;AACxF,qFAAkF;AAElF,wEAAwE;AACxE,6BAA6B;AAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,kEAAkE,CAAC,CAAC;AAE9G,yCAAyC;AAEzC,IAAI,CAAC,8CAA8C,EAAE,GAAG,EAAE;IACxD,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,qBAAU,EAAE,EAAE,gCAAe,CAAC,iBAAiB,CAAC,CAAC;IACrF,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,EAAE,CAAC;IACtC,uEAAuE;IACvE,qBAAqB;IACrB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAEtE,MAAM,MAAM,GAAG,qBAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACnD,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAe,CAAC,iBAAiB,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAkB,CAAC;IACpD,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxF,0CAA0C;IAC1C,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,kDAAkD,EAAE,GAAG,EAAE;IAC5D,MAAM,KAAK,GAAG,qBAAU,CAAC,iBAAiB,CAAC,IAAI,qBAAU,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/E,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,gCAAe,CAAC,mBAAmB,CAAC,CAAC;IAC9E,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;AACzD,CAAC,CAAC,CAAC;AAEH,kDAAkD;AAElD,IAAI,CAAC,qCAAqC,EAAE,GAAG,EAAE;IAC/C,2EAA2E;IAC3E,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,MAAM,CAAC,GAAG,EAAE,CAAC,qBAAU,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,gEAAgE;AAEhE,gFAAgF;AAChF,SAAS,gBAAgB,CAAmB,GAAqB,EAAE,QAAuB;IACxF,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,CAAC,OAAoB,EAAE,QAA8C,EAAE,EAAE;QACrF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,CAAC,OAAoB,EAAE,EAAE;QACtC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,MAAM,QAAQ,GAA+B,EAAE,CAAC;QAChD,YAAY,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,QAAQ,CAAC,GAAG,wDAAI,CAAA,EAAA,CAAC,CAAC;QACrC,OAAO,EAAE,EAAE,CAAC,KAAa,EAAE,OAAmB,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAM,CAAC;IACjD,OAA0C,CAAC,MAAM,GAAG;QACnD,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;KAC9C,CAAC;IACF,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,IAAI,GAAG,wBAAa,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;AAC3C,MAAM,MAAM,GAAG,GAAmB,EAAE,CAAC,IAAI,+BAAc,EAAE,CAAC;AAE1D,SAAS,QAAQ;IACf,OAAO,kBAAQ,CAAC,MAAM,CAAC,IAAI,2BAAa,EAAE,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3G,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,IAAI,mBAAS,CAAC,IAAI,6BAAc,EAAE,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACtH,CAAC;AAED,SAAe,oBAAoB;;QACjC,MAAM,QAAQ,GAAkB,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,QAAuB,EAAE,EAAE,CAAC,CAAC;YAC3C,QAAQ,EAAE,CAAC,OAAoB,EAAE,QAA8C,EAAE,EAAE;gBACjF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,uBAAY,CAAC;YAChC,cAAc,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,uDAA0B,EAAE,CAAU;YACvE,eAAe,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,yDAA2B,EAAE,CAAU;YACzE,iBAAiB,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,6DAA6B,EAAE,CAAU;SAC9E,CAAC,CAAC;QACH,2DAA2D;QAC3D,MAAM,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACpE,MAAM,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrE,MAAM,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AAID,SAAe,WAAW,CAAmB,GAAqB,EAAE,IAAsC;;QACxG,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,yBAAY,EAAE,CAAC,CAAC;QAC9E,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;CAAA;AAED,MAAM,eAAe,GAAa;IAChC,CAAC,kBAAkB,EAAE,GAAS,EAAE,kDAAC,OAAA,eAAK,CAAC,UAAU,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,KAAK,CAAA,GAAA;QAC9F,gCAAe,CAAC,iBAAiB,CAAC;IACpC,CAAC,cAAc,EAAE,GAAS,EAAE,kDAAC,OAAA,eAAK,CAAC,MAAM,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,wBAAa,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAA,GAAA;QAC9F,gCAAe,CAAC,iBAAiB,CAAC;IACpC,CAAC,wBAAwB,EAAE,GAAS,EAAE,kDAAC,OAAA,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA,GAAA;QACvD,gCAAe,CAAC,2BAA2B,CAAC;IAC9C,CAAC,8BAA8B,EAAE,GAAS,EAAE;YAAC,OAAA,IAAI,2CAAoB,CACnE,MAAM,EAAE,EAAE,+BAAiB,CAAC,WAAW,EAAE,+BAAiB,CAAC,YAAY,EAAE,EAAE,EAAE,EAAE,EAAE,wBAAa,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAA;UAAA;QACjH,gCAAe,CAAC,kCAAkC,CAAC;IACnD,CAAC,aAAa,EAAE,GAAS,EAAE,kDAAC,OAAA,WAAW,EAAE,CAAC,KAAK,CAAA,GAAA;QAC7C,gCAAe,CAAC,uBAAuB,CAAC;IAC1C,CAAC,iCAAiC,EAAE,GAAS,EAAE,kDAAC,OAAA,WAAW,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAG,CAAA,GAAA;QAC1F,gCAAe,CAAC,+BAA+B,CAAC;IAClD,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,2BAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,qBAAU,EAAE,CAAC,CAAC;QACxH,gCAAe,CAAC,gCAAgC,CAAC;IACnD,CAAC,qBAAqB,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,2BAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACtF,gCAAe,CAAC,+BAA+B,CAAC;IAClD,CAAC,wCAAwC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,iCAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,IAAI,2BAAa,EAAE,CAAC,CAAC;QACjI,gCAAe,CAAC,mCAAmC,CAAC;IACtD,CAAC,gCAAgC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,iCAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5G,gCAAe,CAAC,kCAAkC,CAAC;IACrD,CAAC,8CAA8C,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,uCAAkB,EACnF,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,IAAI,iCAAgB,EAAE,EAAiB,CAAC,CAAC;QACvF,gCAAe,CAAC,sCAAsC,CAAC;IACvD,CAAC,sCAAsC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,uCAAkB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACxH,gCAAe,CAAC,qCAAqC,CAAC;IACxD,CAAC,0CAA0C,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,mCAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,6BAAc,EAAE,CAAC,CAAC;QACtI,gCAAe,CAAC,oCAAoC,CAAC;IACvD,CAAC,kCAAkC,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,mCAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAChH,gCAAe,CAAC,mCAAmC,CAAC;IACtD,CAAC,yBAAyB,EAAE,GAAS,EAAE,kDAAC,OAAA,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,GAAA;QACvE,gCAAe,CAAC,kCAAkC,CAAC;IACrD,CAAC,yBAAyB,EAAE,GAAS,EAAE,kDAAC,OAAA,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,GAAA;QACvE,gCAAe,CAAC,mCAAmC,CAAC;IACtD,CAAC,2BAA2B,EAAE,GAAS,EAAE,kDAAC,OAAA,CAAC,MAAM,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,GAAA;QACzE,gCAAe,CAAC,qCAAqC,CAAC;CACzD,CAAC;AAEF,SAAS,WAAW;IAClB,OAAO,IAAI,qBAAW,CAAC;QACrB,SAAS,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAChC,cAAc,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,QAAQ,EAAE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC1C,KAAK,EAAE,IAAI,oBAAO,CAAC,QAAQ,CAAC;QAC5B,QAAQ,EAAE,QAAQ,EAAE;QACpB,eAAe,EAAE,IAAI,kCAAe,CAAC,0CAAoB,CAAC,GAAG,CAAC;QAC9D,SAAS,EAAE,SAAS,EAAE;QACtB,QAAQ,EAAE,IAAI,oBAAO,CAAC,IAAI,CAAC;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,uCAAuC,EAAE,CAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/F,MAAM,OAAO,GAAG,MAAM,KAAK,EAAE,CAAC;IAE9B,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC,CAAA,CAAC,CAAC"}