@fintekkers/ledger-models 0.4.38 → 0.4.39

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 (61) hide show
  1. package/node/fintekkers/models/util/decimal_value_pb.d.ts +2 -0
  2. package/node/wrappers/models/position/position.d.ts +1 -1
  3. package/node/wrappers/models/position/position.js.map +1 -1
  4. package/node/wrappers/models/position/position.test.js +2 -2
  5. package/node/wrappers/models/position/position.test.js.map +1 -1
  6. package/node/wrappers/models/position/position.test.ts +2 -2
  7. package/node/wrappers/models/position/position.ts +2 -2
  8. package/node/wrappers/models/price/Price.js +16 -8
  9. package/node/wrappers/models/price/Price.js.map +1 -1
  10. package/node/wrappers/models/price/Price.ts +15 -6
  11. package/node/wrappers/models/price/price_rules.d.ts +2 -2
  12. package/node/wrappers/models/price/price_rules.js +6 -4
  13. package/node/wrappers/models/price/price_rules.js.map +1 -1
  14. package/node/wrappers/models/price/price_rules.ts +5 -3
  15. package/node/wrappers/models/security/BondSecurity.d.ts +1 -1
  16. package/node/wrappers/models/security/BondSecurity.js +5 -5
  17. package/node/wrappers/models/security/BondSecurity.js.map +1 -1
  18. package/node/wrappers/models/security/BondSecurity.ts +5 -4
  19. package/node/wrappers/models/security/FloatingRateNote.js +2 -2
  20. package/node/wrappers/models/security/FloatingRateNote.js.map +1 -1
  21. package/node/wrappers/models/security/FloatingRateNote.ts +2 -1
  22. package/node/wrappers/models/security/Issuance.js +3 -6
  23. package/node/wrappers/models/security/Issuance.js.map +1 -1
  24. package/node/wrappers/models/security/Issuance.ts +3 -2
  25. package/node/wrappers/models/security/MortgageBackedSecurity.js +7 -7
  26. package/node/wrappers/models/security/MortgageBackedSecurity.js.map +1 -1
  27. package/node/wrappers/models/security/MortgageBackedSecurity.ts +7 -6
  28. package/node/wrappers/models/security/TIPSBond.js +2 -2
  29. package/node/wrappers/models/security/TIPSBond.js.map +1 -1
  30. package/node/wrappers/models/security/TIPSBond.ts +2 -1
  31. package/node/wrappers/models/security/security_rules.js +10 -12
  32. package/node/wrappers/models/security/security_rules.js.map +1 -1
  33. package/node/wrappers/models/security/security_rules.ts +9 -9
  34. package/node/wrappers/models/transaction/transaction.js +16 -10
  35. package/node/wrappers/models/transaction/transaction.js.map +1 -1
  36. package/node/wrappers/models/transaction/transaction.ts +16 -7
  37. package/node/wrappers/models/utils/decimal.d.ts +96 -0
  38. package/node/wrappers/models/utils/decimal.js +328 -0
  39. package/node/wrappers/models/utils/decimal.js.map +1 -0
  40. package/node/wrappers/models/utils/decimal.legacy.test.d.ts +1 -0
  41. package/node/wrappers/models/utils/decimal.legacy.test.js +174 -0
  42. package/node/wrappers/models/utils/decimal.legacy.test.js.map +1 -0
  43. package/node/wrappers/models/utils/decimal.legacy.test.ts +158 -0
  44. package/node/wrappers/models/utils/decimal.test.d.ts +1 -0
  45. package/node/wrappers/models/utils/decimal.test.js +258 -0
  46. package/node/wrappers/models/utils/decimal.test.js.map +1 -0
  47. package/node/wrappers/models/utils/decimal.test.ts +272 -0
  48. package/node/wrappers/models/utils/decimal.ts +335 -0
  49. package/node/wrappers/models/utils/decimal.typings.test.d.ts +1 -0
  50. package/node/wrappers/models/utils/decimal.typings.test.js +39 -0
  51. package/node/wrappers/models/utils/decimal.typings.test.js.map +1 -0
  52. package/node/wrappers/models/utils/decimal.typings.test.ts +16 -0
  53. package/node/wrappers/models/utils/serialization.d.ts +2 -1
  54. package/node/wrappers/models/utils/serialization.js +12 -2
  55. package/node/wrappers/models/utils/serialization.js.map +1 -1
  56. package/node/wrappers/models/utils/serialization.ts +14 -3
  57. package/node/wrappers/services/security-service/security.maturityLadder.test.js +1 -1
  58. package/node/wrappers/services/security-service/security.maturityLadder.test.js.map +1 -1
  59. package/node/wrappers/services/security-service/security.maturityLadder.test.ts +3 -2
  60. package/package.json +1 -1
  61. package/tsconfig.json +1 -0
@@ -3,6 +3,7 @@ import { AuctionTypeProto } from "../../../fintekkers/models/security/bond/aucti
3
3
  import { DecimalValueProto } from "../../../fintekkers/models/util/decimal_value_pb";
4
4
  import { localDateProtoToDate } from "../utils/date";
5
5
  import Decimal from "decimal.js";
6
+ import { decodeDecimal, isUnsetDecimal, toDecimalJs } from "../utils/decimal";
6
7
 
7
8
  /**
8
9
  * Typed wrapper around a single IssuanceProto. Returns null for unset
@@ -20,8 +21,8 @@ class Issuance {
20
21
  }
21
22
 
22
23
  private static _toDecimal(value: DecimalValueProto | undefined): Decimal | null {
23
- if (!value) return null;
24
- return new Decimal(value.getArbitraryPrecisionValue());
24
+ if (!value || isUnsetDecimal(value)) return null;
25
+ return toDecimalJs(decodeDecimal(value));
25
26
  }
26
27
 
27
28
  /** Auction issue (settlement) date. Null if unset. */
@@ -27,7 +27,7 @@ const BondSecurity_1 = __importStar(require("./BondSecurity"));
27
27
  const security_pb_1 = require("../../../fintekkers/models/security/security_pb");
28
28
  const agency_pb_1 = require("../../../fintekkers/models/security/bond/agency_pb");
29
29
  const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
30
- const decimal_js_1 = require("decimal.js");
30
+ const decimal_1 = require("../utils/decimal");
31
31
  /**
32
32
  * MBS-specific accessors layered on top of BondSecurity. Pool-level fields
33
33
  * (agency, WAC, WAM, pass-through rate, factors, balances, PSA) live in
@@ -58,7 +58,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
58
58
  const v = ext ? ext.getWac() : undefined;
59
59
  if (!v)
60
60
  return null;
61
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
61
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.wac', () => (0, decimal_1.decodeDecimal)(v)));
62
62
  }
63
63
  /** Weighted Average Maturity, in months. */
64
64
  getWam() {
@@ -71,7 +71,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
71
71
  const v = ext ? ext.getPassThroughRate() : undefined;
72
72
  if (!v)
73
73
  return null;
74
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
74
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.pass_through_rate', () => (0, decimal_1.decodeDecimal)(v)));
75
75
  }
76
76
  /** Current pool factor (remaining UPB / original face). */
77
77
  getCurrentFactor() {
@@ -79,7 +79,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
79
79
  const v = ext ? ext.getCurrentFactor() : undefined;
80
80
  if (!v)
81
81
  return null;
82
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
82
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.current_factor', () => (0, decimal_1.decodeDecimal)(v)));
83
83
  }
84
84
  /** Original face value at issuance. */
85
85
  getOriginalFaceValue() {
@@ -87,7 +87,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
87
87
  const v = ext ? ext.getOriginalFaceValue() : undefined;
88
88
  if (!v)
89
89
  return null;
90
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
90
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.original_face_value', () => (0, decimal_1.decodeDecimal)(v)));
91
91
  }
92
92
  /** Current Unpaid Principal Balance. */
93
93
  getCurrentUpb() {
@@ -95,7 +95,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
95
95
  const v = ext ? ext.getCurrentUpb() : undefined;
96
96
  if (!v)
97
97
  return null;
98
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
98
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.current_upb', () => (0, decimal_1.decodeDecimal)(v)));
99
99
  }
100
100
  /** PSA prepayment speed assumption. */
101
101
  getPsaSpeed() {
@@ -103,7 +103,7 @@ class MortgageBackedSecurity extends BondSecurity_1.default {
103
103
  const v = ext ? ext.getPsaSpeed() : undefined;
104
104
  if (!v)
105
105
  return null;
106
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
106
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('mbs_extension.psa_speed', () => (0, decimal_1.decodeDecimal)(v)));
107
107
  }
108
108
  /**
109
109
  * Build a fresh SecurityProto for an agency MBS pass-through. product_type
@@ -1 +1 @@
1
- {"version":3,"file":"MortgageBackedSecurity.js","sourceRoot":"","sources":["MortgageBackedSecurity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MortgageBackedSecurity.js","sourceRoot":"","sources":["MortgageBackedSecurity.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { SecurityProto, MbsExtensionProto } from '../../../fintekkers/models/sec
7
7
  import { AgencyProto } from '../../../fintekkers/models/security/bond/agency_pb';
8
8
  import { ProductTypeProto } from '../../../fintekkers/models/security/product_type_pb';
9
9
  import { Decimal } from 'decimal.js';
10
+ import { decodeDecimal, toDecimalJs, withField } from '../utils/decimal';
10
11
 
11
12
  /**
12
13
  * MBS-specific accessors layered on top of BondSecurity. Pool-level fields
@@ -40,7 +41,7 @@ class MortgageBackedSecurity extends BondSecurity {
40
41
  const ext = this.getMbsExtension();
41
42
  const v = ext ? ext.getWac() : undefined;
42
43
  if (!v) return null;
43
- return new Decimal(v.getArbitraryPrecisionValue());
44
+ return toDecimalJs(withField('mbs_extension.wac', () => decodeDecimal(v)));
44
45
  }
45
46
 
46
47
  /** Weighted Average Maturity, in months. */
@@ -54,7 +55,7 @@ class MortgageBackedSecurity extends BondSecurity {
54
55
  const ext = this.getMbsExtension();
55
56
  const v = ext ? ext.getPassThroughRate() : undefined;
56
57
  if (!v) return null;
57
- return new Decimal(v.getArbitraryPrecisionValue());
58
+ return toDecimalJs(withField('mbs_extension.pass_through_rate', () => decodeDecimal(v)));
58
59
  }
59
60
 
60
61
  /** Current pool factor (remaining UPB / original face). */
@@ -62,7 +63,7 @@ class MortgageBackedSecurity extends BondSecurity {
62
63
  const ext = this.getMbsExtension();
63
64
  const v = ext ? ext.getCurrentFactor() : undefined;
64
65
  if (!v) return null;
65
- return new Decimal(v.getArbitraryPrecisionValue());
66
+ return toDecimalJs(withField('mbs_extension.current_factor', () => decodeDecimal(v)));
66
67
  }
67
68
 
68
69
  /** Original face value at issuance. */
@@ -70,7 +71,7 @@ class MortgageBackedSecurity extends BondSecurity {
70
71
  const ext = this.getMbsExtension();
71
72
  const v = ext ? ext.getOriginalFaceValue() : undefined;
72
73
  if (!v) return null;
73
- return new Decimal(v.getArbitraryPrecisionValue());
74
+ return toDecimalJs(withField('mbs_extension.original_face_value', () => decodeDecimal(v)));
74
75
  }
75
76
 
76
77
  /** Current Unpaid Principal Balance. */
@@ -78,7 +79,7 @@ class MortgageBackedSecurity extends BondSecurity {
78
79
  const ext = this.getMbsExtension();
79
80
  const v = ext ? ext.getCurrentUpb() : undefined;
80
81
  if (!v) return null;
81
- return new Decimal(v.getArbitraryPrecisionValue());
82
+ return toDecimalJs(withField('mbs_extension.current_upb', () => decodeDecimal(v)));
82
83
  }
83
84
 
84
85
  /** PSA prepayment speed assumption. */
@@ -86,7 +87,7 @@ class MortgageBackedSecurity extends BondSecurity {
86
87
  const ext = this.getMbsExtension();
87
88
  const v = ext ? ext.getPsaSpeed() : undefined;
88
89
  if (!v) return null;
89
- return new Decimal(v.getArbitraryPrecisionValue());
90
+ return toDecimalJs(withField('mbs_extension.psa_speed', () => decodeDecimal(v)));
90
91
  }
91
92
 
92
93
  /**
@@ -28,7 +28,7 @@ const security_pb_1 = require("../../../fintekkers/models/security/security_pb")
28
28
  const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
29
29
  const index_type_pb_1 = require("../../../fintekkers/models/security/index/index_type_pb");
30
30
  const date_1 = require("../utils/date");
31
- const decimal_js_1 = require("decimal.js");
31
+ const decimal_1 = require("../utils/decimal");
32
32
  /**
33
33
  * TIPS-specific accessors layered on top of BondSecurity. The inflation
34
34
  * fields live in the parallel tips_extension sub-message; bond_details
@@ -48,7 +48,7 @@ class TIPSBond extends BondSecurity_1.default {
48
48
  const v = ext ? ext.getBaseCpi() : undefined;
49
49
  if (!v)
50
50
  return null;
51
- return new decimal_js_1.Decimal(v.getArbitraryPrecisionValue());
51
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('tips_extension.base_cpi', () => (0, decimal_1.decodeDecimal)(v)));
52
52
  }
53
53
  /** Reference date for the base CPI fixing. */
54
54
  getIndexDate() {
@@ -1 +1 @@
1
- {"version":3,"file":"TIPSBond.js","sourceRoot":"","sources":["TIPSBond.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAIwB;AACxB,iFAAoG;AACpG,yFAAuF;AACvF,2FAAyF;AACzF,wCAA2E;AAC3E,2CAAqC;AAErC;;;;GAIG;AACH,MAAM,QAAS,SAAQ,sBAAY;IACjC,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEO,gBAAgB;;QACtB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,mCAAI,SAAS,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,UAAU;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,OAAO,IAAI,oBAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,8CAA8C;IAC9C,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,OAAO,IAAA,2BAAoB,EAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,qBAAqB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,8BAAc,CAAC,kBAAkB,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAIvB;QACC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,gCAAkB,EAAE;aAClC,UAAU,CAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxC,YAAY,CAAC,IAAA,2BAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAClD,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,OAAO,IAAI,2BAAa,EAAE;aACvB,cAAc,CAAC,kCAAgB,CAAC,IAAI,CAAC;aACrC,cAAc,CAAC,IAAI,CAAC;aACpB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"TIPSBond.js","sourceRoot":"","sources":["TIPSBond.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAIwB;AACxB,iFAAoG;AACpG,yFAAuF;AACvF,2FAAyF;AACzF,wCAA2E;AAE3E,8CAAyE;AAEzE;;;;GAIG;AACH,MAAM,QAAS,SAAQ,sBAAY;IACjC,YAAY,KAAoB;QAC9B,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAEO,gBAAgB;;QACtB,OAAO,MAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE,mCAAI,SAAS,CAAC;IACpD,CAAC;IAED,2EAA2E;IAC3E,UAAU;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC7C,IAAI,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QACpB,OAAO,IAAA,qBAAW,EAAC,IAAA,mBAAS,EAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,IAAA,uBAAa,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC;IAED,8CAA8C;IAC9C,YAAY;QACV,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/C,OAAO,IAAA,2BAAoB,EAAC,CAAC,CAAC,CAAC;IACjC,CAAC;IAED,gEAAgE;IAChE,qBAAqB;QACnB,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACpC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC,8BAAc,CAAC,kBAAkB,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAIvB;QACC,MAAM,IAAI,GAAG,IAAA,+BAAgB,EAAC,IAAI,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,gCAAkB,EAAE;aAClC,UAAU,CAAC,IAAA,6BAAc,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxC,YAAY,CAAC,IAAA,2BAAoB,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aAClD,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAClD,OAAO,IAAI,2BAAa,EAAE;aACvB,cAAc,CAAC,kCAAgB,CAAC,IAAI,CAAC;aACrC,cAAc,CAAC,IAAI,CAAC;aACpB,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;CACF;AAED,kBAAe,QAAQ,CAAC"}
@@ -8,6 +8,7 @@ import { ProductTypeProto } from '../../../fintekkers/models/security/product_ty
8
8
  import { IndexTypeProto } from '../../../fintekkers/models/security/index/index_type_pb';
9
9
  import { dateToLocalDateProto, localDateProtoToDate } from '../utils/date';
10
10
  import { Decimal } from 'decimal.js';
11
+ import { decodeDecimal, toDecimalJs, withField } from '../utils/decimal';
11
12
 
12
13
  /**
13
14
  * TIPS-specific accessors layered on top of BondSecurity. The inflation
@@ -28,7 +29,7 @@ class TIPSBond extends BondSecurity {
28
29
  const ext = this.getTipsExtension();
29
30
  const v = ext ? ext.getBaseCpi() : undefined;
30
31
  if (!v) return null;
31
- return new Decimal(v.getArbitraryPrecisionValue());
32
+ return toDecimalJs(withField('tips_extension.base_cpi', () => decodeDecimal(v)));
32
33
  }
33
34
 
34
35
  /** Reference date for the base CPI fixing. */
@@ -1,13 +1,10 @@
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
3
  exports.requireValid = exports.validate = exports.COUPON_RATE = void 0;
7
- const decimal_js_1 = __importDefault(require("decimal.js"));
8
4
  const product_type_pb_1 = require("../../../fintekkers/models/security/product_type_pb");
9
5
  const errors_1 = require("../errors");
10
6
  const uuid_1 = require("../utils/uuid");
7
+ const decimal_1 = require("../utils/decimal");
11
8
  /**
12
9
  * Security input rules: JS counterpart of Java's SecurityRules
13
10
  * (docs/adr/typed-input-errors.md). Pure: proto in, violations out.
@@ -45,23 +42,24 @@ exports.requireValid = requireValid;
45
42
  * parse is skipped.
46
43
  */
47
44
  function tbillCouponViolation(proto, id) {
48
- var _a, _b;
45
+ var _a;
49
46
  if (proto.getProductType() !== product_type_pb_1.ProductTypeProto.TBILL)
50
47
  return undefined;
51
- const raw = (_b = (_a = proto.getBondDetails()) === null || _a === void 0 ? void 0 : _a.getCouponRate()) === null || _b === void 0 ? void 0 : _b.getArbitraryPrecisionValue();
52
- if (!raw)
48
+ const raw = (_a = proto.getBondDetails()) === null || _a === void 0 ? void 0 : _a.getCouponRate();
49
+ if (!raw || (0, decimal_1.isUnsetDecimal)(raw))
53
50
  return undefined;
54
51
  let coupon;
55
52
  try {
56
- coupon = new decimal_js_1.default(raw);
53
+ coupon = (0, decimal_1.decodeDecimal)(raw);
57
54
  }
58
55
  catch (e) {
59
- // decimal.js throws "[DecimalError] Invalid argument" on unparseable input.
60
- return undefined;
56
+ if (e instanceof errors_1.ModelValidationError)
57
+ return undefined;
58
+ throw e;
61
59
  }
62
- if (!coupon.isFinite() || coupon.isZero())
60
+ if (coupon.unscaled === BigInt(0))
63
61
  return undefined;
64
- return (0, errors_1.violation)(exports.COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${raw}`);
62
+ return (0, errors_1.violation)(exports.COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${(0, decimal_1.toCanonicalString)(coupon)}`);
65
63
  }
66
64
  /** The security's UUID, or undefined when it has none or it is not 16 bytes. */
67
65
  function objectIdOf(proto) {
@@ -1 +1 @@
1
- {"version":3,"file":"security_rules.js","sourceRoot":"","sources":["security_rules.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAiC;AACjC,yFAAuF;AAGvF,sCAA4D;AAC5D,wCAAqC;AAErC;;;;;;;;GAQG;AAEU,QAAA,WAAW,GAAG,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC;AAND,4BAMC;AAED,oFAAoF;AACpF,SAAgB,YAAY,CAAC,KAAoB;IAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,6BAAoB,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC;AAHD,oCAGC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAoB,EAAE,EAAoB;;IACpE,IAAI,KAAK,CAAC,cAAc,EAAE,KAAK,kCAAgB,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,GAAG,GAAG,MAAA,MAAA,KAAK,CAAC,cAAc,EAAE,0CAAE,aAAa,EAAE,0CAAE,0BAA0B,EAAE,CAAC;IAClF,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,IAAI,MAAe,CAAC;IACpB,IAAI;QACA,MAAM,GAAG,IAAI,oBAAO,CAAC,GAAG,CAAC,CAAC;KAC7B;IAAC,OAAO,CAAC,EAAE;QACR,4EAA4E;QAC5E,OAAO,SAAS,CAAC;KACpB;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,IAAA,kBAAS,EAAC,mBAAW,EAAE,EAAE,EAAE,0DAA0D,GAAG,EAAE,CAAC,CAAC;AACvG,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAoB;;IACpC,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,OAAO,EAAE,0CAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"security_rules.js","sourceRoot":"","sources":["security_rules.ts"],"names":[],"mappings":";;;AAAA,yFAAuF;AAGvF,sCAA4D;AAC5D,wCAAqC;AACrC,8CAAoG;AAEpG;;;;;;;;GAQG;AAEU,QAAA,WAAW,GAAG,0BAA0B,CAAC;AAEtD;;;GAGG;AACH,SAAgB,QAAQ,CAAC,KAAoB;IACzC,IAAI,KAAK,CAAC,SAAS,EAAE;QAAE,OAAO,EAAE,CAAC;IACjC,MAAM,GAAG,GAA0B,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,IAAI,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC;AACf,CAAC;AAND,4BAMC;AAED,oFAAoF;AACpF,SAAgB,YAAY,CAAC,KAAoB;IAC7C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,6BAAoB,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC;AAHD,oCAGC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,KAAoB,EAAE,EAAoB;;IACpE,IAAI,KAAK,CAAC,cAAc,EAAE,KAAK,kCAAgB,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IACxE,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,cAAc,EAAE,0CAAE,aAAa,EAAE,CAAC;IACpD,IAAI,CAAC,GAAG,IAAI,IAAA,wBAAc,EAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAClD,IAAI,MAAsB,CAAC;IAC3B,IAAI;QACA,MAAM,GAAG,IAAA,uBAAa,EAAC,GAAG,CAAC,CAAC;KAC/B;IAAC,OAAO,CAAC,EAAE;QACR,IAAI,CAAC,YAAY,6BAAoB;YAAE,OAAO,SAAS,CAAC;QACxD,MAAM,CAAC,CAAC;KACX;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACpD,OAAO,IAAA,kBAAS,EAAC,mBAAW,EAAE,EAAE,EAAE,0DAA0D,IAAA,2BAAiB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC7H,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAoB;;IACpC,MAAM,GAAG,GAAG,MAAA,KAAK,CAAC,OAAO,EAAE,0CAAE,eAAe,EAAE,CAAC;IAC/C,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,WAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC"}
@@ -1,9 +1,9 @@
1
- import Decimal from 'decimal.js';
2
1
  import { ProductTypeProto } from '../../../fintekkers/models/security/product_type_pb';
3
2
  import { SecurityProto } from '../../../fintekkers/models/security/security_pb';
4
3
  import { FieldViolationProto } from '../../../fintekkers/requests/util/errors/field_violation_pb';
5
4
  import { ModelValidationError, violation } from '../errors';
6
5
  import { UUID } from '../utils/uuid';
6
+ import { decodeDecimal, isUnsetDecimal, toCanonicalString, CompactDecimal } from '../utils/decimal';
7
7
 
8
8
  /**
9
9
  * Security input rules: JS counterpart of Java's SecurityRules
@@ -42,17 +42,17 @@ export function requireValid(proto: SecurityProto): void {
42
42
  */
43
43
  function tbillCouponViolation(proto: SecurityProto, id: UUID | undefined): FieldViolationProto | undefined {
44
44
  if (proto.getProductType() !== ProductTypeProto.TBILL) return undefined;
45
- const raw = proto.getBondDetails()?.getCouponRate()?.getArbitraryPrecisionValue();
46
- if (!raw) return undefined;
47
- let coupon: Decimal;
45
+ const raw = proto.getBondDetails()?.getCouponRate();
46
+ if (!raw || isUnsetDecimal(raw)) return undefined;
47
+ let coupon: CompactDecimal;
48
48
  try {
49
- coupon = new Decimal(raw);
49
+ coupon = decodeDecimal(raw);
50
50
  } catch (e) {
51
- // decimal.js throws "[DecimalError] Invalid argument" on unparseable input.
52
- return undefined;
51
+ if (e instanceof ModelValidationError) return undefined;
52
+ throw e;
53
53
  }
54
- if (!coupon.isFinite() || coupon.isZero()) return undefined;
55
- return violation(COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${raw}`);
54
+ if (coupon.unscaled === BigInt(0)) return undefined;
55
+ return violation(COUPON_RATE, id, `coupon_rate must be null or 0 for a TBILL: coupon_rate=${toCanonicalString(coupon)}`);
56
56
  }
57
57
 
58
58
  /** The security's UUID, or undefined when it has none or it is not 16 bytes. */
@@ -41,7 +41,6 @@ const strategy_allocation_pb_1 = require("../../../fintekkers/models/strategy/st
41
41
  const transaction_pb_1 = require("../../../fintekkers/models/transaction/transaction_pb");
42
42
  const field_pb_1 = require("../../../fintekkers/models/position/field_pb");
43
43
  const position_status_pb_1 = require("../../../fintekkers/models/position/position_status_pb");
44
- const decimal_value_pb_1 = require("../../../fintekkers/models/util/decimal_value_pb");
45
44
  const security_1 = __importDefault(require("../security/security"));
46
45
  const portfolio_1 = __importDefault(require("../portfolio/portfolio"));
47
46
  const Price_1 = __importDefault(require("../price/Price"));
@@ -52,6 +51,7 @@ const uuid_1 = require("../utils/uuid");
52
51
  const date_1 = require("../utils/date");
53
52
  const decimal_js_1 = require("decimal.js");
54
53
  const LinkCacheModule = __importStar(require("../../util/link-cache"));
54
+ const decimal_1 = require("../utils/decimal");
55
55
  const link_resolver_1 = __importDefault(require("../../util/link-resolver"));
56
56
  const object_type_pb_1 = require("../../../fintekkers/models/util/object_type_pb");
57
57
  const object_types_1 = require("../../util/object-types");
@@ -149,9 +149,7 @@ class Transaction {
149
149
  transactionProto.setTransactionType(params.transactionType.proto);
150
150
  transactionProto.setPortfolio(params.portfolio.proto);
151
151
  // Convert quantity to DecimalValueProto
152
- const quantityDecimal = new decimal_value_pb_1.DecimalValueProto();
153
- quantityDecimal.setArbitraryPrecisionValue(params.quantity.toString());
154
- transactionProto.setQuantity(quantityDecimal);
152
+ transactionProto.setQuantity((0, decimal_1.encodeDecimal)((0, decimal_1.fromDecimalJs)(params.quantity)));
155
153
  // Create and set an empty StrategyAllocationProto
156
154
  const strategyAllocationProto = new strategy_allocation_pb_1.StrategyAllocationProto();
157
155
  (0, object_types_1.stamp)(strategyAllocationProto, object_type_pb_1.ObjectTypeProto.OBJECT_TYPE_STRATEGY_ALLOCATION, 'StrategyAllocation', '0.0.1');
@@ -300,7 +298,7 @@ class Transaction {
300
298
  const quantity = this.proto.getQuantity();
301
299
  if (!quantity)
302
300
  throw new Error("Quantity is required");
303
- return new decimal_js_1.Decimal(quantity.getArbitraryPrecisionValue());
301
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('quantity', () => (0, decimal_1.decodeDecimal)(quantity)));
304
302
  }
305
303
  getIssuerName() {
306
304
  return this.getSecurity().getIssuerName();
@@ -376,7 +374,6 @@ class Transaction {
376
374
  * @returns The created cash transaction
377
375
  */
378
376
  static createCashTransaction(cashSecurity, parentTransaction) {
379
- var _a, _b;
380
377
  // Determine transaction type based on parent
381
378
  let cashTransactionType;
382
379
  const parentType = parentTransaction.getTransactionType().proto;
@@ -410,7 +407,7 @@ class Transaction {
410
407
  if (!faceValue)
411
408
  throw new Error("Face value is required for bond cash impact calculation");
412
409
  const priceProto = parentTransaction.getPrice();
413
- const priceValue = new decimal_js_1.Decimal(((_a = priceProto.getPrice()) === null || _a === void 0 ? void 0 : _a.getArbitraryPrecisionValue()) || '0');
410
+ const priceValue = priceOrZero(priceProto.getPrice());
414
411
  const scaledPrice = priceValue.mul(priceScaleFactor);
415
412
  const quantity = parentTransaction.getQuantity();
416
413
  const numberBondUnits = quantity.div(faceValue);
@@ -420,7 +417,7 @@ class Transaction {
420
417
  else {
421
418
  // For other securities: quantity * price
422
419
  const priceProto = parentTransaction.getPrice();
423
- const priceValue = new decimal_js_1.Decimal(((_b = priceProto.getPrice()) === null || _b === void 0 ? void 0 : _b.getArbitraryPrecisionValue()) || '0');
420
+ const priceValue = priceOrZero(priceProto.getPrice());
424
421
  bookAmount = parentTransaction.getQuantity().mul(priceValue);
425
422
  }
426
423
  // Get asOf ZonedDateTime
@@ -457,7 +454,6 @@ class Transaction {
457
454
  * @param cashSecurity - The cash security to use for the cash impact
458
455
  */
459
456
  static addMaturationTransaction(transaction, transactionType, cashSecurity) {
460
- var _a;
461
457
  // Lazy import to avoid circular dependency
462
458
  const BondSecurity = require('../security/BondSecurity').default;
463
459
  // Cast security to BondSecurity
@@ -471,7 +467,7 @@ class Transaction {
471
467
  settlementDate.setDate(settlementDate.getDate() + 2);
472
468
  // Get price as Decimal
473
469
  const priceProto = transaction.getPrice();
474
- const priceValue = new decimal_js_1.Decimal(((_a = priceProto.getPrice()) === null || _a === void 0 ? void 0 : _a.getArbitraryPrecisionValue()) || '0');
470
+ const priceValue = priceOrZero(priceProto.getPrice());
475
471
  // Get asOf ZonedDateTime
476
472
  const asOf = transaction.getAsOf();
477
473
  // Create maturation transaction
@@ -534,6 +530,16 @@ class Transaction {
534
530
  }
535
531
  }
536
532
  }
533
+ /**
534
+ * The price value, or 0 when the price is unset (kept from before LM-306 for
535
+ * the derived cash and maturation transactions only: unset is not zero
536
+ * elsewhere).
537
+ */
538
+ function priceOrZero(p) {
539
+ if (!p || (0, decimal_1.isUnsetDecimal)(p))
540
+ return new decimal_js_1.Decimal(0);
541
+ return (0, decimal_1.toDecimalJs)((0, decimal_1.withField)('price.price', () => (0, decimal_1.decodeDecimal)(p)));
542
+ }
537
543
  exports.default = Transaction;
538
544
  // private static Transaction createCashTransaction(CashSecurity cashSecurity, Transaction parentTransaction) {
539
545
  // TransactionType transactionType = null;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,yDAAqD;AACrD,oGAAkG;AAClG,uGAAqG;AACrG,0FAAyF;AACzF,2EAA0E;AAC1E,+FAA6F;AAC7F,uFAAqF;AAErF,oEAA4C;AAC5C,uEAA+C;AAC/C,2DAAmC;AACnC,yFAAuF;AAEvF,aAAa;AACb,gDAAkD;AAClD,wCAAqC;AACrC,wCAA2E;AAC3E,2CAAqC;AACrC,uEAAyD;AACzD,6EAAoD;AACpD,mFAAiF;AACjF,0DAAgD;AAahD,MAAM,WAAW;IAGf,YAAY,aAA8D;QACxE,IAAI,aAAa,YAAY,iCAAgB,EAAE;YAC7C,uEAAuE;YACvE,gEAAgE;YAChE,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE;gBAC9B,wBAAa,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;aAC1E;YACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,oBAAoB,CAAC,WAAW,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC;SAC7F;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;SACvD;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,MAAM,CAAC,iBAAiB,CAAC,KAAuB;QACtD,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE;YAAE,OAAO,KAAK,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;QACxD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QAE/C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAG,CAAC;QACvC,IAAI,WAAW;YAAE,WAAW,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAClE,IAAI,WAAW;YAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAG,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACK,MAAM,CAAC,oBAAoB,CAAC,KAAuB;QACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,SAAS,EAAE;YAAE,OAAO,KAAK,CAAC;QACpD,MAAM,mBAAmB,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;QAClD,MAAM,mBAAmB,GAAG,CAAC,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACxG,IAAI,CAAC,mBAAmB,IAAI,CAAC,mBAAmB;YAAE,OAAO,KAAK,CAAC;QAE/D,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;QAC7B,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,EAAG,CAAC;QAC7C,IAAI,mBAAmB;YAAE,cAAc,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAC7E,IAAI,mBAAmB;YAAE,cAAc,CAAC,qBAAqB,EAAG,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACtG,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,QAAuB;QAClD,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChC,OAAO,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,MAAoC;QAC/D,MAAM,gBAAgB,GAAG,IAAI,iCAAgB,EAAE,CAAC;QAChD,IAAA,oBAAK,EAAC,gBAAgB,EAAE,gCAAe,CAAC,uBAAuB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;QACzF,gBAAgB,CAAC,OAAO,CAAC,WAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAEtD,2DAA2D;QAC3D,MAAM,iBAAiB,GAAG,wBAAa,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC;QAEtD,yDAAyD;QACzD,gBAAgB,CAAC,YAAY,CAAC,IAAA,2BAAoB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QACtE,gBAAgB,CAAC,iBAAiB,CAAC,IAAA,2BAAoB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAEhF,mDAAmD;QACnD,MAAM,KAAK,GAAG,eAAK,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;QAC7E,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEvC,kEAAkE;QAClE,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,gBAAgB,CAAC,kBAAkB,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAClE,gBAAgB,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAEtD,wCAAwC;QACxC,MAAM,eAAe,GAAG,IAAI,oCAAiB,EAAE,CAAC;QAChD,eAAe,CAAC,0BAA0B,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,gBAAgB,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;QAE9C,kDAAkD;QAClD,MAAM,uBAAuB,GAAG,IAAI,gDAAuB,EAAE,CAAC;QAC9D,IAAA,oBAAK,EAAC,uBAAuB,EAAE,gCAAe,CAAC,+BAA+B,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAC/G,gBAAgB,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;QAEhE,8BAA8B;QAC9B,gBAAgB,CAAC,iBAAiB,CAAC,wCAAmB,CAAC,QAAQ,CAAC,CAAC;QAEjE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,QAAQ;;QACN,IAAI;YACF,MAAM,OAAO,GACX,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAEhD,MAAM,SAAS,GACb,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAElD,MAAM,kBAAkB,GACtB,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,CAAC;YAE3D,OAAO,GAAG,CAAA,4BAA6B,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK;gBACpG,aAAa,MAAA,MAAA,IAAI,CAAC,YAAY,EAAE,0CAAE,QAAQ,EAAE,mCAAI,MAAM,cAAc,IAAI,CAAC,kBAAkB,EAAE,YAAY,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,WAAW,EAAE,KAAK;gBAC9J,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,gBAAgB,IAAI,CAAC,YAAY,EAAE,CAAC,gBAAgB,EAAE,aAAa,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,KAAK;gBAC3I,aAAa,SAAS,cAAc,OAAO,eAAe,kBAAkB,GAAG,CAAC;SACnF;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjB,OAAO,gDAAgD,CAAC,EAAE,CAAC;SAC5D;IACH,CAAC;IAED,SAAS;QACP,OAAO,CAAC,qBAAU,CAAC,EAAE,EAAE,qBAAU,CAAC,WAAW,EAAE,qBAAU,CAAC,KAAK,EAAE,qBAAU,CAAC,WAAW,EAAE,qBAAU,CAAC,UAAU,CAAC,CAAC;IAClH,CAAC;IAED,QAAQ,CAAC,KAAiB;QACxB,QAAQ,KAAK,EAAE;YACb,KAAK,qBAAU,CAAC,EAAE,CAAC;YACnB,KAAK,qBAAU,CAAC,WAAW;gBACzB,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,qBAAU,CAAC,KAAK;gBACnB,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,KAAK,qBAAU,CAAC,WAAW;gBACzB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;YAC5C,KAAK,qBAAU,CAAC,aAAa;gBAC3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC;YAC9C,KAAK,qBAAU,CAAC,YAAY;gBAC1B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;YAC7C,KAAK,qBAAU,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,cAAc,EAAE,CAAC;gBAChD,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;aACvC;YACD,KAAK,qBAAU,CAAC,KAAK,CAAC;YACtB,KAAK,qBAAU,CAAC,cAAc;gBAC5B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,KAAK,qBAAU,CAAC,aAAa;gBAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC;gBACE,MAAM,IAAI,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;SACrE;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;IAChC,CAAC;IAED;;;;;;OAMG;IACG,OAAO,CAAC,QAAuB;;;YACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;gBAAE,OAAO,IAAI,CAAC;YACzC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;aAC7E;YACD,MAAM,IAAI,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC;YAC3D,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,mCAAI,SAAS,CAAC;YACpD,MAAM,CAAC,GAAG,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,uBAAY,CAAC,UAAU,EAAE,CAAC;YAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;YAC5B,OAAO,IAAI,CAAC;;KACb;IAED;;;;;;OAMG;IACK,cAAc;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE;YAAE,OAAO;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACjG,MAAM,OAAO,GAAG,WAAI,CAAC,WAAW,CAAC,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,wBAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC7D,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE;YACV,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;YACpB,OAAO;SACR;QACD,MAAM,IAAI,KAAK,CACb,oDAAoD,OAAO,GAAG;cAC5D,gEAAgE;cAChE,gCAAgC;cAChC,sCAAsC,CACzC,CAAC;IACJ,CAAC;IAED,KAAK;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC/C,OAAO,WAAI,CAAC,WAAW,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,OAAO;QACL,OAAO,wBAAa,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;IAC/E,CAAC;IAED,YAAY;QACV,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACzD,OAAO,IAAI,mBAAS,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,OAAO,kBAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,qBAAqB;QACnB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,CAAC;QACtD,IAAI,CAAC,UAAU;YAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACnE,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,QAAQ;QACN,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,WAAW;QACT,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;QACvD,OAAO,IAAI,oBAAO,CAAC,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,aAAa,EAAE,CAAC;IAC5C,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,YAAY;QACV,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAA,2BAAoB,EAAC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAA,2BAAoB,EAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,kCAAe,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,YAAY;QACV,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;IACnC,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;IACxC,CAAC;IAED,uBAAuB;QACrB,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,mBAAmB,CAAC,KAAkB;QACpC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/C,CAAC;IAED;;;OAGG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,kCAAgB,CAAC,QAAQ,CAAC;IACjF,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAChD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE;YACjC,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE;gBAC1B,OAAO,KAAK,CAAC;aACd;SACF;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,CAAC,KAAkB;QACvB,IAAI,KAAK,YAAY,WAAW,EAAE;YAChC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;SAC3C;aAAM;YACL,OAAO,KAAK,CAAC;SACd;IACH,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,qBAAqB,CAAC,YAAsB,EAAE,iBAA8B;;QACjF,6CAA6C;QAC7C,IAAI,mBAAoC,CAAC;QACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC;QAEhE,IAAI,UAAU,KAAK,0CAAoB,CAAC,GAAG,IAAI,UAAU,KAAK,0CAAoB,CAAC,iBAAiB,EAAE;YACpG,mBAAmB,GAAG,IAAI,kCAAe,CAAC,0CAAoB,CAAC,UAAU,CAAC,CAAC;SAC5E;aAAM,IAAI,UAAU,KAAK,0CAAoB,CAAC,IAAI,IAAI,UAAU,KAAK,0CAAoB,CAAC,UAAU,EAAE;YACrG,mBAAmB,GAAG,IAAI,kCAAe,CAAC,0CAAoB,CAAC,OAAO,CAAC,CAAC;SACzE;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wDAAwD,0CAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;SAC7G;QAED,wBAAwB;QACxB,IAAI,UAAmB,CAAC;QACxB,MAAM,YAAY,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAE5E,IAAI,YAAY,KAAK,kCAAgB,CAAC,aAAa;YACjD,YAAY,KAAK,kCAAgB,CAAC,IAAI;YACtC,YAAY,KAAK,kCAAgB,CAAC,YAAY,EAAE;YAChD,sBAAsB;YACtB,IAAI,UAAU,KAAK,0CAAoB,CAAC,UAAU,IAAI,UAAU,KAAK,0CAAoB,CAAC,iBAAiB,EAAE;gBAC3G,qDAAqD;gBACrD,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;aAC9C;iBAAM;gBACL,8FAA8F;gBAC9F,2CAA2C;gBAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;gBACjE,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;gBAE7E,MAAM,gBAAgB,GAAG,YAAY,CAAC,mBAAmB,EAAE,CAAC;gBAC5D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;gBAC9C,IAAI,CAAC,SAAS;oBAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;gBAE3F,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;gBAC3F,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAErD,MAAM,QAAQ,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC;gBACjD,MAAM,eAAe,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAEhD,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;aAC/C;SACF;aAAM;YACL,yCAAyC;YACzC,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,EAAE,CAAC;YAChD,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;YAC3F,UAAU,GAAG,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;SAC9D;QAED,yBAAyB;QACzB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,CAAC;QAEzC,MAAM,SAAS,GAAG,iBAAiB,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;QAC7D,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACtF,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAEhG,4DAA4D;QAC5D,MAAM,eAAe,GAAG,IAAI,WAAW,CAAC;YACtC,SAAS;YACT,cAAc;YACd,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,IAAI,oBAAO,CAAC,KAAK,CAAC;YACzB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,mBAAmB;YACpC,SAAS,EAAE,iBAAiB,CAAC,YAAY,EAAE;YAC3C,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;QAEH,oCAAoC;QACpC,eAAe,CAAC,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAC/E,eAAe,CAAC,KAAK,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,CAAC;QACvF,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,CAAC;QAErE,yBAAyB;QACzB,iBAAiB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;QAEvD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,wBAAwB,CAAC,WAAwB,EAAE,eAAgC,EAAE,YAAsB;;QAChH,2CAA2C;QAC3C,MAAM,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;QAEjE,gCAAgC;QAChC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC;QAEvE,oBAAoB;QACpB,MAAM,YAAY,GAAG,YAAY,CAAC,eAAe,EAAE,CAAC;QACpD,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAEnG,oDAAoD;QACpD,MAAM,cAAc,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,cAAc,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAErD,uBAAuB;QACvB,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAC1C,MAAM,UAAU,GAAG,IAAI,oBAAO,CAAC,CAAA,MAAA,UAAU,CAAC,QAAQ,EAAE,0CAAE,0BAA0B,EAAE,KAAI,GAAG,CAAC,CAAC;QAE3F,yBAAyB;QACzB,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAEnC,gCAAgC;QAChC,MAAM,UAAU,GAAG,IAAI,WAAW,CAAC;YACjC,SAAS,EAAE,YAAY;YACvB,cAAc;YACd,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE;YACtC,KAAK,EAAE,UAAU;YACjB,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;YACnC,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;YACrC,QAAQ,EAAE,WAAW,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,oCAAoC;QACpC,UAAU,CAAC,KAAK,CAAC,iBAAiB,CAAC,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACpE,UAAU,CAAC,KAAK,CAAC,qBAAqB,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC5E,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1D,2BAA2B;QAC3B,WAAW,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE5C,gDAAgD;QAChD,WAAW,CAAC,aAAa,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,sBAAsB,CAAC,WAAwB,EAAE,YAAsB;QAC5E,MAAM,YAAY,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QACtE,MAAM,MAAM,GAAG,YAAY,KAAK,kCAAgB,CAAC,aAAa;YAC5D,YAAY,KAAK,kCAAgB,CAAC,YAAY;YAC9C,YAAY,KAAK,kCAAgB,CAAC,IAAI,CAAC;QAEzC,MAAM,eAAe,GAAG,WAAW,CAAC,kBAAkB,EAAE,CAAC,KAAK,CAAC;QAC/D,MAAM,iBAAiB,GAAG,eAAe,KAAK,0CAAoB,CAAC,GAAG,CAAC;QACvE,MAAM,kBAAkB,GAAG,eAAe,KAAK,0CAAoB,CAAC,IAAI,CAAC;QACzE,MAAM,wBAAwB,GAAG,eAAe,KAAK,0CAAoB,CAAC,UAAU;YAClF,eAAe,KAAK,0CAAoB,CAAC,iBAAiB,CAAC;QAE7D,IAAI,MAAM,IAAI,kBAAkB,IAAI,wBAAwB,EAAE;YAC5D,WAAW,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,kCAAe,CAAC,0CAAoB,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;SAC9H;QAED,IAAI,MAAM,IAAI,iBAAiB,IAAI,wBAAwB,EAAE;YAC3D,WAAW,CAAC,wBAAwB,CAAC,WAAW,EAAE,IAAI,kCAAe,CAAC,0CAAoB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,CAAC;SACvH;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,aAAa,CAAC,WAAwB,EAAE,YAAsB;QACnE,2CAA2C;QAC3C,IAAI,WAAW,CAAC,kBAAkB,EAAE,IAAI,IAAI,EAAE;YAC5C,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,mDAAmD;QACnD,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE;YACjC,WAAW,CAAC,qBAAqB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;SAC9D;IACH,CAAC;CACF;AAED,kBAAe,WAAW,CAAC;AAG3B,+GAA+G;AAC/G,4CAA4C;AAC5C,qDAAqD;AACrD,kBAAkB;AAClB,gCAAgC;AAChC,0DAA0D;AAC1D,mBAAmB;AACnB,mBAAmB;AACnB,yBAAyB;AACzB,uDAAuD;AACvD,mBAAmB;AACnB,iBAAiB;AACjB,8DAA8D;AAC9D,MAAM;AAEN,kCAAkC;AAElC,+DAA+D;AAC/D,4BAA4B;AAC5B,yFAAyF;AACzF,uGAAuG;AACvG,8DAA8D;AAC9D,qBAAqB;AACrB,8EAA8E;AAC9E,2CAA2C;AAC3C,+EAA+E;AAC/E,sHAAsH;AACtH,wGAAwG;AACxG,6GAA6G;AAC7G,gGAAgG;AAEhG,oEAAoE;AACpE,cAAc;AACd,mBAAmB;AACnB,iBAAiB;AACjB,4GAA4G;AAC5G,MAAM;AAEN,mDAAmD;AACnD,iEAAiE;AACjE,kCAAkC;AAClC,8CAA8C;AAC9C,mDAAmD;AACnD,wBAAwB;AACxB,0BAA0B;AAC1B,6BAA6B;AAC7B,kBAAkB;AAClB,yCAAyC;AACzC,+BAA+B;AAC/B,8CAA8C;AAC9C,oDAAoD;AACpD,8EAA8E;AAE9E,qFAAqF;AACrF,4DAA4D;AAE5D,6BAA6B;AAC7B,IAAI;AAEJ,MAAM;AACN,0GAA0G;AAC1G,wDAAwD;AACxD,IAAI;AACJ,8CAA8C;AAC9C,KAAK;AACL,uEAAuE;AACvE,kHAAkH;AAClH,uGAAuG;AACvG,gGAAgG;AAChG,yFAAyF;AACzF,8FAA8F;AAC9F,gGAAgG;AAChG,4GAA4G;AAC5G,4FAA4F;AAG5F,mEAAmE;AACnE,kFAAkF;AAClF,MAAM;AAEN,kEAAkE;AAClE,2EAA2E;AAC3E,WAAW;AACX,iBAAiB;AAEjB,uEAAuE;AACvE,wEAAwE;AACxE,+EAA+E;AAC/E,8DAA8D;AAE9D,mHAAmH;AACnH,mHAAmH;AACnH,eAAe;AAEf,2DAA2D;AAC3D,sDAAsD;AAEtD,0DAA0D;AAC1D,uEAAuE;AAEvE,6GAA6G;AAE7G,oHAAoH;AACpH,kBAAkB;AAElB,YAAY;AACZ,MAAM;AACN,IAAI;AAEJ,2GAA2G;AAC3G,0EAA0E;AAE1E,8CAA8C;AAC9C,mFAAmF;AACnF,4CAA4C;AAC5C,wDAAwD;AACxD,kEAAkE;AAClE,kEAAkE;AAClE,mCAAmC;AACnC,gGAAgG;AAChG,qFAAqF;AACrF,OAAO;AAEP,iDAAiD;AAEjD,+BAA+B;AAC/B,IAAI;AAEJ,8DAA8D;AAC9D,kDAAkD;AAClD,kFAAkF;AAClF,MAAM;AAEN,kEAAkE;AAClE,8CAA8C;AAC9C,gGAAgG;AAChG,yEAAyE;AACzE,mEAAmE;AACnE,MAAM;AACN,IAAI"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["transaction.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ import { UUID } from "../utils/uuid";
20
20
  import { dateToLocalDateProto, localDateProtoToDate } from "../utils/date";
21
21
  import { Decimal } from "decimal.js";
22
22
  import * as LinkCacheModule from "../../util/link-cache";
23
+ import { decodeDecimal, encodeDecimal, fromDecimalJs, isUnsetDecimal, toDecimalJs, withField } from "../utils/decimal";
23
24
  import LinkResolver from "../../util/link-resolver";
24
25
  import { ObjectTypeProto } from '../../../fintekkers/models/util/object_type_pb';
25
26
  import { stamp } from '../../util/object-types';
@@ -133,9 +134,7 @@ class Transaction {
133
134
  transactionProto.setPortfolio(params.portfolio.proto);
134
135
 
135
136
  // Convert quantity to DecimalValueProto
136
- const quantityDecimal = new DecimalValueProto();
137
- quantityDecimal.setArbitraryPrecisionValue(params.quantity.toString());
138
- transactionProto.setQuantity(quantityDecimal);
137
+ transactionProto.setQuantity(encodeDecimal(fromDecimalJs(params.quantity)));
139
138
 
140
139
  // Create and set an empty StrategyAllocationProto
141
140
  const strategyAllocationProto = new StrategyAllocationProto();
@@ -294,7 +293,7 @@ class Transaction {
294
293
  this.ensureHydrated();
295
294
  const quantity = this.proto.getQuantity();
296
295
  if (!quantity) throw new Error("Quantity is required");
297
- return new Decimal(quantity.getArbitraryPrecisionValue());
296
+ return toDecimalJs(withField('quantity', () => decodeDecimal(quantity)));
298
297
  }
299
298
 
300
299
  getIssuerName(): string {
@@ -416,7 +415,7 @@ class Transaction {
416
415
  if (!faceValue) throw new Error("Face value is required for bond cash impact calculation");
417
416
 
418
417
  const priceProto = parentTransaction.getPrice();
419
- const priceValue = new Decimal(priceProto.getPrice()?.getArbitraryPrecisionValue() || '0');
418
+ const priceValue = priceOrZero(priceProto.getPrice());
420
419
  const scaledPrice = priceValue.mul(priceScaleFactor);
421
420
 
422
421
  const quantity = parentTransaction.getQuantity();
@@ -427,7 +426,7 @@ class Transaction {
427
426
  } else {
428
427
  // For other securities: quantity * price
429
428
  const priceProto = parentTransaction.getPrice();
430
- const priceValue = new Decimal(priceProto.getPrice()?.getArbitraryPrecisionValue() || '0');
429
+ const priceValue = priceOrZero(priceProto.getPrice());
431
430
  bookAmount = parentTransaction.getQuantity().mul(priceValue);
432
431
  }
433
432
 
@@ -485,7 +484,7 @@ class Transaction {
485
484
 
486
485
  // Get price as Decimal
487
486
  const priceProto = transaction.getPrice();
488
- const priceValue = new Decimal(priceProto.getPrice()?.getArbitraryPrecisionValue() || '0');
487
+ const priceValue = priceOrZero(priceProto.getPrice());
489
488
 
490
489
  // Get asOf ZonedDateTime
491
490
  const asOf = transaction.getAsOf();
@@ -560,6 +559,16 @@ class Transaction {
560
559
  }
561
560
  }
562
561
 
562
+ /**
563
+ * The price value, or 0 when the price is unset (kept from before LM-306 for
564
+ * the derived cash and maturation transactions only: unset is not zero
565
+ * elsewhere).
566
+ */
567
+ function priceOrZero(p: DecimalValueProto | undefined): Decimal {
568
+ if (!p || isUnsetDecimal(p)) return new Decimal(0);
569
+ return toDecimalJs(withField('price.price', () => decodeDecimal(p)));
570
+ }
571
+
563
572
  export default Transaction;
564
573
 
565
574